NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
MotionCompensator.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2022-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
28 #ifndef DW_POINTCLOUDPROCESSING_MOTIONCOMPENSATOR_MOTIONCOMPENSATOR_H_
29 #define DW_POINTCLOUDPROCESSING_MOTIONCOMPENSATOR_MOTIONCOMPENSATOR_H_
30 
31 #include <dw/pointcloudprocessing/lidarpointcloud/LidarPointCloud.h>
32 #include <dw/egomotion/base/EgomotionState.h>
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 typedef struct dwMotionCompensatorObject* dwMotionCompensatorHandle_t;
39 typedef struct dwMotionCompensatorObject const* dwMotionCompensatorConstHandle_t;
40 
44 typedef enum {
47 
49 
53 typedef struct
54 {
55  bool enableCuda;
56 
57  uint32_t maxPointCloudSize;
58 
60 
62 
65 
67 
69 
85 
105 
120 
135 
151 dwStatus dwMotionCompensator_setCUDAStream(const cudaStream_t stream,
168 dwStatus dwMotionCompensator_getCUDAStream(cudaStream_t* stream,
170 
186 
202 
220 
236  uint32_t const timestampChannelIndex,
238 
254 
270 
286 
302 
303 #ifdef __cplusplus
304 }
305 #endif
306 
307 #endif // DW_POINTCLOUDPROCESSING_MOTIONCOMPENSATOR_MOTIONCOMPENSATOR_H_
DW_PC_MOTION_COMPENSATOR_INTERPOLATION_LINEAR
@ DW_PC_MOTION_COMPENSATOR_INTERPOLATION_LINEAR
Default interpolation strategy applying linear interpolation.
Definition: MotionCompensator.h:46
dwMotionCompensator_setCUDAStream
DW_API_PUBLIC dwStatus dwMotionCompensator_setCUDAStream(const cudaStream_t stream, dwMotionCompensatorHandle_t obj)
Set CUDA stream of motion compensator.
dwMotionCompensator_getDefaultParams
DW_API_PUBLIC dwStatus dwMotionCompensator_getDefaultParams(dwMotionCompensatorParams *params, dwLidarProperties const *lidarProps)
Get default parameters for motion compensator.
dwMotionCompensatorParams::outputInRigCoordinates
bool outputInRigCoordinates
If true output points are transformed to rig coordinate system.
Definition: MotionCompensator.h:64
dwMotionCompensator_initialize
DW_API_PUBLIC dwStatus dwMotionCompensator_initialize(dwMotionCompensatorHandle_t *obj, dwMotionCompensatorParams const *params, dwContextHandle_t ctx)
Initialize motion compensator module.
dwMotionCompensator_bindInput
DW_API_PUBLIC dwStatus dwMotionCompensator_bindInput(dwPointCloud const *pointCloud, uint32_t const timestampChannelIndex, dwMotionCompensatorHandle_t obj)
Bind input point cloud.
dwMotionCompensator_bindInputLidarPointCloud
DW_API_PUBLIC dwStatus dwMotionCompensator_bindInputLidarPointCloud(dwLidarPointCloud const *pointCloud, dwMotionCompensatorHandle_t obj)
Bind input lidar point cloud.
dwMotionCompensatorParams::maxPointCloudSize
uint32_t maxPointCloudSize
Maximum number of points in input/output point cloud.
Definition: MotionCompensator.h:57
dwMotionCompensator_release
DW_API_PUBLIC dwStatus dwMotionCompensator_release(dwMotionCompensatorHandle_t obj)
Release motion compensator.
dwMotionCompensator_setTransform
DW_API_PUBLIC dwStatus dwMotionCompensator_setTransform(dwTransformation3f const *transform, dwMotionCompensatorHandle_t obj)
Update point cloud transformation to egomotion coordinate frame.
dwPointCloud
Defines point cloud data structure.
Definition: PointCloud.h:80
ctx
DW_API_PUBLIC dwPointCloudRangeImageCreatorParams const *const const dwContextHandle_t ctx
Definition: PointCloudRangeImageCreator.h:293
dwMotionCompensatorConstHandle_t
struct dwMotionCompensatorObject const * dwMotionCompensatorConstHandle_t
Definition: MotionCompensator.h:39
dwMotionCompensatorInterpolationStrategy
dwMotionCompensatorInterpolationStrategy
Defines transform interpolation strategy.
Definition: MotionCompensator.h:44
timestamp
const WFDPipeline const WFDSource const WFDTransition const WFDRect *const const WFDuint64 timestamp
Definition: wfdext.h:61
dwConstEgomotionStateHandle_t
struct dwEgomotionStateObject const * dwConstEgomotionStateHandle_t
Definition: EgomotionState.h:70
dwMotionCompensator_bindOutputLidarPointCloud
DW_API_PUBLIC dwStatus dwMotionCompensator_bindOutputLidarPointCloud(dwLidarPointCloud *pointCloud, dwMotionCompensatorHandle_t obj)
Bind output lidar point cloud.
dwMotionCompensatorParams::pointCloudToRig
dwTransformation3f pointCloudToRig
Transformation aligns the lidar sensor with the platform that produces the egomotion.
Definition: MotionCompensator.h:66
dwMotionCompensatorHandle_t
struct dwMotionCompensatorObject * dwMotionCompensatorHandle_t
Definition: MotionCompensator.h:38
dwMotionCompensator_process
DW_API_PUBLIC dwStatus dwMotionCompensator_process(dwMotionCompensatorHandle_t obj)
Perform motion compensation.
dwTime_t
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: BasicTypes.h:54
dwMotionCompensatorParams
Defines point cloud motion compensator parameters.
Definition: MotionCompensator.h:53
dwMotionCompensator_getCUDAStream
DW_API_PUBLIC dwStatus dwMotionCompensator_getCUDAStream(cudaStream_t *stream, dwMotionCompensatorConstHandle_t obj)
Get CUDA stream of motion compensator.
dwLidarProperties
Defines the properties of the lidar.
Definition: LidarTypes.h:194
dwMotionCompensatorParams::interpolationStrategy
dwMotionCompensatorInterpolationStrategy interpolationStrategy
Interpolation strategy.
Definition: MotionCompensator.h:59
dwMotionCompensatorParams::motionModelResolution
uint32_t motionModelResolution
Number of transfomations calculated at equal time intervals between start and the end of a spin.
Definition: MotionCompensator.h:61
dwMotionCompensator_bindOutput
DW_API_PUBLIC dwStatus dwMotionCompensator_bindOutput(dwPointCloud *pointCloud, dwMotionCompensatorHandle_t obj)
Bind output point cloud.
dwContextHandle_t
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:74
dwMotionCompensator_reset
DW_API_PUBLIC dwStatus dwMotionCompensator_reset(dwMotionCompensatorHandle_t obj)
Reset motion compensator.
dwMotionCompensator_bindEgomotionState
DW_API_PUBLIC dwStatus dwMotionCompensator_bindEgomotionState(dwConstEgomotionStateHandle_t motionState, dwMotionCompensatorHandle_t obj)
Bind egomotion state handle.
dwStatus
dwStatus
Status definition.
Definition: ErrorDefs.h:27
dwTransformation3f
Specifies a 3D rigid transformation.
Definition: MatrixTypes.h:226
params
DW_API_PUBLIC dwPointCloudRangeImageCreatorParams const *const params
Definition: PointCloudRangeImageCreator.h:292
DW_API_PUBLIC
#define DW_API_PUBLIC
Definition: Exports.h:38
dwMotionCompensatorParams::enableCuda
bool enableCuda
If set the module operate on GPU point clouds.
Definition: MotionCompensator.h:55
obj
const NvSciSyncObj *const obj
Definition: wfdext.h:120
dwMotionCompensator_setReferenceTimestamp
DW_API_PUBLIC dwStatus dwMotionCompensator_setReferenceTimestamp(dwTime_t const timestamp, dwMotionCompensatorHandle_t obj)
Set reference time for motion compensation.
dwLidarPointCloud
Defines a LIDAR-specific point cloud data structure.
Definition: LidarPointCloud.h:80