LinuxDevices.com Archive Index (1999-2012) | 2013-current at LinuxGizmos.com | About  

A review of robotics software platforms

Aug 17, 2007 — by LinuxDevices Staff — from the LinuxDevices Archive — 9 views

Foreword: Today's nascent robotics market has engendered about 10 general purpose software development frameworks for service robots, including nine that support Linux. This article surveys seven of them, and sketches the other three, before concluding with an analysis of market trends likely to shape the robotics software landscape of tomorrow. Enjoy . . . !

Important Note — A newer version of this article, written a year later, is now available here. We have retained this version for historical interest.


A review of robotics software platforms

by Michael Somby

Introduction

Spread the word:
digg this story

This article gives a short overview of general-purpose robotics software platforms currently available for service robotics applications. The article is a compilation of the knowledge the author accumulated during recent experimentation work.

What is a robotics software platform?

By a “robotics software platform” we mean a software package that simplifies programming of several kinds of robotic devices by providing:

  • a unified programming environment
  • a unified service execution environment
  • a set of reusable components
  • a debugging/simulation environment
  • a package of “drivers” for most wide-spread robotics hardware
  • a package of common facilities such as computer vision, navigation or robotic arm control
As you see, there are several major components in any robotics software platform. None of the existing products was a perfect match from my point of view. Most of the products were missing something.

Robotic Software Platforms
PlatformType
Evolution Robotics ERSPPlatformCommercial
Microsoft Robotics StudioPlatformCommercial Free of charge for research and hobby
OROCOSMachine and robot control librariesOpen source & free
SkilligentRobot learning add-onCommercial
URBIPlatformCommercial
WebotsSimulation environmentCommercial
Player, Stage, GazeboPlatformOpen Source & Free
iRobot AWAREPlatformCommercial
OpenJAUSPlatformOpen source
CLARAtyPlatformOpen source

Why robotics software platform?

The cost of control software accounts for a large share of the overall cost of a typical robotics project. For example, up to 80 percent of an industrial automation project is spent on system integration, which includes software development/customization. So, the main idea behind any robotics software platform is to simplify the job of robotics software engineers — and thus reduce the project cost.

Besides software engineering challenges, there is still much AI research work left to be done when it comes to robotics. A set of reliable off-the-shelf software components integrated into a unified platform can really help to kick start any serious robotics project.

Finally, a behavior coordination problem needs to be addressed in the overall control system's architecture. Several behavior coordination approaches have been proposed in the research literature. Because this is a common problem, some of the robotics platforms provide a unified solution to the problem.

Overview of main players

Summary of Main Robotics Software Platform Players
EvolutionMicrosoftOROCOSSkilligentURBIWebotsPlayer, Stage, Gazebo
Open sourceNoNoYesNoNoNoYes
Free of chargeNoEdu/hbyYesNoNoNoYes
WindowsYesYesNoYesYesYesYes (sim)
LinuxYesNoYesYesYesYesYes
Distributed environmentNoYesNoYesYesNoYes (limited)
Behavior coordinationYesYesNoYesYesNoNo
Built-in robotic arm controlNoNoYesYesNoNoNo
Built-in object recognitionYesNoNoYesNoNoNo
Built-in navigationYesNoNoYesNoNoNo
Task/skill learningNoNoNoYesNoNoNo
Simulation environmentNoYesNoNoYes (Webots)YesYes
Range of supported hardwareSmallLargeMediumMediumLargeLargeMedium
Reusable service building blocksYesYesYesNot applcblYesNoNo
Real-timeNoNoYesNoNoNoNo

Evolution Robotics's ERSP

Evolution Robotics is building and marketing a set of robotics software and hardware components including a robotics platform called ERSP. The platform looks like a pretty mature product. It incorporates a robust visual object recognition system (ViRP) and a visual-based navigation and mapping (vSLAM) system. The computer vision system is based on a robust patented SIFT algorithm invented by David Lowe.

The platform comes with a graphical toolkit that can be used for building programs based of a number of reusable building blocks.


Behavior Composer of Evolution Robotics
(Click to enlarge)

The building blocks called behaviors are activated/deactivated in run time by a higher-level program called a task. ERSP doesn't provide a simulation environment. ERSP runs on Windows and Linux.

Microsoft Robotics Studio

Microsoft recently setup a team that delivered a robotics software platform called Microsoft Robotics Studio. The platform runs under Windows and Windows CE. A distributed runtime environment does most of the messaging and thread management tasks. Behavior coordination is based on the concept of service arbiters.

MSRS comes with a simulation environment and a graphical service development toolkit.


Microsoft Robotics Studio — Visual Programming Language
(Click to enlarge)


Microsoft Simulation environment
(Click to enlarge)


A growing number of robotics companies have declared their support for the MSRS platform.

OROCOS

OROCOS is an open source set of libraries for advanced motion and robot control. OROCOS comes with its own runtime environment optimized for real-time applications. The environment makes use of lock-free buffers, which makes it suitable for time-deterministic real-time applications.


OROCOS

OROCOS comes with a set of reusable components and a set of drivers for selected robotics hardware. A kinematics and dynamics library is an application independent framework for modeling and computation of kinematics chains, such as robots, biomechanical human models, computer-animated figures, machine tools.

OROCOS doesn't come with a unified graphical development environment or simulation environment.

Skilligent

Conceptually, Skilligent stands aside in the list of robotics software platforms. Instead of simplifying robot programming, Skilligent eliminates the need to program robots by introducing an implementation of a trainable control system.

Skilligent's robotic behavior control system is based on the concept of developmental robotics, a new approach in artificial intelligence and robotics that focuses on the autonomous robot learning of general-purpose, task nonspecific control systems.

Skilligent allows converting a regular robot into a sociable robot that can be trained by an end user (vs. programmed by a software engineer). The robot control software exhibits certain supporting social interaction capabilities that make training and collaboration with robots more natural for humans. During a robot learning session, such a robot interacts with its human trainer through gestures, sounds, object manipulations and joint attention.


Robot learning session — under control of Skilligent


Skilligent Behavior Control system


The key technology incorporated in the software is a set of algorithms that build generalized representation of a task/skill learnt from a demonstration. The software comes with built-in object recognition, sound recognition and visual navigation modules optimized for robotic learning.

Strictly speaking, Skilligent is not a platform, but rather an add-on to a robotics platform as it can be integrated with any of the platforms presented in this article.

URBI

URBI is a robotics platform built by Gostai. Instead of creating a graphical service creation environment, URBI introduced its own language optimized for creation of parallel and distributed event-driven services.

For every new kind of robot, Gostai promises to build an engine that executes the programs written in the proprietary language. Gostai provides engines for a variety of robots including Aibo, Mindstorms and Khepera.

URBI is a distributed platform that allows running a service code across several computers working together in a cluster. Gostai's partners provide components such as computer vision and speech recognition.

The platform doesn't have its own simulation environment, but it has been recently integrated with Webots, a popular commercial robotics simulation environment.

Webots

Webots is a popular commercial robot fast prototyping and simulation environment marketed by Cyberbotics. Strictly speaking, Webots is not a robotics software platform, but rather a simulation engine with prototyping capabilities.

The simulation environment comes with models of multiple virtual and commercially available robots including bipeds, wheeled robots and robotic arms.


Webots fast prototyping and simulation environment
(Click to enlarge)

Player, Stage, Gazebo

The Player is an open source TCP/IP-based hardware abstraction layer for a growing number of robotics hardware platforms. The Stage and Gazebo provide accompanying simulation environments. The environments support multi-robot simulations that are suitable for research in swarm- or team-working of robots.


Player, Stage, Gazebo
(Click to enlarge)

