ros2 the evolution of robot operative system
play

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. 1 ROS2: The evolution of Robot Operative System Jose Luis Rivero Open Robotics www.openrobotics.org

  2. 2 Open Robotics 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. www.openrobotics.org

  3. 3 The origin of ROS 1.x First release 2007 - Ongoing www.openrobotics.org

  4. 4 ROS: open source SDK to build robot software ROS principles 1 3 Distribution Introspection 2 4 Abstraction Federation

  5. 5 19.2cm Price: ~1100€ Weight: 1Kg

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

  7. 7 Remote controller

  8. 8 ROS MASTER receive metadata register node register and /joy naming and registration joy_node /joy teleop_twist_joy /cmd_vel publish subscribe publish

  9. ROS 9 MASTER joy_node /joy teleop_twist_joy /cmd_vel publish subscribe publish ● Publish / subscribe messaging 1 ● Discovery, transport, serialization Distribution ● Isolate components from each other ● Allow independent development

  10. 10 joy_node /joy teleop_twist_joy /cmd_vel publish subscribe publish ● Well-defined interfaces 2 ● Syntax & semantics Abstraction ● Tools target generic interfaces ● Support multiple languages

  11. 11 360° Laser Distance Sensor LDS-01

  12. ROS 12 MASTER laser_lds /scan publish

  13. ROS 13 MASTER TODO: LaserScan definition /scan message publish

  14. 14 TODO: LaserScan definition /scan message publish /scan

  15. 15

  16. 16 3 Introspection ● All important data on the message bus ● Support incremental system exploration ● GUIs are always external tools ● Could build apps from CLI tools

  17. RaspBerry Pi 17 32 bits Microcontroller Wheels (Dynamixel actuators)

  18. 18 Wheels (Dynamixel actuators)

  19. 19

  20. 20 4 Federation ● 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

  21. 21 The next generation First release 2018 - Ongoing www.openrobotics.org

  22. 22 ROS 2: Goals 1 4 Quality of design & Validation, verification, and implementation certification 2 5 Flexibility in System reliability communication 3 6 Real-time control & Support for small embedded deterministic execution systems

  23. 23 Use case: unstable networks or high latency scenarios www.openrobotics.org

  24. 24 /scan i f i w /scan wifi /cmd_vel /cmd_vel

  25. 25 Application layer ROS MASTER rviz laser_lds /scan subscribe publish joy_node teleop_twist_joy /cmd_vel /joy publish subscribe publish Transport layer TCPROS / UDPROS

  26. 26 i f i w /scan /scan wifi /scan /scan /cmd_vel

  27. 27 Architectural changes ROS 1 Towards ROS2 user code (nodes) Master user code (nodes) Master rclcpp (C++) rclpy (Python) rcljava (Java) C++ client library Python client library ROS client library (rcl) (roscpp) (rospy) DDS Standard TCPROS/UPDROS Linux Linux / Mac / Windows Microprocessor Microprocessor

  28. 28 Data-Distribution Service Standard “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. 29 Architectural changes ROS 1 Towards ROS2 user code (nodes) Master user code (nodes) Master rclcpp (C++) rclpy (Python) rcljava (Java) C++ client library Python client library ROS client library (rcl) (roscpp) (rospy) ROS abstract middleware (rmw) DDS Standard (implementation?) Cyclone Eclipse FastRTPS TCPROS/UPDROS DDS iceoryx Linux Linux / Mac / Windows Microprocessor Microprocessor

  30. 30 Use case: manage groups of robots www.openrobotics.org

  31. 31 ROS MASTER Where? ....

  32. 32 Architectural changes Towards ROS2 ROS2 Master user code (nodes) “Effective data communication between publishers and subscribers requires dynamic and reliable rclcpp (C++) rclpy (Python) rcljava (Java) discovery of publisher/subscriber endpoints in the system, which DDS currently supports viaa ROS client library (rcl) standardized approach called the Simple Discovery Protocol (SDP)”[1] ROS abstract middleware (rmw) DDS Standard Cyclone Eclipse FastRTPS DDS iceoryx Linux / Mac / Windows Microprocessor [1] https://www.dre.vanderbilt.edu/~schmidt/PDF/debs2014_submission_163.pdf

  33. 33 Use case: small systems as first-class ROS systems www.openrobotics.org

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

  35. RaspBerry Pi 35 32 bits Microcontroller Wheels (Dynamixel actuators)

  36. RaspBerry Pi 36 32 bits Microcontroller rosserial protocol battery state IMU values publish rosserial /battery_state velocity and servo commands /imu /cmd_vel

  37. 37 Towards ROS2 Towards ROS2 ROS2 Micro-ROS user code (nodes) user code (nodes) rcljava rclcpp (C++) rclpy (Python) rclcpp (C++) (Java) Predictable ROS client library (rcl) ROS client library (rcl) Execution ROS abstract middleware (rmw) ROS abstract middleware (rmw) DDS Standard XRCE-DDS Eclipse Connext DDS FastRTPS iceoryx (eXtremely Resource Constrained Environments) Linux / Mac / Windows NuttX (RTOS) Microprocessor Microcontroller

  38. RaspBerry Pi 38 32 bits Microcontroller rosserial protocol battery state IMU values publish rosserial /battery_state velocity and servo commands /imu /cmd_vel

  39. RaspBerry Pi 39 32 bits Microcontroller publish turtlebot3_core /battery_state /imu /cmd_vel

  40. 40 More and more features ... www.openrobotics.org

  41. 41 ROS 2: other features Security Real time capabilities ● ROS1 has no security by design ● ROS2 design facilitates to feature not a bug ;) implement real-time compliant ● ROS2 integrates security from ● Not only Micro-ROS, also other DDS approaches ● Features are: authentication, ● Not only NuttX but FreeRTOS, access control, cryptographic VxWorks or QNX support, ect. More: lifecycle for nodes, run multiples nodes in a single process, deterministic starting sequence, OpenEmbedded/Yocto support, etc.

  42. 42 Thanks! Questions? www.openrobotics.org

Recommend


More recommend