DriveWorks SDK Reference

| 0.6.67 Release

Radar.h
Go to the documentation of this file.
1 // This code contains NVIDIA Confidential Information and is disclosed
3 // under the Mutual Non-Disclosure Agreement.
4 //
5 // Notice
6 // ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
7 // NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
8 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
9 // MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
10 //
11 // NVIDIA Corporation assumes no responsibility for the consequences of use of such
12 // information or for any infringement of patents or other rights of third parties that may
13 // result from its use. No license is granted by implication or otherwise under any patent
14 // or patent rights of NVIDIA Corporation. No third party distribution is allowed unless
15 // expressly authorized by NVIDIA. Details are subject to change without notice.
16 // This code supersedes and replaces all information previously supplied.
17 // NVIDIA Corporation products are not authorized for use as critical
18 // components in life support devices or systems without express written approval of
19 // NVIDIA Corporation.
20 //
21 // Copyright (c) 2017 NVIDIA Corporation. All rights reserved.
22 //
23 // NVIDIA Corporation and its licensors retain all intellectual property and proprietary
24 // rights in and to this software and related documentation and any modifications thereto.
25 // Any use, reproduction, disclosure or distribution of this software and related
26 // documentation without an express license agreement from NVIDIA Corporation is
27 // strictly prohibited.
28 //
30 
46 #ifndef DW_SENSORS_RADAR_RADAR_H__
47 #define DW_SENSORS_RADAR_RADAR_H__
48 
49 #include <dw/core/Config.h>
50 #include <dw/core/Types.h>
51 
52 #include <dw/sensors/Sensors.h>
53 
54 #pragma pack(push,1) // Make sure we have consistent structure packings
55 
57 typedef enum
58 {
61 
64 
67 
70 
73 } dwRadarRange;
74 
76 typedef enum
77 {
80 
83 
86 
90 
92 typedef enum
93 {
96 
99 
102 
105 
109 
111 typedef struct
112 {
115 
119 
121 typedef struct
122 {
125 
128 
131 
134 
137 
140 
143 
146 
149 
152 
155 
158 
162 
163 typedef struct
164 {
166  uint32_t id;
167 
169  uint32_t age;
170 
173 
176 
179 
182 
185 
188 
191 
194 
197 
200 
203 
206 
209 
212 } dwRadarTrack;
213 
215 typedef struct
216 {
219 
222 
225 
228 
231 
234 
235  /*
236  * Deviation of azimuth angle for returns (radians)
237  * This is the deviation of the measured azimuth from what would be
238  * expected based on the geometric boresight of the sensor.
239  */
240  float32_t azimuthDeviation[DW_RADAR_RANGE_COUNT];
241 
242  /*
243  * Deviation of elevation angle for returns (radians)
244  * This is the deviation of the elevation azimuth from what would be
245  * expected based on the geometric boresight of the sensor.
246  */
247  float32_t elevationDeviation[DW_RADAR_RANGE_COUNT];
248 
251 
254 
257 
260 } dwRadarStatus;
261 
263 typedef struct
264 {
266  uint32_t scanIndex;
267 
270 
273 
276 
278  uint32_t numReturns;
279 
281  void *data;
282 } dwRadarScan;
283 
285 typedef struct
286 {
289 
292 
295 
299 
301 typedef struct
302 {
304  uint32_t sensorId;
305 
307  dwTransformation radarPosition;
308 
311 
314 
318 
319 #pragma pack(pop)
320 
322 typedef struct
323 {
325  uint8_t isDecodingOn;
326 
328  uint32_t numScanTypes;
329 
331  uint32_t supportedScanTypes[DW_RADAR_RETURN_TYPE_COUNT][DW_RADAR_RANGE_COUNT];
332 
334  uint32_t packetsPerScan;
335 
338 
344  uint32_t scansPerSecond;
345 
349 
350 #ifdef __cplusplus
351 extern "C" {
352 #endif
353 
367 
380 
398  const dwTime_t timeout_us, dwSensorHandle_t sensor);
399 
412 
427 dwStatus dwSensorRadar_processRawData(const dwRadarScan **data, const uint8_t *rawData, size_t size,
428  dwSensorHandle_t sensor);
429 
441 
453 
465 
466 #ifdef __cplusplus
467 }
468 #endif
469 
471 #endif // DW_SENSORS_RADAR_RADAR_H__
float32_t rcs
Compensated reflection amplitude (dB)
Definition: Radar.h:211
float32_t Ax
X-component (m/s^2) of the acceleration.
Definition: Radar.h:190
uint32_t numScanTypes
Number of supported scan types.
Definition: Radar.h:328
DW_API_PUBLIC dwStatus dwSensorRadar_setDataDecoding(dwBool enable, dwSensorHandle_t sensor)
Enables/disables the decoding of the Radar packets, which incurs in additional CPU load...
float32_t acceleration
Longitudinal acceleration (m/s^2)
Definition: Radar.h:291
float32_t Ay
Y-component (m/s^2) of the aceleration in the azimuth direction.
Definition: Radar.h:139
float32_t radius
Radial distance (m)
Definition: Radar.h:145
dwRadarScanType scanType
Type of scan.
Definition: Radar.h:275
float32_t yaw
Yaw angle of sensor (radians)
Definition: Radar.h:227
Short Range.
Definition: Radar.h:60
float32_t radialVelocity
Radial velocity (m/s)
Definition: Radar.h:205
float32_t x
X-position (m)
Definition: Radar.h:124
NVIDIA DriveWorks API: Core Types
Defines the structure for reporting sensor mount position.
Definition: Radar.h:301
Defines the structure for a complete radar scan.
Definition: Radar.h:263
dwBool elevationValidity
Indicates validity of the elevation angle.
Definition: Radar.h:160
DW_API_PUBLIC dwStatus dwSensorRadar_readScan(const dwRadarScan **data, const dwRadarScanType type, const dwTime_t timeout_us, dwSensorHandle_t sensor)
Reads a one scan chunk.
float float32_t
Specifies POD types.
Definition: Types.h:77
uint8_t isDecodingOn
Indicates whether decoding is enabled.
Definition: Radar.h:325
dwRadarReturnType returnType
Type of radar return.
Definition: Radar.h:114
Processed tracker output.
Definition: Radar.h:82
dwRadarRange range
Scan range.
Definition: Radar.h:117
DW_API_PUBLIC dwStatus dwSensorRadar_setVehicleState(dwRadarVehicleState *data, dwSensorHandle_t sensor)
Sends vehicle dynamics information to the radar.
float32_t Vx
X-component (m/s) of the velocity.
Definition: Radar.h:184
dwBool sensorOK
Indicaes if the is OK.
Definition: Radar.h:253
float32_t Vx
X-component (m/s) of the velocity in the azimuth direction.
Definition: Radar.h:130
uint64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: Types.h:89
float32_t y
Y-position (m)
Definition: Radar.h:181
dwRadarDynamicState dynamicState
Dynamic state of the object.
Definition: Radar.h:175
float32_t roll
Roll angle of sensor (radians)
Definition: Radar.h:233
float32_t wheelbase
Size of wheel-base (m)
Definition: Radar.h:310
float32_t x
X-position (m) of sensor mounting in AUTOSAR-coordinates from CoG.
Definition: Radar.h:218
float32_t Vy
Y-component (m/s) of the velocity in the azimuth direction.
Definition: Radar.h:133
float32_t radius
Radial distance (m)
Definition: Radar.h:202
float32_t Ay
Y-component (m/s^2) of the aceleration.
Definition: Radar.h:193
Long Range.
Definition: Radar.h:66
uint32_t id
Radar-provided track id.
Definition: Radar.h:166
float32_t damping
Damping of radome (db)
Definition: Radar.h:313
DW_API_PUBLIC dwStatus dwSensorRadar_getProperties(dwRadarProperties *radarProperties, dwSensorHandle_t sensor)
Gets information about the Radar sensor.
struct dwSensorObject * dwSensorHandle_t
Handle representing a sensor.
Definition: Sensors.h:80
float32_t Vy
Y-component (m/s) of the velocity.
Definition: Radar.h:187
uint32_t scanIndex
Sensor-provided scan index.
Definition: Radar.h:266
dwTime_t sensorTimestamp
Sensor timestamp for this scan (us)
Definition: Radar.h:269
dwStatus
Status definition.
Definition: Status.h:167
NVIDIA DriveWorks API: Sensors
uint32_t numReturns
Number of radar returns in this scan.
Definition: Radar.h:278
void * data
Pointer to the array of returns (to be casted based on return type)
Definition: Radar.h:281
uint32_t maxReturnsPerScan
Max # of returns in any gien scan.
Definition: Radar.h:337
dwRadarDynamicState
Defines the dynamic state of the radar return.
Definition: Radar.h:92
Defines the type of scan (combination of return type & range)
Definition: Radar.h:111
Defines the return structure for sensor status messages.
Definition: Radar.h:215
float32_t radialVelocity
Radial velocity (m/s)
Definition: Radar.h:148
float32_t azimuthRate
Rate of change of azimuth angle (radians/s)
Definition: Radar.h:199
DW_API_PUBLIC dwStatus dwSensorRadar_setMountPosition(dwRadarMountPosition *data, dwSensorHandle_t sensor)
Sends vehicle dynamics information to the radar.
Defines the properties of the radar.
Definition: Radar.h:322
Unknown Range.
Definition: Radar.h:69
uint32_t packetsPerScan
of packets per scan (Note: will be deprecated soon)
Definition: Radar.h:334
Medium Range.
Definition: Radar.h:63
float32_t azimuth
Azimuth angle (radians)
Definition: Radar.h:196
dwBool sensorDisturbed
Indicates if the sensor is disturbed due to interference.
Definition: Radar.h:256
uint8_t dwBool
Definition: Types.h:79
dwRadarReturnType
Defines the type of radar return.
Definition: Radar.h:76
DW_API_PUBLIC dwStatus dwSensorRadar_toggleScanType(dwBool enable, dwRadarScanType scanType, dwSensorHandle_t sensor)
Enables/Disables a scan type for the radar sensor.
float32_t Ax
X-component (m/s^2) of the acceleration in the azimuth direction.
Definition: Radar.h:136
float32_t azimuth
Azimuth angle (radians)
Definition: Radar.h:142
float32_t radialAcceleration
Radial acceleration (m/s^2)
Definition: Radar.h:151
float32_t confidence
Confidence of object existance (range: 0-1);.
Definition: Radar.h:172
uint32_t inputPacketsPerSecond
Number of input odometry packets per second.
Definition: Radar.h:347
dwRadarRange
Defines the range of radar return.
Definition: Radar.h:57
DW_API_PUBLIC dwStatus dwSensorRadar_returnScan(const dwRadarScan *scan, dwSensorHandle_t sensor)
Returns the data read to the internal pool.
uint32_t age
Age of tracked object (in scans)
Definition: Radar.h:169
float32_t y
Y-position (m)
Definition: Radar.h:127
dwTransformation radarPosition
Radar position.
Definition: Radar.h:307
float32_t x
X-position (m)
Definition: Radar.h:178
float32_t y
Y-position (m) of sensor mounting in AUTOSAR-coordinates from CoG.
Definition: Radar.h:221
float32_t pitch
Pitch angle of sensor (radians)
Definition: Radar.h:230
Defines the structure for reporting current vehicle dynamics state.
Definition: Radar.h:285
Sensor status information.
Definition: Radar.h:85
dwBool sensorAligned
Indicates if the sensor is aligned.
Definition: Radar.h:250
float32_t yawRate
Yaw rate (radians/s)
Definition: Radar.h:297
float32_t rcs
Reflection amplitude (dB)
Definition: Radar.h:154
float32_t radialAcceleration
Radial acceleration (m/s^2)
Definition: Radar.h:208
Defines the return structure for a raw radar detection.
Definition: Radar.h:121
uint32_t scansPerSecond
Number of scans (of a particular type) per second.
Definition: Radar.h:344
dwTime_t hostTimestamp
Host timestamp at reception of first packet belonging to this scan (us)
Definition: Radar.h:272
float32_t z
Z-position (m) of sensor mounting in AUTOSAR-coordinates from CoG.
Definition: Radar.h:224
#define DW_API_PUBLIC
Definition: Exports.h:76
dwBool isReversed
Indicates if the sensor is reversed from its default orientation.
Definition: Radar.h:316
uint32_t sensorId
Id of the sensor (vendor-specific)
Definition: Radar.h:304
dwBool sensorBlock
Indicates if the sensor is blocked.
Definition: Radar.h:259
float32_t velocity
Longitudinal velocity (m/s)
Definition: Radar.h:288
DW_API_PUBLIC dwStatus dwSensorRadar_processRawData(const dwRadarScan **data, const uint8_t *rawData, size_t size, dwSensorHandle_t sensor)
Decodes RAW data previously read onto the application side structure.
float32_t lateralAcceleration
Lateral acceleration (m/s^2)
Definition: Radar.h:294
Raw detection.
Definition: Radar.h:79
float32_t elevationAngle
Angle of elevation (radians)
Definition: Radar.h:157