Apollo  6.0
Open source self driving car software
common_define.h
Go to the documentation of this file.
1 /* Copyright 2017 The Apollo Authors. All Rights Reserved.
2 
3 Licensed under the Apache License, Version 2.0 (the "License");
4 you may not use this file except in compliance with the License.
5 You may obtain a copy of the License at
6 
7  http://www.apache.org/licenses/LICENSE-2.0
8 
9 Unless required by applicable law or agreed to in writing, software
10 distributed under the License is distributed on an "AS IS" BASIS,
11 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 See the License for the specific language governing permissions and
13 limitations under the License.
14 =========================================================================*/
15 #pragma once
16 
17 #include <string>
18 #include <unordered_set>
19 #include <vector>
20 
21 #include "cyber/common/log.h"
22 #include "modules/map/proto/map.pb.h"
23 
24 namespace apollo {
25 namespace hdmap {
26 namespace adapter {
27 
28 using PbHeader = apollo::hdmap::Header;
29 using PbRoad = apollo::hdmap::Road;
30 using PbRoadSection = apollo::hdmap::RoadSection;
31 using PbLane = apollo::hdmap::Lane;
32 using PbJunction = apollo::hdmap::Junction;
33 using PbSignal = apollo::hdmap::Signal;
34 using PbSubSignal = apollo::hdmap::Subsignal;
35 using PbRSU = apollo::hdmap::RSU;
36 using PbCrosswalk = apollo::hdmap::Crosswalk;
37 using PbParkingSpace = apollo::hdmap::ParkingSpace;
38 using PbSpeedBump = apollo::hdmap::SpeedBump;
39 using PbStopSign = apollo::hdmap::StopSign;
40 using PbYieldSign = apollo::hdmap::YieldSign;
41 using PbObjectOverlapInfo = apollo::hdmap::ObjectOverlapInfo;
42 using PbOverlap = apollo::hdmap::Overlap;
43 using PbClearArea = apollo::hdmap::ClearArea;
44 using PbLineSegment = apollo::hdmap::LineSegment;
45 using PbCurveSegment = apollo::hdmap::CurveSegment;
46 using PbCurve = apollo::hdmap::Curve;
47 using PbPoint3D = apollo::common::PointENU;
48 using PbLaneType = apollo::hdmap::Lane_LaneType;
49 using PbTurnType = apollo::hdmap::Lane_LaneTurn;
50 using PbID = apollo::hdmap::Id;
51 using PbLaneBoundary = apollo::hdmap::LaneBoundary;
52 using PbLaneBoundaryTypeType = apollo::hdmap::LaneBoundaryType_Type;
53 using PbPolygon = apollo::hdmap::Polygon;
54 using PbBoundaryPolygon = apollo::hdmap::BoundaryPolygon;
55 using PbBoundaryEdge = apollo::hdmap::BoundaryEdge;
56 using PbRegionOverlap = apollo::hdmap::RegionOverlapInfo;
57 using PbPNCJunction = apollo::hdmap::PNCJunction;
58 
59 using PbLaneDirection = apollo::hdmap::Lane_LaneDirection;
60 using PbSignalType = apollo::hdmap::Signal_Type;
61 using PbSubSignalType = apollo::hdmap::Subsignal_Type;
62 using PbStopSignType = apollo::hdmap::StopSign_StopType;
63 using PbBoundaryEdgeType = apollo::hdmap::BoundaryEdge_Type;
64 using PbRoadType = apollo::hdmap::Road_Type;
65 using PbSignInfoType = apollo::hdmap::SignInfo::Type;
66 using PbPassageType = apollo::hdmap::Passage_Type;
67 using PbPassageGroup = apollo::hdmap::PassageGroup;
68 
70  std::string id;
72 };
73 
75  std::string id;
77  std::unordered_set<std::string> stop_line_ids;
78 };
79 
81  std::string id;
83  std::unordered_set<std::string> stop_line_ids;
84 };
85 
87  std::string id;
89  std::unordered_set<std::string> stop_line_ids;
90 };
91 
93  std::string object_id;
94  double start_s;
95  double end_s;
96  bool is_merge;
97 
98  std::string region_overlap_id;
99  std::vector<PbRegionOverlap> region_overlaps;
100 };
101 
103  std::string object_id;
104 };
105 
106 struct LaneInternal {
108  std::vector<OverlapWithLane> overlap_signals;
109  std::vector<OverlapWithLane> overlap_objects;
110  std::vector<OverlapWithLane> overlap_junctions;
111  std::vector<OverlapWithLane> overlap_lanes;
112 };
113 
116  std::unordered_set<std::string> road_ids;
117  std::vector<OverlapWithJunction> overlap_with_junctions;
118 };
119 
121  std::string id;
123  std::vector<LaneInternal> lanes;
124 };
125 
126 struct RoadInternal {
127  std::string id;
129 
131  std::string junction_id;
132 
133  std::string type;
134 
135  std::vector<RoadSectionInternal> sections;
136 
137  std::vector<TrafficLightInternal> traffic_lights;
138  // std::vector<RSUInternal> rsus;
139  std::vector<StopSignInternal> stop_signs;
140  std::vector<YieldSignInternal> yield_signs;
141  std::vector<PbCrosswalk> crosswalks;
142  std::vector<PbClearArea> clear_areas;
143  std::vector<PbSpeedBump> speed_bumps;
144  std::vector<StopLineInternal> stop_lines;
145  std::vector<PbParkingSpace> parking_spaces;
146  std::vector<PbPNCJunction> pnc_junctions;
147 
148  RoadInternal() : in_junction(false) { junction_id = ""; }
149 };
150 
151 struct RSUInternal {
152  std::string id;
154 };
155 
157  std::vector<RSUInternal> rsus;
158 };
159 
160 } // namespace adapter
161 } // namespace hdmap
162 } // namespace apollo
std::string id
Definition: common_define.h:121
std::string id
Definition: common_define.h:75
apollo::hdmap::Road PbRoad
Definition: common_define.h:29
std::string id
Definition: common_define.h:127
apollo::hdmap::StopSign_StopType PbStopSignType
Definition: common_define.h:62
apollo::hdmap::Overlap PbOverlap
Definition: common_define.h:42
PbSignal traffic_light
Definition: common_define.h:88
bool is_merge
Definition: common_define.h:96
double end_s
Definition: common_define.h:95
apollo::hdmap::Subsignal PbSubSignal
Definition: common_define.h:34
PbYieldSign yield_sign
Definition: common_define.h:82
std::vector< PbSpeedBump > speed_bumps
Definition: common_define.h:143
std::vector< PbClearArea > clear_areas
Definition: common_define.h:142
PbRoadSection section
Definition: common_define.h:122
PbRoad road
Definition: common_define.h:128
apollo::hdmap::PNCJunction PbPNCJunction
Definition: common_define.h:57
std::vector< OverlapWithJunction > overlap_with_junctions
Definition: common_define.h:117
std::string region_overlap_id
Definition: common_define.h:98
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
apollo::common::PointENU PbPoint3D
Definition: common_define.h:47
Definition: common_define.h:126
apollo::hdmap::ClearArea PbClearArea
Definition: common_define.h:43
std::string object_id
Definition: common_define.h:93
std::vector< PbPNCJunction > pnc_junctions
Definition: common_define.h:146
apollo::hdmap::Lane_LaneTurn PbTurnType
Definition: common_define.h:49
std::vector< StopSignInternal > stop_signs
Definition: common_define.h:139
apollo::hdmap::Lane_LaneType PbLaneType
Definition: common_define.h:48
apollo::hdmap::Road_Type PbRoadType
Definition: common_define.h:64
std::vector< LaneInternal > lanes
Definition: common_define.h:123
Definition: common_define.h:156
PbStopSign stop_sign
Definition: common_define.h:76
apollo::hdmap::RSU PbRSU
Definition: common_define.h:35
apollo::hdmap::Signal_Type PbSignalType
Definition: common_define.h:60
std::vector< RoadSectionInternal > sections
Definition: common_define.h:135
Definition: common_define.h:92
Definition: common_define.h:102
apollo::hdmap::CurveSegment PbCurveSegment
Definition: common_define.h:45
std::string id
Definition: common_define.h:87
apollo::hdmap::SignInfo::Type PbSignInfoType
Definition: common_define.h:65
apollo::hdmap::Curve PbCurve
Definition: common_define.h:46
apollo::hdmap::Polygon PbPolygon
Definition: common_define.h:53
std::vector< OverlapWithLane > overlap_signals
Definition: common_define.h:108
Definition: common_define.h:120
apollo::hdmap::Subsignal_Type PbSubSignalType
Definition: common_define.h:61
std::vector< OverlapWithLane > overlap_lanes
Definition: common_define.h:111
Definition: common_define.h:80
apollo::hdmap::YieldSign PbYieldSign
Definition: common_define.h:40
std::string junction_id
Definition: common_define.h:131
std::vector< PbParkingSpace > parking_spaces
Definition: common_define.h:145
std::string id
Definition: common_define.h:70
apollo::hdmap::BoundaryPolygon PbBoundaryPolygon
Definition: common_define.h:54
std::unordered_set< std::string > stop_line_ids
Definition: common_define.h:77
apollo::hdmap::Crosswalk PbCrosswalk
Definition: common_define.h:36
std::unordered_set< std::string > stop_line_ids
Definition: common_define.h:89
PbLane lane
Definition: common_define.h:107
apollo::hdmap::BoundaryEdge_Type PbBoundaryEdgeType
Definition: common_define.h:63
apollo::hdmap::SpeedBump PbSpeedBump
Definition: common_define.h:38
std::string type
Definition: common_define.h:133
apollo::hdmap::ParkingSpace PbParkingSpace
Definition: common_define.h:37
std::string id
Definition: common_define.h:81
apollo::hdmap::ObjectOverlapInfo PbObjectOverlapInfo
Definition: common_define.h:41
apollo::hdmap::Id PbID
Definition: common_define.h:50
apollo::hdmap::Lane_LaneDirection PbLaneDirection
Definition: common_define.h:59
std::string id
Definition: common_define.h:152
std::vector< OverlapWithLane > overlap_junctions
Definition: common_define.h:110
PbCurve curve
Definition: common_define.h:71
std::vector< StopLineInternal > stop_lines
Definition: common_define.h:144
PbRSU rsu
Definition: common_define.h:153
apollo::hdmap::Junction PbJunction
Definition: common_define.h:32
apollo::hdmap::Passage_Type PbPassageType
Definition: common_define.h:66
Definition: common_define.h:69
apollo::hdmap::StopSign PbStopSign
Definition: common_define.h:39
PbJunction junction
Definition: common_define.h:115
std::string object_id
Definition: common_define.h:103
Definition: common_define.h:86
Definition: common_define.h:106
Definition: common_define.h:74
double start_s
Definition: common_define.h:94
std::unordered_set< std::string > road_ids
Definition: common_define.h:116
std::unordered_set< std::string > stop_line_ids
Definition: common_define.h:83
apollo::hdmap::PassageGroup PbPassageGroup
Definition: common_define.h:67
RoadInternal()
Definition: common_define.h:148
Definition: common_define.h:151
apollo::hdmap::LaneBoundaryType_Type PbLaneBoundaryTypeType
Definition: common_define.h:52
apollo::hdmap::LineSegment PbLineSegment
Definition: common_define.h:44
std::vector< OverlapWithLane > overlap_objects
Definition: common_define.h:109
apollo::hdmap::RoadSection PbRoadSection
Definition: common_define.h:30
Definition: common_define.h:114
apollo::hdmap::LaneBoundary PbLaneBoundary
Definition: common_define.h:51
std::vector< RSUInternal > rsus
Definition: common_define.h:157
apollo::hdmap::Header PbHeader
Definition: common_define.h:28
apollo::hdmap::Signal PbSignal
Definition: common_define.h:33
std::vector< TrafficLightInternal > traffic_lights
Definition: common_define.h:137
bool in_junction
Definition: common_define.h:130
apollo::hdmap::RegionOverlapInfo PbRegionOverlap
Definition: common_define.h:56
std::vector< YieldSignInternal > yield_signs
Definition: common_define.h:140
std::vector< PbRegionOverlap > region_overlaps
Definition: common_define.h:99
apollo::hdmap::Lane PbLane
Definition: common_define.h:31
std::vector< PbCrosswalk > crosswalks
Definition: common_define.h:141
apollo::hdmap::BoundaryEdge PbBoundaryEdge
Definition: common_define.h:55