Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Parameter name

Description

Default

echoFusedPose

fusedVehiclePose output is printed to command line

false

endpoint

Output port for the fusion result

8801

fitModel

Model to use for fusion.

ModelGnssImu

accelError

Acceleration error for Kalman filter. Keep default value.

0.01

omegaError

Omega error for Kalman filter. Keep default value.

0.02

measurementError

Measurement error for Kalman filter. Keep default value.

0.05

imuToCarRotation

Orientation quaternion of IMU relative to car frame

1, 0, 0, 0

smoothFit

Enable this option to prevent filter output from jumping between IMU data and GPS measurement. Keep enabled.

true

Setting up the ImuToCarRotation parameter


The used car frame is VW coordinate frame,

Code Block
VW frame
x: back
y: right
z: up

...

The IMU sensor can be mounted in any way but the ImuToCarRotation quaternion need to be provided to transform the IMU data into VW frame.

Example


If the IMU is mounted like follows,

Code Block
IMU mounting
x: forward
y: left
z: up

To match the VW frame, we need a 180° rotation around the z axis (clockwise). Therefore, the rotation matrix would be,

Code Block
[ -1,  0,  0;
   0, -1,  0;
   0,  0,  1 ] 

And the orientation quaternion woud be [x, y, z, w] = [ 0, 0, 1, 0 ] which can be specified in the configuration like below,

Code Block
"imuToCarRotation": {
            "w": 0,
            "x": 0,
            "y": 0,
            "z": 1
        }  

This filter needs as input:

...

This Filter outputs:

  • fusedVehiclePose (2D pose): Output equivalent to the LD filter output. Includes position in meters relative to starting point, global position (lon, lat) and heading.

  • fusedPose (3D pose): x, y (in meters) + z (output latitude) + orientation quaternion.

Output data format

Code Block
{
    "fusedVehiclePose": {
        "acceleration": {
            "x": 0.0,
            "y": 0.0,
            "z": 0.0
        },
        "globalPosition": {
            "x": 0.0,
            "y": 0.0
        },
        "lastDataTime": {
            "timestamp": 0
        },
        "position": {
            "x": 0.0,
            "y": 0.0
        },
        "timestamp": {
            "timestamp": 0
        },
        "utmZone": "31T",
        "yaw": 0.0
    }
}

...