HOME

TheInfoList



OR:

Robotics middleware is
middleware Middleware is a type of computer software program that provides services to software applications beyond those available from the operating system. It can be described as "software glue". Middleware makes it easier for software developers to imple ...
to be used in complex
robot A robot is a machine—especially one Computer program, programmable by a computer—capable of carrying out a complex series of actions Automation, automatically. A robot can be guided by an external control device, or the robot control, co ...
control software systems. :"''...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.''" 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.


Player Project

The
Player Project The Player Project (formerly Player/Stage Project) creates free and open-source software for research into robotics and sensor systems. Its components include the ''Player'' Computer network, network Server (computing), server and the ''Stage'' p ...
(formerly the ''Player/Stage Project'') is a project to create
free software Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
for research into
robotics Robotics is the interdisciplinary study and practice of the design, construction, operation, and use of robots. Within mechanical engineering, robotics is the design and construction of the physical structures of robots, while in computer s ...
and
sensor A sensor is often defined as a device that receives and responds to a signal or stimulus. The stimulus is the quantity, property, or condition that is sensed and converted into electrical signal. In the broadest definition, a sensor is a devi ...
systems. 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. 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. 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 The Object Management Group (OMG®) is a computer industry Standards Development Organization (SDO), or Voluntary Consensus Standards Body (VCSB). OMG develops enterprise integration and modeling standards for a range of technologies. Busin ...
(OMG).


Urbi

Urbi Urbi is an Open-source software, open-source cross-platform software computing platform written in C++ used to develop applications for robotics and complex systems. Urbi is based on the UObject distributed C++ component architecture. It also in ...
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 The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sy ...
(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.


Orca

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: * adopts a Component-Based Software Engineering approach without applying any additional architectural constraints * 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

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


(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, refe
kaya-robot


ROS

ROS
(
Robot Operating System Robot Operating System (ROS or ros) is an Open-source software, open-source robotics middleware suite. Although ROS is not an operating system (OS) but a set of software frameworks for robot software software development, development, it provide ...
) is a collection of
software framework In computer programming, a software framework is a software abstraction that provides generic functionality which developers can extend with custom code to create applications. It establishes a standard foundation for building and deploying soft ...
s for
robot A robot is a machine—especially one Computer program, programmable by a computer—capable of carrying out a complex series of actions Automation, automatically. A robot can be guided by an external control device, or the robot control, co ...
software development on a heterogeneous
computer cluster A computer cluster is a set of computers that work together so that they can be viewed as a single system. Unlike grid computers, computer clusters have each node set to perform the same task, controlled and scheduled by software. The newes ...
. ROS provides standard operating system services such as
hardware abstraction Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acc ...
, low-level
device control ''Endless'' is a visual album by American singer Frank Ocean. It was released on August 19, 2016, as an exclusive streaming-only video on Apple Music, and preceded the August 20 release of Ocean's second studio album ''Blonde''. ''Endless'' was l ...
, 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 Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
/
BSD The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
/
Unix Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
) middleware developed by
CSIRO The Commonwealth Scientific and Industrial Research Organisation (CSIRO) is an Australian Government agency that is responsible for scientific research and its commercial and industrial applications. CSIRO works with leading organisations arou ...
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. DDX was developed to automate a number o
large mining machines
including draglines, LHD trucks,
excavators Excavators are heavy equipment (construction), heavy construction equipment primarily consisting of a backhoe, boom, dipper (or stick), Bucket (machine part), bucket, and cab on a rotating platform known as the "house". The modern excavator's ...
and rock-breakers.


See also

* Middleware for Robotic Applications


External links


BRICs
a European project that attempts to establish best practices in robot development


References

{{DEFAULTSORT:Robotics Middleware * Robot operating systems Robotics suites