DriveWorks SDK Reference
3.0.4260 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 dwGeoPointWGS84
104 {
109 
112 
116 typedef struct
117 {
120 
123 
125 
127 
131 typedef struct
132 {
135 
138 
140 
142 
163  dwConstRigHandle_t rigConfiguration,
164  const char* gpsSensorName);
165 
178 dwStatus dwGlobalEgomotion_initialize(dwGlobalEgomotionHandle_t* handle,
179  const dwGlobalEgomotionParameters* params,
180  dwContextHandle_t ctx);
181 
191 dwStatus dwGlobalEgomotion_reset(dwGlobalEgomotionHandle_t handle);
192 
204 dwStatus dwGlobalEgomotion_release(dwGlobalEgomotionHandle_t handle);
205 
234  const dwEgomotionUncertainty* egomotionUncertainty,
235  dwGlobalEgomotionHandle_t handle);
236 
252  dwGlobalEgomotionHandle_t handle);
253 
267  dwGlobalEgomotionConstHandle_t handle);
268 
283  dwGlobalEgomotionUncertainty* uncertainty,
284  dwGlobalEgomotionConstHandle_t handle);
285 
307  dwGlobalEgomotionUncertainty* uncertainty,
308  dwTime_t timestamp,
309  dwGlobalEgomotionConstHandle_t handle);
310 
322 dwStatus dwGlobalEgomotion_getHistorySize(size_t* num, dwGlobalEgomotionConstHandle_t handle);
323 
341  dwGlobalEgomotionUncertainty* uncertainty,
342  size_t index,
343  dwGlobalEgomotionConstHandle_t handle);
344 
345 #ifdef __cplusplus
346 }
347 #endif
348 
349 #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
float64_t lat
latitude
size_t historySize
Size of history array, in number of state estimates it holds.
float64_t height
height above WGS84 earth spheroid
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.
double float64_t
Definition: Types.h:71
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]).
float64_t lon
longitude
Location point defined by WGS84 coordinates.
bool validOrientation
Indicates validity of orientation uncertainty estimate.
dwConfidence3f position
Position uncertainty (easting [m], northing [m], altitude [m]).
dwStatus
Status definition.
Definition: Status.h:166
Holds global egomotion state estimate.
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:180
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:445
dwTime_t timestamp
Estimate timestamp.
struct dwGlobalEgomotionObject * dwGlobalEgomotionHandle_t
Holds egomotion state estimate.
Definition: Egomotion.h:413
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...
dwGeoPointWGS84 dwGeoPoint
alias for the geo point
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...