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.421297550

apollo.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)的关系,参见 消息格式。

文档意见反馈

如果您在使用文档时遇到任何问题,请到我们在【开发者社区】建立的 反馈意见收集问答页面,反馈相关的问题。我们会根据反馈意见对文档进行迭代优化。

预测模块监控模块