DriveWorks SDK Reference
5.16.65 Release
For Test and Development only

EgomotionState.h
Go to the documentation of this file.
1
2//
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-2023 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
78#ifndef DW_EGOMOTION_BASE_EGOMOTIONSTATE_H_
79#define DW_EGOMOTION_BASE_EGOMOTIONSTATE_H_
80
82
83#ifdef __cplusplus
84extern "C" {
85#endif
86
87typedef struct dwEgomotionStateObject* dwEgomotionStateHandle_t;
88typedef struct dwEgomotionStateObject const* dwConstEgomotionStateHandle_t;
89
94{
97
101
117
133
147
148// --------------------------------------------
149// State
150// --------------------------------------------
151
157 dwTime_t timestamp_us, dwConstEgomotionStateHandle_t obj);
158
165 dwTime_t timestamp_a, dwTime_t timestamp_b,
167
174 dwTime_t const timestamp,
175 dwCoordinateSystem const coordinateSystemA,
176 dwCoordinateSystem const coordinateSystemB,
178
184
190
196
202
208
214
220 size_t index, dwConstEgomotionStateHandle_t obj);
221
227
250
261
274
290dwStatus dwEgomotionState_serialize(size_t* numBytes, uint8_t* buffer, size_t bufferCapacity, dwConstEgomotionStateHandle_t state);
291
307dwStatus dwEgomotionState_deserialize(const uint8_t* buffer, size_t bufferSize, dwEgomotionStateHandle_t state);
308
322
323#ifdef __cplusplus
324}
325#endif
327#endif // DW_EGOMOTION_BASE_EGOMOTIONSTATE_H_
dwMotionModel
Defines the motion models.
Instantaneous state estimate.
Relative transformation validity and uncertainty.
Instantaneous state uncertainty estimates.
NVIDIA DriveWorks API: Egomotion Methods
dwStatus
Status definition.
Definition: ErrorDefs.h:44
Defines a three-element floating-point vector.
Definition: MatrixTypes.h:76
dwCoordinateSystem
Coordinate systems.
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: BasicTypes.h:65
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:86
#define DW_API_PUBLIC
Definition: Exports.h:56
struct dwEgomotionObject const * dwEgomotionConstHandle_t
Const Egomotion Handle.
Definition: Egomotion.h:88
struct dwEgomotionObject * dwEgomotionHandle_t
Egomotion Handle.
Definition: Egomotion.h:83
dwMotionModel type
Type of the motion model used to hold data by the state.
size_t historySize
Maximal number of elements to keep in history.
DW_API_PUBLIC dwStatus dwEgomotionState_getHistorySize(size_t *num, dwConstEgomotionStateHandle_t obj)
DW_API_PUBLIC dwStatus dwEgomotionState_release(dwEgomotionStateHandle_t state)
Releases the egomotion state previously created with dwEgomotionState_createEmpty.
DW_API_PUBLIC dwStatus dwEgomotionState_getGyroscopeBias(dwVector3f *gyroBias, dwConstEgomotionStateHandle_t obj)
struct dwEgomotionStateObject * dwEgomotionStateHandle_t
DW_API_PUBLIC dwStatus dwEgomotionState_getEstimation(dwEgomotionResult *result, dwConstEgomotionStateHandle_t obj)
struct dwEgomotionStateObject const * dwConstEgomotionStateHandle_t
DW_API_PUBLIC dwStatus dwEgomotionState_estimate(dwEgomotionResult *pose, dwEgomotionUncertainty *uncertainty, dwTime_t timestamp_us, dwConstEgomotionStateHandle_t obj)
DW_API_PUBLIC dwStatus dwEgomotionState_serialize(size_t *numBytes, uint8_t *buffer, size_t bufferCapacity, dwConstEgomotionStateHandle_t state)
Serialize the state out into the provided buffer.
DW_API_PUBLIC dwStatus dwEgomotion_getState(dwEgomotionStateHandle_t state, dwEgomotionConstHandle_t obj)
Fills out already preallocated state handle.
DW_API_PUBLIC dwStatus dwEgomotionState_deserialize(const uint8_t *buffer, size_t bufferSize, dwEgomotionStateHandle_t state)
Deserialize the state from the provided buffer.
DW_API_PUBLIC dwStatus dwEgomotionState_copy(dwEgomotionStateHandle_t state, dwConstEgomotionStateHandle_t source)
Copy existing egomotion state to preallocated state handle.
DW_API_PUBLIC dwStatus dwEgomotionState_createEmpty(dwEgomotionStateHandle_t *state, dwEgomotionStateParams params, dwContextHandle_t ctx)
Create empty state for a given motion model type.
DW_API_PUBLIC dwStatus dwEgomotionState_getMotionModel(dwMotionModel *model, dwConstEgomotionStateHandle_t obj)
DW_API_PUBLIC dwStatus dwEgomotionState_getUncertainty(dwEgomotionUncertainty *result, dwConstEgomotionStateHandle_t obj)
DW_API_PUBLIC dwStatus dwEgomotionState_getHistoryElement(dwEgomotionResult *pose, dwEgomotionUncertainty *uncertainty, size_t index, dwConstEgomotionStateHandle_t obj)
DW_API_PUBLIC dwStatus dwEgomotionState_computeBodyTransformation(dwTransformation3f *const transformationAToB, dwEgomotionTransformationQuality *const quality, dwTime_t const timestamp, dwCoordinateSystem const coordinateSystemA, dwCoordinateSystem const coordinateSystemB, dwConstEgomotionStateHandle_t const obj)
DW_API_PUBLIC dwStatus dwEgomotionState_getHistoryCapacity(size_t *capacity, dwConstEgomotionStateHandle_t obj)
DW_API_PUBLIC dwStatus dwEgomotionState_computeRelativeTransformation(dwTransformation3f *poseAtoB, dwEgomotionTransformationQuality *quality, dwTime_t timestamp_a, dwTime_t timestamp_b, dwConstEgomotionStateHandle_t obj)
DW_API_PUBLIC dwStatus dwEgomotionState_getEstimationTimestamp(dwTime_t *timestamp, dwConstEgomotionStateHandle_t obj)
DW_API_PUBLIC dwStatus dwEgomotion_getHistoryCapacity(size_t *capacity, dwEgomotionConstHandle_t obj)
Returns the capacity of the history, i.e.
DW_API_PUBLIC dwStatus dwEgomotionState_getMaxNumBytes(size_t *bufferCapacity, dwConstEgomotionStateHandle_t state)
Get maximal number of bytes required for a buffer to contain serialized state.
DW_API_PUBLIC dwStatus dwEgomotion_createEmptyState(dwEgomotionStateHandle_t *state, dwEgomotionHandle_t obj)
Create empty state from the given egomotion module.
Defines egomotion state initialization parameters.
Specifies a 3D rigid transformation.
Definition: MatrixTypes.h:182