Drive AGX integration with Dataspeed - Brake and Throttle not working

Please provide the following info (check/uncheck the boxes after creating this topic):
Software Version
DRIVE OS Linux 5.2.6
DRIVE OS Linux 5.2.6 and DriveWorks 4.0
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version
other

Target Operating System
Linux
QNX
other

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)
other

SDK Manager Version
1.7.0.8846
other

Host Machine Version
native Ubuntu 18.04
other

We have Dataspeed DBW system integrated with the vehicle. Dataspeed DBW works fine including throttle and brake independently with the vehicle with USB CAN provided by Dataspeed.

When the vehicle is connected to Drive AGX CAN1 (CAN 6/4), we are able send command to enable, disable, steering, gears (forward, reverse and neutral) commands using vehicle I/O and they work fine. However, when we send the brake and throttle commands, the dwVehicleIOState state remains unchanged and there is no visible indication on vehicle.

Please note that we are using Polaris vehicle integrated with Dataspeed DBW and we are using joystick (Logitech Gamepad F310) for sending the commands. We have also set the driving mode to DW_VEHICLEIO_DRIVING_NO_SAFETY.

Please find below the rig file used.
{
“rig”: {
“vehicleio”: [
{
“type”: “dataspeed”,
“parent-sensor”: “can:vehicle:dataspeed”,
“dbc-file”: “/home/nvidia/driveworks/samples/sensors/can/DataspeedByWire-POLARIS-20210921.dbc”
}
],
“sensors”: [
{
“name”: “can:vehicle:dataspeed”,
“parameter”: “device=can1”,
“protocol”: “can.socket”,
“properties”: null,
“nominalSensor2Rig”: { “quaternion”: [ 0.0, 0.0, 0.0, 1.0 ], “t”: [ 0.0, 0.0, 0.0 ] },
“sensor2Rig”: { “quaternion”: [ 0.0, 0.0, 0.0, 1.0 ], “t”: [ 0.0, 0.0, 0.0 ] }
}
],
“vehicle”: {
“valid”: true,
“value”: {
“axlebaseFront”: 1.62699997425079,
“axlebaseRear”: 1.61800003051758,
“bumperFront”: 0.912000000476837,
“bumperRear”: 0.0,
“centerOfMassToRearAxle”: 0.0,
“driveByWireTimeConstant”: 0.26,
“driveByWireTimeDelay”: 0.11,
“frontCorneringStiffness”: 0.0,
“height”: 1.854,
“inertia”: 0.0,
“length”: 2.62,
“mass”: 0.0,
“rearCorneringStiffness”: 0.0,
“steeringCoefficient”: 16.2,
“wheelDiameter”: 0.73,
“wheelbase”: 1.75,
“width”: 1.41,
“widthWithMirrors”: 0.0
}
}
},
“version”: 2
}

Please find below the logs captured which shows that the command is send to vehicle for brake and throttle but the dwVehicleIOState values remain unchanged. One thing that was noticed was dwVehicleIOState throttle value has some random data.

VehicleIO sample: Status
steeringWheelAngle: 0.000000
throttleValue: 0.216251
brake value: 0.000000
faults: 0
overrides: 0

m_cmd.throttleValue value: 0.555132
m_cmd.throttleValue value: 0.555132
m_cmd.throttleValue value: 0.555132
m_cmd.throttleValue value: 0.555132
m_cmd.throttleValue value: 0.555132
m_cmd.throttleValue value: 0.555132
m_cmd.throttleValue value: 0.555132
m_cmd.throttleValue value: 0.555132
m_cmd.throttleValue value: 0.555132
m_cmd.throttleValue value: 0.555132
m_cmd.throttleValue value: 0.555132
m_cmd.throttleValue value: 0.527573
VehicleIO sample: Status
steeringWheelAngle: 0.000000
throttleValue: 0.214664
brake value: 0.000000
faults: 0
overrides: 0

