How to use the NOV_B-RAWDMI message
To send wheelspeed data through UART, please ensure the correct baud rate is set up. For more information on the UART port configuration, please refer to section 5.3.1 of the Integration Manual.
For streaming wheelspeed information via the UART serial or TCP ports, the message format NOV_B-RAWDMI, introduced by Fixposition, is used. The message format is as follows (all fields are little-endian):
# | Offset | Field | Type | Unit | Description |
---|---|---|---|---|---|
- | 0 |
| uint8_t | - | Sync byte 1 (always |
- | 1 |
| uint8_t | - | Sync byte 2 (always |
- | 2 |
| uint8_t | - | Sync byte 3 (always |
- | 3 |
| uint8_t | - | Payload length (always |
- | 4 |
| uint16_t | - | Message ID (always |
1 | 6 |
| uint16_t | - | GPS week number, set to |
2 | 8 |
| int32_t | ms | GPS time of week [ms], set to |
3 | 12 |
| int32_t | - | Measurement value 1, for RC or FR wheel |
4 | 16 |
| int32_t | - | Measurement value 2, for FL wheel or YW sensor |
5 | 20 |
| int32_t | - | Measurement value 3, for RR wheel |
6 | 24 |
| int32_t | - | Measurement value 4, for RL wheel |
- | 28 |
| uint32_t | - | Bitfield: |
7 |
| bit 0 | - | Validity flag for dmi1 value (0 = invalid, 1 = valid) | |
8 |
| bit 1 | - | Validity flag for dmi2 value (0 = invalid, 1 = valid) | |
9 |
| bit 2 | - | Validity flag for dmi3 value (0 = invalid, 1 = valid) | |
10 |
| bit 3 | - | Validity flag for dmi4 value (0 = invalid, 1 = valid) | |
11 |
| bits 10…4 | - | Type of measurement present in dmi1 value (see below) | |
12 |
| bits 17…11 | - | Type of measurement present in dmi2 value (see below) | |
13 |
| bits 24…18 | - | Type of measurement present in dmi3 value (see below) | |
14 |
| bits 31…25 | - | Type of measurement present in dmi3 value (see below) | |
- | 32 |
| uint32_t | - | CRC32 checksum (see protocol documentation) |
Measurement types (dmi1_type
, dmi2_type
, dmi3_type
and dmi4_type
):
Value | Description |
---|---|
| Linear velocity (speed) |
| Angular velocity |
See section 7.1.1 of the Integration Manual for more details on this message. Here, the mask is divided into eight fields and determines which of the dmi1..4 values contain valid data and the type of data the value represents. The dmiX_mask fields can be either 0 or 1, depending on whether the dmiX value is invalid or valid. The dmiX_type is a 7-bit unsigned integer representing the value type in the dmiX field. Currently, only two values are supported: 0 for a linear speed or 1 for an angular velocity.
Some example masks:
0x00000001 = dmi1 value is valid and represents a linear velocity
0x00000802 = dmi2 value is valid and represents an angular velocity
0x00000004 = dmi3 value is valid and represents a linear velocity
0x02000008 = dmi4 value is valid and represents an angular velocity
The dmi1…4 values are speed values in an arbitrary unit. The chosen resolution should be such that small movements produce a meaningful signal. For example, [mm/s], [0.01km/h], or [2-10m/s]. Coarse resolutions, such as [km/h], may not work well, particularly at slow speeds. Thus, we recommend employing millimeters per second as the standard
measurement unit. The dmiX fields can have the following assignments:
dmi1 is for RC wheel or FR wheel
dmi2 is for FL wheel or YW sensor
dmi3 is for RR wheel
dmi4 is for RL wheel
This message must be input on UART1 at regular intervals. The input rate must be at most 50 Hz. The latency (from measuring the wheel to inputting it on the serial port) must be as low as possible. Increased, and in particular, irregular latency degrades the VRTK performance.
The user can configure the wheelspeed sensor input by accessing the "Configuration→Wheelspeed" panel of the Web Interface. Users can manually input the wheelspeed configuration or use one of our presets.