Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collect ideas #1

Open
akoerner1 opened this issue Oct 22, 2024 · 0 comments
Open

Collect ideas #1

akoerner1 opened this issue Oct 22, 2024 · 0 comments

Comments

@akoerner1
Copy link
Contributor

akoerner1 commented Oct 22, 2024

Mission

The goal of this project is to create a C++ library that can observe ROS2.

Some observations that are interesting for the mission:

  • Interrogate ROS for a list of nodes, data types, data structures(messages and message types). - DONE
  • Every ROS node/program has a run function. When and for how long did this function execute.
  • Data throughput ie when is a message received, how much data etc
  • Fingerprinting data and associating it to a specific run execution

Requirements

The following basic information would be interesting to observe:

  • Minimal modification of user programs/nodes. A user should not have to make significant changes to their program/node to leverage the observer
  • minimal external requirements/dependencies
  • Library must output json to file and stdio to support piping
  • Include the simulation time and wall clock time in output data
  • Run function metadata
    • What host and cpu did the run or node function execute on, function name
  • minimal performance overhead
  • Include data structure of all messages
  • include overall structure of entire ros2 running environment nodes and edges(publishers and subscribers)
  • What kind of user interface do we want?

Notes

  • When a given node/program "run" function starts and returns with a high precision timer.
  • When a subscribed message is received
  • Data rate of a given topic.
  • hash/fingerprint of the raw data.
  • Can we integrate this or leverage lttng https://lttng.org/?

Timeline

First working example by January 31, 2025

Tasks

  • Write readme describing project and highlighting inchron and dlr collaboration @akoerner1
  • Add ros command line data aggregator tool to repo.
  • Provide a sample data structure @vpollex

Discovery

ROS2 has a built in tracing tool: https://github.com/ros2/ros2_tracing

Goals for tracing tool

  • experiment with tracer
  • Build into ADORe cli
  • create parser for tracing data output to json and other formats
  • ????? integrate into Inchon tool and dlr big net observer

ROS2 node failure modes

  • Node does not receive data in time.
  • Data is junk i.e., 1 of every 5 data packets is junk
  • Node does not finish critical section/calculation in time.

Ideas

  • callbacks per second
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant