Robotics middleware

Last updated

Robotics middleware is middleware to be used in complex robot control software systems.

Contents

"...robotic middleware is designed to manage the complexity and heterogeneity of the hardware and applications, promote the integration of new technologies, simplify software design, hide the complexity of low-level communication and the sensor heterogeneity of the sensors, improve software quality, reuse robotic software infrastructure across multiple research efforts, and to reduce production costs." [1]

It can be described as "software glue" to make it easier for robot builders focus on their specific problem area. [2]

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. [3] 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. [3]

Player Project

The Player Project (formerly the Player/Stage Project) is a project to create free software for research into robotics and sensor systems. [4] Its components include the Player network server and the Stage robot 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. [5] Most of the major intelligent robotics journals and conferences regularly publish papers featuring real and simulated robot experiments using Player and Stage.

RT-middleware

RT-middleware is a common platform standards for Robots based on distributed object technology. [6] 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 (OMG). [7]

Urbi

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

Miro is a distributed object oriented framework for mobile robot control, based on CORBA (Common Object Request Broker Architecture) technology. The Miro core components have been developed under the aid of ACE (Adaptive Communications Environment), an object oriented multi-platform framework for OS-independent interprocess, network and real time communication. They use TAO (The ACE ORB) as their ORB (Object Request Broker), 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. [8]

Orca

Orca describes its goals as:

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." [9]

They describe their approach as:

Orca software is released under LGPL and GPL licenses.

OpenRDK

OpenRDK is an open-source software framework for robotics for developing loosely coupled modules. It provides transparent concurrency management, inter-process (via sockets) and intra-process (via shared memory) 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

Rock (Robot Construction Kit), is a software framework for the development of robotic systems. The underlying component model is based on the Orocos RTT (Real Time Toolkit). 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

ISAAC, The NVIDIA Isaac Software Development Kit (SDK) 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 (to perform perception and navigation), 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 kaya-robot

ROS

ROS (Robot Operating System) is a collection of software frameworks for robot software development on a heterogeneous computer cluster. ROS provides standard operating system services such as hardware abstraction, low-level device control, implementation of commonly used functionality, message-passing between processes, and package management.

YARP

YARP is an open-source software package, written in C++ for interconnecting sensors, processors, and actuators in robots.

DDX

DDX (Dynamic Data eXchange) is (Linux/BSD/Unix) middleware developed by CSIRO to provide a lightweight real-time publish/subscribe service to distributed robot controllers. DDX allows a coalition of programs to share data at run-time through an efficient shared memory mechanism. Multiple machines can be linked by means of a global naming service and, when needed, data is multi-cast across machines. [10] DDX was developed to automate a number of large mining machines: including draglines, LHD trucks, excavators and rock-breakers.

Related Research Articles

Middleware in the context of distributed applications is software that provides services beyond those provided by the operating system to enable the various components of a distributed system to communicate and manage data. Middleware supports and simplifies complex distributed applications. It includes web servers, application servers, messaging and similar tools that support application development and delivery. Middleware is especially integral to modern information technology based on XML, SOAP, Web services, and service-oriented architecture.

A game engine is a software framework primarily designed for the development of video games and generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is similar to the term "software engine" used in the software industry.

<span class="mw-page-title-main">BEA Systems</span> Defunct American software corporation

BEA Systems, Inc. was a company that specialized in enterprise infrastructure software products, which was wholly acquired by Oracle Corporation on April 29, 2008.

Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing applications that span multiple operating systems and network protocols. The middleware creates a distributed communications layer that insulates the application developer from the details of the various operating systems and network interfaces. APIs that extend across diverse platforms and networks are typically provided by MOM.

<span class="mw-page-title-main">Component-based software engineering</span> Branch of software engineering

Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a given software system. It is a reuse-based approach to defining, implementing and composing loosely coupled independent components into systems. This practice aims to bring about an equally wide-ranging degree of benefits in both the short-term and the long-term for the software itself and for organizations that sponsor such software.

Objective Interface Systems, Inc. is a computer communications software and hardware company. The company's headquarters are in Herndon, Virginia, USA. OIS develops, manufactures, licenses, and supports software and hardware products that generally fit into one or more of the following markets:

The Software Communications Architecture (SCA) is an open architecture framework that defines a standard way for radios to instantiate, configure, and manage waveform applications running on their platform. The SCA separates waveform software from the underlying hardware platform, facilitating waveform software portability and re-use to avoid costs of redeveloping waveforms. The latest version is SCA 4.1.

Mobile app development is the act or process by which a mobile app is developed for one or more mobile devices, which can include personal digital assistants (PDA), enterprise digital assistants (EDA), or mobile phones. Such software applications are specifically designed to run on mobile devices, taking numerous hardware constraints into consideration. Common constraints include CPU architecture and speeds, available memory (RAM), limited data storage capacities, and considerable variation in displays and input methods. These applications can be pre-installed on phones during manufacturing or delivered as web applications, using server-side or client-side processing to provide an "application-like" experience within a web browser.

Orchestra Control Engine is a suite of software components used for the planning, development and deployment of real-time control applications for industrial machines and robots.

<span class="mw-page-title-main">Robot Operating System</span> Set of software frameworks for robot software development

