The ROS 2 Vision

For Advancing the Future
of Robotics Development

Sep. 21st 2017
Dirk Thomas, Mikael Arguedas
ROSCon 2017, Vancouver, Canada

"Unboxing"

Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY

Getting Started

command data video data
Icons made by Freepik, Roundicons and Smashicons from www.flaticon.com is licensed by CC 3.0 BY

Moving Outdoor

command data video data
Icons made by Freepik, Roundicons and Smashiconsfrom www.flaticon.com, is licensed by CC 3.0 BY

Quality of Service

Computer joystick node image view node Robot flight cntrl node camera node /image /cmd_vel reliable best effort

Extend Capabilities: Hardware

Computer image view node Robot camera node camera node #2 /image /image /image /image2 ROS-enabled Dynamically configure FPS, Resolution, RoI, ... image view node #2 Rename topic at runtime
Icons made by Roundicons, Smashicons and Vectors Market from www.flaticon.com is licensed by CC 3.0 BY

Extend Capabilities: Software

Robot flight cntrl node /cmd_vel left camera node /image_left right camera node /image_right Download package providing capability Instantiate node(s) at runtime stereo image pipeline node /obstacles
Icons made by Roundicons and Smashicons from www.flaticon.com is licensed by CC 3.0 BY

Recap #1

  • Multi-OS support: Linux, Mac OS, Windows
    • Binary packages for Mac OS and Windows
  •  
  • Different client libraries share common implementation
  •  
  • Quality of Service: variety of configuration options
  •  
  • Hardware with "native" communication interface
          (no need for separate protocols and driver packages)
  •  
  • Event based notifications (rather than need for polling)
  • Remapping of topics at runtime
  •  
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY

Undeterministic Startup

nodes ready node not ready Robot flight cntrl node /cmd_vel left camera node /image_left right camera node /image_right stereo image pipeline node /obstacles no obstacles reported
Icons made by OCHA from www.flaticon.com is licensed by CC 3.0 BY

Lifecycle State Machine

unconfigured inactive active finalized
See the design article for more information.

Deterministic Startup

inactive unconfigured all active Robot flight cntrl node /cmd_vel left camera node /image_left right camera node /image_right stereo image pipeline node /obstacles Ready to fly
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY

Coexistance with ROS 1

running ROS 1 /cmd_vel reliable /image best effort
Icons made by Freepik, Roundicons and Smashicons from www.flaticon.com is licensed by CC 3.0 BY

Usage Patterns of the "ros1_bridge"

  • Beta
    • TurtleBot 2 demo
    • Robot using ROS 2 onboard
    • Computer uses ROS 1 tools,
      leverage existing ROS 1 packages
  • Beta
    • HSR demo (see talk)
    • Robot using ROS 1 onboard
    • Computer uses ROS 2 tools,
      leverage intrinsic advantages
      of the communication protocol
Icons made by Freepik and Roundicons from www.flaticon.com is licensed by CC 3.0 BY

Usage of the "ros1_bridge"

/cmd_vel reliable /image best effort ROS 1 Robot flight cntrl node processing node camera node ros1_bridge node

Usage Patterns of the "ros1_bridge"

  • Beta
    • TurtleBot 2 demo
    • Robot using ROS 2 onboard
    • Computer uses ROS 1 tools,
      leverage existing ROS 1 packages
  • Beta
    • HSR demo (see talk)
    • Robot using ROS 1 onboard
    • Computer uses ROS 2 tools,
      leverage intrinsic advantages
      of the communication protocol
    • Incrementally migrate a ROS system
Robot ROS 1 node ROS 1 node ROS 1 node ROS 2 node bridge
Icons made by Freepik and Roundicons from www.flaticon.com is licensed by CC 3.0 BY

Multi Robot

  • Distributed discovery useful for on-demand robot-to-robot comm.
    • All current ROS middleware implementations support it
    • As long as all robots use the same comm. protocol
      they can communicate (independent of the vendor)
  •  
  • Quality of Service settings to tailor the comm. for the specific scenario
    • (see eProsima's talk @ 11:35)
  •  
  • Dynamic remapping of topics enables various different approaches, e.g.:
    • Flip namespaced robot spec. topics to be "global"
      • /robotA/pose/pose
    • Subscribe to a specific topic from a group of robots
      • /**/pose    or    /floor2/*/pose

Adding a Custom Sensor

Robot receiver node GPS receiver node Pose estim. node /found_beacon Home Beacon RaspberryPi RaspberryPi Overkill to add a RaspberryPi just for a Bluetooth receiver node MCU module Same ROS 2 code!
Icons made by Alfredo Hernandez, Freepik and Smashicons from www.flaticon.com is licensed by CC 3.0 BY

Flight Controller Internals

/found_beacon Flight controller node Subscription thread Realtime thread Publication thread Message blocked until next update loop Update loop: storing incoming msg in prealloc. structure Performing realtime task, filling out outgoing msg Update loop: copying outgoing msg /return_home

Recap #2

  • Lifecycle nodes
  • Basic Python-based launch files
    • Launch utilizing lifecycle state machine
  •  
  • Dual-home bridge to exchange msgs / srvs between ROS 1 and ROS 2
    • More configuration options
  •  
  • Multi robot benefiting from the communication protocol:
          distributed discovery, configurable QoS, dynamic remapping
  •  
  • "Native" communication protocol with micro controllers (DDS-XRCE)
  •  
  • Proof of concept for real time support using custom allocators
    • No usage of real time kernel yet, no continuous testing
  •  
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY

Process Layout Decision

Robot flight cntrl node /cmd_vel left camera node /image_left right camera node /image_right stereo image pipeline node /obstacles High band- width topics Single Process Save configuration as launch file
Icons made by Freepik and Pixel Buddha from www.flaticon.com is licensed by CC 3.0 BY

Fault Tolerance and Fallback Behaviors

left camera node right camera node stereo obst. detect node left camera node #2 mono. obst. detect node /image_left /image_right /image_left /image /image_left Diagnostic event: "pub frequency too low" Fallback behavior #1: restart the left camera node Diagnostic event: unable to connect to device Fallback behavior #2: switch to monocular det.
Icons made by Alfredo Hernandez and Freepik from www.flaticon.com is licensed by CC 3.0 BY

Unsecure System

command data video data Command spoofed
Icons made by Freepik, OCHA and Smashicons from www.flaticon.com is licensed by CC 3.0 BY

Securing the System

command data video data Encrypt sensitive data Authentication
Icons made by Alfredo Hernandez, Freepik, Prosymbols and Smashicons from www.flaticon.com is licensed by CC 3.0 BY

Validation and Certification

  • Use certified hardware components (which talks DDS)
  • Use certified DDS implementation
  • Use certified / validated software components
  •  
  • Select only the subsystems of ROS 2 which are required for the use case
  • Build your own subsystem on top
  •  
  • → Reduced effort to validate the custom application by
    • Using certified subsystem
    • Reducing footprint as much as possible


  •  
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY

Recap #3

  • Choose process layout at deploy time
    • Support from launch to easily configure this
  •  
  • Event based system providing the infrastructure for fault detection,
          no tooling yet
  •  
  • Security following the DDS-Security standard
    • Fine grain configuration
  •  
  • None of the ROS 2 development is certified
    • But it can interoperate with certified implementations
  •  
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY

Questions...


For more information go to:
ros2.org