1. 前言
简单介绍写这篇博文的动机、你的系统环境,以及你想解决的问题。比如:
最近在 Ubuntu 22.04 (Jammy) 上折腾 ROS 2,发现网上大多教程针对的是 Ubuntu 20.04 / ROS Noetic,或者 Ubuntu 22.04 上只能装 ROS 2 Humble,却经常会卡在密钥下载、源配置等问题上。记录一下从添加源到运行 turtlesim 的全流程,希望能帮到后来人。
2. 环境概览
操作系统:Ubuntu 22.04 “jammy”
目标 ROS 版本:ROS 2 Humble Hawksbill
硬件平台:VMware 虚拟机 / 实机
网络环境:国内(使用清华镜像加速)
3. 遇到的主要问题
尝试安装 ROS Melodic 到 jammy,404 错误
apt update
报错:E: The repository 'http://packages.ros.org/ros/ubuntu jammy Release' does not have a Release file.
根本原因:Melodic 仅支持 Ubuntu 18.04。
删除旧源后,直接安装 Humble 依然找不到包
删除了
/etc/apt/sources.list.d/ros-latest.list
,但忘记添加 ROS 2 源。
公钥下载失败:curl SSL_read error
直接从 GitHub raw 下载
ros.key
时网络重置,导致签名文件无效。
ros2 --version
验证报错误以为 CLI 支持
--version
,其实要用$ROS_DISTRO
或者运行示例节点来验证。
4. 解决方案与完整步骤
# 1. 更新系统并安装依赖
sudo apt update
sudo apt install -y curl gnupg lsb-release
# 2. 导入 ROS 官方公钥(从 keyserver)
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 \
--recv-keys F42ED6FBAB17C654
# 3. 添加 ROS 2 Humble APT 源
sudo sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu jammy main" \
> /etc/apt/sources.list.d/ros2.list'
# 4. 更新索引并安装
sudo apt update
sudo apt install -y ros-humble-desktop
# 5. 临时加载环境并验证
source /opt/ros/humble/setup.bash
echo $ROS_DISTRO # 应输出 humble
# 6. (可选)自动加载环境
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
# 7. 运行测试示例:turtlesim
# 终端 A:启动模拟器
ros2 run turtlesim turtlesim_node
# 终端 B:键盘控制
ros2 run turtlesim turtle_teleop_key
5. 验证与常见命令
查看节点列表:
ros2 node list
查看话题列表:
ros2 topic list
打印话题消息:
ros2 topic echo /turtle1/pose
创建并编译工作区:
mkdir -p ~/ros2_ws/src && cd ~/ros2_ws # 在 src/ 下放入自己的包 colcon build source install/setup.bash
6. 总结与建议
要点:Melodic ≠ Humble,务必对照官方对照表选择正确版本;
网络:国内可换成清华、阿里镜像加速公钥和包下载;
自动化:把
source
写入~/.bashrc
,并给常用命令设 alias;后续:可在此基础上搭建 ROS 2 开发环境,试试 RViz、Gazebo、移动机器人 Demo。