# Ubuntu 开发环境
下面的说明将在 PX4 上建立一个 PX4 开发环境。 Ubuntu Linux LTS (打开新窗口) PX4 支持的版本。其中包括18.04 (Bionic Beaver)、20.04 (Focal Fossa) 和 Ubuntu 22.04 (Jammy Jellyfish)。
我们提供了 Bash 脚本来简化这一过程。这些脚本将在 清洗 Ubuntu LTS 安装,如果在现有系统或不同版本的 Ubuntu 上运行,可能无法正常工作。
支持的目标 是
- 模拟和 NuttX(Pixhawk)目标.其中包括 仿真场景Gazebo, 经典仿真场景Gazebo, jMAVSim, Pixhawk 和其他基于 NuttX 的硬件).
- 树莓派
- ROS 2 (机器人操作系统)
- ROS 1 (机器人操作系统)
TIP
PX4 开发团队支持这种设置。这些说明也适用于其他基于 Debian Linux 的系统。
# 视频指南
本视频展示了如何为 NuttX 和仿真目标安装工具链 (如下所述中涵盖的基本测试)以及 构建 PX4 软件.
# 模拟和 NuttX(Pixhawk)目标
警告
ROS 用户应首先阅读/跳转到 ROS/Gazebo 或 ROS 2 部分。
使用 ubuntu.sh (打开新窗口) 脚本来设置开发环境,以便为模拟器和/或 NuttX/Pixhawk 工具链。脚本安装 jMAVSim 所有目标、 经典仿真场景Gazebo 9 在 Ubuntu 18.04 上运行,Gazebo Classic 11 在 Ubuntu 20.04 上运行,以及 仿真场景Gazebo Ubuntu 22.04 上的 "花园"。
安装工具链
-
Git 克隆 https://github.com/PX4/PX4-Autopilot.git --recursive
备注
源代码中的环境设置脚本通常适用于最近发布的 PX4 版本。如果使用旧版本的 PX4,可能需要 获取针对您的版本的源代码.
运行 ubuntu.sh 不带参数(在 bash shell 中)安装所有内容:
敲击 ./PX4-Autopilot/Tools/setup/ubuntu.sh
- 确认脚本进程中的任何提示。
- 您可以使用
--无核x
和--无模拟工具
选项可省略 NuttX 和/或模拟工具。
完成后重新启动计算机。
补充说明
这些说明仅供参考:
如果您想在 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 的常用依赖项:
- 下载 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
- 运行 ubuntu.sh 在终端中只获取常用依赖项:
敲击 ubuntu.sh --no-nuttx --no-sim-tools
- 然后按照以下章节所述设置交叉编译器(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 上:
安装 PX4 时不使用模拟器工具链:
-
Git 克隆 https://github.com/PX4/PX4-Autopilot.git --recursive
运行 ubuntu.sh 的
--无模拟工具
(并可选择--无核x
):敲击 ./PX4-Autopilot/Tools/setup/ubuntu.sh --no-sim-tools --no-nuttx
- 确认脚本进程中的任何提示。
完成后重新启动计算机。
-
你 可以 需要安装以下附加依赖项
sudo apt-get install protobuf-compiler libeigen3-dev libopencv-dev -y
按照 Noetic 安装说明 (打开新窗口) (推荐使用 ros-noetic-desktop-full)。
按照以下步骤安装 MAVROS MAVROS 安装指南.
# ROS Melodic/Ubuntu 18.04
如果您正在 Ubuntu 18.04 上使用 ROS "Melodic:
下载 ubuntu_sim_ros_melodic.sh (打开新窗口) 脚本:
wget https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_ros_melodic.sh
运行脚本:
敲击 ubuntu_sim_ros_melodic.sh
随着脚本的进行,您可能需要确认一些提示。
备注
- ROS Melodic 默认与 Gazebo (Classic) 9 一起安装。
- 您的 catkin(ROS 构建系统)工作区创建于 ~/catkin_ws/.
- 该脚本使用 ROS Wiki "Melodic" 中的说明; Ubuntu 页面 (打开新窗口).
# 下一步工作
完成命令行工具链的设置后:
- 安装 VSCode (如果你更喜欢使用集成开发环境而不是命令行)。
- 安装 QGroundControl 日常构建 (打开新窗口)
TIP
日常建设 包括隐藏在发布版中的开发工具。它还可以让用户访问发布版中尚未支持的 PX4 新功能。
- 继续前往 建造说明.
← MacOS 设置 Windows 设置 →