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

  • DriveWorks SDK Reference
    5.10.90 Release
    For Test and Development only

    All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    Lidar.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) 2016-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_SENSORS_LIDAR_LIDAR_H_
    48#define DW_SENSORS_LIDAR_LIDAR_H_
    49
    50#include <dw/core/base/Types.h>
    51
    52#include <dw/sensors/Sensors.h>
    53#include <stdalign.h>
    54
    55#ifdef __cplusplus
    56extern "C" {
    57#endif
    58
    66typedef enum {
    83
    87typedef enum {
    88 DW_LIDAR_AUX_DATA_TYPE_SNR = 0, //<! SNR type.
    89 DW_LIDAR_AUX_DATA_TYPE_SIGNALWIDTH = 1, //<! SIGNALWIDTH type.
    90 DW_LIDAR_AUX_DATA_TYPE_SIGNALHEIGHT = 2, //<! SIGNALHEIGHT type.
    91 DW_LIDAR_AUX_DATA_TYPE_TIME = 3, //<! TIME type.
    92 DW_LIDAR_AUX_DATA_TYPE_V_MPS = 4, //<! V_MPS type.
    93 DW_LIDAR_AUX_DATA_TYPE_EXISTENCEPROB = 5, //<! EXISTENCEPROB type.
    94 DW_LIDAR_AUX_DATA_TYPE_CROSSTALKPROB = 6, //<! CROSSTALKPROB type.
    95 DW_LIDAR_AUX_DATA_TYPE_NOISELEVEL = 7, //<! NOISELEVEL type.
    96 DW_LIDAR_AUX_DATA_TYPE_ZONEID = 8, //<! ZONEID type.
    97 DW_LIDAR_AUX_DATA_TYPE_DETECTORID = 9, //<! DETECTORID type.
    98 DW_LIDAR_AUX_DATA_TYPE_LINEID = 10, //<! LINEID type.
    99 DW_LIDAR_AUX_DATA_TYPE_DATAQUALITY = 11, //<! DATAQUALITY type.
    100 DW_LIDAR_AUX_DATA_TYPE_SCANCHECKPOINT = 12, //<! SCANCHECKPOINT type.
    101 DW_LIDAR_AUX_DATA_TYPE_BLOCKAGEFLAG = 13, //<! BLOCKAGEFLAG type.
    102 DW_LIDAR_AUX_DATA_TYPE_SENSORID = 14, //<! SENSORID type.
    103 DW_LIDAR_AUX_DATA_TYPE_VALIDITY = 15, //<! VALIDITY type.
    104 DW_LIDAR_AUX_DATA_TYPE_INVALIDITYFLAG = 16, //<! INVALIDITYFLAG type.
    105 DW_LIDAR_AUX_DATA_TYPE_COUNT = 17, //<! COUNT type.
    108
    112typedef enum {
    115
    118
    121
    124
    126
    128#define DW_SENSORS_LIDAR_MAX_RETURNS 10
    129
    131typedef struct dwLidarPointXYZI
    132{
    133 alignas(16) float32_t x;
    138
    140typedef struct dwLidarPointRTHI
    141{
    142 alignas(16) float32_t theta;
    147
    148#define DW_SENSORS_LIDAR_MAX_ROWS 256
    151typedef struct dwLidarProperties
    152{
    153 char8_t deviceString[256];
    158 uint32_t packetsPerSpin;
    162 uint32_t pointsPerSpin;
    163 uint32_t pointStride;
    168 uint32_t numberOfRows;
    183
    186
    190
    193{
    196 uint32_t maxPoints;
    197 uint32_t numPoints;
    208
    210
    214{
    222 uint32_t maxPoints;
    223
    227 uint32_t nPoints;
    228
    240
    245
    249 uint8_t numReturns;
    252
    262dwStatus dwSensorLidar_getAuxElementSize(uint32_t* const sizeBytes, dwLidarAuxDataType const auxType);
    263
    276
    289
    300
    322 dwSensorHandle_t const sensor);
    323
    338
    355dwStatus dwSensorLidar_processRawData(dwLidarDecodedPacket const** const data, uint8_t const* const rawData, size_t const size,
    356 dwSensorHandle_t const sensor);
    357
    370
    382dwStatus dwSensorLidar_sendMessage(uint32_t const cmd, uint8_t const* const data,
    383 size_t const size, dwSensorHandle_t const sensor);
    384
    385#ifdef __cplusplus
    386}
    387#endif
    388
    390#endif // DW_SENSORS_LIDAR_LIDAR_H_
    NVIDIA DriveWorks API: Sensors
    NVIDIA DriveWorks API: Core Types
    float float32_t
    Specifies POD types.
    Definition: BasicTypes.h:57
    int64_t dwTime_t
    Specifies a timestamp unit, in microseconds.
    Definition: BasicTypes.h:63
    #define DW_API_PUBLIC
    Definition: Exports.h:54
    dwStatus
    Status definition.
    Definition: Status.h:173
    dwTime_t hostTimestamp
    Definition: Lidar.h:215
    float32_t azimuthOffsetRad
    Definition: Lidar.h:247
    float32_t theta
    Definition: Lidar.h:142
    uint32_t packetsPerSecond
    Definition: Lidar.h:157
    dwTime_t sensorTimestamp
    Definition: Lidar.h:216
    float32_t minHorizontalAngleRad
    Definition: Lidar.h:229
    uint32_t maxPoints
    Definition: Lidar.h:196
    dwLidarPointRTHI const * pointsRTHI
    Pointer to the array of points in polar coordinates.
    Definition: Lidar.h:239
    float32_t x
    Definition: Lidar.h:133
    float32_t elevationOffsetRad
    Definition: Lidar.h:246
    float32_t y
    Definition: Lidar.h:134
    dwLidarPointXYZI const * pointsXYZI
    Pointer to the array of points in cartesian coordinates.
    Definition: Lidar.h:244
    float32_t intensity
    Definition: Lidar.h:136
    uint32_t pointStride
    Definition: Lidar.h:163
    dwLidarPointRTHI const * pointsRTHI
    Definition: Lidar.h:199
    uint32_t pointsPerPacket
    Definition: Lidar.h:161
    float32_t intensity
    Definition: Lidar.h:145
    uint32_t maxPoints
    Maximum number of points in the pointsRTHI and pointsXYZI arrays in the packet.
    Definition: Lidar.h:222
    char8_t deviceString[256]
    Definition: Lidar.h:153
    float32_t verticalAngles[DW_SENSORS_LIDAR_MAX_ROWS]
    Lidar right-handed polar coord system, vertical angles in spin frame, in rads, length of array with v...
    Definition: Lidar.h:177
    float32_t radius
    Definition: Lidar.h:144
    uint32_t pointsPerSpin
    Definition: Lidar.h:162
    float32_t verticalFOVEnd
    Definition: Lidar.h:171
    uint8_t numReturns
    Definition: Lidar.h:249
    dwLidarDecodedReturn returnData[DW_SENSORS_LIDAR_MAX_RETURNS]
    Definition: Lidar.h:250
    uint32_t packetsPerSpin
    Definition: Lidar.h:158
    float32_t horizontalAngles[DW_SENSORS_LIDAR_MAX_ROWS]
    Lidar right-handed polar coord system, intrinsic horizontal angle offsets in spin frame,...
    Definition: Lidar.h:182
    uint32_t numPoints
    Definition: Lidar.h:197
    dwLidarReturnType availableReturns
    Bitmask of return types the lidar is configured to.
    Definition: Lidar.h:185
    float32_t phi
    Definition: Lidar.h:143
    uint32_t pointsPerSecond
    Definition: Lidar.h:160
    float32_t maxHorizontalAngleRad
    Definition: Lidar.h:230
    void const * auxData[DW_LIDAR_AUX_DATA_TYPE_COUNT]
    Array of pointers to auxiliary data Supported aux data types are listed in lidar properties.
    Definition: Lidar.h:207
    float32_t horizontalFOVStart
    Definition: Lidar.h:165
    float32_t spinFrequency
    Definition: Lidar.h:155
    float32_t maxVerticalAngleRad
    Definition: Lidar.h:232
    dwTime_t duration
    Definition: Lidar.h:217
    dwLidarReturnType type
    Definition: Lidar.h:194
    uint32_t nPoints
    Current number of valid points in the pointsRTHI and pointsXYZI arrays in the packet.
    Definition: Lidar.h:227
    uint32_t numberOfRows
    Definition: Lidar.h:168
    float32_t z
    Definition: Lidar.h:135
    float32_t verticalFOVStart
    Definition: Lidar.h:170
    float32_t minVerticalAngleRad
    Definition: Lidar.h:231
    float32_t horizontalFOVEnd
    Definition: Lidar.h:166
    uint64_t validAuxInfos
    Bitmask of valid aux info fields based on enum dwLidarAuxDataType.
    Definition: Lidar.h:188
    DW_API_PUBLIC dwStatus dwSensorLidar_enableDecoding(dwSensorHandle_t const sensor)
    Enables the decoding of the Lidar packets, which incurs an additional CPU load.
    DW_API_PUBLIC dwStatus dwSensorLidar_isDecodingEnabled(bool *const enable, dwSensorHandle_t const sensor)
    Retrieves the state of packet decoding.
    DW_API_PUBLIC dwStatus dwSensorLidar_returnPacket(dwLidarDecodedPacket const *const data, dwSensorHandle_t const sensor)
    Returns the data read to the internal pool.
    DW_API_PUBLIC dwStatus dwSensorLidar_getProperties(dwLidarProperties *const lidarProperties, dwSensorHandle_t const sensor)
    Gets information about the Lidar sensor.
    #define DW_SENSORS_LIDAR_MAX_RETURNS
    Maximum number of distinct lidar returns a point cloud can contain.
    Definition: Lidar.h:128
    dwLidarAuxDataType
    An enum for every data element we could possibly return.
    Definition: Lidar.h:87
    #define DW_SENSORS_LIDAR_MAX_ROWS
    Definition: Lidar.h:148
    DW_API_PUBLIC dwStatus dwSensorLidar_getAuxElementSize(uint32_t *const sizeBytes, dwLidarAuxDataType const auxType)
    Returns size of auxiliary data element in bytes.
    DW_API_PUBLIC dwStatus dwSensorLidar_sendMessage(uint32_t const cmd, uint8_t const *const data, size_t const size, dwSensorHandle_t const sensor)
    Sends a message to Lidar sensor.
    dwLidarInvalidityFlag
    An enum for specifying invalidity flags.
    Definition: Lidar.h:112
    DW_API_PUBLIC dwStatus dwSensorLidar_processRawData(dwLidarDecodedPacket const **const data, uint8_t const *const rawData, size_t const size, dwSensorHandle_t const sensor)
    Decodes RAW data previously read and returns a pointer to it.
    DW_API_PUBLIC dwStatus dwSensorLidar_disableDecoding(dwSensorHandle_t const sensor)
    Disable the decoding of the Lidar packets, which frees additional CPU load.
    DW_API_PUBLIC dwStatus dwSensorLidar_readPacket(dwLidarDecodedPacket const **const data, dwTime_t const timeoutUs, dwSensorHandle_t const sensor)
    Reads one scan packet.
    dwLidarReturnType
    Enum to indicate a single return type.
    Definition: Lidar.h:66
    @ DW_LIDAR_AUX_DATA_TYPE_LINEID
    Definition: Lidar.h:98
    @ DW_LIDAR_AUX_DATA_TYPE_BLOCKAGEFLAG
    Definition: Lidar.h:101
    @ DW_LIDAR_AUX_DATA_TYPE_EXISTENCEPROB
    Definition: Lidar.h:93
    @ DW_LIDAR_AUX_DATA_TYPE_COUNT
    Definition: Lidar.h:105
    @ DW_LIDAR_AUX_DATA_TYPE_DATAQUALITY
    Definition: Lidar.h:99
    @ DW_LIDAR_AUX_DATA_TYPE_SENSORID
    Definition: Lidar.h:102
    @ DW_LIDAR_AUX_DATA_TYPE_CROSSTALKPROB
    Definition: Lidar.h:94
    @ DW_LIDAR_AUX_DATA_TYPE_SNR
    Definition: Lidar.h:88
    @ DW_LIDAR_AUX_DATA_TYPE_DETECTORID
    Definition: Lidar.h:97
    @ DW_LIDAR_AUX_DATA_TYPE_V_MPS
    Definition: Lidar.h:92
    @ DW_LIDAR_AUX_DATA_TYPE_VALIDITY
    Definition: Lidar.h:103
    @ DW_LIDAR_AUX_DATA_TYPE_SCANCHECKPOINT
    Definition: Lidar.h:100
    @ DW_LIDAR_AUX_DATA_TYPE_ZONEID
    Definition: Lidar.h:96
    @ DW_LIDAR_AUX_DATA_TYPE_SIGNALWIDTH
    Definition: Lidar.h:89
    @ DW_LIDAR_AUX_DATA_TYPE_SIGNALHEIGHT
    Definition: Lidar.h:90
    @ DW_LIDAR_AUX_DATA_TYPE_TIME
    Definition: Lidar.h:91
    @ DW_LIDAR_AUX_DATA_TYPE_FORCE32
    Definition: Lidar.h:106
    @ DW_LIDAR_AUX_DATA_TYPE_NOISELEVEL
    Definition: Lidar.h:95
    @ DW_LIDAR_AUX_DATA_TYPE_INVALIDITYFLAG
    Definition: Lidar.h:104
    @ DW_LIDAR_INVALIDITY_VEND
    Vendor-specific validity flags.
    Definition: Lidar.h:120
    @ DW_LIDAR_INVALIDITY_INVALID
    Point is not valid if any of flags are set.
    Definition: Lidar.h:123
    @ DW_LIDAR_INVALIDITY_DW
    DriveWorks-specific validity flags.
    Definition: Lidar.h:117
    @ DW_LIDAR_INVALIDITY_NONE
    No flags are set.
    Definition: Lidar.h:114
    @ DW_LIDAR_RETURN_TYPE_5
    Definition: Lidar.h:80
    @ DW_LIDAR_RETURN_TYPE_FIRST
    Definition: Lidar.h:69
    @ DW_LIDAR_RETURN_TYPE_6
    Definition: Lidar.h:81
    @ DW_LIDAR_RETURN_TYPE_1
    Definition: Lidar.h:76
    @ DW_LIDAR_RETURN_TYPE_ANY
    Definition: Lidar.h:67
    @ DW_LIDAR_RETURN_TYPE_STRONGEST
    Definition: Lidar.h:71
    @ DW_LIDAR_RETURN_TYPE_4
    Definition: Lidar.h:79
    @ DW_LIDAR_RETURN_TYPE_LAST
    Definition: Lidar.h:70
    @ DW_LIDAR_RETURN_TYPE_2
    Definition: Lidar.h:77
    @ DW_LIDAR_RETURN_TYPE_ABS_STRONGEST
    Definition: Lidar.h:72
    @ DW_LIDAR_RETURN_TYPE_3
    Definition: Lidar.h:78
    Defines the structure for a decoded lidar packet.
    Definition: Lidar.h:214
    Defines the return structure for an extended decoded lidar packet.
    Definition: Lidar.h:193
    Holds a Lidar point cloud RTHI and the associated intensity.
    Definition: Lidar.h:141
    Holds a Lidar point cloud XYZ and the associated intensity.
    Definition: Lidar.h:132
    Defines the properties of the lidar.
    Definition: Lidar.h:152
    struct dwSensorObject * dwSensorHandle_t
    Handle representing a sensor.
    Definition: Sensors.h:86
    人人超碰97caoporen国产