无人机室内编队系统集成(三)

开源飞控px4固件的使用

    • px4外部定位数据协议接口
    • px4提供的引入外部定位信息的Mavlink消息
    • px4外部定位信息启用
    • px4外部航向信息的比重调整

px4外部定位数据协议接口

px4固件对外部定位数据(包括三轴姿态角)的引入提供了现成的功能支持,并提供了相应的Mavlink协议接口。理论上,我们只需要将optitrack定位系统中提供的定位信息(x,y,z三轴位置以及姿态角四元素)按照既定的Mavlink协议格式发送给飞行控制器即可实现飞行器的室内定位。

px4提供的引入外部定位信息的Mavlink消息

查看px4的mavlink协议,可以看到138号消息提供了对Motion capture(即optitrack)姿态和位置数据的引入和支持。
无人机室内编队系统集成(三)_第1张图片
经过测试time_usec时间戳和covariance数据不起作用,可直接置零。
需要注意的是,虽然我们可以从optitrack直接拿到姿态四元数和三轴位置xyz,但是optitrack定义的坐标系方向和px4定义的本地坐标系方向有些不同,需要进行坐标系的旋转才可统一。

px4外部定位信息启用

经过上述步骤,我们虽然已经通过mavlink第138号消息将optitrack提供的定位数据成功灌入到px4中,但是在默认状态下px4使用的是GPS的定位数据,这里需要在QGC(px4原生地面站)中修改名为ATT_EXT_HDG_M的参数值,将其参数值从0改为2即可开启该功能模块。

px4外部航向信息的比重调整

需要注意的是,这里只有xyz三轴位置是直接被飞控采用的,外部三轴姿态中的俯仰和横滚是不被采用的(因为大地坐标和optitrack室内空间坐标都在重力场下,俯仰和横滚是一致的),且外部航向是和磁罗盘数据作融合后作为修正项使用的,这里我们需要提高外部航向的比重,毕竟现在航向定义完全取决于室内定位系统。所以需要将ATT_W_EXT_HDG 参数(外部航向引入的比重)调节到0.8以上(理论上1也是可以的),尽可能保证和飞行器最终使用的航向数据和外部输入航向信息保持一致。

你可能感兴趣的:(无人机室内编队集成)