DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

VehicleIO Workflow
Note
SW Release Applicability: This tutorial is applicable to modules in both NVIDIA DriveWorks and NVIDIA DRIVE Software releases.

Initialization

The dwVehicleIO_initialize() function creates a VehicleIO instance. That functions takes the following parameters:

Note
Before creating a VehicleIO instance, you must initialize the rig configuration module using dwRig_initializeFromFile() and then get the vehicle properties using dwRig_getVehicle(). For more information, see Rig Configuration in this guide.

Driving Mode

The dwVehicleIO_setDrivingMode() function sets the driving mode. This function consumes the dwVehicleIODrivingMode() enum as an argument, which is defined as

Vehicle State Information

The dwVehicleIO_consumeCANFrame() function parses received CAN messages. The resulting parsed messages generate certain reports, which can be gathered using the predefined callbacks.

The current vehicle state information can be retrieved with dwVehicleIO_getVehicleState(), which returns the vehicle state in the dwVehicleIOState format.

Sending Vehicle Commands

The dwVehicleIO_sendVehicleCommand() function sends a command to the vehicle via VehicleIO. The command is sent in the dwVehicleIOCommand format and is passed as one of the arguments. An additional argument is passed as a handle to the underlying sensor that VehicleIO uses to pass this command.

Selecting Driver Overrides

Signals that the driver uses to override Vehicle control are configurable and can be selected using dwVehicleIO_selectDriverOverrides(). The driver can override vehicle control with any combination of throttle, steering, brake, and/or gear.

Conditions for Engagement and Disengagement

In order to enable vehicle actuation (i.e. engage), several conditions must be satisfied:

Once engaged, both Drive-By-Wire hardware and/or VehicleIO might decide to disable vehicle actuation (i.e. disengage), there are a few cases when this might happen:

VehicleIO Sample

See VehicleIO Sample