DriveWorks SDK Reference
5.4.5418 Release
For Test and Development only

GlobalEgomotion.h
Go to the documentation of this file.
1 //
3 // Notice
4 // ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
5 // NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
6 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
7 // MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
8 //
9 // NVIDIA CORPORATION & AFFILIATES assumes no responsibility for the consequences of use of such
10 // information or for any infringement of patents or other rights of third parties that may
11 // result from its use. No license is granted by implication or otherwise under any patent
12 // or patent rights of NVIDIA CORPORATION & AFFILIATES. No third party distribution is allowed unless
13 // expressly authorized by NVIDIA. Details are subject to change without notice.
14 // This code supersedes and replaces all information previously supplied.
15 // NVIDIA CORPORATION & AFFILIATES products are not authorized for use as critical
16 // components in life support devices or systems without express written approval of
17 // NVIDIA CORPORATION & AFFILIATES.
18 //
19 // SPDX-FileCopyrightText: Copyright (c) 2019-2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
20 // SPDX-License-Identifier: LicenseRef-NvidiaProprietary
21 //
22 // NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
23 // property and proprietary rights in and to this material, related
24 // documentation and any modifications thereto. Any use, reproduction,
25 // disclosure or distribution of this material and related documentation
26 // without an express license agreement from NVIDIA CORPORATION or
27 // its affiliates is 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 
216  const dwEgomotionUncertainty* egomotionUncertainty,
217  dwGlobalEgomotionHandle_t handle);
218 
235  dwGlobalEgomotionHandle_t handle);
236 
250  dwGlobalEgomotionConstHandle_t handle);
251 
266  dwGlobalEgomotionUncertainty* uncertainty,
267  dwGlobalEgomotionConstHandle_t handle);
268 
290  dwGlobalEgomotionUncertainty* uncertainty,
291  dwTime_t timestamp,
292  dwGlobalEgomotionConstHandle_t handle);
293 
305 dwStatus dwGlobalEgomotion_getHistorySize(size_t* num, dwGlobalEgomotionConstHandle_t handle);
306 
324  dwGlobalEgomotionUncertainty* uncertainty,
325  size_t index,
326  dwGlobalEgomotionConstHandle_t handle);
327 
328 #ifdef __cplusplus
329 }
330 #endif
331 
332 #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:323
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:423
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:595
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:502
dwTime_t timestamp
Estimate timestamp.
struct dwGlobalEgomotionObject * dwGlobalEgomotionHandle_t
Holds egomotion state estimate.
Definition: Egomotion.h:470
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...