m_cmd.throttleValue value: 0.527573
m_cmd.throttleValue value: 0.527573
m_cmd.throttleValue value: 0.527573
m_cmd.throttleValue value: 0.527573
m_cmd.throttleValue value: 0.527573
m_cmd.throttleValue value: 0.527573
m_cmd.throttleValue value: 0.527573
m_cmd.throttleValue value: 0.527573
m_cmd.throttleValue value: 0.5197
m_cmd.throttleValue value: 0.5197
m_cmd.throttleValue value: 0.5197
m_cmd.throttleValue value: 0.507889
m_cmd.throttleValue value: 0.507889
m_cmd.throttleValue value: 0.507889
VehicleIO sample: Status
steeringWheelAngle: 0.000000
throttleValue: 0.214420
brake value: 0.000000
faults: 0
overrides: 0

m_cmd.throttleValue value: 0.507889
m_cmd.throttleValue value: 0.507889
m_cmd.throttleValue value: 0.507889
m_cmd.throttleValue value: 0.507889
m_cmd.throttleValue value: 0.507889
m_cmd.throttleValue value: 0.507889
m_cmd.throttleValue value: 0.507889
m_cmd.throttleValue value: 0.507889
m_cmd.throttleValue value: 0.547258
m_cmd.throttleValue value: 0.547258
m_cmd.throttleValue value: 0.547258
VehicleIO sample: Status
steeringWheelAngle: 0.000000
throttleValue: 0.215518
brake value: 0.000000
faults: 0
overrides: 0

m_cmd.throttleValue value: 0.547258
m_cmd.throttleValue value: 0.590564
m_cmd.throttleValue value: 0.653554
m_cmd.throttleValue value: 0.653554
m_cmd.throttleValue value: 0.653554
m_cmd.throttleValue value: 0.653554
m_cmd.throttleValue value: 0.653554
m_cmd.throttleValue value: 0.653554
m_cmd.throttleValue value: 0.653554
m_cmd.throttleValue value: 0.653554
m_cmd.throttleValue value: 0.653554
m_cmd.throttleValue value: 0.653554
m_cmd.throttleValue value: 0.720481
m_cmd.throttleValue value: 0.720481
m_cmd.throttleValue value: 0.720481
VehicleIO sample: Status
steeringWheelAngle: 0.000000
throttleValue: 0.215396
brake value: 0.000000
faults: 0
overrides: 0

m_cmd.throttleValue value: 0.720481
m_cmd.throttleValue value: 0.720481
m_cmd.throttleValue value: 0.783486
m_cmd.throttleValue value: 0.783486
m_cmd.throttleValue value: 0.783486
m_cmd.throttleValue value: 0.783486
m_cmd.throttleValue value: 0.846477
m_cmd.throttleValue value: 0.846477
m_cmd.throttleValue value: 0.846477
m_cmd.throttleValue value: 0.846477
VehicleIO sample: Status
steeringWheelAngle: 0.000000
throttleValue: 0.214664
brake value: 0.000000
faults: 0
overrides: 0

m_cmd.brakeValue value: 0.181097
m_cmd.brakeValue value: 0.181097
m_cmd.brakeValue value: 0.181097
m_cmd.brakeValue value: 0.299219
m_cmd.brakeValue value: 0.299219
m_cmd.brakeValue value: 0.299219
m_cmd.brakeValue value: 0.299219
m_cmd.brakeValue value: 0.299219
m_cmd.brakeValue value: 0.425199
m_cmd.brakeValue value: 0.425199
m_cmd.brakeValue value: 0.425199
m_cmd.brakeValue value: 0.425199
m_cmd.brakeValue value: 0.425199
VehicleIO sample: Status
steeringWheelAngle: 0.000000
throttleValue: 0.215396
brake value: 0.000000
faults: 0
overrides: 0

m_cmd.brakeValue value: 0.551195
m_cmd.brakeValue value: 0.551195
m_cmd.brakeValue value: 0.551195
m_cmd.brakeValue value: 0.551195
m_cmd.brakeValue value: 0.551195
m_cmd.brakeValue value: 0.677175
m_cmd.brakeValue value: 0.677175
m_cmd.brakeValue value: 0.677175
m_cmd.brakeValue value: 0.79136
m_cmd.brakeValue value: 0.79136
VehicleIO sample: Status
steeringWheelAngle: 0.000000
throttleValue: 0.215396
brake value: 0.000000
faults: 0
overrides: 0

