You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
5.2 KiB
95 lines
5.2 KiB
# LatencyLogger
|
|
|
|
LatencyLogger is a tool to track the time from first pixel to actuation. Timestamps are printed in a table as well as plotted in a graph. Start openpilot with `LOG_TIMESTAMPS=1` set to enable the necessary logging.
|
|
|
|
## Usage
|
|
|
|
```
|
|
$ python latency_logger.py -h
|
|
usage: latency_logger.py [-h] [--relative] [--demo] [--plot] [route_or_segment_name]
|
|
|
|
A tool for analyzing openpilot's end-to-end latency
|
|
|
|
positional arguments:
|
|
route_or_segment_name
|
|
The route to print (default: None)
|
|
|
|
optional arguments:
|
|
-h, --help show this help message and exit
|
|
--relative Make timestamps relative to the start of each frame (default: False)
|
|
--demo Use the demo route instead of providing one (default: False)
|
|
--plot If a plot should be generated (default: False)
|
|
```
|
|
To timestamp an event, use `LOGT("msg")` in c++ code or `cloudlog.timestamp("msg")` in python code. If the print is warning for frameId assignment ambiguity, use `LOGT(frameId ,"msg")`.
|
|
|
|
## Examples
|
|
Plotting with relative starts each process at time=0 and gives a nice overview. Timestamps are visualized as diamonds. The opacity allows for visualization of overlapping services.
|
|

|
|
|
|
Plotting without relative provides info about the frames relative time.
|
|

|
|
|
|
|
|
Printed timestamps of a frame with internal durations.
|
|
```
|
|
Frame ID: 371
|
|
camerad
|
|
wideRoadCameraState start of frame 0.0
|
|
roadCameraState start of frame 0.072395
|
|
wideRoadCameraState published 47.804745
|
|
WideRoadCamera: Image set 47.839849
|
|
roadCameraState published 48.319166
|
|
RoadCamera: Image set 48.354478
|
|
RoadCamera: Transformed 48.430258
|
|
wideRoadCameraState.processingTime 16.733376309275627
|
|
roadCameraState.processingTime 16.218071803450584
|
|
modeld
|
|
Image added 51.346522
|
|
Extra image added 53.179467
|
|
Execution finished 71.584437
|
|
modelV2 published 71.76881
|
|
modelV2.modelExecutionTime 22.54236489534378
|
|
modelV2.gpuExecutionTime 0.0
|
|
plannerd
|
|
lateralPlan published 77.381862
|
|
longitudinalPlan published 84.207972
|
|
lateralPlan.solverExecutionTime 1.3547739945352077
|
|
longitudinalPlan.solverExecutionTime 2.0179999992251396
|
|
controlsd
|
|
Data sampled 78.909759
|
|
Events updated 79.711884
|
|
sendcan published 80.721038
|
|
controlsState published 81.081398
|
|
Data sampled 88.663748
|
|
Events updated 89.535403
|
|
sendcan published 90.587889
|
|
controlsState published 91.019707
|
|
Data sampled 98.667003
|
|
Events updated 99.661261
|
|
sendcan published 100.776507
|
|
controlsState published 101.198794
|
|
Data sampled 108.967078
|
|
Events updated 109.95842
|
|
sendcan published 111.263142
|
|
controlsState published 111.678085
|
|
Data sampled 118.574923
|
|
Events updated 119.608555
|
|
sendcan published 120.73427
|
|
controlsState published 121.111036
|
|
Data sampled 128.596408
|
|
Events updated 129.382283
|
|
sendcan published 130.330083
|
|
controlsState published 130.676485
|
|
boardd
|
|
sending sendcan to panda: 250027001751393037323631 90.7257
|
|
sendcan sent to panda: 250027001751393037323631 91.078143
|
|
sending sendcan to panda: 250027001751393037323631 100.941766
|
|
sendcan sent to panda: 250027001751393037323631 101.306865
|
|
sending sendcan to panda: 250027001751393037323631 111.411786
|
|
sendcan sent to panda: 250027001751393037323631 111.754074
|
|
sending sendcan to panda: 250027001751393037323631 120.875987
|
|
sendcan sent to panda: 250027001751393037323631 121.188535
|
|
sending sendcan to panda: 250027001751393037323631 130.454248
|
|
sendcan sent to panda: 250027001751393037323631 130.757994
|
|
sending sendcan to panda: 250027001751393037323631 140.353234
|
|
```
|
|
|