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

HarmonyOS应用开发实战(基础篇)Day07-《登录注册页面》

HarmonyOS应用开发实战(基础篇)Day07-《登录注册页面》

设计:从零构建一个专业级登录页面 在移动应用开发中,登录/注册页面是用户与系统建立身份关联的第一道门户,其设计质量直接影响用户的第一印象与使用体验。本文将基于 ArkTS 与 HarmonyOS 的 ArkUI 框架,从 UI 设计到交互逻辑,完整实现一个简洁、安全、响应式的登录页面。 一、设计目标与视觉规范 根据需求草图,我们的登录页面需包含以下核心元素: * 顶部 Logo:品牌标识,增强识别度; * 账号输入框:支持文本输入,带占位提示; * 密码输入框:密文显示,保障安全; * 操作按钮组:包含“登录”与“取消”两个功能按钮; * 交互反馈:输入校验、加载状态、跳转逻辑。 整体风格遵循 HarmonyOS 设计语言(HUAWEI Design): * 使用 vp

By Ne0inhk

Flutter 三方库 super_dates 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、强类型、更优雅的 DateTime 增强与时间逻辑审计引擎

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 super_dates 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、强类型、更优雅的 DateTime 增强与时间逻辑审计引擎 在鸿蒙(OpenHarmony)系统的日程管理、精密任务调度(如鸿蒙版闹钟/日历)、理财工具或带有复杂时间区间(Periods)计算的应用中,如何摆脱标准 DateTime 库中那些模糊的整数偏移,转而使用语义明确、强类型保障的现代日期 API?super_dates 为开发者提供了一套工业级的、基于 Extension 的 DateTime 深度增强方案。本文将深入实战其在鸿蒙时间维度逻辑层中的应用。 前言 什么是 SuperDates?它不是一个替代 DateTime 的庞大框架,而是对 Dart 原生时间类的一次“极致外科手术级”

By Ne0inhk
鸿蒙金融理财全栈项目——基础架构、数据安全、用户体验

鸿蒙金融理财全栈项目——基础架构、数据安全、用户体验

《鸿蒙APP开发从入门到精通》第17篇:鸿蒙金融理财全栈项目——基础架构、数据安全、用户体验 📊🔒🎨 内容承接与核心价值 这是《鸿蒙APP开发从入门到精通》的第17篇——基础架构、数据安全、用户体验篇,完全承接第16篇的鸿蒙电商购物车项目架构,并基于金融场景的高安全、高合规、高性能要求,设计并实现鸿蒙金融理财全栈项目的核心架构与用户体验基础。 学习目标: * 掌握鸿蒙金融理财项目的整体架构设计; * 实现高可用、高安全、高可扩展的金融级架构; * 理解数据安全在金融场景的核心设计与实现; * 实现数据加密、身份认证、安全审计; * 掌握用户体验在金融场景的设计与实现; * 实现无障碍设计、响应式布局、性能优化; * 优化金融理财项目的用户体验(安全性、响应速度、用户反馈)。 学习重点: * 鸿蒙金融理财项目的架构设计原则; * 数据安全在金融场景的应用; * 用户体验在金融场景的设计要点。 一、 金融理财项目架构基础 🎯 1.1 金融理财项目特点 金融理财项目具有以下特点: * 高安全:需要严格的数据加密和身份认证; * 高合规:

By Ne0inhk
Linux 进程间通信之命名管道(FIFO):跨进程通信的实用方案

Linux 进程间通信之命名管道(FIFO):跨进程通信的实用方案

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 命名管道核心概念:什么是 FIFO? * 1.1 命名管道的定义 * 1.2 命名管道的核心特性 * 1.3 命名管道和匿名管道的区别与联系 * 二. 命名管道的创建方式 * 2.1 命令行创建(mkfifo 命令) * 2.2 代码创建(mkfifo 函数) * 三. 命名管道的打开规则(关键!) * 四. 命名管道实战案例 * 4.1 案例 1:命名管道实现文件拷贝 * 4.1.

By Ne0inhk