Ubuntu 16.04安装PX4原生固件


本教程参考2019年7月的官网教程写的这片博客,个人强烈推荐按照官网的英文版最新教程来配置,主要是官网更新得比较快,有些步骤可能已经变了。 Ubuntu下PX4官网按照方法链接

添加权限

打开一个终端执行下面的命令,让当前用户从属dialout用户组,防止以后的权限问题。

sudo usermod -a -G dialout $USER

这一步不会有输出结果,Linux下面没有结果就是最好的结果,所以没有输出不用担心。
然后重启电脑!!!
然后重启电脑!!!

公共依赖安装

先卸载掉干扰串口和USB的一个Ubuntu自带的包,一般这个包用不上,以后如果要用可以再下载。

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
which xxd || sudo apt install xxd -y || sudo apt-get install vim-common --no-install-recommends -y
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
sudo -H pip install pyulog

安装FastRTPS

首先下载

wget https://www.eprosima.com/index.php/component/ars/repository/eprosima-fast-rtps/eprosima-fast-rtps-1-7-1/eprosima_fastrtps-1-7-1-linux-tar-gz -O eprosima_fastrtps-1-7-1-linux.tar.gz
tar -xzf eprosima_fastrtps-1-7-1-linux.tar.gz eProsima_FastRTPS-1.7.1-Linux/
tar -xzf eprosima_fastrtps-1-7-1-linux.tar.gz requiredcomponents
tar -xzf requiredcomponents/eProsima_FastCDR-1.0.8-Linux.tar.gz

下载完成过后开始编译安装,这个过程根据个人电脑配置耗时可能比较长,耐心等待编译完成就OK。

(cd eProsima_FastCDR-1.0.8-Linux && ./configure --libdir=/usr/lib && make -j2 && sudo make install)
(cd eProsima_FastRTPS-1.7.1-Linux && ./configure --libdir=/usr/lib && make -j2 && sudo make install)
rm -rf requiredcomponents eprosima_fastrtps-1-7-1-linux.tar.gz

仿真依赖安装

首先安装jMAVSim依赖

sudo apt-get install ant openjdk-8-jdk openjdk-8-jre -y

接下安装gazebo依赖,由于我们在安装ros的时候会自动安装上gazebo所以就不需要进行单独的安装gazebo了。
如果没有安装ros,则先安装Ubuntu对应版本的ros。

sudo apt-get install protobuf-compiler libeigen3-dev libopencv-dev -y

硬件编译依赖安装

对于今后只进行仿真实验,不涉及到硬件飞控的上传,操作这一个模块如果出错了可以跳过,甚至这一部分都可以跳过。
安装一些软件依赖包

sudo apt-get install python-serial openocd \
    flex bison libncurses5-dev autoconf texinfo \
    libftdi-dev libtool zlib1g-dev -y

接下来,卸载掉老版本的交叉编译器,现在的固件需要使用新版本的编译器才可以编译成功

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

这一步出错出现无法定位软件包可以跳过
安装新的交叉编译器

pushd .
cd ~
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
exportline="export PATH=$HOME/gcc-arm-none-eabi-7-2017-q4-major/bin:\$PATH"
if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi
popd

然后重启电脑!!!

接下来验证是否安装成功

arm-none-eabi-gcc --version

如果输出下面的的内容代码安装成功

arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255204]
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

代码下载

经过上面的步骤我们就安装好了所有的依赖项,我们下面的下载代码。
首先我们新建一个文件夹用存放源码。

mkdir ~/px4_src
cd ~/px4_src

下面开始下载代码

git clone https://github.com/PX4/Firmware.git

接下来补全代码的子模块,防止编译的时候出一下意外的问题。

cd Firmware
git submodule update --init --recursive

代码编译

首先编译jmavsim仿真验证。

cd ~/px4_src/Firmware
make px4_sitl jmavsim

如果没有什么问题会显示出下面的界面
jmavsim仿真界面
终端输入下面的命令,飞机会起飞

commander takeoff

现在可以Ctrl/Command + C关掉继续进行下面的操作
输入下面的命令然后进行gazebo仿真的编译

cd ~/px4_src/Firmware
make px4_sitl gazebo

如果没有问题,gazebo正常打开,出现了一个小飞机,关掉过后可以进行下面的操作。
仿真验证到此介绍,如果不进行实物飞控的代码编译和上传下面的步骤可以跳过。

cd ~/px4_src/Firmware
make px4_fmu-v5

其中后面的v5是版本号根据自己的飞控,进行相关的修改。
v5对应Pixhawk4硬件。

总结

以上的步骤经过本人在新装的Ubuntu 16.04系统中验证可以配置成功,如果中途出现错误,请检查网络连接,后再试。

发布了63 篇原创文章 · 获赞 50 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_38649880/article/details/95767676