PIXHAWK飞控可以运行PX4原生固件和APM固件,我这里用的是PX4原生固件,因为这款固件是专门为PIXHAWK量身打造的,两者合起来性能更强。不过据说APM固件因为其比较完善,更加稳定,但是PX4原生固件经过越来越多的专业人士的维护,也可以说有与APM有并驾齐驱的能力。
PX4的外部控制一般可以有三种思路。
第一:利用外载计算机发送PWM波来控制,也就是做一个遥控器,不过这个遥控器的功能是程序设定死的,而且是通过导线与飞控连在一起的。这种方法适合做一些电子设计大赛这样时间比较紧凑的赛事,但基本上没有什么技术水平,就是设定好通道的PWM波和相应的占空比就行。
第二:利用外载计算机发送MAVLINNK协议来进行offboard模式,进而控制飞控。APM固件是引导模式,和offboard模式还是有点区别,这里只探讨后者。这种offbaord模式的控制需要发送相关的数据流和offboard心跳包,还好官网上有相关的例程,是一个利用mavros来控制的,很简单,这个下次再进行探讨。可以设定好航点和飞机的姿态,速度等信息,非常方便,最好用遥控器的其中一个开关来控制offboard的使能和失能,这样比较安全。
第三:飞控内部进行offboard控制,外部计算机发送串口数据。可以在PX4固件的内部利用uorb的消息机制进入offboard模式,并提前设定好航点,航点的信息可以来自串口,这样需要开一个串口进程,这个例子在网上很多。外载计算机处理好相关信息后,通过串口发送给飞控板,飞控板内部接收到数据后进行处理再去飞特定的航点。这样的一个缺点就是无法再利用遥控器控制,比较危险。
写程序还有很多步骤,也要加很多东西,我也是参考阿木实验的文献资料才搞好,希望写的资料给大家一点启发,有问题可以给我留言,或者发邮件2957672826@qq.com大家共同探讨。