Apollo 10.0
自动驾驶开放平台
object_types.h
浏览该文件的文档.
1/******************************************************************************
2 * Copyright 2018 The Apollo Authors. All Rights Reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *****************************************************************************/
16#pragma once
17
18#include <map>
19#include <string>
20
21namespace apollo {
22namespace perception {
23namespace base {
24
25// @brief general object type
26enum class ObjectType {
27 UNKNOWN = 0,
30 PEDESTRIAN = 3,
31 BICYCLE = 4,
32 VEHICLE = 5,
34};
35
36// @brief semantic object type
38 UNKNOWN = 0,
39 IGNORE = 1,
40 GROUND = 2,
41 OBJECT = 3,
42 CURB = 4,
43 VEGETATION = 5,
44 FENCE = 6,
45 NOISE = 7,
46 WALL = 8,
48};
49
50// @brief internal object type used by lidar perception
53 INT_SMALLMOT = 1,
55 INT_NONMOT = 3,
56 INT_BIGMOT = 4,
57 INT_UNKNOWN = 5,
59};
60
61// @brief internal object type used by visual perception
75
76// @brief fine-grained object types
77enum class ObjectSubType {
78 UNKNOWN = 0,
81 CAR = 3,
82 VAN = 4,
83 TRUCK = 5,
84 BUS = 6,
85 CYCLIST = 7,
86 MOTORCYCLIST = 8,
87 TRICYCLIST = 9,
88 PEDESTRIAN = 10,
89 TRAFFICCONE = 11,
90 SMALLMOT = 12,
91 BIGMOT = 13,
92 NONMOT = 14,
93 // Attention(lordon): matrix dimensions in type_change_cost file need to be
94 // the same
95 MAX_OBJECT_TYPE = 15,
96};
97
98// @brief motion state
99enum class MotionState {
100 UNKNOWN = 0,
101 MOVING = 1,
102 STATIONARY = 2,
104};
105
116
117const std::map<VisualLandmarkType, std::string> kVisualLandmarkType2NameMap = {
118 {VisualLandmarkType::RoadArrow, "RoadArrow"},
119 {VisualLandmarkType::RoadText, "RoadText"},
120 {VisualLandmarkType::TrafficSign, "TrafficSign"},
121 {VisualLandmarkType::TrafficLight, "TrafficLight"},
122};
123
124const std::map<std::string, base::VisualLandmarkType>
131
135const std::map<ObjectType, std::string> kObjectType2NameMap = {
136 {ObjectType::UNKNOWN, "UNKNOWN"},
137 {ObjectType::UNKNOWN_MOVABLE, "UNKNOWN_MOVABLE"},
138 {ObjectType::UNKNOWN_UNMOVABLE, "UNKNOWN_UNMOVABLE"},
139 {ObjectType::PEDESTRIAN, "PEDESTRIAN"},
140 {ObjectType::BICYCLE, "BICYCLE"},
141 {ObjectType::VEHICLE, "VEHICLE"},
142 {ObjectType::MAX_OBJECT_TYPE, "MAX_OBJECT_TYPE"}};
143
144const std::map<std::string, ObjectType> kObjectName2TypeMap = {
145 {"UNKNOWN", ObjectType::UNKNOWN},
146 {"UNKNOWN_MOVABLE", ObjectType::UNKNOWN_MOVABLE},
147 {"UNKNOWN_UNMOVABLE", ObjectType::UNKNOWN_UNMOVABLE},
148 {"PEDESTRIAN", ObjectType::PEDESTRIAN},
149 {"BICYCLE", ObjectType::BICYCLE},
150 {"VEHICLE", ObjectType::VEHICLE},
151 {"MAX_OBJECT_TYPE", ObjectType::MAX_OBJECT_TYPE}};
152
156const std::map<ObjectSemanticType, std::string> kObjectSemanticType2NameMap = {
157 {ObjectSemanticType::UNKNOWN, "UNKNOWN"},
158 {ObjectSemanticType::IGNORE, "IGNORE"},
159 {ObjectSemanticType::GROUND, "GROUND"},
160 {ObjectSemanticType::OBJECT, "OBJECT"},
161 {ObjectSemanticType::CURB, "CURB"},
162 {ObjectSemanticType::VEGETATION, "VEGETATION"},
163 {ObjectSemanticType::FENCE, "FENCE"},
164 {ObjectSemanticType::NOISE, "NOISE"},
165 {ObjectSemanticType::WALL, "WALL"},
167 "MAX_OBJECT_SEMANTIC_LABEL"}};
168
169const std::map<std::string, ObjectSemanticType> kName2ObjectSemanticTypeMap = {
170 {"UNKNOWN", ObjectSemanticType::UNKNOWN},
171 {"IGNORE", ObjectSemanticType::IGNORE},
172 {"GROUND", ObjectSemanticType::GROUND},
173 {"OBJECT", ObjectSemanticType::OBJECT},
174 {"CURB", ObjectSemanticType::CURB},
175 {"VEGETATION", ObjectSemanticType::VEGETATION},
176 {"FENCE", ObjectSemanticType::FENCE},
177 {"NOISE", ObjectSemanticType::NOISE},
178 {"WALL", ObjectSemanticType::WALL},
179 {"MAX_OBJECT_SEMANTIC_LABEL",
181
198
199const std::map<VisualObjectType, std::string> kVisualType2NameMap = {
200 {VisualObjectType::CAR, "CAR"},
201 {VisualObjectType::VAN, "VAN"},
202 {VisualObjectType::BUS, "BUS"},
203 {VisualObjectType::TRUCK, "TRUCK"},
204 {VisualObjectType::BICYCLE, "BICYCLE"},
205 {VisualObjectType::TRICYCLE, "TRICYCLE"},
206 {VisualObjectType::PEDESTRIAN, "PEDESTRIAN"},
207 {VisualObjectType::TRAFFICCONE, "TRAFFICCONE"},
208 {VisualObjectType::UNKNOWN_MOVABLE, "UNKNOWN_MOVABLE"},
209 {VisualObjectType::UNKNOWN_UNMOVABLE, "UNKNOWN_UNMOVABLE"},
210 {VisualObjectType::MAX_OBJECT_TYPE, "MAX_OBJECT_TYPE"},
211};
212
213const std::map<std::string, base::VisualObjectType> kVisualName2TypeMap = {
214 {"CAR", VisualObjectType::CAR},
215 {"VAN", VisualObjectType::VAN},
216 {"BUS", VisualObjectType::BUS},
217 {"TRUCK", VisualObjectType::TRUCK},
218 {"BICYCLE", VisualObjectType::BICYCLE},
219 {"TRICYCLE", VisualObjectType::TRICYCLE},
220 {"PEDESTRIAN", VisualObjectType::PEDESTRIAN},
221 {"TRAFFICCONE", VisualObjectType::TRAFFICCONE},
222 {"UNKNOWN_MOVABLE", VisualObjectType::UNKNOWN_MOVABLE},
223 {"UNKNOWN_UNMOVABLE", VisualObjectType::UNKNOWN_UNMOVABLE},
224 {"MAX_OBJECT_TYPE", VisualObjectType::MAX_OBJECT_TYPE},
225};
226
248
249const std::map<ObjectSubType, std::string> kSubType2NameMap = {
250 {ObjectSubType::UNKNOWN, "UNKNOWN"},
251 {ObjectSubType::UNKNOWN_MOVABLE, "UNKNOWN_MOVABLE"},
252 {ObjectSubType::UNKNOWN_UNMOVABLE, "UNKNOWN_UNMOVABLE"},
253 {ObjectSubType::CAR, "CAR"},
254 {ObjectSubType::VAN, "VAN"},
255 {ObjectSubType::TRUCK, "TRUCK"},
256 {ObjectSubType::BUS, "BUS"},
257 {ObjectSubType::CYCLIST, "CYCLIST"},
258 {ObjectSubType::MOTORCYCLIST, "MOTORCYCLIST"},
259 {ObjectSubType::TRICYCLIST, "TRICYCLIST"},
260 {ObjectSubType::PEDESTRIAN, "PEDESTRIAN"},
261 {ObjectSubType::TRAFFICCONE, "TRAFFICCONE"},
262 {ObjectSubType::MAX_OBJECT_TYPE, "MAX_OBJECT_TYPE"},
263};
264
265const std::map<std::string, ObjectSubType> kName2SubTypeMap = {
266 {"UNKNOWN", ObjectSubType::UNKNOWN},
267 {"UNKNOWN_MOVABLE", ObjectSubType::UNKNOWN_MOVABLE},
268 {"UNKNOWN_UNMOVABLE", ObjectSubType::UNKNOWN_UNMOVABLE},
269 {"CAR", ObjectSubType::CAR},
270 {"VAN", ObjectSubType::VAN},
271 {"TRUCK", ObjectSubType::TRUCK},
272 {"BUS", ObjectSubType::BUS},
273 {"CYCLIST", ObjectSubType::CYCLIST},
274 {"MOTORCYCLIST", ObjectSubType::MOTORCYCLIST},
275 {"TRICYCLIST", ObjectSubType::TRICYCLIST},
276 {"PEDESTRIAN", ObjectSubType::PEDESTRIAN},
277 {"TRAFFICCONE", ObjectSubType::TRAFFICCONE},
278 {"MAX_OBJECT_TYPE", ObjectSubType::MAX_OBJECT_TYPE},
279};
280
281} // namespace base
282} // namespace perception
283} // namespace apollo
VisualLandmarkType
Landmark types and mapping
const std::map< std::string, ObjectSemanticType > kName2ObjectSemanticTypeMap
const std::map< ObjectSubType, std::string > kSubType2NameMap
const std::map< std::string, base::VisualLandmarkType > kVisualLandmarkName2TypeMap
const std::map< VisualObjectType, ObjectType > kVisualTypeMap
VisualObjectType mapping
const std::map< std::string, ObjectType > kObjectName2TypeMap
const std::map< VisualLandmarkType, std::string > kVisualLandmarkType2NameMap
const std::map< std::string, base::VisualObjectType > kVisualName2TypeMap
const std::map< ObjectSubType, ObjectType > kSubType2TypeMap
ObjectSubType mapping
const std::map< VisualObjectType, std::string > kVisualType2NameMap
const std::map< ObjectType, std::string > kObjectType2NameMap
ObjectType mapping
const std::map< std::string, ObjectSubType > kName2SubTypeMap
const std::map< ObjectSemanticType, std::string > kObjectSemanticType2NameMap
ObjectSemanticType mapping
class register implement
Definition arena_queue.h:37