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

【OpenClaw从入门到精通】第10篇:OpenClaw生产环境部署全攻略:性能优化+安全加固+监控运维(2026实测版)

【OpenClaw从入门到精通】第10篇:OpenClaw生产环境部署全攻略:性能优化+安全加固+监控运维(2026实测版)

摘要:本文聚焦OpenClaw从测试环境走向生产环境的核心痛点,围绕“性能优化、安全加固、监控运维”三大维度展开实操讲解。先明确生产环境硬件/系统选型标准,再通过硬件层资源管控、模型调度策略、缓存优化等手段提升响应速度(实测响应效率提升50%+);接着从网络、权限、数据三层构建安全防护体系,集成火山引擎安全方案拦截高危操作;最后落地TenacitOS可视化监控与Prometheus告警体系,配套完整故障排查清单和虚拟实战案例。全文所有配置、代码均经实测验证,兼顾新手入门实操性和进阶读者的生产级部署需求,帮助开发者真正实现OpenClaw从“能用”到“放心用”的跨越。 优质专栏欢迎订阅! 【DeepSeek深度应用】【Python高阶开发:AI自动化与数据工程实战】【YOLOv11工业级实战】 【机器视觉:C# + HALCON】【大模型微调实战:平民级微调技术全解】 【人工智能之深度学习】【AI 赋能:Python 人工智能应用实战】【数字孪生与仿真技术实战指南】 【AI工程化落地与YOLOv8/v9实战】【C#工业上位机高级应用:高并发通信+性能优化】 【Java生产级避坑指南:

By Ne0inhk
ARM Linux 驱动开发篇--- Linux 并发与竞争实验(互斥体实现 LED 设备互斥访问)--- Ubuntu20.04互斥体实验

ARM Linux 驱动开发篇--- Linux 并发与竞争实验(互斥体实现 LED 设备互斥访问)--- Ubuntu20.04互斥体实验

🎬 渡水无言:个人主页渡水无言 ❄专栏传送门: 《linux专栏》《嵌入式linux驱动开发》《linux系统移植专栏》 ❄专栏传送门: 《freertos专栏》《STM32 HAL库专栏》 ⭐️流水不争先,争的是滔滔不绝  📚博主简介:第二十届中国研究生电子设计竞赛全国二等奖 |国家奖学金 | 省级三好学生 | 省级优秀毕业生获得者 | ZEEKLOG新星杯TOP18 | 半导纵横专栏博主 | 211在读研究生 在这里主要分享自己学习的linux嵌入式领域知识;有分享错误或者不足的地方欢迎大佬指导,也欢迎各位大佬互相三连 目录 前言  一、实验基础说明 1.1、互斥体简介 1.2 本次实验设计思路 二、硬件原理分析(看过之前博客的可以忽略) 三、实验程序编写 3.1 互斥体 LED 驱动代码(mutex.c) 3.2.1、设备结构体定义(28-39

By Ne0inhk
Flutter for OpenHarmony:swagger_dart_code_generator 接口代码自动化生成的救星(OpenAPI/Swagger) 深度解析与鸿蒙适配指南

Flutter for OpenHarmony:swagger_dart_code_generator 接口代码自动化生成的救星(OpenAPI/Swagger) 深度解析与鸿蒙适配指南

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 后端工程师扔给你一个 Swagger (OpenAPI) 文档地址,你会怎么做? 1. 对着文档,手写 Dart Model 类(容易写错字段类型)。 2. 手写 Retrofit/Dio 的 API 接口定义(容易拼错 URL)。 3. 当后端修改了字段名,你对着报错修半天。 这是重复劳动的地狱。 swagger_dart_code_generator 可以将 Swagger (JSON/YAML) 文件直接转换为高质量的 Dart 代码,包括: * Model 类:支持 json_serializable,带 fromJson/

By Ne0inhk
Linux 开发别再卡壳!makefile/git/gdb 全流程实操 + 作业解析,新手看完直接用----《Hello Linux!》(5)

Linux 开发别再卡壳!makefile/git/gdb 全流程实操 + 作业解析,新手看完直接用----《Hello Linux!》(5)

文章目录 * 前言 * make/makefile * 文件的三个时间 * Linux第一个小程序-进度条 * 回车和换行 * 缓冲区 * 程序的代码展示 * git指令 * 关于gitee * Linux调试器-gdb使用 * 作业部分 前言 做 Linux 开发时,你是不是也遇到过这些 “卡脖子” 时刻?写 makefile 时,明明语法没错却报错,最后发现是依赖方法行没加 Tab;想提交代码到 gitee,记不清 git add/commit/push 的 “三板斧”,还得反复搜教程;用 gdb 调试程序,输了命令没反应,才想起编译时没加-g生成 debug 版本;甚至连写个进度条,都搞不懂\r和\n的区别,导致进度条乱跳…… 其实这些问题,

By Ne0inhk