apollo_perception_obstacles
/apollo/perception/obstacles 数据通道(channel)是 Apollo 系统的感知模块输出的包含障碍物等感知数据消息的通道。本文档主要介绍 /apollo/perception/obstacles 通道里各数据字段的含义。
前提条件
您需要提前了解:
通道数据解释
/apollo/perception/obstacles 通道示例
参考快速上手播放 demo_3.5.record 数据包后,您可以通过 CyberMonitor 工具查看数据包里的全部的通道信息。
其中,/apollo/perception/obstacles 通道内的数据如下所示:
ChannelName: /apollo/perception/obstacles
MessageType: apollo.perception.PerceptionObstacles
FrameRatio: 0.00
RawMessage Size: 16863 Bytes (16.47 KB)
perception_obstacle: +[16 items]
header:
timestamp_sec: 1545095781.195163250
module_name: perception_obstacle
sequence_num: 30778
lidar_timestamp: 1545095781068947968
camera_timestamp: 0
radar_timestamp: 0
error_code: OK整个数据通道内的数据可以分为两部分:CyberRT 框架定义的元数据和通道对应的消息格式(Message)所定义的消息数据。
CyberRT 框架定义的元数据
该部分包括 ChannelName、MessageType、FrameRatio、RawMessage Size 数据字段。详情参见 数据通道。
ChannelName: /apollo/perception/obstacles
MessageType: apollo.perception.PerceptionObstacles
FrameRatio: 0.00
RawMessage Size: 16863 Bytes (16.47 KB)其中,MessageType 定义了当前通道对应的消息格式(Message)为apollo.perception.PerceptionObstacles。
消息格式(Message)所定义的消息数据
该部分数据字段由 apollo.perception.PerceptionObstacles 消息格式 (Message)定义。
perception_obstacle: +[16 items]
header:
timestamp_sec: 1545095781.195163250
module_name: perception_obstacle
sequence_num: 30778
lidar_timestamp: 1545095781068947968
camera_timestamp: 0
radar_timestamp: 0
error_code: OK下一小节,将逐一详细介绍这部分消息的数据字段含义。
apollo.perception.PerceptionObstacles 等消息格式(Message)定义的数据字段
apollo.perception.PerceptionObstacles 消息格式(Message)
其定义了如下 3 个重要数据字段。
| 数据名称 | 数据解释 | Protobuf Message 定义 |
|---|---|---|
| perception_obstacle | 障碍物列表,列表中每个数据描述了障碍物的详细信息。 | 由 apollo.perception.PerceptionObstacle(注意没有"s")定义 |
| header | 头信息。 | 由 apollo.common.Header 定义 |
| error_code | 错误码。 | 由 apollo.common.ErrorCode 定义 |
perception_obstacle: +[16 items]
header:
timestamp_sec: 1545095781.195163250
module_name: perception_obstacle
sequence_num: 30778
lidar_timestamp: 1545095781068947968
camera_timestamp: 0
radar_timestamp: 0
error_code: OKapollo.perception.PerceptionObstacle 消息格式(Message)
在 Cyber Monitor 工具中查看 /apollo/perception/obstacles 通道信息时,可以通过键盘的方向键【->】进入下一层查看 perception_obstalce 字段的具体数据,该字段数据是由apollo.perception.PerceptionObstacle 消息格式(Message)定义的数据 列表。同时,可以通过键盘上的 N 和 M 键来遍历 perception_obstalce 列表中的每一个具体数据。
perception_obstacle 示例如下:
ChannelName: /apollo/perception/obstacles
MessageType: apollo.perception.PerceptionObstacles
FrameRatio: 0.00
perception_obstacle: [0]
id: 29813
position:
x: 587691.039460494
y: 4141433.734868622
z: -34.271560068
theta: 1.305205584
velocity:
x: 0.000000000
y: 0.000000000
z: 0.000000000
length: 4.255475521
width: 1.711036682
height: 3.235262394
polygon_point: +[18 items]
tracking_time: 1.800000906
type: VEHICLE
timestamp: 1545095767.368937969
acceleration:
x: -0.000000661
y: -0.000002654apollo.perception.PerceptionObstacle 消息格式(Message)定义了如下的重要数据字段。
| 数据名称 | 数据解释 | 取值 | 单位 |
|---|---|---|---|
| id | 障碍物的唯一编号标识 | 0-1000000 | - |
| position-x | 障碍物位置的x轴世界坐标值 | (-∞, +∞) | m |
| poxition-y | 障碍物位置的y轴世界坐标值 | (-∞, +∞) | m |
| position-z | 障碍物位置的z轴世界坐标值 | (-∞, +∞) | m |
| theta | 障碍物在世界坐标系下的航向角 | (-π, +π) | radian |
| velocity-x | 障碍物速度矢量的x轴世界坐标值 | (-∞, +∞) | m/s |
| velocity-y | 障碍物速度矢量的y轴世界坐标值 | (-∞, +∞) | m/s |
| velocity-z | 障碍物速度矢量的z轴世界坐标值 | (-∞, +∞) | m/s |
| length | 障碍物的长度 | (0.0, +∞) | m |
| width | 障碍物的宽度 | (0.0, +∞) | m |
| height | 障碍物的高度 | (0.0, +∞) | m |
| polygon_point | 障碍物在x-y平面上的轮廓曲线(世界坐标系下轮廓点的集合) | - | - |
| tracking_time | 已跟踪该障碍物的时长 | (0.0, +∞) | s |
| type | 障碍物类别(车、行人、非机动车等) | UNKNOWN, UNKNOWN_MOVABLE, UNKNOWN_UNMOVABLE, PEDESTRIAN, BICYCLE, VEHICLE | - |
| timestamp | 障碍物时间戳 | (0.0, +∞) | s |
| acceleration-x | 障碍物加速度矢量的x轴世界坐标值 | (-∞, +∞) | m/s2 |
| acceleration-y | 障碍物加速度矢量的y轴世界坐标值 | (-∞, +∞) | m/s2 |
| acceleration-z | 障碍物加速度矢量的z轴世界坐标值 | (-∞, +∞) | m/s2 |
| anchor_point-x | 障碍物稳定点的x轴世界坐标值 | (-∞, +∞) | m |
| anchor_point-y | 障碍物稳定点的y轴世界坐标值 | (-∞, +∞) | m |
| anchor_point-z | 障碍物稳定点的z轴世界坐标值 | (-∞, +∞) | m |
| bbox2d-xmin | 仅用于视觉感知,障碍物2d检测框的左上角x像素坐标 | (0.0, 相机分辨率x轴最大值) | - |
| bbox2d-ymin | 仅用于视觉感知,障碍物2d检测框的左上角y像素坐标 | (0.0, 相机分辨率y轴最大值) | - |
| bbox2d-xmax | 仅用于视觉感知,障碍物2d检测框的右下角x像素坐标 | (0.0, 相机分辨率x轴最大值) | - |
| bbox2d-ymax | 仅用于视觉感知,障碍物2d检测框的右下角y像素坐标 | (0.0, 相机分辨率y轴最大值) | - |
| sub_type | 障碍物详细子类别(交通锥桶等) | - | - |
| measurements | 融合的各传感器检测该障碍物详细数据 | - | - |
| height_above_ground | 障碍物在地面以上的高度 | (-∞, +∞) | m |
| position_covariance | 障碍物位置变化的协方差 | 3*3矩阵 | - |
| velocity_covariance | 障碍物速度变化的协方差 | 3*3矩阵 | - |
| acceleration_covariance | 障碍物加速度变化的协方差 | 3*3矩阵 | - |
图中红圈标记出来的障碍物是 perception_obstacle 列表中下标为 0 的障碍物数据(ID:29849)。

深入了解 PerceptionObstacles 数据类型
深入了解 apollo.perception.PerceptionObstacles 等消息格式(Message)定义,参见 perception_obstacle.proto文件。关于 protobuf 与 消息格式(Message)的关系,参见 消息格式。
文档意见反馈
如果您在使用文档时遇到任何问题,请到我们在【开发者社区】建立的 反馈意见收集问答页面,反馈相关的问题。我们会根据反馈意见对文档进行迭代优化。