Home » PX4开发指南 » PX4开发指南-2.2.2.Linux

PX4开发指南-2.2.2.Linux

PX4开发指南-2.2.2.Linux

Linux开发环境

  • 我们使用Debian / Ubuntu LTS 作为Linux的标准支持版本,但是也支持Cent OS 和 Arch Linux的发行版本。

权限设置

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

  • 把用户添加到用户组 "dialout":
sudo usermod -a -G dialout $USER
  • 然后注销后,重新登录,因为重新登录后所做的改变才会有效。

安装

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

    • NuttX based hardware: Pixhawk series, Crazyflie, Intel® Aero Ready to Fly Drone

    • Qualcomm Snapdragon Flight hardware

    • Linux-based hardware: Raspberry Pi 2/3, Parrot Bebop

    • Host simulation: jMAVSim SITL and Gazebo SITL

提示:安装Ninja Build System可以比make更快进行编译。如果安装了它就会自动选择使用它进行编译。

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 \
    python-empy qtcreator cmake 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-dev libopencv-dev openjdk-8-jdk openjdk-8-jre clang-3.5 lldb-3.5 -y

基于NuttX的硬件

  • Ubuntu配备了一系列代理管理,这会严重干扰任何机器人相关的串口(或usb串口),卸载掉它也不会有什么影响:
sudo apt-get remove modemmanager
  • 更新包列表和安装下面的依赖包。务必安装指定的版本的包
sudo apt-get install python-serial openocd \
    flex bison libncurses5-dev autoconf texinfo build-essential \
    libftdi-dev libtool zlib1g-dev \
    python-empy  -y
  • 在添加arm-none-eabi工具链之前,请确保删除残余。
sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi gcc-arm-embedded
sudo add-apt-repository --remove ppa:team-gcc-arm-embedded/ppa
  • 如果gcc-arm-none-eabi版本导致PX4/Firmware编译错误,请参考 Arch及CentOS的Linux安装指南手动安装4.9或者5.4版本的arm-none-eabi工具链。

骁龙

  • 工具链安装
sudo apt-get install android-tools-adb android-tools-fastboot fakechroot fakeroot unzip xz-utils wget python python-empy -y
git clone https://github.com/ATLFlight/cross_toolchain.git
  • 从QDN上获得Hexagon SDK 3.0: https://developer.qualcomm.com/download/hexagon/hexagon-sdk-v3-linux.bin

  • 需要登录到QDN。如果你还没有帐户,必须先注册一个。

  • 将以下文件移动到交叉工具链的下载文件夹中:

mv ~/Downloads/hexagon-sdk-v3-linux.bin cross_toolchain/downloads
  • 安装工具链和SDK,如下所示:
cd cross_toolchain
./installv3.sh
cd ..
  • 按照说明配置开发环境。如果你接受默认安装选项,则可以在之后随时重新运行下面的命令来配置开发环境。它只会安装缺少的组件。

  • 执行后工具和SDK将被安装到$HOME/Qualcomm/...。 将以下内容添加到~/.bashrc:

export HEXAGON_SDK_ROOT="${HOME}/Qualcomm/Hexagon_SDK/3.0"
export HEXAGON_TOOLS_ROOT="${HOME}/Qualcomm/HEXAGON_Tools/7.2.12/Tools"
export PATH="${HEXAGON_SDK_ROOT}/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf_linux/bin:$PATH"
  • 加载新的配置:
source ~/.bashrc

Sysroot安装

  • 需要一个sysroot来提供交叉编译骁龙飞控应用处理器应用程序所需的库和头文件。

  • qrlSDK sysroot提供了摄像头、GPU等需要的头文件和链接库。

cd cross_toolchain
unset HEXAGON_ARM_SYSROOT
./qrlinux_sysroot.sh
  • 将以下内容添加到~/.bashrc:
export HEXAGON_ARM_SYSROOT=${HOME}/Qualcomm/qrlinux_v3.1.1_sysroot
  • 加载新的配置:
source ~/.bashrc

升级ADSP固件

  • 在构建,烧写以及运行代码之前,还需要升级ADSP固件

参考

$HOME/Qualcomm/Hexagon_SDK/2.0/tools/mini-dm/Linux_Debug/mini-dm

注:在MAC上也可以使用nano-dm

树莓派

  • 树莓派开发者应该从下面地址下载树莓派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

Parrot Bebop

  • Parrot Bebop的开发者应该安装树莓派的Linux工具链。请跟随(这里)的介绍进行安装。

  • 接下来安装ADB。

sh sudo apt-get install android-tools-adb -y` 

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: px4开发指南