news 2026/4/3 4:46:09

ROS 2从入门到精通系列(二):环境搭建 - Ubuntu系统安装ROS2

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ROS 2从入门到精通系列(二):环境搭建 - Ubuntu系统安装ROS2

ROS 2从入门到精通系列(二):环境搭建 - Ubuntu系统安装ROS2

本文将手把手教你在Ubuntu系统上搭建ROS2开发环境,快速完成从零到一的配置。


引言

选择合适的开发环境是学习ROS2的第一步。本文针对Ubuntu 22.04 LTS系统讲解ROS 2 Humble的完整安装过程,并提供故障排查方案。


一、前置条件检查

1.1 系统要求

网络环境

稳定网络连接
可访问官方源

操作系统

Ubuntu 22.04 LTS
Focal Fossa或更新

硬件要求

内存: 4GB+
建议8GB

处理器: 双核+
建议i5或等效

硬盘: 20GB+可用空间

前置条件

1.2 检查系统信息

打开终端,执行以下命令检查你的系统:

# 检查Ubuntu版本lsb_release -a# 检查系统架构uname-m# 应该输出 x86_64 或 aarch64# 检查内存free-h# 检查硬盘空间df-h /home

预期输出示例:

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Release: 22.04 Codename: jammy

二、ROS2安装方式对比

ROS2提供多种安装方式,选择最适合你的:

ROS2安装方式

二进制包安装
apt

✅ 推荐
速度快
依赖处理完善

源码编译安装
colcon

⚠️ 高级
更新最新
可自定义

Docker容器
Docker

📦 便携
环境隔离
跨平台

本文采用最常用的方式:二进制包安装(apt)


三、完整安装步骤

3.1 步骤1:设置安装源

ROS2官方提供了Ubuntu软件源,需要添加到系统中。

配置源仓库
# 1. 使用curl下载GPG密钥并添加到系统curl-sSL https://repo.ros2.org/ros.key|sudoapt-keyadd-# 2. 添加ROS2官方仓库sudosh-c'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'

或使用中国镜像源(推荐,速度更快):

# 使用清华大学镜像源sudosh-c'echo "deb [arch=$(dpkg --print-architecture)] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy main" > /etc/apt/sources.list.d/ros2-latest.list'# 导入GPG密钥curl-sSL https://repo.ros2.org/ros.key|sudoapt-keyadd-
验证源配置
cat/etc/apt/sources.list.d/ros2-latest.list

3.2 步骤2:更新包索引

sudoaptupdate

这个命令会从所有添加的源中下载最新的包索引。

预期输出包含packages.ros.org或镜像源的URL:

Hit:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy InRelease ... Hit:N https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy InRelease ... Reading package lists... Done

3.3 步骤3:安装ROS2完整版

ROS2提供多种安装版本:

ROS2 Humble

ros-humble-desktop
推荐
包含RViz+Gazebo

ros-humble-ros-base
基础版
仅核心库

ros-humble-dev
开发版
包含编译工具

安装完整版(包含所有工具):

sudoaptinstallros-humble-desktop

或仅安装基础版(占用空间小):

sudoaptinstallros-humble-ros-base

安装时间预计:5-15分钟(取决于网络速度和硬盘速度)

安装过程中可能出现提示,输入y并按Enter确认。

3.4 步骤4:配置环境变量

ROS2需要在每次使用前加载环境变量。

临时加载(仅当前终端有效)
source/opt/ros/humble/setup.bash
永久加载(推荐)

编辑你的Shell配置文件:

# 如果使用bashnano~/.bashrc# 或如果使用zshnano~/.zshrc

在文件末尾添加一行:

source/opt/ros/humble/setup.bash

保存(Ctrl+O,Enter,Ctrl+X)。

然后重新加载配置:

source~/.bashrc# 或 source ~/.zshrc
验证环境变量
echo$ROS_DISTRO

正确输出应该是:

humble

3.5 步骤5:安装开发工具

# 安装colcon构建工具sudoaptinstallpython3-colcon-common-extensions# 安装用于C++开发的工具sudoaptinstallros-humble-rclcpp ros-humble-rclpy# 安装常用工具sudoaptinstallpython3-rosdep2 python3-argcomplete

3.6 步骤6:初始化rosdep

rosdep是一个依赖管理工具:

# 初始化rosdep数据库sudorosdep init# 更新rosdep(使用国内镜像会更快)rosdep update

如果官方源太慢,可以使用中国镜像:

# 备份原始列表sudocp/etc/ros/rosdep/sources.list.d/20-default.list /etc/ros/rosdep/sources.list.d/20-default.list.backup# 编辑配置文件sudonano/etc/ros/rosdep/sources.list.d/20-default.list

将文件内容改为:

yaml https://mirrors.tuna.tsinghua.edu.cn/rosdep/rosdep.yaml

然后:

rosdep update

四、安装验证

4.1 检查核心库

