DriveWorks SDK Reference
3.5.78 Release
For Test and Development only

Safety Force Field Interface

Detailed Description

Provides a safety layer purely based on obstacle avoidance.

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

The safety force field uses perceived static and moving obstacles from any sensor(s) and egomotion or vehicle io state of the ego car to predict whether a collision is likely when all involved actors are assumed to execute a safety procedure.

The following choices of safety procedures exist:

  1. Freeze the current steering angle and come to a stop (default)
  2. Continue straight in the current direction and come to a stop (forceStraight = true)
  3. Line up the car to go parallel to a given road structure and come to a stop (useRoadStructure = true, forceStraight = false)
  4. Option 1 and 3 can additionally select (expandClaimedSets = true) and will have the claimed sets get bigger over time to take into account uncertainty and reaction time.

The actors are simulated to execute their safety procedures and collisions are checked between their 3-d space-time claimed sets. When collisions are found, the collision point undergoes a differential analysis to determine which actions improve the safety potential (i.e. a numeric measure of how unsafe the situation is).

The safety force field uses perceived static and moving obstacles from any sensor(s) and egomotion or vehicle io state of the ego car to predict whether a collision is likely when all involved actors are assumed to execute a safety procedure.

The following choices of safety procedures exist:

  1. Freeze the current steering angle and come to a stop (default)
  2. Continue straight in the current direction and come to a stop (forceStraight = true)
  3. Line up the car to go parallel to a given road structure and come to a stop (useRoadStructure = true, forceStraight = false)
  4. Option 1 and 3 can additionally select (expandClaimedSets = true) and will have the claimed sets get bigger over time to take into account uncertainty and reaction time.

The actors are simulated to execute their safety procedures and collisions are checked between their 3-d space-time claimed sets. When collisions are found, the collision point undergoes a differential analysis to determine which actions improve the safety potential (i.e. a numeric measure of how unsafe the situation is).

Data Structures

struct  dwSafetyForceFieldMetrics
 
struct  dwSafetyForceFieldParams
 
struct  dwSafetyForceFieldPerActor
 
struct  dwSafetyForceFieldRequest
 Request for safety force field auto engagement. More...
 
struct  dwSafetyForceFieldState
 

Macros

#define DW_SAFETY_FORCE_FIELD_MAX_NUM_ACTORS_LIMIT   150
 
#define DW_SAFETY_FORCE_FIELD_MAX_NUM_CLOSE_ACTORS   10
 for roadcast More...
 
#define DW_SAFETY_FORCE_FIELD_METRICS_MAX_NUM_COLLIDING_OBJECTS   200
 
#define DW_SAFETY_FORCE_FIELD_NUM_SLICES   16
 
#define DW_SAFETY_FORCE_FIELD_NUM_VERTICES_EXPANDING_CLAIMED_SETS   6
 

Typedefs

typedef struct dwSafetyForceFieldObject const * dwConstSafetyForceFieldHandle_t
 
typedef struct dwSafetyForceFieldObject * dwSafetyForceFieldHandle_t
 

Enumerations

enum  dwSafetyForceFieldStage {
  DW_SAFETY_FORCE_FIELD_STAGE_CPU_PRE_PROCESSING = 0,
  DW_SAFETY_FORCE_FIELD_STAGE_GPU_PROCESS = 1,
  DW_SAFETY_FORCE_FIELD_STAGE_CPU_SYNC_PROCESS = 2
}
 The process stages of the SafetyForceField. More...
 

Functions

DW_API_PUBLIC dwStatus dwSafetyForceField_bindInputLaneGraph (const dwLaneGraph *lg, dwSafetyForceFieldHandle_t handle)
 Bind a lane graph which represents road geometries. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_bindInputObjects (dwObjectArray *objects, dwBindSlot slot, dwSafetyForceFieldHandle_t handle)
 Bind input perceived objects. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_bindInputVehicleIOState (const dwVehicleIOState *vioState, dwSafetyForceFieldHandle_t handle)
 Bind input vehicle IO state. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_combineControlConstraints (dwSafetyForceFieldMultiControlConstraints *out, const dwSafetyForceFieldControlConstraints *ins, uint32_t inCount, dwSafetyForceFieldCombinationType type, uint32_t constraintBits)
 Helper function to combine control constraints. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_getControlConstraints (dwSafetyForceFieldControlConstraints *constraints, dwSafetyForceFieldHandle_t handle)
 Getter of the SFF control constraints for actuation for safety. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_getControlImage (dwImageHandle_t *img, const dwSafetyForceFieldControl *beforeActuation, const dwSafetyForceFieldControl *afterActuation, float32_t steeringLimit, float32_t minAccel, float32_t maxAccel, float32_t steerRange, float32_t accelRange, dwSafetyForceFieldHandle_t handle)
 Control image getter. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_getCUDAStream (cudaStream_t *stream, dwSafetyForceFieldHandle_t handle)
 Get the cuda stream to be used. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_getMetrics (dwSafetyForceFieldMetrics *metrics, dwSafetyForceFieldHandle_t handle)
 Getter of statistics of safety force field collisions. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_getState (dwSafetyForceFieldState *state, const dwSafetyForceFieldControl *beforeActuation, const dwSafetyForceFieldControl *afterActuation, bool relative, dwSafetyForceFieldHandle_t handle)
 Getter of SFF state for roadcast. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_initDefaultParams (dwSafetyForceFieldParams *params)
 Initialize module parameters with default values. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_initialize (dwSafetyForceFieldHandle_t *handle, const dwSafetyForceFieldParams *params, dwContextHandle_t context)
 Initialize a safety force field module. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_initializeControlConstraints (dwSafetyForceFieldControlConstraints *c)
 Helper function to initialize control constraints. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_initializeMultiControlConstraints (dwSafetyForceFieldMultiControlConstraints *c)
 Helper function to initialize multi control constraints. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_process (dwObjectArray **objectsList, uint32_t numObjectArrays, const dwVehicleIOState *vioState, const dwLaneGraph *lg, dwSafetyForceFieldHandle_t handle)
 Main process. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_processStage (dwSafetyForceFieldStage stage, dwSafetyForceFieldHandle_t handle)
 Perform safety force field processing stages. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_release (dwSafetyForceFieldHandle_t handle)
 Release the safety force field module. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_reset (dwSafetyForceFieldHandle_t handle)
 Reset the safety force field module. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_setCUDAStream (cudaStream_t stream, dwSafetyForceFieldHandle_t handle)
 Set the cuda stream to be used. More...
 
DW_API_PUBLIC dwStatus dwSafetyForceField_setEgomotion (dwEgomotionConstHandle_t egomotion, dwSafetyForceFieldHandle_t handle)
 Bind egomotion model handle. More...
 

Data Structure Documentation

◆ dwSafetyForceFieldMetrics

struct dwSafetyForceFieldMetrics
Data Fields
float32_t actuationEMA exponential moving average of actuation number to visualize the average false positives and focus more on the current changes
uint32_t actuationSequenceLength length of ongoing continuous sequence of frames with altered controls
uint64_t collidingObjectIds[DW_SAFETY_FORCE_FIELD_METRICS_MAX_NUM_COLLIDING_OBJECTS] object ids of objects in current frame that ego has predicted collision with
uint32_t collidingObjectSensorIds[DW_SAFETY_FORCE_FIELD_METRICS_MAX_NUM_COLLIDING_OBJECTS] sensor ids of objects in current frame that ego has predicted collision with
float32_t collisionEMA exponential moving average of collision number to visualize the average false positives and focus more on the current changes
uint32_t collisionSequenceLength length of ongoing continuous sequence of frames with predicted collisions
uint32_t numCollidingObjects number of objects in current frame that ego has predicted collision with
uint32_t totalNumFrames number of frames processed
uint32_t totalNumFramesWithActuation number of frames that altered the controls checked
uint32_t totalNumFramesWithCollision number of frames that had predicted collisions
uint32_t totalNumSequencesWithActuation number of continuous sequences of frames with altered controls
uint32_t totalNumSequencesWithCollision number of continuous sequences of frames with predicted collisions

◆ dwSafetyForceFieldParams

