- RACK, the Robotics
Application Constructions Kit provides a middleware to ease
and standardise the development of industrial and academic control
software for robots. Specifically, it aims at supporting mobile
service robot scenarios. RACK's real-time components are
implemented in C++ and make use of the real-time services provided
by Xenomai. Non-real-time
components concentrate on GUI elements which are implemented in
Java, and extending this support to Linux C/C++ applications is
planned. RACK comes with its own interprocess communication
mechanism called TiMS (Tiny Messaging Service). TiMS supports both
hard RT and non-RT communication via a mailbox mechanism, locally
or distributed via RTnet or standard TCP/IP. Specifically TiMS'
local exchange of larger message chunks is optimised for both
determinism and throughput.
“Player is a device server that provides a powerful, flexible
interface to a variety of sensors and actuators (e.g., robots).
Because Player uses a client/server model, robot control programs
can be written in any programming language and can execute on any
computer with network connectivity to the robot. In addition,
Player supports multiple concurrent client connections to devices,
creating new possibilities for distributed and collaborative
sensing and control.”
Complementary projects: Stage and
- Marie is a robotic
development and integration environment focused on software
reusability and exploitation of already available APIs and
middlewares frequently used in robotics.
- CORBA-based communication
libraries for robotics and non-robotics applications: Qedo (QoS Enabled
Distributed Objects), Miro.
Orca is a bit
more than just a communication library: it's a suite of tools for
developing component-based mobile robotic systems. It provides a
framework for defining and developing components which can be
pieced together to form arbitrarily complex robotic systems, from
single vehicles to distributed sensor networks. In addition it
provides a repository of pre-made components which can be reused to
quickly assemble a working robotic system.
is a framework for component based software engineering in
robotics. It introduces a small set of communication patterns as
basis for all component interactions. Generic communication
patterns enforce decoupling of components and ensure composability
by restricting the diversity of interfaces. This is the key towards
composability and component reuse.
- LAAS Open
Software for Autonomous Systems, a very nice set of software
tools, being part of the software infrastructure with which LAAS
has built impressive robotics applications.
- Chai3D, libraries for
computer haptics, visualization and interactive real-time
simulation. It has, among other things, support for commercial
devices such as the Phantom.
- CAS Robot Navigation
Toolbox, a Matlab toolbox for robot localization and mapping
- SceneLib, a C++
visual SLAM library.
- Morob, the
Modular Educational Robotic Toolbox.
Toolbox. The Robotics Toolbox for Matlab is a free, mature and
tested implementation of standard algorithms for serial link
manipulators. It can perform forward and inverse kinematics and
dynamics given the standard or modified Denavit-Hartenberg
parameters. It also supports graphical animation and provides
functions for manipulating and converting datatypes such as
vectors, homogeneous transformations and unit-quaternions. Version
7 was released in April 2002 and provides portable source code for
MEX files to speed up inverse dynamics calculation as well as
Simulink block diagram components.
- Enki, a
2D robot simulator.
“an open-source collection of software for mobile robot
control. CARMEN is modular software designed to provide basic
navigation primatives including: base and sensor control, obstacle
avoidance, localization, path planning, people-tracking, and
- Dave's Robotic Operating
System (DROS). David Austin's project "to re-use the good parts
of all of the [robot] software systems that I have been involved
with over the years."
- OpenSim, a
3D Simulator for autonomous robots.
- Some of John
Lloyd's software: LIbrary for
MAnipulation package (LIMA), and Robot Control C Library
- Modular Controller
Architecture: “A modular, network transparent and
realtime capable C/C++ framework for controlling robots and other
kind of hardware. The main plattform is Linux/RTLinux, support for
Win32 and Solaris also exists.”
RobotCub, an open framework for
research in embodied cognition.
- Tekkotsu, a
development platform for the Aibo robots.
- URBI (Universal
Real-time Behavior Interface), a middleware to program robots
(Aibo, Webot, …) via TCP/IP. (Hence, the
“real-time” properties mentioned in the project name
should be taken with a grain of salt.)
Robotics (Pyro) "is a library, environment, graphical user
interface, and low-level drivers to explore AI and robotics using
the Python language."
- RoboML (Robotic Markup
Language) for standardized representation of robotics-related data,
especially (1) support communication language between human-robot
interface agents, as well as between robot-hosted processes and
between interface processes, and (2) provide a format for archived
data used by human-robot interface agents.
- TeamBots. Some CMU
software for autonomous robots, such as the Cye.
"A robotics object oriented package in C++". JRoboOp is a Java
package inspired by ROBOOP.
- RoboCup Soccer
Simulator, software for simulation of robot soccer games.
- Rossum is a
programming and simulation environment for mobile robots.