Any inputs here will be helpful.

BR
Hitesh

Hi, @hitesh.pandya1

Did you observe the issue with sample_vehicleio?

Hi VickNV,

I am using sample_vehicleio. I added the required gear buttons as below and is working fine. Have also added few traces to see if the button pressed values are within the range. However, looks like throttle and brake commands are not being sent to the vehicle.

    // Gear buttons
    if (buttons[JS_Y_PARK]) {
        m_cmd.gear = DW_VEHICLEIO_GEAR_PARK;
    } else if (buttons[JS_B_REVERSE]) {
        m_cmd.gear = DW_VEHICLEIO_GEAR_REVERSE;
    } else if (buttons[JS_X_NEUTRAL]) {
        m_cmd.gear = DW_VEHICLEIO_GEAR_NEUTRAL;
    } else if (buttons[JS_A_DRIVE]) {
        m_cmd.gear = DW_VEHICLEIO_GEAR_DRIVE;
    } else {
        m_cmd.gear = DW_VEHICLEIO_GEAR_UNKNOWN;
    }

Regards,
Hitesh

Please also find below the output from sample_canbus_interpreter while sending the commands. I have just added few traces for easy understanding. As you would notice, commands are being sent to the vehicle as PCMD_NONE for Brake and Throttle. As mentioned earlier Dataspeed DBW with USB CAN is working fine.

Streering Command (Working)