struct dwSafetyForceFieldParams
Data Fields
bool expandClaimedSets true to inflate claimed sets that represent reaction time, uncertainties, etc.
bool filterActors true to filter actors by keeping the ones that are close to ego-vehicle and have high velocity confidence
bool forceStraight true to use straight claimed sets, i.e. the safety procedure has no lateral movement
float32_t margin distance margin in [m]
float32_t maxClearance always filter objects with absolute clearance above this threshold [m]
uint32_t maxNumActors max number of input objects
float32_t minConfidence object velocity confidence threshold.
bool restrictToMoving true to ignore obstacles that are not moving (requires valid obstacleState)
bool useGPU use true if cuda optimization should be used
bool useRoadStructure true if structured safety procedures should be used
dwVehicle vehicleProps ego vehicle properties

◆ dwSafetyForceFieldPerActor

struct dwSafetyForceFieldPerActor
Data Fields
dwVector2f collisionPoint 2D collision point in rig; only valid if collisionTime is positive
float32_t collisionTime time of collision of actor with ego, -1.0 if there is no collision
float32_t headings[DW_SAFETY_FORCE_FIELD_NUM_SLICES] heading in radians of the actor at discrete time steps (in rig coords)
float32_t lateralSafetyForce lateral force from this collision point; only valid if collisionTime is positive
float32_t longitudinalSafetyForce longitudinal force from this collision point; only valid if collisionTime is positive
uint64_t objectId object IDs of the actor
uint32_t objectSensorId sensor IDs of the actor
dwVector2f positions[DW_SAFETY_FORCE_FIELD_NUM_SLICES] positions of the actor at discrete time steps (in rig coords)

◆ dwSafetyForceFieldRequest

struct dwSafetyForceFieldRequest
Data Fields
bool activationRequest Activation request.
dwTime_t timeStamp Timestamp for request.

◆ dwSafetyForceFieldState

struct dwSafetyForceFieldState
Data Fields
dwSafetyForceFieldPerActor actors[DW_SAFETY_FORCE_FIELD_MAX_NUM_ACTORS_LIMIT]
dwVector2f claimedSets[DW_SAFETY_FORCE_FIELD_MAX_NUM_CLOSE_ACTORS][DW_SAFETY_FORCE_FIELD_NUM_VERTICES_EXPANDING_CLAIMED_SETS][DW_SAFETY_FORCE_FIELD_NUM_SLICES] claimedSet[i][j][k] is actor i's image of vertex j at time k using expansion
uint32_t claimedSetsActorIndices[DW_SAFETY_FORCE_FIELD_MAX_NUM_CLOSE_ACTORS] index of the actor of this claimed sets
dwSafetyForceFieldConeType controlImageConeType Shape of the cone of safe controls.
float32_t controlImageEnd left boundary of the cone of safe controls in radians, depending on cone type
float32_t controlImageStart right boundary of the cone of safe controls in radians, depending on cone type
float32_t desiredLateralAccel SFF chosen lateral acceleration minus vdc attempted lateral acceleration.
float32_t desiredLongitudinalAccel SFF chosen acceleration minus vdc attempted acceleration.
float32_t maxStopTime Time horizon of the SFF simulation.
uint32_t numActors Number of actors reported.
uint32_t numClaimedSets Number of claimed sets reported.

Macro Definition Documentation

◆ DW_SAFETY_FORCE_FIELD_MAX_NUM_ACTORS_LIMIT

#define DW_SAFETY_FORCE_FIELD_MAX_NUM_ACTORS_LIMIT   150

Definition at line 81 of file SafetyForceField.h.

◆ DW_SAFETY_FORCE_FIELD_MAX_NUM_CLOSE_ACTORS

#define DW_SAFETY_FORCE_FIELD_MAX_NUM_CLOSE_ACTORS   10

for roadcast

Definition at line 85 of file SafetyForceField.h.

◆ DW_SAFETY_FORCE_FIELD_METRICS_MAX_NUM_COLLIDING_OBJECTS

#define DW_SAFETY_FORCE_FIELD_METRICS_MAX_NUM_COLLIDING_OBJECTS   200

Definition at line 83 of file SafetyForceField.h.

◆ DW_SAFETY_FORCE_FIELD_NUM_SLICES

#define DW_SAFETY_FORCE_FIELD_NUM_SLICES   16

Definition at line 82 of file SafetyForceField.h.

◆ DW_SAFETY_FORCE_FIELD_NUM_VERTICES_EXPANDING_CLAIMED_SETS

#define DW_SAFETY_FORCE_FIELD_NUM_VERTICES_EXPANDING_CLAIMED_SETS   6

Definition at line 84 of file SafetyForceField.h.

Typedef Documentation

◆ dwConstSafetyForceFieldHandle_t

typedef struct dwSafetyForceFieldObject const* dwConstSafetyForceFieldHandle_t

Definition at line 91 of file SafetyForceField.h.

◆ dwSafetyForceFieldHandle_t

typedef struct dwSafetyForceFieldObject* dwSafetyForceFieldHandle_t

Definition at line 90 of file SafetyForceField.h.

Enumeration Type Documentation

◆ dwSafetyForceFieldStage

The process stages of the SafetyForceField.

Enumerator
DW_SAFETY_FORCE_FIELD_STAGE_CPU_PRE_PROCESSING 
DW_SAFETY_FORCE_FIELD_STAGE_GPU_PROCESS 
DW_SAFETY_FORCE_FIELD_STAGE_CPU_SYNC_PROCESS 

Definition at line 78 of file SafetyForceField_processpipeline.h.

Function Documentation

◆ dwSafetyForceField_bindInputLaneGraph()

DW_API_PUBLIC dwStatus dwSafetyForceField_bindInputLaneGraph ( const dwLaneGraph lg,
dwSafetyForceFieldHandle_t  handle 
)

Bind a lane graph which represents road geometries.

Parameters
[in]lga lane graph
[in]handleThe object to be updated
Returns
DW_SUCCESS Bind successfully.
DW_INVALID_ARGUMENT lg or handle is nullptr.

◆ dwSafetyForceField_bindInputObjects()

DW_API_PUBLIC dwStatus dwSafetyForceField_bindInputObjects ( dwObjectArray objects,
dwBindSlot  slot,
dwSafetyForceFieldHandle_t  handle 
)

Bind input perceived objects.

Parameters
[in]slotto bind some particular input data to an internal slot
[in]objectsMemory location that stores perceived objects, nullptr if the slot is to be unbound
[in]handleThe object to be updated
Returns
DW_SUCCESS Set successfully.
DW_INVALID_ARGUMENT objects or handle is nullptr.

◆ dwSafetyForceField_bindInputVehicleIOState()

DW_API_PUBLIC dwStatus dwSafetyForceField_bindInputVehicleIOState ( const dwVehicleIOState vioState,
dwSafetyForceFieldHandle_t  handle 
)

Bind input vehicle IO state.

Parameters
[in]vioStatethe vehicle IO state, which is owned by the application
[in]handleThe object to be updated
Returns
DW_SUCCESS Bind successfully.
DW_INVALID_ARGUMENT vioState or handle is nullptr.

◆ dwSafetyForceField_combineControlConstraints()

DW_API_PUBLIC dwStatus dwSafetyForceField_combineControlConstraints ( dwSafetyForceFieldMultiControlConstraints out,
const dwSafetyForceFieldControlConstraints ins,
uint32_t  inCount,
dwSafetyForceFieldCombinationType  type,
uint32_t  constraintBits 
)

Helper function to combine control constraints.

