apollo_hmi_status

/apollo/hmi/status 数据通道(channel)是 Apollo 系统的人机交互模块HMI输出给客户端的包含模式、地图、车辆等状态数据消息的通道。

通过本文档,开发者可以了解到 /apollo/hmi/status 通道里各数据字段的含义。

前提条件

您需要提前了解:

通道数据解释

/apollo/hmi/status 通道

参考快速上手播放 demo_3.5.record 的数据包后,您可以通过 Cyber Monitor 工具查看数据包里的全部的通道信息。

其中,/apollo/hmi/status 通道内的数据如下所示。

ChannelName: /apollo/hmi/status
MessageType: apollo.dreamview.HMIStatus
FrameRatio: 2.13
RawMessage Size: 868 Bytes
header:
  timestamp_sec: 1632312224.175570726
  module_name: HMI
  sequence_num: 1696
modes: +[21 items]
current_mode: Manual Competition
maps: +[10 items]
current_map: Pxl Test Map
vehicles: +[2 items]
current_vehicle: Lincoln2017MKZ LGSVL
modules: +[4 items]
monitored_components: +[4 items]
docker_image: apolloauto/apollo:dev-x86_64-18.04-20210517_1712
utm_zone_id: 10

整个数据通道内的数据可以分为两部分:CyberRT 框架定义的元数据和通道对应的消息格式(Message)所定义的消息数据。

CyberRT 框架定义的元数据

该部分包括 ChannelName、MessageType、FrameRatio、RawMessage Size 数据字段,详情参见 数据通道。

ChannelName: /apollo/hmi/status
MessageType: apollo.dreamview.HMIStatus
FrameRatio: 3.97
RawMessage Size: 2397 Bytes (2.34 KB)

其中,MessageType 定义了当前通道对应的消息格式(Message)为 apollo.dreamview.HMIStatus。

消息格式(Message)所定义的消息数据

该部分数据字段由 apollo.dreamview.HMIStatus 消息格式(Message)定义。

header:
  timestamp_sec: 1625568096.655050039
  module_name: HMI
  sequence_num: 1064
modes: +[20 items]
current_mode: Rtk
maps: +[11 items]
current_map: Apollo Map Parking
vehicles: +[3 items]
current_vehicle: Dev Kit Advanced Ne-s
modules: +[8 items]
monitored_components: +[2 items]
docker_image: apolloauto/apollo:dev-x86_64-18.04-20210517_1712
utm_zone_id: 10

下一小节,将逐一详细介绍这部分消息的数据字段含义。

apollo.common.ComponentStatus 等消息格式(Message)定义的数据字段

apollo.dreamview.HMIStatus 消息格式(Message)

其定义了如下 13 个重要数据字段。

数据名称 数据解释 Protobuf Message 定义
header 头信息 由 apollo.common.Header 定义
modes Dreamview 可选择的模式 由 modules/dreamview/conf/hmi_modes 路径下 mode 配置文件决定,string 类型
current_mode Dreamview 当前模式 string 类型
maps Dreamview 可选择的地图 由 modules/map/data 路径下地图数据决定,string 类型
current_map Dreamview 当前地图 string 类型
vehicles Dreamview 可选择的车辆 由 车辆配置文件 决定,string 类型
current_vehicle Dreamview 当前车辆 string 类型
modules Module Controller 界面可以控制的模块及当前他们的开关状态 取决于当前选择的模式。在 apollo.dreamview.Module 中定义,由当前模式配置文件决定,map<string,bool> 类型
monitored_components Module Controller 界面列出的监控模块,只能观察其状态,不能操作。 取决于当前选择的模式。在 apollo.dreamview.Module 中定义,由当前模式配置文件决定,map<string, apollo.monitor.ComponentStatus> 类型。apollo.monitor.ComponentStatus 类型
docker_image Dreamview 当前 docker 镜像 string 类型
utm_zone_id Dreamview 当前 utm 坐标分区 ID int32 类型
passenger_msg Dreamview 会大声播放给驾驶者和乘客的信息 string 类型
other_components 和 monitor components 类似,用来监控开发者自己定义的进程状态。目前用于标定模式下监控 preprocess 进程 map<string, apollo.monitor.ComponentStatus>类型

apollo.monitor.component_status 消息格式(Message)

在 Cyber Monitor 工具中查看/apollo/hmi/status 通道信息时,可以通过键盘的方向键【->】进入下一层查看 monitored_components 字段的具体数据,该字段数据是一个map,value为apollo.common.ComponentStatus 消息格式(Message)定义的数据。同时,可以通过键盘上的 N 和 M 键来遍历monitored_components列表中的每一个具体数据。

monitored_components 示例如下:

ChannelName: /apollo/hmi/status
MessageType: apollo.dreamview.HMIStatus
FrameRatio: 2.38
monitored_components
  key: Data Recorder
  value:
    status: OK
    message: cyber_recorder record --all -k /apollo/sensor/camera/front_12mm/image -k /apollo/sensor/camera/front_12mm/image/compressed -k /apollo
/sensor/camera/front_12mm/video/compressed -k /apollo/sensor/camera/front_6mm/image -k /apollo/sensor/camera/front_6mm/image/compressed -k /apollo
/sensor/camera/front_6mm/video/compressed -k /apollo/sensor/camera/left_fisheye/image -k /apollo/sensor/camera/left_fisheye/image/compressed -k /a
pollo/sensor/camera/left_fisheye/video/compressed -k /apollo/sensor/camera/rear_6mm/image -k /apollo/sensor/camera/rear_6mm/image/compressed -k /a
pollo/sensor/camera/rear_6mm/video/compressed -k /apollo/sensor/camera/right_fisheye/image -k /apollo/sensor/camera/right_fisheye/image/compressed
 -k /apollo/sensor/camera/right_fisheye/video/compressed -k /apollo/sensor/lidar128/PointCloud2 -k /apollo/sensor/lidar128/compensator/PointCloud2
 -k /apollo/sensor/lidar16/PointCloud2 -k /apollo/sensor/lidar16/Scan -k /apollo/sensor/lidar16/compensator/PointCloud2 -k /apollo/sensor/lidar16/
front/center/PointCloud2 -k /apollo/sensor/lidar16/front/up/PointCloud2 -k /apollo/sensor/lidar16/fusion/PointCloud2 -k /apollo/sensor/lidar16/fus
ion/compensator/PointCloud2 -k /apollo/sensor/lidar16/rear/left/PointCloud2 -k /apollo/sensor/lidar16/rear/right/PointCloud2 -k /apollo/sensor/mic
rophone -k /apollo/sensor/radar/front -k /apollo/sensor/

apollo.common.ComponentStatus 消息格式(Message)定义了如下的重要数据字段。

数据名称 数据解释 取值 单位
status 当前被监控组件状态 枚举,参见proto 文件 -
message 状态信息,string类型

Dreamview 在 Module Controller 界面看监控组件状态 module名-状态信息(不同颜色对应不同状态),点击状态,会获取相关信息。

image.png

985a6d55ab91f90572957a0e91886261.png

深入了解 ComponentStatus 数据类型

深入了解 apollo.common.ComponentStatus 等消息格式(Message)定义,参见 system_status.proto 文件。关于 protobuf 与消息格式(Message)的关系,参见 消息格式。

文档意见反馈

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

Guardian模块坐标变换模块