您的位置:首页 > 产品设计 > 产品经理

pixhawk 发展历史、模块添加、修改和经验分享

2017-12-17 13:23 190 查看
Pixhawk 发展历史

  首先还是先从apm讲起,它是由一群无人机爱好者开发的一套代码,得到了广泛的普及,但是他的系统很庞大,冗余的部分也很多,对于一开始就看这套代码的人,会很乱。但是随着时间的推进,这套代码在他自己的硬件上运行的效率越来越低,主要是因为硬件的性能跟不上了。这时候市面上有一款硬件叫pixhawk ,他把自己的代码移植到了这个硬件上。开发这个硬件的公司是3DR,他们根据自己开发的硬件,和苏黎世联邦大学合作,开发了一套代码,名字就要px4。因此一款硬件,有两套代码,但是因为硬件叫pixhawk,所以在网上搜集资料的时候,两者的资料都会出现,要仔细分变是哪一套代码的分析文档。两套代码分别叫ardupilot和px4,这两个代码在github上是免费供电大家下载的,直接在github上下载就可以。

Pixhawk编译环境

首先下载的代码,不能直接编译,要进行环境的搭建,在搭建好的环境上进行编译,然后可以把,编译好的固件上传到pixhawk这个硬件上,经过调试后就可以飞了,搭建环境的发法就参照官网就可以,两套代码的变异环境一样,都可以参照以下的网址http://dev.px4.io/       

至于编译固件的命令是:make px4fmu-v2_default upload

还有提醒大家一下,代码最好在linux下编译,因为代码就是再这个环境下开发的,编译的过程很顺利,时间也很短,有利于后期调试,还有就是阅读源码,有何多软件都可以,但是我习惯使用QT,大家可以安装一个,具体安装方法可以在网上查一下,在源码的根目录下,输入命令qmake -project 就可以生成相应的工程.pro文件,在qtcreator里面打开.pro就可以阅读了。(qtcreator是随QT一起安装的)。在阅读源码的过程中,点击工程的.pro文件,在里面添加想的路径就可以跟踪变量了,这样阅读起来非常方便。

模块添加和修改

搭建好环境就可以进行一系列的二次开发,更具自己的需要进行更改源码,或者自己添加模块。我下面分别介绍一下这两者的具体操作在(px4)。

1.添加模块:

首先从github下载代码,代开源码,先编译一次,因为这会生成很多文件,里面有好多文件需要这部分生成的文件,在里面的 src文件夹里面,是这套代码的主要部分,文件夹drivers是硬件的驱动,examples是系统提供的例子,而modules是具体的飞控代码,里面主要包含四个主要部分姿态结算、姿态控制,位置结算、位置控制。而我们添加的模块也一般就添加在这个文件夹里面,在里面新建一个文件夹,文件夹里面就存放具体的程序和编译文件。可以建立.c文件,用来编写自己要添加的部分,而新建的cmakelist用来编写配置文件,让系统来识别到我们所编写的程序,cmakelist的编写主要采用模仿,可以打开其他模块,根据他们的来编写,最主要的是.c文件名,要添加到cmakelist里面。添加结束后,在源代码的文件里面找到cmake文件夹,打开这个文件夹,找到comfigs文件夹,再打开找到nuttx_px4fmu-v2_default.cmake,在里面把自己添加的模块写在里面,就可以进行重新编译,这样新生成的固件里面就有我添加的这一部分了。

2.修改源码:

源码的编译环境要求比较高,对于定义的变量,后期没有使用,也会被系统识别到,导致编译不通过,因此在修改的时候,一定要注意,特别是删除原有的代码时,很容易导致编译不通过,因此要细心的检查。

在讲一下,这套飞控是有自己的操作系统的,因此可以进入他的实时系统里面,进行相应的查看信息。直接打开命令screen /edv/ttyACM0 57600 8N1    就可以查看里面的内部信息,如果想进入nsh系统,在里面继续输入module losd nsh ,然后输入 nsh start ,就已经进入了nsh系统,通过help命令,可以查看我们所能查看的部分。在跟大家说一下,有的时候这个命令会导致乱码,莫名其妙的问题,这时候大家可以安装一个软件叫做mavproxy,安装完成后通过这个命令mavproxy.py
--master=/dev/ttyACM0  同样可以进入nsh,操作方式是一样的,可以查看里面的信息。

注:上面讲的两个命令ACM0是对于大部分电脑的,但是有的部分电脑会有例外存在,这时候,在linux下可以通过ls /dev/tty*来查看设备,拔掉飞控以后在输入这个命令,少了哪一个就知道飞控对应的是哪一个接口。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  apm pixhawk 开源飞控
相关文章推荐