Parameters
[out]outcombined constraints
[in]insaddress of the input constraints array
[in]inCountsize of the input constraints array
[in]typetype of control constraint combination
[in]constraintBitsbits that define which constraints are used for combination. The k-th bit is 1 if the constraint ins[k] is used for combination, 0 otherwise.
Returns
DW_SUCCESS Process successfully.
DW_INVALID_ARGUMENT Either out or ins is nullptr.
Note
If the input combination type type is DW_SAFETY_FORCE_FIELD_COMBINATION_TYPE_UNION, union of the considered constraints will be taken and the result is stored in out->constraints[0]. Also out->constraintsCount is 1. In particular, it is possible to take the union of a proper subset of control constraints in the input ins, by specifying constraintBits correctly. For example, if inCount is 5, constraintBits is the binary number 10011, then the union of ins[0], ins[1] and ins[4] will be taken to generate the output out.
If the input combination type type is DW_SAFETY_FORCE_FIELD_COMBINATION_TYPE_VOTING, then constraintBits should have at least three 1's. If k0, k1 and k2 are the three smallest indices such that their bits in constraintBits are 1's, then out->constraints[i] stores ins[ki]for i = 0,1,2, and out->constraintsCountis 3. For example, ifinCountis 7,constraintBitsis the binary number 1100110, then onlyins[1],ins[2]andins[5]will be considered for generating the outputout`.

◆ dwSafetyForceField_getControlConstraints()

DW_API_PUBLIC dwStatus dwSafetyForceField_getControlConstraints ( dwSafetyForceFieldControlConstraints constraints,
dwSafetyForceFieldHandle_t  handle 
)

Getter of the SFF control constraints for actuation for safety.

Parameters
[out]constraintsSFF control constraints for actuation
[in]handlesff instance handle to get from
Returns
DW_SUCCESS SFF control constraints were gotten.
DW_INVALID_ARGUMENT Either constraints or handle is nullptr.

◆ dwSafetyForceField_getControlImage()

DW_API_PUBLIC dwStatus dwSafetyForceField_getControlImage ( dwImageHandle_t img,
const dwSafetyForceFieldControl beforeActuation,
const dwSafetyForceFieldControl afterActuation,
float32_t  steeringLimit,
float32_t  minAccel,
float32_t  maxAccel,
float32_t  steerRange,
float32_t  accelRange,
dwSafetyForceFieldHandle_t  handle 
)

Control image getter.

Parameters
[out]imgHandle of the control image
[in]beforeActuationEgo's control that was queried (for rendering)
[in]afterActuationThe control ego's control was corrected to (for rendering)
[in]steeringLimitThe maximum allowed front wheel angle in radians (for rendering)
[in]minAccelMaximum allowed vehicle deceleration (for rendering)
[in]maxAccelMaximum allowed vehicle acceleration (for rendering)
[in]steerRangeMaximum positive front wheel steering angle rendered in control image in degree (range of steering angle in control image is [-steerRange, steerRange])
[in]accelRangeMaximum positive acceleration rendered in control image in m/s^2 (range of acceleration in control image is [-accelRange, accelRange])
[in]handleThe object to be updated
Returns
DW_SUCCESS Process successfully.
DW_INVALID_ARGUMENT handle is nullptr.

◆ dwSafetyForceField_getCUDAStream()

DW_API_PUBLIC dwStatus dwSafetyForceField_getCUDAStream ( cudaStream_t *  stream,
dwSafetyForceFieldHandle_t  handle 
)

Get the cuda stream to be used.

Parameters
[out]streamCuda stream to be retrieved
[in]handlesff instance handle to set
Returns
DW_SUCCESS stream was retrieved.
DW_INVALID_ARGUMENT handle or stream is nullptr.

◆ dwSafetyForceField_getMetrics()

DW_API_PUBLIC dwStatus dwSafetyForceField_getMetrics ( dwSafetyForceFieldMetrics metrics,
dwSafetyForceFieldHandle_t  handle 
)

Getter of statistics of safety force field collisions.

Parameters
[out]metricsa pointer to the current metrics of SFF
[in]handlesff instance handle to get from
Returns
DW_SUCCESS metrics were retrieved.
DW_INVALID_ARGUMENT handle or metrics is nullptr.

◆ dwSafetyForceField_getState()

DW_API_PUBLIC dwStatus dwSafetyForceField_getState ( dwSafetyForceFieldState state,
const dwSafetyForceFieldControl beforeActuation,
const dwSafetyForceFieldControl afterActuation,
bool  relative,
dwSafetyForceFieldHandle_t  handle 
)

Getter of SFF state for roadcast.

Parameters
[out]statea pointer to the current state of SFF
[in]beforeActuationControl of ego that was checked
[in]afterActuationControl it was corrected to
[in]relativetrue if claimed sets should be relative to ego
[in]handlesff instance handle to get from
Returns
DW_SUCCESS state was retrieved.
DW_INVALID_ARGUMENT handle or state is nullptr.

◆ dwSafetyForceField_initDefaultParams()

DW_API_PUBLIC dwStatus dwSafetyForceField_initDefaultParams ( dwSafetyForceFieldParams params)

Initialize module parameters with default values.

Parameters
[out]paramsThe module parameters
Returns
DW_SUCCESS When parameter initialization is successful.
DW_FAILURE When parameter initialization is unsuccessful.
DW_INVALID_ARGUMENT When params is nullptr.

◆ dwSafetyForceField_initialize()

DW_API_PUBLIC dwStatus dwSafetyForceField_initialize ( dwSafetyForceFieldHandle_t handle,
const dwSafetyForceFieldParams params,
dwContextHandle_t  context 
)

Initialize a safety force field module.

Parameters
[out]handleA pointer to the safety force field object to be initialized.
[in]paramsModule parameters
[in]contextSpecifies a handle to the context under which it is created.
Returns
DW_SUCCESS module initialized successfully.
DW_INVALID_ARGUMENT handle, params or context is nullptr.

◆ dwSafetyForceField_initializeControlConstraints()

DW_API_PUBLIC dwStatus dwSafetyForceField_initializeControlConstraints ( dwSafetyForceFieldControlConstraints c)

Helper function to initialize control constraints.

Parameters
[in,out]cconstraints obj to be initialized
Returns
DW_SUCCESS Initialize successfully.
DW_INVALID_ARGUMENT c is nullptr.

◆ dwSafetyForceField_initializeMultiControlConstraints()

DW_API_PUBLIC dwStatus dwSafetyForceField_initializeMultiControlConstraints ( dwSafetyForceFieldMultiControlConstraints c)

Helper function to initialize multi control constraints.

Parameters
[in,out]cconstraints obj to be initialized
Returns
DW_SUCCESS Initialize successfully.
DW_INVALID_ARGUMENT c is nullptr.

◆ dwSafetyForceField_process()

DW_API_PUBLIC dwStatus dwSafetyForceField_process ( dwObjectArray **  objectsList,
uint32_t  numObjectArrays,
const dwVehicleIOState vioState,
const dwLaneGraph lg,
dwSafetyForceFieldHandle_t  handle 
)

Main process.

Parameters
[in]objectsListList of memory locations that store perceived objects. The objects are assigned to the first numObjectArrays bind slots
[in]numObjectArraysThe number of input object arrays
[in]vioStatethe vehicle IO state, which is owned by the application
[in]lga lane graph
[in]handleThe object to be updated
Returns
DW_SUCCESS Process successfully.
DW_INVALID_ARGUMENT handle is nullptr.

◆ dwSafetyForceField_processStage()

DW_API_PUBLIC dwStatus dwSafetyForceField_processStage ( dwSafetyForceFieldStage  stage,
dwSafetyForceFieldHandle_t  handle 
)

Perform safety force field processing stages.

Inputs must be bound before this call.

Parameters
[in]stageProcessing stage to run.
[in]handleThe object to be updated.
Returns
DW_SUCCESS Processed successfully.
DW_INVALID_ARGUMENT handle is nullptr.

◆ dwSafetyForceField_release()

DW_API_PUBLIC dwStatus dwSafetyForceField_release ( dwSafetyForceFieldHandle_t  handle)

Release the safety force field module.

The handle points to NULL on success.

Parameters
[in]handleThe object to be released
Returns
DW_SUCCESS module released successfully.
DW_INVALID_ARGUMENT handle is nullptr.

◆ dwSafetyForceField_reset()

DW_API_PUBLIC dwStatus dwSafetyForceField_reset ( dwSafetyForceFieldHandle_t  handle)

Reset the safety force field module.

Parameters
[in]handleThe object to be reset.
Returns
DW_SUCCESS module reset successfully.
DW_INVALID_ARGUMENT handle is nullptr.

◆ dwSafetyForceField_setCUDAStream()

DW_API_PUBLIC dwStatus dwSafetyForceField_setCUDAStream ( cudaStream_t  stream,
dwSafetyForceFieldHandle_t  handle 
)

Set the cuda stream to be used.

Parameters
[in]streamCuda stream to be used
[in]handlesff instance handle to set
Returns
DW_SUCCESS stream was successfully set.
DW_INVALID_ARGUMENT handle is nullptr.

◆ dwSafetyForceField_setEgomotion()

DW_API_PUBLIC dwStatus dwSafetyForceField_setEgomotion ( dwEgomotionConstHandle_t  egomotion,
dwSafetyForceFieldHandle_t  handle 
)

Bind egomotion model handle.

Parameters
[in]egomotionmodel handle
[in]handleThe object to be updated
Returns
DW_SUCCESS Bind successfully.
DW_INVALID_ARGUMENT egomotion or handle is nullptr.