openpilot/tools/replay
Willem Melching 679919ab1f fix unlog_segment.py 2021-05-18 11:14:42 +02:00
..
lib ui.py: draw lines on radarState leads 2021-03-03 13:05:41 +01:00
README.md improving tools readme (#20305) 2021-03-11 15:28:37 -08:00
__init__.py merge in tools 2020-01-17 10:07:22 -08:00
camera.py cereal cleanup part 2 (#20092) 2021-02-16 21:39:32 -08:00
rqplot.py Run mypy commit hook (#1591) 2020-05-28 15:05:04 -07:00
ui.py LateralPlanner should only compute curvature (#20289) 2021-03-11 21:08:51 -08:00
unlog_segment.py fix unlog_segment.py 2021-05-18 11:14:42 +02:00
unlogger.py fix ui and unlogger after cereal cleanup 2021-02-18 17:34:09 +01:00

README.md

Replay driving data

Hardware needed: none

unlogger.py replays data collected with dashcam or openpilot.

Unlogger with remote data:

# Log in via browser
python lib/auth.py

# Start unlogger
python replay/unlogger.py <route-name>
#Example:
#python replay/unlogger.py '3533c53bb29502d1|2019-12-10--01-13-27'

# In another terminal you can run a debug visualizer:
python replay/ui.py   # Define the environmental variable HORIZONTAL is the ui layout is too tall

Unlogger with local data downloaded from device or https://my.comma.ai:

python replay/unlogger.py <route-name> <path-to-data-directory>

#Example:

#python replay/unlogger.py '99c94dc769b5d96e|2018-11-14--13-31-42' /home/batman/unlogger_data

#Within /home/batman/unlogger_data:
#  99c94dc769b5d96e|2018-11-14--13-31-42--0--fcamera.hevc
#  99c94dc769b5d96e|2018-11-14--13-31-42--0--rlog.bz2
#  ...

Imgur

LogReader with remote data

from tools.lib.logreader import LogReader
from tools.lib.route import Route
route = Route('3533c53bb29502d1|2019-12-10--01-13-27')
log_paths = route.log_paths()
events_seg0 = list(LogReader(log_paths[0]))
print(len(events_seg0), 'events logged in first segment')

Stream replayed CAN messages to EON

Hardware needed: 2 x panda, debug board, EON.

It is possible to replay CAN messages as they were recorded and forward them to a EON.  Connect 2 pandas to the debug board. A panda connects to the PC, the other panda connects to the EON.

Usage:

# With MOCK=1 boardd will read logged can messages from a replay and send them to the panda.
MOCK=1 selfdrive/boardd/tests/boardd_old.py

# In another terminal:
python replay/unlogger.py <route-name> <path-to-data-directory>

Imgur