一、开篇
研究四旋翼飞行器(俗称无人机)也有两个多月了,一直想写点东西,没来的及动笔,现在整理思路稍微写写,都是关于自己在学习和研究四旋翼飞行器控制算法过程中遇到的一些问题和感悟。
进入无人机行业主要还是因为导师的原因,我本身比较对BLE比较感兴趣,前面学习的都是关于BLE开发的,但是师命难为,懵懵懂懂的踏入了无人机行业,这个高大上逼格略高的行业。无人机的门槛比较高,只要你踏过去了,一切都比较顺手了。提前说一下,用于pixhawk的这套飞控源码本身是面向机器人的、多平台的,注重OOP,所以是清一色的纯C++,对于我这种只会C语言的来说,看起来很是头疼呐,但是本着知难而上的精神,还是硬着头皮上吧。原本项目经验比较充分,所以看起pixhawk的代码框架还是比较顺利的,好吧,我在自恋中~~~~
为了凑足三段式,才有的本段文字。
二、版权声明
博主:summer
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.net/qq_21842557
联系方式:[email protected]
技术交流QQ:1073811738
三、实验平台
Software Version:ArduCopter(Ver_3.3)
Hardware Version:pixhawk
IDE:eclipse Juno (Windows)
四、组件购买
首先,玩无人机必须手上要有一套原型机,提前感性的对无人机有个客观的认识,不然在分析源代码的过程中都不知道某一段代码具体是实现什么功能的,我是从购买无人机各个组件开始的,这个感谢我们万能的某宝,没有你找不到的只有你想不到的,在购买组件时可以根据自己的经济条件选择不同价位的,便宜的几十元上百元可以买一套、贵的几千元上万的也有,就看个人用途定位于低端还是中高端了,我入手了两套,一套8000+,因为身在校园,这个可以可以学校报销,但是建议大家资金有限的情况下至少也要组装一套像样的,用途不大的配件如机架、螺旋桨之类的可以买便宜些的(有钱人还是买碳纤维的啊,一定要相信一句古话:便宜没好货),飞控板一定不要贪图便宜,淘宝上就那几家销售关于pixhawk的飞控板,800元左右,买买买,一定要买。伟大的毛主席说过:有条件要上,没有条件创造条件也要上。所以,还是买吧。前期一定要排除任何有关硬件出现的问题而影响对源代码的错误认识。
选组件选了很长时间,由于第一次接触这个东西,什么电调啊、飞控板啊、接收机啊什么的根本没什么概念,都是一头雾水啊,整天的逛各大论坛,泡各大QQ群,感谢群里面的几位帮助过我的朋友,是你们引领我进入无人机的世界。了解了这些以后最大的问题就是组装和调试试飞,某宝装机竟然要700+,我等屌丝只能自己琢磨了。下面上一张万能的装机的概念图:(为什么刚开始我没有这张图呢,哎)
希望上面这张图能够帮你迅速完成装机。
五、试飞前的准备和试飞
成功装机以后,首先调试遥控器是否可以和无人机成功连接上,飞行过程中初期还是注意靠遥控器手动控制无人机,这个比较简单,遥控器直接买别人的,我用的华科尔的D10,注意接收机和飞控板连接的对应关系,然后就是各种校准,校准时一定要 细心,这个可以在各个论坛或者百度上找到关于校准的视频教程,比较好的就是“泡泡老师”的,还有就是英文官方上有关于校准的说明,很详细,英语过关的可以去看看,我觉得还是看英文原版的比较好,下面给出常用网站(英文)的链接。
1)http://copter.ardupilot.com
2)http://dev.ardupilot.com
关于试飞,都是血泪史啊,坠机N次,心疼N次,第一次试飞一定要小心,装机时一定要用螺丝胶固定螺丝,起飞时油门一定别一次性推的过大,机架大的一定不要在空中做特技等等。我相信每个人都是天才,每个人都会“研发”出一种新式的坠机方式。侥幸的是坠机了那么多次,竟然螺旋桨从来有没有断过,哈哈~~~还有就是试飞要找草坪地试飞,千万别在水泥地面上试飞,如果钱多,可略过此条建议。
六、总结
刚开始试飞时比较艰难,所以是一边试飞一边分析pixhawk的源代码,编译环境的搭建也不简单哦,某宝开口就是2000的费用,国内搞二次开发的应该不多,主要集中在各个高校中吧,某宝是不是觉得高校科研经费多所以才狮子大开口啊。几个人经过了一番周折之后终于把环境搭建OK并且编译成功了,也测试了编译后的源码,都OK。代码框架比较庞大,分析起来不是那么的简单,接下来打算再用2个月的时间把整体框架搞懂吧(框架、框架、框架),源码编译是在Windows下使用eclipse中的交叉编译环境编译的,其中不范是一些.mk文件,从.mk文件中可以清晰看到文件的调用关系,下一步打算移步到Linux环境下研究代码,很长一段时间没用Linux系统了,快要忘记光了,加油吧。
下一篇UAV的帖子就开始写关于源代码的分析了,现在研究了一部分了,大致了解源码架构和各个部分的作用了,然后继续深入到每个定义文件和函数,还有就是需要学习传说中OOP的C++。希望找工作前可以把它拿下~~~
对了,还有就是基本的理论知识的学习,比如数据融合、姿态结算、卡尔曼滤波、PID控制、模糊控制等等,一大波论文要看,还有该死的毕设啊,无从下手~~~~
最后加一张UAV的定高三级反馈控制原理图,很多都是基于这种方式进行控制的。
是不是觉得上面这幅图很小?没关系,鼠标箭头放在上图的上面,左击,别松手,任意方向拖动,放手,看到没,大图出来了~~~~上面这幅图的控制过程要熟记于心!!!