拟在基于NuttX的硬件平台如Pixhawk系列开源硬件平台上运行自定义的Px4自驾仪软件,因此需要建立Px4的编译开发环境。以官方文档推荐,在Ubuntu 16.04 LTS操作系统上建立Px4编译开发环境为例,记录整个配置过程。
安装Ubuntu 16.04 LTS
官方推荐在Mac OS和Linux上进行开发,因此选择安装Ubuntu 16.04 LTS作为Px4开发的操作系统。主要步骤如下:
- 安装VirtualBox系统虚拟机
- 在VirtualBox创建虚拟机
- 在虚拟机中安装Ubuntu 16.04 LTS操作系统
Ubuntu中安装工具链
权限设置
为了使当前用户能够访问串口,将当前用户添加到dialout组。
1 | sudo usermod -a -G dialout $USER |
安装工具链
Pixhawk/NuttX (and jMAVSim)
针对基于NuttX的硬件平台如Pixhawk构建开发工具链,步骤如下:
- 下载ubuntu_sim_nuttx.sh
- 运行脚本ubuntu_sim_nuttx.sh
- 完成后重启
1 | wget https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_nuttx.sh |
编译Px4软件
下载Px4源代码
1 | mkdir -p ~/src |
现在可以通过编译源代码来构建二进制文件。在直接使用硬件前,推荐先进行仿真。
jMAVSim仿真器
在直接使用硬件之前,以jMAVSim仿真器为目标平台构建PX4,验证PX4的正确性。注意在virtualbox中启动3D图形加速,防止jMAVSim运行出错!
1 | make posix jmavsim |
基于NuttX / Pixhawk的硬件板
以Pixhawk为目标平台,构建PX4。
1 | cd Firmware |
注意到“make”是一个字符命令编译工具,“px4fmu-v2”是硬件/ardupilot版本,“default”是默认配置,所有的PX4编译目标遵循这个规则。
成功编译的最后输出是这样的:
1 | [100%] Linking CXX executable firmware_nuttx |
通过在命令后面添加‘upload’,编译的二进制程序就会通过USB上传到飞控硬件:
1 | make px4fmu-v2_default upload |
上传成功时输出情况如下:
1 | Erase : [====================] 100.0% |
参考链接
- PX4 Development Guide (STABLE - v1.8.2),by Dronecode.
- PX4开发指南, by Dronecode.
- running JMAVSim in vmware fails, by jMAVSim issues.