safe-ros / ros2_profiling Goto Github PK
View Code? Open in Web Editor NEWA set of tools and techniques for evaluating performance of ROS 2 based systems
License: Apache License 2.0
A set of tools and techniques for evaluating performance of ROS 2 based systems
License: Apache License 2.0
If I run ros2 profile run_test ~/.ros/profile/reference_system-20230207090755/ ./src/ros2_profiling/ros2_profiling_demo/test/test_profile.py
in a docker container based on this dockerfile:
`FROM osrf/ros:humble-desktop
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y
lttng-tools liblttng-ust-dev
python3-babeltrace python3-lttng
lttng-modules-dkms
ros-humble-mcap-vendor
python3-pip
RUN pip install mcap-ros2-support pandas
`
For doing that I also had to
I'm getting this warning during the build of cyclonedds though. Maybe this issue is related:
Since the GraphAPI is intended to be used for analysis, unit tests need to be added to make sure that the API doesn't change in unexpected ways.
Using the message flow branch doesn't work on Ubuntu 22.04. Update the instructions to capture using the correct lttng-ust version.
Add more complete examples of the types of metrics to analyze/assert:
Ocassionally, we get data recordings where the processing via ros2 profile process
prompts an error message that association of the subscription callbacks fails:
Traceback (most recent call last):
File "/opt/ros/humble/bin/ros2", line 33, in <module>
sys.exit(load_entry_point('ros2cli==0.18.5', 'console_scripts', 'ros2')())
File "/opt/ros/humble/lib/python3.10/site-packages/ros2cli/cli.py", line 89, in main
rc = extension.main(parser=parser, args=args)
File "~/safe-ros/install/ros2profile/lib/python3.10/site-packages/ros2profile/command/profile.py", line 35, in main
return extension.main(args=args)
File "~/safe-ros/install/ros2profile/lib/python3.10/site-packages/ros2profile/verb/process.py", line 27, in main
process(args.input_path)
File "~/safe-ros/install/ros2profile/lib/python3.10/site-packages/ros2profile/api/process.py", line 131, in process
graph = build_graph(events)
File "~/safe-ros/install/ros2profile/lib/python3.10/site-packages/ros2profile/data/__init__.py", line 136, in build_graph
_associate_subscription_callbacks(ret)
File "~/safe-ros/install/ros2profile/lib/python3.10/site-packages/ros2profile/data/__init__.py", line 573, in _associate_subscription_callbacks
sub_cb_events = subscription.callback.events()
File "~/safe-ros/install/ros2profile/lib/python3.10/site-packages/ros2profile/data/subscription.py", line 203, in callback
return self._callback
AttributeError: 'Subscription' object has no attribute '_callback'. Did you mean: 'callback'?
A closer look on the matter showed that this, in our case, was related to the /parameter_events
topic for which ignoring a failed callback association (+ printing a warning) seems to be fine to be able to proceed with data analysis. Especially since the issue can occur for a row of subsequent recordings.
There are two dependencies not currently captured in package.xml/setup.py
mcap-ros2-support-python
pandas
Determine how to use kernel tracing from Docker.
The data association between publishers and subscriptions currently cannot be performed across something like the MessageFilter
or ImageTransport
.
In order for these to be correctly analyzed, then we need to associate across these common patterns.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.