ROS2 Real-time Working Group Online Meeting 5 - Nov 13, 2019, 7AM PDT (UTC-7)

Meeting minutes:

  1. Performance measurement
    1. Erik says that there are different and biased performance test benchmarks for DDS floating around.
  2. Static executor
    1. Bosch and Nobleo are running the experiments and also measuring the performance with this code:
      1. testbench Generator: https://github.com/micro-ROS/rcl_executor/tree/feature/testbench/rcl_executor_testbench
      2. testbench for the static rclcpp executor (nobleo): https://github.com/nobleo/rclcpp_executor_testbench
      3. With above packages you can: split up benchmark, configure the number of publishers, subscribers, essentially it is a benchmark generator, simple way to generate test cases & can see overhead in DDS, rmw, …
  3. Different contributors to the ROS 2 ecosystem use benchmarks & tools that are either all different - and thus cannot be compared - or simply provide invalid results.
    • ADLINK
      • benchmark for Cyclone DDS
    • eProsima
      • benchmark for Fast-RTPS
    • Bosch & Nobleo
      • benchmarks/analyses for:
        • Static executor
        • LET rcl executor
      • using:
        • ros2_tracing + tracetools_analysis (instrumentation, tracing, and analysis/visualization)
    • New ROS 2 real-time inverted pendulum demo (from Carlos)
      • looking at memory allocation, page faults, context switches, etc.
      • using ros2_tracing + tracetools_analysis (instrumentation, tracing, and analysis/visualization)
  4. LET rcl executor
    1. Bosch created a pull request on ros2/rcl which includes the LET rcl executor and some helper functions (rcl_ext) (to simplify Setting up rcl handles (like Publishers, Subscribers, timers ) on C API
    2. @wjwwood says that it should go into a different repository. Possibly rclc could be revived.
  5. Single-process, real-time rmw
    1. @eboasson writing of GitHub issues
  6. https://github.com/ros2-realtime-demo/pendulum => @carlossv and @christophebedard discussed inclusion of LTTng tracing
    1. @carlossv Common package for real-time settings would be nice => memlock, setting scheduling policies, cpu affinity
    2. @wjwwood thinks that there are 2 objectives for such a package: to either make it easier to use or portable.

Recordings

  1. https://drive.google.com/file/d/1pXmoj1KZhb4vD7-bZ_jDIFWFHDBJa8mS/view?usp=sharing
  2. https://drive.google.com/file/d/1Yo4PNUNi8CRBh6hA9sLGrnpHpVQgkW8_/view?usp=sharing

Action items:

  1. AI: Dejan to write a longer Discourse post on how to measure performance correctly
  2. AI2: Silexica to implement their Performance Testing Platform for ROS community
  3. AI3: @eboasson to finalize the issues for single-process, real-time rmw

Agenda for next week:

  1. @ralph-lange LET executor: ROS2 Real-time Working Group Online Meeting 5 - Nov 13, 2019, 7AM PDT (UTC-7)
  2. @eboasson single-process, real-time rmw
2 Likes