robot operative system - fosdem.org€¦ · 1 jose luis rivero open robotics ros2: the evolution...

42
1 www.openrobotics.org Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

Upload: others

Post on 20-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

1

www.openrobotics.org

Jose Luis RiveroOpen Robotics

ROS2: The evolution of Robot Operative System

Page 2: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

2

www.openrobotics.org

We create open software and hardware platforms for

robotics. We use those platforms to solve important

problems and we help others to do the same.

Open Robotics

Page 3: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

3

www.openrobotics.org

The origin of ROS 1.x

First release 2007 - Ongoing

Page 4: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

4

IntrospectionDistribution

ROS: open source SDK to build robot software

FederationAbstraction21

43

ROS principles

Page 5: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

5

19.2cm

Price: ~1100€Weight: 1Kg

Page 6: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

6

Wheels(Dynamixel actuators)

Remote controller

360° Laser Distance Sensor

LDS-01

Page 7: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

7

Remote controller

Page 8: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

8

joy_node teleop_twist_joy/joy

ROS MASTER

publish subscribe

/cmd_vel

publish

register node

and /joy naming

andregistration

register

receive metadata

Page 9: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

9

Distribution1● Publish / subscribe messaging

● Discovery, transport, serialization

● Isolate components from each other

● Allow independent development

joy_node teleop_twist_joy/joy

ROS MASTER

publish subscribe

/cmd_vel

publish

Page 10: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

10

● Well-defined interfaces

● Syntax & semantics

● Tools target generic interfaces

● Support multiple languages

Abstraction2

joy_node teleop_twist_joy/joy

publish subscribe

/cmd_vel

publish

Page 11: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

11

360° Laser Distance Sensor LDS-01

Page 12: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

12

laser_lds /scan

publish

ROS MASTER

Page 13: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

13

/scan

publish

ROS MASTER

TODO: LaserScan definitionmessage

Page 14: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

14

/scan

publish

TODO: LaserScan definitionmessage

/scan

Page 15: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

15

Page 16: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

16

● All important data on the message bus

● Support incremental system exploration

● GUIs are always external tools

● Could build apps from CLI tools

Introspection3

Page 17: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

17

Wheels (Dynamixel actuators)

32 bits Microcontroller

RaspBerry Pi

Page 18: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

18

Wheels (Dynamixel actuators)

Page 19: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

19

Page 20: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

20

● Let the code live where authors prefer

● Allow for independent releases

● Lower barrier for contributors

● Authors have control, branding, credit

● Requires tools for devs and CI

Federation4

Page 21: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

21

www.openrobotics.org

The next generation

First release 2018 - Ongoing

Page 22: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

22

Support for small embedded systems

Real-time control & deterministic execution

Validation, verification, and certification

Quality of design & implementation

ROS 2: Goals

Flexibility in communication

System reliability23

156

4

Page 23: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

23

www.openrobotics.org

Use case: unstable networks or high latency scenarios

Page 24: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

24

/cmd_vel

/cmd_vel

wifi

wifi /scan

/scan

Page 25: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

25

joy_node teleop_twist_joy/joy

ROS MASTER

publish subscribe

/cmd_vel

publish

Application layer

Transport layer

TCPROS / UDPROS

laser_lds /scanpublish

rvizsubscribe

Page 26: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

26

/cmd_vel

wifi

wifi

/scan/scan/scan/scan

Page 27: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

27

Architectural changes

Python client library (rospy)

C++ client library (roscpp)

Linux

ROS 1

Masteruser code (nodes)

TCPROS/UPDROS

Microprocessor

DDS Standard

Towards ROS2

Masteruser code (nodes)

Linux / Mac / Windows

Microprocessor

ROS client library (rcl)

rclcpp (C++) rclpy (Python) rcljava (Java)

Page 28: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

28

“The OMG Data-Distribution Service for Real-Time Systems (DDS) is the first open international middleware standard directly addressing publish-subscribe communications for real-time and embedded systems.”

“... DDS features fine and extensive control of QoS parameters, including reliability, bandwidth, delivery deadlines, and resource limits. …”

Data-Distribution Service Standard

Page 29: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

29

Architectural changes

Python client library (rospy)

C++ client library (roscpp)

Linux

ROS 1

Masteruser code (nodes)

TCPROS/UPDROS

Microprocessor

DDS Standard(implementation?)

Towards ROS2

Masteruser code (nodes)

Linux / Mac / Windows

Microprocessor

ROS client library (rcl)

rclcpp (C++) rclpy (Python) rcljava (Java)

Eclipse iceoryx

ROS abstract middleware (rmw)

FastRTPSCyclone DDS

Page 30: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

30

www.openrobotics.org

Use case: manage groups of robots

Page 31: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

31

ROS MASTER Where? ....

Page 32: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

32

user code (nodes)

Architectural changes

DDS Standard

Towards ROS2

Linux / Mac / Windows

Microprocessor

ROS client library (rcl)

rclcpp (C++) rclpy (Python) rcljava (Java)

Eclipse iceoryx

ROS abstract middleware (rmw)

FastRTPSCyclone DDS

[1] https://www.dre.vanderbilt.edu/~schmidt/PDF/debs2014_submission_163.pdf

“Effective data communication between publishers and subscribers requires dynamic and reliable discovery of publisher/subscriber endpoints in the system, which DDS currently supports viaa standardized approach called the Simple Discovery Protocol (SDP)”[1]

ROS2

Master

Page 33: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

33

www.openrobotics.org

Use case:small systems as first-class ROS systems

Page 34: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

34

https://roscon.ros.org/2015/presentations/ros2_on_small_embedded_systems.pdf

Page 35: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

35

Wheels (Dynamixel actuators)

32 bits Microcontroller

RaspBerry Pi

Page 36: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

36

rosserial protocol

32 bits Microcontroller

RaspBerry Pi

rosserial /battery_statepublish

battery stateIMU values

velocity and servocommands /imu

/cmd_vel

Page 37: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

37

user code (nodes)

DDS Standard

Towards ROS2

Linux / Mac / Windows

Microprocessor

ROS client library (rcl)

rclcpp (C++) rclpy (Python) rcljava (Java)

Eclipse iceoryx

ROS abstract middleware (rmw)

FastRTPSConnext DDS

ROS2

user code (nodes)

XRCE-DDS(eXtremely Resource Constrained Environments)

Towards ROS2

NuttX (RTOS)

Microcontroller

Micro-ROS

ROS client library (rcl)

rclcpp (C++)

ROS abstract middleware (rmw)

PredictableExecution

Page 38: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

38

32 bits Microcontroller

RaspBerry Pi

/battery_statepublish

rosserial protocol

battery stateIMU values

velocity and servocommands /imu

/cmd_vel

rosserial

Page 39: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

39

32 bits Microcontroller

RaspBerry Pi

/battery_state

/imu

/cmd_vel

turtlebot3_corepublish

Page 40: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

40

www.openrobotics.org

More and more features ...

Page 41: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

41

More: lifecycle for nodes, run multiples nodes in a single process, deterministic starting sequence, OpenEmbedded/Yocto support, etc.

ROS 2: other features

Security

● ROS1 has no security by design feature not a bug ;)

● ROS2 integrates security from DDS

● Features are: authentication, access control, cryptographic support, ect.

Real time capabilities

● ROS2 design facilitates to implement real-time compliant

● Not only Micro-ROS, also other approaches

● Not only NuttX but FreeRTOS, VxWorks or QNX

Page 42: Robot Operative System - fosdem.org€¦ · 1  Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System

42

www.openrobotics.org

Thanks! Questions?