To content | To menu | To search

Tag - Eurobot

Entries feed - Comments feed

Friday, September 23 2011

Eurobot 2012 rules presentation tomorrow

Tomorrow (2011/09/24), I'll attend the presentation of the rules for Eurobot 2012, and will try posting photos and infos on twitter, live. That's a first try for me, so don't be mad if it does not go as planned ;)

In the future, I will continue to use this twitter account to post quick news that does not really require a full blog post.

Here is the address to read it online http://twitter.com/#!/xevel2 (also available on the sidebar, just above the Gallery and Youtube channel links).

Friday, July 1 2011

That's how we roll

Wednesday, June 29 2011


We passed the approval phase with flying colors, executing a perfect Funny configuration on the first try!

Now we have to continue working on scoring real points in a real match, that is to say having a system that works in all configurations!

Photos to come!

Добро пожаловать в Астрахани!

We are in Astrakhan!

After some Champagne and a good meal in first class (thanks Aeroflot!) from Moscow, we finally arrived at Astrakhan airport. Airport arrival

We are planning to get a short night, to be able to start working early in the competition arena.

Welcome package

Our hosts are very welcoming (although they mostly don't speak English, funky trip ahead). But we already planned a raid to a good restaurant with some of them :)


The mosquitoes seem to like us as well...

Monday, June 27 2011

Travel hazards

Because of some trouble with the flights, the team is not in Astrakhan yet. We should be there tomorrow night.

  • Because of a delay on their Paris -> Moscow, Xevel, Napalm and Caro are stuck in Moscow for 24 hours. Hopefully they will find a hotel and be able to work on the robot or visit the city.
  • Because of massive flights cancellation from Air France (thanks guys!), Jlg is stuck in... Grenoble \o/ He should be able to rejoin the rest of the team in time for the Moscow -> Astrakhan flight tomorrow night.

That means we lose one full day, where we could have been experimenting and improving the robot on the competition tables. But we are still working on improving the algorithms (thanks to the simulator) and the vision part.

More information later!

Sunday, June 26 2011

And here we go

in a little more than 24 hours, we will be in Astrakhan, Russia, for Eurobot 2011.

I want to thank our two sponsors for this trip :

ESIAL ("École Supérieure d’Informatique et Applications de Lorraine", the School of Engineering in Information Technology of Lorraine most of the team graduated from).


INRIA Nancy Grand Est ("Institut National de Recherche en Informatique et en Automatique", the center of the "French National Institute for Research in Computer Science and Control" I work at).


We'll see if updating while we are there is an option. In theory, we should have Internet access most of the time.

Thursday, June 9 2011

French Cup 2011 recap


Four of us will make the trip(Paris-Moscow-Astrakhan, 27 June - 3 July), and the estimated cost of the journey to Astrakhan is around 800€/person (a little less than $1200), including visa, train to go to the nearest airport, plane tickets, and taxes. And that's before spending a single ruble on tourism, vodka or caviar.

Please contact us at admin {at} xevel {dot} fr if you are interested in having your company's name on the robot everybody will be looking at, at an international robotic competition ;)

Also, while I have your attention, I (the guy who designed, built and programmed the robot) am looking for a job doing cool stuff with robots, if you think you have use for someone with this kind of skills. Same contact.


Soooo, now for a recap of what happened...

The day before departure, the robot was not OK. It could roughly move around and avoid obstacles, but the legs kept on spreading uncontrollably, and this caused many problems: the servos were overheating, the movement accuracy was abysmal, and the Neato LDS would sometimes see the legs even with the algorithm used to ignore them, resulting in strange and unforeseeable reactions. Basic AI was ready but nothing dedicated to score points (!), and the CMUcam was not yet usable (it could distinguish colors but not interpret the result). During the 6-hours trip to the competition venue, I tried to plan the modifications I would have to work on to solve these problems.

Arrived a little after 9am on Wednesday, we had to wait until 2pm to enter the venue. Immediately after unpacking, hordes of members of the staff and other teams started circling the robot, asking questions and sometimes providing me with solutions for some of my problems :) I finally could sit to get back to work around 11pm, and started coding... In the meantime, my dear godfather Din' was trying to create a GIT repository and to setup stuff so that we could continue working with a source control manager, but without much results (we're so dependent on our Internet connection that we're lost without it :s)

Days can be relative, when they are not separated by sleep time. So later that day, on Thursday, we brought the robot to the referees for approval. This is usually done in 3 parts: - verifying that the robot is made in compliance with the rules, - testing that it can win a match, alone on the playing field, - testing that it can avoid a dummy opponent.

The first part is called "static approval" because it is normally done without the need to power the robot or have it moving... but in my case, it was not possible to do it like that. The maximum perimeter and the height of the beacon mast are both dynamic on my robot, so we had to come back and finish the "static approval" dynamically later ;)

A new rule this year was that every robot had to demonstrate leaving its starting zone before the beginning of the first series of matches (Thursday, 12am IIRC), or would be automatically disqualified. The robot was at this time still plagued by random latency problems induced by an error I made two days before, and even this so simple thing nearly got us evicted from the competition before it started. In the end, we negotiated a 10 minutes extension of the deadline and managed to make it leave its starting zone in the crudest way: we made the robot stand up with the wheels spinning, killed the AI program, then ran to the referees, put the robot on the table and watched as it brainlessly rolled around. xD This gave us a 24 hours delay to have the robot fully approved (before the start of the 3rd series), with yet another sleepless night ahead.

That night, we got the providential help of a guardian angel. The guardian angels are the volunteers tasked with leading teams from their pit to the main stage when it's their turn to play. They have (plastic) golden wings and basically without them having 70 matches per series would be an awful mess.

So this guardian angel, Alexis, took some time after his duties were fulfilled to listen to the problems we had, and to help us solve them, when instead he could have gone to sleep after a long and tiring day. At this point of the day (a 72+h day!) i was beginning to lose my mind as I did not have a versioning system on my source code anymore, and he installed a SVN repository on the robot, allowing me to regain some sanity. This also had the tremendously positive effect of lifting our spirits, which was much needed for the rest of the day (we had still 12+h to go before the end of the approval phases).

Once we could code without the gloom of breaking everything and not being able to get the last version back, everything went better. I fixed the latency problem we were having, while Din', Napalm and TicTac (late additions to the team) worked on movements, programs for the approval and image processing.

Friday morning, we came back to see the referees in order to finally have to robot approved. We had to convince them that all the dynamic behavior would always stay in line with the rules, not being able to show every possible scenario... Then we passed the obstacle avoidance part of the approval with a program dumbed down to avoid the problem of the LDS seeing the spread legs (the minimum detection radius had to be pushed away to around 30cm, which caused close obstacles to be ignored... :/ ):

Obstacle avoidance approval

As a comparison, here are the previous obstacle avoidance tests:

First obstacle avoidance

Better obstacle avoidance

At this point, we had around 2 hours left to validate the last required test: being able to win a match alone. Faced with little time and having few working neurons left, we opted for a simple "push the first pawn" strategy.

The first try was perfect, with a marvelously placed pawn...

Approval, winning a match... first try

...except that it was placed on the wrong color. The referee was not impressed xD

After a few more tries we managed to score anyway, earning the right to participate in the remaining series of match (3, 4 and 5). We were the last approved team of the 140 ones that managed to pass.

Approval, winning a match... other tries

The first match for us was 2 hours later, and we had no energy left to think of something clever to do, so we just added a dance to the program used for the approval. The idea was just to fill the remaining 80s of the match with some cool moves, instead of staying in the middle of the playing field, frozen.

Xachi vs Robokit

The next match was a few hours later, and still no brilliant idea to have a fully functional robot in such a short time. So we thought we would do the same thing. But "let's just clean up a few things here and there"... and with this thought came the error that led to the funniest match of the competition (yes, I'm not afraid to say it!):

Xachi plays possum

One minus sign missing, and there you have something completely different. The robot started as if it were on the other end of the table, collided with the border (scoring 10 points in the process :D ), then started dancing... but the legs were in a strange position and it lost its balance, falling on its back. At this point, still trying to dance as if nothing happened, it managed to flip its power switch ^^

We discussed with the referee, and his point of view was that no rules had been broken (!), so we kept our points, resulting in a draw 30-30.

A few hours of sleep and a steamy hot shower later, we're back for another busy night.

I finally managed to implement the closed loop control of the legs with reasonable latency. This allowed us to test the obstacle avoidance system at higher speed:

Fast obstacle avoidance

Notice how the legs return to where they should be after a perturbation :)

