1
www.openrobotics.org
Jose Luis Rivero
Open Robotics
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
1
www.openrobotics.org
Jose Luis Rivero
Open Robotics
2
www.openrobotics.org
We create open sofuware and hardware platforms for
problems and we help others to do the same.
3
www.openrobotics.org
First release 2007 - Ongoing
4
Introspection Distribution
Federation Abstraction
ROS principles
5
19.2cm Price: ~1100€ Weight: 1Kg
6
Wheels (Dynamixel actuators) Remote controller 360° Laser Distance Sensor LDS-01
7
Remote controller
8
joy_node teleop_twist_joy /joy
ROS MASTER
publish subscribe
/cmd_vel
publish register node and /joy naming and registration register receive metadata
9
Distribution
joy_node teleop_twist_joy /joy
ROS MASTER
publish subscribe
/cmd_vel
publish
10
Abstraction
joy_node teleop_twist_joy /joy
publish subscribe
/cmd_vel
publish
11
360° Laser Distance Sensor LDS-01
12
laser_lds /scan
publish
ROS MASTER
13
/scan
publish
ROS MASTER
TODO: LaserScan definition message
14
/scan
publish TODO: LaserScan definition message
/scan
15
16
Introspection
17
Wheels (Dynamixel actuators) 32 bits Microcontroller RaspBerry Pi
18
Wheels (Dynamixel actuators)
19
20
Federation
21
www.openrobotics.org
First release 2018 - Ongoing
22
Support for small embedded systems Real-time control & deterministic execution Validation, verification, and certification Quality of design & implementation
Flexibility in communication System reliability
23
www.openrobotics.org
24
/cmd_vel /cmd_vel w i f i wifi /scan /scan
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
26
/cmd_vel w i f i wifi /scan /scan /scan /scan
27
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)
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. …”
29
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
30
www.openrobotics.org
31
ROS MASTER Where? ....
32
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 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
33
www.openrobotics.org
34
https://roscon.ros.org/2015/presentations/ros2_on_small_embedded_systems.pdf
35
Wheels (Dynamixel actuators) 32 bits Microcontroller RaspBerry Pi
36
rosserial protocol
32 bits Microcontroller RaspBerry Pi
rosserial /battery_state
publish
battery state IMU values velocity and servo commands
/imu /cmd_vel
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
38
32 bits Microcontroller RaspBerry Pi
/battery_state
publish
rosserial protocol
battery state IMU values velocity and servo commands
/imu /cmd_vel rosserial
39
32 bits Microcontroller RaspBerry Pi
/battery_state /imu /cmd_vel turtlebot3_core
publish
40
www.openrobotics.org
41
More: lifecycle for nodes, run multiples nodes in a single process, deterministic starting sequence, OpenEmbedded/Yocto support, etc.
Security
feature not a bug ;)
DDS
access control, cryptographic support, ect. Real time capabilities
implement real-time compliant
approaches
VxWorks or QNX
42
www.openrobotics.org