DriveWorks SDK Reference
3.5.78 Release
For Test and Development only

LocalizationFusion.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) 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_LOCALIZATION_FUSION_H_
51 #define DW_LOCALIZATION_FUSION_H_
52 
54 
55 #ifdef __cplusplus
56 extern "C" {
57 #endif
58 
59 // The maximum number of localization result inputs that fusion supports
60 #define DW_LOCALIZATION_FUSION_MAX_INPUT_COUNT 3
61 
65 typedef struct dwLocalizationFusionObject* dwLocalizationFusionHandle_t;
66 
80 dwStatus dwLocalizationFusion_initialize(dwLocalizationFusionHandle_t* localizationFusion,
81  uint32_t maxLocalizationResultsCount,
82  const dwConstMapHandle_t map,
83  dwContextHandle_t context);
84 
101  const dwLocalizationResult* prev,
102  const dwTransformation3f* predictedToPrev,
103  const dwEgomotionRelativeUncertainty* predictedToPrevUncertainty,
104  dwTime_t predictionTimestamp);
105 
128  const dwLocalizationResult* localizationResults,
129  size_t numResults,
130  const dwTransformation3f* currToPrev,
131  const dwEgomotionRelativeUncertainty* currToPrevUncertainty,
132  dwTime_t timestamp,
133  dwLocalizationFusionHandle_t localizationFusion);
134 
146  dwLocalizationFusionHandle_t localizationFusion);
147 
157 dwStatus dwLocalizationFusion_reset(dwLocalizationFusionHandle_t localizationFusion);
158 
169 dwStatus dwLocalizationFusion_release(dwLocalizationFusionHandle_t localizationFusion);
170 
171 #ifdef __cplusplus
172 }
173 #endif
174 
175 #endif // DW_LOCALIZATION_FUSION_H_
DW_API_PUBLIC dwStatus dwLocalizationFusion_predictLocalization(dwLocalizationResult *predicted, const dwLocalizationResult *prev, const dwTransformation3f *predictedToPrev, const dwEgomotionRelativeUncertainty *predictedToPrevUncertainty, dwTime_t predictionTimestamp)
Predict a localization result to a given timestamp using relative egomotion.
struct dwLocalizationFusionObject * dwLocalizationFusionHandle_t
Handle to a localization fusion module object.
NVIDIA DriveWorks API: Localization
Holds egomotion uncertainty estimates for a relative motion estimate.
Definition: Egomotion.h:466
DW_API_PUBLIC dwStatus dwLocalizationFusion_release(dwLocalizationFusionHandle_t localizationFusion)
Releases the localization fusion module.
Specifies a 3D rigid transformation.
Definition: Types.h:462
dwStatus
Status definition.
Definition: Status.h:178
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: Types.h:82
DW_API_PUBLIC dwStatus dwLocalizationFusion_initialize(dwLocalizationFusionHandle_t *localizationFusion, uint32_t maxLocalizationResultsCount, const dwConstMapHandle_t map, dwContextHandle_t context)
Create a new localization fusion module.
DW_API_PUBLIC dwStatus dwLocalizationFusion_setMap(dwConstMapHandle_t map, dwLocalizationFusionHandle_t localizationFusion)
Sets a new HD Map to localize to.
DW_API_PUBLIC dwStatus dwLocalizationFusion_localize(dwLocalizationResult *fusedResult, const dwLocalizationResult *localizationResults, size_t numResults, const dwTransformation3f *currToPrev, const dwEgomotionRelativeUncertainty *currToPrevUncertainty, dwTime_t timestamp, dwLocalizationFusionHandle_t localizationFusion)
Update localization fusion model with new measurements If timestamp is identical to the previous time...
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:80
struct dwMapObject const * dwConstMapHandle_t
Definition: Maps.h:69
Output structure obtained from any of the localization modules (camera, radar, lidar, fusion).
Definition: Localization.h:104
#define DW_API_PUBLIC
Definition: Exports.h:56
DW_API_PUBLIC dwStatus dwLocalizationFusion_reset(dwLocalizationFusionHandle_t localizationFusion)
Reset localization fusion state to default values.