您的位置:首页 > 其它

(1)PX4开发指南——引言及入门

2016-05-02 02:28 405 查看

引言

这文档大部分是翻译PX4官方开发指南,但是其中的的绿色字体就是我自己的实践经验或者案例。

本文主要介绍linuxubuntu开发环境搭建,源码编译和上传到硬件。

注意:仅限于开发者!这个指南旨在推动开发而不是为消费者准备。

这个指南介绍了如何在PX4系统架构下开发,它使开发人员能够:

1.了解系统的概况

2.获取和修改PX4飞行栈和PX4中间件。

3.在骁龙飞控、Pixhawk和Pixfalcon上部署PX4

更新日志

2015-10-06

初始发布

许可证Licence

PX4开发者文档发布为CCBY4.0.。具体请查看细节Github
Repository。

入门

1.1初始配置

在开始开发PX4之前,系统需要按照默认配置进行初始配置,以保证硬件设置合适,被检测到。下面的一个视频介绍了Pixhawk硬件和地面站设置过程,有支持的飞机类型的列表。

1.2工具链安装

PX4代码可以在MacOS,LinuxorWindows.上进行开发,建议在Mac
OS和Linux上进行开发,因为图像处理和高级导航在windows上不容易开发。如果不确定,新的开发者应默认用Linux和当前Ubuntu长期支持版本(Ubuntu
LTSedition)。

开发环境

开发环境安装涉及到下面几种:

MacOS
Linux
Windows

如果你对Docker熟悉,你可以使用其中一个容器:DockerContainers。

(这里只翻译了Linux下开发环境的搭建)

1.2.1Linux开发环境搭建(windows等系统的就不翻译了,自己看官网)

我们使用Debian/UbuntuLTS作为Linux的标准支持版本,但是但是也支持CentOSandArch
Linux的发行版本。

权限设置

注意:永远不要使用“sudo”来修复权限问题,否则会带来更多的权限问题,需要重装系统来解决。

把用户添加到用户组“dialout”

sudousermod-a-Gdialout$USER
然后注销后,重新登录,因为重新登录后所做的改变才会有效。

安装

更新包列表,安装下面编译PX4的依赖包。PX4主要支持的家族:

NuttXbasedhardware:Pixhawk,Pixfalcon
SnapdragonFlighthardware:Snapdragon
RaspberryPihardware:RaspberryPi2
Hostsimulation:jMAVSimSITLandGazebo
SITL

注意:安装Ninja
BuildSystem可以比make更快进行编译。如果安装了它就会自动选择使用它进行编译。

sudoadd-apt-repositoryppa:george-edison55/cmake-3.x-y sudoapt-getupdate sudoapt-getinstallpython-argparsegit-corewgetzip\ python-empyqtcreatorcmakebuild-essentialgenromfs-y #simulationtools sudoapt-getinstallantprotobuf-compilerlibeigen3-devlibopencv-devopenjdk-7-jdkopenjdk-7-jreclang-3.5lldb-3.5-y

NuttX的基本硬件

Ubuntu配备了一系列代理管理,这会严重干扰任何机器人相关的串口(或usb串口),卸载掉它也不会有什么影响:

sudoapt-getremovemodemmanager

更新包列表和安装下面的依赖包。指明版本的包需要安装指定的版本的包。

sudoadd-apt-repositoryppa:terry.guo/gcc-arm-embedded-y sudoapt-getupdate sudoapt-getinstallpython-serialopenocd\ flexbisonlibncurses5-devautoconftexinfobuild-essential\ libftdi-devlibtoolzlib1g-dev\ python-empygcc-arm-none-eabi-y
如果gcc-arm-none-eabi版本导致PX4/Firmware编译错误,请参考the
baremetalinstallationinstructions手动安装4.8版本。

1.3编译代码

PX4可以在控制台或者图形界面/IDE开发

在控制台编译

在去到图形界面或者IDE前,验证系统设置的正确性非常重要,因此打开控制台。在Ubuntu,单击启动栏,搜索“terminal”(或者trl+alt+T)。

终端在家目录启动,我们默认去到'~/src/Firmware'然后,克隆顶层资源库。有经验的开发者可以克隆自己的复制的资源库。

mkdir-p~/src cd~/src gitclonehttps://github.com/PX4/Firmware.gitcdFirmware gitsubmoduleupdate--init--recursive cd..
注意:没有安装git的朋友可以先安装git再执行的命令

sudoapt-getinstallgit

现在到时候由源代码编译二进制代码了。但在直接使用硬件前,推荐先进行仿真。喜欢在图形界面开发环境工作的用户也应该继续完成下面部分。

基于NuttX/Pixhawk的硬件板

cdFirmware makepx4fmu-v2_default
大概10分钟那样就会编译成功,我实在虚拟机的Ubuntu上编译的。编译成功如下图所示



注意到“make”是一个字符命令编译工具,“px4fmu-v2”是硬件/ardupilot版本,“default”是默认配置,所有的PX4编译目标遵循这个规则。

成功编译的最后输出是这样的:

[
100
%]LinkingCXXexecutablefirmware_nuttx

[
100
%]Builttargetfirmware_nuttx

Scanningdependenciesoftargetbuild_firmware_px4fmu-v2

[
100
%]Generatingnuttx-px4fmu-v2-default.px4

[
100
%]Builttargetbuild_firmware_px4fmu-v2

通过在命令后面添加‘upload’,编译的二进制程序就会通过USB上传到飞控硬件:

makepx4fmu-v2_defaultupload

成功上传的最后输出是这样的:

Erase:[====================]
100.0
%

Program:[====================]
100.0
%

Verify:[====================]
100.0
%

Rebooting.


[
100
%]Builttargetupload


我使用的是linux开发环境和pixhawk硬件,其他的开发环境和pixhawk的指南我就不翻译了,详细可以参考官网http://dev.px4.io/index.html

1.4投稿&

核心开发团队和社区的联系信息可以在下面找到。PX4项目使用了三个分支Gitbranchingmodel:

master默认情况下不稳定,可以看到快速开发。
beta已充分测试,面向飞行测试者。
stable指向最新的发布分支。.

我们尝试通过rebases保持一个线性的历史,避免Githubflow。但是由于全球的开发队伍和快速的开发转移,我们会定期分类合并。

可以这样为代码贡献新功能,可以通过注册Github,复制资源库,创建分支,加入你的改变,最后推送请求。当它们通过我们的持续的综合测试,更新就会被合并。

所有的投稿(贡献)必须在BSD3-clauselicense许可下进行,所有的代码在使用上不能提出任何的,进一步的限制。

测试飞行结果

飞行测试对于保证质量非常重要,请从microSD卡上传飞行日志到LogMuncher,并在论坛分享一个的连接,附带有书面飞行报告。

论坛和聊天

Google+

Gitter

PX4UsersForum

每周开发电话

PX4团队在每周同时进行电话联系(通过Mumble客户端连接)。

TIME:19:00hZurichtime,1p.m.EasternTime,10a.m.PacificStandardTime

Server:mumble.dronecode.org
Port:10028
Channel:PX4Channel
Theagendaisannouncedthesamedayonthepx4usersforum

总结

本文介绍了linuxubuntu下PX4开发环境的搭建,PX4编译和上传到飞控的命令。介绍了PX4团队如何进行开源项目的开发,介绍了其运行的一些概况,有兴趣可以根据这些信息和相关链接深入了解,为开源项目贡献自己的代码。甚至参与到PX4的开发中来,成为PX4团队的一员。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: