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
    Point Cloud Accumulator

    Detailed Description

    Defines datatypes and functions to accumulate cloud of points.

    Data Structures

    struct  dwPointCloudAccumulatorParams
     Defines point cloud accumulator parameters. More...
     
    struct  dwPointCloudTimestampRange
     Defines timestamp range of a point cloud. More...
     

    Typedefs

    typedef struct dwPointCloudAccumulatorObject * dwPointCloudAccumulatorHandle_t
     

    Functions

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_addLidarPacket (const dwLidarDecodedPacket *packet, dwPointCloudAccumulatorHandle_t obj)
     Pushes lidar packet to point cloud accumulator. More...
     
    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_bindOutput (dwPointCloud *pointCloud, dwPointCloudAccumulatorHandle_t obj)
     Binds output point cloud buffer. More...
     
    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_bindOutputTimestamps (dwPointCloudTimestampRange *timestampRange, dwPointCloudAccumulatorHandle_t obj)
     Binds output timestamp range. More...
     
    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_getCUDAStream (cudaStream_t *stream, dwPointCloudAccumulatorHandle_t obj)
     Gets CUDA stream of point cloud accumulator. More...
     
    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_getDefaultParams (dwPointCloudAccumulatorParams *params)
     Gets default point cloud accumulator parameters. More...
     
    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_getSweepSize (dwVector2ui *size, dwPointCloudAccumulatorHandle_t obj)
     Gets sweeps/spins size. More...
     
    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_initialize (dwPointCloudAccumulatorHandle_t *obj, const dwPointCloudAccumulatorParams *accumulationParams, const dwLidarProperties *lidarProperties, dwContextHandle_t ctx)
     Initializes point cloud accumulator. More...
     
    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_isReady (bool *isReady, dwPointCloudAccumulatorHandle_t obj)
     Indicate that enough data has been collected to perform full combination. More...
     
    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_process (dwPointCloudAccumulatorHandle_t obj)
     Accumulates lidar packets and stores the results to the output buffer. More...
     
    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_release (dwPointCloudAccumulatorHandle_t obj)
     Releases point cloud accumulator. More...
     
    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_reset (dwPointCloudAccumulatorHandle_t obj)
     Resets point cloud accumulator. More...
     
    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_setCUDAStream (const cudaStream_t stream, dwPointCloudAccumulatorHandle_t obj)
     Sets CUDA stream of point cloud accumulator. More...
     
    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_setLidarToRigTransformation (const dwTransformation3f *transformation, dwPointCloudAccumulatorHandle_t obj)
     Sets lidar to rig transformation. More...
     

    Data Structure Documentation

    ◆ dwPointCloudAccumulatorParams

    struct dwPointCloudAccumulatorParams
    Data Fields
    dwEgomotionConstHandle_t egomotion Handle to egomotion module.
    bool enableMotionCompensation Setting it to true will correct the distortions caused by lidar sensor motion.
    bool enableZeroCrossDetection If set to true end of spin is detected based on angle of incoming points otherwise on number of incoming packets.
    uint32_t filterWindowSize The horizontal smoothing filter window size.
    float32_t maxAngleDegree Ending angle in degree.
    float32_t maxDistanceMeter Ending distance in degree.
    dwMemoryType memoryType The module will process lidar packets and output to cuda memory
    if memoryType = DW_MEMORY_CUDA.

    The module will process
    lidar packets and output to cpu memory if memoryType = DW_MEMORY_CPU

    float32_t minAngleDegree Starting angle in degree.
    float32_t minDistanceMeter Starting distance in meter.
    bool organized If user sets it to true, the module will process the lidar packets such that the output data is aligned on 3D grid.
    uint32_t outputFormats Combination of desired dwPointCloudFormat flags.
    bool outputInRigCoordinates If true output points are in rig coordinates.
    dwTransformation3f sensorTransformation Transformation aligns the lidar sensor with the platform that produces the egomotion.

    ◆ dwPointCloudTimestampRange

    struct dwPointCloudTimestampRange
    Data Fields
    dwTime_t hostEndTimestamp
    dwTime_t hostStartTimestamp
    dwTime_t sensorEndTimestamp
    dwTime_t sensorStartTimestamp

    Typedef Documentation

    ◆ dwPointCloudAccumulatorHandle_t

    typedef struct dwPointCloudAccumulatorObject* dwPointCloudAccumulatorHandle_t

    Definition at line 58 of file PointCloudAccumulator.h.

    Function Documentation

    ◆ dwPointCloudAccumulator_addLidarPacket()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_addLidarPacket ( const dwLidarDecodedPacket packet,
    dwPointCloudAccumulatorHandle_t  obj 
    )

    Pushes lidar packet to point cloud accumulator.

    Parameters
    [in]packetPointer to decoded lidar packet
    [in]objHandle to point cloud accumulator
    Returns
    DW_SUCCESS - if successfully added packet
    DW_INTERNAL_ERROR - the values included in decoded lidar packet do not match the ones in the lidar properties
    DW_INVALID_ARGUMENT
    API Group
    • Init: Yes
    • Runtime: Yes
    • De-Init: Yes

    ◆ dwPointCloudAccumulator_bindOutput()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_bindOutput ( dwPointCloud pointCloud,
    dwPointCloudAccumulatorHandle_t  obj 
    )

    Binds output point cloud buffer.

    Parameters
    [out]pointCloudPointer to output buffer
    [in]objHandle to point cloud accumulator
    Returns
    DW_SUCCESS
    DW_INVALID_ARGUMENT - the memory type in the output buffer does not match the one specified in dwPointCloudAccumulatorParams.
    Or user did not allocate memory. Please call dwPointCloud_createBuffer in advance to allocate proper memory storage.
    API Group
    • Init: Yes
    • Runtime: Yes
    • De-Init: Yes

    ◆ dwPointCloudAccumulator_bindOutputTimestamps()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_bindOutputTimestamps ( dwPointCloudTimestampRange timestampRange,
    dwPointCloudAccumulatorHandle_t  obj 
    )

    Binds output timestamp range.

    Parameters
    [out]timestampRangeTimestamp range of a output point cloud
    [in]objHandle to point cloud accumulator
    Returns
    DW_SUCCESS
    DW_INVALID_ARGUMENT
    API Group
    • Init: Yes
    • Runtime: Yes
    • De-Init: Yes

    ◆ dwPointCloudAccumulator_getCUDAStream()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_getCUDAStream ( cudaStream_t *  stream,
    dwPointCloudAccumulatorHandle_t  obj 
    )

    Gets CUDA stream of point cloud accumulator.

    Parameters
    [out]streamPointer to CUDA stream handle
    [in]objHandle to point cloud accumulator
    Returns
    DW_SUCCESS
    DW_INVALID_ARGUMENT
    DW_CALL_NOT_ALLOWED - point cloud accumulator is initialized to process host memory
    API Group
    • Init: Yes
    • Runtime: Yes
    • De-Init: Yes

    ◆ dwPointCloudAccumulator_getDefaultParams()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_getDefaultParams ( dwPointCloudAccumulatorParams params)

    Gets default point cloud accumulator parameters.

    Parameters
    [out]paramsPointer to point cloud parameters
    Returns
    DW_SUCCESS
    DW_INVALID_ARGUMENT
    API Group
    • Init: Yes
    • Runtime: Yes
    • De-Init: Yes

    ◆ dwPointCloudAccumulator_getSweepSize()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_getSweepSize ( dwVector2ui size,
    dwPointCloudAccumulatorHandle_t  obj 
    )

    Gets sweeps/spins size.

    Parameters
    [out]sizeSweep size, x is width and y is height
    [in]objHandle to the Point Cloud Accumulator module
    Returns
    DW_INVALID_HANDLE if given handle is invalid, i.e. null or of wrong type
    DW_INVALID_ARGUMENT if given arguments are invalid
    DW_SUCCESS
    Note
    User can call this function once Point Cloud Accumulator is initialized
    API Group
    • Init: Yes
    • Runtime: Yes
    • De-Init: Yes

    ◆ dwPointCloudAccumulator_initialize()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_initialize ( dwPointCloudAccumulatorHandle_t obj,
    const dwPointCloudAccumulatorParams accumulationParams,
    const dwLidarProperties lidarProperties,
    dwContextHandle_t  ctx 
    )

    Initializes point cloud accumulator.

    Parameters
    [out]objPointer to point cloud accumulator handle
    [in]accumulationParamsPointer to point cloud accumulator parameters
    [in]lidarPropertiesPointer to lidar properties
    [in]ctxHandle to the context
    Returns
    DW_SUCCESS
    DW_INVALID_ARGUMENT
    API Group
    • Init: Yes
    • Runtime: No
    • De-Init: No

    ◆ dwPointCloudAccumulator_isReady()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_isReady ( bool *  isReady,
    dwPointCloudAccumulatorHandle_t  obj 
    )

    Indicate that enough data has been collected to perform full combination.

    When this method returns true, a call to dwPointCloudAccumulator_process() can be used to retrieve a solution.

    Parameters
    [out]isReadyIf true we have enough packets to full fill the selcted strategy
    [in]objHandle to point cloud accumulator
    Returns
    DW_INVALID_HANDLE - if given handle is invalid
    DW_INVALID_ARGUMENT - if isReady is nullptr
    DW_SUCCESS
    API Group
    • Init: Yes
    • Runtime: Yes
    • De-Init: Yes

    ◆ dwPointCloudAccumulator_process()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_process ( dwPointCloudAccumulatorHandle_t  obj)

    Accumulates lidar packets and stores the results to the output buffer.

    Parameters
    [in]objHandle to point cloud accumulator
    Returns
    DW_SUCCESS
    DW_INVALID_ARGUMENT
    Note
    Upon successful execution, the function will modify the following variables in output buffer
    1. organized will be set to the same value specified in dwPointCloudAccumulatorParams
    2. size will be non-zero value denotes the current accumulated points in the memory.
    API Group
    • Init: Yes
    • Runtime: Yes
    • De-Init: Yes

    ◆ dwPointCloudAccumulator_release()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_release ( dwPointCloudAccumulatorHandle_t  obj)

    Releases point cloud accumulator.

    Parameters
    [in]objHandle to point cloud accumulator
    Returns
    DW_SUCCESS
    DW_INVALID_ARGUMENT
    API Group
    • Init: Yes
    • Runtime: No
    • De-Init: Yes

    ◆ dwPointCloudAccumulator_reset()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_reset ( dwPointCloudAccumulatorHandle_t  obj)

    Resets point cloud accumulator.

    Parameters
    [in]objHandle to point cloud accumulator
    Returns
    DW_SUCCESS
    DW_INVALID_ARGUMENT
    API Group
    • Init: Yes
    • Runtime: Yes
    • De-Init: Yes

    ◆ dwPointCloudAccumulator_setCUDAStream()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_setCUDAStream ( const cudaStream_t  stream,
    dwPointCloudAccumulatorHandle_t  obj 
    )

    Sets CUDA stream of point cloud accumulator.

    Parameters
    [in]streamHandle to CUDA stream
    [in]objHandle to point cloud accumulator
    Returns
    DW_SUCCESS
    DW_INVALID_ARGUMENT
    DW_CALL_NOT_ALLOWED - point cloud accumulator is initialized to process host memory
    API Group
    • Init: Yes
    • Runtime: Yes
    • De-Init: Yes

    ◆ dwPointCloudAccumulator_setLidarToRigTransformation()

    DW_API_PUBLIC dwStatus dwPointCloudAccumulator_setLidarToRigTransformation ( const dwTransformation3f transformation,
    dwPointCloudAccumulatorHandle_t  obj 
    )

    Sets lidar to rig transformation.

    Parameters
    [in]transformationA pointer to the transform
    [in]objHandle to point cloud accumulator
    Returns
    DW_SUCCESS
    API Group
    • Init: Yes
    • Runtime: Yes
    • De-Init: Yes
    人人超碰97caoporen国产