DRIVE OS Version: 6.0.10
DRIVEWORKS SDK Version: 5.20
Platform: DRIVE AGX (custom drive‑by‑wire kit)
Issue Description:
We feed egomotion via a custom CAN parser (no dwVehicleIO driver). dwEgomotion_addVehicleIOState(safety, nonSafety, actuation, egomotion) returns DW_SUCCESS, and we also feed IMU/GPS successfully, but dwEgomotion_getEstimation() stays status 19 (NOT READY) and validFlags remain 0. We need to know which VehicleIO fields egomotion actually requires and what to use for signals we don’t have.
**Signals we SET vs LEAVE default/0
**
dwVehicleIOSafetyState
size - sizeof(dwVehicleIOSafetyState)
steeringWheelAngle - From SAS11 CAN, rad
timestamp_us - Steering CAN timestamp
sequenceId - Monotonic increasing
validityInfo - set as zeroed memset 0
rearWheelAngle - set as 0 No rear steer
rearWheelAngleFactor - set as 0
steeringWheelAngleQuality - set as 0 Header says : FUTURE_IMPLEMENTED_POST_24_06 |
rearWheelAngleQuality - set as 0 Header says : FUTURE_IMPLEMENTED_POST_24_06 |
rearWheelAngleTimestamp - set as 0 Header says : FUTURE_IMPLEMENTED_POST_24_06 |
steeringWheelAngleSpeed - set as 0 Header says : FUTURE_IMPLEMENTED_POST_24_06 |
dwVehicleIONonSafetyState
size - set as sizeof(dwVehicleIONonSafetyState)
drivePositionStatus - D/N/P/R from CAN TCU11
timestamp_us - Latest of speed/steering/wheel ts
speedESC - m/s from CAN CLU11
speedDirectionESC - From gear
speedESCTimestamp - Speed CAN ts
speedQualityESC - DW_VIO_SPEED_QUALITY_E_S_C_SIG_DEF
frontSteeringAngle - From CAN steering wheel / ratio, rad
frontSteeringTimestamp - Steering CAN ts
frontSteeringAngleQuality - DW_VIO_FRONT_STEERING_ANGLE_QUALITY_INIT
wheelSpeed[0..3] - rad/s from WHL_SPD11
wheelTicksTimestamp[0..3] - Wheel CAN ts
wheelTicksDirection[0..3] - From speedDirectionESC
wheelSpeedQuality[0..3] - DW_VIO_WHEEL_SPEED_QUALITY_SIG_DEF
vehicleStopped - From speedESC < 0.1
sequenceId - Monotoic increasing
validityInfo - set as 0
kickdownStatus, latCtrlCurvatureActual, holdStatus, throttleValue, driverBrakePedal - 0/default
gearStatus, gearTarget, drivePositionTarget - 0/default
hazardFlasherStatus, turnSignalStatus, brakePedalStatus, longCtrlEcoAssistStatus - 0/default
handsoffDetectedFiltered, ESCOperationalState - 0/default
headlightState, outsideTemperature, wetness*, rain*, light*, microSiren*, buckle*, door*, trunk*, hood*, trailer*, ignition* - 0/default
speedMin, speedMax, speedIndicated - 0 Header says: FUTURE_IMPLEMENTED for min/max/indicated |
wheelTicks[4], wheelTicksQuality[4], wheelTicksTimestampQuality[4] - set as 0/default
frontSteeringAngleOffset, frontSteeringTimestampQuality, frontSteeringAngleHigh, etc. set as - 0/default
all other non-safety fields in struct) - set as 0/default
dwVehicleIOActuationFeedback
size - set as sizeof(dwVehicleIOActuationFeedback)
timestamp_us - Synced timestamp
speedESC, speedDirectionESC, speedESCTimestamp, speedQualityESC - From nonSafety
steeringWheelAngle, frontSteeringAngle, frontSteeringTimestamp - From safety/nonSafety
wheelSpeed[0..3], wheelTicksTimestamp[0..3] - From nonSafety
drivePositionStatus, vehicleStopped - filled
sequenceId - Same as safety
validityInfo - set as 0
latCtrlCurvatureActual, rearWheelAngle, rearWheelAngleFactor - set as 0
steeringWheelTorque, steeringWheelAngleQuality, holdStatus - set as 0/default
throttleValue, driverBrakePedal, gearStatus, gearTarget, drivePositionTarget - set as 0/default
driverOverrideThrottle, latCtrlCurvCapMin/Max[10], latCtrlEPSLimitStatus, latCtrlLoopStatus - set as 0/default
longCtrlEstimatedStopDistance, longCtrlFrictionRangeEstimation, longCtrlStatus, longCtrlFaultStatus - set as 0/default
(all other ActuationFeedback fields) - set as 0/default
Questions:
1. Minimal required set
For DW_EGOMOTION_IMU_ODOMETRY + DW_EGOMOTION_REAR_WHEEL_SPEED, which of the above must be non-zero/valid for egomotion to leave status 19? Is our set sufficient, or are we missing something (e.g. rearWheelAngle, validityInfo, wheelTicks)?
**
2. FUTURE_IMPLEMENTED_POST_24_06**
Can we leave all fields marked “FUTURE_IMPLEMENTED_POST_24_06” at 0 for egomotion in 5.20 (e.g. rearWheelAngleQuality, steeringWheelAngleQuality, rearWheelAngleTimestamp, steeringWheelAngleSpeed)?
3. validityInfo
We set all validityInfo to 0. Does egomotion treat 0 as valid, invalid, or unknown? Should we set explicit validity for the signals we fill (e.g. DW_SIGNAL_VALIDITY_VALID) and leave others INVALID/NOT_AVAILABLE?
4. Status 19 cause
Is there any doc or debug option that describes what internal check keeps egomotion in NOT READY when addVehicleIOState returns DW_SUCCESS?