本帖最后由 xttyyy 于 2017-5-16 23:35 编辑
[size=13.63636302947998px] 2016年2月22日更新:各位用apm飞四轴的朋友久等了,最近一直忙着搞和osd有关的改进,今天抽空编译了基于APM Copter3.2.1修改的9飞行模式版本,并且上传到百度云盘http://pan.baidu.com/s/1qWXZALu 其中ArduCopter3.2.1-9flightmode.hex是四轴代码,通过missionplanner烧录自定义固件可以刷写到apm中。
MissionPlanner1.3.25-9飞行模式修改版2-plane-copter是最新的missonplanner,支持9飞行模式的四轴。
(不下载我修改的missionplanner,使用原版mp也可以对9种飞行模式进行设置,具体请参考全部参数列表中的fltmode_ch,fltmode_ch2,fltmode1--fltmode9等几个参数,一看便明)。
需要注意的是,因为apm代码中的某些限制,目前固定翼和四轴的第九种飞行模式都无法使用,但是不影响任何其它功能。请大家谅解(因为APM的255个参数基本上快被占满了,我还是决定尽量不占用太多,省的影响后续的更新) 最近一年接触了很多商品化的玩具级固定翼飞控,f2,u22,mfd,arkbird,与apm/pix类相比,这些商品飞控使用简单,设置方便,集成度高,用户体验非常不错。但是,apm仍然有许多优点让作者难以放弃。 首先,apm具有地面站功能,可以更为简单的设置航点飞行(mfd也可以,价格稍贵)。
其次,apm具备遥控器微调自动适应功能(mfd也可以,价格稍贵)。对于f2,u22,arkbird等飞控,飞机首飞,通过遥控器微调调稳后,落地下来,只能通过修改舵角和拉杆的机械结构,大体上体现遥控器通道的微调情况。这种方式非常蛋疼,每次只能尽量近似的调整,本人曾经数次的不断起飞降落调整小胖子,直到几星期后小胖子彻底炸掉,还没有调到满意状态。而mfd,可以在地面阶段自动适应遥控器微调,非常简单;更进一步,APM更是可以在飞行过程中每次从手动模式切换到其他飞行模式时,自动适应新的微调输入,强大!
同时,apm的代码是开源的,全世界很多高手,主要是福利好、生活悠闲、大把时间投入进去的老外,时刻都在测试和维护,其软件稳定性极高。(当然,广州东小作坊的态度和责任心一定程度耽误了APM的硬件稳定性,建议买些大厂产品)
最后,相对于一些包装较好的商品飞控,apm价格便宜,目前淘宝上,400块就能搞定一套(飞控板+gps+电流计+osd),一个apm还可以兼容多轴,固定翼,直升机,甚至车,船等等,想想就有点儿小激动呢!
因此,本人一直在尝试使用APM玩固定翼,组装复杂我可以忍,重量稍大我可以忍,osd插线接口不牢靠我可以忍(就没有哪个作坊可以优化一下miniosd的杜邦插孔么!!),可谓费尽心机,唯有如下几点难以接受:
1,apm的单通道控制6种飞行模式太反人类了,每次换个遥控器,还要上网找泡泡老师的视频,费个半天时间高出单通道6段值(这过程中还根本不知道自己在做什么)!
2, apm支持的飞行模式太少了,手动,返航,平衡,FLY_BY_WIRE_A(类似姿态锁定),FLY_BY_WIRE_B(类似定高定向),AUTO(航点),Circle,Autotune,哎,apm功能这么强大,6个哪够用啊!
3.apm的起飞模式太坑爹了,很多新入门者都摸不着头脑。必须从地面站添加起飞任务才能使用;切换到auto模式,还根本搞不清楚当前是否在自动起飞状态;最小速度、马达时延。。。,这么多参数让人头大。。。。至少本人愚钝,炸了两个天行者x5,还没有用apm飞起来过。
因此,经过深刻思考,笔者觉得我们需要的只是简单的两个三段开关控制的9种飞行模式,只是朴素的能保持起飞角度和机身稳定的辅助起飞,经过分析apm的源码和贪黑熬夜的辛勤工作(好吧,主要是在看斗鱼直播),终于基于apm固定翼3.2.1版本和missionplanner地面站1.3.25版本,实现了上述朴素的功能,并且冒着呼啸的北风,完成了飞行测试 。
新的修改版有如下功能:
1.通过2个输入通道,可以控制9种飞行模式,默认为5,6通道
2.新增起飞模式,切换到该模式后
------飞行器将会努力保持飞机水平,并且以一定的起飞角度直冲天际(默认角度为20度)。
------起飞模式中,飞行器的油门仍然由遥控器控制。
------起飞模式中,当遥控器的俯仰通道输入值大于10度(其实很小的一点儿形程),则会切换到平衡模式(STABILIZE)。
------起飞模式中,当飞行器相对起飞点高度大于50米,也会切换到平衡模式(STABILIZE)。
起飞测试视频:
那么,如何获得这一修改版本呢:
下载地址:http://pan.baidu.com/s/1qYJgeWs 百度网盘
其中:ArduPlane3.2.1-9flightmode-takeoff.hex是飞控板上的飞控程序。
MissionPlanner1.3.25-9飞行模式修改版是与之配套的地面站。 使用过程(正式飞行前,一定要拆下螺旋桨):
1.刷写固件:apm用usb连接电脑-》启动MissionPlanner-》右上角选择正确com口和波特率-》初始设置-》安装固件-》加载自定义固件-》选择ArduPlane3.2.1-9flightmode-takeoff.hex。
2.设置2个模式三端开关通道:2个通道默认为5和6,不需要特意修改。也可以通过FLIGHT_MODE_CH和FLIGTH_MODE_CH2两个参数设置。方法是missionplanner连接apm后-》配置调试-》全部参数列表-》搜索-》搜索FLIGHT_MODE,然后在界面中修改到合适的值-》写入参数。
3.设置9种飞行模式:因为修改添加了一些rom参数,所以原版missionplanner的初始设置-飞行模式设置不再生效,需要从配置调试-》全部参数列表-》搜索-》搜索FLIGHT_MODE得到的参数FLTMODE1到9单独设置,新增的TAKEOFF模式代号为17。为了设置简便,可以使用我修改的MissionPlanner MissionPlanner1.3.25-9飞行模式修改版,进行可视化的9种模式设置
4.设置起飞角度:默认的起飞角度为25度,不需要特意修改。如果需要修改,可以在全部参数列表中搜索修改LIM_PITCH_MAX。注意,这里输入的值是抬头角度的100倍,2500代表25度。
5.设置完成后,尝试将遥控器切换到起飞模式,可以再apm的飞行器监视窗看到已经切换了新的起飞模式
6.测试: APM对于固定翼相关的各种校准都是必须的,完成后,可以尝试起飞。将飞机握好,切换到TakeOff模式,就可以发现水平尾翼产生一个明显的上翘,这就说明已经正确切换到了起飞模式。此时,掰动遥控器俯仰摇杆,水平尾翼回位,从osd可以看到飞行器切换到了Staballize模式。
7.起飞: 手握飞机,切换起飞模式,检查水平尾翼是否有动作,遥控器油门推高,抛出去,成功起飞!
注意:手抛时,一定要小心打手!对于天行者x5等飞翼,可以侧手抛!根据作者不多的飞行经验,在航模这个领域,最大的真理还是力足板天,尽量用高一个等级的电机吧,你会发现飞行轻松很多,而且,并不费电哦!
最后,祝大家爽飞!
相关修改代码已经上传到github,欢迎各位交流讨论: https://github.com/xttyyy/arduplane3.2.1-takeoff-8mode/
https://github.com/xttyyy/MissionPlanner/
同时我也在csdn上更新了一些关于apm代码的分析,欢迎大家查找csdn博客:flyingxty
最后,本文中所有代码和飞控程序皆是因本人兴趣和爱好进行的探索,未经严格测试,因此对于任何飞行后果不负责任!
希望大家使用时集中注意力,小心再小心,远离人群,远离城市。
|