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.000000000msf_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.006024521msf_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_XXapollo.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)的关系,参见 消息格式。
文档意见反馈
如果您在使用文档时遇到任何问题,请到我们在【开发者社区】建立的 反馈意见收集问答页面,反馈相关的问题。我们会根据反馈意见对文档进行迭代优化。