Ubuntu 22.04/24.04 安装 ROS2 完整教程(Humble / Jazzy)

Ubuntu 22.04/24.04 安装 ROS2 完整教程(Humble / Jazzy)

最后更新:2026年2月
适用系统:Ubuntu 22.04 LTS(Jammy) / Ubuntu 24.04 LTS(Noble)
适用架构:x86_64 / arm64(包括树莓派)


📌 一、版本选择原则(必读)

你的Ubuntu版本必须安装的ROS2版本支持截止推荐度
22.04 LTSROS2 Humble Hawksbill2027年5月⭐⭐⭐ 稳定成熟
24.04 LTSROS2 Jazzy Jalisco2029年5月⭐⭐⭐⭐ 新项目首选

❗ 核心原则:Ubuntu版本与ROS2版本严格绑定,22.04不能装Jazzy,24.04不能装Humble。
❗ 架构说明:x86_64(普通PC)和arm64(树莓派4B/5、NVIDIA Jetson)均支持上述版本。


🚀 方案一:一键脚本安装(5分钟极速版)

推荐人群:新手、希望零坑位、网络环境一般、需要快速验证者
工具来源:鱼香ROS(国内开源社区维护,已稳定运行5年+)

1️⃣ 第一步:确认系统版本
lsb_release -a 

预期输出:包含 Ubuntu 22.04.5 LTS​ 或 Ubuntu 24.04.2 LTS​

2️⃣ 第二步:执行一键安装脚本
wget http://fishros.com/install -O fishros && . fishros 
3️⃣ 第三步:交互式配置(严格按顺序)

⚠️ 第一次运行脚本:

  • 输入数字:5​ → 选择【一键配置系统源】
  • 输入数字:2​ → 选择【更换系统源并清理第三方源】(推荐中科大)
  • 脚本自动执行,等待完成

⚠️ 第二次运行脚本(重新执行上述命令):

wget http://fishros.com/install -O fishros && . fishros 
  • 输入数字:1​ → 选择【添加ROS/ROS2官方源】
  • 脚本自动执行,等待完成

⚠️ 第三次运行脚本(再次执行):

wget http://fishros.com/install -O fishros && . fishros 
  • 输入数字:1​ → 选择【不更换源安装】(因前两步已完成换源)
  • 选择镜像源:推荐输入 1​(中科大)
  • 选择ROS2版本:
    • Ubuntu 22.04 → 输入 humble​
    • Ubuntu 24.04 → 输入 jazzy​
  • 选择安装类型:输入 desktop​(桌面完整版,包含RViz、Turtlesim等)

⏳ 等待约3-8分钟(取决于网速),无报错即安装完成。

4️⃣ 第四步:验证安装(小乌龟测试)

打开终端A(Ctrl+Alt+T):

ros2 run turtlesim turtlesim_node 

打开终端B:

ros2 run turtlesim turtle_teleop_key 

预期效果:出现蓝色窗口和小乌龟,键盘↑↓←→可控制移动 → ✅ 安装成功


🔧 方案二:官方标准安装(完全可控)

推荐人群:开发者、需要纯净环境、网络稳定(海外/代理)、后期需深度定制者


第1步:设置语言环境(UTF-8)
sudo apt update sudo apt install locales -y 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 locale 

确认输出:LANG=en_US.UTF-8​ 等环境变量正确


第2步:启用Ubuntu Universe仓库
sudo apt install software-properties-common -y sudo add-apt-repository universe -y 

第3步:添加ROS2 GPG密钥及软件源
3.1 安装curl并下载密钥
sudo apt update sudo apt install curl -y sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg 
3.2 添加ROS2 apt仓库(架构自动识别)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null 

第4步:安装ROS2
4.1 更新软件包索引
sudo apt update sudo apt upgrade -y 
4.2 根据Ubuntu版本执行对应命令

🔹 如果你的是 Ubuntu 22.04:

sudo apt install ros-humble-desktop -y 

可选精简版:sudo apt install ros-humble-ros-base -y​(无GUI工具)