1569030246994908 [0x64] → 0xd 0xfa 0x1 0x5a 0x0 0x0 0x0 0x0 Steering_Command.SVEL:360, Steering_Command.SCMD_ANGLE:-152.3
1569030247003492 [0x65] → 0x2a 0xfd 0x7f 0x7a 0x0 0x0 0x0 0x1 Steering_Report.TMODE:0, Steering_Report.FLTPWR:0, Steering_Report.FLTWDC:0, Steering_Report.FLTCAL:0, Steering_Report.TMOUT:0, Steering_Report.TORQUE:0, Steering_Report.SPEED:0, Steering_Report.FLT2:0, Steering_Report.FLT1:0, Steering_Report.EN:1, Steering_Report.OVERRIDE:0, Steering_Report.CMD:-140.9, Steering_Report.ANGLE:-72.6
1569030247013509 [0x65] → 0xfa 0xfc 0x66 0x7a 0x0 0x0 0x0 0x1 Steering_Report.TMODE:0, Steering_Report.FLTPWR:0, Steering_Report.FLTWDC:0, Steering_Report.FLTCAL:0, Steering_Report.TMOUT:0, Steering_Report.TORQUE:0, Steering_Report.SPEED:0, Steering_Report.FLT2:0, Steering_Report.FLT1:0, Steering_Report.EN:1, Steering_Report.OVERRIDE:0, Steering_Report.CMD:-143.4, Steering_Report.ANGLE:-77.4
1569030247021413 [0x64] → 0xdb 0xff 0x1 0x5a 0x0 0x0 0x0 0x0 Steering_Command.SVEL:360, Steering_Command.SCMD_ANGLE:-3.7
1569030247023482 [0x65] → 0xe2 0xfc 0x45 0x7a 0x0 0x0 0x0 0x1 Steering_Report.TMODE:0, Steering_Report.FLTPWR:0, Steering_Report.FLTWDC:0, Steering_Report.FLTCAL:0, Steering_Report.TMOUT:0, Steering_Report.TORQUE:0, Steering_Report.SPEED:0, Steering_Report.FLT2:0, Steering_Report.FLT1:0, Steering_Report.EN:1, Steering_Report.OVERRIDE:0, Steering_Report.CMD:-146.7, Steering_Report.ANGLE:-79.8
1569030247033479 [0x65] → 0xbd 0xfc 0x32 0x7a 0x0 0x0 0x2 0x1 Steering_Report.TMODE:0, Steering_Report.FLTPWR:0, Steering_Report.FLTWDC:0, Steering_Report.FLTCAL:0, Steering_Report.TMOUT:0, Steering_Report.TORQUE:0.125, Steering_Report.SPEED:0, Steering_Report.FLT2:0, Steering_Report.FLT1:0, Steering_Report.EN:1, Steering_Report.OVERRIDE:0, Steering_Report.CMD:-148.6, Steering_Report.ANGLE:-83.5
1569030247041646 [0x64] → 0x0 0x0 0x1 0x5a 0x0 0x0 0x0 0x0 Steering_Command.SVEL:360, Steering_Command.SCMD_ANGLE:0
1569030247043485 [0x65] → 0xa4 0xfc 0x1a 0x7a 0x0 0x0 0x3 0x1 Steering_Report.TMODE:0, Steering_Report.FLTPWR:0, Steering_Report.FLTWDC:0, Steering_Report.FLTCAL:0, Steering_Report.TMOUT:0, Steering_Report.TORQUE:0.1875, Steering_Report.SPEED:0, Steering_Report.FLT2:0, Steering_Report.FLT1:0, Steering_Report.EN:1, Steering_Report.OVERRIDE:0, Steering_Report.CMD:-151, Steering_Report.ANGLE:-86
1569030247053491 [0x65] → 0x80 0xfc 0xd 0x7a 0x0 0x0 0x2 0x1 Steering_Report.TMODE:0, Steering_Report.FLTPWR:0, Steering_Report.FLTWDC:0, Steering_Report.FLTCAL:0, Steering_Report.TMOUT:0, Steering_Report.TORQUE:0.125, Steering_Report.SPEED:0, Steering_Report.FLT2:0, Steering_Report.FLT1:0, Steering_Report.EN:1, Steering_Report.OVERRIDE:0, Steering_Report.CMD:-152.3, Steering_Report.ANGLE:-89.6
1569030247061705 [0x64] → 0x0 0x0 0x1 0x5a 0x0 0x0 0x0 0x0 Steering_Command.SVEL:360, Steering_Command.SCMD_ANGLE:0
1569030247063478 [0x65] → 0x68 0xfc 0xfd 0x79 0x0 0x0 0x1 0x1 Steering_Report.TMODE:0, Steering_Report.FLTPWR:0, Steering_Report.FLTWDC:0, Steering_Report.FLTCAL:0, Steering_Report.TMOUT:0, Steering_Report.TORQUE:0.0625, Steering_Report.SPEED:0, Steering_Report.FLT2:0, Steering_Report.FLT1:0, Steering_Report.EN:1, Steering_Report.OVERRIDE:0, Steering_Report.CMD:-153.9, Steering_Report.ANGLE:-92

Brake Command (Not working)

1569030096719536 [0x60] → 0x50 0x28 0x1 0x1 0x0 0x0 0x0 0x0 Brake_Command.PCMD_NONE:0.157473
1569030096724867 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096734893 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096744901 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096745518 [0x60] → 0x12 0x89 0x1 0x1 0x0 0x0 0x0 0x0 Brake_Command.PCMD_NONE:0.535439
1569030096754888 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096764894 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096765679 [0x60] → 0x78 0xbc 0x1 0x1 0x0 0x0 0x0 0x0 Brake_Command.PCMD_NONE:0.736217
1569030096774886 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096784924 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096785849 [0x60] → 0xed 0xf6 0x1 0x1 0x0 0x0 0x0 0x0 Brake_Command.PCMD_NONE:0.964569
1569030096794882 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096804880 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096808313 [0x60] → 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x0 Brake_Command.PCMD_NONE:0
1569030096814903 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096824871 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096828457 [0x60] → 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x0 Brake_Command.PCMD_NONE:0
1569030096834904 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096844891 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096848746 [0x60] → 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x0 Brake_Command.PCMD_NONE:0
1569030096854901 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0
1569030096864881 [0x61] → 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x1 Brake_Report.PI_TORQUE:0, Brake_Report.PC_TORQUE:0, Brake_Report.PO_TORQUE:0

