ROS2: The evolution of Robot Operative System Jose Luis Rivero - - PowerPoint PPT Presentation

ros2 the evolution of robot operative system
SMART_READER_LITE
LIVE PREVIEW

ROS2: The evolution of Robot Operative System Jose Luis Rivero - - PowerPoint PPT Presentation

1 ROS2: The evolution of Robot Operative System Jose Luis Rivero Open Robotics www.openrobotics.org 2 Open Robotics We create open sofuware and hardware platforms for robotics. We use those platforms to solve important problems and we help


slide-1
SLIDE 1

1

www.openrobotics.org

Jose Luis Rivero

Open Robotics

ROS2: The evolution of Robot Operative System

slide-2
SLIDE 2

2

www.openrobotics.org

We create open sofuware and hardware platforms for

  • robotics. We use those platforms to solve important

problems and we help others to do the same.

Open Robotics

slide-3
SLIDE 3

3

www.openrobotics.org

The origin

  • f ROS 1.x

First release 2007 - Ongoing

slide-4
SLIDE 4

4

Introspection Distribution

ROS: open source SDK to build robot software

Federation Abstraction

2 1 4 3

ROS principles

slide-5
SLIDE 5

5

19.2cm Price: ~1100€ Weight: 1Kg

slide-6
SLIDE 6

6

Wheels (Dynamixel actuators) Remote controller 360° Laser Distance Sensor LDS-01

slide-7
SLIDE 7

7

Remote controller

slide-8
SLIDE 8

8

joy_node teleop_twist_joy /joy

ROS MASTER

publish subscribe

/cmd_vel

publish register node and /joy naming and registration register receive metadata

slide-9
SLIDE 9

9

Distribution

1

  • 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

slide-10
SLIDE 10

10

  • Well-defined interfaces
  • Syntax & semantics
  • Tools target generic interfaces
  • Support multiple languages

Abstraction

2

joy_node teleop_twist_joy /joy

publish subscribe

/cmd_vel

publish

slide-11
SLIDE 11

11

360° Laser Distance Sensor LDS-01

slide-12
SLIDE 12

12

laser_lds /scan

publish

ROS MASTER

slide-13
SLIDE 13

13

/scan

publish

ROS MASTER

TODO: LaserScan definition message

slide-14
SLIDE 14

14

/scan

publish TODO: LaserScan definition message

/scan

slide-15
SLIDE 15

15

slide-16
SLIDE 16

16

  • All important data on the message bus
  • Support incremental system exploration
  • GUIs are always external tools
  • Could build apps from CLI tools

Introspection

3

slide-17
SLIDE 17

17

Wheels (Dynamixel actuators) 32 bits Microcontroller RaspBerry Pi

slide-18
SLIDE 18

18

Wheels (Dynamixel actuators)

slide-19
SLIDE 19

19

slide-20
SLIDE 20

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

Federation

4

slide-21
SLIDE 21

21

www.openrobotics.org

The next generation

First release 2018 - Ongoing

slide-22
SLIDE 22

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 reliability

2 3 1 5 6 4

slide-23
SLIDE 23

23

www.openrobotics.org

Use case: unstable networks or high latency scenarios

slide-24
SLIDE 24

24

/cmd_vel /cmd_vel w i f i wifi /scan /scan

slide-25
SLIDE 25

25

joy_node teleop_twist_joy /joy

ROS MASTER

publish subscribe

/cmd_vel

publish

Application layer Transport layer TCPROS / UDPROS

laser_lds /scan

publish

rviz

subscribe

slide-26
SLIDE 26

26

/cmd_vel w i f i wifi /scan /scan /scan /scan

slide-27
SLIDE 27

27

Architectural changes

Python client library (rospy) C++ client library (roscpp) Linux

ROS 1

Master user code (nodes) TCPROS/UPDROS Microprocessor

DDS Standard

Towards ROS2

Master user code (nodes) Linux / Mac / Windows Microprocessor ROS client library (rcl) rclcpp (C++) rclpy (Python) rcljava (Java)

slide-28
SLIDE 28

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

slide-29
SLIDE 29

29

Architectural changes

Python client library (rospy) C++ client library (roscpp) Linux

ROS 1

Master user code (nodes) TCPROS/UPDROS Microprocessor

DDS Standard (implementation?)

Towards ROS2

Master user code (nodes) Linux / Mac / Windows Microprocessor ROS client library (rcl) rclcpp (C++) rclpy (Python) rcljava (Java)

Eclipse iceoryx ROS abstract middleware (rmw) FastRTPS Cyclone DDS

slide-30
SLIDE 30

30

www.openrobotics.org

Use case: manage groups of robots

slide-31
SLIDE 31

31

ROS MASTER Where? ....

slide-32
SLIDE 32

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) FastRTPS Cyclone 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

slide-33
SLIDE 33

33

www.openrobotics.org

Use case: small systems as first-class ROS systems

slide-34
SLIDE 34

34

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

slide-35
SLIDE 35

35

Wheels (Dynamixel actuators) 32 bits Microcontroller RaspBerry Pi

slide-36
SLIDE 36

36

rosserial protocol

32 bits Microcontroller RaspBerry Pi

rosserial /battery_state

publish

battery state IMU values velocity and servo commands

/imu /cmd_vel

slide-37
SLIDE 37

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) FastRTPS Connext 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) Predictable Execution

slide-38
SLIDE 38

38

32 bits Microcontroller RaspBerry Pi

/battery_state

publish

rosserial protocol

battery state IMU values velocity and servo commands

/imu /cmd_vel rosserial

slide-39
SLIDE 39

39

32 bits Microcontroller RaspBerry Pi

/battery_state /imu /cmd_vel turtlebot3_core

publish

slide-40
SLIDE 40

40

www.openrobotics.org

More and more features ...

slide-41
SLIDE 41

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

slide-42
SLIDE 42

42

www.openrobotics.org

Thanks! Questions?