基于F4/F7/H7飞控硬件和px4飞控固件的廉价自主无人机系统(1)-飞控
前言
穿越机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的错误了。
参考链接:
- 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
- holybro kakute F7:https://docs.px4.io/master/zh/flight_controller/kakutef7.htmlhttps://docs.px4.io/master/zh/flight_controller/kakutef7.html
- holybro kakute H7:https://docs.px4.io/master/zh/flight_controller/kakuteh7.htmlhttps://docs.px4.io/master/zh/flight_controller/kakuteh7.html
- bootloader编译:https://docs.px4.io/master/en/advanced_config/bootloader_update.htmlhttps://docs.px4.io/master/en/advanced_config/bootloader_update.html
- 刷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
- 更新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)-飞控相关推荐
- F4/F7飞控betaflight固件烧写,地面站 BF无法读取、不识别、未发现等飞控疑难杂症问题解决与驱动安装
目录 1.安装驱动 2.测试固件 3.烧录固件 4.寻找补充代码 betaflight/unified_targets/configs/OMNIBUSF4SD.config 5.连接飞控,点击cli命 ...
- 基于PX4的地面无人车避障系统及路径规划研究
基于PX4的地面无人车避障系统及路径规划研究 人工智能技术与咨询 来源:<动力系统与控制> ,作者姜琼阁等 关键词: 地面无人车:避障:PX4: 摘要: 地面无人车避障及路径规划是指,无人 ...
- STM32CubeMX | 基于STM32使用HAL库硬件SPI驱动WK2124一拖四SPI转四路串口芯片
STM32CubeMX | 基于STM32使用HAL库硬件SPI驱动WK2124一拖四SPI转四路串口芯片 STM32基础工程生成 首先使用STM32CUBEMX生成STM32的基础工程,配置时钟到7 ...
- STM32F0/F1/F2/F3/F4/F7编程数据中英文手册(所有型号中文参考手册)
STM32F0/F1/F2/F3/F4/F7编程数据中英文手册(所有型号中文参考手册) 免费获取STM32所有手册 ST官方免费的资料不应该共享的吗?怎么还欺负人,明码标价.进入官方,第一个就是. 感 ...
- 工业机器人-基于伺服电机的PMSM控制系统硬件电路设计
第十章 基于单片机的PMSM控制系统硬件电路设计 10.1 硬件电路设计概述 在对腕关节的控制器的设计上,主要采用单片机作为主控制器,通过双电源为控制机和伺服电机进行供电,从而保障机械臂的正常使用.电 ...
- LCD接口设计系列一:基于eDP接口屏的硬件电路设计
LCD的接口类型较多,主要有RGB接口.LVDS接口.eDP接口.MIPI-DSI接口.HDMI接口等,这些接口的定义/协议/特点等各有不相同,一直想对这些接口电路做一个总结.由于涉及到的内容比较多, ...
- 智能家居-2.基于esp8266的语音控制系统(硬件篇)
智能家居-1.基于esp8266的语音控制系统(开篇) 智能家居-2.基于esp8266的语音控制系统(硬件篇) 智能家居-3.基于esp8266的语音控制系统(软件篇) 赞赏支持 QQ:505645 ...
- LCD接口设计系列二:基于LVDS接口屏的硬件电路设计
LCD的接口类型较多,主要有RGB接口.LVDS接口.eDP接口.MIPI-DSI接口.HDMI接口等,这些接口的定义/协议/特点等各有不相同,一直想对这些接口电路做一个总结.由于涉及到的内容比较多, ...
- PX4原生固件SPI驱动动编写与IMU传感器替换
适用于PX4原生固件 核心目标:完成XSENS的MTI3,IMU替换.MTI3是一款航姿参考系统,可以独立的输出四元数,加速度,磁力计等,角速度等航姿信息.里面有完整的卡尔曼滤波,可以替换飞控本身里面 ...
- ROS实验笔记之——基于Prometheus自主无人机开源项目的学习与仿真
最近在公众号上看到Prometheus无人机的资料,发现里面开源了很好的无人机的仿真环境,并且有很好的教程.而本人正好在上<Introduction to Aerial Robotics> ...
最新文章
- make太慢了,加快编译速度的方法 make -j
- 超级计算机 任务提交,vasp在超算中心的任务提交 - 第一原理 - 小木虫 - 学术 科研 互动社区...
- 任正非说到做到:华为正与美企谈判,授权转让5G技术
- MySQL数据库备份和还原的常用命令小结
- Linux命令集合(更新中。。。)
- 【AI产品】五一出游赏花草,你一定需要这款“形色”
- Java从入门到精通08-二进制、位运算、移位运算
- weblogic简单介绍
- cnpm 网络不能连接_5G网络那么牛,能打电话吗?(连载二)
- jquery双击修改_jQuery双击
- 北京住房仰视链,你在第几层?
- excel 2016 英文界面 更换 中文界面
- 基于LSTM、KNN等模型的平安银行股价预测对比研究(python)
- 减速器的参数优化 毕业设计 matlab,基于MATLAB的圆柱齿轮减速器优化设计
- android 第三方键盘,6款Android平台第三方输入法横评
- Google Safe Browsing API的实施
- 不同收入水平职工家庭 申请公积金贷款情况
- 使用SHP数据批量裁剪TIF图像并转为JPG格式
- WebSocket connection to 'ws://localhost:8080/shipinceshi/video/1546871583183
- 思科模拟器CISCO/华为模拟器ENSP配置一个完整的校园网(网络安全、数据冗余)
热门文章
- mysql cnf和ini区别_再谈mysql的配置文件my.ini or my.cnf (之一) .
- Flash actionscrip视频教程
- 测试知识总结1 —— 测试的分类
- 动画开发之PIXI开发
- 成长与发展---怎么给博士军团当好“博导”?(PL)
- 去除字符串中的特殊符号及表情
- CORTEX-M4F基本知识
- 计算机专业买啥样笔记本,高考结束,想学计算机专业,买台啥样的笔记本比较好,暑假自学c和cpp...
- GLM(General Language Model)代码分析
- 数据库系统概论练习4