Robot Operative System - fosdem.org€¦ · 1 Jose Luis Rivero Open Robotics ROS2: The evolution...
Transcript of Robot Operative System - fosdem.org€¦ · 1 Jose Luis Rivero Open Robotics ROS2: The evolution...
![Page 1: Robot Operative System - fosdem.org€¦ · 1 Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/1.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/2.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/7.jpg)
7
Remote controller
![Page 8: Robot Operative System - fosdem.org€¦ · 1 Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/8.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/12.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/14.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/15.jpg)
15
![Page 16: Robot Operative System - fosdem.org€¦ · 1 Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/17.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/18.jpg)
18
Wheels (Dynamixel actuators)
![Page 19: Robot Operative System - fosdem.org€¦ · 1 Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/19.jpg)
19
![Page 20: Robot Operative System - fosdem.org€¦ · 1 Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/22.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/23.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/24.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/25.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/26.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/27.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/28.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/29.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/30.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/31.jpg)
31
ROS MASTER Where? ....
![Page 32: Robot Operative System - fosdem.org€¦ · 1 Jose Luis Rivero Open Robotics ROS2: The evolution of Robot Operative System](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/32.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/33.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/34.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/35.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/36.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/37.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/38.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/39.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/40.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/41.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042220/5ec5ece10ef944652c2031c0/html5/thumbnails/42.jpg)
42
www.openrobotics.org
Thanks! Questions?