Free software controlled robots at LinuxTag
Robert Schuster
|
05. junio 2007
|
I was at LinuxTag last week and we (that is my colleagues at tarent and me) had a stand with a box of Lego Mindstorms robots which could be remote controlled using a Nokia N770/N800.

Besides the box research and development of new robots took place ...

The connection between a robot and an Internet Tablet is done via Bluetooth, which at the software level looks like a serial interface. The robots mind, an NXT brick, speaks a special protocol for which we had to use the iCommand library on the Internet Tablet. And this is where things get interesting, because iCommand is written in Java and there is no J2SE and no Java runtime for the Nokia devices. However the Cacao JVM along with GNU Classpath did the job very well filling those gaps.
The low level serial communication is done using the RXTX library which is a free implementation of the Java Communication API.
At the user interface level we used an extended version of the Java-Gnome Gtk+ and Gnome library binding for Java. It was extended because the currently released versions only provide a very small set of widgets for which the binding has been created manually. The additional widgets have been made available using Java-Gnome's binding generator which is currently under heavy development. However it already produces usefull results (Patches for the generator by Sebastian Mancke have already been sent upstream).

As you can see on the next image the Java-Gnome version for the Hildon application framework sports those customized window menus.

And finally this is what Jalimo is all about: Make the application environment of GNU/Linux-based mobile (or embedded) devices available for Java programmers. This should help them to write applications which will fit optically and technically (e.g. system services) onto the devices and use their preferred programming language.
Next application framework to be targeted: OpenMoko!
Since feedback at LinuxTag about the robot experiment was so good we decided to put all the applications and libraries we used into the Jalimo repository for others to play around and/or extend it. Just give us some time to sort the things out.
EDIT: Replaced HTTPS links with HTTP ones.