DriveWorks SDK Reference
4.0.0 Release
For Test and Development only

GlobalEgomotion.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 
48 #ifndef DW_EGOMOTION_GLOBAL_GLOBALEGOMOTION_H_
49 #define DW_EGOMOTION_GLOBAL_GLOBALEGOMOTION_H_
50 
51 #include <dw/egomotion/Egomotion.h>
52 #include <dw/sensors/gps/GPS.h>
53 
54 #ifdef __cplusplus
55 extern "C" {
56 #endif
57 
58 typedef struct dwGlobalEgomotionObject* dwGlobalEgomotionHandle_t;
59 typedef struct dwGlobalEgomotionObject const* dwGlobalEgomotionConstHandle_t;
60 
64 typedef struct
65 {
68 
72 
76 
78 
82 typedef struct
83 {
87 
91 
94  size_t historySize;
95 
97 
101 typedef struct
102 {
105 
108 
110 
112 
116 typedef struct
117 {
120 
123 
125 
127 
148  dwConstRigHandle_t rigConfiguration,
149  const char* gpsSensorName);
150 
163 dwStatus dwGlobalEgomotion_initialize(dwGlobalEgomotionHandle_t* handle,
164  const dwGlobalEgomotionParameters* params,
165  dwContextHandle_t ctx);
166 
176 dwStatus dwGlobalEgomotion_reset(dwGlobalEgomotionHandle_t handle);
177 
189 dwStatus dwGlobalEgomotion_release(dwGlobalEgomotionHandle_t handle);
190 
219  const dwEgomotionUncertainty* egomotionUncertainty,
220  dwGlobalEgomotionHandle_t handle);
221 
237  dwGlobalEgomotionHandle_t handle);
238 
252  dwGlobalEgomotionConstHandle_t handle);
253 
268  dwGlobalEgomotionUncertainty* uncertainty,
269  dwGlobalEgomotionConstHandle_t handle);
270 
292  dwGlobalEgomotionUncertainty* uncertainty,
293  dwTime_t timestamp,
294  dwGlobalEgomotionConstHandle_t handle);
295 
307 dwStatus dwGlobalEgomotion_getHistorySize(size_t* num, dwGlobalEgomotionConstHandle_t handle);
308 
326  dwGlobalEgomotionUncertainty* uncertainty,
327  size_t index,
328  dwGlobalEgomotionConstHandle_t handle);
329 
330 #ifdef __cplusplus
331 }
332 #endif
333 
334 #endif // DW_EGOMOTION_GLOBAL_GLOBALEGOMOTION_H_
GNSS Sensor characteristics.
bool validPosition
Indicates validity of position estimate.
float float32_t
Specifies POD types.
Definition: Types.h:70
NVIDIA DriveWorks API: Egomotion Methods
dwGeoPointWGS84 position
Position in WGS-84 reference system.
DW_API_PUBLIC dwStatus dwGlobalEgomotion_computeEstimate(dwGlobalEgomotionResult *result, dwGlobalEgomotionUncertainty *uncertainty, dwTime_t timestamp, dwGlobalEgomotionConstHandle_t handle)
Computes global state estimate at given timestamp, if necessary by linear interpolation between avail...
Defines a three-element floating-point vector.
Definition: Types.h:319
DW_API_PUBLIC dwStatus dwGlobalEgomotion_getHistoryEntry(dwGlobalEgomotionResult *result, dwGlobalEgomotionUncertainty *uncertainty, size_t index, dwGlobalEgomotionConstHandle_t handle)
Returns an entry from the history array.
Defines a single-precision quaternion.
Definition: Types.h:418
size_t historySize
Size of history array, in number of state estimates it holds.
DW_API_PUBLIC dwStatus dwGlobalEgomotion_release(dwGlobalEgomotionHandle_t handle)
Releases the global egomotion module.
dwGNSSCharacteristics sensorCharacteristics
Sensor characteristics.
dwQuaternionf orientation
Rotation from rig coordinate system to ENU coordinate system.
bool validPosition
Indicates validity of position uncertainty estimate.
struct dwGlobalEgomotionObject const * dwGlobalEgomotionConstHandle_t
DW_API_PUBLIC dwStatus dwGlobalEgomotion_initialize(dwGlobalEgomotionHandle_t *handle, const dwGlobalEgomotionParameters *params, dwContextHandle_t ctx)
Initializes the global egomotion module.
bool validOrientation
Indicates validity of orientation estimate.
dwConfidence3f orientation
Orientation uncertainty (roll [rad], pitch [rad], yaw [rad]).
bool validOrientation
Indicates validity of orientation uncertainty estimate.
dwConfidence3f position
Position uncertainty (easting [m], northing [m], altitude [m]).
dwStatus
Status definition.
Definition: Status.h:180
Holds global egomotion state estimate.
Location point defined by WGS84 coordinates.
Definition: Types.h:575
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: Types.h:82
DW_API_PUBLIC dwStatus dwGlobalEgomotion_addGPSMeasurement(const dwGPSFrame *measurement, dwGlobalEgomotionHandle_t handle)
Adds GPS measurement to the global egomotion module.
DW_API_PUBLIC dwStatus dwGlobalEgomotion_initParamsFromRig(dwGlobalEgomotionParameters *params, dwConstRigHandle_t rigConfiguration, const char *gpsSensorName)
Initialize global egomotion parameters from a provided RigConfiguration.
struct dwRigObject const * dwConstRigHandle_t
Definition: Rig.h:71
DW_API_PUBLIC dwStatus dwGlobalEgomotion_reset(dwGlobalEgomotionHandle_t handle)
Resets the state estimate and all history of the global egomotion module.
DW_API_PUBLIC dwStatus dwGlobalEgomotion_getTimestamp(dwTime_t *timestamp, dwGlobalEgomotionConstHandle_t handle)
Get timestamp of current filter estimate.
NVIDIA DriveWorks API: GPS
Holds global egomotion uncertainty estimate.
dwTime_t timestamp
Estimate timestamp.
Holds egomotion uncertainty estimates.
Definition: Egomotion.h:477
dwTime_t timestamp
Estimate timestamp.
struct dwGlobalEgomotionObject * dwGlobalEgomotionHandle_t
Holds egomotion state estimate.
Definition: Egomotion.h:445
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:79
DW_API_PUBLIC dwStatus dwGlobalEgomotion_addRelativeMotion(const dwEgomotionResult *egomotionResult, const dwEgomotionUncertainty *egomotionUncertainty, dwGlobalEgomotionHandle_t handle)
Adds relative egomotion estimate to the global egomotion module.
float32_t rotationalDrift
Expected magnitude of relative egomotion rotational drift [deg/s] A default value of 10 [deg/h] will ...
Holds initialization parameters for the global egomotion module.
dwVector3f antennaPosition
GNSS antenna position in the rig coordinate system [m].
float32_t horizontalNoiseMeter
Expected horizontal position noise (CEP) of the GNSS sensor [m] A default value of 2...
DW_API_PUBLIC dwStatus dwGlobalEgomotion_getEstimate(dwGlobalEgomotionResult *result, dwGlobalEgomotionUncertainty *uncertainty, dwGlobalEgomotionConstHandle_t handle)
Get current filter state estimate.
#define DW_API_PUBLIC
Definition: Exports.h:54
DW_API_PUBLIC dwStatus dwGlobalEgomotion_getHistorySize(size_t *num, dwGlobalEgomotionConstHandle_t handle)
Returns the number of estimates currently stored in the history.
A GPS packet containing localization information.
Definition: GPS.h:78
float32_t verticalNoiseMeter
Expected vertical position noise (CEP) of the GNSS sensor [m] A default value of 5 [m] will be assume...