DriveWorks SDK Reference
3.5.78 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 
50 #ifndef DW_EGOMOTION_GLOBAL_GLOBALEGOMOTION_H_
51 #define DW_EGOMOTION_GLOBAL_GLOBALEGOMOTION_H_
52 
53 #include <dw/egomotion/Egomotion.h>
54 #include <dw/sensors/gps/GPS.h>
55 
56 #ifdef __cplusplus
57 extern "C" {
58 #endif
59 
60 typedef struct dwGlobalEgomotionObject* dwGlobalEgomotionHandle_t;
61 typedef struct dwGlobalEgomotionObject const* dwGlobalEgomotionConstHandle_t;
62 
66 typedef struct
67 {
70 
74 
78 
80 
84 typedef struct
85 {
89 
93 
96  size_t historySize;
97 
99 
103 typedef struct
104 {
107 
110 
112 
114 
118 typedef struct
119 {
122 
125 
127 
129 
150  dwConstRigHandle_t rigConfiguration,
151  const char* gpsSensorName);
152 
165 dwStatus dwGlobalEgomotion_initialize(dwGlobalEgomotionHandle_t* handle,
166  const dwGlobalEgomotionParameters* params,
167  dwContextHandle_t ctx);
168 
178 dwStatus dwGlobalEgomotion_reset(dwGlobalEgomotionHandle_t handle);
179 
191 dwStatus dwGlobalEgomotion_release(dwGlobalEgomotionHandle_t handle);
192 
221  const dwEgomotionUncertainty* egomotionUncertainty,
222  dwGlobalEgomotionHandle_t handle);
223 
239  dwGlobalEgomotionHandle_t handle);
240 
254  dwGlobalEgomotionConstHandle_t handle);
255 
270  dwGlobalEgomotionUncertainty* uncertainty,
271  dwGlobalEgomotionConstHandle_t handle);
272 
294  dwGlobalEgomotionUncertainty* uncertainty,
295  dwTime_t timestamp,
296  dwGlobalEgomotionConstHandle_t handle);
297 
309 dwStatus dwGlobalEgomotion_getHistorySize(size_t* num, dwGlobalEgomotionConstHandle_t handle);
310 
328  dwGlobalEgomotionUncertainty* uncertainty,
329  size_t index,
330  dwGlobalEgomotionConstHandle_t handle);
331 
332 #ifdef __cplusplus
333 }
334 #endif
335 
336 #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:178
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:73
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:448
dwTime_t timestamp
Estimate timestamp.
struct dwGlobalEgomotionObject * dwGlobalEgomotionHandle_t
Holds egomotion state estimate.
Definition: Egomotion.h:416
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:80
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:56
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:80
float32_t verticalNoiseMeter
Expected vertical position noise (CEP) of the GNSS sensor [m] A default value of 5 [m] will be assume...