DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

Safety Force Field Actuation Interface

Detailed Description

Utilizes Safety Force Field to correct existing control for safety.

This module uses control constraints of an ego car coming from a Safety Force Field module to correct an unsafe control of the ego car to a safe control.

Note
SW Release Applicability: These APIs are available in NVIDIA DRIVE Software releases.

Typedefs

typedef struct dwSafetyForceFieldActuationObject * dwSafetyForceFieldActuationHandle_t
 

Functions

DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_initialize (dwSafetyForceFieldActuationHandle_t *SafetyForceFieldActuation, dwContextHandle_t context)
 Initialize an Safety Force Field actuation module. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_process (bool *isProposedControlSafe, dwSafetyForceFieldControl *newControl, const dwSafetyForceFieldControl *proposedControl, float32_t steeringLimit, float32_t minAccel, float32_t maxAccel, dwSafetyForceFieldActuationHandle_t SafetyForceFieldActuation)
 Explicitly test and correct the control parameters for safety. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_release (dwSafetyForceFieldActuationHandle_t SafetyForceFieldActuation)
 Release the safety force field actuation module. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_reset (dwSafetyForceFieldActuationHandle_t SafetyForceFieldActuation)
 Reset the safety force field actuation module by clearing the control constraints. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_setControlConstraints (const dwSafetyForceFieldControlConstraints *constraints, dwSafetyForceFieldActuationHandle_t SafetyForceFieldActuation)
 Setter of Safety Force Field control constraints. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_setMultiControlConstraints (const dwSafetyForceFieldMultiControlConstraints *constraints, dwSafetyForceFieldActuationHandle_t SafetyForceFieldActuation)
 Setter of Safety Force Field multi control constraints. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_setSteeringWeight (float32_t steeringWeight, dwSafetyForceFieldActuationHandle_t SafetyForceFieldActuation)
 Setter of the weight on steering for actuation for safety. More...
 

Typedef Documentation

◆ dwSafetyForceFieldActuationHandle_t

typedef struct dwSafetyForceFieldActuationObject* dwSafetyForceFieldActuationHandle_t

Definition at line 61 of file SafetyForceFieldActuation.h.

Function Documentation

◆ dwSafetyForceFieldActuation_initialize()

DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_initialize ( dwSafetyForceFieldActuationHandle_t SafetyForceFieldActuation,
dwContextHandle_t  context 
)

Initialize an Safety Force Field actuation module.

Parameters
[out]SafetyForceFieldActuationA pointer to the Safety Force Field actuation object to be initialized.
[in]contextSpecifies a handle to the context under which it is created.
Returns
DW_SUCCESS - SafetyForceFieldActuation initialized successfully.
DW_INVALID_ARGUMENT - SafetyForceFieldActuation is nullptr.
DW_INVALID_HANDLE - context handle is invalid, null or of wrong type.

◆ dwSafetyForceFieldActuation_process()

DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_process ( bool *  isProposedControlSafe,
dwSafetyForceFieldControl newControl,
const dwSafetyForceFieldControl proposedControl,
float32_t  steeringLimit,
float32_t  minAccel,
float32_t  maxAccel,
dwSafetyForceFieldActuationHandle_t  SafetyForceFieldActuation 
)

Explicitly test and correct the control parameters for safety.

Parameters
[out]isProposedControlSafetrue if proposedControl is considered safe, false otherwise
[out]newControlNew car wheel steering angle (in radian) and acceleration (in m/s^2) of ego vehicle
[in]proposedControlProposed car wheel steering angle (in radian) and acceleration (in m/s^2) of ego vehicle
[in]steeringLimitMaximum allowed front wheel angle in radian
[in]minAccelMaximum allowed vehicle deceleration in m/s^2
[in]maxAccelMaximum allowed vehicle acceleration in m/s^2
[in]SafetyForceFieldActuationspecifies the pointer to the VDC handle being instantiated.
Returns
DW_SUCCESS control test performed, and actuation was done successfully if test fails.
DW_INVALID_ARGUMENT pass or newControl or proposedControl or SafetyForceFieldActuation is nullptr.

◆ dwSafetyForceFieldActuation_release()

DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_release ( dwSafetyForceFieldActuationHandle_t  SafetyForceFieldActuation)

Release the safety force field actuation module.

Parameters
[in]SafetyForceFieldActuationSafety Force Field actuation handle to be released.
Returns
DW_SUCCESS - SafetyForceFieldActuation released successfully.
DW_INVALID_ARGUMENT - SafetyForceFieldActuation is nullptr.

◆ dwSafetyForceFieldActuation_reset()

DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_reset ( dwSafetyForceFieldActuationHandle_t  SafetyForceFieldActuation)

Reset the safety force field actuation module by clearing the control constraints.

Parameters
[in]SafetyForceFieldActuationSafety Force Field actuation handle to be reset.
Returns
DW_SUCCESS - SafetyForceFieldActuation reset successfully.
DW_INVALID_ARGUMENT - SafetyForceFieldActuation is nullptr.

◆ dwSafetyForceFieldActuation_setControlConstraints()

DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_setControlConstraints ( const dwSafetyForceFieldControlConstraints constraints,
dwSafetyForceFieldActuationHandle_t  SafetyForceFieldActuation 
)

Setter of Safety Force Field control constraints.

Parameters
[in]constraintsSafety Force Field control constraints for actuation for safety. Control constraints can be acquired by calling the C-API dwSafetyForceField_getControlConstraint(...)
[in]SafetyForceFieldActuationSafety Force Field actuation handle to be updated
Returns
DW_SUCESS constraints set successfully.
DW_INVALID_ARGUMENT SafetyForceFieldActuation or constraints is nullptr.

◆ dwSafetyForceFieldActuation_setMultiControlConstraints()

DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_setMultiControlConstraints ( const dwSafetyForceFieldMultiControlConstraints constraints,
dwSafetyForceFieldActuationHandle_t  SafetyForceFieldActuation 
)

Setter of Safety Force Field multi control constraints.

Parameters
[in]constraintsSafety Force Field multi control constraints for actuation for safety. Control constraints can be acquired by calling the C-API dwSafetyForceField_getControlConstraint(...)
[in]SafetyForceFieldActuationSafety Force Field actuation handle to be updated
Returns
DW_SUCESS constraints set successfully.
DW_INVALID_ARGUMENT SafetyForceFieldActuation or constraints is nullptr.

◆ dwSafetyForceFieldActuation_setSteeringWeight()

DW_API_PUBLIC dwStatus dwSafetyForceFieldActuation_setSteeringWeight ( float32_t  steeringWeight,
dwSafetyForceFieldActuationHandle_t  SafetyForceFieldActuation 
)

Setter of the weight on steering for actuation for safety.

Parameters
[in]steeringWeightWeight on steering (nonnegative value) for control parameter correction for safety. The default weight is 0.0, which means any unsafe control parameter will be corrected to fully braking. A smaller weight means the control correction will prefer less steering and more braking, while a larger weight means the control correction will prefer more steering and less braking. To tune the steering weight, user can start with 0.0 to realize braking correction, and increment it until realizing the desired steering correction. Suggested weight for steering correction is any value between 0.1 and 0.5.
[in]SafetyForceFieldActuationSafety Force Field actuation handle to be updated
Returns
DW_SUCCESS steeringWeight set successfully.
DW_INVALID_ARGUMENT SafetyForceFieldActuation is nullptr or steeringWeight is negative.