前言

穿越机F4/F7/H7飞控是一系列采用stm32系列F4xx和F7xx处理器的飞控的统称,是目前穿越机爱好者非常喜欢使用的飞控硬件,其价格也非常便宜180~410。

而px4则是一款常见的开源飞控固件,是自主无人机系统开发中非常常用的飞控固件。但是其对应的硬件往往都比较贵,即使是早期的pixhawk版本也要600+。

如果要开发一款廉价自主无人机系统,那么采用F4/F7/H7飞控硬件配合px4飞控固件是一种非常好的组合,但是需要很多的修改才能实现。

本系列文章将一步一步的通过修改F4/F7/H7飞控硬件和px4飞控固件、并搭载一些必要的设备,搭建一套廉价自主无人机系统。


飞控硬件选择

生产F4/F7/H7飞控硬件的厂家很多,也有一些自制的硬件。不论是F4、F7还是H7飞控,他们的处理器一般都是stm32f4xx和stm32f7xx。而px4固件本身除支持标准的pixhawk系列外,还支持一些其他厂家的飞控固件,其中F4系列中被比较好支持的是omnibus f4 sd系列, F7和H7系列中支持比较好的是holybro的kakute F7和H7系列飞控。

对于F7和H7,目前F7只能买到F7 mini(300+),H7则都可以买到(400+),推荐买H7系列。

对于F4,选择则非常多,但是也有很多坑。

首先,购买时一定要看是否是omnibus F4,否则不保证能成功。

而对于支持omnibus F4的飞控中,还要避开的大坑就是传感器。很多商家卖的F4飞控版本非常多,常见的有:F4 pro v2,F4 v3,F4 v3s, F4 v3 plus。其实版本不是很重要,但是重要是以下两点:1. IMU,2. 气压计。

IMU

这个是个巨坑!购买时千万不要只看网页说明,要问店家要实物图片看。F4支持的IMU很多,包括:MPU6050,L3G4200D,MPU3050,L3GD20,MPU6000,MPU6500,MPU9250,ICM20601,ICM20602,ICM20608G,ICM20649,ICM20689,ICM42605,ICM42688P,BMI160,BMI270,LSM6DSO。而px4的omnibus f4固件支持的IMU则包括:MPU6000,ICM20602,ICM20608G,ICM42670,ICM42605,ICM42688P等。可以看到,交集挺多,但是目前我只遇到这MPU6000和ICM20608g/IC268g这两种px4固件支持且F4常用的IMU。尤其注意F4 V3 plus这个版本,一定要和店家确认用的是不是mpu6000,我买的用的都看不出来是哪款IMU,估计是bmi280,px4不支持!!!

气压计

许多F4飞控没有气压计!!!这个一定要注意!

主要看硬件参数就可以,F4常用的气压计型号为bmp280。所以只要包含这个,就有气压计。

GPS和电子罗盘

另外,要实现自主飞行,F4/F7/H7系列还缺少的就是电子罗盘,而常见的解决方案就是北天GPS出品的BN880模块,该模块既有GPS还有一个常见的电子罗盘芯片HMC5883。有了这两个,就可以实现有GPS下使用auto mission进行飞行了。

推荐购买:

目前淘宝上能买到的可用的是F4 pro V2这个版本的飞控(截止2022年5月10日),这个搭载的IMU是IC268g(ICM20608g);holybro的kakute H7/H7 mini以及F7 mini,搭载MPU6000。


固件更新

一般F4/F7/H7购买时都可以选择刷好了固件,但是可选的固件是不包含px4的。这里推荐选择让店家默认刷betaflight的固件,也就是BF固件。

然后就可以利用betaflight configurator来实现刷px4固件了。

betaflight configurator的下载链接如下:

https://github.com/betaflight/betaflight-configurator/releases/latesthttps://github.com/betaflight/betaflight-configurator/releases/latest

下载后,为了刷px4固件,则需要先给飞控刷上bootloader。这里可以先刷上官方的bootloader,链接为:

https://github.com/PX4/PX4-user_guide/tree/master/assets/flight_controller/omnibus_f4_sdhttps://github.com/PX4/PX4-user_guide/tree/master/assets/flight_controller/omnibus_f4_sd

由于这个bootloader很老了,所以如果默认用这个,在后期修改px4固件代码并编译后再刷固件后,可能会在Qgroundcontrol上遇到以下错误:

Fail: No CPU load information

