无人机开发之四:Pixhawk开发环境搭建
Pixhawk开发环境搭建
PX4代码可以在 Mac OS,Linux 或者 Windows上进行开发,本文采用Ubuntu的长期支持版本Ubuntu16.04作为开发环境
为了便于开发,我们需要把用户添加到用户组”dialout”中,终端中执行:
sudo usermod -a -G dialout $USER
然后注销后,重新登录,因为重新登录后所做的改变才会有效。
注意:永远不要使用sudo来修复权限问题,否则会带来更多的权限问题,需要重装系统来解决。
安装PX4的依赖包
更新包列表,安装下面编译PX4的依赖包。先安装cmake,执行:
sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
sudo apt-get update
必备软件
sudo apt-get install python-argparse git-core wget zip
sudo apt-get install python-empy qtcreatorcmake build-essential genromfs -y
编译工具
添加源安装开发环境
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jre
sudo apt-get install ant protobuf-compiler libeigen3-devlibopencv-dev openjdk-8-jdk openjdk-8-jre clang-3.5 lldb-3.5 -y
安装交叉编译工具链
Ubuntu配备了一系列代理管理,这会严重干扰任何机器人相关的串口(或usb串口),卸载掉它也不会有什么影响,我们这里把它卸载:
sudo apt-get remove modemmanager
更新包列表和安装下面的依赖包:
sudo apt-get install python-serial openocd
sudo apt-get install flex bison libncurses5-devautoconf texinfo build-essential
sudo apt-get install libftdi-dev libtoolzlib1g-dev
sudo apt-get install python-empy
安装arm-none-eabi编译工具链,在添加arm-none-eabi工具链之前,请确保删除残余:
删除残留命令
sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabibinutils-arm-none-eabi gcc-arm-embedded
sudo add-apt-repository --remove ppa:team-gcc-arm-embedded/ppa
安装工具命令
sudo apt-get install gcc-arm-none-eabi
如果需要在树莓派上开发则需要安装树莓派上对于的工具链。树莓派开发者应该从下面地址下载树莓派Linux工具链。安装脚本会自动安装交叉编译工具链:
git clone https://github.com/pixhawk/rpi_toolchain.git
cd rpi_toolchain
./install_cross.sh
在工具链安装过程中需要输入密码。如果不想把工具链安装在默认位置/opt/rpi_toolchain,可以执行
./install_cross.sh<PATH>
向安装脚本传入其它地址。安装脚本会自动配置需要的环境变量。最后,运行以下命令更新环境变量:
source ~/.profile
代码编译
开发环境搭建好之后,就可以开始下载代码并编译了,PX4可以在控制台或者图形界面/IDE开发。在这里我们对控制台的开发进行简要介绍。
首先建立工作目录,然后从git上下载代码: mkdir -p ~/src cd ~/src
第一篇介绍过Pixhawk
有两种固件包,我们使用ArduPilot固件包,执行命令 git clone https://github.com/ArduPilot/ardupilot cd ardupilot git submodule update --init --recursive cd ..
现在可以通过编译源代码来构建二进制文件。在直接使用硬件前,推荐先进行仿真。然后就可以对代码进行编译并下载了: cd ardupilot make px4fmu-v2_default
注意到“make”是一个字符命令编译工具,“px4fmu-v2”是硬件/ardupilot版本,“default”是默认配置,所有的PX4编译目标遵循这个规则。通过在命令后面添加‘upload’,编译的二进制程序就会通过USB上传到飞控硬件。下载成功后的情况如下所示: