Structure of raw data
Messages received from the raw data subscription are referred to as batches. Each batch contains one or more vehicle data frames. A frame, in turn, consists of one or more messages, which may include sensor data from GPS and IMU sources, as well as raw CAN bus messages.

Data frames
A data batch contains one or more vehicle data frame a vehicle data frame has the following format:
| Field name | Type | Offset | Length | Description |
|---|---|---|---|---|
| header | byte | 0 | 1 | ASCII character 'F', indicating the beginning of the frame |
| version | byte | 1 | 1 | Data frame version identifier (currently must be 0x01) |
| vehicle_id | byte array | 2 | 16 | Unique vehicle identifier (GUID) |
| data_length | int | 18 | 4 | Length of the data payload |
| data | byte array | 22 | n | Data payload containing the messages |
Messages
The vehicle data frames contains messages. There are three different data message types:
- GPS
- IMU
- CAN
General structure of the messages:
| Field name | Type | Offset | Length | Description |
|---|---|---|---|---|
| type | byte | 0 | 1 | Message type |
| length | byte | 1 | 1 | Message length (size of the timestamp and data fields) |
| timestamp | int | 2 | 4 | Message timestamp (motorola byte order, resolution is 50 microseconds) |
| type | byte array | 6 | n | Message data |
Example: 21 10 00 29 2C 30 40 00 00 A5 79 04 CD 78 8D 20 20 81
-
type:
0x21 - length:
0x10= 16 - timestamp:
0x00292C30= 2 698 288 * 50 us = 134 914 400 us -
data:
0x40 0x00 0x00 0xA5 0x79 0x04 0xCD 0x78 0x8D 0x20 0x20 0x81