双天线测向
因磁场环境复杂多变,在使用过程中,指南针不一致等情况非常常见;双天线测向可以代替磁罗盘用于无人机导航,满足电力巡检、管道巡检等特殊环境下的应用需求。
双天线测向工作原理:基站与流动站的天线构成一个基线向量,经过差分解算得出基线方向与正北方向的夹角(逆时针);从而获得当前航向。
已验证的硬件有:
此功能在Copter 4.0.4(及更高版本),Plane 4.0.6(及更高版本)和Rover 4.1.0(及更高版本)中可用;C-RTK 9p固件版本应为1.13及以上。
硬件设定
- 两个C-rtk 9p的天线安装距离应当大于30cm(水平)
- 第二个GPS应该连接到飞控的serial4/UART4接口,你也可以安装到任何串行端口,但需要额外配置串口功能。
- 两个GPS模块必须通过其UART1连接器连接到飞控
组装
- 假设第二个GPS连接到串口4,则 SERIAL4_PROTOCOL = 5(“ GPS”)
- GPS_TYPE = 17(“ 移动基站”)
- GPS_TYPE2 = 18(“流动站”)
- 设置 GPS的GPS_POS1_X / Y / Z和 GPS_POS2_X / Y / Z参数(请参见 此处的传感器位置偏移 )
- AHRS_EKF_TYPE = 3(使用EKF3)
- EK2_ENABLE = 0(禁用EKF2)
- EK3_ENABLE = 1(启用EKF3)
- EK3_MAG_CAL = 5(“使用外部偏航传感器”)或6(“具有指南针备份的外部偏航传感器”)
- GPS_AUTO_SWITCH
= 1
其它配置:
为了分辨GPS测向有没起作用了,您可以在调试的时候设置以下参数关闭指南针(建议使用时开启指南针)。
- COMPASS_USE=0
- COMPASS_USE=0
- COMPASS_USE=0
上面的配置假设您希望两个GPS模块之间的RTCMv3数据通过飞行控制器板传输。您可以改为在两个GPS模块上的两个UART2连接器之间安装UART交叉电缆。如果这样做,则可以设置GPS_DRV_OPTIONS= 1,它告诉u-blox GPS驱动程序配置两个GPS模块以通过UART2发送RTCMv2数据。
测试
找一个空旷GPS信号较好的区域,将载具放在地上,等待搜星完成后,通过地面站检查航向于实际地磁方向是否匹配(可以使用手机指南针)。旋转载具,并且报地面站的方向更新与实际地磁方向一致。
如果方向相反,则GPS_POS_xxx参数可能设置不正确。
请注意,两个GPS模块可能需要一些时间才能获得足够好的定位,以使偏航正常工作。ArduPilot GPS驱动程序可以通过几种方式验证该修复程序是否足够好:
- 流动站GPS(GPS2)模块状态为RTK FIX(固定解)
- 两个GPS天线水平位置补偿设置与实际距离误差不大于20%
- 两个GPS天线垂直位置补偿设置与实际距离误差不大于20%
固件版本
4.0 ArduPilot固件版本不支持EK3_MAG_CAL = 6选择。该选择将在4.1.x版本中。使用EK3_MAG_CAL = 6可以使EKF在飞行过程中学习一组指南针偏移,这可以在GPS偏航失败的情况下切换到指南针。