# 列出已安装的ROS2包aptlist --installed|grepros-humble|head-20# 应该能看到类似输出:# ros-humble-actionlib-msgs/jammy,now 1.2.1-1jammy.20220524 amd64# ros-humble-ament-cmake/jammy,now ...

4.2 运行第一个ROS2程序

在不创建任何项目的情况下,直接运行官方演示:

# 打开第一个终端,运行turtle演示程序ros2 run turtlesim turtlesim_node# 打开第二个终端,运行键盘控制程序ros2 run turtlesim turtle_teleop_key

预期结果:出现一个小乌龟的窗口,你可以用方向键控制它移动。

4.3 验证通信机制

# 打开第一个终端,运行发布者节点ros2 run demo_nodes_cpp talker# 打开第二个终端,运行订阅者节点ros2 run demo_nodes_cpp listener

预期输出示例:

[listener] Hello World: 1 [listener] Hello World: 2 [listener] Hello World: 3 ...

五、安装时间复杂度分析

安装时间受多个因素影响:

T t o t a l = T n e t w o r k + T d o w n l o a d + T c o m p i l e + T s e t u p T_{total} = T_{network} + T_{download} + T_{compile} + T_{setup}Ttotal=Tnetwork+Tdownload+Tcompile+Tsetup

其中:

因素耗时影响
网络速度1-10 min下载包大小 ~2-3GB
硬盘I/O2-5 minSSD显著更快
CPU编译0-5 min预编译二进制包较快
依赖解析1-3 minapt解析依赖关系

总耗时预计:5-15分钟


六、常见安装问题排查

问题1:找不到包(Unable to locate package)

# 症状$sudoaptinstallros-humble-desktop E: Unable tolocatepackage ros-humble-desktop

解决方案:

# 检查源是否正确添加cat/etc/apt/sources.list.d/ros2-latest.list# 更新包索引sudoaptupdate# 如果仍未解决,检查GPG密钥apt-key list|grepROS

问题2:依赖冲突(Dependency Errors)

# 症状The following packages have unmet dependencies: ros-humble-desktop: Depends: libgazebo...

解决方案:

# 安装缺失的依赖sudoapt--fix-brokeninstall# 或使用rosdep自动解决依赖rosdepinstall-i --from-path src --rosdistro humble -y

问题3:网络超时或下载中断

# 如果下载中断,重新执行安装命令sudoaptinstallros-humble-desktop# 清除部分下载的包sudoaptcleansudoaptautoclean# 重新尝试sudoaptupdatesudoaptinstallros-humble-desktop

问题4:权限拒绝(Permission Denied)

# 症状:/opt/ros/humble/setup.bash: Permission denied# 解决方案:使用source而非执行source/opt/ros/humble/setup.bash# ✅ 正确bash/opt/ros/humble/setup.bash# ✅ 也正确./opt/ros/humble/setup.bash# ❌ 错误

问题5:环境变量未生效

# 验证环境变量echo$ROS_DISTRO# 如果输出为空,表示未加载# 手动加载source/opt/ros/humble/setup.bash# 再次验证echo$ROS_DISTRO# 应输出 humble

七、高级配置

7.1 安装额外的包

# 安装开发工具集sudoaptinstallros-humble-dev-tools# 安装常用库sudoaptinstallros-humble-std-msgs ros-humble-geometry-msgs# 安装可视化工具sudoaptinstallros-humble-rviz2 ros-humble-rqt-*# 安装模拟器sudoaptinstallros-humble-gazebo-*

7.2 自定义ROS_DOMAIN_ID

在分布式ROS2系统中,可能需要区分不同的网络域:

# 在 ~/.bashrc 中添加exportROS_DOMAIN_ID=0# 默认值,范围: 0-232# 不同的DOMAIN_ID可以相互隔离通信

7.3 配置ROS2中间件

# 使用FastRTPS(默认)exportRMW_IMPLEMENTATION=rmw_fastrtps_cpp# 或使用Cyclone DDSexportRMW_IMPLEMENTATION=rmw_cyclonedds_cpp# 需要先安装对应的RMW实现sudoaptinstallros-humble-rmw-cyclonedds-cpp

八、卸载ROS2

如果需要卸载ROS2(例如升级到新版本):

# 卸载ROS2包sudoaptremove ros-humble-*sudoaptremove ros-humble-desktop*# 清理配置文件和依赖sudoaptautoremovesudoaptautoclean# 移除源sudorm/etc/apt/sources.list.d/ros2-latest.list# 移除GPG密钥sudoapt-key del<KEY_ID>

九、验证清单

创建一个检查清单来确保安装完整:

✅ ROS_DISTRO=humble

✅ ros2 --version

✅ turtlesim运行

安装验证清单

检查环境变量

检查ROS命令

重新加载setup.bash

运行演示程序

检查$PATH环境变量

安装完成 🎉

重新安装开发工具


十、推荐的下一步

安装完成后,你应该:

  1. 验证安装:运行演示程序
  2. ⚙️创建工作空间:为后续开发准备环境
  3. 📚学习基础概念:理解节点、话题、服务等
  4. 🔧尝试编写第一个节点:用Python或C++

