-
Notifications
You must be signed in to change notification settings - Fork 660
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
Make it possible to detect publishing times of the messages in the pipelines #6255
Comments
Long time ago I wanted to solve the same issue and wrote a simple python script to watch predefined pipelines (= list of topics). For example, if I want to analyze the following pipeline:
I just subscribe all topics Wouldn't this do the job? |
@VRichardJP Thanks for the answer, it is a very sensible method. However, what I am trying to do is catch the first messages of each node (predefined checkpoints) to understand which node or pipeline is late to react. (you can see the sample test video here. Using the origin time of the message as ID is a great idea, however, when I catch the reacted message, also I need its published time. Maybe adding a new small-sized message that includes the origin time and the publishing time to each node would be a solution. We can use the origin times as ID as you said and after catching the reacted message, we can find the publishing time from the other small-sized message by using the header time of the reacted message. |
I am not sure I understand the issue. Edit: the "delay" calculation in the diagram above is not correct. It is: |
@VRichardJP The purpose is not to measure the DDS or ROS 2 performance, the purpose is to measure total system performance and we want to be able to find the bottlenecks in that system. What we are doing is we are recording two pointcloud messages: pointcloud without object (let say pointcloud A) and pointcloud with an object(pointcloud B). We are sending the Pointcloud A until all Autoware nodes and stacks are ready, after that, we start to publish pointcloud B. The time we started to publish pointcloud B is recorded as spawn_time of the object. After the object is spawned, we check each node's outputs to see how much time it takes to show us the object as output. By using this method, we can see all system performance, and also we can check each node's reaction to analyze the bottlenecks in that system. I hope I can explain the purpose, please let me know if you have any questions. |
@brkay54 thank you I understand now. |
We had a meeting with @xmfcx and @mitsudome-r, Possible Solutions:
Reaction analyzer will subscribe to the main topic and the debug topic with exact time filter to overwrite published time internally to the main topic. Option - 2 Reaction analyzer subscribes to the debug topic to calculate the time difference between the timestamp in the debug topic. We decided to implement the Option - 1. We are going to add a new debug publisher in each node with a turn-on/off flag. This option is going to be present in Perception/Sensing WG. |
Checklist
Description
It is mainly needed for:
cc. @xmfcx @mitsudome-r
In the current Autoware, all the pipelines are designed to use their input's timestamp while publishing output as shown below.
However, it causes we can not know the exact timing of the messages to analyze their reaction times. It makes it hard to find bottlenecks inside the pipelines.
While we were developing the tool named reaction_analyzer, we made some changes to the perception, sensing, planning, and control pipeline header times to check nodes' reaction times. (Here you can see the results.) However, it is not possible to change the header times of the output message of the nodes as we discussed in the Perception Sensing WG. However, this situation makes it hard to find the exact timing of the outputs inside the pipeline.
Purpose
Finding new methods to see outputs' exact timings to be able to analyze the nodes' reaction times inside the pipeline.
Possible approaches
Adding a new low-sized message to show nodes' input origin times and output times.
Definition of done
Merge these PRs in order:
The text was updated successfully, but these errors were encountered: