A Review of Robotics Software Platforms
Email this Article to a Friend.This article provides an overview of general-purpose robotics software platforms currently available for service robotics applications. The article is a reflects information the author accumulated during recent experimental work.
What is a Robotics Software Platform?
For the purpose of this article, a ‘robotics software platform’ will be defined as a software package which simplifies programming of several kinds of robotic devices by providing:
• A unified service execution environment;
• A unified programming environment;
• An integrated debugging and simulation environment;
• A package of common facilities such as computer vision, navigation, robot learning or robotic arm control;
• A set of reusable application building blocks such as robotic behaviors; and
• A package of “drivers” for the most wide-spread robotics hardware.
As given in Table 1, there are several major components in any robotics software platform. From our point of view, none of the existing products provide a perfect solution.
Table 1: Robotic Software Platforms
Why a Robotics Software Platform?
Control software accounts for a large share of the overall cost of the typical robotics development project. For example, up to 80% of budget of the average industrial automation project is spent on system integration, which includes software procurement, customization and development. The main idea behind any robotics software platform is to simplify the job of robotics engineers, thereby reducing the overall project cost. In addition, a set of reliable off-the-shelf software components integrated into a unified platform can really help to kick start any serious robotics project.
Behavior coordination problem must be addressed in the overall robotic 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.
Table 2: Features of Selected Robotics Development Platforms
Evolution Robotics’s ERSP
Evolution Robotics sells a set of robotics software and hardware components including a robotics platform called ERSP. This mature platform 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 ERSP platform itself comes with a graphical toolkit which can be used for building programs based of a number of reusable software building blocks.
Figure 1: Behavior Composer of Evolution Robotics
In the ERSP product, 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 which delivered a robotics software platform called Microsoft Robotics Studio (MSRS). A growing number of robotics companies declared their support of the MSRS platform. 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. The products come with a simulation environment and a graphical service development toolkit (see Figure 2 and Figure 3).
Figure 2: Microsoft Robotics Studio – Visual Programming Language
Figure 1: Microsoft Simulation Environment
OROCOS
OROCOS is an open source set of libraries for advanced motion and robot control. The platform includes its own runtime environment optimized for real-time applications. The OROCOS environment makes use of lock-free buffers which makes it suitable for time-deterministic real-time applications, including those involved with robotics.
Figure 4
OROCOS comes with a set of reusable components and a set of drivers for selected robotics hardware. A kinematics and dynamics library, an application independent framework for modeling and computation of kinematics chains, such as robots, biomechanical human models, computer-animated figures, machine tools, is also found within the environment. OROCOS lacks a unified graphical development environment or simulation environment.
Skilligent
Conceptually, Skilligent stands apart from the other robotics software platforms described in this article. Instead of simplifying robot programming, Skilligent eliminates the need to program robots by introducing an implementation of a trainable control system.
Skilligent’s robot behavior control software 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 the conversion of a regular robot into a sociable robot which can be trained by an end user (vs. programmed by a software engineer). The robot control software includes supporting social interaction capabilities which make training and collaboration with robots more natural for humans. During a robot learning session, the robot under development interacts with its human trainer through gestures, sounds, object manipulations and joint attention.
Figure 2: Robot Learning Session – Under Control of Skilligent
Figure 6: Skilligent Behavior Control system
The technology incorporated in the Skilligent software is based on a set of robot learning from demonstration algorithms which build generalized representation of tasks and skills passed on from a human. The Skilligent environment comes with built-in object recognition, sound recognition and basic visual navigation modules optimized for robotic learning.
Besides task-level behaviors, Skilligent can be trained to execute low-level control policies called ‘skills’. Task-level behaviors combine low-level skills in a hierarchical structure. Strictly speaking, Skilligent is not a ‘platform’, but rather software that can be added on to a robotics platform (it can be integrated with any of the platforms presented in this article).
URBI
URBI is a robotics platform built by Gostai. With URBI, Gostai introduced its own scripting language optimized for creation of parallel and distributed event-driven robotic services.
For every new kind of robot, Gostai promises to build an engine which executes programs written in the scripting language. Gostai provides engines for a variety of robots including Aldebaran Nao, Aibo, Lego Mindstorms and Khepera.
URBI is a distributed platform which allows running service code across several computers working together in a cluster. Gostai’s partners provide components such as computer vision and speech recognition.
The URBI platform does not have its own graphical service creation environment yet, but such an environment called URBI Development Studio appears to be under development.
URBI has been recently integrated with Webots, a popular commercial robotics simulation environment. Gostai also plans to integrate their platform with Marilou, a robotic modeling and simulation environment.
Webots
Webots is a 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 Webots simulation environment includes models of multiple virtual and commercially available robots including bipeds, wheeled robots and robotic arms.
Figure 7: Webots Fast Prototyping and Simulation Environment
Player, Stage, Gazebo
Player is a popular open source TCP/IP-based hardware abstraction layer for a growing number of robotics hardware platforms. Stage and Gazebo provide accompanying simulation environments. The environments support multi-robot simulations which are suitable for research in swarm robotics.
Figure 8: Player, Stage and Gazebo
While 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. A number of open source software modules have been developed for Player including computer vision and navigation/mapping modules.
Other Platforms
There are several other robotics software platforms available on the market including iRobot AWARE, OpenJAUS, CLARAty, YARP, Pyro and Edinburgh Robotics’ DevBot. The authors have not had an opportunity to study those platforms closer. Each of these platforms provides their own unique functionality:
• AWARE is a robotics software platform announced by iRobot. It is assumed that the platform is built for a range of 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 could not determine whether AWARE employs Rodney Brooks’ subsumption architecture for behavior coordination and control.
• OpenJAUS is an open source implementation of Joint Architecture for Unmanned Systems (JAUS), an initiative by the United States Department of Defense for an open software architecture for unmanned systems. A number of companies either employ JAUS within their products, or are contemplating the same. For example, Vecna Technologies appears 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 completely free software, however. CLARAty provides a set of interesting algorithms such as visual heading and pose estimations, and visual wheel sinking estimation.
• Edinburgh Robotics’ DevBot is a robotics software platform which simplifies development of distributed robotics control systems by providing a unified distributed hardware abstraction layer. DevBot comes with a customized distribution of Linux called DevBot OS optimized for real-time robotics applications. The company is also building a simulation environment called DevBot Sim and a computer vision package called DevBot Vision.
• Pyro (Python Robotics) is an open source Python-based robot programming environment. It comes with a nice curriculum, so it can be used for classroom robotics.
• YARP (“Yet Another Robot Platform”) is an open source set of libraries, protocols, and tools to keep modules and devices cleanly decoupled.
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. vIn the meantime, education and research institutions are the major customers of the vendors of robotics platforms.
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. Yet additional growth could come from the industrial automation or service robotics market if the companies can find inroads into those markets.
For industrial robotics, most established manufacturers of industrial robots provide their own platforms for programming their robots (e.g. ABB’s robotics software products). They certainly prefer selling their own software platforms rather than rely of third-party providers (although ABB does sell Braintech’s vision software which is not a platform). This situation results in single platform vendor lock-in and seems to play against the spirit of the open market.
To counter this tendency, the robotics group within the Object Management Group (OMG), an international standards body, has recently orchestrated a campaign to create a set of standards which would facilitate interpretability between robotics software and hardware of different vendors. The OMG’s efforts are in the very early phase, but we hope they will produce working standards in the medium-to-long term. A similar but independent development is going on in Europe under the auspices of the EUropean RObotics Platform (EUROP).
Although many standardization efforts are in progress, there is still concern about the scope of such standards. One problem is that the general-purpose robotics software platforms tend to abstract away many unique features of the underlying robotic products. As those unique features typically require special support from the software, vendors might be concerned about possibility of loosing their key product differentiators after being forced to comply with the standards. Breaking the vendor lock-in while still leaving the vendors enough space to compete and innovate is a complex standardization task.
On the service robotics side, we will probably see emergence of common robotics standards especially for military robots where compatibility of inter-systems interfaces is of special importance (look at the JAUS standard and the 4D/RCS reference architecture). In the US, the largest most robotics research is driven by military requirements and space exploration. In those areas, it is likely that the industry will see the emergence of standards for remote operation, robot learning and perception, swarm coordination, navigation and obstacle detection/avoidance components. In a fascinating 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 business and home applications (PACO-PLUS, SMERobot, COGNIRON).
A promising evolution of the concept of a robotics platform was recently presented by Skilligent. As described above, they built a robot learning component which allows a robot to develop needed skills automatically through interaction with non-professional human users. Skilligent product is based on the robot learning from demonstration technology, a booming field of research in artificial intelligence. There are a few far-reaching consequences of introduction of such robot learning technology. On the one hand, the technology largely makes most traditional service creation environments obsolete as a robot can be trained directly without programming. On the other hand, the skills which the software cannot pick up from the user, still need to be programmed in a ‘traditional’ way. We expect such systems to increase in inteligence over time – so sooner or later, the learning robots will dominate the service robotics market as they promise to be more flexible.
The consumer robotics market has proved to be very price-sensitive. The most popular consumer robot, iRobot’s Roomba vacuum cleaner, is priced less than the discounted versions of most commercial robotic software products. This is a market segment where the robot learning technologies may play a role as a catalyst as the flexibility of a trainable robot might provide the consumer with a good reason to pay more for robotics products.
The Linux vs. Windows operating systems battle has also intruded into robotics space. Linux is currently supported by most of the robotics software platforms. Microsoft is pushing Windows XP/CE as a standard robotics OS. There is a hope that sooner or later another large market maker will enter the robotics domain with a Linux/Eclipse-based alternative to MSRS. Our guess is that both Linux and Windows will have their shares of the future market, but the proportion of the shares remains a question.
Copyright 2007 Michael Somby – Reprinted with permission of the author.
About
Michael Somby is a professional control systems engineer with experience ranging from an autopilot design up to building a control system for a power plant. At his leisure time, he is a long-time enthusiast of mobile robotics and artificial intelligence. He can be reached at

