基于ubuntu16.04 塔建PX4编译环境
基于ubuntu16.04 塔建PX4编译环境
Ubuntu Linux LTS 16.04是标准/首选的Linux开发操作系统。它使您能够针对大多数PX4目标(基于NutX的硬件,高通Snapdragon Flight硬件,基于Linux的硬件,仿真)进行构建。本文章根据px4官网教程结合编译过程出现的一些问题以及解决办法做一个记录。
环境塔建
官网网址:
https://dev.px4.io
进入网址后出现如下界面,当前分支处于主分支,然后选择坐上角的黑色三角形,选到 1.8.2版本
切换到1.8.2版本之后再找到工具链安装 Linux环境Ubuntu系统选项
根据网页教程开始安装依赖工具
权限设定
在Ubuntu中打开输入下面的指令给用户获取权限,之后reboot 重启
sudo usermod -a -G dialout $USER
reboot
删除modemmanager
Ubuntu附带了一个串行调制解调器管理器,该管理器会严重干扰与机器人相关的串行端口(或USB串行)使用。可以删除/卸载而没有副作用:
sudo apt-get remove modemmanager
更新软件包列表,并为所有PX4构建目标安装以下依赖项。
sudo apt-get update -y
sudo apt-get install git zip qtcreator cmake \
build-essential genromfs ninja-build exiftool -y
# Required python packages
sudo apt-get install python-argparse \
python-empy python-toml python-numpy python-yaml \
python-dev python-pip -y
sudo -H pip install --upgrade pip
sudo -H pip install pandas jinja2 pyserial cerberus
带 \ 的是换行符 与下方是同一条指令,不要分开
安装pyulog。
这是一个有用的python软件包,其中包含用于解析ULog文件并显示它们的脚本,后期查看飞行日志需要用到。
# optional python tools
sudo -H pip install pyulog
Ninja构建
Ninja是一个比Make更快的构建系统,PX4 CMake生成器支持它。在Ubuntu Linux上,可以从常规存储库自动安装它。编译PX4需要依赖它。
sudo apt-get install ninja-build -y
jMAVSim、gazabo等仿真工具暂时不安装,后期需要再安装也可以。
基于NuttX的硬件
安装以下依存关系以为基于NuttX的硬件构建
sudo apt-get install python-serial openocd \
flex bison libncurses5-dev autoconf texinfo \
libftdi-dev libtool zlib1g-dev -y
查看arm-none-eabi工具链版本。
arm-none-eabi-gcc --version
还未安装,1.8版本往后依赖GCC 7-2017-q4版本
可先安装默认版本再修改环境 使用GCC 7-2017-q4版本
sudo apt install gcc-arm-none-eabi
安装好了之后再次查看版本已经是4.9.3了。
arm-none-eabi安装
在home目录下新建一个tool文件夹,然后下载arm-none-eab,解压
mkdir tools
cd tools
wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/7-2017q4/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
tar -jxf gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
配置链接环境:
gedit .profile
#在最下方加入
export PATH="/home/xx/tools/gcc-arm-none-eabi-7-2017-q4-major/bin:$PATH"
上面的 xx 表示你的Ubuntu用户名
保存文件关掉,然后reboot重启
重启完成继续使用arm-none-eabi-gcc --version查看版本,如下图就已经配置完成到7.2.1了
源码编译
获取源码
先在home目录下新建一个wort_src文件夹,然后到文件夹中去 克隆源码
如果还没有安装git 则先安装
sudo apt install git
然后再克隆源码
mkdir wort_src
cd wort_src
git clone https://github.com/PX4/Firmware.git
加载子模块
目前PX4已经出v1.10.2稳定版本了,如想用其他版本也可自行切换,克隆下来的源码默认是主分支,切换到v1.10.2上再加载子模块。
cd Firmware/
#切换分支
git checkout -b v1.10.2
#加载子模块
git submodule update --init --recursive
加载过程中可能会出现网速过慢导致失败等问题,只需继续执行加载子模块指令即可。
编译
直接测试编译V5版本的固件,测试成功,其他版本可自行测试。
make px4_fmu-v5
查看build文件夹,已生成可执行文件
若编译过程报语法错误或者是找不到文件,都是子模块未加载完全
保存一下包没有就是没有安装好依赖,报错少什么就对应的安装什么。