NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
PointCloudAccumulator.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2018-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 
29 #ifndef DW_POINTCLOUDPROCESSING_POINTCLOUDACCUMULATOR_H_
30 #define DW_POINTCLOUDPROCESSING_POINTCLOUDACCUMULATOR_H_
31 
32 #include <dw/core/base/Types.h>
33 #include <dw/pointcloudprocessing/pointcloud/PointCloud.h>
34 #include <dw/egomotion/base/Egomotion.h>
35 #include <dw/sensors/lidar/Lidar.h>
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 typedef struct dwPointCloudAccumulatorObject* dwPointCloudAccumulatorHandle_t;
41 
51 typedef struct
52 {
54 
57  uint32_t outputFormats;
58 
59  uint32_t filterWindowSize;
64 
66  bool organized;
67  bool enableZeroCrossDetection;
69  bool outputInRigCoordinates;
71 
74 
76 
84 {
87 
90 
92 
108  const dwPointCloudAccumulatorParams* accumulationParams,
109  const dwLidarProperties* lidarProperties,
123 
136 
149 
163 
177 dwStatus dwPointCloudAccumulator_setCUDAStream(const cudaStream_t stream,
194 
230 
248 
263 
279 
296 
297 #ifdef __cplusplus
298 }
299 #endif
300 
301 #endif // DW_POINTCLOUDPROCESSING_POINTCLOUDACCUMULATOR_H_
dwPointCloudAccumulatorParams
Defines point cloud accumulator parameters.
Definition: PointCloudAccumulator.h:51
dwPointCloudAccumulatorParams::memoryType
dwMemoryType memoryType
The module will process lidar packets and output to cuda memory if memoryType = DW_MEMORY_CUDA.
Definition: PointCloudAccumulator.h:53
dwPointCloudAccumulator_getSweepSize
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_getSweepSize(dwVector2ui *size, dwPointCloudAccumulatorHandle_t obj)
Gets sweeps/spins size.
dwPointCloudAccumulatorParams::maxDistanceMeter
float32_t maxDistanceMeter
Ending distance in degree.
Definition: PointCloudAccumulator.h:63
dwPointCloudAccumulatorParams::sensorTransformation
dwTransformation3f sensorTransformation
Transformation aligns the lidar sensor with the platform that produces the egomotion.
Definition: PointCloudAccumulator.h:73
dwPointCloudAccumulator_bindOutputTimestamps
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_bindOutputTimestamps(dwPointCloudTimestampRange *timestampRange, dwPointCloudAccumulatorHandle_t obj)
Binds output timestamp range.
dwPointCloudAccumulatorParams::maxAngleDegree
float32_t maxAngleDegree
Ending angle in degree.
Definition: PointCloudAccumulator.h:61
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
dwPointCloudTimestampRange::sensorStartTimestamp
dwTime_t sensorStartTimestamp
Definition: PointCloudAccumulator.h:88
dwPointCloudAccumulator_getDefaultParams
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_getDefaultParams(dwPointCloudAccumulatorParams *params)
Gets default point cloud accumulator parameters.
dwPointCloudAccumulatorParams::enableMotionCompensation
bool enableMotionCompensation
Setting it to true will correct the distortions caused by lidar sensor motion.
Definition: PointCloudAccumulator.h:65
dwVector2ui
Defines a two-element unsigned-integer vector.
Definition: MatrixTypes.h:63
dwPointCloudAccumulator_getCUDAStream
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_getCUDAStream(cudaStream_t *stream, dwPointCloudAccumulatorHandle_t obj)
Gets CUDA stream of point cloud accumulator.
dwPointCloudAccumulatorHandle_t
struct dwPointCloudAccumulatorObject * dwPointCloudAccumulatorHandle_t
Definition: PointCloudAccumulator.h:40
dwPointCloudAccumulator_addLidarPacket
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_addLidarPacket(const dwLidarDecodedPacket *packet, dwPointCloudAccumulatorHandle_t obj)
Pushes lidar packet to point cloud accumulator.
dwPointCloudTimestampRange::sensorEndTimestamp
dwTime_t sensorEndTimestamp
Definition: PointCloudAccumulator.h:89
dwPointCloudAccumulator_process
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_process(dwPointCloudAccumulatorHandle_t obj)
Accumulates lidar packets and stores the results to the output buffer.
dwPointCloudAccumulator_initialize
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_initialize(dwPointCloudAccumulatorHandle_t *obj, const dwPointCloudAccumulatorParams *accumulationParams, const dwLidarProperties *lidarProperties, dwContextHandle_t ctx)
Initializes point cloud accumulator.
dwPointCloudAccumulator_setLidarToRigTransformation
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_setLidarToRigTransformation(const dwTransformation3f *transformation, dwPointCloudAccumulatorHandle_t obj)
Sets lidar to rig transformation.
dwPointCloudAccumulator_setCUDAStream
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_setCUDAStream(const cudaStream_t stream, dwPointCloudAccumulatorHandle_t obj)
Sets CUDA stream of point cloud accumulator.
dwTime_t
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: BasicTypes.h:54
float32_t
float float32_t
Specifies POD types.
Definition: BasicTypes.h:41
dwPointCloudAccumulatorParams::egomotion
dwEgomotionConstHandle_t egomotion
Handle to egomotion module.
Definition: PointCloudAccumulator.h:72
dwPointCloudAccumulatorParams::minDistanceMeter
float32_t minDistanceMeter
Starting distance in meter.
Definition: PointCloudAccumulator.h:62
dwLidarDecodedPacket
Defines the structure for a decoded lidar packet.
Definition: LidarTypes.h:275
dwLidarProperties
Defines the properties of the lidar.
Definition: LidarTypes.h:194
dwPointCloudTimestampRange::hostEndTimestamp
dwTime_t hostEndTimestamp
Definition: PointCloudAccumulator.h:86
dwPointCloudAccumulatorParams::minAngleDegree
float32_t minAngleDegree
Starting angle in degree.
Definition: PointCloudAccumulator.h:60
dwPointCloudAccumulator_bindOutput
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_bindOutput(dwPointCloud *pointCloud, dwPointCloudAccumulatorHandle_t obj)
Binds output point cloud buffer.
dwPointCloudTimestampRange
Defines timestamp range of a point cloud.
Definition: PointCloudAccumulator.h:83
dwMemoryType
dwMemoryType
Memory type definitions.
Definition: TypesExtra.h:142
dwContextHandle_t
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:74
dwStatus
dwStatus
Status definition.
Definition: ErrorDefs.h:27
dwPointCloudTimestampRange::hostStartTimestamp
dwTime_t hostStartTimestamp
Definition: PointCloudAccumulator.h:85
dwPointCloudAccumulatorParams::outputFormats
uint32_t outputFormats
Combination of desired dwPointCloudFormat flags.
Definition: PointCloudAccumulator.h:57
dwTransformation3f
Specifies a 3D rigid transformation.
Definition: MatrixTypes.h:226
dwPointCloudTimestampRange
struct dwPointCloudTimestampRange dwPointCloudTimestampRange
Defines timestamp range of a point cloud.
params
DW_API_PUBLIC dwPointCloudRangeImageCreatorParams const *const params
Definition: PointCloudRangeImageCreator.h:292
DW_API_PUBLIC
#define DW_API_PUBLIC
Definition: Exports.h:38
dwPointCloudAccumulator_reset
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_reset(dwPointCloudAccumulatorHandle_t obj)
Resets point cloud accumulator.
obj
const NvSciSyncObj *const obj
Definition: wfdext.h:120
dwPointCloudAccumulator_release
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_release(dwPointCloudAccumulatorHandle_t obj)
Releases point cloud accumulator.
dwEgomotionConstHandle_t
struct dwEgomotionObject const * dwEgomotionConstHandle_t
Const Egomotion Handle.
Definition: Egomotion.h:72
dwPointCloudAccumulatorParams::filterWindowSize
uint32_t filterWindowSize
The horizontal smoothing filter window size.
Definition: PointCloudAccumulator.h:59
dwPointCloudAccumulator_isReady
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_isReady(bool *isReady, dwPointCloudAccumulatorHandle_t obj)
Indicate that enough data has been collected to perform full combination.
dwPointCloudAccumulatorParams::organized
bool organized
If user sets it to true, the module will process the lidar packets such that the output data is align...
Definition: PointCloudAccumulator.h:66