commaai/commaCarSegments
commaCarSegments commaCarSegments is a dataset of raw CAN bus data recorded from our fleet of openpilot users driving over 300 different production vehicles, around the USA and rest of the world. Structure . ├── segments/ # drectory containing all data │ ├── <device_id>/ # unique device ID directory │ │ └── <route_id>/ # unique route (aka drive directory) │ │ └── <segment>/ # unique segment index inside of the route… See the full description on the dataset page: https://huggingface.co/datasets/commaai/commaCarSegments.
commaCarSegments
commaCarSegments is a dataset of raw CAN bus data recorded from our fleet of openpilot users driving over 300 different production vehicles, around the USA and rest of the world.
Structure
.
├── segments/ # drectory containing all data
│ ├── <device_id>/ # unique device ID directory
│ │ └── <route_id>/ # unique route (aka drive directory)
│ │ └── <segment>/ # unique segment index inside of the route
│ │ └── rlog.zst # actual data
└── database.json # manifest for the datasetThe rlog.zst is a zstandard-compressed archive of openpilot cereal messages that can be read with openpilot's LogReader.
Using this dataset
Here's a simple example that shows the CAN addresses with the length of their messages on a Chevy Bolt:
In [1]: from openpilot.tools.lib.logreader import LogReader
In [2]: lr = LogReader("da4f7891ae804737/00000341--589a82bd48/20/s")
In [3]: {c.address: len(c.dat) for c in lr.first("can")}
Out[3]:
{190: 7,
201: 8,
193: 8,
197: 8,
209: 7,
840: 5,
842: 5,
485: 8,
241: 6,
211: 3}Also see:
- opendbc: our project for interfacing with the car's CAN bus
- cabana: a beautiful tool for exploring CAN data (try
./cabana --demo) - Example notebooks using this dataset for large-scale validation of openpilot changes
In the dataset
Totals
- 230 different platforms
- 188883 segments
- 3148 hours
We're hiring!
If you have fun playing with this dataset, consider a job working on this stuff here at comma.
