第2章:开发环境搭建——Ubuntu系统配置、ROS2 Humble安装、Gazebo Fortress安装、环境变量设置

说实话,搭建开发环境这件事,看起来简单,但坑是真不少。我见过太多同学花了一整天装环境,最后卡在某个依赖上,心态直接崩了。这一章,我就带你一步步把地基打牢。

核心要点:Ubuntu 22.04 + ROS2 Humble + Gazebo Fortress,这是目前最稳定的组合。别问我为什么不用别的版本,我在项目里踩过的坑够写一本书了。

2.1 Ubuntu 22.04 系统配置

我个人习惯用 Ubuntu 22.04 LTS。为什么?因为 ROS2 Humble 官方就是基于这个版本做的测试。你想想看,用官方推荐的总没错。

2.1.1 系统语言与源设置

装完系统第一件事,先把语言设置成英文。嗯,这里要注意:如果你用中文路径,后面编译 ROS 包的时候,有些工具会报编码错误。我曾经因为这个折腾了一下午。

# 更新软件源
sudo apt update
sudo apt upgrade -y

# 安装基础工具
sudo apt install -y curl wget git vim net-tools

2.1.2 设置 locale

ROS2 对 locale 有要求,必须支持 UTF-8。这个其实很简单:

sudo apt install -y locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

我的小技巧:把这行 export 加到 ~/.bashrc 里,省得每次开终端都要手动设置。

2.2 ROS2 Humble 安装

ROS2 Humble 是 2022 年发布的 LTS 版本,支持到 2027 年。说白了,你学完这套课程,这个版本还在维护期,不用担心过时。

2.2.1 添加 ROS2 源

# 添加 ROS2 GPG key
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

# 添加源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

sudo apt update

2.2.2 安装 ROS2 Humble

这里我建议装桌面版,包含了 RViz2 和可视化工具。别省那点空间,调试的时候你就知道有多香了。

sudo apt install -y ros-humble-desktop

# 安装开发工具
sudo apt install -y python3-colcon-common-extensions python3-rosdep python3-vcstool

注意:安装过程大概需要 10-15 分钟,取决于你的网速。如果卡住了,别急着关终端,等一等就好。

2.2.3 初始化 rosdep

sudo rosdep init
rosdep update

rosdep 这东西,说白了就是帮你自动解决依赖的。我第一次用的时候觉得没必要,后来手动装依赖装到崩溃,才老老实实用它。

2.3 Gazebo Fortress 安装

Gazebo Fortress 是 Ignition 系列的一个版本,和 ROS2 Humble 配合得特别好。为什么选它?因为它是目前唯一一个官方支持 ROS2 Humble 的 Gazebo 版本。

2.3.1 安装 Gazebo Fortress

sudo apt install -y ignition-fortress

就这么一行命令?对,就这么简单。但前提是你已经配好了 Ubuntu 的源。我记得有一次帮同事装,他用的镜像源有问题,装了一堆依赖冲突,最后重装了系统才解决。

2.3.2 验证安装

ign gazebo --version

如果看到版本号输出,恭喜你,装好了。如果报错,多半是显卡驱动的问题。这个我们后面会专门讲。

2.4 环境变量设置

环境变量这东西,说白了就是告诉系统「我的工具放在哪」。不配好,你连 ros2 命令都用不了。

2.4.1 配置 ROS2 环境变量

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

2.4.2 配置 Gazebo 环境变量

echo "export IGN_GAZEBO_SYSTEM_PLUGIN_PATH=/opt/ros/humble/lib" >> ~/.bashrc
echo "export IGN_GAZEBO_RESOURCE_PATH=/opt/ros/humble/share" >> ~/.bashrc
source ~/.bashrc

避坑指南:我曾经忘记配 IGN_GAZEBO_RESOURCE_PATH,结果 Gazebo 启动后一片空白,什么模型都加载不出来。折腾了两天才发现是环境变量的问题。

2.5 知识体系总览

下面这张图,是我梳理的整个开发环境搭建的逻辑。你跟着这个流程走,基本不会出大问题。

开发环境搭建知识体系 Ubuntu 22.04 ROS2 Humble Gazebo Fortress 语言设置 · 源配置 · 基础工具 添加源 · 安装 · rosdep 初始化 安装 · 验证 · 显卡驱动检查 环境变量配置 ROS2 setup.bash Gazebo 插件路径 Gazebo 资源路径 验证:ros2 + ign gazebo 联调

2.6 验证环境

装完所有东西,我们来验证一下。打开两个终端:

终端1:启动 Gazebo

ign gazebo

终端2:检查 ROS2 是否正常

ros2 topic list

如果 Gazebo 能正常启动,ROS2 也能列出话题,那恭喜你,环境搭好了。如果不行,别慌,多半是环境变量没生效,重新 source 一下就好。

常见问题:Gazebo 启动后黑屏?检查显卡驱动。ROS2 命令找不到?检查 setup.bash 有没有 source。这两个问题占了 80% 的求助帖。

好了,环境搭好了,下一章我们开始写第一个 ROS2 节点。说实话,写代码比搭环境有意思多了。