DriveWorks SDK Reference
5.12.103 Release
For Test and Development only

MotionCompensator.h
Go to the documentation of this file.
1
2// 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) 2022 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
46#ifndef DW_POINTCLOUDPROCESSING_MOTIONCOMPENSATOR_H_
47#define DW_POINTCLOUDPROCESSING_MOTIONCOMPENSATOR_H_
48
51
52#ifdef __cplusplus
53extern "C" {
54#endif
55
56typedef struct dwMotionCompensatorObject* dwMotionCompensatorHandle_t;
57typedef struct dwMotionCompensatorObject const* dwMotionCompensatorConstHandle_t;
58
62typedef enum {
65
67
71typedef struct
72{
74
76
78
81
83
85
87
99
113 dwMotionCompensatorParams const* params,
115
126
137
164
176
188
202
214 uint32_t const timestampChannelIndex,
216
228
240
252
264
265#ifdef __cplusplus
266}
267#endif
269#endif // DW_POINTCLOUDPROCESSING_MOTIONCOMPENSATOR_H_
NVIDIA DriveWorks API: Egomotion Producer/State Methods
dwStatus
Status definition.
Definition: ErrorDefs.h:45
NVIDIA DriveWorks API: Point Cloud Processing
Specifies a 3D rigid transformation.
Definition: MatrixTypes.h:186
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: BasicTypes.h:64
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:86
#define DW_API_PUBLIC
Definition: Exports.h:54
struct dwEgomotionStateObject const * dwConstEgomotionStateHandle_t
Defines the properties of the lidar.
Definition: Lidar.h:161
dwMotionCompensatorInterpolationStrategy interpolationStrategy
Interpolation strategy.
uint32_t motionModelResolution
Number of transfomations calculated at equal time intervals between start and the end of a spin.
dwTransformation3f pointCloudToRig
Transformation aligns the lidar sensor with the platform that produces the egomotion.
bool enableCuda
If set the module operate on GPU point clouds.
uint32_t maxPointCloudSize
Maximum number of points in input/output point cloud.
bool outputInRigCoordinates
If true output points are transformed to rig coordinate system.
struct dwMotionCompensatorObject * dwMotionCompensatorHandle_t
DW_API_PUBLIC dwStatus dwMotionCompensator_getDefaultParams(dwMotionCompensatorParams *params, dwLidarProperties const *lidarProps)
Get default parameters for motion compensator.
DW_API_PUBLIC dwStatus dwMotionCompensator_reset(dwMotionCompensatorHandle_t obj)
Reset motion compensator.
DW_API_PUBLIC dwStatus dwMotionCompensator_setCUDAStream(const cudaStream_t stream, dwMotionCompensatorHandle_t obj)
Set CUDA stream of motion compensator.
DW_API_PUBLIC dwStatus dwMotionCompensator_bindInput(dwPointCloud const *pointCloud, uint32_t const timestampChannelIndex, dwMotionCompensatorHandle_t obj)
Bind input point cloud.
DW_API_PUBLIC dwStatus dwMotionCompensator_bindEgomotionState(dwConstEgomotionStateHandle_t motionState, dwMotionCompensatorHandle_t obj)
Bind egomotion state handle.
DW_API_PUBLIC dwStatus dwMotionCompensator_bindInputLidarPointCloud(dwLidarPointCloud const *pointCloud, dwMotionCompensatorHandle_t obj)
Bind input lidar point cloud.
DW_API_PUBLIC dwStatus dwMotionCompensator_getCUDAStream(cudaStream_t *stream, dwMotionCompensatorConstHandle_t obj)
Get CUDA stream of motion compensator.
DW_API_PUBLIC dwStatus dwMotionCompensator_bindOutput(dwPointCloud *pointCloud, dwMotionCompensatorHandle_t obj)
Bind output point cloud.
DW_API_PUBLIC dwStatus dwMotionCompensator_release(dwMotionCompensatorHandle_t obj)
Release motion compensator.
DW_API_PUBLIC dwStatus dwMotionCompensator_initialize(dwMotionCompensatorHandle_t *obj, dwMotionCompensatorParams const *params, dwContextHandle_t ctx)
Initialize motion compensator module.
DW_API_PUBLIC dwStatus dwMotionCompensator_setTransform(dwTransformation3f const *transform, dwMotionCompensatorHandle_t obj)
Update point cloud transformation to egomotion coordinate frame.
DW_API_PUBLIC dwStatus dwMotionCompensator_process(dwMotionCompensatorHandle_t obj)
Perform motion compensation.
DW_API_PUBLIC dwStatus dwMotionCompensator_bindOutputLidarPointCloud(dwLidarPointCloud *pointCloud, dwMotionCompensatorHandle_t obj)
Bind output lidar point cloud.
dwMotionCompensatorInterpolationStrategy
Defines transform interpolation strategy.
DW_API_PUBLIC dwStatus dwMotionCompensator_setReferenceTimestamp(dwTime_t const timestamp, dwMotionCompensatorHandle_t obj)
Set reference time for motion compensation.
struct dwMotionCompensatorObject const * dwMotionCompensatorConstHandle_t
@ DW_PC_MOTION_COMPENSATOR_INTERPOLATION_LINEAR
Default interpolation strategy applying linear interpolation.
Defines a LiDAR-specific point cloud data structure.
Defines point cloud motion compensator parameters.
Defines point cloud data structure.
Definition: PointCloud.h:99