Robotics middleware is middleware to be used in complex robotcontrol software systems. It can be described as "software glue" to make it easier for robot builders focus on their specific problem area.
Robotics middleware projects
A wide variety of projects for robotics middleware exist, but no one of these dominates - and in fact many robotic systems do not use any middleware. Middleware products rely on a wide range of different standards, technologies, and approaches that make their use and interoperation difficult, and some developers may prefer to integrate their system themselves.
The Player Project is a project to create free software for research into robotics and sensor systems. Its components include the Player network server and the Stagerobot platform simulators. Although accurate statistics are hard to obtain, Player is one of the most popular open-source robot interfaces in research and post-secondary education. Most of the major intelligent robotics journals and conferences regularly publish papers featuring real and simulated robot experiments using Player and Stage.
RT-middleware
is a common platform standards for Robots based on distributed object technology. RT-middleware supports the construction of various networked robotic systems by the integration of various network-enabled robotic elements called RT-Components. The specification standard of RT-components is discussed and defined by the Object Management Group.
Urbi
is an open source cross-platform software platform in C++ used to develop applications for robotics and complex systems. It is based on the UObject distributed C++ component architecture. It also includes the urbiscript orchestration language which is a parallel and event-driven script language. UObject components can be plugged into urbiscript and appear as native objects that can be scripted to specify their interactions and data exchanges. UObjects can be linked to the urbiscript interpreter, or executed as autonomous processes in "remote" mode, either in another thread, another process, a machine on the local network, or a machine on a distant network.
MIRO
is a distributed object oriented framework for mobile robot control, based on CORBA technology. The Miro core components have been developed under the aid of ACE, an object oriented multi-platform framework for OS-independent interprocess, network and real time communication. They use TAO as their ORB, a CORBA implementation designed for high performance and real time applications. Currently supported platforms include Pioneers, the B21, some robot soccer robots and various robotic sensors.
Orca
describes its goals as:
to enable software reuse by defining a set of commonly-used interfaces;
to simplify software reuse by providing libraries with a high-level convenient API; and
to encourage software reuse by maintaining a repository of components.
They also state: "To be successful, we think that a framework with such objectives must be: general, flexible and extensible; sufficiently robust, high-performance and full-featured for use in commercial applications, yet sufficiently simple for experimentation in university research environments." They describe their approach as:
uses a commercial open-source library for communication and interface definition
provides tools to simplify component development but makes them strictly optional to maintain full access to the underlying communication engine and services
uses cross-platform development tools
Orca software is released under LGPL and GPL licenses.
OpenRDK
is an open-source software framework for robotics for developing loosely coupled modules. It provides transparent concurrency management, inter-process and intra-process blackboard-based communication and a linking technique that allows for input/output data ports conceptual system design. Modules for connecting to simulators and generic robot drivers are provided.
Rock
, is a software framework for the development of robotic systems. The underlying component model is based on the Orocos RTT. Rock provides all the tools required to set up and run high-performance and reliable robotic systems for wide variety of applications in research and industry. It contains a rich collection of ready to use drivers and modules for use in your own system, and can easily be extended by adding new components.
ISAAC SDK / Simulation
, The NVIDIA® Isaac Software Development Kit is a developer toolbox for accelerating the development and deployment of Artificial Intelligence-powered robots. The SDK includes the Isaac Robot Engine, packages with high-performance robotics algorithms, and hardware reference applications. Isaac Sim is a virtual robotics laboratory and a high-fidelity 3D world simulator. It accelerates research, design, and development in robotics by reducing cost and risk. Developers can quickly and easily train and test their robots in detailed, highly realistic scenarios. There is an open source community version available at github with supported hardware platform includes BOM details, refer