Category Archives: openmoko

openmoko and robotics

It’s often said that open source software fosters innovation because people can be inspired by work of others and use it in ways that the original author never thought of. The same applies to open hardware and the Openmoko Freerunner is open both sw and hw wise so it lends itself easily to such unforseen uses.

Among other things I use mine for robotics. With high res touch screen, 400Mhz CPU, Wifi, Bluetooth, 2 accelerometers, GPS, USB and other stuff it really has basically all that I have ever needed for a robotics project and I can’t think of anything else that would offer the same specs in similar size for 350€. Obviously you also need a some GPIO lines, PWM, I2C ant other similar IO stuff for a robot and for that purpose I use another open source product – Arduino Duemilanove.

mokobot

Basically I prefer to design my robots in two logical parts:

  • The brain that analyzes the sensory input and makes decisions. In this case this is the Freerunner.
  • The peripheral nervous system that handles sensors and actuators. This role is handled by the Duemilanove in this project.

Using this separation allows me to more or less easily switch either of those boards for something else. For example when I need more CPU power for the brain part I might just swap the Freerunner with Beagleboard and the only thing that I would have to change is the USB cable that connects the boards. Having the boards connected just by USB cable means that I didn’t have to rip the Freerunner apart and so when I’m finished with hacking on the robot I can just take the Freerunner and use it for other purposes. Another nice thing about this kind of bot architecture is that I didn’t have to solder anything at all besides the USB cable to get a usable robot base, which is important for people who don’t know much about electronics (like me :-)).

Since the Freerunner has onboard Wifi I just SSH into the robot over it and this allows me to debug and control it without having to connect any special wires / programmers when I want to change something. Openmokos touch screen is also a really good place for displaying various debug information – for example what the environment looks like from the robot’s perspective.

icebiking with the freerunner

Recently I spent half a day trying to find a shop in Tallinn that would have a universal PDA/phone/GPS holder for bicycle in stock that would be able to hold the Openmoko FreeRunner.

There’s a suitable one described in this blog post but since I had a ride planned for the next day ordering it from Germany was out of the question. So I quickly hacked something together myself. It isn’t exactly beautiful but at least it’s extremely sturdy.

Here’s how it looks in action:

freerunner on the bike

Basically I cut it out of 2mm Al sheet (actually chasis of an old tube amp). After that it was more or less just a matter of bending. There are some pictures of a similar but a more beautiful holder project here, sadly my metal saw is far too wide to cut such nice round curves.

freerunner from the side

We rode for 4.5 hours and it was -7 degrees C (19.4F) so I was very positively surprised that the battery of FreeRunner held up for so long in that kind of cold with GPS enabled & TangoGPS running. Actually when I turned it off it still had about 20% battery remaining.

Here’s our GPS tracklog @ OpenStreetMaps

Marju icebiking

a winter road

me