ROS-2: Etat des lieux - LAAShomepages.laas.fr/ostasse/Teaching/ROS/rosdeux-v2.pdf · 2018. 6....

Preview:

Citation preview

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

Recommended