Review Article

Robotics Middleware: A Comprehensive Literature Survey and Attribute-Based Bibliography

Table 2

Comparisons of the attributes of the main robotics middleware.

NameSystem modelControl modelFault toleranceSimulatorLinuxWindowsStandards and technologies usedOpen sourceBehavior coordinationReal timeDistributed environmentDynamic wiringSecurity

CLARAty2-layer AM; decentralized data; client server; platform independent abstractions and interfaces for various robotic components for motion control, coordination, mobility, manipulation, perception, estimation, navigation and planning.Supports adaptation for centralized and distributed control; event drivenYesYesYesOnly cygwinOO design patterns, generic programming (C++ STL), ACE/TAO, CP-PUnit, Qt, TCP, UDP, DoxygenPartiallysupportedMost modules are real timeYesPartiallyYes
PlayerNo particular architectural constraint, client-server, decentralized dataNot applicable; but on module level can be considered centralized, since it relies on polling modelNo explicit fault handling capabilitiesStage is a 2D simulator, Gazebo is a 3D simulatorYesYes3-Tier Architecture Proxy ObjectsYesNoNoYesYesYes
ORCANo particular architectural constraint, peer to peer, decentralized data, component-based robotic systemsNot applicable; not clear on component levelNo explicit fault handling capabilitiesYesYesYesIceYesNoNoYesNo
MIRO3 layers, client-server, decentralized dataOn object level there is an emphasis on event–driven controlNo explicit fault handling capabilitiesYesYesYesTAO Middleware C++ implementation of the CORBA standardYesYesNoYesYesNo
OpenRTM-aistComponent-based frame work, model-driven architecture, platform-independent model (PIM), Platform-specific model (PSM)Component-basedSupported by RT-component modelOpenHRP3 is a dynamic simulatorYesYesCORBAYesNoYesYesYesNo
ASEBAEvent-driven distributed controlEvent-based controlNoYesYesNoEvent-based middleware, Virtual machinesYesYesYesYesYesNo
MARIEComponent-oriented engineering approach, 3 layersCentralized control unitNoYesYesNoMediator Interoperability technology, ACEYesYesNoYesYesNo
RSCAConsists of real-time OS, communication middleware, and deployment middleware called core frame-workEvent-based controlNoNoYesYesPOSIX. 13. CORBA. RT-CORBA vl. 1YesNoYesYesYesNo
OPRoSComponent-based frame-works, validation/test toolsClient/server mechanism for control flow and the publisher/subcriber mechanism for data/event flow.Being developedYesYesYesevent-drivenYesNoBeing developedYesYesNo
ROSComponent-based frame-work, publisher/subscriberMessage oriented frame-worksNot ExplicitYesYesPartial functionsMessage oriented, RPC servicesYesYesYesYesYesNo
MRDSComponent-based, RESTDistributed messagingYesNoYes.NET/SOAComm.YesNoYesYesYes
OROCOSC++ libraries: OCL, KDL, BFL,Event-based controlNo, but it has Orocos Simulik ToolboxYesYesACE/TAO, CORBAOpen sourceNoYesNoYesNo
SmartSoftService-oriented, component-based software, model-driven architecture, platform-independent model and platform-specific modelClient/server, publish/subscribe, master/slave, arbitrary control models within component hullBeing DevelopedYesYesYesTwo reference Implementations, one based on CORBA (ACE/TAO) and one based on ACE onlyYesYesyes, runs with RTAI-Linux and QNXYesYesYes
ERSP3 layersNoNoYesYesCommYesNoNoNoYes
SkilligentYesNoYesYesComm.YesNoYes
WebotsMultiprocess architectureCan simulate dynamical device failure: (physical destruction, noise increase, etc.)YesYesYesTCP Socket interface, Open Dynamics Engine, Ogre 3DComm.YesYesNoNo
IrobotawareLayered architecturePublish/subscribe, MessagingYesYesComm.YesNoYesYesYes
Carmen3T hybrid architecture2D simulatorYesNoSocket based, using TCP protocol, IPCYesNoNoYesYesYes
RoboFrameMessage-oriented publish/subscribe and shared memory communication mechanismsMessage-basedNoYesYesYesSocket basedNoNoNoYesYesNo
PyroArchitecture independentNoYesYesYesSocket based using TCP protocol, XML, SOAP, OpenGL, HTTPYesYesNoNoYesYes