Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>

  • DriveWorks SDK Reference
    5.8.83 Release
    For Test and Development only

    All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    PointCloudICP.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_POINTCLOUDICP_H_
    48#define DW_POINTCLOUDPROCESSING_POINTCLOUDICP_H_
    51
    52#ifdef __cplusplus
    53extern "C" {
    54#endif
    55
    56typedef struct dwPointCloudICPObject* dwPointCloudICPHandle_t;
    57
    61typedef enum dwPointCloudICPType {
    65
    67
    72{
    75
    77 uint32_t maxPoints;
    78
    81
    84
    87
    89 uint16_t maxIterations;
    90
    94
    97typedef bool (*dwPointCloudICPConvergenceCheck)(const dwTransformation3f* prevSrc2Tgt, const dwTransformation3f* newSrc2Tgt, void* userData);
    98
    105{
    114
    116
    127 const dwPointCloudICPParams* params,
    137
    146
    155
    167
    176dwStatus dwPointCloudICP_setCUDAStream(cudaStream_t const stream,
    178
    192 const dwPointCloud* targetPCD,
    193 const dwTransformation3f* sourceToTarget,
    195
    208
    219
    232
    247
    260
    273
    284
    285#ifdef __cplusplus
    286}
    287#endif
    289#endif // DW_POINTCLOUDPROCESSING_POINTCLOUDICP_H_
    NVIDIA DriveWorks API: Point Cloud Processing
    NVIDIA DriveWorks API: Core Methods
    struct dwContextObject * dwContextHandle_t
    Context handle.
    Definition: Context.h:82
    #define DW_API_PUBLIC
    Definition: Exports.h:54
    dwStatus
    Status definition.
    Definition: Status.h:171
    float float32_t
    Specifies POD types.
    Definition: Types.h:70
    Specifies a 3D rigid transformation.
    Definition: Types.h:536
    Defines a two-element unsigned-integer vector.
    Definition: Types.h:347
    uint16_t maxIterations
    Maximum number of iterations which need to be executed.
    Definition: PointCloudICP.h:89
    float32_t distanceConvergenceTol
    Distance convergence tolerance, change in units between two consecutive iteration steps.
    Definition: PointCloudICP.h:86
    float32_t rmsCost
    Weighted root mean square (RMS) cost after last ICP iteration.
    uint32_t numCorrespondences
    Number of 3D points which qualify as valid correspondences.
    float32_t inlierFraction
    Fraction of points which are inliers to the final ICP pose.
    bool usePriors
    Controls whether or not ICP uses the initialization pose as a prior in the optimization.
    Definition: PointCloudICP.h:92
    float32_t angleConvergenceTol
    Angle convergence tolerance, change in radians between two consecutive iteration steps.
    Definition: PointCloudICP.h:83
    uint16_t actualNumIterations
    How many iterations were actually performed.
    dwVector2ui depthmapSize
    If icpType is DW_POINT_CLOUD_ICP_TYPE_DEPTH_MAP, this defines the size of depthmap.
    Definition: PointCloudICP.h:80
    uint32_t maxPoints
    Maximum number of points that will be pushed to ICP optimization.
    Definition: PointCloudICP.h:77
    dwPointCloudICPType icpType
    Type of the ICP implementation to be used.
    Definition: PointCloudICP.h:74
    DW_API_PUBLIC dwStatus dwPointCloudICP_setMaxIterations(uint16_t maxIterations, dwPointCloudICPHandle_t obj)
    Set maximum number of iterations which need to be executed.
    bool(* dwPointCloudICPConvergenceCheck)(const dwTransformation3f *prevSrc2Tgt, const dwTransformation3f *newSrc2Tgt, void *userData)
    Callback function to be executed by ICP module allowing user to overwrite default convergence criteri...
    Definition: PointCloudICP.h:97
    DW_API_PUBLIC dwStatus dwPointCloudICP_setConvergenceCriteriaCallback(dwPointCloudICPConvergenceCheck callback, void *userData, dwPointCloudICPHandle_t obj)
    Allows to set a user-defined callback to be executed for ICP convergence test.
    DW_API_PUBLIC dwStatus dwPointCloudICP_initialize(dwPointCloudICPHandle_t *obj, const dwPointCloudICPParams *params, dwContextHandle_t ctx)
    Initializes point cloud icp.
    DW_API_PUBLIC dwStatus dwPointCloudICP_setConvergenceTolerance(float32_t angleTol, float32_t distanceTol, dwPointCloudICPHandle_t obj)
    Set tolerances used by the default ICP convergence criteria method.
    DW_API_PUBLIC dwStatus dwPointCloudICP_bindOutput(dwTransformation3f *pose, dwPointCloudICPHandle_t obj)
    Binds an output buffer to the resulting transformation between a source and a target point clouds.
    DW_API_PUBLIC dwStatus dwPointCloudICP_getDefaultParams(dwPointCloudICPParams *params)
    Gets default values of dwPointCloudICPParams object.
    DW_API_PUBLIC dwStatus dwPointCloudICP_getLastResultStats(dwPointCloudICPResultStats *resultStats, dwPointCloudICPHandle_t obj)
    Get statistics about latest point cloud ICP run, returns the costs for last pose (see a description o...
    DW_API_PUBLIC dwStatus dwPointCloudICP_release(dwPointCloudICPHandle_t obj)
    Releases a handle of a point cloud icp created using 'dwPointCloudICP_initialize'.
    DW_API_PUBLIC dwStatus dwPointCloudICP_getCUDAStream(cudaStream_t *stream, dwPointCloudICPHandle_t obj)
    Gets CUDA stream of point cloud icp.
    dwPointCloudICPType
    Defines a type of the Iterative Closest Point (ICP) algorithm.
    Definition: PointCloudICP.h:61
    DW_API_PUBLIC dwStatus dwPointCloudICP_process(dwPointCloudICPHandle_t obj)
    Estimates the transformation aligns two PointClouds.
    struct dwPointCloudICPObject * dwPointCloudICPHandle_t
    Definition: PointCloudICP.h:56
    DW_API_PUBLIC dwStatus dwPointCloudICP_reset(dwPointCloudICPHandle_t obj)
    Resets pointers to the source, target point clouds and an output pose to a null pointer value.
    DW_API_PUBLIC dwStatus dwPointCloudICP_setCUDAStream(cudaStream_t const stream, dwPointCloudICPHandle_t obj)
    Sets CUDA stream of point cloud icp.
    DW_API_PUBLIC dwStatus dwPointCloudICP_bindInput(const dwPointCloud *sourcePCD, const dwPointCloud *targetPCD, const dwTransformation3f *sourceToTarget, dwPointCloudICPHandle_t obj)
    Binds input buffers of a source and a target point clouds as well as a buffer with an initial transfo...
    DW_API_PUBLIC dwStatus dwPointCloudICP_getMaximumDepthMapSize(uint32_t *maxDepthMapSize)
    Get the maximum allowed size of the depth map in number of points supported by the ICP implementation...
    @ DW_POINT_CLOUD_ICP_TYPE_DEPTH_MAP
    Grid based depthmap representation for the lidar point cloud.
    Definition: PointCloudICP.h:64
    Defines point cloud icp parameter.
    Definition: PointCloudICP.h:72
    Resulting statistics about the latest ICP run.
    Defines point cloud data structure.
    Definition: PointCloud.h:99
    人人超碰97caoporen国产