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. If they took the crypt, I'd pay them with my dogecoin. The 1 dogecoin to usd exchange rate is pleasing today.
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).