As simple as it sounds, a very essential ability of humanoid robots is “not falling over”.
You can achieve this by arbitrarily complicated measures. In our case we focus on the more complicated ways (of course). We have developed an inverse kinematics solver using the concept of “damped least squares” which generates nice jacobian matrices which we use to perform gradient descents. With this fancy method we can give the robot certain tasks which it tries to execute. In the video you can see how the robot moves its center of mass towards a defined position above the left foot (it even uses the arms to raise the COM). And as a second task the robot shortens its right leg. The second task clearly interferes with the first but the robot can still fulfill both.
As another measure we have weighted the tasks toward the “hold your balance” task. It is obviously more important to “not fall over”…
Our robots proved themselves as goalie during April’s tournaments. Though they triggered a bit prematurely in the first games (better too early than too late :-)), we fixed this and in the later games the goalie reliably caught all shots on our goal. Here’s a small montage:
After the finals at RoboCup Iran Open 2014, we were asked whether we wanted to play a friendly match against the winning team from the SPL (MRL).
So we went over to the SPL field and started our preparations. Because we played on their field with slightly different lighting, different goals and with a much smaller ball, we had to adjust our software and vision calibration quickly.
As we also did not use the same game controller protocol as the SPL, we also tried to set up our own including own WiFi network. After initial cross-disturbances between the two networks were resolved, we still had no working connection. As in the meantime quite a large audience had assembled, we decided to play without network and manual start. This limited us to two robots (without network the team play does not work) and MRL kindly agreed to also limit their team.
The game itself was fun, though we were hardly in ball possession and definitely did not show our best game play. At the end we lost 1:2 (with all goals scored by MRL), but if it weren’t for our goal keeper Grace it could have been much worse. Now if she just would have been able to stand up properly Emmy as striker also had major problems. Two weeks of competition put some strain on our robots, and we did not have the time (and energy) to fix all the hardware issues prior to this game. We temporarily put in John for Emmy, but this was even worse (see minute 7 in the video).
Below are a couple of shots of our goal keeper and the video of the half-time we played.
Due to some intermittent internet outages and generally being quite busy preparing the robots for the games, we unfortunately did not add any information about the actual competition days at Iran Open in a timely manner. However, if you followed us on Facebook (no Facebook account required), you already know how it end. In this post we want to quickly give an overview of the games and results in Iran Open 2014.
After having gone to bed early last night, everybody woke up this morning refreshed. After a nice breakfast, we went to the hall and started working on some improvements. It remains to be seen how much we will actually be able to finish in time, as they close the hall quite early for a RoboCup competition (~7pm). But as after German Open we have a good/stable code base, we can approach this quite relaxed.
Today the groups were selected. There are now only 7 teams (4 foreign teams, 3 Iranian teams), which were split in two groups. Group A contains us, MRL, Parand and pUNAMoid (who is still waiting for their robots to go through customs). Group B has Hamburg Bit-Bots, Bold Hearts and Bahset. According to the current schedule, we will have our first “real” game tomorrow afternoon at 2pm (this is 11:30 MEST) against Parand. The other two group games are Thursday morning. If we are in the top 2 of our group, we will continue with the semi finals Thursday afternoon and the small and large finals on Friday morning.
Tomorrow the day will start with a demonstration, we were asked to play a test game – not sure against whom yet. Apparently there is some VIP coming to take a look at RoboCup Iran Open, but we do not know who.
We arrived in Tehran at 3.15am local time this morning. After some delay with deboarding, a very long line at immigration and some discrepancy in regards to our position and where to really pick up our luggage, we were warmly welcomed by members of the Iran Open organisation.
At the end, we arrived at our rooms after 7am, at which time we took a shower, ate a quick breakfast and went straight to the Iran Open site. We felt it would be better for the next days that way, i.e. not to sleep some hours and wake up even more tired, possibly getting our internal clocks misaligned. So we were the first team to select a place in the humanoid league area at 9am.
Since then, we put our 6 robots back together and started working on new features. Admittedly it is going a bit slower than usual, as everybody is tired. We will leave early today, to get a good night sleep and tackle the outstanding tasks tomorrow freshly.
In an exciting final game, we met the Bold Hearts (UK). We scored the 1:0 quickly, but the Bold Hearts evened to 1:1. Both teams continued strong, but at the end of the game we managed the 2:1 and won.
We will follow-up with videos of the game later this month. Right now we are preparing for our next competition, the Iran Open 2014. Our flight leaves today, so there’s not much time but to pack. We are going to meet the Bold Hearts and the Hamburg Bit-Bots as well as several other teams, including the current world vice champion from Iran. This will be an exciting competition, we will try to update you as much as possible on our Facebook page and here.
It was a full day, with the third round robin game this morning against the Bold Hearts, and later the semi-finals.
In the round robin game we met the Bold Hearts, which is a rather strong team in regards to walking speed and shooting at the goal. Fortunately for us, they tend to lose track of which is their own goal pretty quickly when the ball gets past them, which helped us quite a bit in the game. We ended it with 3:1 (2:0) and this made us first in the group (with a goal tally of 9:2).
In the semi finals we met the WF Wolves. We scored a goal pretty quickly, however due to a last minute “improvement” we had some issues with seeing balls where none were. This caused some slightly erratic behavior, and the Wolves were able to score into our goal as well. The first half time ended 1:1 and we quickly fixed the software. In the second half, we had several goal chances, however the Wolves also quickly went to the ball, so that there was a lot of 1-on-1 (or -2) and subsequent confusion. The Wolves themselves shot two goals into their goal (one time pushing away our robot that was just to do the same). The game ended 3:1.
In the semi-final Bit Bots against Bold Hearts, the game tied 1:1 after regular time and had to go into extension (two additional 5-minute playing periods), and finally penalty shootouts. The Bold Heart decided this with 3 goals, the Bit Bots only scored twice. This means that tomorrow at 1pm the Bit Bots will meet the WF Wolves in the game for place 3, and we will meet the Bold Hearts at 2.30pm to decide first and second place.