# Ubuntu 开发环境

下面的说明将在 PX4 上建立一个 PX4 开发环境。 Ubuntu Linux LTS (打开新窗口) PX4 支持的版本。其中包括18.04 (Bionic Beaver)、20.04 (Focal Fossa) 和 Ubuntu 22.04 (Jammy Jellyfish)。

我们提供了 Bash 脚本来简化这一过程。这些脚本将在 清洗 Ubuntu LTS 安装,如果在现有系统或不同版本的 Ubuntu 上运行,可能无法正常工作。

支持的目标

TIP

PX4 开发团队支持这种设置。这些说明也适用于其他基于 Debian Linux 的系统。

# 视频指南

本视频展示了如何为 NuttX 和仿真目标安装工具链 (如下所述中涵盖的基本测试)以及 构建 PX4 软件.

# 模拟和 NuttX(Pixhawk)目标

警告

ROS 用户应首先阅读/跳转到 ROS/GazeboROS 2 部分。

使用 ubuntu.sh (打开新窗口) 脚本来设置开发环境,以便为模拟器和/或 NuttX/Pixhawk 工具链。脚本安装 jMAVSim 所有目标、 经典仿真场景Gazebo 9 在 Ubuntu 18.04 上运行,Gazebo Classic 11 在 Ubuntu 20.04 上运行,以及 仿真场景Gazebo Ubuntu 22.04 上的 "花园"。

安装工具链

  1. 下载 PX4 源代码:

    Git 克隆 https://github.com/PX4/PX4-Autopilot.git --recursive
    

    备注

    源代码中的环境设置脚本通常适用于最近发布的 PX4 版本。如果使用旧版本的 PX4,可能需要 获取针对您的版本的源代码.

  2. 运行 ubuntu.sh 不带参数(在 bash shell 中)安装所有内容:

    敲击 ./PX4-Autopilot/Tools/setup/ubuntu.sh
    
    • 确认脚本进程中的任何提示。
    • 您可以使用 --无核x--无模拟工具 选项可省略 NuttX 和/或模拟工具。
  3. 完成后重新启动计算机。

补充说明

这些说明仅供参考:

  • 如果您想在 Ubuntu 20.04 上使用 Gazebo,可以手动添加。参见 仿真场景Gazebo> 安装.

  • 如图所示,您可以通过确认 gcc 版本来验证 NuttX 的安装:

    -none-eabi-gcc --version arm-none-eabi-gcc (GNU Arm 嵌入式工具链 9-2020-Q2-更新) 9.3.1 20200408 (释放)
    版权 (C) 2019 自由软件基金会这是 免费的 软件; 参见 消息来源 对于 复制条件。不保修; 都不 对于 适销性或特定用途的适用性。
    
  • 无论如何,你都需要 PX4 的源代码。但如果你只是想建立开发环境,而不需要所有源代码,你可以直接下载 ubuntu.sh (打开新窗口)requirements.txt (打开新窗口) 然后运行 ubuntu.sh:

    wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/ubuntu.sh
    wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/requirements.txt
    敲击 ubuntu.sh
    

# 树莓派

下面的说明解释了如何在 RasPi 上设置构建工具链。 Ubuntu 18.04.

警告

要为 Ubuntu 20.04(焦点)构建 PX4,必须使用 docker(Ubuntu 20.04 上的 GCC 工具链可以构建 PX4,但生成的二进制文件太新,无法在实际的 Pi 上运行)。更多信息,请参阅 PilotPi 与 Raspberry Pi OS 开发人员快速入门> 使用 docker 的替代构建方法.

获取 Raspberry Pi 的常用依赖项:

  1. 下载 ubuntu.sh (打开新窗口)requirements.txt (打开新窗口) 从 PX4 源代码库 (/Tools/setup/):
    wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/ubuntu.sh wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/requirements.txt
    
  2. 运行 ubuntu.sh 在终端中只获取常用依赖项:
    敲击 ubuntu.sh --no-nuttx --no-sim-tools
    
  3. 然后按照以下章节所述设置交叉编译器(GCC 或 clang)。

# 海湾合作委员会(armhf)

Ubuntu 软件仓库提供了一套预编译工具链。请注意,Ubuntu Focal 附带了 gcc-9-arm-linux-gnueabihf 的默认安装方式,但它并不完全受支持,因此我们必须手动安装 gcc-8-arm-linux-gnueabihf 并将其设置为默认工具链。本指南同样适用于早期的 Ubuntu 版本(Bionic)。下面的指令假定你没有安装任何版本的 arm-linux-gnueabihf,并将默认可执行文件设置为 更新备选方案.使用终端命令安装它们:

