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.
88 lines
4.5 KiB
88 lines
4.5 KiB
3 years ago
|
# 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)
|
||
|
```
|
||
|
|
||
|
## Examples
|
||
|
Plotting with relative starts each process at time=0 and gives a nice overview.
|
||
|

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

|
||
|
|
||
|
|
||
|
Printed timestamps of a frame with internal durations.
|
||
|
```
|
||
|
Frame ID: 303
|
||
|
camerad
|
||
|
roadCameraState start of frame 0.0
|
||
|
wideRoadCameraState start of frame 0.091926
|
||
|
RoadCamera: Image set 1.691696
|
||
|
RoadCamera: Transformed 1.812841
|
||
|
roadCameraState published 51.775466
|
||
|
wideRoadCameraState published 54.935164
|
||
|
roadCameraState.processingTime 1.6455530421808362
|
||
|
wideRoadCameraState.processingTime 4.790564067661762
|
||
|
modeld
|
||
|
Image added 56.628788
|
||
|
Extra image added 57.459923
|
||
|
Execution finished 75.091306
|
||
|
modelV2 published 75.24797
|
||
|
modelV2.modelExecutionTime 20.00947669148445
|
||
|
modelV2.gpuExecutionTime 0.0
|
||
|
plannerd
|
||
|
lateralPlan published 80.426861
|
||
|
longitudinalPlan published 85.722781
|
||
|
lateralPlan.solverExecutionTime 1.0600379901006818
|
||
|
longitudinalPlan.solverExecutionTime 1.3830000534653664
|
||
|
controlsd
|
||
|
Data sampled 89.436221
|
||
|
Events updated 90.356522
|
||
|
sendcan published 91.396092
|
||
|
controlsState published 91.77843
|
||
|
Data sampled 99.885876
|
||
|
Events updated 100.696855
|
||
|
sendcan published 101.600489
|
||
|
controlsState published 101.941839
|
||
|
Data sampled 110.087669
|
||
|
Events updated 111.025365
|
||
|
sendcan published 112.305921
|
||
|
controlsState published 112.70451
|
||
|
Data sampled 119.692803
|
||
|
Events updated 120.56774
|
||
|
sendcan published 121.735016
|
||
|
controlsState published 122.142823
|
||
|
Data sampled 129.264761
|
||
|
Events updated 130.024282
|
||
|
sendcan published 130.950364
|
||
|
controlsState published 131.281558
|
||
|
boardd
|
||
|
sending sendcan to panda: 250027001751393037323631 101.705487
|
||
|
sendcan sent to panda: 250027001751393037323631 102.042462
|
||
|
sending sendcan to panda: 250027001751393037323631 112.416961
|
||
|
sendcan sent to panda: 250027001751393037323631 112.792269
|
||
|
sending sendcan to panda: 250027001751393037323631 121.850952
|
||
|
sendcan sent to panda: 250027001751393037323631 122.231103
|
||
|
sending sendcan to panda: 250027001751393037323631 131.045206
|
||
|
sendcan sent to panda: 250027001751393037323631 131.351296
|
||
|
sending sendcan to panda: 250027001751393037323631 141.340592
|
||
|
sendcan sent to panda: 250027001751393037323631 141.700744
|
||
|
```
|