Even if it is quite difficult to write, I have to face the reality. I have nothing to send today to the KUKA Innovation Award team. Failure is bitter, and this one really really bitter. I have to keep in mind that failing is the mandatory way to improve himself. So let’s sum what happened and what has been done up to now.
Note: the first links refer to my previous blog.
May ‘13
I have discovered robotics thanks to the free trial of Webots, the simulator from Cyberbotics. It was something that I had in mind for months and starting with a simulator has been really convenient.
After this first trial, I looked for a robotics platform to play with a real robot. I had the Roomba in mind for a while, the vacuum cleaning robot. This robot is broadly available and I found a lot of doc to hack it.
I finally discovered the KUKA Innovation Award, and the youBot robotic platform. The price tag of this robot was too high for me. The solution was to apply to the sponsor track, in which a youBot would be rent for free. I just had to find a project idea.
June ‘13
I have been deeply moved by the robot Kismet, the affective computing and the human robot interaction (HRI) in general. My project idea was to develop HRI around an robotic platform that is really far from a human shape, the youBot in this case. Most of the HRI initiatives are based on humanoids and try to mimic human behaviors. This is a very challenging target and unreachable for me. My personal challenge was to deliver something to interact with any robot and develop behaviors that could be understood by anyone.
Let’s call it a well-design interface for a robotic system.
I also wanted to use Android based devices as sensors. Robotics sensors are very expensive and a simple smart phone is bundled with a lot of interesting features.
The deadline for the initial submission was the 14th. The form has been sent on time.
I learnt Java the year before. I spent the end of the month to learn how to code on Android platforms. There is no console, so the tricky part at that time was to master the GUI.
After a couple of experiments, I moved my coding environment to Ubuntu (the on-boarded PC of the youBot is based on Ubuntu), and never switched back to Windows since then.
July ‘13
I had a specific goal in mind when learning Java on Android: build an program that could speak to a script in Python on the PC through the USB interface and the Android Accessory protocol. I have finally mastered this pretty well. I am very proud of this detail blog post published after this result.
During this month, I also learnt a lot about ROS and Gazebo. This simulator is not very easy to use. Do not get me wrong, I like it very much. You have to be careful of how to start and stop it. My goal was to convert an outdated youBot description to the last standard. Even with some success, I was really far for a workable release.
August ‘13
This month is very special, since I have started to keep all my sources on GitHub. I instantly became a big fan of the service.
I have fine tuned Gazebo by activating the NVIDIA graphic cards of my laptop from Ubuntu. Tricky not to say time consuming, as usual for a mix of open source and close source software.
I have delivered my first ROS program, a Python teleop program for my youBot package. To do that, I had to design how to interact with a Python script from a command line interface, a work that I still use a lot.
Unfortunately, I faced strong issues with the inertia and at that time, I did not have the skills to handle it.
September ‘13
I was already really really late for the KUKA award. I was not mastering the robot at all. So I have defined a new planning to have something to show for the coming form submission.
I tried to work on the workspace of the youBot. I realized after that this work was quite amateurish, as I learnt it during the CS223A course. Anyway, this pure experimental work made the theoretical knowledge from the robotics course even more beneficial. And I have learnt mathplotlib.
During this month, I have open the GitHub repo for my project, dubbed “kuk-A-droid”. The README has been well written and a couple of code stubs have been pushed to the repo.
The integration between ROS and Gazebo became erratic, and it has been painful, not to say a nightmare, to have a working simulation of the youBot. Gazebo was under heavy development and I considered at that time that using an instable version for the project was a mistake.
October ‘13
In October, the integration between ROS and Gazebo was so bad, that I gave up the simulator for a pure kinematics approach. I had this idea after a couple of experiment, and with better robotics knowledge, I could have done it before.
A lot of documentation has been written on the kuk-A-droid repository during this period (in the wiki). The main one is the design of a social behaviors for a robot like the youBot. It was after all the core topic of my project, and it has been a real pleasure to write this.
The final application form has been submitted on time. This one was clearly far better than the previous one. Unfortunately, the progress was quite poor and I had nothing to show.
Thanks to a blog post around the USB hack, I have found a contributor to the kuk-A-droid project. A call for contribution has been issued for general purpose and call for a graphics animator. I have been inspired by the fantastic OpenWorm project. This is how science should be done nowadays. I really wanted to expand the team.
Last event for October, I have started a new blog dedicated to my work and learning in robotics. This last one is based on octopress and hosted on GitHub pages.
November ‘13
My call for contribution for a graphics animator has been successful and the one that joined the team produced this demo in threejs. There are many similarities between animation and robotics and even more with robotics simulation. He did a fantastic work on the meshes. The mecanum wheels movement are very realistic.
KUKA contacted me for a new page on their website, listing all projects based on the youBot. The kuk-A-droid project has been posted on it. This was a first achievement for the team.
This month, the integration between ROS and Gazebo has been fixed. Anyway, my new approach was to control the full trajectory, and to do that, I have developed a sequence editor that generates smooth joint position curves. I got inspired by the animation world. I learnt afterwards that it was a good method for defining trajectories.
But the real event of this month is that after one month and an half without feedback from KUKA and the opportunity to be sponsored, I more or less gave up the award. Not an easy decision as you can imagine.
December ‘13
After this decision, I have defined a courses and projects plan for the next year. I missed a lot of basic robotics knowledge during the project, so this plan aimed at giving me the background for most of robotics topics (well, I am quite late on this now).
During this month, I have started the CS223A Introduction to robotics from Stanford Engineering Everywhere. I learnt a lot, it was clearly a required starting point.
In the last day of the year, I have discovered by luck on GitHub that the Award was still on-going. Without news from KUKA, it was clear that I was no longer on race.
January 2014
The CS223A was quite time consuming and I decided to focus as much as possible on it. I had to master again matrix geometry and derivatives. No code during this course, so I took the opportunity to learn LaTeX.
The 22nd of January I finally received a mail from the KUKA innovation team. I have asked if they could rent me a youBot, but unfortunately they couldn’t. I was really pleased to be in the loop. That was nevertheless not clear if I still had an opportunity to propose something (considering that the results are expected on an hardware platform).
The deadline for the final submission was the 17th of March.
February 2014
I focused on the CS223A and a couple of side topics.
March 2014
I have finished all the lectures and homeworks of the CS223A. As of writing, I still need to code them in LaTeX.
The 17th of March is today I will not send anything the KUKA innovation team.
Note: this blog post has been published almost one month after the deadline (but started the very day).