苏都 apt-get 安装 -y gcc-8-arm-linux-gnueabihf g++-8-arm-linux-gnueabihf

将它们设置为默认值:

苏都 update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabihf-gcc-8 100 --slave /usr/bin/arm-linux-gnueabihf-g++ arm-linux-gnueabihf-g++ /usr/bin/arm-linux-gnueabihf-g++-8
苏都 update-alternatives --config arm-linux-gnueabihf-gcc

# GCC (aarch64)

如果要为 ARM64 设备构建 PX4,本节是必需的。

苏都 apt-get 安装 -y gcc-8-aarch64-linux-gnu g++-8-aarch64-linux-gnu
苏都 update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-8 100 --slave /usr/bin/aarch64-linux-gnu-g++ aarch64-linux-gnu-g++ /usr/bin/aarch64-linux-gnu-g++-8
苏都 update-alternatives --config aarch64-linux-gnu-gcc

# Clang(可选)

首先安装 GCC(使用 clang 时需要)。

我们建议你从 Ubuntu 软件仓库获取 clang,如下所示:

sudo apt-get install clang

下面是用树形结构构建 PX4 固件的示例,使用 CMake.

CD <;路径-TO-PX4-SRC>;
mkdir build/px4_raspberrypi_default_clang
CD build/px4_raspberrypi_default_clang cmake \
-G"Unix Makefiles"; \
-DCONFIG=px4_raspberrypi_default \
-ucmake_c_compiler \
-dcmake_c_编译器=\
-ucmake_cxx_compiler \
-dcmake_cxx_compiler=clang++ \
../..
生产

# 详细信息

有关在 Raspberry Pi 上使用 PX4 的其他开发人员信息(包括本地构建 PX4),请点击此处:

# ROS 2

有关使用 PX4 设置和开发 ROS 2 的信息,请参见 ROS 2 用户指南.

一般来说,如果您使用的是硬件,不需要修改 PX4 本身,那么您就不需要 PX4 开发环境(PX4 固件默认包含并内置了使用 ROS 2 的依赖项)。

您需要安装正常的开发 模拟环境 以便与 PX4 模拟器配合使用。

# ROS/Gazebo Classic

本节介绍如何安装 ROS 1 与 PX4 一起使用。ROS 1 完整桌面构建版附带 Gazebo Classic,因此通常情况下您无需自行安装 PX4 模拟器依赖项!

# ROS Noetic/Ubuntu 20.04

如果您与 ROS Noetic (打开新窗口) 在 Ubuntu 20.04 上:

  1. 安装 PX4 时不使用模拟器工具链:

    1. 下载 PX4 源代码:

      Git 克隆 https://github.com/PX4/PX4-Autopilot.git --recursive
      
    2. 运行 ubuntu.sh--无模拟工具 (并可选择 --无核x):

      敲击 ./PX4-Autopilot/Tools/setup/ubuntu.sh --no-sim-tools --no-nuttx
      
      • 确认脚本进程中的任何提示。
    3. 完成后重新启动计算机。

  2. 可以 需要安装以下附加依赖项

    sudo apt-get install protobuf-compiler libeigen3-dev libopencv-dev -y
    
  3. 按照 Noetic 安装说明 (打开新窗口) (推荐使用 ros-noetic-desktop-full)。

  4. 按照以下步骤安装 MAVROS MAVROS 安装指南.

# ROS Melodic/Ubuntu 18.04

如果您正在 Ubuntu 18.04 上使用 ROS "Melodic:

  1. 下载 ubuntu_sim_ros_melodic.sh (打开新窗口) 脚本:

    wget https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_ros_melodic.sh
    
  2. 运行脚本:

    敲击 ubuntu_sim_ros_melodic.sh
    

    随着脚本的进行,您可能需要确认一些提示。

备注

  • ROS Melodic 默认与 Gazebo (Classic) 9 一起安装。
  • 您的 catkin(ROS 构建系统)工作区创建于 ~/catkin_ws/.
  • 该脚本使用 ROS Wiki "Melodic" 中的说明; Ubuntu 页面 (打开新窗口).

# 下一步工作

完成命令行工具链的设置后: