(1)PX4开发指南——引言及入门
2016-05-02 02:28
405 查看
引言
这文档大部分是翻译PX4官方开发指南,但是其中的的绿色字体就是我自己的实践经验或者案例。本文主要介绍linuxubuntu开发环境搭建,源码编译和上传到硬件。
注意:仅限于开发者!这个指南旨在推动开发而不是为消费者准备。
这个指南介绍了如何在PX4系统架构下开发,它使开发人员能够:
1.
2.获取和修改PX4飞行栈和PX4中间件。
3.在骁龙飞控、Pixhawk和Pixfalcon上部署PX4
更新日志
2015-10-06初始发布
许可证Licence
PX4开发者文档发布为Repository。
入门
1.1初始配置
在开始开发PX4之前,系统需要按照默认配置进行初始配置,以保证硬件设置合适,被检测到。下面的一个视频介绍了Pixhawk硬件和地面站设置过程,有支持的飞机类型的列表。1.2工具链安装
PX4代码可以在OS和Linux上进行开发,因为图像处理和高级导航在windows上不容易开发。如果不确定,新的开发者应默认用Linux和当前Ubuntu长期支持版本(Ubuntu
LTSedition)。
开发环境
开发环境安装涉及到下面几种:如果你对Docker熟悉,你可以使用其中一个容器:
(这里只翻译了Linux下开发环境的搭建)
1.2.1Linux开发环境搭建(windows等系统的就不翻译了,自己看官网)
我们使用Debian/UbuntuLTS作为Linux的标准支持版本,但是但是也支持CentOSandArchLinux的发行版本。
权限设置
注意:永远不要使用“sudo”来修复权限问题,否则会带来更多的权限问题,需要重装系统来解决。把用户添加到用户组“dialout”
然后注销后,重新登录,因为重新登录后所做的改变才会有效。
安装
更新包列表,安装下面编译PX4的依赖包。PX4主要支持的家族:NuttXbasedhardware:
SnapdragonFlighthardware:
RaspberryPihardware:
Hostsimulation:
SITL
注意:安装Ninja
BuildSystem可以比make更快进行编译。如果安装了它就会自动选择使用它进行编译。
NuttX的基本硬件
Ubuntu配备了一系列代理管理,这会严重干扰任何机器人相关的串口(或usb串口),卸载掉它也不会有什么影响:sudoapt-getremovemodemmanager
更新包列表和安装下面的依赖包。指明版本的包需要安装指定的版本的包。
如果gcc-arm-none-eabi版本导致PX4/Firmware编译错误,请参考the
baremetalinstallationinstructions手动安装4.8版本。
1.3编译代码
PX4可以在控制台或者图形界面/IDE开发在控制台编译
在去到图形界面或者IDE前,验证系统设置的正确性非常重要,因此打开控制台。在Ubuntu,单击启动栏,搜索“terminal”(或者trl+alt+T)。终端在家目录启动,我们默认去到'~/src/Firmware'然后,克隆顶层资源库。有经验的开发者可以克隆自己的复制的资源库。
注意:没有安装git的朋友可以先安装git再执行的命令
现在到时候由源代码编译二进制代码了。但在直接使用硬件前,推荐先进行仿真。喜欢在图形界面开发环境工作的用户也应该继续完成下面部分。
基于NuttX/Pixhawk的硬件板
大概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的指南我就不翻译了,详细可以参考官网
1.4投稿&
核心开发团队和社区的联系信息可以在下面找到。PX4项目使用了三个分支Gitbranchingmodel:
我们尝试通过
可以这样为代码贡献新功能,可以通过
所有的投稿(贡献)必须在
测试飞行结果
飞行测试对于保证质量非常重要,请从microSD卡上传飞行日志到论坛和聊天
每周开发电话
PX4团队在每周同时进行电话联系(通过
TIME:19:00hZurichtime,1p.m.EasternTime,10a.m.PacificStandardTime
Server:mumble.dronecode.org
Port:10028
Channel:PX4Channel
Theagendaisannouncedthesamedayonthe
总结
本文介绍了linuxubuntu下PX4开发环境的搭建,PX4编译和上传到飞控的命令。介绍了PX4团队如何进行开源项目的开发,介绍了其运行的一些概况,有兴趣可以根据这些信息和相关链接深入了解,为开源项目贡献自己的代码。甚至参与到PX4的开发中来,成为PX4团队的一员。相关文章推荐
- vim中寄存器(剪切板)使用和vim标记
- LeetCode 322. Coin Change
- Scala--样例类(case)详解
- 观察者设计模式全解
- [转]关于矩阵的本质
- 0502《构建之法》第六、七章读后感
- 研究 Z-Stack 中ZigBee 设备的 IEEE 地址
- Android群英传笔记——第十章:Android性能优化
- 【HUSTOJ】1007: 倒序输出
- Android 中的 Service 全面总结
- If.svnadmin的搭建
- 其实你不知道MultiDex到底有多坑
- 周易六十四卦——剥卦
- 地理信息创业公司的生存之道
- 深入理解generator
- BZOJ4568 : [Scoi2016]幸运数字
- android简单的多人聊天程序--借助Bmob后台数据库
- centos下DNS搭建
- Android View 事件分发机制源码详解(ViewGroup篇)
- 【C语言】动态链表和静态链表的创建