To content | To menu | To search

Tag - Xachikoma

Entries feed - Comments feed

Thursday, May 15 2014

Video from Robogames 2013

The guys at Trossen Robotics released some more highlight videos about people who attended Robogames 2013, inlcuding this one (I'm always horrified when I see or hear myself)...

Enjoy :)

Xachikoma at Robogames 2013

Tuesday, January 1 2013

Happy new year from India

2013 started for me with a nice chat with fellow Techfest exhibitors, looking by the window of our hotel at the fireworks spawning everywhere in the city of Mumbai. A nice way to start a year :)

Yesterday, with my coordinator Jaydeep, we went to visit the south part of Mumbai (a little more than 1h to go, more than 2 hours to get back with the traffic!), and Elephanta Island, where unfortunately the caves were closed :( Still it was a nice occasion to get away from the smog of the city, hike a little and breath some fresh air. Ho, and see monkeys too!

Techfest starts in 2 days, and I still have some work to do on the robot, as well as some sights to see (today, we're going to have a look at the Kanheri caves in Sanjay Gandhi National Park). Stay tuned ;)

Sunday, December 23 2012

Packing up for Techfest

Xachikoma will be present in Techfest, 3-5th January 2013 in Mumbai, India!

It will demonstrate some of its abilities to the crowd in the International Exhibits section ;) Come say hello!

Friday, December 30 2011

December tales

December has been a cool month, and I'm not only speaking of the weather.



TechTic&Co is an association created to promote science and robotics in Lorraine (the region I live in) and in the northeast of France. The reach is quite wide: the general public, but also students, professionals, researchers, ... everybody who could take part in the "robolution" (robotics revolution) Bruno Bonnell, CEO of Robopolis, talks about.

Their first big public event is a one week long exhibition (FR) covering various aspects of robotics, and it will take place in Oct. 2013 in Metz, FR.

Have a look at their website (FR): http://www.techtic-co.eu/

Preparing such a big event requires a lot of work and a lot of collaboration with public services, other associations, industrials, high schools, etc. So after a few month of the staff tirelessly contacting potential partners, the date of Dec. 8th had been chosen to gather all these people in one place to make sure everybody is on the same page.

For this occasion, I have been asked to be the guest of honor, and to bring Xachi for a little demo. I don't have pictures/videos, but imagine me, awkward as ever, trying to explain my crazy passion to a crowd of 120 influent people (politicians, entrepreneurs, press)... Fun times ;)

Xachi learns to write

A week after the inaugural meeting of TechTic&Co, Xachi was once again up to make the show. This time, it was for a ceremony to celebrate the anniversary of the University the school I graduated from (ESIAL) depends of.

The name of said university is "Université Henri Poincaré" (aka UHP), after the great French mathematician born in the same town the university resides in. So the plan was to have an interlude near the end of the ceremony, where a student-made robot would write on a giant piece of paper "Merci l'UHP" ("Thanks to UHP"). I'm not a student any longer, but my robot was functional, cool and available, so in the end I got to do it.

To write stuff, I made an add-on to mount a pen on the robot. It's a little slide that can move up and down the support structure beneath Xachi's body. The pen is clamped on the slide with rubber bands, and pressure of the pen on the paper is maintained thanks to two other rubber bands driving the slide downward.

mP1010250_1365x1024.jpg mP1010248_1365x1024.jpg mP1010249_1365x1024.jpg
The slide with the pen on it

Working on the cursive L

As time was scarce, I had to do some quick and dirty coding to get things done in less than 24h... So the letters were divided into a few segments and curves each, and I tried to make them look like letters by tweaking the motion parameters (speed vector, turn rate and duration). In the end, since programming "Merci" would have taken too much time, I only taught the robot to write "l'UHP", and "Merci" was written beforehand on the piece of paper, by hand.

Have a look at the last test before leaving for the event venue:

Xachi writes stuff...

Xachi is proud of his calligraphy.

This is completely scripted, but making an automatic path generator taking a set of lines as input seems like a fun project for later...

I should get the videos of the event at some point in the future, stay tuned.

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!

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

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!

Wednesday, April 6 2011

Xachikoma @ Innorobo

Two weeks ago, the first Innorobo exhibition was held in Lyon, FR, and Xachikoma made a small apparition.

Here it is, just chillin' with his new friend ;) DARwIn_and_Xachikoma.jpg

I met and talked to plenty of wonderful people, including people from Robotis, INRIA Flowers (the guys doing the wonderful humanoid robot Acroban), Gostai, Wany robotics, ECCEROBOT (incredible life-sized compliant humanoid!), Robotsavvy, Ro-botica and many many more :). I also had the opportunity to stay at the Robotis booth Wednesday and Friday with my robot, and to meet volunteers from the Planete-sciences / Eurobot organization team.

Wednesday, after the exhibition closed, I was invited to the first ever DARwIn-OP Tutorial for Partners along people from Robopolis, Roboshop, Ro-botica, Robosavvy and other European robot distributors. We had one DARwIn-OP for three people to play with, and we could try our hands at using some of the stock software applications, like configuring the color tracking, modifying a motion sequence, or re-flashing the servo controller. Very interesting and we had some great fun. At the end of the workshop, I even could disassemble the arm of our DARwIn-OP :). A BIG thank you to each member of the organizing team!


As always, more in the gallery!

- page 1 of 2