基于pix硬件的apm开发环境搭建

来源:互联网 发布:mac 预览 下一张 编辑:程序博客网 时间:2024/05/02 04:42

准备工作

下载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代码用的就是cc++混编,所以用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

编译后可能还会报个错,说是找不到nuttXhash值,找不到就找不到吧,反正固件确实出来了,亲测可用,不影响。

上传固件

Mission Planner下加载自定义固件,选择自己弄好的固件进行上传就ok

欢迎搞飞控的交流讨论by juju  qq570818564

0 0
原创粉丝点击