Apollo 开发者在线文档

  1. 文档目录
  2. Apollo参考文档
  3. Module Topic and Frequecy
  4. Data flow

本文档是在线手册的预览(Preview)版本,覆盖开发者多个阶段(因为部分内容合入到了代码库,所以就删除了这些内容,可以在GitHub看到最新的内容),不同功能模块,不同适配平台。 给你在短时间内一个宏观的认识,由我来维护的一个在线文档站点,为Apollo开发者查漏补缺。当然,Apollo社区生龙活虎的猛士很多,提供的内容很丰富,这也是我们期望看到的,right?

文档目录

Apollo参考文档

开发者可以在下载代码库后,参照Doxygen生成文档 生成基于最新代码库的参考文档。(一般比较鸡肋,如果可以看源码,为什么还要去看这个呢,略微有些多余)当然,我们也提供基于最新发布版本的在线版:https://apolloauto.github.io/doxygen/apollo/classapollo_1_1common_1_1ApolloApp.html

Module Topic and Frequecy

MODULE Class Topic Period(ms) Frequecy(HZ)
CHASSIS chassis_pb2.Chassis() /apollo/canbus/chassis 10 100
CONTROL control_cmd_pb2.ControlCommand() /apollo/control 10 100
CHASSIS_DETAIL chassis_detail_pb2.ChassisDetail() /apollo/canbus/chassis_detail 10 100
LOCALIZATION localization_pb2.LocalizationEstimate() /apollo/localization/pose 10 100
PLANNING planning_pb2.ADCTrajectory() /apollo/planning 200 5
PERCEPTION perception_obstacle_pb2.PerceptionObstacles() /apollo/perception/obstacles 200 5
PREDICTION prediction_obstacle_pb2.PredictionObstacles() /apollo/prediction 200 5
PAD pad_msg_pb2.PadMessage() /apollo/control/pad 500 2
ODOMETRY gps_pb2.Gps() /apollo/sensor/gnss/odometry 10 100
IMU imu_pb2.CorrectedImu() /apollo/sensor/gnss/corrected_imu 10 100
ROUTING_RES routing_pb2.RoutingResponse() /apollo/routing_response 1 1000
ROUTING_REQ routing_pb2.RoutingRequest() /apollo/routing_request 1 1000
MOBILEYE mobileye_pb2.Mobileye() /apollo/sensor/mobileye 100 10
DELPHI_ESR delphi_esr_pb2.DelphiESR() /apollo/sensor/delphi_esr 10 100
CONTI_RADAR conti_radar_pb2.ContiRadar() /apollo/sensor/conti_radar 20 50
SIGNAL_LIGHT traffic_light_detection_pb2.TrafficLightDetection() /apollo/perception/traffic_light 10 100
DRIVE_EVENT drive_event_pb2.DriveEvent() /apollo/drive_event 500 2
SYSTEM_STATUS system_status_pb2.SystemStatus() /apollo/monitor/system_status 500 2
NAVIGATION navigation_pb2.NavigationInfo() /apollo/navigation 1 1000
RELATIVE_MAP navigation_pb2.MapMsg() /apollo/relative_map 200 5
GUARDIAN guardian_pb2.GuardianCommand() /apollo/guardian 100 10
MONITOR monitor_log_pb2.MonitorMessage() /apollo/monitor 10 100

Data flow

1、Map data
As you know, for different goals, apollo use different format and different map file, mainly categoried by :

that will contains the elements that road on in the real world, Like Road lanes lane mark and so on . On this basis, a number of auxiliary elements have been added, such as auxiliary roads such as the middle line of the road, such as the Routing Planning module.

2、Routing Request from Dreamview like this.or from a file default_end_waypoint.txt in map directory.

waypoint {
pose {
x: 587696.82286
y: 4141446.66696
}
}
waypoint {
pose {
x: 586948.740120
y: 4141171.118641
}
}

3、Get a RoutingRespose as a result, data struct like this :

header {
timestamp_sec: 1533844120.2057884
module_name: "routing"
sequence_num: 1
}
road {
id: "2896"
passage {
segment {
id: "2896_1_-1"
start_s: 3.9204489256831567
end_s: 7.14577
}
can_exit: true
change_lane_type: FORWARD
}
}
road {
id: "2895"
passage {
segment {
id: "2895_1_-1"
start_s: 0
end_s: 18.4625
}
can_exit: true
change_lane_type: FORWARD
}
}
measurement {
distance: 284.34704237235405 // test data not corrent
}
routing_request {
header {
timestamp_sec: 1533844120.2038052
module_name: "dreamview"
sequence_num: 1
}
waypoint {
id: "2896_1_-1"
s: 3.9204489256831567
pose {
x: 586420.32695324044
y: 4140565.8413469042
}
}
waypoint {
id: "2922_1_-1"
s: 30.496601298037231
pose {
x: 586466.290268646
y: 4140842.8926803083
}
}
}
map_version: "1.500000"
status {
error_code: OK
msg: "Success!"
}

当然,也可以通过在Dreamview中选择巡航点的当时,下发RoutingRequest,这样返回的RoutingRespone就会带着原请求字段返回。比如以上测试数据中的module_name: “dreamview”.

4、当然,地图的数据除了用来作为路由导航之外,还有在感知、定位用作障碍物识别、特征定位。比如我们没有必要关心传感器反馈的360°的激光点云数据,所以会根据高精度地图,做一个ROIFilter的过滤。最后,从感知输出的信息,作为预测模块的输入。

预测模块再将这些带有预测速度、预测轨迹的障碍物信息映射到SLT的坐标序列中,做路径规划的操作。

如果你有不同看法?
script>