Versions Compared

Key

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

...

  • Minimal parsing where we only have information about the vehicle speed CAN message.

  • Separate four wheel speed parsing, velocity sign information may be added if the gear stick reading is available.

  • Parsing with steering model information, there are two ways to specify the steering tables depending on the information available: steering wheel angle vs (right or left) wheel angles or steering wheel angle vs average wheel angles. Using this data we can perform linear interpolation to compute the wheel angles for any given steering angle and use it for Ackermann steering.

Info

In most cases, having the overall vehicle speed message or the separate wheel speed messages is more than enough and no steering information is needed. If available, the gear stick reading is useful to help identify the reverse driving.

Minimal Vehicle Parsing

This parser only requires information about the overall vehicle speed message. So it only provide this data as input to the fusion algorithm. Even though this can be enough for some use cases, it may be better to provide separate wheel speeds to extract and use the vehicle angular velocity information as well.

...

Code Block
    "vehicle": {
      "type": "Automotive",
      "vehicleStateEndpoint": "tcp://*:8999",
      "settings": {
        "canInterface": "InternalPeakCAN",
        "canEndpoint": "tcp://localhost:9921",
        "vehicleType": "External",
        "wheelBase": 2.750,
        "trackWidth": 1.595,
        "canProtocol": {
          "velocityCanId": 212,
          "velocityScale": 0.015625012,
          "endianness": "little",
          "velocityStartBits": {
            "FrontLeftWheel": 0,
            "FrontRightWheel": 16,
            "RearLeftWheel": 32,
            "RearRightWheel": 48
          }  
        }
      }
    }

...

If available, the steering wheel message can also be parsed but using it in the drive model requires input about the vehicle steering model as detailed below. Although we provide this option, using simpler drive models proved to work just fine.

Parameter name

Description

Default

steeringCanId

CAN id for the steering wheel angle message

n/a

steeringScale

Value to multiply the parsed raw steering wheel angle by in order to get angle in degrees.

1.0

steeringWheelAngles

The steering table column containing sample steering wheel angles.

n/a

wheelAngleType

Specification of provided wheelAngles type, valid options are "Right", "Left" or "Average"

n/a

wheelAngles

Steering table column containing corresponding wheel angle values.

n/a

driveModel

In addition to Differential model, Ackermann or SimpleAckermann can be used. the latter is a version of Ackermann steering that uses the average wheel angles.

Differential

...

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

singleEndpoint

  • If enabled, the different fusion output messages will be published to the same port "endpoint"

  • If disabled, the "endpoint" parameter above, is the output port for the FusedVehiclePose msg type only.

true

poseEndpoint

Output port for the FusedPose msg type.

8804 if singleEndpoint=false

globalPoseEndpoint

Output port for the GlobalFusedPose msg type.

8805 if singleEndpoint=false

outputRawGnssData

Publishes raw Gnss data position instead of the fusion output. Useful for debugging.

false

outputWhenFilterNotReady

Publishes a temporary raw Gnss data output while the filter is initializing. Useful for a minimal check before moving the vehicle.

false

Output Data Format

FusedVehiclePose

...