Robot Operating System: Difference between revisions

Content deleted Content added
ROS 2: Update EOL from source
Ddmmyyy8 (talk | contribs)
No edit summary
Line 19:
| programming language = [[C++]], [[Python (programming language)|Python]], and [[Lisp (programming language)|Lisp]]
}}
'''Robot Operating System''' ('''ROS or ros''') is an [[open- source]] [[robotics middleware]] suite. Although ROS is not an [[operating system]] (OS) but a set of [[software framework]]s for [[robot]] software development, it provides services designed for a heterogeneous [[computer cluster]] such as [[hardware abstraction]], low-level [[Device driver|device control]], implementation of commonly used functionality, [[Inter-process communication|message-passing between processes]], and package management. Running sets of ROS-based processes are represented in a [[graph theory|graph]] architecture where processing takes place in nodes that may receive, post, and [[Multiplexing|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.<ref>{{Cite web|title=ROS/Introduction – ROS Wiki|url=http://wiki.ros.org/ROS/Introduction|access-date=2021-07-30|website=ROS.org|publisher=Open Robotics}}</ref> The lack of support for real-time systems has been addressed in the creation of ROS 2,<ref>{{cite web|last=Kay|first=Jackie|date=January 2016|title=Proposal for Implementation of Real-time Systems in ROS 2|url=http://design.ros2.org/articles/realtime_proposal.html|website=ROS.org|publisher=Open Robotics|access-date=23 January 2023}}</ref><ref>{{cite web|last=Kay|first=Jackie|date=January 2016|title=Realtime Design Guidelines For ROS 2|url=http://design.ros2.org/articles/realtime_background.html#design-guidelines-for-ros-2|website=ROS.org|publisher=Open Robotics|access-date=23 January 2023}}</ref><ref>{{cite web|title=ROS 2 For Realtime Applications|url=https://discourse.ros.org/t/ros2-for-real-time-applications/6493|website=ROS.org|publisher=Open Robotics|date=17 October 2018|access-date=22 November 2018}}</ref> 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.
 
Software in the ROS [[Software ecosystem|Ecosystem]]<ref>{{cite web|url=http://www.ros.org/browse/list.php|title=Browsing packages for melodic|website=ROS.org|publisher=Open Robotics|access-date=21 February 2016|archive-date=24 September 2015|archive-url=https://web.archive.org/web/20150924092030/http://www.ros.org/browse/list.php|url-status=dead}}</ref> can be separated into three groups:
* language-and platform-independent tools used for building and distributing ROS-based software;
* ROS client library implementations such as {{Not a typo|roscpp}},<ref>{{cite web|title=Package Summary|url=http://wiki.ros.org/roscpp|website=ROS.org|publisher=Open Robotics|access-date=21 February 2016}}</ref> {{Not a typo|rospy}},<ref>{{cite web|title=Package SUmmary|url=http://wiki.ros.org/rospy|website=ROS.org|publisher=Open Robotics|access-date=21 February 2016}}</ref> and {{Not a typo|roslisp}};<ref>{{cite web|title=Package Summary|url=http://wiki.ros.org/roslisp|website=ROS.org|publisher=Open Robotics|access-date=21 February 2016}}</ref>