Giter Site home page Giter Site logo

ros2_profiling's People

Contributors

cwecht avatar mjcarroll avatar tvaeth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ros2_profiling's Issues

ros2 profile run_tests crashes

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

  • go back to the humble Branch in ros2_tracing
  • disable kernel profiling in ros2profile
    grafik

The is the error I'm getting:
grafik

I'm getting this warning during the build of cyclonedds though. Maybe this issue is related:
tracing-warning

Add unit tests of graph API

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.

Add more complete examples

Add more complete examples of the types of metrics to analyze/assert:

  • Frequency and Jitter between various test points in the system.
  • Sender and timestamp of messages on a topic.

Tolerate subscriptions for which no callback is found

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.

Missing python dependencies

There are two dependencies not currently captured in package.xml/setup.py

mcap-ros2-support-python
pandas

Add support for MessageFilter data association

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.