Hacking Robots Like Aibo and Robosapien
The Accueil Internet Actu website has a long article on ‘pirates’ and hacking robots like Aibo, Robosapien, and others. It looks great – but unfortunately it’s all in French, so it’s going to take me a while to do a translation. In the meantime, the article photos are great – well worth taking a look at even if you don’t speak a word of French.



InternetActu.net » Pirates de robots
Robot Battle – NTV – Sunday, February 20th
The weekly Robot Battle segment on NTV's Sunday "World Records" program has gotten a little wilder. This Sunday's competition was between Afro and a new robot named Ushiwakamaru.

Afro, named for his distinctive hair style, is 45 cm (17.7 inches) tall, and tips the scales at 2.6 kg (5.73 pounds).

Like most of the competitors, Afro is definitely a family project. The designer's mother knits Afro's sweaters - and possibly even his hair.

This time around Afro surprised everyone with a new (pink?) hair do and a letter sweater complete with little hearts.

One of Afro's unique defenses is his ability to blow bubbles out of the top of his head. I'm not exactly sure why they added this feature, but it may be intended to confuse the other robot's sensors in some fashion.

Afro's competitor was Ushiwakamaru, who takes his name from a famous 12th century Japanese hero that was proficient in martial arts.

Ushiwakamaru, in addition to the splendid costume, featured Japanese fans that erupt from his sleeves and can be used as offensive weapons - in the martial arts tradition of being able to use anything as an effective weapon.

From a pure specification/performance perspective, it looked like Ushiwakamaru was way in front of Afro. The two charts show the relative performance of each robot for a number of factors including power, speed, etc. From this analysis, Afro seems totally lopsided. This was evident in their pre-match routines when Afro seemed a little clumsy and unstable, while Ushiwakamaru moved with a lot of grace and speed.

Early in the match Afro tried blowing bubbles, but Ushiwakamaru was well prepared. He immediately extended his fans and blew the bubbles right back in Afro's face. Of course this resulted in a lot of laughter and cheers of approval from the audience.

Afro's strongest move seems to be a head butt. He maneuvers up close to his opponent, then throws himself forward crashing his massive hairdo into the opponent's chest. This works surprisingly well, and often results in the opponent falling over backwards.


Ushiwakamaru quickly got wise and countered using his extended arms and fans to keep Afro at bay. His balance was so good that he frequently stood on one foot while swinging his fans.

When he was able to land a solid fan punch, he could knock Afro off his feet.

There are 4 more matches left in this series - which means that the final broadcast should be right around the time of the Robo-One competition here in Tokyo. I wouldn't be surprised if NTV does some type of tie-in special program, though nothing has shown up on the television schedules yet.
Robosapien Choreography Program – Some Thoughts
Now that my laptop can send commands to Robosapien, it's time to cobble together some sort of a control program. The first iteration will probably be a "player piano roll" type that will eventually get expanded to include a rich function set - hopefully including sensors and some type of video feedback.
The initial pass could be something as simple as an interpreted text file. Using the existing command names, the text file would look something like this-
<larmallup> ' left arm all up <larmout> ' left arm out <leanr> ' lean right
Of course, the interpreter will need to handle the parsing, ignore the comments, and keep track of the elapsed time. My concern is that since there is no direct feedback from Robosapien to indicate the completion of each command, it may be very easy to get out of sync and have the commands sent faster than Robosapien can receive, decode, and act upon them.
Once I have that up and debugged, then the next step will be to add some additional functionality. It would be useful to have a programmed pause or wait state. For example, if I wanted Robosapien to do an ocean 'wave' move, it would look similar to this-
<larmallup> ' left arm all up <larmout> ' left arm out <leanr> ' lean right <rarmalldown> ' right arm all down <rarmin> ' right arm in <wait time=5> ' pause <rarmallup> ' right arm all up <rarmout> ' right arm out <leanl> ' lean left <leanl> ' lean left <larmalldown> ' left arm all down <larmin> ' left arm in <end> ' end of sequence
The <wait time=5> command simply suspends the transmission of new commands to Robosapien for a given period. It will take a little experimentation and testing to determine the best intervals to use. Perhaps tenths or hundreds of a second.
Most music and dance includes lots of repetition - a musical phrase or set of dance moves may be repeated over and over again during a single performance. If the repetition is simple - say just repeating a single command, then we can add a 'repeat=n' command for the interpretor to process. If the repetition is more complex involving a sequence of commands, then it could be implemented using the gosub/return model.
<gosub dosedo> ' <whistle> ' <gosub dosedo> ' <whistle> ' <gosub dosedo> ' <fart repeat=3> ' <end> ' ' <sub dosedo> ' <walkf> ' <wait time=5> ' <walkb> ' <wait time=5> ' <return> '
I'm going to give it some more thought, but will probably start putting together some initial code over the next week or so.
Progress With A Robosapien Control Application
Progress always seems to come in fits and starts. I make some headway, then hit a bump in the road that either slows me down, or totally distracts me. Sometimes it's so severe that I get totally frustrated and have to set a project aside for a while. At other times it seems like everything wants to come together almost effortlessly. Thankfully, I seem to be in one of the latter cycles right now and everything is going pretty smoothly - knock on wood.
I was able to get the USBUIRT working with Girder, and to confirm that I could send commands to my Robosapien. The next step was to explore the USBUIRT API and DLL to see how it could be modified. The API is a 'developer' tool, and isn't provided with the USBUIRT, but if you have purchased a USBUIRT and are trying to develop an application based on it, you can request a copy from Jon via the support email address on his website. Jon was also kind enough to include a sample test program written in Visual Basic - which was great since I have a lot of experience with VB and will probably use it as the platform for a lot of my projects.
The test program was fairly easy to understand - especially since all I really wanted to do at this point was to transmit an IR code to the Robosapien. Getting the IR code format set correctly took a little while, and I was hindered by a bug in my VB installation that caused it to crash unexpectedly. The IR code format concern was sorted out by looking at other people's code on line to see how they had solved the problem. The VB problem was solved by a patch down-loaded from the Microsoft support website. Then, about 10:00 pm on Sunday night, I was finally able to send commands from a VB program running on my laptop to Robosapien!
The next step is to develop a spec for a fully functional control program, and then code it in VB. It looks like it should be very straight forward to develop a remote control program that just emulates the Robosapien remote. However, I think that particular approach might get boring very quickly. Besides, I always have the physical remote in case I need to use it.
At this point I'm leaning towards a choreography type controller. Something that would allow me to build up movement sequences and allow for macro loops, delays, repeats, and the like. It also needs to consider the elapsed time to execute each command into consideration. For example, when Pixar or Disney put together an animated movie they usually do the vocals and music first, then fit the animation timing into the audio tracks. I suspect that the same approach would work well in this case.
Assuming that I take that route, I will need to define a syntax - a command set, and a good place to start is with the commands that have already been setup by other Robosapien experimenters using the Girder application. The Girder GML file is basically a flat text file that includes a lot of parameters that won't be needed in this application. Pulling out just the group names, actions, command names, and the corresponding USBUIRT IR codes should provide a strong base for the choreography application (see the IR control code table below. )
’Progress With A Robosapien Control Application’ continues
Robot Soccer Article Features VisiOn and Team OSAKA
The Japan Times published an interesting article featuring the VisiON robot and Team OSAKA as a lead up to this summer’s RoboCup competition. The complete text of the article is available online via the Japan Times website or by the direct link below.
“Members of Team OSAKA bubbled over with excitement after their teammate scored a goal in a penalty-kick shootout, leading the team to victory in a sort of world soccer championship. The little goal-scorer is a 39-cm humanoid robot named VisiON. VisiON was a star in the humanoid league in last year's international robot soccer contest, called the RoboCup, held in Lisbon in July. RoboCup 2004 was the eighth annual event of its kind. The objective is to make a team of autonomous humanoid robot players that can defeat a human World Cup champion team by 2050.”












Recent Comments