Throttle Command (Not working)

1569030416769933 [0x62] → 0x28 0x94 0x0 0x1 0x0 0x0 0x0 0x0 Throttle_Command.PCMD_NONE:0.578744
1569030416789341 [0x63] → 0x3c 0x37 0x0 0x0 0x3c 0x37 0x0 0x1 Throttle_Report.FLTPWR:0, Throttle_Report.WDCSRC:0, Throttle_Report.DRIVER:0, Throttle_Report.FLTWDC:0, Throttle_Report.PO:0.215763, Throttle_Report.PI:0.215763, Throttle_Report.PC:0, Throttle_Report.TMOUT:0, Throttle_Report.FLT2:0, Throttle_Report.FLT1:0, Throttle_Report.EN:1, Throttle_Report.OVERRIDE:0
1569030416789983 [0x62] → 0x7e 0xbf 0x0 0x1 0x0 0x0 0x0 0x0 Throttle_Command.PCMD_NONE:0.748028
1569030416809357 [0x63] → 0x34 0x37 0x0 0x0 0x34 0x37 0x0 0x1 Throttle_Report.FLTPWR:0, Throttle_Report.WDCSRC:0, Throttle_Report.DRIVER:0, Throttle_Report.FLTWDC:0, Throttle_Report.PO:0.215641, Throttle_Report.PI:0.215641, Throttle_Report.PC:0, Throttle_Report.TMOUT:0, Throttle_Report.FLT2:0, Throttle_Report.FLT1:0, Throttle_Report.EN:1, Throttle_Report.OVERRIDE:0
1569030416810168 [0x62] → 0xe1 0xf0 0x0 0x1 0x0 0x0 0x0 0x0 Throttle_Command.PCMD_NONE:0.940948
1569030416829367 [0x63] → 0x1c 0x37 0x0 0x0 0x1c 0x37 0x0 0x1 Throttle_Report.FLTPWR:0, Throttle_Report.WDCSRC:0, Throttle_Report.DRIVER:0, Throttle_Report.FLTWDC:0, Throttle_Report.PO:0.215274, Throttle_Report.PI:0.215274, Throttle_Report.PC:0, Throttle_Report.TMOUT:0, Throttle_Report.FLT2:0, Throttle_Report.FLT1:0, Throttle_Report.EN:1, Throttle_Report.OVERRIDE:0
1569030416830285 [0x62] → 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x0 Throttle_Command.PCMD_NONE:0
1569030416849406 [0x63] → 0x2c 0x37 0x0 0x0 0x2c 0x37 0x0 0x1 Throttle_Report.FLTPWR:0, Throttle_Report.WDCSRC:0, Throttle_Report.DRIVER:0, Throttle_Report.FLTWDC:0, Throttle_Report.PO:0.215518, Throttle_Report.PI:0.215518, Throttle_Report.PC:0, Throttle_Report.TMOUT:0, Throttle_Report.FLT2:0, Throttle_Report.FLT1:0, Throttle_Report.EN:1, Throttle_Report.OVERRIDE:0
1569030416853616 [0x62] → 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x0 Throttle_Command.PCMD_NONE:0
1569030416869437 [0x63] → 0x14 0x37 0x0 0x0 0x14 0x37 0x0 0x1 Throttle_Report.FLTPWR:0, Throttle_Report.WDCSRC:0, Throttle_Report.DRIVER:0, Throttle_Report.FLTWDC:0, Throttle_Report.PO:0.215152, Throttle_Report.PI:0.215152, Throttle_Report.PC:0, Throttle_Report.TMOUT:0, Throttle_Report.FLT2:0, Throttle_Report.FLT1:0, Throttle_Report.EN:1, Throttle_Report.OVERRIDE:0

Looks like byte 3 for brake and throttle is different from what is expected by Dataspeed DBW system.

