Friday, December 17, 2010

Android stretches its legs... errr wheels... with help from 20% time at Google

Today we announced a fun 20% robotics project that resulted in three ways you can play with your iRobot Create®, LEGO® MINDSTORMS®, or VEX Pro® through the cloud. We did this by enhancing App Inventor for Android, contributing to the open source Cellbots Java app, and beefing up the Cellbots Python libraries. Together these apps provide new connectivity between robots, Android, the cloud, and your browser.

You can start empowering your Android phone with robot mobility by picking the solution below that matches your skill level and programming style:

  • App Inventor for Android
    This is an entirely cloud based programming environment where you drag and drop elements into a project right within your browser. The latest features for robots include a low level Bluetooth client for connecting with many serial-enabled robots, and tight integration with LEGO MINDSTORMS. There are seven LEGO components in all, with NxtDrive and NxtDirectCommands used for driving and basic control while NxtColorSensor, NxtLightSensor, NxtSoundSensor, NxtTouchSensor, and NxtUltrasonicSensor are used for sensors.

    Also be sure to try out the social components to connect with Twitter, and TinyWebDB for hooking up to AppEngine. All of these can be used together to make your phone a powerful robot brain.

  • Cellbots for Android

    We wanted to offer a flexible application that could drive multiple platforms and support different control modes. To do this we created the Cellbots Java application which currently supports four robot platforms and allows additional robot types and UI control schemes to be added using the standard Android SDK. It is entirely open source and available for free in the Android Market so you can try it out right away.

    With it you can use the phone as a remote control with D-Pad, joystick, accelerometer, or voice control inputs. Then try mounting your phone to the robot in brain mode where you can stream video back to a web browser and make the robot speak using Android’s native text-to-speech. For those of you with two Android phones, we support remote-to-brain mode where you can ask the robot for its compass heading or change the persona on screen.


  • Cellbots Python library

    The 20% team got together to create a more modularized version of the popular Cellbots project, which is all open source code. The goal for the Python library is to allow developers an easy way to demonstrate the features on Android phones suitable for robots. There are commands to make it speak, listen, record audio, take pictures, get a geolocation, and of course provide the I/O to the bot.

    The Python code is the most flexible in terms of connectivity with support for Google Talk chat over XMPP, HTTP through a relay or direct connection, telnet, and voice input. To use it you just need to install the Scripting Layer 4 Android and enable the Python interpreter. Then copy over the Python and config files to the SD card and script away.

We hope this gives developers, hobbyists, and students a head start in connecting the next generation of cloud apps to the world of robotics. Be sure to push your mobile phone’s processor to its limits and share the results with the Cellbots Google Group. Try using Willow Garage’s OpenCV for Android or the new Gingerbread APIs for gyroscopes, enhanced OpenGL graphics, and multiple cameras!


  1. This was was the sorta of stuff I so wanted to do when I bought Mindstorms. Nice work!

  2. That was also the first thing I did when I got my Mindstorms Kit and my Galaxy Tab.
    I only had some trouble with the video streaming part. I would love to know how you implemented the streaming.

    Here is my experiment:

  3. Nice projects !

    I did some SDK and of course NDK programming to give the Android Sensors, Camera and Audio-Input to my autonomous NXT robot:

    Here you can see my experiments:

  4. ooooo, me thinks reprap will be a perfect add on for this...

  5. Check out and get free international calls. there are some limitations on what countries you can call for free but you can call for as long as you want! They are supposed to be coming out with an Android and iPhone application soon also!