IMU (100 Hz, 8 byte)¶
Table of Contents
Configuration file fields¶
This section is autogenerated from the Rule Schema.
IMU orientation (10 ms) output.imu
State output.imu.state
Type | Default | Options |
---|---|---|
integer | 1 | Disable: |
ID Format output.imu.id_format
ID format of the message
Type | Default | Options |
---|---|---|
integer | 0 | Standard (11-bit): |
Message ID (hex) output.imu.id
ID of the message in hex. Example: 00435354.
Type | Default |
---|---|
string | 01 |
Trigger method output.imu.trigger
Transmission trigger method. Push: Signal is periodically transmitted. Poll: Signal is transmitted on request
Type | Default | Options |
---|---|---|
integer | 0 | Push: |
IMU coordinate system¶
The coordinate system defines the axis used by the IMU sensors.
The IMU coordinate system (right-handed)¶
Frame layout¶
Note
The frame layout is defined in the CANmod.gps DBC file
The IMU frame contains 3 x acceleration + 3 x angular rate.
Note
The IMU output results are rotated according to the angles entered in IMU mount alignment
Name |
Bitpos |
Length |
Factor |
Offset |
Min |
Max |
Unit |
---|---|---|---|---|---|---|---|
ImuValid |
0 |
1 |
1 |
0 |
0 |
1 |
|
AccelerationX |
1 |
10 |
0.125 |
-64 |
-64 |
63.875 |
\(\texttt{ m/s}^2\) |
AccelerationY |
11 |
10 |
0.125 |
-64 |
-64 |
63.875 |
\(\texttt{ m/s}^2\) |
AccelerationZ |
21 |
10 |
0.125 |
-64 |
-64 |
63.875 |
\(\texttt{ m/s}^2\) |
AngularRateX |
31 |
11 |
0.25 |
-256 |
-256 |
255.75 |
\(\texttt{ deg/s}\) |
AngularRateY |
42 |
11 |
0.25 |
-256 |
-256 |
255.75 |
\(\texttt{ deg/s}\) |
AngularRateZ |
53 |
11 |
0.25 |
-256 |
-256 |
255.75 |
\(\texttt{ deg/s}\) |
ImuValid
The ImuValid signal can take one of the following values:
0: Invalid
1: Valid
AccelerationX, AccelerationY, AccelerationZ
AccelerationX
, AccelerationY
, AccelerationZ
express linear acceleration in\(\texttt{ m/s}^2\) along the device X, Y and Z axis respectively.
Note
The acceleration measurements include a constant component from gravity. With the device at standstill, the gravity vector becomes \([x, y, z]^T \approx [0, 0, 9.82]^T\) 1.
AngularRateX, AngularRateY, AngularRateZ
AngularRateX
, AngularRateY
, AngularRateZ
express the angular rate in\(\texttt{ deg/s}\) around the device X, Y and Z axis respectively.
Note
Note that AccelerationX
, AccelerationY
, AccelerationZ
express linear acceleration while AngularRateX
, AngularRateY
, AngularRateZ
express angular rotational speed.
Decoding example¶
Raw IMU frame payload:
Hex:
7B10A2003F104401
(byte 0 to the right)Bin:
01111011000 10000101000 10000000000 0111111000 1000001000 1000000000 1
(bit 0 to the right)
AngularRateZ(11) |
AngularRateY(11) |
AngularRateX(11) |
AccelerationZ(10) |
AccelerationY(10) |
AccelerationX(10) |
ImuValid(1) |
|
---|---|---|---|---|---|---|---|
Raw (bin) |
01111011000 |
10000101000 |
10000000000 |
0111111000 |
1000001000 |
1000000000 |
1 |
Raw (dec) |
984 |
1064 |
1024 |
504 |
520 |
512 |
1 |
Scaled |
246.0 |
266.0 |
256.0 |
63.0 |
65.0 |
64.0 |
1 |
Offset |
-10.0 |
10.0 |
0.0 |
-1.0 |
1.0 |
0.0 |
1 |
AccelerationX: \(0.0\texttt{ m/s}^2\)
AccelerationY: \(1.0\texttt{ m/s}^2\)
AccelerationZ: \(-1.0\texttt{ m/s}^2\)
AngularRateX: \(0.0\texttt{ deg/s}\)
AngularRateY: \(10.0\texttt{ deg/s}\)
AngularRateZ: \(-10.0\texttt{ deg/s}\)
The device accelerates by \(1.0\texttt{ m/s}^2\) along the Y axis and by \(-1.0\texttt{ m/s}^2\) along Z. At the same time, the device rotates by \(10.0\texttt{ deg/s}\) around Y axis and \(-10.0\texttt{ deg/s}\) around the Z axis.
- 1
The direction of the gravity vector at standstill may seem counter-intuitive (it points up along the z-axis). The measured acceleration is not gravity directly, but rather the acceleration provided by the surface acting on the device - which cancels out the gravity.