
想要上手机器人开发,第一步往往是搭建环境。ROS2作为目前主流的机器人操作系统,其安装过程虽不复杂,但细节之处常有“坑点”。本文将以 ROS2 Humble Hawksbill 在 Ubuntu 22.04 (Jammy Jellyfish) 上的安装为例,分享从系统配置到环境验证的完整流程,并记录下笔者亲身踩过的“坑”及解决方案,帮助你顺利完成安装。
两种主流安装方案概览
在开始具体步骤前,先了解两种常见的安装途径:
方案一:一键安装工具
对于新手或希望快速上手的用户,可以使用如“鱼香ROS一键安装”这类工具。它们封装了大部分步骤,简单快捷。网上教程众多,此处不再赘述。
方案二:手动安装(本文重点)
一键工具虽然方便,但知其然更应知其所以然。手动安装能让你更透彻地理解ROS2的依赖和环境配置,遇到问题也更容易排查。笔者最初也使用了一键工具,但后来决定重新走一遍手动流程,于是便有了这篇记录。
手动安装ROS2 Humble详细步骤
第一步:替换系统APT源为国内镜像
国内网络环境访问Ubuntu官方源可能较慢,建议先替换为阿里云等国内镜像源,以加速后续的包下载。
- 编辑系统源列表文件:
sudo nano /etc/apt/sources.list
- 将文件原有内容注释或替换为以下阿里云源配置:
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
避坑提示:笔者曾尝试不替换官方源,结果在安装ROS2依赖时,部分软件包从官方源下载失败。因此,除非网络条件极佳,否则建议在第一步就完成源的替换。
第二步:配置基础系统环境
- 更新系统包列表并升级现有软件:
这是一个好习惯,能确保系统处于最新状态。
sudo apt update && sudo apt upgrade -y
- 安装必要的工具:
例如 curl,后续步骤会用到。
sudo apt install curl
- 设置UTF-8语言环境(如果尚未设置):
这有助于避免后续可能出现的字符编码问题。
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
第三步:添加ROS2官方GPG密钥与软件源
这是最关键也最容易出错的一步。
-
添加GPG密钥:
该密钥用于验证软件包的真实性和完整性,是APT安全机制的要求。
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
- 作用:数字签名验证,确保软件包来自官方且未被篡改。
- 路径:
/usr/share/keyrings/ 是Ubuntu存放可信GPG密钥的标准目录。
避坑提示:起初担心从GitHub下载密钥会慢或失败,便尝试寻找国内镜像提供的密钥地址(如 https://mirrors.tuna.tsinghua.edu.cn/ros/ros.key)。结果 apt update 始终报错。后来发现该镜像当时并未提供 ros.key 文件,导致指定的URL不存在。实际上,从官方地址下载密钥的速度通常可以接受。
-
添加ROS2软件源:
软件源(Repository)是集中管理软件包的仓库。这里我们使用阿里云的ROS2镜像加速下载。
echo “deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.aliyun.com/ros2/ubuntu $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/ros.list
- 命令解析:
[arch=$(dpkg --print-architecture)]:自动检测并匹配当前系统架构(如amd64, arm64)。
signed-by=...:指定上一步导入的GPG密钥路径,进行包验证。
https://mirrors.aliyun.com/ros2/ubuntu:使用阿里云的ROS2镜像地址。
$(lsb_release -cs):自动获取当前Ubuntu的系统代号(如 jammy)。
/etc/apt/sources.list.d/ros.list:APT专门用于管理第三方源的配置文件目录。
- 避坑提示:
- 注意URL中是
ros2 而不是 ros。笔者曾参考某教程错误地写成了 ros,导致该源地址不存在(因为ROS1不支持Ubuntu 22.04),apt update 自然失败。
- 曾有过一个设想:既然已经将系统源换成了阿里云Ubuntu源,是否可以不额外添加ROS2源,直接从中安装ROS2?经过测试,不行。标准的Ubuntu镜像源不包含ROS2软件包,必须显式添加ROS2专用的软件源。
第四步:安装ROS2 Humble
- 更新软件包索引:
添加新源后,必须更新本地的包索引,使其知晓新的软件来源。
sudo rm /var/lib/apt/lists/* -vf # 可选,强制清除旧的索引缓存
sudo apt update
- 选择安装版本:
第五步:配置环境变量
安装完成后,需要让系统知道ROS2命令的位置。
- 临时生效(仅当前终端会话):
source /opt/ros/humble/setup.bash
- 永久生效(添加到用户shell配置文件中):
将环境变量设置命令添加到 ~/.bashrc 文件中,这样每次打开新终端都会自动配置好ROS2环境。
echo “source /opt/ros/humble/setup.bash” >> ~/.bashrc
source ~/.bashrc # 立即生效当前终端的配置
完成以上步骤后,你可以在终端输入 ros2 --help 来验证安装是否成功。
附:Ubuntu 22.04 常用软件安装小贴士
在机器人开发环境之外,你或许还需要一些日常软件。例如,在Ubuntu上安装微信或WPS Office,可以遵循以下步骤:
- 从官方网站下载对应的Linux版(
.deb格式)安装包。
- 通过U盘或SCP等方式将其传输到Ubuntu系统中。
- 在终端中导航到安装包所在目录,依次执行以下命令安装依赖和软件:
sudo apt install libgtk2.0-0
sudo apt install libatomic1
sudo dpkg -i WeChatLinux_x86_64.deb # 请替换为你的微信安装包实际文件名
sudo dpkg -i wps-office_*.deb # 请替换为你的WPS安装包实际文件名
如果 dpkg 安装过程中报告依赖问题,可以运行 sudo apt install -f 来修复。
总结
手动安装ROS2的过程,本质上是对Linux软件包管理(APT)、数字签名验证和系统环境配置的一次实践。虽然步骤略显繁琐,但每一步都有其意义,理解它们有助于你在后续的开发和调试中更加得心应手。希望这篇结合了实战经验与官方文档要点的指南,能帮助你顺利跨越ROS2入门的第一道门槛。
如果你在安装过程中遇到了本文未涵盖的问题,欢迎在技术社区(如 云栈社区)中交流探讨,共同解决。
|