Robotics software platforms review

Robotics software platforms

Review

By Michael Somby

1 Introduction
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 authors accumulated during an experimentation work they’ve been recently involved in.

2 What is a robotics software platform?
By a “robotics software platform” we mean a software package which 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 our point of view. Most of the products were missing something.

    Table 1 Robotic software platforms

    3 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% 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.

    4 Overview of main players

    4.1 Summary table


    4.2 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 which can be used for building programs based of a number of reusable building blocks.


    Figure 1 Behavior Composer of Evolution Robotics
    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.

    4.3 Microsoft Robotics StudioMicrosoft recently setup a team which 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.

       



























    Figure 2 Microsoft Robotics Studio – Visual Programming Language

    Figure 3 Microsoft Simulation environment
    A growing number of robotics companies declared their support of the MSRS platform.

    4.4 OROCOSOROCOS 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 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.

    4.5 SkilligentConceptually, 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 robot behavior control software 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 which can be trained by an end user (vs. programmed by a software engineer). The robot control software exhibits certain supporting social interaction capabilities which 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.

     

     















    Figure 4 Robot learning session – under control of Skilligent        Figure 5 Skilligent Behavior Control system
    The key technology incorporated in the software is a set of algorithms which 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.

    4.6 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 which executes the programs written in the proprietary language. Gostai provides engines for a variety of robots including Aldebaran Nao, Aibo, Mindstorms and Khepera.

    URBI is a distributed platform which 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.

    4.7 WebotsWebots 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.


    Figure 6 Webots fast prototyping and simulation environment

    4.8 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 which are suitable for research in swarm- or team-working of robots.


    Figure 7 Player, Stage and Gazebo
    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.

    4.9 Other platformsThere are several other robotics software platforms available on the market – such as iRobot AWARE, OpenJAUS, CLARAty, YARP, Pyro and Edinburgh Robotics’ DevBot. The authors haven’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.
  • Edinburgh Robotics’ DevBot is a robotics software platform which simplifies development of distributed robotics control systems by providing a unified distributed hardware abstraction layer. It comes with a customized distribution of Linux called DevBot OS optimized for real-time robotics applications. The company is 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.

    5 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.

    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 which 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-short 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 are 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 contract, 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 which 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 which 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.

    Linux is currently supported by most of the robotics software platforms. Microsoft wants Windows XP/CE to become the standard robotics OS. It is hard to tell at this point what OS will dominate on the robotics market, but Linux seems to be a strong competitor.

    Please send your comments to Michael Somby, [email protected]