DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

MapStreamDataFrame.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-2020 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 
31 #ifndef DW_MAPSTREAM_DATAFRAME_H_
32 #define DW_MAPSTREAM_DATAFRAME_H_
33 
34 #include <dw/core/Types.h>
35 #include <dw/world/TrafficSigns.h>
37 #include "MapPerceptionTypes.h"
38 #include <dw/image/Image.h>
40 #include <dw/perception/mapping/common/UUID.h>
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
64 #define DW_MAPSTREAM_POLYLINE_MAX_COUNT DW_LANEMARK_POINT_MAX_COUNT
65 #define DW_MAPSTREAM_INVALID_TRACK_ID -1
66 #define DW_MAPSTREAM_PROTOBUF_FRAME_FILENAME_EXTENSION "proto"
67 
68 typedef struct dwMapStreamMetadata
69 {
70  dwMapStreamUUID driveId;
71  const char* rigFilename;
73 
84 
85 typedef struct dwMapStreamPolyline
86 {
87  uint32_t pointCount;
90 
101 
105 typedef struct dwMapStreamCameraLane
106 {
109 
111  int32_t trackId;
112 
115 
118 
122 
133 
138 #define DW_MAPSTREAM_INVALID_SIGN_ID 0xFFFFFFFFFFFFFFFF
139 
140 #define DW_MAPSTREAM_SIGN_GEOMETRY_SIZE 4
141 
142 typedef struct dwMapStreamCameraSign
143 {
145  uint64_t signId;
146 
149 
151  uint32_t signClassID;
152 
155 
158 
162 
173 
177 typedef struct dwMapStreamCameraPole
178 {
181 
184 
188 
199 
204 {
206  int32_t id;
207 
210 
213 
217 
228 
233 {
236 
240 
251 
256 {
257  uint32_t pointCount;
262 
273 
277 typedef struct dwMapStreamCameraPath
278 {
280  int32_t trackId;
281 
285 
296 
301 {
304 
307 
310 
322 
324 #define DW_MAPSTREAM_LIDAR_VERSION_1 1
326 
328 #define DW_MAPSTREAM_RADAR_VERSION_1 1
330 
335 {
336  uint32_t version;
337  uint32_t numPoints;
340 
351 
365  uint32_t version, uint32_t numPoints, dwVector4f* points);
366 
371 {
372  uint32_t version;
373  uint32_t numPoints;
376 
387 
401  uint32_t version, uint32_t numPoints, dwVector4f* points);
402 
404 #define DW_MAPSTREAM_CAMERA_VERSION_1 1
405 #define DW_MAPSTREAM_CAMERA_VERSION_2 2
406 #define DW_MAPSTREAM_CAMERA_VERSION_3 3
407 #define DW_MAPSTREAM_CAMERA_VERSION_4 4
408 const uint32_t DW_MAPSTREAM_CAMERA_VERSION_CURRENT = DW_MAPSTREAM_CAMERA_VERSION_4;
409 
413 #define DW_MAPSTREAM_LANE_MAX_COUNT DW_LANEMARK_MAX_COUNT
414 #define DW_MAPSTREAM_SIGNS_MAX_COUNT 20
415 #define DW_MAPSTREAM_POLES_MAX_COUNT 20
416 #define DW_MAPSTREAM_ROADMARKS_MAX_COUNT DW_LANDMARK_MAX_COUNT
417 #define DW_MAPSTREAM_WAIT_CONDITIONS_MAX_COUNT 10
418 #define DW_MAPSTREAM_TRAFFIC_LIGHT_STATE_MAX_COUNT 10
419 #define DW_MAPSTREAM_PATHS_MAX_COUNT DW_LANEGRAPH_MAX_LANE_CNT_IN_LANEGRAPH
420 #define DW_MAPSTREAM_SPEEDBUMPS_MAX_COUNT 4
421 #define DW_MAPSTREAM_IMAGE_FILENAME_MAX_LENGTH 100
422 
424 {
425  uint32_t version;
426  uint32_t numLanes;
428  uint32_t numSigns;
430  uint32_t numPoles;
432  uint32_t numRoadMarks;
436  uint32_t numPaths;
438  uint32_t numSpeedbumps;
442 
453 
454 typedef enum {
460 
464 typedef struct dwMapStreamLandmarks
465 {
473 
484 
488 typedef struct dwMapStreamOutput
489 {
490  uint32_t driveId;
492 
494 
499 
503 
507 
518 
521 #ifdef __cplusplus
522 }
523 #endif
524 
525 #endif // DW_MAPSTREAM_DATAFRAME_H_
Data structures for Lidar landmarks represented as point cloud with X,Y,Z,I values.
uint64_t signId
Sign identifier.
dwMapPerceptionLaneMarkType
Lane mark types supported by MapPerception.
Mapstream output data frame.
NVIDIA DriveWorks API: Core Types
float float32_t
Specifies POD types.
Definition: Types.h:70
DW_API_PUBLIC dwStatus dwMapStreamCameraPole_default(dwMapStreamCameraPole *pole)
Factory method to generate a default dwMapStreamCameraPole object.
dwMapPerceptionWaitConditionType
Lane mark types supported by MapPerception.
dwMapPerceptionGeoPose gpsPose
timestamp for current frame
dwMapPerceptionRoadMarkType roadmarkType
Category of the road marking.
Data structures for Camera speedbumps with algorithm type, start position, and end position...
Defines a four-element single-precision floating point vector.
Definition: Types.h:335
Defines a three-element floating-point vector.
Definition: Types.h:319
#define DW_MAPSTREAM_IMAGE_FILENAME_MAX_LENGTH
const uint32_t DW_MAPSTREAM_RADAR_VERSION_CURRENT
#define DW_MAPSTREAM_SPEEDBUMPS_MAX_COUNT
dwMapPerceptionWaitConditionType waitConditionType
Category of the type of wait conidtion.
int32_t trackId
trackId of the lane marking.
#define DW_MAPSTREAM_PATHS_MAX_COUNT
float32_t distanceToEnd
distance to end of speed bump from rig
DW_API_PUBLIC dwStatus dwMapStreamOutput_default(dwMapStreamOutput *output)
Factory method to generate a default dwMapStreamOutput object.
int32_t trackId
trackId of the lane marking.
DW_API_PUBLIC dwStatus dwMapStreamRadarLandmarks_init(dwMapStreamRadarLandmarks *radarLandmarks, uint32_t version, uint32_t numPoints, dwVector4f *points)
Factory method to generate a custom-initialized dwMapStreamLidarLandmarks object. ...
dwMapStreamPolyline geometry
polyline defining the geometery of the road marking
NVIDIA DriveWorks API: Image Conversion and Streaming Functionality
DW_API_PUBLIC dwStatus dwMapStreamPolyline_default(dwMapStreamPolyline *params)
Factory method to generate a default dwMapStreamPolyline object.
DW_API_PUBLIC dwStatus dwMapStreamCameraWaitConditions_default(dwMapStreamCameraWaitConditions *waitConditions)
Factory method to generate a default dwMapStreamCameraWaitConditions object.
dwTransformation3f relativePose
Absolute 6DOF global pose from GPS in ENU frame.
dwVector3f signCenter
Center position of the object.
#define DW_MAPSTREAM_POLYLINE_MAX_COUNT
Polyline defined by a list of dwVector3f in cartesian coordinates.
uint32_t signClassID
Traffic sign classID. Stored as unsigned integer, which is looked up through SignNet interface for la...
Specifies a 3D rigid transformation.
Definition: Types.h:462
dwLanePositionType
Definition of the position of a lane marking in respect to the ego lane.
uint32_t numSigns
3D Lane data for current frame
DW_API_PUBLIC dwStatus dwMapStreamCameraSign_default(dwMapStreamCameraSign *sign)
Factory method to generate a default dwMapStreamCameraSign object.
dwStatus
Status definition.
Definition: Status.h:166
dwVector4f * points
number of points in array
NVIDIA DriveWorks API: LaneGraph
NVIDIA DriveWorks API: Traffic Sign types enum
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: Types.h:82
DW_API_PUBLIC dwStatus dwMapStreamLandmarks_default(dwMapStreamLandmarks *landmarks)
Factory method to generate a default dwMapStreamCameraLandmarks object.
dwMapPerceptionSignType signType
Sign type.
#define DW_MAPSTREAM_RADAR_VERSION_1
version control constants for back compat
dwVector4f * points
number of points in array
DW_API_PUBLIC dwStatus dwMapStreamCameraLandmarks_default(dwMapStreamCameraLandmarks *cameraLandmarks)
Factory method to generate a default dwMapStreamCameraLandmarks object.
Data structures for Camera paths represented as polylines with topology.
DW_API_PUBLIC dwStatus dwMapStreamCameraPath_default(dwMapStreamCameraPath *paths)
Factory method to generate a default dwMapStreamCameraPath object.
dwMapStreamCameraLandmarks cameraLandmarks
#define DW_MAPSTREAM_LANE_MAX_COUNT
Data structures for Camera landmarks which includes lanes.
NVIDIA DriveWorks Datastructure : MapPerception Datastructure
Data structures for Camera Wait conditions represented as polylines with topology.
Data structures for representing mapping landmarks from different sensors like camera, Lidar.
dwMapPerceptionRoadMarkType
Road mark types supported by MapPerception.
dwMapStreamRadarLandmarks radarLandmarks
Defines a 3x3 matrix of floating point numbers.
Definition: Types.h:237
dwMatrix3f poleBottomCovariance
Covariance for the bottom of the pole.
dwMapstreamSubstreamType
float32_t distanceToStart
distance to start of speed bump from rig
dwMatrix3f relativeTranslationCovariance
Whether relativeTranslationCovariance and relativeRotationCovariance are valid.
dwMapPerceptionLaneMarkType lineType
Category of the line type of lane marking.
DW_API_PUBLIC dwStatus dwMapStreamCameraLane_default(dwMapStreamCameraLane *lane)
Factory method to generate a default dwMapStreamCameraLane object.
Data structures for Radar landmarks represented as point cloud with X,Y,Z,RCS values.
dwVector3f poleTop
The top of the pole (this value is currently faked).
Data structure of dwMapStreamPathPolyline which define the geometry of a dwMapStreamCameraPath.
DW_API_PUBLIC dwStatus dwMapStreamLidarLandmarks_init(dwMapStreamLidarLandmarks *lidarLandmarks, uint32_t version, uint32_t numPoints, dwVector4f *points)
Factory method to generate a custom-initialized dwMapStreamLidarLandmarks object. ...
#define DW_MAPSTREAM_WAIT_CONDITIONS_MAX_COUNT
dwVector3f poleBottom
The bottom of the pole.
dwMapPerceptionSignType
Camera sign types supported by MapPerception.
dwMapStreamLandmarks * landmarksBuffer
3x3 covariance of the rotation (order: roll, pitch, yaw) [rad].
DW_API_PUBLIC dwStatus dwMapStreamPathPolyline_default(dwMapStreamPathPolyline *pathPolyline)
Factory method to generate a default dwMapStreamPathPolyline object.
#define DW_MAPSTREAM_SIGNS_MAX_COUNT
dwMapStreamUUID driveId
Data structure to represent absolute GPS Pose in ENU system.
dwMapStreamPolyline signGeometry
Geometry of sign object, in counter clockwise order.
dwTime_t timestamp
An ID for a drive session.
dwMapStreamPolyline geometry
polyline defining the geometery of the lane divider
DW_API_PUBLIC dwStatus dwMapStreamCameraSpeedbumps_default(dwMapStreamCameraSpeedbumps *speedbumps)
Factory method to generate a default dwMapStreamCameraSpeedbumps object.
float32_t distance
distance to wait condition from rig
DW_API_PUBLIC dwStatus dwMapStreamMetadata_default(dwMapStreamMetadata *metadata)
Factory method to generate a default dwMapStreamMetadata object.
dwMatrix3f signCenterCovariance
Center position covariance.
NVIDIA DriveWorks API: Landmark Detector Methods
const uint32_t DW_MAPSTREAM_LIDAR_VERSION_CURRENT
#define DW_MAPSTREAM_POLES_MAX_COUNT
dwMapPerceptionSpeedbumpType detectorType
encodes which method detected the hazard
DW_API_PUBLIC dwStatus dwMapStreamLidarLandmarks_default(dwMapStreamLidarLandmarks *lidarlandmarks)
Factory method to generate a default dwMapStreamLidarLandmarks object.
dwMatrix3f relativeRotationCovariance
3x3 covariance of the translation (x,y,z) [m].
dwMapPerceptionSpeedbumpType
Camera Speed bump types supported by MapPerception.
DW_API_PUBLIC dwStatus dwMapStreamCameraRoadMark_default(dwMapStreamCameraRoadMark *roadmark)
Factory method to generate a default dwMapStreamCameraRoadMark object.
dwMapStreamLidarLandmarks lidarLandmarks
dwMapStreamPathPolyline geometry
polyline defining the geometery of the path
#define DW_MAPSTREAM_ROADMARKS_MAX_COUNT
Data structures holding a reconstructed road marking in 3D.
Data structures holding a reconstructed pole in 3D.
dwLanePositionType positionType
Category of the position of lane marking.
int32_t id
id of the road marking.
#define DW_API_PUBLIC
Definition: Exports.h:56
uint32_t numPoles
3D signs data for current frame
#define DW_MAPSTREAM_LIDAR_VERSION_1
version control constants for back compat
DW_API_PUBLIC dwStatus dwMapStreamRadarLandmarks_default(dwMapStreamRadarLandmarks *radarLandmarks)
Factory method to generate a default dwMapStreamRadarLandmarks object.
Data structures for Camera lanes represented as polylines with topology.