DriveWorks SDK Reference
3.5.78 Release
For Test and Development only
PointCloudPlaneExtractor.h
Go to the documentation of this file.
1
// 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) 2018-2019 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
49
#ifndef DW_POINTCLOUDPROCESSING_POINTCLOUDPLANEEXTRACTOR_H_
50
#define DW_POINTCLOUDPROCESSING_POINTCLOUDPLANEEXTRACTOR_H_
51
52
#include <
dw/core/Types.h
>
53
#include <
dw/core/Context.h
>
54
#include <
dw/pointcloudprocessing/PointCloud.h
>
55
56
#ifdef __cplusplus
57
extern
"C"
{
58
#endif
59
60
typedef
struct
dwPointCloudPlaneExtractorObject*
dwPointCloudPlaneExtractorHandle_t
;
61
67
typedef
struct
68
{
69
uint32_t
maxPointCount
;
70
dwOrientedBoundingBox3f
box
;
71
}
dwPlaneExtractorBoxFilterParams
;
72
79
typedef
struct
80
{
81
uint32_t
maxInputPointCount
;
82
uint32_t
ransacIterationCount
;
83
uint32_t
optimizerIterationCount
;
84
float32_t
minInlierFraction
;
85
float32_t
maxInlierDistance
;
86
dwMatrix3f
rotation
;
87
bool
cudaPipelineEnabled
;
88
dwPlaneExtractorBoxFilterParams
boxFilterParams
;
89
}
dwPointCloudPlaneExtractorParams
;
90
94
typedef
struct
95
{
96
dwTransformation3f
transformation
;
97
dwVector3f
normal
;
98
float32_t
offset
;
99
bool
valid
;
100
}
dwPointCloudExtractedPlane
;
103
112
DW_API_PUBLIC
113
dwStatus
dwPointCloudPlaneExtractor_initialize
(dwPointCloudPlaneExtractorHandle_t* obj,
114
const
dwPointCloudPlaneExtractorParams
* params,
115
dwContextHandle_t
ctx);
116
123
DW_API_PUBLIC
124
dwStatus
dwPointCloudPlaneExtractor_reset
(dwPointCloudPlaneExtractorHandle_t obj);
125
132
DW_API_PUBLIC
133
dwStatus
dwPointCloudPlaneExtractor_release
(dwPointCloudPlaneExtractorHandle_t obj);
134
141
DW_API_PUBLIC
142
dwStatus
dwPointCloudPlaneExtractor_getDefaultParameters
(
dwPointCloudPlaneExtractorParams
* params);
143
151
DW_API_PUBLIC
152
dwStatus
dwPointCloudPlaneExtractor_bindInput
(
const
dwPointCloud
* pointCloud,
153
dwPointCloudPlaneExtractorHandle_t obj);
161
DW_API_PUBLIC
162
dwStatus
dwPointCloudPlaneExtractor_getCUDAStream
(cudaStream_t* stream,
163
dwPointCloudPlaneExtractorHandle_t obj);
164
172
DW_API_PUBLIC
173
dwStatus
dwPointCloudPlaneExtractor_setCUDAStream
(
const
cudaStream_t stream,
174
dwPointCloudPlaneExtractorHandle_t obj);
175
185
DW_API_PUBLIC
186
dwStatus
dwPointCloudPlaneExtractor_bindOutput
(
dwPointCloud
* inliers,
187
dwPointCloud
* outliers,
188
dwPointCloudExtractedPlane
* outputPlane,
189
dwPointCloudPlaneExtractorHandle_t obj);
190
199
DW_API_PUBLIC
200
dwStatus
dwPointCloudPlaneExtractor_process
(dwPointCloudPlaneExtractorHandle_t obj);
201
202
#ifdef __cplusplus
203
}
204
#endif
205
206
#endif // DW_POINTCLOUDPROCESSING_POINTCLOUDPLANEEXTRACTOR_H_
dwPointCloudPlaneExtractorHandle_t
struct dwPointCloudPlaneExtractorObject * dwPointCloudPlaneExtractorHandle_t
Definition:
PointCloudPlaneExtractor.h:60
Types.h
NVIDIA DriveWorks API: Core Types
dwPointCloudPlaneExtractor_setCUDAStream
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_setCUDAStream(const cudaStream_t stream, dwPointCloudPlaneExtractorHandle_t obj)
Sets CUDA stream of point cloud plane extractor.
float32_t
float float32_t
Specifies POD types.
Definition:
Types.h:70
dwPointCloudExtractedPlane
Defines extracted 3D plane.
Definition:
PointCloudPlaneExtractor.h:94
dwPointCloud
Defines point cloud data structure.
Definition:
PointCloud.h:70
dwPointCloudPlaneExtractor_bindOutput
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_bindOutput(dwPointCloud *inliers, dwPointCloud *outliers, dwPointCloudExtractedPlane *outputPlane, dwPointCloudPlaneExtractorHandle_t obj)
Binds output buffers to point cloud plane extractor.
dwPlaneExtractorBoxFilterParams::box
dwOrientedBoundingBox3f box
oriented bounding box
Definition:
PointCloudPlaneExtractor.h:70
dwPointCloudPlaneExtractorParams::maxInlierDistance
float32_t maxInlierDistance
maximum inlier distance to the estimated plane
Definition:
PointCloudPlaneExtractor.h:85
dwVector3f
Defines a three-element floating-point vector.
Definition:
Types.h:319
dwPointCloudPlaneExtractor_release
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_release(dwPointCloudPlaneExtractorHandle_t obj)
Releases point cloud plane extractor.
Context.h
NVIDIA DriveWorks API: Core Methods
dwPlaneExtractorBoxFilterParams
Defines parameters for point cloud box filter.
Definition:
PointCloudPlaneExtractor.h:67
dwOrientedBoundingBox3f
Data structure representing an oriented bounding box in the local object coordinate frame The box is ...
Definition:
Types.h:486
dwTransformation3f
Specifies a 3D rigid transformation.
Definition:
Types.h:462
dwPointCloudExtractedPlane::transformation
dwTransformation3f transformation
rotation and translation of the plane given the estimated normal vector and plane offset ...
Definition:
PointCloudPlaneExtractor.h:96
dwPointCloudExtractedPlane::normal
dwVector3f normal
normal vector of the ground plane
Definition:
PointCloudPlaneExtractor.h:97
dwStatus
dwStatus
Status definition.
Definition:
Status.h:178
dwPointCloudPlaneExtractorParams::maxInputPointCount
uint32_t maxInputPointCount
maximum number of points in input point cloud
Definition:
PointCloudPlaneExtractor.h:81
dwPointCloudPlaneExtractorParams::rotation
dwMatrix3f rotation
rotation that aligns the point cloud with ground plane
Definition:
PointCloudPlaneExtractor.h:86
dwPointCloudPlaneExtractor_initialize
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_initialize(dwPointCloudPlaneExtractorHandle_t *obj, const dwPointCloudPlaneExtractorParams *params, dwContextHandle_t ctx)
Initializes point cloud plane extractor.
dwPointCloudPlaneExtractorParams::cudaPipelineEnabled
bool cudaPipelineEnabled
Setting to true will process with CUDA pipeline.
Definition:
PointCloudPlaneExtractor.h:87
dwPointCloudPlaneExtractorParams::optimizerIterationCount
uint32_t optimizerIterationCount
optimization iteration number
Definition:
PointCloudPlaneExtractor.h:83
dwPointCloudPlaneExtractorParams
Defines plane extraction parameter.
Definition:
PointCloudPlaneExtractor.h:79
dwMatrix3f
Defines a 3x3 matrix of floating point numbers.
Definition:
Types.h:237
dwPointCloudPlaneExtractorParams::ransacIterationCount
uint32_t ransacIterationCount
ransac iteration number
Definition:
PointCloudPlaneExtractor.h:82
dwPointCloudPlaneExtractor_reset
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_reset(dwPointCloudPlaneExtractorHandle_t obj)
Resets point cloud plane extractor.
PointCloud.h
NVIDIA DriveWorks API: Point Cloud Processing
dwPointCloudPlaneExtractorParams::minInlierFraction
float32_t minInlierFraction
minimum inlier percentage for ransac plane fitting
Definition:
PointCloudPlaneExtractor.h:84
dwPointCloudPlaneExtractor_getDefaultParameters
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_getDefaultParameters(dwPointCloudPlaneExtractorParams *params)
Gets default point cloud plane extractor parameters.
dwPointCloudExtractedPlane::valid
bool valid
If this is false, it indicates the ransac plane fitting and optimization failed to produce a 3D groun...
Definition:
PointCloudPlaneExtractor.h:99
dwContextHandle_t
struct dwContextObject * dwContextHandle_t
Context handle.
Definition:
Context.h:80
dwPointCloudPlaneExtractor_process
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_process(dwPointCloudPlaneExtractorHandle_t obj)
Extracts 3D ground plane and stores the results to output buffer.
dwPointCloudPlaneExtractor_getCUDAStream
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_getCUDAStream(cudaStream_t *stream, dwPointCloudPlaneExtractorHandle_t obj)
Gets CUDA stream of point cloud plane extractor.
dwPointCloudExtractedPlane::offset
float32_t offset
offset distance of the ground plane to the coordinate origin
Definition:
PointCloudPlaneExtractor.h:98
dwPlaneExtractorBoxFilterParams::maxPointCount
uint32_t maxPointCount
maximum number of accepted points
Definition:
PointCloudPlaneExtractor.h:69
DW_API_PUBLIC
#define DW_API_PUBLIC
Definition:
Exports.h:56
dwPointCloudPlaneExtractorParams::boxFilterParams
dwPlaneExtractorBoxFilterParams boxFilterParams
box filter parameters
Definition:
PointCloudPlaneExtractor.h:88
dwPointCloudPlaneExtractor_bindInput
DW_API_PUBLIC dwStatus dwPointCloudPlaneExtractor_bindInput(const dwPointCloud *pointCloud, dwPointCloudPlaneExtractorHandle_t obj)
Binds point cloud buffer to plane extractor.
Advance Information | Subject to Change | Prepared and Provided under NDA | Generated by NVIDIA | Mon Nov 16 2020 19:14:16 | PR-08397-V5.0