Please provide the following info (tick the boxes after creating this topic):
Software Version
DRIVE OS 6.0.10.0
DRIVE OS 6.0.8.1
DRIVE OS 6.0.6
DRIVE OS 6.0.5
DRIVE OS 6.0.4 (rev. 1)
DRIVE OS 6.0.4 SDK
other
Target Operating System
Linux
QNX
other
Hardware Platform
DRIVE AGX Orin Developer Kit (940-63710-0010-300)
DRIVE AGX Orin Developer Kit (940-63710-0010-200)
DRIVE AGX Orin Developer Kit (940-63710-0010-100)
DRIVE AGX Orin Developer Kit (940-63710-0010-D00)
DRIVE AGX Orin Developer Kit (940-63710-0010-C00)
DRIVE AGX Orin Developer Kit (not sure its number)
other
SDK Manager Version
2.1.0
other
Host Machine Version
native Ubuntu Linux 20.04 Host installed with SDK Manager
native Ubuntu Linux 20.04 Host installed with DRIVE OS Docker Containers
native Ubuntu Linux 18.04 Host installed with DRIVE OS Docker Containers
other
Issue Description
Goal
Use egomotion for pose estimation from odometry only (no IMU) to support LiDAR point-cloud accumulation/stitching. I do not want to control the car and I have no DbW. I only need pose for accumulation & stitching.
Short log (most relevant lines)
ProgramArguments: Missing argument ‘dwTracePath’ requested
SDK: No resources(.pak) mounted, some modules will not function properly
Can not create time sensor: DW_HAL_CANNOT_OPEN_CHANNEL … /dev/nvpps0 Error: Permission denied
Driveworks exception thrown: DW_FILE_INVALID: JsonInputArchive: fail to parse json
what(): DW Error DW_FILE_INVALID … dwRig_initializeFromFile(…) … Could not initialize Rig from File
Main symptom: Rig JSON fails to parse and the sample aborts.
Minimal rig bits (for context)
{
"rig": {
"sensors": [
{ "name": "can", "protocol": "can.socket", "parameter": "device=can0" },
, { /* other sensors */ }
],
"vehicle": { "valid": true, "value": { /* vehicle params */ } }
},
"version": 2
}
"vehicleio": {
"type": "generic",
"parent-sensor": "can:vehicle",
"dbc-file": "<path_to_dbc.dbc>"
}
Questions/Thoughts
I am struggeling, also because the samples and docs focus on recorded data (can.virtual, .bin) and I don’t get how to work with live data. Questions which all belong to that problem follow:
-
For egomotion from CAN odometry only (vehicle speed + steering), do I have to go through VehicleIO (either GENERIC or a CUSTOM backend), or is there a public API to submit decoded odometry directly to egomotion (e.g., “here’s speed [m/s], here’s steering [rad], with timestamp”) without VehicleIO?
-
If VehicleIO is required/recommended for this use case, what is the minimal working configuration for live CAN? Is the VehicleIO snippet above sufficient for GENERIC, or do I also need a mapping that binds DBC signals to NVIDIA generic state fields? If a separate mapping is required (beyond the DBC), what is the expected format/file location? A minimal example would be very helpful.
-
Just to confirm: Dataspeed is not applicable here (I don’t have the Dataspeed DbW kit). My understanding is that DW_VEHICLEIO_DATASPEED should not be used on a standard OEM CAN bus without the Dataspeed stack. Correct?
-
One more clarification: dwVehicleIO_initialize() appears under an Actuators group in the docs.
Is using VehicleIO in a read-only way (consume frames, read states, never send commands) the expected pattern for this egomotion use case?
Thanks!