Content deleted Content added
added rosbag section |
Added section on rosbash. |
||
Line 21:
| programming_language = [[C++]], [[Python (programming language)|Python]], or [[Lisp (programming language)|Lisp]]
}}
'''Robot Operating System''' ('''ROS or ros''') is [[robotics middleware]] (i.e. collection of [[software framework]]s for [[robot]] software development). Although ROS is not an [[operating system]], 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 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 operating system|real-time OS]] (RTOS). It is possible, however, to integrate ROS with real-time code.<ref>ROS-Introduction http://wiki.ros.org/ROS/Introduction</ref> The lack of support for real-time systems has been addressed in the creation of ROS 2.0.<ref>{{cite web|last1=Kay|first1=Jackie|title=Proposal for Implementation of Real-time Systems in ROS 2|url=http://design.ros2.org/articles/realtime_proposal.html|access-date=16 August 2016}}</ref><ref>{{cite web|last1=Kay|first1=Jackie|title=Realtime Design Guidelines For ROS 2|url=http://design.ros2.org/articles/realtime_background.html#design-guidelines-for-ros-2|website=design.ROS2.org|publisher=ROS2|access-date=22 November 2018}}</ref><ref>{{cite web|title=ROS 2 For Realtime Applications|url=https://discourse.ros.org/t/ros2-for-real-time-applications/6493|website=discourse.ROS.org|publisher=ROS|access-date=22 November 2018}}</ref>
Software in the ROS Ecosystem<ref>{{cite web|title=Browsing packages for indigo|url=http://www.ros.org/browse/list.php|website=ROS.org|publisher=ROS|access-date=21 February 2016}}</ref> can be separated into three groups:
Line 143:
==ROS Tools==
{{Comment}} Highlight the most important tools in ROS here, like:
ROS's core functionality is augmented by a variety of tools which allow developers to visualize and record data, easily navigate the ROS package structures, and create scripts automating complex configuration and setup processes.
===rviz===
Line 151 ⟶ 152:
===rosbash===
The rosbash<ref>{{Cite web|url=http://wiki.ros.org/rosbash|title=rosbash - ROS Wiki|website=wiki.ros.org|access=date=2019-04-23}}</ref> package provides a suite of tools which augment the functionality of the [[Bash_(Unix_shell)|bash shell]]. These tools include rosls, roscd, and roscp, which replicate the functionalities of [[Ls|ls]], [[Cd_(command)|cd]], and [[Cp_(Unix)|cp]] respectively. The ROS versions of these tools allow users to use ros package names in place of the filepath where the package is located. The package also adds tab-completion to most ROS utilities, and includes rosed, which edits a given file with the chosen default text editor, as well rosrun, which runs executes in ROS packages. rosbash supports the same functionalities for [[Z_shell|zsh]] and [[Tcsh|tcsh]], to a lesser extent.
===roslaunch===
|