🔹 如果你的是 Ubuntu 24.04:

sudo apt install ros-jazzy-desktop -y 

可选精简版:sudo apt install ros-jazzy-ros-base -y​(无GUI工具)

⏳ 安装大小:约1.5GB~2.5GB,耗时5-15分钟。


第5步:安装开发工具与依赖管理
5.1 安装ROS开发工具包
sudo apt install ros-dev-tools -y 
5.2 安装colcon构建工具(编译工作空间必备)
sudo apt install python3-colcon-common-extensions -y 
5.3 安装并初始化rosdep(依赖管理工具,可选但推荐)
sudo apt install python3-rosdep -y sudo rosdep init rosdep update 

⚠️ 常见报错:若sudo rosdep init​提示“已存在”,则跳过;若提示网络错误,可尝试sudo rm /etc/ros/rosdep/sources.list.d/20-default.list​后重试。


第6步:配置环境变量(永久生效)

将ROS2环境加载脚本写入~/.bashrc​,避免每次打开终端都要手动source。

🔹 Ubuntu 22.04 + Humble:

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc source ~/.bashrc 

🔹 Ubuntu 24.04 + Jazzy:

echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc source ~/.bashrc 

验证环境:

echo $ROS_DISTRO 

预期输出:humble​ 或 jazzy​


第7步:验证安装(Talker-Listener测试)

打开终端A:

ros2 run demo_nodes_cpp talker 

预期输出:[INFO] [xxx] [talker]: Publishing: 'Hello World: 1'​ 持续滚动

打开终端B:

ros2 run demo_nodes_py listener 

预期输出:[INFO] [xxx] [listener]: I heard: [Hello World: 1]​ 持续滚动

✅ 看到以上内容,恭喜!ROS2已完整、正确地安装在你的系统中。


🆘 三、常见问题急救包(FAQ)

问题现象根本原因解决方案
​E: Unable to locate package ros-humble-desktop​ROS2 apt源未添加成功重做第3步,或换清华源/中科大源
​rosdep: command not found​未安装python3-rosdep​sudo apt install python3-rosdep -y​
每次打开终端都要手动source​未写入.bashrc执行第6步
安装卡在99% / 依赖冲突网络波动/源不稳定​Ctrl+C​中断,重新sudo apt install​
​ros2: command not found​环境未加载先执行source /opt/ros/{humble/jazzy}/setup.bash​
虚拟机无法运行turtlesimOpenGL渲染问题虚拟机设置启用3D加速,或安装export LIBGL_ALWAYS_SOFTWARE=1​
树莓派编译内存不足源码编译时RAM不够使用二进制安装(本教程均为二进制),或增加swap

📁 四、进阶:国内镜像源加速(可选)

如果你在执行sudo apt update​时速度极慢,或方案一换源失败,可手动更换apt源为国内镜像。

Ubuntu 22.04(中科大源):

sudo sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list sudo apt update 

Ubuntu 24.04(中科大源):

sudo sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list sudo apt update 

ROS2软件源换国内源(清华):

sudo sed -i '[email protected]@mirrors.tuna.tsinghua.edu.cn/ros2@g' /etc/apt/sources.list.d/ros2.list sudo apt update 

📝 五、备注

本教程基于以下官方文档及社区实践编写:

  • ROS2官方安装指南:https://docs.ros.org
  • 鱼香ROS一键安装:http://fishros.com
  • Ubuntu官方树莓派镜像:https://ubuntu.com/download/raspberry-pi

Read more

Flutter 三方库 wasm_ffi 深入鸿蒙端侧硬核 WebAssembly 虚拟机沙盒穿透适配全景:通过异步极速 FFI 中继管道打通底层高算力异构服务-适配鸿蒙 HarmonyOS ohos