BR,
Hitesh

What’s byte #3 of the two commands? Will it cause the issue?

Please find below the brake and throttle command bit values supported by Dataspeed.

Byte 3 (23:16) should be 20 instead of 01 as sent by NVIDIA vehicleIO
1569030096719536 [0x60] → 0x50 0x28 0x1 0x1 0x0 0x0 0x0 0x0 Brake_Command.PCMD_NONE:0.157473

Same is the case for throttle.
1569030416769933 [0x62] → 0x28 0x94 0x0 0x1 0x0 0x0 0x0 0x0 Throttle_Command.PCMD_NONE:0.578744

The mandatory CMD_TYPE field was added for brake and throttle commands from DriveWorks 3.0. Now the CMD_TYPE is set as ‘1’.
You can check it with DRIVE OS 5.2.6 and DriveWorks 4.0.

Thanks VickNV.

For Brake, the CMD_TYPE needs to be set to 2 and for Throttle, it needs to be set as 1. Can you please confirm the same?

Also, we am using DriveSoftware 10.0. What all features of DriveSoftware will not be available if we move to DRIVE OS 5.2.6 and DriveWorks 4.0?

May I know the datasheet is for which dataspeed firmware version? Thanks.

We are using the DBW_Kit_Polaris_20210921 release with firmware version 1.1.0

Regards,
Hitesh

Did you mean percent of maximum torque is necessary for your use case?
Could you help to explain what’s the problem of not implemented on this platform? It will be easier for me to check with the team. Thanks.

For Brake the CMD_TYPE takes below values
bit 16-19 Unimplemented: Set to ’0’
bit 20-23 CMD TYPE: Command Type
0 = NONE
1 = not implemented on this platform
2 = PERCENT (percent of maximum torque)
3 = TORQUE (integer open-loop braking torque)
4 = TORQUE RQ (integer closed-loop braking torque)
5 = not implemented on this platform
6 = not implemented on this platform

CMD_TYPE = 1 is not supported by Dataspeed. Which effectively means that it will not be recognized by Dataspeed firmware and we will not be able to control the Brake.

For CMD_TYPE=2 it takes values as
bit 0-15 PCMD: Pedal Command
Percent (CMD TYPE = 2):
0x0000 = 0%
0xFFFF = 100%

For CMD_TYPE=3 or 4 it takes values as
bit 0-15 Torque Mode (CMD TYPE = 3 or 4):
0x0000 = 0 N-m
0x0001 = 1 N-m
0xFFFF = 65535 N-m

I couldn’t find the below information from the datasheets in
DBW_Kit_Polaris_20210921
. Could you point out where it’s from?

It looks to me there are two problems now.

  • DriveWorks 2.2 doesn’t support CMD_TYPE of throttle/brake command.
  • DriveWorks 3.5/4.0 supports them but only supports the raw pedal position for brake command (which isn’t supported by the platform you’re using).

Please find below the link for Dataspeed releases. We are using Polaris GEM E2 vehicle.

So, what is the option we have and how can we integrate Dataspeed DBW with Drive AGX?

In the case, you need to refer to VehicleIO Plugin Sample and implement your own plugin.

I thought NVIDIA is by default integrated with Dataspeed. Is this not a bug in the integration?

The DataSpeed driver in DriveWorks is for NVIDIA BB8 test vehicle so it doesn’t support all DataSpeed DBW platforms. Sorry for any inconvenience.

Hi VickNV,

Writing a plugin will delay the project. Is there an option where we can initialize the vehicleIO with DBC file?
I do see an option dwVehicleIO_initializeFromDBC. Could this be an option for having the CAN message based on the DBC file? Any inputs here will be helpful.

Thanks & Regards,
Hitesh

In DriveWorks 2.2 dwVehicleIO_initializeFromDBC() doesn’t support DW_VEHICLEIO_DATASPEED dwVehicleIOType.
In DriveWorks 4.0 the reference dataspeed driver doesn’t refer to dbc passed by dwVehicleIO_initializeFromDBC().