apollo_planning
/apollo/planning 数据通道(channel)是 Apollo 系统规划模块输出的包含车辆规划路径等数据消息的通道。
本文档介绍 /apollo/planning 通道里各数据字段的含义。
前提条件
您需要提前了解:
通道数据解释
/apollo/planning 通道示例
参考快速上手播放 demo_3.5的数据包后,您可以通过 Cyber Monitor 工具查看数据包里的全部的通道信息。
其中,/apollo/planning 通道内的数据如下所示。
ChannelName: /apollo/planning
MessageType: apollo.planning.ADCTrajectory
FrameRatio: 0.00
RawMessage Size: 150820 Bytes (147.29 KB)
header:
timestamp_sec: 1545095746.936272621
module_name: planning
sequence_num: 31422
total_path_length: 62.300828131
total_path_time: 7.108779192
debug:
...
is_replan: 0
gear: GEAR_DRIVE
trajectory_point: +[139 items]
decision:
main_decision:
stop:
reason_code: STOP_REASON_SIGNAL
reason: stop by SL_2231
stop_point:
x: 587721.532191251
y: 4141425.466284903
stop_heading: 1.376224120
change_lane_type: FORWARD
object_decision:
decision: +[1 items]
vehicle_signal:
turn_signal: TURN_NONE
latency_stats:
total_time_ms: 10.533094406
task_stats: +[8 items]
init_frame_time_ms: 0.005591393
routing_header:
timestamp_sec: 1545095404.180192471
module_name: routing
sequence_num: 4
right_of_way_status: UNPROTECTED
lane_id: +[14 items]
engage_advice:
advice: KEEP_ENGAGED
trajectory_type: NORMAL整个数据通道内的数据可以分为两部分:CyberRT 框架定义的元数据和通道对应的消息格式(Message)所定义的消息数据。
CyberRT 框架定义的元数据
该部分包括 ChannelName、MessageType、FrameRatio、RawMessage Size 数据字段,详情参见 数据通道。
ChannelName: /apollo/planning
MessageType: apollo.planning.ADCTrajectory
FrameRatio: 0.00
RawMessage Size: 150820 Bytes (147.29 KB)其中,MessageType 定义了当前通道对应的消息格式(Message)为apollo.planning.ADCTrajectory。
消息格式(Message)所定义的消息数据
该部分数据字段由 apollo.planning.ADCTrajectory 消息格式(Message)定义。
header:
timestamp_sec: 1545095746.936272621
module_name: planning
sequence_num: 31422
total_path_length: 62.300828131
total_path_time: 7.108779192
debug:
...
is_replan: 0
gear: GEAR_DRIVE
trajectory_point: +[139 items]
decision:
main_decision:
stop:
reason_code: STOP_REASON_SIGNAL
reason: stop by SL_2231
stop_point:
x: 587721.532191251
y: 4141425.466284903
stop_heading: 1.376224120
change_lane_type: FORWARD
object_decision:
decision: +[1 items]
vehicle_signal:
turn_signal: TURN_NONE
latency_stats:
total_time_ms: 10.533094406
task_stats: +[8 items]
init_frame_time_ms: 0.005591393
routing_header:
timestamp_sec: 1545095404.180192471
module_name: routing
sequence_num: 4
right_of_way_status: UNPROTECTED
lane_id: +[14 items]
engage_advice:
advice: KEEP_ENGAGED
trajectory_type: NORMAL下一小节,将逐一详细介绍这部分消息的数据字段含义。
apollo.planning.ADCTrajectory 等消息格式(Message)定义的数据字段
apollo.planning.ADCTrajectory 消息格式(Message)
其定义了如下几个重要数据字段。
| 数据名称 | 数据解释 | Protobuf Message 定义 |
|---|---|---|
| header | 头信息 | 由 apollo.common.Header 定义 |
| total_path_length | 总轨迹规划长度 | double类型。单位:米 |
| total_path_time | 总轨迹规划时间 | double类型。单位:秒 |
| debug | 规划模块的调试信息 | 由apollo.planning_internal.Debug 定义 |
| is_replan | 是否触发replan的标识 | bool类型,true表示触发 |
| gear | 轨迹规划的档位 | 由 apollo.canbus.Chassis.GearPosition 定义 |
| trajectory_point | 轨迹规划的路径点,包含位置和速度 | 由 apollo.common.TrajectoryPoiint 定义 |
| decision | 规划模块决策结果 | 由 apollo.planning.DecisionResult 定义 |
| latency_stats | 规划模块时延信息 | 由 apollo.planning.LatencyStats 定义 |
| routing_header | 当前路径规划所用的 routing 信息(头) | 由 apollo.common.Header 定义 |
| right_of_way_status | 路权状态 | 由 apollo.planning.ADCTrajectory.RightOfWayStatus 定义 |
| lane_id | 沿着当前指引线的车道 id | 由 apollo.hdmap.Id 定义 |
| engage_advice | 当前规划结果的接管建议 | 由 apollo.common.EngageAdvice 定义 |
apollo.common.TrajectoryPoint 消息格式(Message)
在 Cyber Monitor 工具中查看 /apollo/planning 通道信息时,可以通过键盘的方向键【->】进入下一层查看 trajectory_point 字段的具体数据,该字段数据是由apollo.common.TrajectoryPoint 消息格式(Message)定义的数据 列表。同时,可以通过键盘上的 N 和 M 键来遍历 trajectory_point 列表中的每一个具体数据。
trajectory_point 示例如下:
ChannelName: /apollo/planning
MessageType: apollo.planning.ADCTrajectory
FrameRatio: 0.00
trajectory_point: [0]
path_point:
x: 587701.356420094
y: 4141338.904602869
theta: 1.323335462
kappa: 0.000186743
s: -4.628729524
dkappa: -0.000048637
ddkappa: 0.000000000
v: 8.901402660
a: -0.000217390
relative_time: -0.421297550apollo.common.TrajectoryPoint 消息格式(Message)定义了如下的重要数据字段。
| 数据名称 | 数据解释 | 取值 | 单位 |
|---|---|---|---|
| trajectory_point | 轨迹点数组 | - | - |
| path_point | 轨迹点 | - | - |
| x | 轨迹点的横向坐标 | 587701.356420094 | m |
| y | 轨迹点的纵向坐标 | 4141338.904602869 | m |
| theta | 主车的偏转角 | 1.323335462 | radian |
| kappa | 轨迹点的曲率 | - | 1/m |
| s | 沿着指引线的累计距离 | -4.628729524 | m |
| dkappa | 轨迹点的曲率微分 | -0.000048637 | - |
| ddkappa | 轨迹点的曲率二次微分 | - | - |
| v | 轨迹点的车速 | 8.901402660 | m/s |
| a | 轨迹点的车辆加速度 | - | m/s2 |
| relative_time | 相对于当前主车位置的时间 | -0.421297550 | s |
同样,lane_id 等字段同样可以通过方向键【->】进入下一层查看对应内容。
深入了解 ADCTrajectory 数据类型
深入了解 apollo.planning.ADCTrajectory 等消息格式(Message)定义,参见 perception_obstacle.proto 文件。关于 protobuf 与 消息格式(Message)的关系,参见 消息格式。
文档意见反馈
如果您在使用文档时遇到任何问题,请到我们在【开发者社区】建立的 反馈意见收集问答页面,反馈相关的问题。我们会根据反馈意见对文档进行迭代优化。