Update on tools for static and dynamic code analysis and tracing => @Ingo_Lutkebohle
Presentation on performance testing platform for the ROS2 community (tentative)
Meeting Info
Join Zoom Meeting
Meeting ID: 803 701 270
Password: 723664
One tap mobile
+16699006833,803701270# US (San Jose)
+19294362866,803701270# US (New York)
Dial by your location
+1 669 900 6833 US (San Jose)
+1 929 436 2866 US (New York)
Meeting ID: 803 701 270
Find your local number: https://zoom.us/u/aAmxdSnyw
Regrettably I’ll be on an airplane at that moment, just coming in to land in Barcelona. If I dial in as the aircraft hits the runway I might make the last half of the call - but obviously if the plane arrives even a little late or other factors come in to play that hour, then I’ll be a no-show.
I can join, but not much has changed w.r.t. the static executor. I have updated our slides for ROSCon to include the semi-dynamic aspect of the executor. We extended the functionality by having the executor rebuild when a guard condition is triggered.
This slight change does not warrant another presentation in my opinion. If there are new people joining the meeting I can quickly fill them in. I can also answer any questions people may have.
The version at https://github.com/nobleo/rclcpp-static-executor is a stable dashing example that we don’t plan on changing much anymore (I might extend the flowchart to show the semi-dynamic part we added). The purpose of that page is more to show the idea of the executor and give people a chance to play with it. The PR version from master is the one we are updating more rigorously (and getting up to ROS2 standards).
Only Anup volunteered to contribute to the real-time rmw implementation based on CycloneDDS. Next steps: find contractors. @eboasson to create a project on github for this rmw implementation and some issues which we can give to contractors as a SOW.
Presentation of the “Mini buildfarm with resource guarantees” will be done by Silexica in one of the next meetings
Hi Tomoya, @eboasson and I are sitting in Palo Alto having a lovely vino while thoughtfully considering your questions
Q: What is the difference from existing rmw_cyclonedds implementation?
A: the key thing is we want to do this without disturbing the existing RMW working well with Eloquent. We need a separate one to have the freedom to experiment without breaking things for current users.
In terms of threading the current ros2/rmw_cyclonedds is fine (rmw ≠cyclonedds), in terms of memory allocation it is not (yet).
Q: What is the definition “real-time”?
A: guaranteed upper bounded latency — which in practice means one must be very careful about threading and allocations.
Q: Target platform and use cases?
A: use case we target is your typical operational repetitive processing cycle, but not startup and termination. This is really platform independent.
Q: Concrete problems and goals?
A: eliminate memory allocations in serialization / deserialization (which requires the memory to provided by the application in some way) and achieve zero-copy / zero-allocation intra-process communication. Also, evaluate the wait set interface itself, because the current RMW interface has a pretty bad impedance mismatch with DDS wait sets, making predictable behavior much harder.
This demo is at a early stage and many things need to be polished. One of our goals is the community to take this project as a reference for real-time testing. Not only to benchmark their real-time setups but also to test new features and improve ROS 2 real-time capabilities. Feel free to contribute and we’d very much appreciate your feedback.
@carlossv I included this into my presentation for ROS 2 real time workshop on Wednesday. See below.
I will also have the demo ready to be shown at Apex.AI booth at ROSCon 2019.
Thanks, this is fantastic, let us know if you’ve any feedback.