37 #include "cuda_runtime.h" NVIDIA DriveWorks API: Core Types
float float32_t
Specifies POD types.
NVIDIA DriveWorks API: Lidar
dwICPType icpType
Type of the ICP implementation to be used.
DW_API_PUBLIC dwStatus dwICP_optimize(dwTransformation *outSrc2Tgt, const dwICPIterationParams *iParams, dwICPHandle_t icpObj)
Perform ICP between 2 pointclouds.
Paramter for running ICP between two frames.
Some result stats about the most recent ICP run.
uint32_t maxPoints
Maximum number of points that will be pushed to the ICP optimization.
DW_API_PUBLIC dwStatus dwICP_getCUDAStream(cudaStream_t *stream, dwICPHandle_t icpObj)
Fetches the ICP module's cuda in a pointer.
cudaStream_t stream
CudaStream, all the ICP works happens in this stream, can be 0 for default stream.
dwBool(* dwICPConvergenceCheck)(const dwTransformation *prevSrc2Tgt, const dwTransformation *newSrc2Tgt, void *userData)
Callback function to be executed by ICP module allowing user to overwrite default convergence criteri...
const dwLidarPointXYZI * targetPts
Holds a Lidar point cloud XYZ and the associated intensity.
DW_API_PUBLIC dwStatus dwICP_initialize(dwICPHandle_t *icpObj, const dwICPParams *params, dwContextHandle_t ctx)
Initializes the ICP module.
DW_API_PUBLIC dwStatus dwICP_setMaxIterations(uint16_t maxIterations, dwICPHandle_t icpObj)
Set maximum number of iterations which need to be executed.
uint64_t nSourcePts
Sizes of the above arrays, need to be smaller than maxPoints passed via dwICPParams to dwICP_initiali...
dwStatus
Status definition.
Parameters that control the initialization for ICP module.
DW_API_PUBLIC dwStatus dwICP_setConvergenceCriteriaCallback(dwICPConvergenceCheck callback, void *userData, dwICPHandle_t icpObj)
Set callback to be executed to test convergence.
const dwLidarPointXYZI * sourcePts
Arrays of points, sourcePts need to be transformed by the resulting dwTransformation to align to Targ...
DW_API_PUBLIC dwStatus dwICP_release(dwICPHandle_t *icpObj)
Releases an ICP module.
const dwTransformation * initialSource2Target
This column major transform will be applied to the source points before ICP is performed.
struct dwContextObject * dwContextHandle_t
Context handle.
struct dwICPHandle * dwICPHandle_t
DW_API_PUBLIC dwStatus dwICP_getLastResultStats(dwICPResultStats *resultStats, dwICPHandle_t icpObj)
Get stats about latest ICP run.
float32_t rmsCost
RMS (weighted) cost after last ICP iteration.
ICP implementation optimized for unstructured lidar based point clouds.
DW_API_PUBLIC dwStatus dwICP_setConvergenceTolerance(float32_t angleTol, float32_t distanceTol, dwICPHandle_t icpObj)
Set tolerances used by the default ICP convergence criteria method.
float32_t inlierFraction
Fraction of points which are inliers to the final ICP pose.
DW_API_PUBLIC dwStatus dwICP_setCUDAStream(cudaStream_t stream, dwICPHandle_t icpObj)
Resets the ICP module's cuda stream to new stream.
uint32_t actualNumIterations
How many iterations were actually performed.
DW_API_PUBLIC dwStatus dwICP_reset(dwICPHandle_t icpObj)
Resets the ICP module, clears any data or containers to just-initialized state.