跳至内容

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 --递归

    信息

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

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

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

补充说明

这些说明仅供参考:

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

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

    $arm-none-eabi-gcc --version
    
    arm-none-eabi-gcc (GNU 手臂 嵌入式 工具链 9-2020-Q2-update) 9.3.1 20200408 (释放)
    版权 (C) 2019 Free Software Foundation, Inc.
     免费的 软件; 看看 消息来源 对于 复制 条件  那里 没有
    质保;  偶数的 对于 适销性 健身 FOR A 特别 目的
  • 无论如何,你都需要 PX4 的源代码。但如果你只是想建立开发环境,而不需要所有源代码,你可以直接下载 ubuntu.shrequirements.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.shrequirements.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 --无核x --无模拟工具
  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

将它们设置为默认值:

苏都 更新备选方案 --安装 /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabihf-gcc-8 100 --奴隶 /usr/bin/arm-linux-gnueabihf-g++ arm-linux-gnueabihf-g++ /usr/bin/arm-linux-gnueabihf-g++-8
苏都 更新备选方案 --配置 arm-linux-gnueabihf-gcc

GCC (aarch64)

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

苏都 apt-get 安装 -y gcc-8-aarch64-linux-gnu g++-8-aarch64-linux-gnu
苏都 更新备选方案 --安装 /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-8 100 --奴隶 /usr/bin/aarch64-linux-gnu-g++ aarch64-linux-gnu-g++ /usr/bin/aarch64-linux-gnu-g++-8
苏都 更新备选方案 --配置 aarch64-linux-gnu-gcc

Clang(可选)

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

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

sudo apt-get install clang

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

CD <;PATH-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_COMPILER=clang \
-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 --递归
    2. 运行 ubuntu.sh--无模拟工具 (并可选择 --无核x):

      敲击 ./PX4-Autopilot/Tools/setup/ubuntu.sh --无模拟工具 --无核x
      • 确认脚本进程中的任何提示。
    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 页面.

下一步工作

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

  • 安装 VSCode (如果你更喜欢使用集成开发环境而不是命令行)。
  • 安装 QGroundControl 日常构建

    TIP

    日常建设 包括隐藏在发布版中的开发工具。它还可以让用户访问发布版中尚未支持的 PX4 新功能。

  • 继续前往 建造说明.