【ROS2速成 - Day1】系统环境准备 + ROS2 Humble一键安装部署

今天这篇 Day1 教程,我把所有坑都给你踩平了。提供国内镜像一键安装脚本,全程复制粘贴,10 分钟装好能用的 ROS2 Humble,彻底解决下载慢、依赖缺失、环境变量问题。装好直接能用,无缝衔接后续 Day2 的核心概念学习。


一、前置准备(必须严格遵守,否则必踩坑)

✅ 系统要求(行业标配,坚决不换版本)

  • 操作系统:Ubuntu 22.04 LTS 桌面版(64 位)
  • 禁止使用:Ubuntu 20.04/23.04/24.04、Windows WSL、虚拟机精简版
  • 硬盘空间:至少预留 30GB(ROS2 安装 + 后续编译需要)

⚠️ 嵌入式工程师专属避坑提醒

  1. 不要用虚拟机的 "共享文件夹" 存放 ROS2 工作空间,会导致编译权限错误和文件同步问题
  2. 不要提前更换 Ubuntu 软件源,脚本会自动配置国内最优源
  3. 如果你之前安装过其他版本的 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 学习总结与作业

✅ 今天你应该掌握的内容

  1. 成功安装 ROS2 Humble 桌面版
  2. 配置了永久环境变量
  3. 运行了第一个 ROS2 程序(小乌龟仿真)
  4. 初步理解了节点和话题的概念
  5. 学会了用命令行发布话题消息

📝 今日作业

  1. 不看笔记,重新运行一遍小乌龟测试
  2. 尝试修改ros2 topic pub命令中的linear.xangular.z参数,观察小乌龟的运动变化
  3. ros2 topic list命令查看当前系统中的所有话题

📢 下期预告

【ROS2 速成 - Day2】ROS2 五大核心概念吃透(嵌入式类比记忆法)

下一篇我会用嵌入式工程师最熟悉的思维方式,一次性讲透 ROS2 最核心的五个概念:节点、话题、消息、服务、参数。把节点类比成独立任务线程、话题类比成串口、消息类比成通信结构体,让你不用死记硬背,5 分钟就能建立 ROS2 知识体系。

💗 码字不易,欢迎点赞 + 收藏 + 关注,后续按【ROS2 速成 - DayX】持续连载更新。所有代码和模板都会免费分享,嵌入式转型 ROS2 不踩坑!

有任何安装问题,欢迎在评论区留言,我会一一解答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值