本文主要是介绍基于pix硬件的apm开发环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
准备工作下载sublimetext
推荐使用Sublime text编辑器进行代码的查询、搜索与改写。它的搜索功能十分强大,可以在某个文件夹中搜索所包含的所有文件里的关键字,便于搜索,理清脉络。
学习git
最终编译固件需要在Git的本地仓库下进行,学习git分布式管理库的相关知识很有必要。
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/看到bug分支这一章节就基本够用了。
最有用的信息源
http://copter.ardupilot.org/ardupilot/index.html一部分代码的解释及编译固件及上传固件的教程他们的官网都有。
代码概览
http://ardupilot.org/dev/docs/apmcopter-code-overview.html
主要介绍了主目录下(Ardupilot/Arducopter)几个cpp文件的关系,虽然新版的把pde文件都改成cpp文件了,不过里面的内容没怎么变。
http://ardupilot.org/dev/docs/apmcopter-programming-libraries.html
Ardupilot/ libraries目录下各个文件都是干嘛的,可以了解一下。
http://ardupilot.org/dev/docs/apmcopter-programming-attitude-control-2.html
姿态控制部分代码详细介绍
http://ardupilot.org/dev/docs/code-overview-adding-a-new-parameter.html
如何添加参数,MISSION PLANNER地面站上用户可以更改的那种参数以及libraries下的参数
http://ardupilot.org/dev/docs/apmcopter-adding-a-new-flight-mode.html
如何添加新的飞行模式,讲的不是太详细。如果把某个现有模式挪用为自己的新模式可能更简单。固定翼下我就是把STABILIZE模式给改造成自己的新模式了。
http://ardupilot.org/dev/docs/code-overview-scheduling-your-new-code-to-run-intermittently.html
定义自己的某个函数多长时间被调用一次
改写代码
Apm代码用的就是c与c++混编,所以用sublimetext编辑是没问题的。
关于存放代码的文件夹:
第一种方式,简单:从ardupilot的官方库直接git clone下来,然后在本地库上改写,不过有一个缺点,一个本地库只能连接一个远程库,但是我们是没有往官方远程库上传文件的权限的,也就是说,只能在本地修改。最好编译前commit一下,我不太确定不commit进行编译的是否是当前修改但没提交的东西。
第二种方式,自己创建git账户,把官方代码fork下来,再在本地git clone自己的远程库,这样就可以把自己的代码上传到远程库了~(好像也没什么用。。)
调试代码
一种是编译固件的时候哪没写对自然就会报错。
还有一种是代码级仿真,即SITL,选择SITL on Windows那个应该就可以
http://ardupilot.org/dev/docs/sitl-simulator-software-in-the-loop.html
对于编写控制部分的代码会很管用,但是如果需要传感器用的图像接口这种好像SITL没法弄。。。
编译固件
这些cpp文件需要被编译成.px4后缀的固件,可以参考下面的做法
http://ardupilot.org/dev/docs/building-px4-with-make.html
参照上面的做法后,应该编译会出错,可参照下面的做法,应该就能编译了
http://blog.csdn.NET/freeape/article/details/49024053
编译后可能还会报个错,说是找不到nuttX的hash值,找不到就找不到吧,反正固件确实出来了,亲测可用,不影响。
上传固件
Mission Planner下加载自定义固件,选择自己弄好的固件进行上传就ok了
这篇关于基于pix硬件的apm开发环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!