Reuse software as a module – Easily manage inter-process and inter-machine software 3 OpenRTM CORBA-based architecture http://openrtm.org OROCOS Mainly for kinematics and dynamics http://www.orocos.org YARP Transport-neutral communication http://www.yarp.it ROS Almost everything you need http://www.ros.org
help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under an open source, BSD license. 4 http://wiki.ros.org (accessed 2018-07-24)
• RPC (Remote Procedure Call) – For round-trip single data • IDL (Interface definition language) 6 Node A Node B Topic X Request Response Service Y Publish Subscribe
quality Applications Current ROS Single robot Workstation- class Special- purpose manner Excellent connectivity Research 11 Future ROS Multiple robots Small embedded platforms Inter- process and inter- machine Loss and/or delay Production environments
• Technical credibility • Several vendors and licensing • QoS (Quality of Service) support 13 Reliability History policy Durability Best effort Keep last N samples Transient local Reliable Keep all Volatile
officially supported on – Ubuntu 18.04 – Windows 10 with Visual Studio 2017 – macOS 10.12 (Sierra) • It also (unofficially) works on macOS 10.14 (Mojave) 14 RViz2 on macOS
Only dead or alive – Busy loop to wait until node activation • ROS 2 – 4 states with error handling 16 https://roscon.ros.org/2017/ presentations/ROSCon%20201 7%20ROS2%20Vision.pdf − State change is notified by topic
Defined profiles – Or you define one 17 Profile Reliability History policy Durability Services Reliable Keep last 10 samples Volatile Sensor data Best effort Keep last 5 samples Volatile Paramet ers Reliable Keep last 1000 samples Volatile
1, action is implemented – using a set of topics • In ROS 2, action is implemented – using a combination of asynchronous services and topics – under separated namespace 22 Action client Action server Send/cancel goal Get result Feedback Status Topic Service
independently of ROS 1 and ROS 2 – Not all functionality from ROS 1 has been ported to ROS 2 yet – https://github.com/ros-simulation/gazebo_ros_pkgs/issues/512 • gazebo_ros_pkgs – gazebo_dev: cmake configuration – gazebo_msgs: Gazebo/ROS 2 data structures – gazebo_ros: convenient C++ classes and functions – gazebo_plugins: plugins exposing sensors and other features 24
platform • ROS 2 aims both for research and commercial use • Core architecture of ROS 2 is almost completed • It’s time to consider migration from ROS 1 – navigation2: https://github.com/ros-planning/navigation2 – image_pipeline: https://github.com/ros-perception/image_pipeline/tree/ros2 – … • For more information in Japanese, see also https://ros.youtalk.jp 25