目录
[1、ROS2 与 Ubuntu 版本匹配指南(必看)](#1、ROS2 与 Ubuntu 版本匹配指南(必看))
[1. 官方推荐版本对应表](#1. 官方推荐版本对应表)
[2. 核心适配规则](#2. 核心适配规则)
[4.1 第1步:添加ROS2仓库](#4.1 第1步:添加ROS2仓库)
[4.2 第2步:安装核心组件](#4.2 第2步:安装核心组件)
[4.3 第3步:环境变量配置](#4.3 第3步:环境变量配置)
[1. 自动补全配置](#1. 自动补全配置)
1、ROS2 与 Ubuntu 版本匹配指南(必看)
在搭建 ROS2 开发环境时,Ubuntu 系统版本与 ROS2 LTS 版本存在严格的官方绑定关系,选择不匹配的版本会直接导致依赖冲突、编译失败或功能异常,需优先遵循以下适配规则:
1. 官方推荐版本对应表
| Ubuntu LTS 版本 | 适配的 ROS2 LTS 版本 | 官方支持周期截止 | 适用场景建议 |
|---|---|---|---|
| 22.04 LTS | ROS2 Humble Hawksbill | 2027 年 5 月 | 生态成熟、稳定性强,工业项目、长期维护项目的首选方案 |
| 24.04 LTS | ROS2 Jazzy Jalisco | 2029 年 5 月 | 生命周期更长,适配新硬件与系统特性,适合新项目开发 |
2. 核心适配规则
-
强绑定原则:ROS2 LTS 版本的预编译包仅针对特定 Ubuntu LTS 版本优化适配,例如:
- Humble 仅支持 Ubuntu 22.04,无法在 24.04 上直接安装使用;
- Jazzy 仅支持 Ubuntu 24.04,无法在 22.04 上直接安装使用。跨版本安装需手动适配 Python、GCC 等底层系统库,过程复杂且无官方支持,不推荐工程场景使用。
-
架构兼容性 :上述两个 ROS2 版本均同时支持
x86_64(通用 PC 平台)与arm64(如树莓派 4B/5、NVIDIA Jetson 系列开发板)架构,可直接使用官方预编译包,无需额外适配底层依赖。
2,查询本地ubuntu版本
lsb_release -a

3,换源操作
国内用户必看!不改源下载速度慢到怀疑人生:
# 1. 替换为清华源
sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
# 2. 刷新软件列表(必须执行!否则替换不生效)
sudo apt update
4,正式安装ROS
4.1 第1步:添加ROS2仓库
# 1. 安装依赖
sudo apt update && sudo apt install curl gnupg lsb-release
# 2. 下载ROS密钥(替换为清华地址,国内秒下)
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/ros2/ros.key -o /tmp/ros.key
# 3. 转换密钥格式
sudo gpg --dearmor -o /usr/share/keyrings/ros-archive-keyring.gpg /tmp/ros.key
# 4. 设置密钥权限
sudo chmod 644 /usr/share/keyrings/ros-archive-keyring.gpg
# 5. 添加清华ROS2软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# 6. 刷新源
sudo apt update
4.2 第2步:安装核心组件
推荐完整安装包(包含GUI工具):
sudo apt update
sudo apt install ros-humble-desktop
4.3 第3步:环境变量配置
每次打开终端自动加载:
# 1. 永久配置:将ROS2 Humble的环境加载指令写入终端配置文件
# 以后每次打开新终端,都会自动加载ROS2环境,无需手动配置
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
# 2. 立即生效:刷新终端配置文件
# 让刚才的ROS2配置在当前终端立刻生效,不用重启终端
source ~/.bashrc
5,验证安装是否成功
方法1:经典小海龟测试
三个终端分别运行:
# ====================== 终端 1 ======================
# 命令:启动小海龟仿真器节点
# 作用:打开一个图形化窗口,生成一只小海龟,这是ROS2的可视化仿真程序
ros2 run turtlesim turtlesim_node
# ====================== 终端 2 ======================
# 命令:启动小海龟键盘控制节点
# 作用:让这个终端接管海龟控制,按**方向键↑↓←→**就能移动小海龟
# 注意:必须让这个终端处于激活窗口(选中),按键才有效
ros2 run turtlesim turtle_teleop_key
# ====================== 终端 3 ======================
# 命令:启动ROS2可视化通信图谱工具
# 作用:直观显示两个节点的通信关系(谁发消息、谁收消息)
# 能看到:控制节点 → 发送指令 → 海龟仿真节点
rqt_graph





正在运行的 ROS2 节点(相当于两个独立的小程序):
光标处于当前终端就是控制海龟移动:
节点名 对应你运行的命令 角色比喻 /teleop_turtleros2 run turtlesim turtle_teleop_key键盘遥控器,接收你的按键指令 /turtlesimros2 run turtlesim turtlesim_node小海龟本体,负责执行指令并显示
中间的箭头 + 文字:节点间的 "通信管道"
箭头方向代表消息的流向,文字是通信的主题(话题 / Action):
/turtle1/cmd_vel(左→右) 这是最核心的控制话题!你按方向键时,/teleop_turtle会往这个话题发 "速度指令"(比如 "向前走、向左转"),/turtlesim收到后就会控制海龟移动。/turtle1/rotate_absolute/action/feedback和/turtle1/rotate_absolute/action/status(右→左) 这是 ROS2 的 Action 通信,是turtlesim给控制节点返回的反馈,比如 "旋转动作执行到哪一步了""动作完成了",用来处理需要进度反馈的操作(比如绝对角度旋转)。


方法2:查看软件包列表
ros2 pkg list | grep turtlesim
出现
turtlesim说明组件安装完整

6,进阶配置
1. 自动补全配置
# 安装ROS2命令自动补全的必备依赖库
sudo apt install python3-argcomplete
# 正确配置 ROS2 Humble 命令补全(替换报错的旧命令)
echo 'eval "$(register-python-argcomplete3 ros2)"' >> ~/.bashrc
# 立即生效
source ~/.bashrc
2,(Terminator分屏终端)
# 安装:分屏终端 + ROS开发工具 + 正确的依赖管理工具
sudo apt install terminator ros-dev-tools python3-rosdep