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.
 
 
 
 
 
 

2.4 KiB

PlotJuggler

We've extended PlotJuggler to plot all of your openpilot logs. Check out our plugins: https://github.com/commaai/PlotJuggler.

Installation

Once you've cloned and are in openpilot, download PlotJuggler and install our plugins with this command:

cd tools/plotjuggler && ./install.sh

Usage

batman@z840-openpilot:~/openpilot/tools/plotjuggler$ ./juggle.py -h
usage: juggle.py [-h] [--qlog] [--can] [--stream] [--layout [LAYOUT]] [route_name] [segment_number]

PlotJuggler plugin for reading rlogs

positional arguments:
  route_name         The name of the route that will be plotted. (default: None)
  segment_number     The index of the segment that will be plotted (default: None)

optional arguments:
  -h, --help         show this help message and exit
  --qlog             Use qlogs (default: False)
  --can              Parse CAN data (default: False)
  --stream           Start PlotJuggler without a route to stream data using Cereal (default: False)
  --layout [LAYOUT]  Run PlotJuggler with a pre-defined layout (default: None)

Example:

./juggle.py "0982d79ebb0de295|2021-01-17--17-13-08"

Streaming

To get started exploring and plotting data live in your car, you can start PlotJuggler in streaming mode: ./juggle.py --stream.

For this to work, you'll need a few things:

  • Enable tethering on your comma device and connect your laptop.
  • Run export ZMQ=1 on the computer, which tells the streaming plugin backend to use ZMQ. If you're streaming locally, you can omit this step as ZMQ is used to transport data over the network.
  • Most importantly: openpilot by default uses the MSGQ backend, so you'll need to ssh into your device and run bridge. This simply re-broadcasts each message over ZMQ: ./cereal/messaging/bridge.

Now start PlotJuggler using the above juggle.py command, and find the Cereal Subscriber plugin in the dropdown under Streaming. Click Start and enter the IP address of the comma two. You should now be seeing all the messages for each service in openpilot received live from your car!

Demo

For a quick demo, go through the installation step and run this command:

./juggle.py "https://commadataci.blob.core.windows.net/openpilotci/d83f36766f8012a5/2020-02-05--18-42-21/0/rlog.bz2" --layout=demo_layout.xml

screenshot