apollo_localization_msf_gnss

/apollo/localization/msf_gnss 数据通道(channel)是 Apollo 系统的定位模块输出的包含定位数据消息的通道。

本文档介绍 /apollo/localization/msf_gnss 通道里各数据字段的含义。

前提条件

您需要提前了解:

通道数据解释

/apollo/localization/msf_gnss 通道示例

参考快速上手播放 demo_3.5.record 数据包后,您可以通过 CyberMonitor 工具查看数据包里的全部的通道信息。 其中,/apollo/localization/msf_gnss 通道内的数据如下所示。

ChannelName: /apollo/localization/msf_gnss
MessageType: apollo.localization.LocalizationEstimate
FrameRatio: 0.94
RawMessage Size: 153 Bytes
header:
  timestamp_sec: 1620887187.000000000
pose:
  position:
    x: 427391.694957139
    y: 4438690.167592783
    z: 36.281118780
  orientation:
    qx: 0.000000000
    qy: 0.000000000
    qz: 0.000000000
    qw: 1.000000000
uncertainty:
  position_std_dev:
    x: 0.000393143
    y: 0.000495204
    z: 0.002176334
  orientation_std_dev:
    x: -1.000000000
    y: -1.000000000
    z: -1.000000000
measurement_time: 1620887187.000000000
msf_status:
  gnsspos_position_type: NARROW_INT

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

CyberRT 框架定义的元数据

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

ChannelName: /apollo/localization/msf_gnss
MessageType: apollo.localization.LocalizationEstimate
FrameRatio: 0.94
RawMessage Size: 153 Bytes

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

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

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

header:
  timestamp_sec: 1620887187.000000000
pose:
  position:
    x: 427391.694957139
    y: 4438690.167592783
    z: 36.281118780
  orientation:
    qx: 0.000000000
    qy: 0.000000000
    qz: 0.000000000
    qw: 1.000000000
uncertainty:
  position_std_dev:
    x: 0.000393143
    y: 0.000495204
    z: 0.002176334
  orientation_std_dev:
    x: -1.000000000
    y: -1.000000000
    z: -1.000000000
measurement_time: 1620887187.000000000
msf_status:
  gnsspos_position_type: NARROW_INT

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

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

apollo.localization.LocalizationEstimate 消息格式(Message)

msf_gnss Channel 中使用了如下几个重要数据字段。

数据名称 数据解释 Protobuf Message 定义
header 头信息 由 apollo.common.Header 定义
pose 位置姿态 由 apollo.localization.Pose 定义
uncertainty 不确定度 由 apollo.localization.Uncertainty 定义
measurement_time 测量时间 双精度浮点 double
msf_status 融合定位状态 apollo.localization.MsfStatus 定义

apollo.localization.Pose 消息格式(Message)

在 CyberMonitor 工具中查看 /apollo/localization/pose 可以看到第一部分 pose 字段的具体数据,该字段数据是由 apollo.localization.Pose 消息格式(Message)定义的。

pose 示例如下:

pose:
  position:
    x: 427391.694957139
    y: 4438690.167592783
    z: 36.281118780
  orientation:
    qx: 0.000000000
    qy: 0.000000000
    qz: 0.000000000
    qw: 1.000000000

msf_gnss Channel 中使用了 apollo.localization.Pose 消息格式(Message)的以下数据字段。

数据名称 数据解释 取值范围 单位/字段类型
position ENU 坐标系下的位置坐标 - apollo.common.PointENU
position-x ENU 坐标系下的 x 轴位置坐标 -∞,+∞ m
poxition-y ENU 坐标系下的 y 轴位置坐标 -∞,+∞ m
position-z ENU 坐标系下的 z 轴位置坐标 -∞,+∞ m
orientation ENU 坐标系下的姿态值(四元数) - apollo.common.Quaternion
orientation-x ENU 坐标系下的 x 轴姿态值(四元数) -1.0, 1.0 1
orientation-y ENU 坐标系下的 y 轴姿态值(四元数) -1.0, 1.0 1
orientation-z ENU 坐标系下的 z 轴姿态值(四元数) -1.0, 1.0 1
orientation-w ENU 坐标系下的 w 轴姿态值(四元数) -1.0, 1.0 1

apollo.localization.Uncertainty 消息格式(Message)

在 CyberMonitor 工具中查看 /apollo/localization/pose ,通过 PageDown 可以看到第一部分 uncertainty 字段的具体数据,该字段数据是由 apollo.localization.Uncertainty 消息格式(Message)定义的。

uncertainty 示例如下:

uncertainty:
  position_std_dev:
    x: 0.029759098
    y: 0.033565582
    z: 0.012526811
  orientation_std_dev:
    x: 0.078841062
    y: 0.084099695
    z: 0.051813654
  linear_velocity_std_dev:
    x: 0.021566490
    y: 0.023933487
    z: 0.006024521

msf_gnss Channel 中使用了 apollo.localization.Uncertainty 消息格式(Message)的以下字段:

数据名称 数据解释 取值范围 单位/字段类型
position_std_dev 位置标准差 - apollo.common.Point3D
position_std_dev-x x 轴位置标准差 0,+∞ m
position_std_dev-y y 轴位置标准差 0,+∞ m
position_std_dev-z z 轴位置标准差 0,+∞ m
orientation_std_dev 姿态标准差 - apollo.common.Point3D
orientation_std_dev-x x 轴姿态标准差 0,+∞ rad
orientation_std_dev-y y 轴姿态标准差 0,+∞ rad
orientation_std_dev-z z 轴姿态标准差 0,+∞ rad
linear_velocity_std_dev 线速度标准差 - apollo.common.Point3D
linear_velocity_std_dev-x x 轴线速度标准差 0,+∞ m/s
linear_velocity_std_dev-y y 轴线速度标准差 0,+∞ m/s
linear_velocity_std_dev-z z 轴线速度标准差 0,+∞ m/s

msf_status 示例如下:

msf_status:
  local_lidar_consistency: MSF_LOCAL_LIDAR_CONSISTENCY_03
  gnss_consistency: MSF_GNSS_CONSISTENCY_03
  local_lidar_status: MSF_LOCAL_LIDAR_NORMAL
  local_lidar_quality: MSF_LOCAL_LIDAR_VERY_GOOD
  gnsspos_position_type: PSRDIFF
  msf_running_status: MSF_SOL_LIDAR_XX

apollo.localization.MsfStatus 消息格式(Message)

定义了以下字段:

数据名称 数据解释 单位/字段类型
local_lidar_consistency LiDAR 定位一致性 apollo.localization.LocalLidarConsistency
gnss_consistency GNSS 定位一致性 apollo.localization.GnssConsistency
local_lidar_status LiDAR 定位状态 apollo.localization.LocalLidarStatus
local_lidar_quality LiDAR 定位质量 apollo.localization.LocalLidarQuality
gnsspos_position_type GNSS 定位类型 apollo.localization.GnssPositionType
msf_running_status 融合定位运行状态 apollo.localization.MsfRunningStatus

深入了解 LocalizationEstimate 数据类型

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

文档意见反馈

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

apollo_sensor_gnss_corrected_imuapollo_localization_msf_status