openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
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.
 
 
 
 
 
 
Justin Newberry bc9ad2ab13 fix static analysis 1 year ago
..
lib Linter: remove pylint (#29611) 2 years ago
tests speedup replay test (#31086) 1 year ago
.gitignore move replay from selfdrive/ui/replay to tools/replay (#24971) 3 years ago
README.md replay: new demo route (#29215) 2 years ago
SConscript replay: simplify the code for allow/block list (#30449) 1 year ago
__init__.py merge in tools 5 years ago
camera.cc cpplint: add filter `build/include_subdir` (#29585) 2 years ago
camera.h replay: fix visionbuf alignment on device (#26913) 2 years ago
can_replay.py fix static analysis 1 year ago
consoleui.cc camerad: cleanup includes (#30782) 1 year ago
consoleui.h replay: support for setting a custom playback speed (#30462) 1 year ago
filereader.cc System: use paths for download folders too (#29818) 2 years ago
filereader.h move replay from selfdrive/ui/replay to tools/replay (#24971) 3 years ago
framereader.cc cpplint: add filter `build/include_subdir` (#29585) 2 years ago
framereader.h replay: fix visionbuf alignment on device (#26913) 2 years ago
logreader.cc replay: simplify the code for allow/block list (#30449) 1 year ago
logreader.h replay: simplify the code for allow/block list (#30449) 1 year ago
main.cc replay: support for setting a custom playback speed (#30462) 1 year ago
replay.cc replay: support for setting a custom playback speed (#30462) 1 year ago
replay.h replay: support for setting a custom playback speed (#30462) 1 year ago
route.cc replay: get api url from env var (#30562) 1 year ago
route.h replay: simplify the code for allow/block list (#30449) 1 year ago
ui.py bump cereal (#31392) 1 year ago
unlog_ci_segment.py LogReader: move opci to tools/lib (#31021) 1 year ago
util.cc replay: make `installDownloadProgressHandler` thread safe (#30296) 2 years ago
util.h move replay from selfdrive/ui/replay to tools/replay (#24971) 3 years ago

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