Content deleted Content added
→Versions and Releases: added that ROS2 D is expected in July 2019 |
Added design philosophy. |
||
Line 56:
Perhaps the most important development of the OSRF/Open Robotics years thus far (not to discount the explosion of robot platforms which began to support ROS or the enormous improvements in each ROS version) was the proposal of ROS2, a significant API change to ROS which is intended to support [[Real-time computing|real time programming]], a wider variety of computing environments, and utilize more modern technology<ref>{{Cite web|url=http://design.ros2.org/articles/why_ros2.html|title=Why ROS 2.0?|website=design.ros2.org|access-date=2019-04-29}}</ref>. ROS2 was announced at ROSCon 2014<ref>{{Cite web|url=https://index.ros.org/doc/ros2/|title=ROS2 Overview|website=index.ros.org|access-date=2019-04-29}}</ref>, the first commits to the ros2 repository were made in February 2015, followed by alpha releases in August 2015<ref name=":2">{{Cite web|url=https://index.ros.org/doc/ros2/Releases/|title=ROS 2 Distributions|website=index.ros.org|access-date=2019-04-29}}</ref>. The first distribution release of ROS2, Ardent Apalone, was released on December 8th, 2017<ref name=":2" />, ushering in a new era of next-generation ROS development.
==Design==
=== Philosophy ===
ROS was designed with open-source in mind, intending that users would be able to chose the configuration of tools and libraries which interacted with the core of ROS so that users could shift their software stacks to fit their robot and application area. As such, there is very little which is actually core to ROS, beyond the general structure within which programs must exist and communicate. In one sense, all ROS is is the underlying plumbing behind nodes and message passing. However, in reality, ROS is that plumbing, a rich and mature set of tools, a wide ranging set of robot-agnostic capabilities provided by packages, and a greater ecosystem of additions to ROS.
=== Computation Graph ===
==ROS Tools==▼
==== Nodes and Topics ====
==== ROS Master ====
==== Services ====
==== Parameter Server ====
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. The addition of these tools greatly increases the capabilities of systems using ROS by simplifying and providing solutions to a number of common robotics development. These tools are provided in packages like any other algorithm, but rather than providing implementations of hardware drivers or algorithms for various robotic tasks, these packages provide task and robot-agnostic tools which come with the core of most modern ROS installations.
Line 79 ⟶ 89:
roslaunch<ref>{{Cite web|url=http://wiki.ros.org/roslaunch|title=roslaunch - ROS Wiki|website=wiki.ros.org|access-date=2019-04-23}}</ref> is a tool used to launch multiple ROS nodes both locally and remotely, as well as setting parameters on the ROS parameter server. roslaunch configuration files, which are written using [[XML]] can easily automate a complex startup and configuration process into a single command. roslaunch scripts can include other roslaunch scripts, launch nodes on specific machines, and even restart processes which die during execution.
==
ROS contains many open source implementations of common robotics functionality and algorithms. These open source implementations are organized into "packages". Many packages are included as part of ROS distributions, while others may be developed by individuals and distributed through code sharing sites such as github. Some packages of note include:
|