APMapm飞控固件版本查看哪个版本好用

1698人阅读
四旋翼无人机(4)
& & & & “工欲善其事,必先利其器”。在进行无人机飞控开发时,选择一个合适的软硬件平台以及IDE是十分重要的。目前,APM飞控成熟度高,开发工具齐全,社区建设完善,开发者文档丰富,适合开源选手入门和二次开发。因此,本系列博客以APM飞控作为切入点,在Windows环境下介绍其代码结构和开发应用。
APM系统介绍
& & & &&APM全称ArduPilotMega,Ardu源自Arduino,Pilot意指飞行,Mega代表主芯片为ATMEGA2560(Atmel公司的8位AVR单片机)。是的,没有看错,一个简单8位单片机竟完成了如此复杂的飞控任务! 51单片机表示哭晕在厕所,同为8位出身,命运截然不同。笔者大概是2011年接触的单片机,当时也同大多数初学者一样,从经典的51单片机入门,一个个模块、寄存器的学习,曲线虽说不上陡峭,但至少不那么友好。反观Arduino,近3年在国内迅速崛起,除了Geek文化和开源文化的普及,一个很关键的原因在于Arduino让不懂硬件电路的普通人(甚至小学生)也能轻松上手硬件了。没有了烦人的寄存器,没有了纷繁的头文件,一个setup()和一个loop(),再加一个自带教程的简洁IDE,Arduino名副其实——源自意大利的男姓用名,意为“强壮的朋友”。世界如此美好,我想和Arduino做朋友。
& & & &&APM内置六轴MEMS传感器MPU6000,气压计MS-5611,三轴磁力计HMC5883,一般还会配置GPS模块,以便更精确的惯性导航。其中,MPU6000整合了三轴陀螺仪和三轴加速度计,积分可得速度和位姿。MS-5611通过测量气压得到高度,辅助GPS定位。HMC5883通过测量地磁场得到方位,辅助无人机定向。飞控采集并融合多种传感器的数据,计算并校正无人机的位姿。给APM一张正面裸板特写!
APM与PIXHAWK的关系&&&&&&&&
&&&&&&& 说到APM,就不得不提它的进化版:PX4和PIXHAWK,来自苏黎世联邦理工大学。“PX4是一个软硬件开源项目(遵守BSD协议),目的在于为学术、爱好和工业团体提供一款低成本、高性能的高端自驾仪。PX4FMU自驾仪模块运行高效的实时操作系统(RTOS),Nuttx提供可移植操作系统接口(POSIX)类型的环境。由3DR联合APM小组与PX4小组于2014年推出的PIXHAWK飞控是PX4飞控的升级版本,拥有PX4和APM(ArduPilot)两套固件和相应的地面站软件,也是目前全世界飞控产品中硬件规格最高的产品。”
& & & &&好了说人话,目前主流就2种:APM和PIXHAWK。有时指硬件,有时指软件(固件),为了明确,在此做个区分。硬件分2种:APM和PIXHAWK。APM的版本有2.5,2.6和2.8,PIXHAWK的版本有v1和v2。软件也分2种:APM和PX4。软件版本就多了去了,详见github。APM硬件由于存储空间有限,最高支持到3.2.1的APM软件。PIXHAWK硬件是STM32F4,存储空间大,对APM软件(3.2.1之后的版本也支持)和PX4都支持。
&&&&&&& APM和PIXHAWK都开源,不过二者遵守的开源协议不同。APM多用于DIY和小型产品,某宝上大量的无人机就采用APM,成本低。公司商用一般采用PIXHAWK。目前很多PIXHAWK里跑的还是APM固件,个人认为有几大原因:1. APM固件出来的更早,使用人群习惯的延续;2. APM固件成熟度更高、资料更全。3. APM固件走开源路线更彻底,遵守GPL V3协议,PX4更倾向商业和实验用途,遵守BSD协议。目前APM小组已和PX4小组分道扬镳,详见新闻:。
APM固件下载
& & & &&刚提到APM硬件的最高版本为2.8,现在说说APM固件(源码)的版本。既然是开源项目,那么在github上肯定有仓库。曾经的APM源码存于,后来github席卷全球,成为广泛接受的代码仓库,于是谷歌把自己的仓库关了(反正国内也上不去:-()。github上的源头在此:。其中的ArduCopter支持多旋翼、直升机等,四旋翼源码即在其中,但是别急着下载,先点击release看看源码版本。可以看到带Copter的最新版本是“Copter-3.4.0”,带ArduCopter的最新版本是“ArduCopter-3.2.1-apm-px4”,很多朋友直接参照网上的《通过Arduino给APM编译下载最新固件》用git克隆代码到本地,发现无法使用,问题就在于git获取的是最新版,而APM支持的最高版本是“ArduCopter-3.2.1-apm-px4”,从命名也可以发现,该版本固件同时支持APM和PX4。
& & & &&获取ArduCopter-3.2.1版本的源码有2种方式:I. 在github页面点击release,往下翻几页,找到“”下载即可。II. 喜欢git的朋友在克隆最新代码后,也可以回退到3.2.1的版本,与第一种方法获得的源码无异。
git clone /ArduPilot/ardupilot.git
cd ardupilot/
git branch -a
git checkout -b arducopter-3.2.1 origin/ArduCopter-3.2.1
& & & &&使用方法解压之后就可以看到源码啦,结构如下。其中,APMrover2支持地面车辆,ArduPlane支持固定翼,ArduCopter支持多旋翼和直升机。对于四旋翼的开发,就对应ArduCopter文件夹。值得一提的是,打开ArduCopter文件夹后,可以看到一大波.pde文件,.pde为Arduino文件的旧版后缀,新版的为.ino(Arduino的后3个字母),可以简单类比成.cpp文件。熟悉C++的朋友可能会想去找main文件,这回改头换面了,主文件叫ArduCopter.pde。
APM开发环境
& & & &&巧妇难为无米之炊”,现在米有了,用什么工具做饭呢。先把火备好,即编译的:MHV_AVR_Tools_.exe(AVR单片机编译和下载程序用)和MissionPlanner-latest.msi(飞控地面站,含APM的USB接口驱动)。接下来就是用什么灶台做饭了,以Windows平台为例,灶台根据方便程度有2种:I.
土灶:(为ArdupPilot定制的Arduino IDE)。II. 电磁炉:Visual Studio配合Visual Micro插件(Arduino for Visual Studio插件)。二者本质没有区别,可以看到都是调用gcc工具链,Visual Studio只是通过Visual
Micro在上层封装了操作接口,便于程序员查看和编写代码。强烈建议使用Visual Studio!!!
环境I(轻量). Arduino IDE
& & & &&先介绍Arduino派的IDE:ArduPilot-Arduino-1.0.3-gcc-4.7.2-windows,此IDE不同于普通的Arduino IDE,而是为ArdupPilot定制的。解压之后,打开“arduino.exe”,一张白板扑面而来。唯一和飞控有关的就在菜单栏上,相比通用ArduinoIDE多了“ArduPilot”一项。工具栏的“√”是编译,“→”是下载。
& & & &&点击“文件-&参数设置”,可设置程序库的位置,即APM源码位置,注意不要勾选“启动时检查更新”,因为本IDE专为ArduPilot定制。其他选项可根据个人喜好设置。
& & & &&设置完成后退出再重开,以保证程序库位置生效。点击“文件-&程序库-&ArduCopter”,源代码一览无余。之后配置APM固件,主芯片:“工具-&板卡-&Arduino Mega 2560 or Mega ADK”,串口:“工具-&串口-&相应USB串口”(确保驱动已安装),编程器:“工具-&编程器-&AVRISP mkll”(默认),APM硬件型号:“ArduPilot-&HALBoard-&ArduPilot Mega 2.x”。
& & & &&至此,Arduino IDE的完毕,可以点击编译了。等待3分钟左右,编译完毕,生成一个hex文件用于下载到APM板。
& & & &&切记:不要下载!不要下载!不要下载!下载会变砖!
环境II(推荐). Visual Studio&Visual Micro
& & & &&Arduino IDE编译APM的代码还可以,但要是用来浏览和编写代码,那就是千丝万缕扭不清了,所以ArduinoIDE的设置里也机智地留下一条后路:“□使用外部编辑器”。
& & & &&Visual Studio(以下简称VS)作为宇宙最强IDE,怎么能不支持下Arduino,感谢微软救民于水火。以VS2012为例,点击“工具-&扩展和更新-&联机”,搜索“Visual Micro”,下载安装即可。顺便推荐下Visual Assist,VS下最好的代码补全工具,以前写1行代码的功夫,现在可以写3行~
& & & &&安装好之后,VS的菜单栏多了一些振奋人心的东西。“VMICRO”中可设置Arduino的选项,点击“VMICOR-&Visual Micro Explorer”,如下图所示。对比Arduino IDE可发现,编译、下载、COM口应有尽有,还可适配不同的Arduino 版本。
& & & &&点击“Configure”进行配置,选择Arduino版本:1.0,配置Arduino目录,笔者的是:D:\Fly\ArduPilot-Arduino-1.0.3-windows,即ArduPilot-Arduino-1.0.3-gcc-4.7.2-windows解压后的文件夹。注意此插件的名字是“Arduino IDE for Visual Studio”,并不是专为Ardupilot/APM定制,因此还需适配(点击蓝字链接下载,解压后为一名为apm的文件夹,内仅含boards.txt)。将该apm文件夹放入D:\Fly\ArduPilot-Arduino-1.0.3-windows\hardware中。配置完成之后,可在“Installed”选项卡中查看支持的硬件类型,如所需的“Arduino
Mega 2560 HAL (Apm 2)”,插上APM后在COM口选择对应的串口号。此外,在“Examles”选项卡中可查看Arduino和ArduCopter的例程。
& & & &&重启VS,点击“文件-&打开-&Arduino Project”,选择ArduCopter文件夹中的ArduCopter.pde打开,即可在“解决方案资源管理器”中看到APM的源码结构。解释一下,ArduCopter.pde相当于平时常见的Main.cpp,在ArduCopter.pde的最后一行是真正的main函数。
AP_HAL_MAIN();
& & & & 除此之外,有一点需要注意,在“VMICRO”中,“Debugger”取消勾选“Automatic Debug(Release/Debug)”,否则会编译失败。因为APM2.8不支持在线Debug,同时对于“多线程”程序,Debug本身意义不大,一般采用串口print进行调试以便观察程序流程。对于普通Arduino板(如nano)可以勾选,下载后会自动进入调试状态。
& & & &&至此,Visual Studio&Visual Micro的配置完毕,又可以愉快地编译了。同样等待大概3分钟左右,可以看到编译完成,生成一个hex文件用于下载到APM板。对于编译,第1次会较慢,修改代码再次编译就很快了。
& & & &&切记:不要下载!不要下载!不要下载!下载会变砖!
& & & & 在此给出笔者用VS2012编译的工程:,打开ArduCopter文件夹中的ArduCopter.sln即可使用。如果你好奇心太重点了下载,也没关系,笔者会在下一篇博客让板砖起死回生:)
APM资料说明
& & & & 有关APM的资料,首推ArduPilot官网:。如果是开发四旋翼,左侧的“Copter”和“Developers”是你经常要去逛的。里面详细介绍了APM的方方面面,值得反复咀嚼。网上的APM资料,很多就是翻译自ArduPilot官网,但是良莠不齐。不要惧怕英文而选择逃避,蔡康永有一段很有名的话,“15岁觉得游泳难,放弃游泳,到18岁遇到一个你喜欢的人约你去游泳,你只好说&我不会耶”。18岁觉得英文难,放弃英文,28岁出现一个很棒但要会英文的工作,你只好说“我不会耶”。人生前期越嫌麻烦,越懒得学,后来就越可能错过让你动心的人和事,错过新风景。”万事开头难,但也不要放大开头的困难,跨过去就好了。
& & & &&国内的资料,主要推荐“模友之吧”里“泡泡老师”的视频教程,教你一步步上手APM2.8:。
& & & &&个人收集的2个资料:和。
& & & &&PS:无人机系列的第3篇至此结束,主要介绍了APM的固件和开发环境搭建,至于为何“不要下载!”,且看下回分解。

参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4958次
排名:千里之外
评论:40条查看: 2020|回复: 32
用APM的都进来
用3.13固件的请谨慎
本帖最后由 shw5264520 于
15:07 编辑
准备刷3.13固件 或者已经刷3.13固件的朋友 请刷回3.11& & 3.12和3.13都有问题
3.13固件&&在有关GPS的模式下会偶尔出现莫名的突然往一个方向猛飞&&这几天用3.13出现4次了 今天测试GPS定点的时候&&前4分钟定钉子&&4分钟后 又突然往一个方向猛飞 砸到树上 损失两个APC桨 飞出来了 线断了&&自动航线测试了6次& &也出现了一次突然往一个方向猛飞& &每次GPS都在6颗星以上& &&&
看起来有点像是你机器的振动问题 你打开日志看看振动 或者接收机跳舵
RE: 用APM的都进来
用3.13固件的请谨慎
看起来有点像是你机器的振动问题 你打开日志看看振动 或者接收机跳舵
apm已经上减震了&&3D打印机的那个& &飞控周围也用锡纸围了起来&&线路也都绕开了飞控周围&&不存在干扰的问题& &防风遮光也都做的很到位& &而且之前用旧固件的时候一直很稳定& &
经历分享!帮顶,就竞是那出问题。
幫頂,3.0.X没事,3.1.2发生過类似情况!
3.12也有问题吗
apm已经上减震了&&3D打印机的那个& &飞控周围也用锡纸围了起来&&线路也都绕开了飞控周围&&不存在干扰的问 ...
是突然油门增大的感觉么? 你用的啥接收机和控?
是突然油门增大的感觉么? 你用的啥接收机和控?
是突然往一个方向猛飞& & 在有关GPS的模式下出现的 GPS定点和自动航线&&手动和自稳、定高都没有出现过&&我用的天9& & 控一直都很安分
我刚刷了3.1.3啊,不敢飞了!
本帖最后由 fryefryefrye 于
22:20 编辑
我飞3.01的时候就有这个问题。 官网上报告这个问题的人不要太多。
APM太依赖GPS信号了,你说的6颗星,太少了,想要稳定飞行,最好10-11颗。
官方建议HDOP小于2。 你6颗的时候,肯定大于2的。
机载GPS增加一颗卫星,或者减少一颗卫星的时候,会对同一点的定位位置有比较大的变动,会导致你说的现象。
现在APM有GPS 尖峰保护,应该能起作用的,难道你关掉了?
3.12固件&&今天LOIT模式飞了5个电池 加起来飞行时间大概一个半小时 没什么问题&&3.13是测试版吧?
我用3.1.2时上电前必须先把油门杆稍微向上推一点,上电后立即拉下油门杆,这样才能解锁。刷了3.1.3后这个问题就没有了。刷3.1.3后根本就没有进行任何的校准,在室内飞与3.1.2版本没有区别。外面风大,等天气好了到外面试试。
我飞3.01的时候就有这个问题。 官网上报告这个问题的人不要太多。
APM太依赖GPS信号了,你说的6颗星 ...
也许我应该说是我刷3.13所遇到的问题&&以前的版本从来没遇到过有关于GPS模式下的问题&&
刚刚刷回3.11了&&之前3.13出现的数传需要在非常近的范围内才能连接的问题也没了
我飞3.01的时候就有这个问题。 官网上报告这个问题的人不要太多。
APM太依赖GPS信号了,你说的6颗星 ...
想请教一下你提到的&尖峰保护&是在那里可设定呢?看看我可否排除是3.1.2的问题!! 谢谢!!
3.1.2确实有这问题,我遇到2次了
我在3.11固件就遇到这个问题了,3.12更严重,3.13还没试,刷回3.0固件没这个现象
谢谢楼主的分享,我用3.12的时候遇到过这个问题,后来换了个原装的JR接收,结果问题依旧(惨炸),,今天刚刷回3.11,三个起落正常,,,3.13的也有问题的话,真是郁闷了,,现在不敢轻易更新了
根据理解应该就是楼上所说的的那个gps增加卫星的问题 这东西应该可以避免的 希望高手出教程
本帖最后由 shisongbo 于
20:26 编辑
今天定点也发现有这种情况,3.12& & 出现3次。LOG显示11个星。
前几分钟正常,然后就一斜,向左飞去,不像意外,就像是指令一样,
然后速度切回手动。救回
【站内推荐】 /2
北 京时间2月16日,沈阳无距科技发布农业值保无人机飞控THEONE-A(多旋翼飞控)和THEONE-AH(直升机飞控),同时发布的还有一款双目避障避障模块。5iMX邀您一起看现场报道!
新的一年来到了,想必大家又听到无数危险飞行的新闻,在这里,我们再次提醒大家,注意飞行安全!这是什么情况 今天刚拿到APM固件都不能安装_四轴飞行器吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:30,825贴子:
这是什么情况 今天刚拿到APM固件都不能安装收藏
为啥下载不了固件了
大神来看看
你都没有识别的com口!
端口貌似不对
我开始和你这一样,后来发现坏了
端口不对吧
电脑系统不完整,没端口 得下个补丁 麻烦的要死……
2.8的不用装
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 apm 固件版本 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信