Rosjava – Java for Robotics?
In May Google and Willow Garage announced the first pure-Java implementation of ROS - Willow Garage's Robotic Operating System. Called “rosjava”, the new library is still at alpha level, but it is clear from their forge that active development continues.
Android is is well suited for robotic applications with its support of audio, accelerometers, GPS, cameras and wireless. The human factors of smartphones and tablets make them great devices for people monitoring and controlling robots. Audio, text-to-speech, speech recognition and touch displays all promote useability in a familiar context.
In a compelling demo at Google I/O, Ken Conley walked through constructing an application that let him hold up a tablet, turn his head and have the robot follow suit. He could see what the robot saw. In effect he had added a telepresence capability equivalent to a head mounted display. The tablet sent messages to the robot's existing ROS-hosted application seamlessly extending new capabilities over wifi.
ROS itself is intended to be as language independent as possible, supporting C++ and Python in addition to Java. The idea is to specialize functionality in “nodes” such that each node does one thing really well. Nodes are then able to message other components using a ROS-based application to create the needed coordination. Nodes can easily be distributed such that robots share and exploit common resources in the cloud.
There are a number of robots available with ROS. Willow Garage has designed Turtlebot as an inexpensive, open-source mobile platform which integrates machine vision using Microsoft's Kinect. If you already have iRobot's Create and a laptop, a kit can cost as little as $500-$600. Turtlebots have an avid hacker following and are available from Clearpath Robotics and I Heart Robotics.
An inexpensive open source kit featuring a robotic arm is available from Bilibot. Bilibot should resume deliveries later this month after having run out of stock. More expensive will be iRobot's AVA, a Xoom powered Android robot which is expected to be introduced in the fall for creating telepresence applications. Finally Luna is a personal robot which is already out to developers.