DriveWorks SDK Reference
3.5.78 Release
For Test and Development only

WorldModelSim.h
Go to the documentation of this file.
1 // This code contains NVIDIA Confidential Information and is disclosed
3 // under the Mutual Non-Disclosure Agreement.
4 //
5 // Notice
6 // ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
7 // NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
8 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
9 // MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
10 //
11 // NVIDIA Corporation assumes no responsibility for the consequences of use of such
12 // information or for any infringement of patents or other rights of third parties that may
13 // result from its use. No license is granted by implication or otherwise under any patent
14 // or patent rights of NVIDIA Corporation. No third party distribution is allowed unless
15 // expressly authorized by NVIDIA. Details are subject to change without notice.
16 // This code supersedes and replaces all information previously supplied.
17 // NVIDIA Corporation products are not authorized for use as critical
18 // components in life support devices or systems without express written approval of
19 // NVIDIA Corporation.
20 //
21 // Copyright (c) 2019-2020 NVIDIA Corporation. All rights reserved.
22 //
23 // NVIDIA Corporation and its licensors retain all intellectual property and proprietary
24 // rights in and to this software and related documentation and any modifications thereto.
25 // Any use, reproduction, disclosure or distribution of this software and related
26 // documentation without an express license agreement from NVIDIA Corporation is
27 // strictly prohibited.
28 //
30 
31 #ifndef DW_WORLDMODELSIM_H_
32 #define DW_WORLDMODELSIM_H_
33 
41 #include <dw/core/Config.h>
42 #include <dw/core/Status.h>
43 #include <dw/core/Types.h>
44 #include <dw/core/Context.h>
45 #include <dw/world/Object.h>
46 #include <dw/worldmodel/Obstacle.h>
47 #include <dw/world/ObjectArray.h>
49 #include <dw/maps/Maps.h>
50 #include <dw/egomotion/Egomotion.h>
51 #include <dw/egomotion/EgomotionState.h>
53 #include <dw/waitcondition/camera/WaitConditionSignal.h>
54 
55 #ifdef __cplusplus
56 extern "C" {
57 #endif
58 
59 //#######################################################################################
60 // Structs
61 //#######################################################################################
66 {
67  const char* domainId;
68  const char* configFileDDSTransport;
70 
71 // Output object array bind parameters
73 {
75  int32_t sensorTypeIdx;
76  int32_t sensorRigIdx;
77  const char* sensorName;
79 
80 // Output lane assignment array bind parameters
82 {
84  int32_t sensorTypeIdx;
86 
87 //#######################################################################################
88 // Handles
89 //#######################################################################################
90 typedef struct dwWorldModelSimObject* dwWorldModelSimHandle_t;
91 typedef struct dwWorldModelSimObject const* dwWorldModelSimConstHandle_t;
92 
93 //#######################################################################################
94 // WorldModelSim Functions
95 //#######################################################################################
108 dwStatus dwWorldModelSim_initialize(dwWorldModelSimHandle_t* wmSimHandle,
109  const dwWorldModelSimParams_t* params,
110  dwConstMapHandle_t mapHandle,
111  dwContextHandle_t contextHandle);
112 
121 dwStatus dwWorldModelSim_process(dwWorldModelSimHandle_t wmSimHandle);
122 
131 dwStatus dwWorldModelSim_reset(dwWorldModelSimHandle_t wmSimHandle);
132 
143 dwStatus dwWorldModelSim_bindOutputEgomotionState(dwEgomotionStateHandle_t outputEgoState,
144  dwWorldModelSimHandle_t wmSimHandle);
145 
157  dwWorldModelSimHandle_t wmSimHandle);
158 
172  dwWorldModelSimHandle_t wmSimHandle);
173 
186  dwWorldModelSimHandle_t wmSimHandle);
187 
200  dwWorldModelSimHandle_t wmSimHandle);
201 
213 dwStatus dwWorldModelSim_bindOutputTSLObjectBuffer(dwTSLObjectArray* address,
214  dwWorldModelSimHandle_t wmSimHandle);
215 
226 dwStatus dwWorldModelSim_release(dwWorldModelSimHandle_t wmSimHandle);
227 
228 #ifdef __cplusplus
229 }
230 #endif
231 
234 #endif // DW_WORLDMODELSIM_H_
NVIDIA DriveWorks API: Core Types
NVIDIA DriveWorks API: Egomotion Methods
DW_API_PUBLIC dwStatus dwWorldModelSim_release(dwWorldModelSimHandle_t wmSimHandle)
Releases world model sim module.
NVIDIA DriveWorks API: World Module
DW_API_PUBLIC dwStatus dwWorldModelSim_bindOutputLaneGraph(dwLaneGraph *address, dwWorldModelSimHandle_t wmSimHandle)
Binds output lanegraph.
NVIDIA DriveWorks API: Localization
DW_API_PUBLIC dwStatus dwWorldModelSim_initialize(dwWorldModelSimHandle_t *wmSimHandle, const dwWorldModelSimParams_t *params, dwConstMapHandle_t mapHandle, dwContextHandle_t contextHandle)
Initialize World Model Sim.
DW_API_PUBLIC dwStatus dwWorldModelSim_bindOutputObjectArray(const dwWorldModelSimObjectArrayBindParams_t *bindParams, dwWorldModelSimHandle_t wmSimHandle)
Binds output object array.
NVIDIA DriveWorks API: Core Methods
DW_API_PUBLIC dwStatus dwWorldModelSim_reset(dwWorldModelSimHandle_t wmSimHandle)
Reset WorldModelSim.
const char * configFileDDSTransport
Config file used to define transport protocol used (relative path to data dir)
Definition: WorldModelSim.h:68
NVIDIA DriveWorks API: Maps
DW_API_PUBLIC dwStatus dwWorldModelSim_bindOutputTSLObjectBuffer(dwTSLObjectArray *address, dwWorldModelSimHandle_t wmSimHandle)
Binds output dwTSLObjectArray.
DW_API_PUBLIC dwStatus dwWorldModelSim_process(dwWorldModelSimHandle_t wmSimHandle)
Process WorldModelSim and populates bound output.
struct dwWorldModelSimObject * dwWorldModelSimHandle_t
Definition: WorldModelSim.h:90
dwStatus
Status definition.
Definition: Status.h:178
const char * domainId
ID of Domain used to communicate with DriveSim over DDS.
Definition: WorldModelSim.h:67
NVIDIA DriveWorks API: LaneGraph
struct dwWorldModelSimObject const * dwWorldModelSimConstHandle_t
Definition: WorldModelSim.h:91
Lane graph defined by a container of dwLaneGraphLane objects and qualifier.
Definition: LaneGraph.h:185
DW_API_PUBLIC dwStatus dwWorldModelSim_bindOutputEgomotionState(dwEgomotionStateHandle_t outputEgoState, dwWorldModelSimHandle_t wmSimHandle)
Binds output relative egomotion motion model.
Homogeneous array of structs.
Definition: ObjectArray.h:68
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:80
NVIDIA DriveWorks API: World Module
struct dwMapObject const * dwConstMapHandle_t
Definition: Maps.h:69
DW_API_PUBLIC dwStatus dwWorldModelSim_bindOutputLocalizationResult(dwLocalizationResult *outputLocalizationResult, dwWorldModelSimHandle_t wmSimHandle)
Binds output dwLocalizationResult handle.
DW_API_PUBLIC dwStatus dwWorldModelSim_bindOutputLaneAssignmentArray(const dwWorldModelSimLaneAssignmentArrayBindParams_t *bindParams, dwWorldModelSimHandle_t wmSimHandle)
Binds output lane assignment array.
Output structure obtained from any of the localization modules (camera, radar, lidar, fusion).
Definition: Localization.h:104
NVIDIA DriveWorks API: World Module
Module parameters.
Definition: WorldModelSim.h:65
#define DW_API_PUBLIC
Definition: Exports.h:56
NVIDIA DriveWorks API: Core Status Methods