多旋翼无人机

    返回首页    发表留言
本文作者:李德强
          中级篇小结
 
 

        2016年,偶然的一次冲动,我想要自己制作一套四旋翼无人机。虽然当时可以购买现成的商业自驾仪和下载开源飞控程序,但是为了深刻体会无人机的控制原理,我还是决定要自己从零开始。我一边到处查找相关资料,一边向其他朋友请教。购买了很多配件和控制板,自己尝试组装四旋翼无人机和编写控制程序。起初我买了很多竹条,自己用手钻打洞,做成机架,安装电动机和螺旋桨。

        当时的我没有任何理论基础,写完程序之后也没有使用任何仿真程序进行飞行模拟,而是直接用一只手举着飞机,另一只手在电脑上调节参数。在我家里一间十平米的房间里进行测试,有几次程序出现错误,导致飞机失控,失控的螺旋桨将卧室里的地板、门框都打坏了,有一次螺旋桨甚至在我的右胳膊割开一条一寸多长的伤口。有朋友对我开玩笑说:“这是我听说过唯一一个因为编程而导致的流血事件!”

        经过不断的修改程序和试飞,不断的分析总结问题,飞机终于在一年之后可以离开了地面飞上天空。
        虽然我自己开发的飞控程序与其他商业无人机没有可比性,也没有一些开源飞控程序功能强大和控制稳定,但是对于我个人来说,这个“轮子”没有白造。它让我从本质上理解了多旋翼无人机的控制体系和飞行原理。这对我后来学习并理解PX4开源无人机飞控程序有很大的帮助。之后的几个月里我开始接触开源自驾仪Pixhawk和开源飞控程序PX4,这使得我从实践回归理论对多旋翼无人机有了更深入的理解。


        后来我自己创办了“编程外星人”公众号和“问渠网”,每个星期都会通过公众号和网站发布对多旋翼无人机的学习笔记和体会心得。文章编写时所参考的PX4源代码的版本号为1.8.2,在此版本下源代码共有329万行之多,其中包括Nuttx操作系统源代码259万行,PX4飞控程序54万行。并且这只包括C/C++源代码,而不包括Xml、Python、Shell脚本等其他工具类代码。PX4飞控程序中参与编译的模块有50多个,代码量庞大而且复杂。因为PX4源代码中很多函数的参数都表非常多,变量的命名也参差不齐,代码为了适应多变的条件,处理逻辑非常之复杂,如果将大量这样的代码直接引用到文章当中,会使得读者对源代码理解有很大的困难,并且文章中代码的排版也不美观。因此为了方便读者对源代码进行阅读和理解,文章所引用的源代码是从PX4程序中进行部分摘取并进行了大量的简化和修改,因此文章中的源代码并不与PX4飞控程序中的源代码完全一致,但是却更便于学习和掌握,希望广大读者朋友能够理解。

    返回首页    返回顶部
#1楼  雪域蓝天  于 2019年03月13日17:39:04 发表
 
看到你的伤口,我想到我刚开始玩这个,在屋里收拿着,也是什么都不太懂得情况下解锁,结果飞机螺旋桨直接转起来扣过来了。我的胳膊和大腿上的伤口和你的如出一辙……

纪念那些年爱折腾的我们。
#2楼  。  于 2019年08月21日12:43:21 发表
 
老哥牛逼
  看不清?点击刷新

 

  Copyright © 2015-2019 问渠网 辽ICP备15013245号