这是因为bootloader和px4固件不匹配的原因,方法也很简单,就是更新bootloader。


F4/F7飞控更新bootloader

对于F4飞控的bootloader刷机的方法如下:

https://docs.px4.io/master/en/advanced_config/bootloader_update_from_betaflight.htmlhttps://docs.px4.io/master/en/advanced_config/bootloader_update_from_betaflight.html首先就是下载bootloader的代码:

git clone --recursive  https://github.com/PX4/Bootloader.git
cd Bootloader
make <target> upload # For example: omnibusf4sd_bl or kakutef7_bl

完成编译后,可利用betaflight configurator进行bootloader的刷机。


H7飞控更新bootloader

对于H7飞控的bootloader刷机的方法如下:

https://docs.px4.io/master/en/advanced_config/bootloader_update.htmlhttps://docs.px4.io/master/en/advanced_config/bootloader_update.html直接在飞控固件里进行编译,并利用QGroundcontrol进行bootloader的更新即可。


利用以上方法更新bootloader后,接可以编译固件了。固件的下载地址为:

https://github.com/PX4/PX4-Autopilot.githttps://github.com/PX4/PX4-Autopilot.git默认编译和上传如下:

make omnibus_f4sd_default upload

如果更新bootloader和固件后,仍然有no cpu load information的提示,也可以用暴力的方法解决。

这个问题的核心就是preflight check里需要保证飞控的cpu负载不要过高,默认设置是90%以下才能解锁。所以暴力的方法就是不让飞控检查cpu负载即可。方法如下:

在QGroundControl里的vehicle setup里,在parameters下面搜索COM_CPU_MAX,并把这个值设置为-1,即为不检查cpu的负载了。

如此设置后,无人机就不会继续报no cpu load information的错误了。


参考链接:

  1. Omnibus F4 SD:https://docs.px4.io/master/zh/flight_controller/omnibus_f4_sd.htmlhttps://docs.px4.io/master/zh/flight_controller/omnibus_f4_sd.html
  2. holybro kakute F7:https://docs.px4.io/master/zh/flight_controller/kakutef7.htmlhttps://docs.px4.io/master/zh/flight_controller/kakutef7.html
  3. holybro kakute H7:https://docs.px4.io/master/zh/flight_controller/kakuteh7.htmlhttps://docs.px4.io/master/zh/flight_controller/kakuteh7.html
  4. bootloader编译:https://docs.px4.io/master/en/advanced_config/bootloader_update.htmlhttps://docs.px4.io/master/en/advanced_config/bootloader_update.html
  5. 刷bootloader:https://docs.px4.io/master/en/advanced_config/bootloader_update_from_betaflight.htmlhttps://docs.px4.io/master/en/advanced_config/bootloader_update_from_betaflight.html以及https://mbot1.blog.csdn.net/article/details/106988811https://mbot1.blog.csdn.net/article/details/106988811
  6. 更新bootloader:https://docs.px4.io/master/en/config/firmware.html#bootloaderhttps://docs.px4.io/master/en/config/firmware.html#bootloader