Running on a robot, Player provides a simple interface to the robot's sensors and actuators over the IP network for reading data from sensors, writing commands to actuators, and configuring devices on the fly.

Other platforms

There are several other robotics software platforms available on the market — such as iRobot AWARE, OpenJAUS, CLARAty, YARP. The author hasn't had a chance to study those platforms closer. Here is some information:

  • iRobot AWARE is a robotics software platform announced by iRobot. It is assumed that the platform is built for a range of military robots produced by the company for the US military. According to Rodney Brooks, the company utilized some of the available open source code to speed up development of their own product. From the information available, we couldn't derive whether or not AWARE uses Rodney Brooks' subsumption architecture for behavior coordination and control.

  • OpenJAUS is an open source implementation of Joint Architecture for Unmanned Systems (JAUS). Vecna company seems to be promoting OpenJAUS and using it on their BEAR robot.

  • CLARAty is a software platform built by NASA and then released as an open source project. It is not totally free software though. The software seems to provide a set of interesting algorithms such as visual heading and pose estimations, and visual wheel sinking estimation.

Market trends

The sweetest dream of any robotics platform company is to see their product being pre-installed on a mass-produced commercial robot (just like Windows is pre-installed on new PCs). This is still yet to happen. In the meantime, education and research institutions are the major customers of the vendors of robotics platforms.

The introduction of Microsoft Robotics Studio put pressure on several companies offering robotics software platforms. What Microsoft can afford to give away for free, other companies (like Evolution, Gostai and Cyberbotics) are trying to sell. This will probably spoil the education/research market in longer term.

The research/education/hobby market seems to be quite limited and nearly saturated. The growth could come from the industrial automation or service robotics market if the companies can find inroads into those markets.

On the industrial robotics side, most established manufacturers of industrial robots provide their own platforms for programming their robots (e.g. look at ABB's robotics software products). They would probably prefer selling their own products other than using third-party products. To counter this tendency, OMG robotics group has recently staged an orchestrated campaign to create a set of standards that would break such vendor lock-in. The efforts are in the very early phase, but we hope they will produce working standards in medium-to-long term. A similar but independent development is going on in Europe — look at European Robotics Platform web site.

On the service robotics side, we will probably see emergence of common robotics software platforms especially for military robots where compatibility of inter-systems interfaces is of special importance (look at the JAUS standard). In the US, the largest share of robotics research is driven by military requirements. So, we'll probably see emergence of standards for remote operation, swarm-coordination and navigation components. In contrast, most of the European research efforts are orchestrated around the goal of building a new kind of industrial robot or a service robot for home and office applications (PACO-PLUS, SMERobot, COGNIRON).

An interesting evolution of the concept of a robotics platform was recently presented by Skilligent. They built a software product that allows a robot to develop needed skills autonomously while interacting with humans. Theoretically, this largely makes most traditional service creation environments obsolete as such a robot can be trained directly without programming. On the other hand, the skills that the software cannot pick up from the user still need to be programmed in a “traditional” way. We expect such systems become smarter and smarter — so in longer term, the learning robots will probably dominate the service robotics market as they promise to be more flexible.

Consumer robotics market is proved to be very price-sensitive. The current most-talked-about consumer robot, the Roomba vacuum cleaner, is priced less than the cheapest versions of most robotics software platforms. So, it is too early to talk about common robotics software platforms for consumer robots.

There is one more aspect where competition is about to begin — Linux vs. Windows. Linux is currently supported by most of the robotics software platforms. Microsoft is pushing Windows XP/CE as a standard robotics OS. My guess is that both will have their shares of the future market; but the proportion of the shares remains a question mark.


About the author: Michael Somby is a professional control systems engineer focusing on avionics systems and industrial control systems. His experience ranges from an autopilot design up to building a control system for a power plant. In his leisure time, he is a long-time enthusiast of mobile robotics and artificial intelligence.


 
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.