Robot Operating System is an open-source robotics middleware suite. Although ROS is not an operating system (OS) but a set of software frameworks for robot software development, it provides services designed for a heterogeneous computer cluster such as hardware abstraction, low-level device control, implementation of commonly used functionality, message-passing between processes, and package management. Running sets of ROS-based processes are represented in a graph architecture where processing takes place in nodes that may receive, post, and multiplex sensor data, control, state, planning, actuator, and other messages. Despite the importance of reactivity and low latency in robot control, ROS is not a real-time operating system (RTOS). However, it is possible to integrate ROS with real-time computing code. The lack of support for real-time systems has been addressed in the creation of ROS 2, a major revision of the ROS API which will take advantage of modern libraries and technologies for core ROS functions and add support for real-time code and embedded system hardware.

Vortex Studio is a simulation software platform that is developed by CM Labs Simulations. It features a real-time physics engine that simulates rigid body dynamics, collision detection, contact determination, and dynamic reactions. It also contains model import and preparation tools, an image generator, and networking tools for distributed simulation, accessed through a desktop editor via a GUI. Vortex adds accurate physical motion and interactions to objects in visual-simulation applications for operator training, mission planning, product concept validation, heavy machinery and robotics design and testing, haptics devices, immersive and virtual reality (VR) environments.

<span class="mw-page-title-main">RT middleware</span>

RT-middleware is a common computing platform technical standard for robots based on distributed object technology. RT-middleware supports the construction of various networked robotic systems by integrating various network-enabled robotic elements named RT-Components, which specification standard is discussed and defined by the Object Management Group (OMG).

<span class="mw-page-title-main">OpenRTM-aist</span>

OpenRTM-aist is a software platform developed on the basis of the RT middleware standard. OpenRTM-aist is developed by National Institute of Advanced Industrial Science and Technology which also contributes to definition of the RT-middleware standard.

ORiN is a standard network interface for FA systems. The Japan Robot Association proposed ORiN in 2002, and the ORiN Forum develops and maintains the ORiN standard.

The JAUS Tool Set (JTS) is a software engineering tool for the design of software services used in a distributed computing environment. JTS provides a Graphical User Interface (GUI) and supporting tools for the rapid design, documentation, and implementation of service interfaces that adhere to the Society of Automotive Engineers' standard AS5684A, the JAUS Service Interface Design Language (JSIDL). JTS is designed to support the modeling, analysis, implementation, and testing of the protocol for an entire distributed system.

Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".

Middleware for Robotic Applications (MIRA) is a cross-platform, open-source software framework written in C++ that provides a middleware, several base functionalities and numerous tools for developing and testing distributed software modules. It also focuses on easy creation of complex, dynamic applications, while reusing these modules as plugins. The main purpose of MIRA is the development of robotic applications, but as it is designed to allow type safe data exchange between software modules using intra- and interprocess communication it is not limited to these kinds of applications.

Cloud robotics is a field of robotics that attempts to invoke cloud technologies such as cloud computing, cloud storage, and other Internet technologies centered on the benefits of converged infrastructure and shared services for robotics. When connected to the cloud, robots can benefit from the powerful computation, storage, and communication resources of modern data center in the cloud, which can process and share information from various robots or agent. Humans can also delegate tasks to robots remotely through networks. Cloud computing technologies enable robot systems to be endowed with powerful capability whilst reducing costs through cloud technologies. Thus, it is possible to build lightweight, low-cost, smarter robots with an intelligent "brain" in the cloud. The "brain" consists of data center, knowledge base, task planners, deep learning, information processing, environment models, communication support, etc.

References

  1. Elkady, Ayssam (29 January 2012). "Robotics Middleware: A Comprehensive Literature Survey and Attribute-Based Bibliography". Journal of Robotics. 2012: 1–15. doi: 10.1155/2012/959013 .
  2. "What is Middleware?". Middleware.org. Defining Technology. 2008. Archived from the original on June 29, 2012. Retrieved 2013-08-11.{{cite web}}: CS1 maint: unfit URL (link)
  3. 1 2 "Tools, Standards, and Platforms for Commercial Robotics Development: An Adoption Profile". roboticsbusinessreview.com. October 2009. Retrieved 8 May 2017.
  4. Gerkey, B., Vaughan, R., and Howard, A. (2003) The Player/Stage Project: Tools for Multi-Robot and Distributed Sensor Systems. Proceedings of the International Conference on Advanced Robotics 317-323
  5. Collet, T. H. J., MacDonald, B. A., and Gerkey, B. (2005) Player 2.0: Toward a practical robot programming framework. Proceedings of the Australasian Conference on Robotics and Automation (ACRA)
  6. Noriaki ANDO, Takashi SUEHIRO, Kosei KITAGAKI, Tetsuo KOTOKU, Woo-Keun Yoon, "RT-Middleware: Distributed Component Middleware for RT (Robot Technology)", 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS2005), pp.3555-3560, 2005.08, Edmonton, Canada
  7. Robotics Technology Component Specification version 1.0, Object Management Group (OMG)
  8. Enderle, Stefan; Utz, Hans; Sablatnög, Stefan; Simon, Steffen; Kraetzschmar, Gerhard; Palm, Günther (2001), "Miro: Middleware for Autonomous Mobile Robots", IFAC Proceedings Volumes, 34 (9): 297–302, doi: 10.1016/S1474-6670(17)41721-6
  9. 1 2 "Orca Overview" . Retrieved 7 May 2017.
  10. Corke, Peter; Sikka, Pavan; Roberts, Jonathan; Duff, Elliot (2004). "DDX: A distributed software architecture for robotic systems". Australasian Conference on Robotics and Automation 2004.