Flutter 三方库 wasm_ffi 深入鸿蒙端侧硬核 WebAssembly 虚拟机沙盒穿透适配全景:通过异步极速 FFI 中继管道打通底层高算力异构服务-适配鸿蒙 HarmonyOS ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 wasm_ffi 深入鸿蒙端侧硬核 WebAssembly 虚拟机沙盒穿透适配全景:通过异步极速 FFI 中继管道打通底层高算力异构服务并全面实现无损语言壁垒交互 前言 在 OpenHarmony 应用向高性能计算领域扩展的过程中,如何优雅地接入已有的 C/C++ 算法库(如加密引擎、重型图像处理、数学模拟)而又不失跨平台的便捷性?传统的 NAPI 虽然稳健,但在 Flutter 生态中,直接利用 WebAssembly (WASM) 配合 FFI(External Function Interface)的语义可以在一定程度上实现代码的高度复用。wasm_ffi 库为 Flutter 开发者提供了一套在 Dart 环境下调用 WASM

By Ne0inhk
三种适用于Web版IM(即时通讯)聊天信息的加密算法实现方案

三种适用于Web版IM(即时通讯)聊天信息的加密算法实现方案

文章目录 * **第一部分:引言与核心密码学概念** * **1.1 为什么IM需要端到端加密(E2EE)?** * **1.2 核心密码学概念与工具** * **第二部分:方案一:静态非对称加密(基础方案)** * **2.1 方案概述与流程** * **2.2 前端Vue实现(使用node-forge)** * **1. 安装依赖** * **2. 核心工具类 `crypto.js`** * **3. Vue组件中使用** * **2.3 后端Java实现(Spring Boot)** * **1. 实体类** * **2. Controller层** * **3. WebSocket配置** * **2.4 密钥管理、注册与登录集成** * **1. 用户注册/登录时生成密钥** * **2. 密钥设置页面** * **2.

By Ne0inhk
前端代码生成的大洗牌:当 GLM 4.7 与 MiniMax 挑战 Claude Opus,谁才是性价比之王?

前端代码生成的大洗牌:当 GLM 4.7 与 MiniMax 挑战 Claude Opus,谁才是性价比之王?

在 AI 辅助编程领域,长期以来似乎存在一条不成文的铁律:如果你想要最好的结果,就必须为最昂贵的模型买单(通常是 Anthropic 或 OpenAI 的旗舰模型)。然而,随着国产大模型如 GLM 4.7 和 MiniMax M2.1 的迭代,这一格局正在发生剧烈震荡。 最近,一场针对Claude Opus 4.5、Gemini 3 Pro、GLM 4.7 和 MiniMax M2.1 的前端 UI生成横向测评,打破了许多人的固有认知。在这场包含落地页、仪表盘、移动端应用等五个真实场景的较量中,不仅出现了令人咋舌的“滑铁卢”,更诞生了性价比极高的“新王”。 本文将深入拆解这场测试的细节,透过代码生成的表象,探讨大模型在工程化落地中的真实效能与成本逻辑。

By Ne0inhk
【Java Web学习 | 第14篇】JavaScript(8) -正则表达式

【Java Web学习 | 第14篇】JavaScript(8) -正则表达式

🌈个人主页: Hygge_Code🔥热门专栏:从0开始学习Java | Linux学习| 计算机网络💫个人格言: “既然选择了远方,便不顾风雨兼程” 文章目录 * JavaScript 正则表达式详解 * 什么是正则表达式🤔 * JavaScript 正则表达式的定义与使用🥝 * 1. 字面量语法 * 2. 常用匹配方法 * test() 方法🍋‍🟩 * exec() 方法🍋‍🟩 * 正则表达式的核心组成部分🐦‍🔥 * 1. 元字符 * 边界符 * 量词 * 字符类 * 2. 修饰符 * 简单示例🍂 JavaScript 正则表达式详解 正则表达式是处理字符串的强大工具,在 JavaScript 中被广泛应用于表单验证、文本处理和数据提取等场景。本文将从正则表达式的基本概念出发,详细介绍其语法规则和实际应用方法。 什么是正则表达式🤔 正则表达式是用于匹配字符串中字符组合的模式,在 JavaScript

By Ne0inhk