Ubuntu22.04安装ROS2教程

目录

[1、ROS2 与 Ubuntu 版本匹配指南(必看)](#1、ROS2 与 Ubuntu 版本匹配指南(必看))

[1. 官方推荐版本对应表](#1. 官方推荐版本对应表)

[2. 核心适配规则](#2. 核心适配规则)

2,查询本地ubuntu版本

3,换源操作

4,正式安装ROS

[4.1 第1步:添加ROS2仓库](#4.1 第1步:添加ROS2仓库)

[4.2 第2步:安装核心组件](#4.2 第2步:安装核心组件)

[4.3 第3步:环境变量配置](#4.3 第3步:环境变量配置)

5,验证安装是否成功

方法1:经典小海龟测试

方法2:查看软件包列表

6,进阶配置

[1. 自动补全配置](#1. 自动补全配置)

2,(Terminator分屏终端)


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_turtle ros2 run turtlesim turtle_teleop_key 键盘遥控器,接收你的按键指令
/turtlesim ros2 run turtlesim turtlesim_node 小海龟本体,负责执行指令并显示

中间的箭头 + 文字:节点间的 "通信管道"

箭头方向代表消息的流向,文字是通信的主题(话题 / Action):

  1. /turtle1/cmd_vel(左→右) 这是最核心的控制话题!你按方向键时,/teleop_turtle会往这个话题发 "速度指令"(比如 "向前走、向左转"),/turtlesim收到后就会控制海龟移动。
  2. /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
相关推荐
l1t15 小时前
在WSL的ubuntu 26.04容器中用deb安装包安装使用redrock-4.1-1
linux·运维·ubuntu·postgresql
皓月盈江18 小时前
Linux Ubuntu系统如何编辑Docker容器内的文件
linux·ubuntu·docker·容器·靶场·vulhub·编辑docker内文件
yqcoder19 小时前
TypeScript 进阶:如何精准获取对象的所有 Key?
javascript·ubuntu·typescript
呆萌很19 小时前
联想小新 (XiaoXin 16 IRL8) 笔记本安装Ubuntu系统
ubuntu
皓月盈江20 小时前
Linux Ubuntu系统使用Docker搭建vulhub靶场环境
linux·ubuntu·docker·tomcat·vulhub·漏洞靶场
biubiubiu070621 小时前
Ubuntu命令练习
linux·运维·ubuntu
勤自省21 小时前
ROS2分布式通信与Launch文件实战:从踩坑到打通(第12-20讲总结)
分布式·ubuntu·ros2·gazebo·launch·rqt·rviz2
iceman195221 小时前
ubuntu 25.10升级到26.04
linux·服务器·ubuntu
拾贰_C1 天前
【Ubuntu | 公共工作站 | mysql 】 MySQL残留物残留数据
linux·mysql·ubuntu
Ujimatsu1 天前
虚拟机安装Ubuntu 26.04.x服务器版(命令行版)(2026.5)
linux·windows·ubuntu