ubuntu18.04下搭建PX4编译环境

Ubuntu18.04 Development Environment of PX4/Firmware

  • 1安装Ubuntu
  • 2开始配置环境
    • 2.1下载PX4的固件源码
    • 2.2环境配置
      • Bash Scripts
      • Gazebo, JMAVSim and NuttX (Pixhawk) Targets
      • 源码获取
    • 2.3 源码编译
      • 加载子模块
    • 2.4总结
  • 3 自定义安装依赖包
    • ① arm-none-eabi-gcc工具链
    • ②更新软件包列表,若干依赖项的安装
    • ③安装pyulog
    • ④Ninja构建
    • ⑤基于NuttX的硬件

20220803

1安装Ubuntu

链接: link.

2开始配置环境

2.1下载PX4的固件源码

官方将源码开源至Github,链接: link.

2.2环境配置

环境配置参考官方文档.
目录:Development—>Getting Started—>Toolchain Installation—>Ubuntu Setup

ubuntu18.04下搭建PX4编译环境_第1张图片

Bash Scripts

官方提供了bash脚本,可以在不同的平台上配置开发环境

脚本及其描述如下

Bash Script Description
ubuntu.sh Installs Gazebo 9 and jMAVSim simulators and/or NuttX/Pixhawk tools. Does not include dependencies for Fast DDS.
ubuntu_sim_ros_melodic.sh Installs ROS “Melodic” and PX4 on Ubuntu 18.04 LTS only. Do not use on Ubuntu 20.04 or later!

注:在配置时只用到ubuntu.sh

Gazebo, JMAVSim and NuttX (Pixhawk) Targets

使用ubuntu.sh脚本来配置开发环境,其中包括Gazebo9和jMAVSim simulators,or/and NutX/Pixhawk工具链

源码获取

1.先在home目录克隆源码,如果还没有安装git 则先安装

sudo apt install git
git clone https://github.com/PX4/PX4-Autopilot.git --recursive

也可以去GitHub直接下载 官方源码 解压

2.使用bash shell执行源码中的ubuntu.sh,目录为PX4-Autopilot/Tools/setup/ubuntu.sh

bash ./PX4-Autopilot/Tools/setup/ubuntu.sh      

在脚本执行过程中,允许所有提示

ubuntu18.04下搭建PX4编译环境_第2张图片

3.执行完成后重启电脑

ubuntu.sh文件及其注解如下,requirments.txt中明确了依赖包及其版本

ubuntu18.04下搭建PX4编译环境_第3张图片
ubuntu18.04下搭建PX4编译环境_第4张图片

2.3 源码编译

加载子模块

目前PX4已经出v1.13.0,可自行切换,克隆下来的源码默认是主分支,根据需要切换到目标版本上再加载子模块,也可在github自行选择目标分支下载,无需git checkout -b 切换分支。

ubuntu18.04下搭建PX4编译环境_第5张图片


ubuntu18.04下搭建PX4编译环境_第6张图片

以v1.13.0为例

#进入源码目录下
cd PX4-Autopilot-main/

#加载子模块
git submodule update --init --recursive
#切换分支
git checkout -b v1.13.0

加载过程中可能会出现网速过慢导致失败等问题,只需继续执行加载子模块指令即可。
此时请一定耐心等待,科学上网除外。

结束后要多试几次 git submodule update --init --recursive,它会将所缺的分支子模组补上,直至没有错误

ubuntu18.04下搭建PX4编译环境_第7张图片
最后进入源码目录打开终端,就可以编译指定版本的固件

make  <target version>

ubuntu18.04下搭建PX4编译环境_第8张图片

查看源码中的build文件夹,已生对应版本的可执行文件,.px4文件就是可以下载的固件

ubuntu18.04下搭建PX4编译环境_第9张图片

2.4总结

#①安装git
sudo apt install git

#②下载源码
git clone https://github.com/PX4/PX4-Autopilot.git --recursive

# ③使用bash shell执行源码中的ubuntu.sh
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh      

#④进入源码目录下
cd PX4-Autopilot-main/

#⑤切换分支,切换完成后需要执行步骤⑤,确保子模块安装完整
git checkout -b v1.13.0
#⑥加载子模块
git submodule update --init --recursive

#⑦尝试编译,可以使用Tab键自动补充
make  px4_fmu_<version>

有问题依次解决

3 自定义安装依赖包

依赖包自定义安装参考地址

配置环境时,可能会因为网络原因导致若干个依赖下载失败,这些问题将会出现在最后的源码编译中,依照错误提示,结合网上博客资源可以一一解决,以下仅为参考,并非每一步都要完成

部分相关依赖配置方法如下:

① arm-none-eabi-gcc工具链

很多问题都是由于编译器版本导致的,可以参考下面的方法,安装比较新的版本
对于v1.13.0的固件版本,使用gcc-2020可以编译通过,需要手动安装。

Ubuntu中gcc-arm-none-eabi的安装、移除和版本切换

②更新软件包列表,若干依赖项的安装

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

⑤基于NuttX的硬件

安装以下依存关系以为基于NuttX的硬件构建
sudo apt-get install python-serial openocd \
    flex bison libncurses5-dev autoconf texinfo \
    libftdi-dev libtool zlib1g-dev -y

带 \ 的是换行符 与下方是同一条指令,不要分开

你可能感兴趣的:(ubuntu,bash,linux)