基于F4/F7/H7飞控硬件和px4飞控固件的廉价自主无人机系统(1)-飞控相关推荐

  1. F4/F7飞控betaflight固件烧写,地面站 BF无法读取、不识别、未发现等飞控疑难杂症问题解决与驱动安装

    目录 1.安装驱动 2.测试固件 3.烧录固件 4.寻找补充代码 betaflight/unified_targets/configs/OMNIBUSF4SD.config 5.连接飞控,点击cli命 ...

  2. 基于PX4的地面无人车避障系统及路径规划研究

    基于PX4的地面无人车避障系统及路径规划研究 人工智能技术与咨询 来源:<动力系统与控制> ,作者姜琼阁等 关键词: 地面无人车:避障:PX4: 摘要: 地面无人车避障及路径规划是指,无人 ...

  3. STM32CubeMX | 基于STM32使用HAL库硬件SPI驱动WK2124一拖四SPI转四路串口芯片

    STM32CubeMX | 基于STM32使用HAL库硬件SPI驱动WK2124一拖四SPI转四路串口芯片 STM32基础工程生成 首先使用STM32CUBEMX生成STM32的基础工程,配置时钟到7 ...

  4. STM32F0/F1/F2/F3/F4/F7编程数据中英文手册(所有型号中文参考手册)

    STM32F0/F1/F2/F3/F4/F7编程数据中英文手册(所有型号中文参考手册) 免费获取STM32所有手册 ST官方免费的资料不应该共享的吗?怎么还欺负人,明码标价.进入官方,第一个就是. 感 ...

  5. 工业机器人-基于伺服电机的PMSM控制系统硬件电路设计

    第十章 基于单片机的PMSM控制系统硬件电路设计 10.1 硬件电路设计概述 在对腕关节的控制器的设计上,主要采用单片机作为主控制器,通过双电源为控制机和伺服电机进行供电,从而保障机械臂的正常使用.电 ...

  6. LCD接口设计系列一:基于eDP接口屏的硬件电路设计

    LCD的接口类型较多,主要有RGB接口.LVDS接口.eDP接口.MIPI-DSI接口.HDMI接口等,这些接口的定义/协议/特点等各有不相同,一直想对这些接口电路做一个总结.由于涉及到的内容比较多, ...

  7. 智能家居-2.基于esp8266的语音控制系统(硬件篇)

    智能家居-1.基于esp8266的语音控制系统(开篇) 智能家居-2.基于esp8266的语音控制系统(硬件篇) 智能家居-3.基于esp8266的语音控制系统(软件篇) 赞赏支持 QQ:505645 ...

  8. LCD接口设计系列二:基于LVDS接口屏的硬件电路设计

    LCD的接口类型较多,主要有RGB接口.LVDS接口.eDP接口.MIPI-DSI接口.HDMI接口等,这些接口的定义/协议/特点等各有不相同,一直想对这些接口电路做一个总结.由于涉及到的内容比较多, ...

  9. PX4原生固件SPI驱动动编写与IMU传感器替换

    适用于PX4原生固件 核心目标:完成XSENS的MTI3,IMU替换.MTI3是一款航姿参考系统,可以独立的输出四元数,加速度,磁力计等,角速度等航姿信息.里面有完整的卡尔曼滤波,可以替换飞控本身里面 ...

  10. ROS实验笔记之——基于Prometheus自主无人机开源项目的学习与仿真

    最近在公众号上看到Prometheus无人机的资料,发现里面开源了很好的无人机的仿真环境,并且有很好的教程.而本人正好在上<Introduction to Aerial Robotics> ...

最新文章

  1. make太慢了,加快编译速度的方法 make -j
  2. 超级计算机 任务提交,vasp在超算中心的任务提交 - 第一原理 - 小木虫 - 学术 科研 互动社区...
  3. 任正非说到做到:华为正与美企谈判,授权转让5G技术
  4. MySQL数据库备份和还原的常用命令小结
  5. Linux命令集合(更新中。。。)
  6. 【AI产品】五一出游赏花草,你一定需要这款“形色”
  7. Java从入门到精通08-二进制、位运算、移位运算
  8. weblogic简单介绍
  9. cnpm 网络不能连接_5G网络那么牛,能打电话吗?(连载二)
  10. jquery双击修改_jQuery双击
  11. 北京住房仰视链,你在第几层?
  12. excel 2016 英文界面 更换 中文界面
  13. 基于LSTM、KNN等模型的平安银行股价预测对比研究(python)
  14. 减速器的参数优化 毕业设计 matlab,基于MATLAB的圆柱齿轮减速器优化设计
  15. android 第三方键盘,6款Android平台第三方输入法横评
  16. Google Safe Browsing API的实施
  17. 不同收入水平职工家庭 申请公积金贷款情况
  18. 使用SHP数据批量裁剪TIF图像并转为JPG格式
  19. WebSocket connection to 'ws://localhost:8080/shipinceshi/video/1546871583183
  20. 思科模拟器CISCO/华为模拟器ENSP配置一个完整的校园网(网络安全、数据冗余)

热门文章

  1. mysql cnf和ini区别_再谈mysql的配置文件my.ini or my.cnf (之一) .
  2. Flash actionscrip视频教程
  3. 测试知识总结1 —— 测试的分类
  4. 动画开发之PIXI开发
  5. 成长与发展---怎么给博士军团当好“博导”?(PL)
  6. 去除字符串中的特殊符号及表情
  7. CORTEX-M4F基本知识
  8. 计算机专业买啥样笔记本,高考结束,想学计算机专业,买台啥样的笔记本比较好,暑假自学c和cpp...
  9. GLM(General Language Model)代码分析
  10. 数据库系统概论练习4