# 外部辅助输入数据融合说明
系统支持外接位置、速度、姿态等传感器进行辅助组合导航,以获得更高的导航精度。需要按照我们给定的格式输入相关数据,格式里的标准差数据默认是需要给定的,否则外部融合不生效,下面从三部分对外部输入数据融合进行说明。
# 外部辅助数据格式
其输入格式必须符合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;
← SPKF融合开关说明 固件升级 →