Bringing robots to their senses

With the release this week of a new robotics operating system, Microsoft and Google have yet one more free-vs-free field of battle. Visualization technology plays a key role in each company’s approach to robotics.

A close-up of PR2 from Willow Garage, a robotics software development platform. (Image courtesy Willow Garage)

This week Google introduced an open-source robot OS (ROS), Rosjava. The early-state ROS is Android-compatible, based on Java, and works with the Android Open Accessory API, which is designed to connect a wide range of devices, including cell phone, souped-up bikes, camera, clocks, and other household items. The release of Rosjava means there is yet another venue for Google to compete with Microsoft, which since 2008 has offered the free Microsoft Robotics Developer Studio (RDS), a closed-source tool for hobbyists and commercial developers to create robotics applications for a variety of hardware.

At this week’s Google I/O conference, several experimental projects were on display, including a squat little robot reminiscent of R2D2, but with an Android tablet for a head. Using Rosjava, the tablet subscribed to the robot’s camera and the robot subscribed to the tablet’s accelerometer, becoming together capable of processing the necessary data for locomotion. At the conference Google described a scenario of linking up robotic hardware with tablets or other mobile devices and cloud computing to lower the cost of robotics by offloading mapping and sensor/video processing to the cloud, reducing battery requirements and the need for PC-class processing on-board.

The Microsoft approach

Google’s Rosjava competes for mindshare with an existing robotics software environment from Microsoft. First launched in 2008, Microsoft Robotics Developer Studio (RDS) is a tool for hobbyists and commercial developers to create robotics applications for a variety of hardware. The software includes a service-oriented runtime, a set of visual authoring and simulation tools, tutorials and sample code. Programs can execute natively on PC-based robots running one of the Microsoft Windows operating systems, enabling fully autonomous operation.

The Microsoft Robotics Developer Studio enables simulations for robot behavior using Nvidia’s PhysX. (Source: Microsoft)

RDS includes the Microsoft Visual Simulation Environment (VES) with Nvidia’s PhysX engine to simulate the behavior of robots. The RDS tools provide a visual programmers environment for people who are not experienced programmers. The software includes samples for a small number of platforms; robot vendors support RDS and more help can be found on CodePlex.

VSE provides the ability to simulate and test robotic applications using PhysX. This allows developers to create robotics applications virtually. Sample simulation models and environments enables inventors to test application in a variety of 3D virtual environments.

The software enables users to create robots that can be monitored across the web and can be controlled using HTML commands and JavaScript. So, for instance, you can mount a camera on your robot and send him off to explore remote locations. The software also enables the development of asynchronous behavior such as accepting input from sensors and responding with output to motors and actuators.

RDS supports single and multi-core processors. It’s extensible, enabling developers to add their own libraries and services. Robot vendors can add features to make their robots compatible with RDS. Programmers can work with RDS using C# in Visual Studio and Visual Studio Express or they can use the Visual Programming Language included in the RDS package. The software supports various modes of communication with robots including serial port, Bluetooth, 802.11, or RF modem.

There are plenty of resources available for the tinkerer. For instance, iRobot offers a version that’s customized for robotics called the Create. It has a micro-controller that can be directly controlled via serial port and it also supports a serial-to-Bluetooth device for remote control. Other hardware platforms can be found at http://www.microsoft.com/robotics/Content.aspx?pg=Robots.