In the meantime, Din' and Napalm implemented the full image processing pipeline for the cmucam, but we had no time to properly test it. Due to an error in the control mechanism I implemented the night before, we had to choose between moving nicely and dancing. We chose dancing, as we still had no functional AI. For the last match, we faced 1000 Team with their incredible centipede robot ("random" selection of opponents sure does things well :D ).

XD vs 1000 Team

The last event of the day (after a few more hours of sleep) was before the finals, when we received the Creativity Award. The award in all its glory: Award2011_small.JPG

All the "little" awards (Creativity Award, Award of the Teams, Innovation Award, ... all except the ones for 1st, 2nd and 3rd place) are hand-made by volunteers of the organizing association, using parts collected here and there. It's very nice <3

As far as I know, it's not usual to send the recipient of the Creativity award to Eurobot, they usually sent a team that could do well in terms of points. We will do our best not to let them down :) (and considering the cost of the trip, we'd better have a functional robot >_>)

And for your pleasure, here is a compilation of xachi's best dance moves:

Dance compilation

The team (or at least the ones who were present on the first day):

Part_of_the_team.jpg Part_of_the_team_back.jpg

Logos of the sponsors are positioned on the legs, one on each side of the apparent servos. Sponsors_1.jpg Sponsors_2.jpg Sponsors_3.jpg Sponsors_4.jpg

Lastly, here is a short list of people I want to thank:

My sponsors, AIP Primeca Lorraine, I.materialise, Pololu for there support,

Caro, JLG, Sticky, Din', Napalm and TicTac for helping me on the robot, 'nd stuff :D

Alexis the guardian angel for saving me from madness (MADNESS? SPARTAAAAAAAA),

The geek of INSA Rennes who saved me Friday night with a copy of AVR Studio 4,

Samuel and all the Poivron team (hiiiii!)

RCVA for answering when I try to speak to them (just kidding, they didn't. Whatever, they will never know, they don't speak English >_>)

All the volunteers and other staff of Planete-Sciences for organizing all this,

and also all the people I don't remember now but I'm sure I will remember some day...

Now, It's time to get back to work, and try not to let myself be eaten by all the problems surrounding the trip to Russia... Why did it have to be THIS year that going to Eurobot would cost more than making the robot? :s

Tuesday, June 7 2011

XD is going to Eurobot

That's it. We won the Creativity Award at the French Robotic Cup, and we're going to the big game along with the two best french teams :D

Eurobot finals are held in Astrakhan, Russia, between June 28th and July 2nd.

More info very soon !!!

Sunday, May 29 2011

So much things to do, so little time

Things are going in the right direction, but each completed part reveals unforeseen problems.


If moves, yes, but the latency of the Linux OS is just horrible, and it slows down the communications by a factor up to 100... hence the shaky movements. I will put the problem under the rug by just configuring the servos so that they don't send a response to write operations.


Driving... slowly. But it has potential to be up to 50 times quicker. Haven't tried it yet. Before that, the PID coefficients of the motor control need fine tuning.

Half-broken obstacle avoidance

Avoiding obstacles using only the Neato LDS. All thresholds and weights in the computation needs tuning too. The algorithms have lots of room for improvement too (I already have a better behavior than what can be seen here).

A really big problem right now is that the legs tend to spread when moving around. To correct this, I would need to ask the servos their positions, compute the actual position of the tip of the leg, and use this information to correct it with a PID controller... I'm not sure I can code and test it in the remaining time before the competition. At least not if I want to code all the other perfectly necessary things the robot still misses, like interpretation of what the images returned by the camera.

We'll see. Three days to go.

Sunday, May 1 2011

Poster 2011

The poster has been sent for review! It will be hung (at a 30° angle ^^' ) in the pit during the competition, and is meant as a way to promote communication between teams (even though I have hardly ever seen anybody paying attention to it... >_> ).


Also, in the past weeks, I've been working on low level programming of the boards that goes on the Dynamixel bus : the Power Distribution Board, which also serves as an interface board (reads buttons, powers the leds,...), the Motor Controller board that just controls the motor of the Neato Laser Distance Sensor, and the board that manages the wheel motor, the encoder, and the mini-servo in each tibia.

All of these are now functional, so I can finally work on higher level stuff: movements!

- page 1 of 3