十一、快速参考

完整安装命令序列

如果你想快速完成安装,可以逐行复制执行以下命令:

# 1. 添加源curl-sSL https://repo.ros2.org/ros.key|sudoapt-keyadd-sudosh-c'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'# 2. 更新sudoaptupdate# 3. 安装sudoaptinstallros-humble-desktop -y# 4. 设置环境变量echo"source /opt/ros/humble/setup.bash">>~/.bashrcsource~/.bashrc# 5. 安装开发工具sudoaptinstallpython3-colcon-common-extensions ros-humble-rclcpp ros-humble-rclpy python3-rosdep2 -y# 6. 初始化rosdepsudorosdep init rosdep update# 7. 验证echo$ROS_DISTRO

十二、本文要点总结

系统要求:Ubuntu 22.04 LTS,4GB内存,20GB硬盘

安装方式:二进制包安装最简单快速

关键步骤:添加源 → 更新索引 → 安装包 → 配置环境变量

验证方法:运行turtlesim演示程序和talker-listener示例

问题排查:检查源配置、更新包索引、验证环境变量


常见疑问解答

Q1: 我的Ubuntu是20.04,能安装ROS2 Humble吗?

A: Humble官方仅支持22.04。如果必须用20.04,可安装ROS2 Foxy,但建议升级Ubuntu版本。

Q2: 安装过程中网络很慢怎么办?

A: 使用国内镜像源(如清华、阿里云)。本文已提供清华镜像配置。

Q3: 能同时安装多个ROS2版本吗?

A: 可以,但需要在使用前切换环境变量:

source/opt/ros/humble/setup.bash# 加载Humblesource/opt/ros/iron/setup.bash# 加载Iron(会覆盖Humble)

Q4: turtlesim运行后窗口出不来怎么办?

A: 检查显示器驱动。如果是远程连接,需要配置X11转发。


下一篇预告:《ROS2从入门到精通系列(三):工作空间与包 - 创建和管理项目结构》

👍 如果本文帮助了你,请点赞并关注!有任何问题欢迎在评论区提问~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/24 2:59:36

STLink引脚图基础教学:手把手教你辨识标准20针布局

STLink引脚图详解&#xff1a;从零开始搞懂20针调试接口的每一个细节你有没有遇到过这样的场景——辛辛苦苦写好代码&#xff0c;烧录时却提示“Target not connected”&#xff1f;反复检查线路、电源、复位&#xff0c;最后发现是排线反插了&#xff0c;一通电差点把芯片烧掉…

作者头像 李华
网站建设 2026/3/30 23:33:41

GPT-SoVITS GitHub星标破万!背后的技术优势是什么?

GPT-SoVITS GitHub星标破万&#xff01;背后的技术优势是什么&#xff1f; 在语音合成技术飞速发展的今天&#xff0c;一个开源项目悄然走红&#xff1a;GPT-SoVITS。它仅用不到一分钟的语音样本就能“克隆”出高度相似的声音&#xff0c;音质自然、语调流畅&#xff0c;甚至能…

作者头像 李华
网站建设 2026/4/2 5:12:32

Keil芯片包安装全流程:从下载到验证的实践案例

Keil芯片包安装实战&#xff1a;从零开始构建可靠开发环境 在嵌入式开发的日常中&#xff0c;你是否遇到过这样的场景&#xff1f;——刚接手一个新项目&#xff0c;满怀信心地打开Keil uVision创建工程&#xff0c;结果在选择目标芯片时却发现“找不到设备”&#xff1b;或者…

作者头像 李华
网站建设 2026/3/9 23:31:52

GPT-SoVITS音量一致性优化:避免输出忽大忽小

GPT-SoVITS音量一致性优化&#xff1a;避免输出忽大忽小 在语音合成技术日益渗透到虚拟助手、有声读物和影视配音的今天&#xff0c;用户对“像人”的声音不再满足于音色相似&#xff0c;更期待自然流畅、响度稳定的听觉体验。然而&#xff0c;许多开发者在使用 GPT-SoVITS 构建…

作者头像 李华
网站建设 2026/4/1 10:07:16

如何通过 REST API 暴露 Delta 表

原文&#xff1a;towardsdatascience.com/how-to-expose-delta-tables-via-rest-apis-53b4dd7afa4e?sourcecollection_archive---------0-----------------------#2024-05-06 三种架构讨论并测试用于服务 Delta 表 https://rebremer.medium.com/?sourcepost_page---byline--…

作者头像 李华
网站建设 2026/4/1 1:24:48

10款亲测好用的免费降ai率软件(2025年12月版,0元实现付费级降重)

论文AIGC检测的浪潮正在迅速席卷各大高校和期刊。 和去年不同&#xff0c;目前&#xff0c;像Turnitin、知网这样的主流学术查重系统&#xff0c;都已相继内置了AIGC检测功能。 这意味着&#xff0c;毕业论文“AI率”过高被标记&#xff0c;不再是“狼来了”&#xff0c;而是正…

作者头像 李华