DriveWorks SDK Reference
3.5.78 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 
123 
134 
139 #define DW_MAPSTREAM_INVALID_SIGN_ID 0xFFFFFFFFFFFFFFFF
140 
141 #define DW_MAPSTREAM_SIGN_GEOMETRY_SIZE 4
142 
143 typedef struct dwMapStreamCameraSign
144 {
146  uint64_t signId;
147 
150 
152  uint32_t signClassID;
153 
156 
159 
163 
174 
176 {
177  // Sign identifier.
178  uint64_t signId;
179 
180  // Light state enumeration value.
181  uint32_t state;
182 
184 
195 
199 typedef struct dwMapStreamCameraPole
200 {
203 
206 
210 
221 
226 {
228  int32_t trackId;
229 
232 
235 
237 
248 
253 {
255  int32_t id;
256 
259 
262 
266 
277 
282 {
285 
289 
300 
305 {
306  uint32_t pointCount;
311 
322 
326 typedef struct dwMapStreamCameraPath
327 {
329  int32_t trackId;
330 
334 
345 
350 {
353 
356 
359 
371 
373 #define DW_MAPSTREAM_LIDAR_VERSION_1 1
375 
377 #define DW_MAPSTREAM_CAMERA_POINT_CLOUD_VERSION_1 1
379 
381 #define DW_MAPSTREAM_RADAR_VERSION_1 1
383 
388 {
389  uint32_t version;
390  uint32_t numPoints;
393 
404 
418  uint32_t version, uint32_t numPoints, dwVector4f* points);
419 
424 {
425  uint32_t version;
426  uint32_t numPoints;
429 
440 
453 dwStatus dwMapStreamCameraPointCloud_init(dwMapStreamCameraPointCloud* cameraPointCloud, uint32_t version, uint32_t numPoints, dwVector4f* points);
454 
459 {
460  uint32_t version;
461  uint32_t numPoints;
464 
475 
489  uint32_t version, uint32_t numPoints, dwVector4f* points);
490 
492 #define DW_MAPSTREAM_CAMERA_VERSION_1 1
493 #define DW_MAPSTREAM_CAMERA_VERSION_2 2
494 #define DW_MAPSTREAM_CAMERA_VERSION_3 3
495 #define DW_MAPSTREAM_CAMERA_VERSION_4 4
496 const uint32_t DW_MAPSTREAM_CAMERA_VERSION_CURRENT = DW_MAPSTREAM_CAMERA_VERSION_4;
497 
501 #define DW_MAPSTREAM_LANE_MAX_COUNT DW_LANEMARK_MAX_COUNT
502 #define DW_MAPSTREAM_SIGNS_MAX_COUNT 20
503 #define DW_MAPSTREAM_TRAFFIC_LIGHT_STATES_MAX_COUNT 40
504 #define DW_MAPSTREAM_POLES_MAX_COUNT 20
505 #define DW_MAPSTREAM_WAITLINES_MAX_COUNT 20
506 #define DW_MAPSTREAM_ROADMARKS_MAX_COUNT DW_LANDMARK_MAX_COUNT
507 #define DW_MAPSTREAM_WAIT_CONDITIONS_MAX_COUNT 10
508 #define DW_MAPSTREAM_PATHS_MAX_COUNT DW_LANEGRAPH_MAX_LANE_CNT_IN_LANEGRAPH
509 #define DW_MAPSTREAM_SPEEDBUMPS_MAX_COUNT 4
510 #define DW_MAPSTREAM_IMAGE_FILENAME_MAX_LENGTH 100
511 
513 {
514  uint32_t version;
515  uint32_t numLanes;
517  uint32_t numSigns;
521  uint32_t numPoles;
523  uint32_t numWaitLines;
525  uint32_t numRoadMarks;
529  uint32_t numPaths;
531  uint32_t numSpeedbumps;
535 
546 
547 typedef enum {
554 
558 typedef struct dwMapStreamLandmarks
559 {
569 
580 
584 typedef struct dwMapStreamOutput
585 {
586  uint32_t driveId;
588 
590 
595 
599 
603 
614 
617 #ifdef __cplusplus
618 }
619 #endif
620 
621 #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.
Data structures holding a reconstructed wait line in 3D.
dwMapPerceptionLaneMarkType
Lane mark types supported by MapPerception.
Mapstream output data frame.
dwVector4f * points
number of points in array
NVIDIA DriveWorks API: Core Types
uint32_t numTrafficLightStates
3D signs data for current frame
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
Defines a two-element single-precision floating-point vector.
Definition: Types.h:291
#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.
dwMapStreamCameraPointCloud cameraPointCloud
int32_t trackId
trackId of the lane marking.
#define DW_MAPSTREAM_TRAFFIC_LIGHT_STATES_MAX_COUNT
#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 wait line marking.
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.
DW_API_PUBLIC dwStatus dwMapStreamCameraPointCloud_default(dwMapStreamCameraPointCloud *cameraPointCloud)
Factory method to generate a default dwMapStreamCameraPointCloud object.
DW_API_PUBLIC dwStatus dwMapStreamCameraWaitLine_default(dwMapStreamCameraWaitLine *waitLine)
Factory method to generate a default dwMapStreamCameraWaitLine object.
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
#define DW_MAPSTREAM_WAITLINES_MAX_COUNT
DW_API_PUBLIC dwStatus dwMapStreamCameraSign_default(dwMapStreamCameraSign *sign)
Factory method to generate a default dwMapStreamCameraSign object.
dwStatus
Status definition.
Definition: Status.h:178
dwVector4f * points
number of points in array
NVIDIA DriveWorks API: LaneGraph
const uint32_t DW_MAPSTREAM_CAMERA_POINT_CLOUD_VERSION_CURRENT
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.
dwMapStreamPolyline geometry
polyline defining the geometery of the wait line
dwMapPerceptionRoadMarkType
Road mark types supported by MapPerception.
dwMapStreamRadarLandmarks radarLandmarks
Data structures for Camera VO landmarks represented as point cloud with X,Y,Z,I values.
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
dwMapPerceptionIntersectionType
Intersection types supported by MapPerception.
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. ...
DW_API_PUBLIC dwStatus dwMapStreamCameraPointCloud_init(dwMapStreamCameraPointCloud *cameraPointCloud, uint32_t version, uint32_t numPoints, dwVector4f *points)
Factory method to generate a custom-initialized dwMapStreamCameraPointCloud 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.
DW_API_PUBLIC dwStatus dwMapStreamCameraTrafficLightState_default(dwMapStreamCameraTrafficLightState *trafficLightState)
Factory method to generate a default dwMapStreamCameraTrafficLightState 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
dwMapPerceptionIntersectionType intersectionType
Category of the intersection type of wait line marking.
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
#define DW_MAPSTREAM_CAMERA_POINT_CLOUD_VERSION_1
version control constants for back compat
#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.