# 外部辅助输入数据融合说明

系统支持外接位置、速度、姿态等传感器进行辅助组合导航,以获得更高的导航精度。需要按照我们给定的格式输入相关数据,格式里的标准差数据默认是需要给定的,否则外部融合不生效,下面从三部分对外部输入数据融合进行说明。

# 外部辅助数据格式

其输入格式必须符合FDILink协议格式,具体可见第11章第一节数据帧定义部分:


帧头 数据区 帧尾
起始 指令类别 数据长度 流水序号 帧头CRC8 数据CRC16 载荷 结束
字节数 1 1 1 1 1 2 1-255 1
数值 0xFC A B C D 高字节(E) 低字节(E) 0xFD

其中数据区载荷部分,目前支持的外部输入数据类型如下表所示,其中外部SLAM包含姿态数据,需要输入外部ODOM可以跳转到里程计校准说明章节。

外部输入类型 含义 MSG ID
External Position & Velocity 外部速度位置 0x68
External Position 外部位置 0x69
External Velocity 外部速度 0x6A
External SLAM1 外部SLAM 0x92
External Odom 外部ODOM 0x90

# 外部输入串口模式配置

在FDIGroundStation上位机的config界面,可以在COMM配置框中配置串口模式,在需要外部输入数据到模组里解析融合时,可以配置成如下图红框中所示的几种配置模式,其含义在上表中已说明,具体数据定义可以点击跳转到到FDILink协议部分:

# 外部输入AID开关

在上一节配置完串口外部输入模式后,此时按指定的格式输入数据到该串口后,模组内部就会解析对应的数据。要使该数据参与融合解算,还需要在FDIGroundStation上位机的config界面,AID配置框中勾选相应的融合开关,如下图所示:

# 具体应用案例

假定用户需要输入外部姿态和速度数据到模组里进行融合解算,姿态数据和速度数据在External SLAM1包里有定义,因此,按上面的说明,分四步进行操作:

1)配置COMM模式:如果COM2口没有配置的话(COM3没配置的话也可以),配置COM2口为External SLAM1;

2)配置AID开关:勾选AID配置框的AID_EXT_SLAM1_UPDATE;

3)保存配置:点击该界面右下的SAVE TO FDI按钮,然后在弹出的框中点击Save to Permanent Memory按钮保存上述配置,最后上电重启;

4)按FDILink格式输入数据到配置的串口:本实例是用External SLAM1包,其MSG ID是0x92,载荷部分,除了下图里的Velocity_X,Velocity_Y,Velocity_Z,Roll,Pitch,Yaw这六个数据外,对应的六个标准差数据Velocity_X_standard_deviation,Velocity_Y_standard_deviation,Velocity_Z_standard_deviation,Roll_standard_deviation,Pitch_standard_deviation,Yaw_standard_deviation也需要输入,不能为0。每类数据的标准差代表该数据的噪声大小,越小表示数据越精确,越可靠,在模组进行融合时该数据的权重越大;反之,表示数据越不可靠,在模组进行融合时该数据的权重越小。

Packet ID 0x92
Offset Size Format Field Unit Description 本例中给的值
0 4 float32_t Position_X m X轴坐标 0
4 4 float32_t Position_Y m Y轴坐标 0
8 4 float32_t Position_Z m Z轴坐标 0
12 4 float32_t Velocity_X m/s X轴速度 用户给定
16 4 float32_t Velocity_Y m/s Y轴速度 用户给定
20 4 float32_t Velocity_Z m/s Z轴速度 用户给定
24 4 float32_t Roll rad 横滚角 用户给定
28 4 float32_t Pitch rad 俯仰角 用户给定
32 4 float32_t Yaw rad 偏航角 用户给定
36 4 float32_t Position_X_standard_deviation m X轴坐标标准差 0
40 4 float32_t Position_Y_standard_deviation m Y轴坐标标准差 0
44 4 float32_t Position_Z_standard_deviation m Z轴坐标标准差 0
48 4 float32_t Velocity_X_standard_deviation m/s X轴速度标准差 用户给定,不能为0
52 4 float32_t Velocity_Y_standard_deviation m/s Y轴速度标准差 用户给定,不能为0
56 4 float32_t Velocity_Z_standard_deviation m/s Z轴速度标准差 用户给定,不能为0
60 4 float32_t Roll_standard_deviation rad 横滚角标准差 用户给定,不能为0
64 4 float32_t Pitch_standard_deviation rad 俯仰角标准差 用户给定,不能为0
68 4 float32_t Yaw_standard_deviation rad 偏航角标准差 用户给定,不能为0

下面给出External SLAM1输入数据的一帧示例:

FC 92 48 9A 86 31 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A0 40 00 00 00 00 00 00 00 00 CD CC CC 3D CD CC 4C 3E 00 00 00 3F 00 00 00 00 00 00 00 00 00 00 00 00 0A D7 23 3C 0A D7 23 3C 0A D7 23 3C 6F 12 83 3A 6F 12 83 3A 6F 12 83 3A FD

其中红色标注数据00 00 A0 40表示Velocity_X,数值转换到十进制等于5m/s,其它两个速度均为0;

绿色数据CD CC CC 3D表示Roll,数值转换到十进制等于0.1rad,Pitch和Yaw分别为0.2rad和0.5rad;

蓝色数据 0A D7 23 3C表示Velocity_X_standard_deviation,数值转换到十进制等于0.01m/s,Y轴和Z轴也是0.01m/s;

紫色数据6F 12 83 3A表示Roll_standard_deviation,数值转换到十进制等于0.001m/s,俯仰角和偏航角的标准差也是0.001m/s;