👉👉👉**推荐硬件链接,店家提供全程指导**👈👈👈
文章目录
==👉👉👉**[推荐硬件链接,店家提供全程指导](https://item.taobao.com/item.htm?spm=a1z10.1-c.w137644-23632941727.26.118775c2oUPAnL&id=688860713104)**👈👈👈==前言一、刷bootloader二、刷PX4固件并调参三、PX4 1.13.0固件调参
前言
硬件:F4sd飞控一个,usb线一个 测试过可用的f4飞控有下面两种 ![在这里插入图片描述](https://img-blog.csdnimg.cn/73e485e3d43048498651f8c5dfd69f98.png)
软件:px4 1.10.1 stable版或更高版本 QGC地面站 参考连接 https://docs.px4.io/master/en/flight_controller/omnibus_f4_sd.html
一、刷bootloader
首先按住boot0 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e8c6413cc2fa4a088e813d2197e27c00.png)
通过usb连到电脑 打开zadig,选择Options->List All Devices 选择STM32 BOOTLOADER,然后点击Reinstall Driver 安装成功后,断电,按住boot0,重新上电 打开INAV ![在这里插入图片描述](https://img-blog.csdnimg.cn/6cc6a8aef6e84af68a43c1c7c69a9f31.png)
显示DFU表示驱动正常
![在这里插入图片描述](https://img-blog.csdnimg.cn/22c52a415cd34e718a0a57267913f6c5.png)
按上图设置,点击右下加载Firmware 我这里下载的bl是px4最新的f4bl, 选择好后点击下载 下载完后插掉usb
二、刷PX4固件并调参
打开qgc 切换到固件下载的页面,插上飞控 我这里下载的是最新的PX4固件 下载完后查看端口如下 表示固件下载完毕 打开QGC,连上飞控后,将机型设为四旋翼 接下来就是校准传感器之类的 在调试的时候遇到一个问题,我是按官网的步骤将接收机用sbus协议接的uart1,但是飞控识别不到接收机。解决办法是用ppm协议,将板子上的ppm脚短接,将接受机接到RCIN口
将飞控装到无人机上,接上电调,我这里是用ubec给飞控供电,f4好像可以直接用电池供电,我第一次用,还没试过,ubec的正极接VBAT接口,负极接地。 笔者下完PX4固件后,发现没有姿态信息 解决办法,在nsh终端先执行
attitude_estimator_q stop
再执行
attitude_estimator_q start
attitude_estimator_q stop 最后还有一个问题 F4的板子上是有气压计的,但是飞控并没有解算出高度信息,先检查气压计 发现是有数据的 我一开始以为是解算的算法设置有误, 于是将这里改成带lpe的,但是没有效果,原因在于这里
可以把这几行去掉,或者手动启动lpe 在四旋翼启动脚本里加入 local_position_estimator start 重新编译烧录 这个时候高度可以正常解算,也可以切定高。 需要注意的是,因为f4没有磁力计,所以不能使用ekf进行状态估计,要想用ekf,需要外接一个磁力计。 我这里用的是一个带罗盘的gps
GPS线头定义如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/06d49107611f47c18af4519a0705927f.png)
将gps的iic接口接到飞控的iic(和uart3是复用的)口上。 注意编译脚本里要有磁力计的驱动,如果被注释的话要取消注释 然后在qgc中使能一下磁力计 终端测试一下正常 将解算方式换成ekf2,注意如果用ekf2的话,就不需要按上面的将lpe在启动脚本里启动了,因为ekf2本身可以结算位置,如果再用lpe会导致重复发布两个不同的位置 然后就可以校准罗盘了。 我这里GPS是接的uart6,所以将GPS的接口要改一下 uart6的波特率也要改一下 终端测试一下 在室内,所以是0颗星 固件里默认只有usb口做mavlink的通讯接口,如果要接数传的话还要配置下mavlink,f4里只有一个telem2用作数传口,配置如下 将飞控上的rssi作为tx,pwm5作为rx接到数传上,我这里的RSSI口在下图位置,有的f4飞控的RSSI口在排针上,根据具体的飞控来即可。 接好后数传可以连地面站,但是只能显示高度,不能显示姿态,用commander等命令也提示找不到,解决办法是将mavlink的模式设为config 到此基本所有问题都解决了 接好后校准一下电调 其他都校准好了就可以解锁试飞了
三、PX4 1.13.0固件调参
PX4 1.13.0固件与前面的固件调参方法类似,但有一些区别。 刷完PX4固件后,bmp280和mpu6000可以正常识别,可以通过四元数互补滤波解算姿态。 通过第二节的方法接上乐迪的GPS后,可以识别到hmc5883以及GPS PX4 1.13.0固件默认没有编译EKF2。所以无法使用EKF2,如果想使用EKF2,可以修改编译脚本 添加一行
CONFIG_MODULES_EKF2=y
同时将CONFIG_MODULES_ATTITUDE_ESTIMATOR_Q和CONFIG_DRIVERS_IMU_INVENSENSE_ICM20602改成n,也就是不编译 如果不把CONFIG_MODULES_ATTITUDE_ESTIMATOR_Q和CONFIG_DRIVERS_IMU_INVENSENSE_ICM20602改成n取消编译的话,编译固件的时候会报下面内存不够的错: 编译完下载到飞控,设置SYS_MC_EST_GROUP为ekf2,然后重启飞控 重启后飞控能正常解算位姿,ekf2状态如下 注意接收机只能用ppm模式
|