今天这篇 Day1 教程,我把所有坑都给你踩平了。提供国内镜像一键安装脚本,全程复制粘贴,10 分钟装好能用的 ROS2 Humble,彻底解决下载慢、依赖缺失、环境变量问题。装好直接能用,无缝衔接后续 Day2 的核心概念学习。
一、前置准备(必须严格遵守,否则必踩坑)
✅ 系统要求(行业标配,坚决不换版本)
- 操作系统:Ubuntu 22.04 LTS 桌面版(64 位)
- 禁止使用:Ubuntu 20.04/23.04/24.04、Windows WSL、虚拟机精简版
- 硬盘空间:至少预留 30GB(ROS2 安装 + 后续编译需要)
⚠️ 嵌入式工程师专属避坑提醒
- 不要用虚拟机的 "共享文件夹" 存放 ROS2 工作空间,会导致编译权限错误和文件同步问题
- 不要提前更换 Ubuntu 软件源,脚本会自动配置国内最优源
- 如果你之前安装过其他版本的 ROS,必须先完全卸载干净,否则会出现严重的版本冲突
二、ROS2 Humble 一键安装(复制粘贴即可)
我写了一个专为嵌入式工程师优化的一键安装脚本,包含:
- 自动配置阿里云 ROS2 镜像源(下载速度提升 10 倍以上)
- 自动添加 GPG 密钥,解决签名验证失败问题
- 安装 ROS2 Humble 桌面完整版(包含所有常用工具和仿真环境)
- 自动配置永久环境变量,再也不用每次手动 source
- 自动安装 colcon 编译工具和其他依赖
步骤 1:创建安装脚本
打开终端(快捷键Ctrl+Alt+T),输入以下命令创建脚本文件:
nano install_ros2_humble.sh
步骤 2:复制粘贴以下完整脚本
#!/bin/bash
# ROS2 Humble 一键安装脚本(嵌入式工程师专属避坑版)
# 作者:老林(嵌入式15年)
# 适配系统:Ubuntu 22.04 LTS
echo "====================================="
echo "ROS2 Humble 一键安装开始"
echo "====================================="
# 1. 更新系统软件包
echo "[1/6] 更新系统软件包..."
sudo apt update && sudo apt upgrade -y
# 2. 安装必要依赖
echo "[2/6] 安装必要依赖工具..."
sudo apt install -y curl gnupg2 lsb-release build-essential git
# 3. 添加ROS2 GPG密钥
echo "[3/6] 添加ROS2 GPG密钥..."
sudo curl -sSL https://mirrors.aliyun.com/ros2/ros2.key | sudo gpg --dearmor -o /usr/share/keyrings/ros2-archive-keyring.gpg
# 4. 配置阿里云ROS2镜像源
echo "[4/6] 配置阿里云ROS2镜像源..."
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros2-archive-keyring.gpg] https://mirrors.aliyun.com/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# 5. 更新软件源并安装ROS2 Humble桌面版
echo "[5/6] 安装ROS2 Humble桌面完整版..."
sudo apt update
sudo apt install -y ros-humble-desktop
# 6. 安装开发工具和依赖
echo "[6/6] 安装colcon编译工具和其他依赖..."
sudo apt install -y python3-colcon-common-extensions python3-rosdep python3-argcomplete
# 初始化rosdep(国内镜像加速)
echo "初始化rosdep(国内镜像加速)..."
sudo rosdep init
rosdep update
# 配置永久环境变量
echo "配置永久环境变量..."
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
echo "source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash" >> ~/.bashrc
# 立即生效环境变量
source ~/.bashrc
echo "====================================="
echo "ROS2 Humble 安装完成!"
echo "====================================="
echo "请关闭当前终端,重新打开一个新终端使环境变量生效"
echo "验证安装请输入:ros2 --version"
echo "下一篇教程:Day2 ROS2五大核心概念(嵌入式类比记忆法)"
粘贴完成后,按Ctrl+O保存,按Enter确认文件名,然后按Ctrl+X退出 nano 编辑器。
步骤 3:运行安装脚本
bash
运行
# 给脚本添加执行权限
chmod +x install_ros2_humble.sh
# 运行脚本(需要输入你的用户密码)
./install_ros2_humble.sh
现在你只需要等待 10-15 分钟,脚本会自动完成所有安装步骤。期间如果有任何确认提示,直接按Y回车即可。
三、安装验证(必须做,否则后续全错)
安装完成后,必须关闭当前终端,重新打开一个新终端,然后执行以下命令验证安装是否成功。
1. 检查 ROS2 版本
ros2 --version
如果输出类似以下内容,说明安装成功:
ros2 0.22.0
2. 查看已安装的 ROS2 功能包
ros2 pkg list | grep humble
如果输出一长串功能包列表,说明 ROS2 安装完整。
四、经典小乌龟测试(第一个 ROS2 程序)
ROS2 最经典的入门测试就是小乌龟仿真,通过这个测试你可以直观感受 ROS2 的节点 - 话题通信模式。
步骤 1:启动小乌龟仿真节点
打开一个新终端,输入:
ros2 run turtlesim turtlesim_node
这时会弹出一个蓝色窗口,里面有一只小乌龟。
🧠 嵌入式思维类比:这个
turtlesim_node就相当于一个嵌入式设备,它运行在自己的进程里,等待接收控制指令。
步骤 2:启动键盘控制节点
再打开一个新终端,输入:
ros2 run turtlesim turtle_teleop_key
现在你可以用键盘上的方向键控制小乌龟在窗口里移动了。
🧠 嵌入式思维类比:这个
turtle_teleop_key节点就相当于一个遥控器,它通过话题把速度指令发送给小乌龟节点。这和我们嵌入式里 "遥控器通过串口发指令给单片机" 的逻辑是完全一样的。
步骤 3:用命令行手动发布控制指令
再打开第三个终端,输入以下命令,让小乌龟画一个圆:
ros2 topic pub -r 10 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
按Ctrl+C停止发布。
五、新手最常见问题排查(99% 的问题都在这里)
问题 1:下载速度慢,甚至下载失败
✅ 解决方法:脚本已经自动配置了阿里云镜像源,如果还是慢,检查你的网络连接,或者切换到手机热点。
问题 2:出现 "依赖无法安装" 或 "包损坏" 错误
✅ 解决方法:执行以下命令修复依赖:
sudo apt --fix-broken install
sudo apt update && sudo apt upgrade -y
然后重新运行安装脚本。
问题 3:输入ros2命令提示 "command not found"
✅ 解决方法:这是环境变量没有生效。执行以下命令:
source ~/.bashrc
如果还是不行,检查~/.bashrc文件末尾是否有以下两行:
source /opt/ros/humble/setup.bash
source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash
问题 4:小乌龟窗口不显示
✅ 解决方法:确保你安装的是 Ubuntu 桌面版,不是服务器版。如果是虚拟机,确保开启了 3D 加速。
六、Day1 学习总结与作业
✅ 今天你应该掌握的内容
- 成功安装 ROS2 Humble 桌面版
- 配置了永久环境变量
- 运行了第一个 ROS2 程序(小乌龟仿真)
- 初步理解了节点和话题的概念
- 学会了用命令行发布话题消息
📝 今日作业
- 不看笔记,重新运行一遍小乌龟测试
- 尝试修改
ros2 topic pub命令中的linear.x和angular.z参数,观察小乌龟的运动变化 - 用
ros2 topic list命令查看当前系统中的所有话题
📢 下期预告
【ROS2 速成 - Day2】ROS2 五大核心概念吃透(嵌入式类比记忆法)
下一篇我会用嵌入式工程师最熟悉的思维方式,一次性讲透 ROS2 最核心的五个概念:节点、话题、消息、服务、参数。把节点类比成独立任务线程、话题类比成串口、消息类比成通信结构体,让你不用死记硬背,5 分钟就能建立 ROS2 知识体系。
💗 码字不易,欢迎点赞 + 收藏 + 关注,后续按【ROS2 速成 - DayX】持续连载更新。所有代码和模板都会免费分享,嵌入式转型 ROS2 不踩坑!
有任何安装问题,欢迎在评论区留言,我会一一解答。
558

被折叠的 条评论
为什么被折叠?



