ros-2: etat des lieux - laashomepages.laas.fr/ostasse/teaching/ros/rosdeux-v2.pdf · 2018. 6....
TRANSCRIPT
LAAS-CNRS/ Laboratoire d’Analyse et d’Architecture des Systèmes
Laboratoire conventionnéavec l’Université Fédérale
de Toulouse Midi-Pyrénées
ROS 2:Etat des lieux
O. Stasse, Gepetto,LAAS-CNRS
thanks to Deanna Hood, William Woodall - ROSCON 2016
29 Septembre 2017, Lille, 2RM, France
Table of Contents
1 Introduction
2 Data Distribution Service (DDS)
3 ROS client libraries
4 State of ROS2
5 Example
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 2/20
ROS 2: Etat des lieux
ROS applications
■ Research applications
■ High volume sensors
■ Complex kinematics
■ Lots of computation power
■ Ideal network connectivity
Multi robot system ■Small processors ■
Battery power ■Unreliable network connectivity ■
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 3/20
ROS 2: Etat des lieux
Our software architecture
Robot
Dyn Feature
TaskSolver
WPG
DesiredFeature
Python
IOR
ROS: SoT Entity
: C++ server
: Process/Task
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 4/20
ROS 2: Etat des lieux
Goals of ROS 2
Supporting multi-robotsystems involving
unreliable networks
Remove the gap be-tween prototypingand final products
Support Multiple OS Bare metal mi-cro controller
Support for realtime control
Bare metal mi-cro controller
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 5/20
ROS 2: Etat des lieux
ROS equation
Plomberie Outils Capacités Ecosystème
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 6/20
ROS 2: Etat des lieux
ROS equation
Plomberie Outils Capacités Ecosystème
DDS
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 6/20
ROS 2: Etat des lieux
Main Features
• Multiple DDS support• Multiple Operating Systems support:
Linux, OS, Windows• Multiple programming languages• Co-existence with ROS-1 systems• Release Beta version every two months
WARNING !
Beta-releaseCode Unstable
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 7/20
ROS 2: Etat des lieux
Architectural overviewUser code
ROS client library API
ROS middleware API
DDS impl A or DDS impl B or ...
DDS Agnostic
ROS Agnostic
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 8/20
ROS 2: Etat des lieux
DDS: Data Distribution Service
• OMG Standard• No master• First version 1.0 in December 2004 (freely available)
• Last version 1.4 in April 2015 (freely available)
• Focus on real-time data-flow applications
• Data-Centric Publish-Subscribe (DCPS) model
• 9 vendors (among which OCI and eProsima providing a freeimplementation)
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 9/20
ROS 2: Etat des lieux
DDS has been used in
• battleships• large utility installations like dams• financial systems• space systems• flight systems• train switchboard systems
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 10/20
ROS 2: Etat des lieux
DDS Features
• A Quality of Services definition of data transmissionthrough topics.
• The possibility to define objects such as DataWriter andDataReader is allowing a fine policy for publishing andsubscribing.
• Real-Time Publish Subscribe (RTPS)
• Several of the DDS vendors have special implementationsof DDS for embedded systems which boast specs related tolibrary size and memory footprint on the scale of tens orhundreds of kilobytes.
• No Remote Procedure Call services.
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 11/20
ROS 2: Etat des lieux
Architectural overviewUser code
ROS client library API
ROS middleware API
rmweProsimaFast RTPS
rmw RTIConnext
rmw ConnextDynamic
rmwPrismTechOpenSplice
eProsimaFast RTPS RTI Connext Connext Dy-
namicPrismTechOpenSplice
DDS Agnostic
ROS Agnostic
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 12/20
ROS 2: Etat des lieux
ROS client libraries: rclUser code
Threading model Intra-processcommunication
Names &namespaces Time
Parameters Console logging
rclcpp rclpy
ROS client li-brary API (rcl)
ROS middle-ware API (rmw)
DDS Vendor
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 13/20
ROS 2: Etat des lieux
ROS 2 Features
Discovery, transport andserialization over DDS Article
Support for multiple DDSimplementations, chosen atruntime
TutorialCurrently eProsima FastRTPS and RTI Connextare fully supported
Common core client librarythat is wrapped by language-specific libraries
Tutorial
Publish/subscribe over top-ics
Samplecode
Namespacing limitationfor Connext
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 14/20
ROS 2: Etat des lieux
ROS 2 Features
Clients and services Sample code Python support experi-mental
Set/retrieve parame-ters Sample code Parameters not yet avail-
able in rcl/Python
ROS 1 - ROS 2 com-munication bridge Tutorial
Only for topics and ser-vices, not yet available foractions
Quality of service set-tings for handling non-ideal networks
Demo
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 15/20
ROS 2: Etat des lieux
ROS 2 Features
Inter- and intra-process communicationusing the same API
Demo Currently only in C++
Composition ofnode componentsat compile-, link- ordlopen-time
Demo Currently only in C++
Support for nodes withmanaged lifecycles Demo Currently only in C++
DDS-Security support Demo
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 16/20
ROS 2: Etat des lieux
ROS 2 Features
Command-line introspectiontools using an extensibleframework
Tutorial
Namespace support fornodes and topics Article
Demos of an all-ROS 2 mo-bile robot Demo
Preliminary support for real-time code
Demo, demo Linux only. Notavailable for FastRTPS.
Preliminary support for"bare-metal" microcon-trollers
wiki
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 17/20
ROS 2: Etat des lieux
Example of ROS 2 on ARM-M0Loïc Dauphin, Team Interface, INRIA
Core: ARM M0Microprocessor: ATSAMR21G18A
32Kb RAM256Kb Flash
OS: RIOT2 others networkprotocols:
NDN - MQTT
rcl implementation: C
[Dauphin,ACM, ICN, 2017]
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 18/20
ROS 2: Etat des lieux
Example on Turtlebot 2
■ Joystick teleop
■ Follower■ Cartographer
■ ACML Localization
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 19/20
ROS 2: Etat des lieux
Conclusion - Take away messages
■ New middleware system: DDS
■ Multi platform
■ Better network QoS handling
■ New building system catkin → ament (cament)
■ New client library
■ Node composability
■ Potential higher programming complexity
LAAS-CNRS/Laboratoire d’Analyse et d’Architecture des Systèmes LAAS-CNRS - Lille 2017 - Sept, 29th - O. Stasse 20/20
ROS 2: Etat des lieux