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.
|
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...
|
|
◆ dwSafetyForceFieldActuationHandle_t
◆ dwSafetyForceFieldActuation_initialize()
Initialize an Safety Force Field actuation module.
- Parameters
-
[out] | SafetyForceFieldActuation | A pointer to the Safety Force Field actuation object to be initialized. |
[in] | context | Specifies 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()
Explicitly test and correct the control parameters for safety.
- Parameters
-
[out] | isProposedControlSafe | true if proposedControl is considered safe, false otherwise |
[out] | newControl | New car wheel steering angle (in radian) and acceleration (in m/s^2) of ego vehicle |
[in] | proposedControl | Proposed car wheel steering angle (in radian) and acceleration (in m/s^2) of ego vehicle |
[in] | steeringLimit | Maximum allowed front wheel angle in radian |
[in] | minAccel | Maximum allowed vehicle deceleration in m/s^2 |
[in] | maxAccel | Maximum allowed vehicle acceleration in m/s^2 |
[in] | SafetyForceFieldActuation | specifies 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()
Release the safety force field actuation module.
- Parameters
-
[in] | SafetyForceFieldActuation | Safety Force Field actuation handle to be released. |
- Returns
- DW_SUCCESS - SafetyForceFieldActuation released successfully.
DW_INVALID_ARGUMENT - SafetyForceFieldActuation is nullptr.
◆ dwSafetyForceFieldActuation_reset()
Reset the safety force field actuation module by clearing the control constraints.
- Parameters
-
[in] | SafetyForceFieldActuation | Safety Force Field actuation handle to be reset. |
- Returns
- DW_SUCCESS - SafetyForceFieldActuation reset successfully.
DW_INVALID_ARGUMENT - SafetyForceFieldActuation is nullptr.
◆ dwSafetyForceFieldActuation_setControlConstraints()
Setter of Safety Force Field control constraints.
- Parameters
-
[in] | constraints | Safety Force Field control constraints for actuation for safety. Control constraints can be acquired by calling the C-API dwSafetyForceField_getControlConstraint(...) |
[in] | SafetyForceFieldActuation | Safety Force Field actuation handle to be updated |
- Returns
- DW_SUCESS constraints set successfully.
DW_INVALID_ARGUMENT SafetyForceFieldActuation or constraints is nullptr.
◆ dwSafetyForceFieldActuation_setMultiControlConstraints()
Setter of Safety Force Field multi control constraints.
- Parameters
-
[in] | constraints | Safety Force Field multi control constraints for actuation for safety. Control constraints can be acquired by calling the C-API dwSafetyForceField_getControlConstraint(...) |
[in] | SafetyForceFieldActuation | Safety Force Field actuation handle to be updated |
- Returns
- DW_SUCESS constraints set successfully.
DW_INVALID_ARGUMENT SafetyForceFieldActuation or constraints is nullptr.
◆ dwSafetyForceFieldActuation_setSteeringWeight()
Setter of the weight on steering for actuation for safety.
- Parameters
-
[in] | steeringWeight | Weight 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] | SafetyForceFieldActuation | Safety Force Field actuation handle to be updated |
- Returns
- DW_SUCCESS steeringWeight set successfully.
DW_INVALID_ARGUMENT SafetyForceFieldActuation is nullptr or steeringWeight is negative.