DriveWorks SDK Reference
5.14.77 Release
For Test and Development only

PointCloudAccumulator.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) 2018-2022 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
47#ifndef DW_POINTCLOUDPROCESSING_POINTCLOUDACCUMULATOR_H_
48#define DW_POINTCLOUDPROCESSING_POINTCLOUDACCUMULATOR_H_
49
50#include <dw/core/base/Types.h>
54#ifdef __cplusplus
55extern "C" {
56#endif
57
58typedef struct dwPointCloudAccumulatorObject* dwPointCloudAccumulatorHandle_t;
59
69typedef struct
70{
74
75 uint32_t outputFormats;
76
82
84 bool organized;
89
92
94
102{
105
108
110
122 const dwPointCloudAccumulatorParams* accumulationParams,
123 const dwLidarProperties* lidarProperties,
133
142
151
161
184
212
226
237
249
262
263#ifdef __cplusplus
264}
265#endif
267#endif // DW_POINTCLOUDPROCESSING_POINTCLOUDACCUMULATOR_H_
NVIDIA DriveWorks API: Egomotion Methods
dwStatus
Status definition.
Definition: ErrorDefs.h:45
NVIDIA DriveWorks API: Lidar
NVIDIA DriveWorks API: Point Cloud Processing
NVIDIA DriveWorks API: Core Types
float float32_t
Specifies POD types.
Definition: BasicTypes.h:59
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:54
dwMemoryType
Memory type definitions.
Definition: TypesExtra.h:146
struct dwEgomotionObject const * dwEgomotionConstHandle_t
Const Egomotion Handle.
Definition: Egomotion.h:88
Defines the structure for a decoded lidar packet.
Definition: Lidar.h:233
Defines the properties of the lidar.
Definition: Lidar.h:161
uint32_t outputFormats
Combination of desired dwPointCloudFormat flags.
dwEgomotionConstHandle_t egomotion
Handle to egomotion module.
dwMemoryType memoryType
The module will process lidar packets and output to cuda memory if memoryType = DW_MEMORY_CUDA.
bool enableMotionCompensation
Setting it to true will correct the distortions caused by lidar sensor motion.
bool outputInRigCoordinates
If true output points are in rig coordinates.
float32_t maxDistanceMeter
Ending distance in degree.
uint32_t filterWindowSize
The horizontal smoothing filter window size.
bool enableZeroCrossDetection
If set to true end of spin is detected based on angle of incoming points otherwise on number of incom...
float32_t maxAngleDegree
Ending angle in degree.
float32_t minAngleDegree
Starting angle in degree.
bool organized
If user sets it to true, the module will process the lidar packets such that the output data is align...
float32_t minDistanceMeter
Starting distance in meter.
dwTransformation3f sensorTransformation
Transformation aligns the lidar sensor with the platform that produces the egomotion.
struct dwPointCloudAccumulatorObject * dwPointCloudAccumulatorHandle_t
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_getDefaultParams(dwPointCloudAccumulatorParams *params)
Gets default point cloud accumulator parameters.
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_addLidarPacket(const dwLidarDecodedPacket *packet, dwPointCloudAccumulatorHandle_t obj)
Pushes lidar packet to point cloud accumulator.
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_getSweepSize(dwVector2ui *size, dwPointCloudAccumulatorHandle_t obj)
Gets sweeps/spins size.
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_getCUDAStream(cudaStream_t *stream, dwPointCloudAccumulatorHandle_t obj)
Gets CUDA stream of point cloud accumulator.
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_reset(dwPointCloudAccumulatorHandle_t obj)
Resets point cloud accumulator.
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_isReady(bool *isReady, dwPointCloudAccumulatorHandle_t obj)
Indicate that enough data has been collected to perform full combination.
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_bindOutput(dwPointCloud *pointCloud, dwPointCloudAccumulatorHandle_t obj)
Binds output point cloud buffer.
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_bindOutputTimestamps(dwPointCloudTimestampRange *timestampRange, dwPointCloudAccumulatorHandle_t obj)
Binds output timestamp range.
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_initialize(dwPointCloudAccumulatorHandle_t *obj, const dwPointCloudAccumulatorParams *accumulationParams, const dwLidarProperties *lidarProperties, dwContextHandle_t ctx)
Initializes point cloud accumulator.
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_setCUDAStream(const cudaStream_t stream, dwPointCloudAccumulatorHandle_t obj)
Sets CUDA stream of point cloud accumulator.
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_release(dwPointCloudAccumulatorHandle_t obj)
Releases point cloud accumulator.
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_setLidarToRigTransformation(const dwTransformation3f *transformation, dwPointCloudAccumulatorHandle_t obj)
Sets lidar to rig transformation.
DW_API_PUBLIC dwStatus dwPointCloudAccumulator_process(dwPointCloudAccumulatorHandle_t obj)
Accumulates lidar packets and stores the results to the output buffer.
Defines point cloud accumulator parameters.
Defines timestamp range of a point cloud.
Defines point cloud data structure.
Definition: PointCloud.h:99
Specifies a 3D rigid transformation.
Definition: MatrixTypes.h:186
Defines a two-element unsigned-integer vector.
Definition: MatrixTypes.h:71