by
Michael Somby (Aug. 17, 2007)
Foreword: Today's nascent robotics market has engendered about
10 general purpose software development frameworks, including nine that
support Linux. This article surveys seven of them, before wrapping up
with an analysis of market trends likely to shape the robotics software
landscape of tomorrow. Enjoy . . . !
A review of robotics software platforms
by Michael Somby
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 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
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
| Evolution | Microsoft | OROCOS | Skilligent | URBI | Webots | Player, Stage, Gazebo | | Open source | No | No | Yes | No | No | No | Yes | | Free of charge | No | Edu/hby | Yes | No | No | No | Yes | | Windows | Yes | Yes | No | Yes | Yes | Yes | Yes (sim) | | Linux | Yes | No | Yes | Yes | Yes | Yes | Yes | | Distributed environment | No | Yes | No | Yes | Yes | No | Yes (limited) | | Behavior coordination | Yes | Yes | No | Yes | Yes | No | No | | Built-in robotic arm control | No | No | Yes | Yes | No | No | No | | Built-in object recognition | Yes | No | No | Yes | No | No | No | | Built-in navigation | Yes | No | No | Yes | No | No | No | | Task/skill learning | No | No | No | Yes | No | No | No | | Simulation environment | No | Yes | No | No | Yes (Webots) | Yes | Yes | | Range of supported hardware | Small | Large | Medium | Medium | Large | Large | Medium | | Reusable service building blocks | Yes | Yes | Yes | Not applcbl | Yes | No | No | | Real-time | No | No | Yes | No | No | No | No |
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 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 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.
|