*** Welcome to piglix ***

ROS (Robot Operating System)

Robot Operating System
Kinetic.png
ROS Kinetic Kame version logo
Cart pushing rviz holonomic.jpg
Cart pushing simulation in RVIZ
Original author(s) Willow Garage
Stanford Artificial Intelligence Laboratory
Initial release 2007; 10 years ago (2007)
Stable release
Kinetic Kame / 23 May 2016; 8 months ago (2016-05-23)
Development status Active
Written in C++ or Python
Operating system Linux
Type Robotics suite, OS, library
License BSD license
Website www.ros.org

Robot Operating System (ROS) is a collection of software frameworks for robot software development, (see also Robotics middleware) providing operating system-like functionality 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. 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, control, state, planning, actuator and other messages. Despite the importance of reactivity and low latency in robot control, ROS, itself, is not a real-time OS (RTOS), though it is possible to integrate ROS with real-time code. The lack of support for real-time systems is being addressed in the creation of ROS 2.0.

Software in the ROS Ecosystem can be separated into three groups:

Both the language-independent tools and the main client libraries (C++, Python, LISP) are released under the terms of the BSD license, and as such are open source software and free for both commercial and research use. The majority of other packages are licensed under a variety of open source licenses. These other packages implement commonly used functionality and applications such as hardware drivers, robot models, datatypes, planning, perception, simultaneous localization and mapping, simulation tools, and other algorithms.

The main ROS client libraries (C++, Python, LISP) are geared toward a Unix-like system, primarily because of their dependence on large collections of open-source software dependencies. For these client libraries, Ubuntu Linux is listed as "Supported" while other variants such as Fedora Linux, macOS, and Microsoft Windows are designated "Experimental" and are supported by the community. The native Java ROS client library, rosjava, however, does not share these limitations and has enabled ROS-based software to be written for the Android OS. rosjava has also enabled ROS to be integrated into an officially-supported MATLAB toolbox which can be used on Linux, macOS, and Microsoft Windows. A JavaScript client library, roslibjs has also been developed which enables integration of software into a ROS system via any standards-compliant web browser.


...
Wikipedia

...