1.Ubuntu22.04 + ROS2 Humble 环境搭建
前言
在 VMware 虚拟机搭建 ROS2 Humble 开发环境,虚拟机安装 Ubuntu22.04 。本文完全按照 ROS 官方安装步骤操作,记录途中遇到的依赖冲突问题,最后完成经典 turtlesim 小乌龟仿真演示。
Ubuntu22.04 链接
https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04/

环境信息
- 虚拟机:VMware Workstation
- 操作系统:Ubuntu 22.04
- ROS 版本:ROS2 Humble Hawksbill
- 软件源:清华镜像源
一、设置系统编码
sudo apt update && sudo apt install 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
作用:配置英文 UTF-8 编码,避免 ROS 安装、运行时出现中文乱码。
二、添加 ROS2 软件源
sudo apt update && sudo apt install curl gnupg lsb-release
# 导入ROS密钥
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
# 添加ROS2清华源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
坑点:如果执行 curl 时报错
Failed to connect to raw.githubusercontent.com,是 github 域名访问失败,需要切换网络。
三、安装 ROS2 Humble(重点踩坑)
官方文档命令:
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop
⚠️ 问题来了!
执行apt install ros-humble-desktop直接报依赖不满足
libpulse-dev : 依赖: libpulse0 (= 1:15.99.1+dfsg1-1ubuntu1) 但是 1:15.99.1+dfsg1-1ubuntu2.2 正要被安装
libusb-1.0-0-dev : 依赖: libusb-1.0-0 (= 2:1.0.25-1ubuntu1) 但是 2:1.0-2ubuntu2 正要被安装
python3-dev : 依赖: python3 (= 3.10.6-1~22.04) 但是 3.10.6-1~22.04.1 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
报错根源
执行sudo apt upgrade把系统底层库升级到新版本,但是 ros-humble-desktop 的开发包强制要求旧版本库,apt 不会自动降级,直接拒绝安装。
解决方案:改用 aptitude 工具处理依赖降级
# 安装aptitude
sudo apt install aptitude
# 安装桌面完整版ROS2
sudo aptitude install ros-humble-desktop
✅ 交互选择关键:!!!!!!!!!!!!!
- 第一个方案提示
保持 ros-humble-desktop [未安装的]→ 输入n拒绝该方案.- 等待 aptitude 计算出带有
downgrade(降级)的方案 → 输入y确认安装
第一次不要输入y,不过就算输错了,再来一次就行。
配置 ROS 环境变量
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
验证 rviz2 是否安装成功
which rviz2
rviz2
弹出 RVIZ 可视化窗口,代表可视化组件安装完成。

四、Turtlesim 小乌龟 Demo 演示(ROS2 入门经典案例)
- 第一个终端,启动乌龟仿真节点,保持终端不要关闭
ros2 run turtlesim turtlesim_node
成功后弹出小乌龟图形窗口。

提示:
Warning: Ignoring XDG_SESSION_TYPE=wayland属于 Qt 图形库提示,不影响程序运行,可以直接忽略。
- 新开第二个独立终端,启动键盘控制节点
ros2 run turtlesim turtle_teleop_key
👉 重点操作:鼠标点击选中这个新终端窗口,直接按键盘上下左右方向键,就能控制小乌龟移动。

踩坑提醒:方向键只有选中 teleop 的终端才生效,点击乌龟图形窗口无法控制。
- 终止节点:终端按下
Ctrl + C
五、重要使用约束(重中之重)
本次为解决依赖冲突,降级了部分底层系统库,红线命令禁止执行
❌ 禁止
sudo apt full-upgrade
sudo apt dist-upgrade
sudo apt upgrade
✅ 允许执行
sudo apt update
sudo apt install xxx
sudo apt autoremove
sudo apt clean
强烈建议:ROS 环境部署完成后,给虚拟机拍摄快照,后续系统损坏可一键回滚,不用重新部署。
六、总结
- 按照官方步骤,
sudo apt upgrade是本次依赖冲突的源头!纯净 Ubuntu 系统在安装 ROS 前,不要执行 upgrade,否则底层库版本升高,直接导致 ros-humble-desktop 安装失败; - 遇到 apt 无法解决的依赖冲突,可以用 aptitude,它支持自动计算降级方案;
- turtlesim 需要两个终端分别运行仿真节点、键盘控制节点;
- 降级系统库之后,后续不能再做系统大版本升级。
标签
#ROS2 #ROS2 Humble #机器人开发 #Ubuntu22.04 #turtlesim
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)