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

  • DriveWorks SDK Reference
    5.20.37 Release
    For Test and Development only

    All Data Structures Namespaces 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-2023 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
    131 const dwPointCloudICPParams* params,
    145
    158
    171
    187
    200dwStatus dwPointCloudICP_setCUDAStream(cudaStream_t const stream,
    202
    220 const dwPointCloud* targetPCD,
    221 const dwTransformation3f* sourceToTarget,
    223
    240
    263
    278
    295
    314
    331
    348
    363
    364#ifdef __cplusplus
    365}
    366#endif
    368#endif // DW_POINTCLOUDPROCESSING_POINTCLOUDICP_H_
    NVIDIA DriveWorks API: Core Methods
    dwStatus
    Status definition.
    Definition: ErrorDefs.h:44
    NVIDIA DriveWorks API: Point Cloud Processing
    float float32_t
    Specifies POD types.
    Definition: BasicTypes.h:59
    struct dwContextObject * dwContextHandle_t
    Context handle.
    Definition: Context.h:85
    #define DW_API_PUBLIC
    Definition: Exports.h:56
    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_dryrunEstimation(dwPointCloudICPHandle_t obj)
    Dryrun the point cloud estimation on GPU to record CUDAGraph.
    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:98
    Specifies a 3D rigid transformation.
    Definition: MatrixTypes.h:182
    Defines a two-element unsigned-integer vector.
    Definition: MatrixTypes.h:69
    人人超碰97caoporen国产