IntroductionThis 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
PlatformTypeEvolution Robotics ERSPPlatformCommercialMicrosoft Robotics StudioPlatformCommercial Free of charge for research and hobbyOROCOSMachine and robot control librariesOpen source & freeSkilligentRobot learning add-onCommercialURBIPlatformCommercialWebotsSimulation environmentCommercialPlayer, Stage, GazeboPlatformOpen Source & FreeiRobot AWAREPlatformCommercialOpenJAUSPlatformOpen sourceCLARAtyPlatformOpen sourceWhy 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, GazeboOpen sourceNoNoYesNoNoNoYesFree of chargeNoEdu/hbyYesNoNoNoYesWindowsYesYesNoYesYesYesYes (sim)LinuxYesNoYesYesYesYesYesDistributed environmentNoYesNoYesYesNoYes (limited)Behavior coordinationYesYesNoYesYesNoNoBuilt-in robotic arm controlNoNoYesYesNoNoNoBuilt-in object recognitionYesNoNoYesNoNoNoBuilt-in navigationYesNoNoYesNoNoNoTask/skill learningNoNoNoYesNoNoNoSimulation environmentNoYesNoNoYes (Webots)YesYesRange of supported hardwareSmallLargeMediumMediumLargeLargeMediumReusable service building blocksYesYesYesNot applcblYesNoNoReal-timeNoNoYesNoNoNoNoEvolution Robotics's ERSPEvolution 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 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 StudioMicrosoft 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 LanguageMicrosoft Simulation environment
A growing number of robotics companies have declared their support for the MSRS platform.
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.
OROCOSOROCOS 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.
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 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 SkilligentSkilligent Behavior Control systemThe 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.