利用px4flow实现四旋翼室内定点悬停

    最近博主在玩一个无人机比赛,需要完成一些室内飞行的任务。于是,为了增强飞行的可靠性,用到了px4flow光流模块,当然这需要和pixhawk飞控来配套使用。首先简单介绍一下这个模块,它是基于光流不不变性假设,求解xy平面的速度。px4flow还自带超声波模块,用于测量高度。所以,飞控只要使xy平面速度为0,且高度不变,就能实现室内定点悬停。该模块的详细说明可以参考http://www.pixhawk.com/zh/modules/px4flow

调试这个模块的时候,也遇到了不少坑,在此罗列一下,免得以后我忘记了再踩一遍。。。

1 如何用QGroundControl来启用光流模块?

    博主在网上搜资料的时候,铺天盖地都是MP怎么启用光流模块的资料,但很少有人说QGroundControl怎么启用它。其实,个人认为,QGroundControl要比MP来得简洁好用很多(个人观点,不喜勿喷),所以一定想把这个坑踩了。

    跟大家推荐这篇文章http://ardupilot.org/copter/docs/common-px4flow-overview.html,从模块说明、驱动安装、测试方法、测试视频都有,非常全,博主是按照他的说明一步一步来的。但是,重点来了,他并没有告诉我们如何用QGroundControl来enable光流模块。博主就去自己倒腾了一番,总算找到了enable的方式。其实跟MP一样,只要改一个参数就可以啦。如图所示,我们只要修改EKF2_AID_MASK参数为2,即开启光流,禁用gps就可以啦。

利用px4flow实现四旋翼室内定点悬停_第1张图片

2 px4flow的供电问题

   其实这是一个坑点。我把px4flow直接接到I2C接口上,然后解锁,发现飞控一直报错,报错信息是电压低。我很无语,查了资料,发现还真有人跟我出过同样的问题。这里吐槽一下px4,在设计飞控的扩展模块的时候,并未考虑硬件稳定性。我尝试了电源再分一路给px4flow供电,效果也并不理想,依旧会出现电压低的报错信息。后来,我发现,把数传拔了,就能成功解锁了。推测原因应该是数传分走了飞控的一部分电流。说实话这个真的是玄学,将就着用吧,反正没数传也不影响飞行。

    最后,经过了几天的调试,飞机终于在室内能够定点悬停了。悬停时的效果和px4flow的demo效果差不多,我把动图也传上来,大家可以在动图上看看。

你可能感兴趣的:(利用px4flow实现四旋翼室内定点悬停)