ROS2 Real-time Working Group Online Meeting - May 20th, 2019 between 7AM and 8AM PDT (UTC-7)

Hi everyone,

We are planning to hold the first ROS 2 Real-time Working group meeting on May 20th, 2019 between 7AM and 8AM PDT (UTC-7).

Agenda

See pre-discussion: ROS 2 and Real-time.

  1. select one of the use cases below and probably loose interest from people having other uses case.
  2. focus on somewhat generic parts of ROS 2 that will help independently of the selected use case.
    My reading of your comments is that these parts are the following ones:
  3. create rmw layers for static and real-time middleware (RTI Connext Micro, Micro-XRCE-DDS)
  4. perform memory audit in rmw, rcl and rclcpp (remove unneeded memory allocations)
  5. split memory allocation in init and runtime phases, avoid memory fragmentation
  6. remove all blocking calls (or replace with timed calls, e.g. mutex vs timed_mutex )
  7. implement real-time pub/sub (either using Waitset or modified Callback/Executor)
  8. integrate tools for static and dynamic code analysis (PCLint, LDRA, Silexica, LTT-ng)
  9. Create node architecture for deterministic execution (policy for message aggregation, nodes cohesion, parallelization, local error handling …)
  10. Create a design for global error handling (history of failures, core dumps, fail-safe mechanism, …)
  11. Create CI for RT testing (e.g. https://github.com/ros2/ros2/issues/607#issuecomment-460319513 )
  12. ROSCon workshop proposal???

Use cases

  1. consumer robots (Ingo)
  2. warehouse logistics robots (David)
  3. mobile manipulation robots (Victor)
  4. autonomous driving robots/cars (Dejan, Geoff)

Meeting details
Apex.AI is inviting you to a scheduled Zoom meeting.

Topic: ROS 2 Real-time
Time: May 20, 2019 7:00 AM Pacific Time (US and Canada)

Join Zoom Meeting
https://zoom.us/j/771375394

One tap mobile
+16699006833,771375394# US (San Jose)
+19294362866,771375394# US (New York)

Dial by your location
+1 669 900 6833 US (San Jose)
+1 929 436 2866 US (New York)
Meeting ID: 771 375 394
Find your local number: https://zoom.us/u/aAmxdSnyw

1 Like

@vmayoral @iluetkeb @lbegani @davecrawley @mosteo @mjeronimo @gbiggs @traversaro @nburek @tobiasblass see the invite above.

2 Likes

Could I please join in as a listener?

Thanks

Vilas

(https://www.linkedin.com/in/vilas-chitrakaran-9a32866/)

@Vilas_Chitrakaran yes, very welcome to join.

I would like to join the meeting.
Maybe I can comment to some RTOS-related topics.

@Dejan_Pangercic

i did not make it, could you share the recording or minutes, if available?

Dear all,
here are the minutes of our meeting on May 20.

Recording

https://zoom.us/recording/play/95nFrEUoqSQuMClP0ppa3ZbEUVcbCjYbi2y5zZmBspzIT7piImWYcoCW_abkJdnF

Participants

  • Victor, Acutronic Robotics
  • Tobias, Bosch Research
  • Ingo, Bosch Research
  • David, Ubiquity Robotics
  • Akihiko, eSol
  • Geoff, TierIV
  • Lalit, Intel
  • Lander and Carlos, Acutronic Robotics
  • Matt, Intel
  • Nick, AWS
  • Sriram
  • Dejan and Anup, Apex.AI

Action Items

  1. Dejan to provide a use case description and requirements
  2. find someone that will lead the work on real-time able rmw
  3. get William to present his findings on real-timeness in rcutils, rcl and rclcpp
  4. create a shared repository for tools for static and dynamic code analysis and tracing
  5. present Bosch paper and real-time with Callback+Executor in detail in one of the next meetings

Main points

On the use case:

  • Propose a use case => requirements => architecture => hardware
  • Proposed canonical use case: a vehicle/robot encounters an obstacle and has to stop safely for it
  • Proposed other use case: autonomous driving
    • AI: Dejan to provide a use case description and requirements

Create an rmw implementation which works for a single process. Once that works connect with the underlying data link (e.g. TSN). Measure: malloc/realloc calls, page faults, context switches, memory consumption, blocking calls, … RTI Connext Micro is a suitable DDS implementation for something like this due it its staticity and intra-process communication feature.

AI: find someone that will lead this work.

Document current state of the art. Someone remarks that there were still mutexes used in e.g. rmw or rclcpp. Memory is still being allocated/de-allocated when receiving messages.
AI: find examples in code.
AI2: get William to present his findings

Invest in the tools for static and dynamic code analysis and tracing and carefully scan the code.
AI: create a shared repository for above tools. Bosch will e.g. open-source their integration of LTTng in ROS2. Silexica is integrating they dynamic analyser.

We briefly scanned through the paper by Bosch: https://t-blass.de/papers/response-time-analysis-of-ros2.pdf.
AI: present the paper in detail in one of the next meetings.

Victor, Ingo, Dave and Geoff will co-submit.

2 Likes

@Dejan_Pangercic I can take this up. However, I would need some help to understand the problem statement and to find the solution. Let me know your thoughts.

1 Like

How about having another meeting in July?

1 Like

Follow-up: I made a post about the alpha release!

1 Like

@Ingo_Lutkebohle I will send an invite for next week.

1 Like