openpilot0/tools/replay
Dean Lee da95fd3019
replay: simplify the code for allow/block list (#30449)
simplify allow/block list
2023-11-13 09:19:39 -08:00
..
lib Linter: remove pylint (#29611) 2023-08-24 16:30:54 -07:00
tests replay: simplify the code for allow/block list (#30449) 2023-11-13 09:19:39 -08:00
.gitignore
README.md replay: new demo route (#29215) 2023-08-03 13:18:44 -07:00
SConscript replay: simplify the code for allow/block list (#30449) 2023-11-13 09:19:39 -08:00
__init__.py
camera.cc cpplint: add filter `build/include_subdir` (#29585) 2023-08-24 15:42:17 +01:00
camera.h replay: fix visionbuf alignment on device (#26913) 2023-08-24 00:03:16 -07:00
can_replay.py add openpilot prefix to imports (#29498) 2023-08-20 20:49:55 -07:00
consoleui.cc cpplint: `build/include_what_you_use` (#29556) 2023-08-23 13:25:17 -07:00
consoleui.h
filereader.cc System: use paths for download folders too (#29818) 2023-09-07 12:49:03 -07:00
filereader.h
framereader.cc cpplint: add filter `build/include_subdir` (#29585) 2023-08-24 15:42:17 +01:00
framereader.h replay: fix visionbuf alignment on device (#26913) 2023-08-24 00:03:16 -07:00
logreader.cc replay: simplify the code for allow/block list (#30449) 2023-11-13 09:19:39 -08:00
logreader.h replay: simplify the code for allow/block list (#30449) 2023-11-13 09:19:39 -08:00
main.cc replay: simplify the code for allow/block list (#30449) 2023-11-13 09:19:39 -08:00
replay.cc replay: simplify the code for allow/block list (#30449) 2023-11-13 09:19:39 -08:00
replay.h replay: simplify the code for allow/block list (#30449) 2023-11-13 09:19:39 -08:00
route.cc replay: simplify the code for allow/block list (#30449) 2023-11-13 09:19:39 -08:00
route.h replay: simplify the code for allow/block list (#30449) 2023-11-13 09:19:39 -08:00
ui.py ui.py: support strided buffer (#30236) 2023-10-17 01:03:56 -07:00
unlog_ci_segment.py Linter: remove pylint (#29611) 2023-08-24 16:30:54 -07:00
util.cc replay: make `installDownloadProgressHandler` thread safe (#30296) 2023-10-20 12:41:18 -07:00
util.h

README.md

Replay

Replay driving data

replay replays all the messages logged while running openpilot.

# Log in via browser to have access to routes from your comma account
python tools/lib/auth.py

# Start a replay
tools/replay/replay <route-name>

# Example:
tools/replay/replay 'a2a0ccea32023010|2023-07-27--13-01-19'
# or use --demo to replay the default demo route:
tools/replay/replay --demo

# watch the replay with the normal openpilot UI
cd selfdrive/ui && ./ui

# or try out a debug visualizer:
python replay/ui.py

usage

$ tools/replay/replay -h
Usage: tools/replay/replay [options] route
Mock openpilot components by publishing logged messages.

Options:
  -h, --help             Displays this help.
  -a, --allow <allow>    whitelist of services to send
  -b, --block <block>    blacklist of services to send
  -s, --start <seconds>  start from <seconds>
  --demo                 use a demo route instead of providing your own
  --dcam                 load driver camera
  --ecam                 load wide road camera

Arguments:
  route                  the drive to replay. find your drives at
                         connect.comma.ai

watch3

watch all three cameras simultaneously from your comma three routes with watch3

simply replay a route using the --dcam and --ecam flags:

# start a replay
cd tools/replay && ./replay --demo --dcam --ecam

# then start watch3
cd selfdrive/ui && ./watch3

Stream CAN messages to your device

Replay CAN messages as they were recorded using a panda jungle. The jungle has 6x OBD-C ports for connecting all your comma devices. Check out the jungle repo for more info.

In order to run your device as if it was in a car:

  • connect a panda jungle to your PC
  • connect a comma device or panda to the jungle via OBD-C
  • run can_replay.py
batman:replay$ ./can_replay.py -h
usage: can_replay.py [-h] [route_or_segment_name]

Replay CAN messages from a route to all connected pandas and jungles
in a loop.

positional arguments:
  route_or_segment_name
                        The route or segment name to replay. If not
                        specified, a default public route will be
                        used. (default: None)

optional arguments:
  -h, --help            show this help message and exit