Go to the source code of this file.
Data Structures | |
struct | dwEgomotionLinearAccelerationFilterParams |
Defines egomotion linear acceleration filter parameters. More... | |
struct | dwEgomotionParameters |
Holds initialization parameters for the Egomotion module. More... | |
struct | dwEgomotionRelativeUncertainty |
Holds egomotion uncertainty estimates for a relative motion estimate. More... | |
struct | dwEgomotionResult |
Holds egomotion state estimate. More... | |
struct | dwEgomotionSensorCharacteristics |
Sensor measurement noise characteristics. More... | |
struct | dwEgomotionSuspensionParameters |
Suspension model type and parameters. More... | |
struct | dwEgomotionUncertainty |
Holds egomotion uncertainty estimates. More... | |
struct dwEgomotionLinearAccelerationFilterParams |
Data Fields | ||
---|---|---|
float32_t | accelerationFilterTimeConst |
Simple filter parameters (ignored for other modes) Time constant of the IMU acceleration measurements |
float32_t | measurementNoiseStdevAcceleration | Standard deviation of measurement noise in acceleration [m/s^2]. |
float32_t | measurementNoiseStdevSpeed | Standard deviation of measurement noise in speed [m/s]. |
dwEgomotionLinearAccelerationFilterMode | mode | Linear acceleration filter mode. Default (0): no filtering. |
float32_t | processNoiseStdevAcceleration | Square root of continuous time process noise covariance in acceleration [m/s^2 * 1/sqrt(s)]. |
float32_t | processNoiseStdevSpeed | Square root of continuous time process noise covariance in speed [m/s * 1/sqrt(s)]. |
struct dwEgomotionParameters |
Data Fields | ||
---|---|---|
bool | automaticUpdate |
Automatically update state estimation. In general to update motion estimation, a call to dwEgomotion_update is required. When automaticUpdate is set, the motion estimation update is triggered by the addition of new sensor measurements. The exact update timestamp is dependent on the sensor type and motion model implementation.
|
bool | estimateInitialOrientation |
When enabled, initial rotation will be estimated from accelerometer measurements. When disabled, initial rotation is assumed to be identity, i.e. vehicle standing on flat, horizontal ground.
|
float32_t | gyroscopeBias[3] |
Initial gyroscope biases, if known at initialization time. Gyroscope biases are estimated internally at run-time, however it can be beneficial if the filter is initialized with already known biases. If unknown, leave biases zero-initialized. |
uint32_t | historySize |
Number of state estimates to keep in the history (if 0 specified default of 1000 is used). Also known as the capacity of the history. Any call to dwEgomotion_update, or automatic update, adds an estimate into the history. |
dwTransformation3f | imu2rig |
IMU extrinsics. Transformation from the IMU coordinate system to the vehicle rig coordinate system.
|
float32_t | lateralSlipCoefficient |
Lateral slip coefficient [rad*s^2/m]. Used in linear function mapping lateral acceleration [m/s^2] to slip angle [rad], such that slipAngle = lateralSlipCoefficient * lateralAcceleration. If 0, default slip coefficient of -2.83e-3 [rad*s^2/m] is used.
|
dwEgomotionLinearAccelerationFilterParams | linearAccelerationFilterParameters |
Linear acceleration filter parameters.
|
dwMotionModel | motionModel | Specifies the motion model to be used for pose estimation. |
dwEgomotionSensorCharacteristics | sensorParameters |
Sensor parameters, containing information about sensor characteristics. If the struct is zero initialized, default assumptions about sensor parameters are made.
|
dwEgomotionSpeedMeasurementType | speedMeasurementType |
Defines which velocity readings from dwVehicleIOState shall be used for egomotion estimation. |
dwEgomotionSteeringMeasurementType | steeringMeasurementType |
Defines which steering readings from dwVehicleIOState shall be used for egomotion estimation. |
dwEgomotionSuspensionParameters | suspension |
Suspension model parameters. The model is used internally to compensate for vehicle body rotation due to acceleration and resulting rotational suspension effects. If the struct is zero initialized, suspension will not be modeled and accounted for.
|
dwVehicle | vehicle |
Vehicle parameters to setup the model.
|
struct dwEgomotionRelativeUncertainty |
Data Fields | ||
---|---|---|
dwMatrix3f | rotation | a 3x3 covariance of the rotation (order: roll, pitch, yaw) [rad] |
dwTime_t | timeInterval | relative motion time interval [us] |
dwMatrix3f | translation | a 3x3 covariance of the translation (x,y,z) [m] |
bool | valid | indicates whether uncertainty estimates are valid or not |
struct dwEgomotionResult |
Data Fields | ||
---|---|---|
float32_t | angularAcceleration[3] | Angular acceleration measured in body frame in [rad/s^2]. |
float32_t | angularVelocity[3] | Rotation speed in body frame measured in [rad/s]. |
float32_t | linearAcceleration[3] | Linear acceleration measured in body frame in [m/s^2]. |
float32_t | linearVelocity[3] |
Linear velocity in body frame measured in [m/s] at the origin. For motion models capable of estimating slip angle imposed lateral velocity, y component will be populated.
|
dwQuaternionf | rotation | Rotation represented as quaternion (x,y,z,w). Valid when DW_EGOMOTION_ROTATION is set. |
dwTime_t | timestamp | Timestamp of egomotion state estimate [us]. |
int32_t | validFlags | Bitwise combination of dwEgomotionDataField flags. |
struct dwEgomotionSensorCharacteristics |
Data Fields | ||
---|---|---|
float32_t | accNoiseDensityMicroG |
Expected zero mean measurement noise of the linear accelerometer, also known as Noise Density [ug/sqrt(Hz)] A default value of 100 micro-g per sqrt(Hz) will be assumed if no parameter, i.e. 0 or nan, passed |
float32_t | gyroBiasRange |
If known this value in [rad/s] shall indicate standard deviation of the expected bias range of the gyroscope sensor. Usually temperature controlled/calibrated gyroscopes vary around the mean by few tens of a radian. If 0 is given, it will be assumed the standard deviation around the bias mean is about +-0.05 [rad/s], ~ +- 3deg/s |
float32_t | gyroDriftRate |
Expected gyroscope drift rate in [deg/s]. A default value of 0.025 [deg/s] will be assumed if no parameter, i.e. 0 or nan, passed |
float32_t | gyroNoiseDensityDeg |
Expected zero mean measurement noise of the gyroscope, also known as Noise Density [deg/s/sqrt(Hz)] A default value of 0.015 [deg/s/sqrt(Hz)] will be assumed if no parameter, i.e. 0 or nan, passed |
float32_t | imuSamplingRateHz |
If known this entry shall indicate expected sampling rate in [Hz] of the IMU sensor. A default value of 100Hz is used if no parameter passed |
float32_t | odometrySamplingRateHz |
If known this entry shall indicate expected sampling rate in [Hz] of the odometry signals. This is used for detection of delays or missing vehicle signals (valid range: [33%, 300%] of below value). A default value of 50Hz is used if no parameter passed (valid range: [16.7Hz, 150Hz]) |
float32_t | velocityFactor |
CAN velocity correction factor which is read from can properties in rig file. When
|
dwTime_t | velocityLatency | CAN velocity latency in microseconds which is read from can properties in rig file. |
struct dwEgomotionSuspensionParameters |
Data Fields | ||
---|---|---|
dwEgomotionSuspensionModel | model |
Suspension model to use. If left zero-intialized, a rigid suspension system is assumed (i.e. no suspension modeling). |
float32_t | torsionalSpringPitchDampingRatio |
Level of damping relative to critical damping around the pitch axis of the vehicle [dimensionless]. Typical passenger car suspension systems have a damping ratio in the range of [0.2, 0.6]. Default value is 0.6 if left zero-initialized. |
float32_t | torsionalSpringPitchNaturalFrequency |
Torsional spring model parameters. Used if model == DW_EGOMOTION_SUSPENSION_TORSIONAL_SPRING_MODEL. If left zero-initizialized, a default set of parameters will be used. These model parameters are suitable for a simple damped torsional spring model with external driving torque resulting from vehicle linear accelerations, described by the following ODE: \( I \ddot{\theta} + C \dot{\theta} + k \theta = \tau \) where:
Frequency at which the suspension system tends to oscillate around the pitch axis of the vehicle in the absence of an external driving force or damping [Hz]. Typical passenger car suspension systems have a natural frequency in the range of [0.5, 1.5] Hz. Default value is 1.25Hz if left zero-initialized. |
struct dwEgomotionUncertainty |
Data Fields | ||
---|---|---|
float32_t | angularAcceleration[3] | |
float32_t | angularVelocity[3] | Rotation speed std dev in body frame measured in [rad/s]. |
float32_t | linearAcceleration[3] | Linear acceleration std dev measured in body frame in [m/s^2]. |
float32_t | linearVelocity[3] | Linear velocity std dev in body frame measured in [m/s]. |
dwMatrix3f | rotation | Rotation covariance represented as euler angles (order: roll, pitch, yaw) in [rad^2]. |
dwTime_t | timestamp | Timestamp of egomotion uncertainty estimate [us]. |
int64_t | validFlags | Bitwise combination of dwEgomotionDataField flags. |
enum dwEgomotionDataField |
Defines flags that indicate validity of corresponding data in dwEgomotionResult and dwEgomotionUncertainty.
Enumerator | |
---|---|
DW_EGOMOTION_ROTATION | indicates validity of rotation,
|
DW_EGOMOTION_LIN_VEL_X | indicates validity of linearVelocity[0] |
DW_EGOMOTION_LIN_VEL_Y | indicates validity of linearVelocity[1] |
DW_EGOMOTION_LIN_VEL_Z | indicates validity of linearVelocity[2] |
DW_EGOMOTION_ANG_VEL_X | indicates validity of angularVelocity[0] |
DW_EGOMOTION_ANG_VEL_Y | indicates validity of angularVelocity[1] |
DW_EGOMOTION_ANG_VEL_Z | indicates validity of angularVelocity[2] |
DW_EGOMOTION_LIN_ACC_X | indicates validity of linearAcceleration[0] |
DW_EGOMOTION_LIN_ACC_Y | indicates validity of linearAcceleration[1] |
DW_EGOMOTION_LIN_ACC_Z | indicates validity of linearAcceleration[2] |
DW_EGOMOTION_ANG_ACC_X | indicates validity of angularAcceleration[0] |
DW_EGOMOTION_ANG_ACC_Y | indicates validity of angularAcceleration[1] |
DW_EGOMOTION_ANG_ACC_Z | indicates validity of angularAcceleration[2] |
Definition at line 192 of file EgomotionTypes.h.
Defines egomotion linear acceleration filter mode.
Enumerator | |
---|---|
DW_EGOMOTION_ACC_FILTER_NO_FILTERING | no filtering of the output linear acceleration |
DW_EGOMOTION_ACC_FILTER_SIMPLE | simple low-pass filtering of the acceleration |
Definition at line 180 of file EgomotionTypes.h.
Defines speed measurement types.
Enumerator | |
---|---|
DW_EGOMOTION_FRONT_SPEED | Indicates that speed is linear speed [m/s] measured at front wheels (along steering direction). Steering angle [rad] is used internally to compute longitudinal speed.
Provide front speed measurement and steering angle with the dwEgomotion_addOdometry API, or with the dwEgomotion_addVehicleState API where the |
DW_EGOMOTION_REAR_WHEEL_SPEED | Indicates that speeds are angular speeds [rad/s] measured at rear wheels.
Provide rear wheel speed measurements with the dwEgomotion_addVehicleState API where the |
DW_EGOMOTION_REAR_SPEED | Indicates that speed is linear speed [m/s] measured at rear axle center (along steering direction). Rear steering angle [rad] given by dwVehicleIOState.rearWheelAngle is used internally to compute longitudinal speed.
Provide rear speed measurement with the dwEgomotion_addVehicleState API where the |
Definition at line 112 of file EgomotionTypes.h.
Defines steering measurement types.
Enumerator | |
---|---|
DW_EGOMOTION_FRONT_STEERING |
|
DW_EGOMOTION_STEERING_WHEEL_ANGLE |
|
Definition at line 174 of file EgomotionTypes.h.
Defines egomotion suspension model.
Definition at line 186 of file EgomotionTypes.h.
enum dwMotionModel |
Defines the motion models.
Enumerator | |
---|---|
DW_EGOMOTION_ODOMETRY | Given odometry information, estimates motion of the vehicle using a bicycle model. The following parameters are required for this model:
This model is capable of providing the following estimates:
Uncertainty estimates are not supported at this time.
|
DW_EGOMOTION_IMU_ODOMETRY | Fuses odometry model with IMU measurements to estimate motion of the vehicle. The following parameters are required for this model:
This model is capable of providing the following estimates:
Uncertainty estimates are provided for all state estimates listed above.
|
Definition at line 46 of file EgomotionTypes.h.
Defines motion measurements.
Definition at line 105 of file EgomotionTypes.h.