Ubuntu 24.04安装ROS2 Humble完整指南与避坑技巧
1. 项目概述作为一名机器人开发工程师我经历过无数次ROS2环境搭建的痛苦过程。每次新版本发布或者更换开发机器时总会遇到各种意想不到的问题。这篇文章将分享我在Ubuntu系统上安装ROS2的完整流程和避坑经验特别针对2024年最新的Ubuntu 24.04和ROS2 Humble版本。ROS2Robot Operating System 2是当前机器人开发领域最流行的开源框架相比第一代ROS它在实时性、跨平台支持和分布式架构方面有了显著提升。但随之而来的是更复杂的依赖关系和安装要求这也是为什么很多新手会在环境搭建阶段就放弃学习。重要提示本文所有操作均在纯净的Ubuntu 24.04 LTS系统上验证通过同时适用于物理机和虚拟机环境。建议先完整阅读全文再开始操作特别是常见问题章节中的避坑指南。2. 系统准备与基础环境配置2.1 Ubuntu系统安装选择在开始ROS2安装前你需要一个合适的Ubuntu环境。目前ROS2 Humble官方支持Ubuntu 22.04和24.04两个LTS版本。我的建议是物理机安装直接使用Ubuntu 24.04 LTS获得最好的性能和兼容性虚拟机方案VMware Workstation Pro Ubuntu 24.04至少分配4GB内存WSL方案Windows用户可使用WSL2 Ubuntu 24.04但需要注意图形界面支持我个人的开发环境配置是主机Dell Precision 7760CPUIntel i9-11950H内存32GB存储1TB NVMe SSD系统Ubuntu 24.04 LTS最小化安装2.2 系统基础配置安装完Ubuntu后首先需要完成以下基础配置更新软件源sudo apt update sudo apt upgrade -y安装必要工具sudo apt install -y curl git vim build-essential python3-pip配置中文输入法可选sudo apt install -y fcitx fcitx-googlepinyin设置时区和语言环境sudo timedatectl set-timezone Asia/Shanghai sudo dpkg-reconfigure locales经验分享在虚拟机环境中建议先安装VMware Tools或VirtualBox Guest Additions以获得更好的显示效果和剪贴板共享功能。3. ROS2 Humble完整安装流程3.1 设置软件源首先需要将ROS2的软件源添加到系统中sudo apt install -y software-properties-common sudo add-apt-repository universe sudo apt update sudo apt install -y curl gnupg lsb-release sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release echo $UBUNTU_CODENAME) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null sudo apt update3.2 安装ROS2基础包ROS2提供了多种安装变体对于大多数开发者我推荐安装桌面完整版sudo apt install -y ros-humble-desktop这个版本包含了ROS2核心、GUI工具、常用库和演示程序。安装过程大约需要15-30分钟取决于你的网络速度。3.3 环境变量配置安装完成后需要设置环境变量才能使用ROS2命令。将以下内容添加到你的~/.bashrc文件末尾source /opt/ros/humble/setup.bash然后执行source ~/.bashrc3.4 安装依赖和工具ROS2开发还需要一些额外的工具sudo apt install -y python3-rosdep python3-colcon-common-extensions sudo rosdep init rosdep update4. 开发环境增强配置4.1 工作空间创建与管理ROS2使用工作空间workspace来组织代码。创建一个新的工作空间mkdir -p ~/ros2_ws/src cd ~/ros2_ws colcon build4.2 VS Code配置VS Code是ROS2开发的优秀IDE安装以下扩展能极大提升开发效率ROS (Microsoft)C/CPythonCMake ToolsXML Tools配置settings.json{ ros.distro: humble, cmake.configureArgs: [ -DCMAKE_BUILD_TYPERelWithDebInfo ] }4.3 网络配置优化ROS2默认使用DDS进行通信在多机开发时可能需要特殊配置export ROS_LOCALHOST_ONLY1 # 限制只在本地通信 # 或者 export ROS_DOMAIN_ID你的专属ID # 多机通信时使用5. 验证安装与基础测试5.1 基础功能测试运行以下命令验证ROS2核心功能ros2 run demo_nodes_cpp talker # 新终端 ros2 run demo_nodes_cpp listener你应该能看到talker发布消息listener接收消息的交互。5.2 图形界面测试启动RViz2可视化工具ros2 run rviz2 rviz25.3 创建自定义包测试创建一个简单的Python包进行测试cd ~/ros2_ws/src ros2 pkg create --build-type ament_python my_first_package --dependencies rclpy6. 常见问题与解决方案6.1 安装过程中的常见错误密钥错误The following signatures couldnt be verified because the public key is not available解决方案sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 报错中的密钥IDrosdep初始化失败ERROR: cannot download default sources list from...解决方案sudo mkdir -p /etc/ros/rosdep/sources.list.d/ sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list6.2 运行时问题RCL_RET_NOT_INIT错误 通常是因为没有正确source环境变量确保执行了source /opt/ros/humble/setup.bashDDS通信问题 如果节点间无法通信尝试export ROS_DOMAIN_ID42 # 选择一个0-232之间的数字6.3 性能优化技巧加速colcon编译colcon build --parallel-workers 8 # 根据CPU核心数调整减少内存占用 在虚拟机或资源有限的环境中可以使用Fast DDS的共享内存模式export RMW_IMPLEMENTATIONrmw_fastrtps_cpp export FASTRTPS_DEFAULT_PROFILES_FILEpath_to_shm_profile.xml7. 进阶配置与工具链7.1 与Docker集成对于需要隔离环境的开发可以使用官方ROS2 Docker镜像docker pull ros:humble docker run -it --rm ros:humble7.2 与硬件交互配置如果需要与STM32等嵌入式设备交互安装串口工具sudo apt install -y ros-humble-serial-driver sudo usermod -a -G dialout $USER7.3 性能监控工具安装ROS2性能分析工具sudo apt install -y ros-humble-ros2cli ros-humble-ros2bag ros-humble-rqt8. 环境维护与更新8.1 定期更新保持ROS2环境更新sudo apt update sudo apt upgrade rosdep update8.2 备份配置备份重要的环境配置dpkg --get-selections ~/ros2_packages.list pip freeze ~/ros2_pip_packages.list8.3 故障恢复如果环境损坏可以尝试sudo apt install --reinstall ros-humble-desktop经过以上步骤你应该已经拥有了一个稳定、高效的ROS2开发环境。在实际使用中我发现最常遇到的问题往往与网络配置和权限相关因此建议新手特别注意第6章中的避坑指南。

相关新闻

Kimi K3法律AI基准测试:法条引用与合同解析性能领先分析

Kimi K3法律AI基准测试:法条引用与合同解析性能领先分析

这次我们来看一个很有意思的基准测试结果:Kimi K3在法律领域的表现几乎比Claude Fable 5翻倍领先。对于需要处理法律文档、合同分析、法规查询的技术团队来说,这个差距意味着实际应用中的效率差异。 Kimi K3是月之暗面公司推出的最新大语言模型&#xf…

2026/9/29 14:54:08 阅读更多 →
基于HarmonyOS的AI文本字数统计分析——从对齐到评估的全流程技术实践

基于HarmonyOS的AI文本字数统计分析——从对齐到评估的全流程技术实践

基于HarmonyOS的AI文本字数统计分析——从对齐到评估的全流程技术实践 一、项目背景与需求分析(Align) 1.1 场景痛点分析 在现代数字生活中,用户对文本字数统计分析的需求日益增长。传统的文本字数统计分析方式存在效率低下、个性化不足等问题…

2026/10/4 7:49:39 阅读更多 →
Tiva™微控制器低功耗设计:DCGCx与PCx寄存器实战配置指南

Tiva™微控制器低功耗设计:DCGCx与PCx寄存器实战配置指南

1. 项目概述与低功耗设计核心思路 在嵌入式系统,尤其是那些依赖电池供电的物联网节点、便携式医疗设备或远程传感器中,功耗管理从来都不是一个“锦上添花”的选项,而是决定产品成败的关键。我经历过不止一个项目,前期功能开发一切…

2026/10/2 7:49:22 阅读更多 →

最新新闻

Flutter跑马灯无极滚动算法实践与鸿蒙适配要点

Flutter跑马灯无极滚动算法实践与鸿蒙适配要点

前阵子给一个银行客户做App首页改版,需求清单里有一项写着“公告轮播,无限循环,不能看到回弹”。我心想这不就是个跑马灯嘛,一行Text加个AnimationController,十分钟搞定。结果真写起来才发现,跑马灯这三个…

2026/10/4 7:49:11 阅读更多 →
从招聘信息拆解 Flutter 开发岗位真实技能清单

从招聘信息拆解 Flutter 开发岗位真实技能清单

朋友发来一份招聘信息,岗位写着"Flutter 开发工程师",职责描述和任职要求加起来不到两百字。我扫了一眼,发现信息密度远比字面看起来高得多。这不是一份普通的岗位说明,而是一张隐形的技能清单。顺手搜了搜相关的热搜词…

2026/10/4 7:49:11 阅读更多 →
CSS选择器实战:从基础选择器到伪元素、权重与性能优化

CSS选择器实战:从基础选择器到伪元素、权重与性能优化

写过CSS超过一年的前端,估计都经历过这个场景:明明在某处加了样式,页面纹丝不动。F12打开调试面板,Styles窗口里另一个来源的样式正在和你写的规则打架;你干脆写了一个更长更细的后代选择器,勉强赢了&#…

2026/10/4 7:49:11 阅读更多 →
JWT 双 Token 机制实战:2 小时 + 7 天,让登录状态既安全又无感

JWT 双 Token 机制实战:2 小时 + 7 天,让登录状态既安全又无感

JWT 双 Token 机制实战:2 小时 7 天,让登录状态既安全又无感 📌 本文是我在视频推流项目中设计登录认证体系的完整复盘,包含 JWT Redis 白名单/黑名单 双 Token 续期 Token Rotation 全套实现。 配套源码仓库:gith…

2026/10/4 7:49:11 阅读更多 →
Coursebook exec详解:进程映像替换完全指南

Coursebook exec详解:进程映像替换完全指南

Coursebook exec详解:进程映像替换完全指南 【免费下载链接】coursebook Open Source Introductory Systems Programming Textbook for the University of Illinois 项目地址: https://gitcode.com/GitHub_Trending/co/coursebook 本文基于伊利诺伊大学开源系…

2026/10/4 7:49:10 阅读更多 →
GLiNER2.5-Decide进阶技巧:带描述的标签与0-10序数评分,精确驾驭私有分类体系

GLiNER2.5-Decide进阶技巧:带描述的标签与0-10序数评分,精确驾驭私有分类体系

GLiNER2.5-Decide进阶技巧:带描述的标签与0-10序数评分,精确驾驭私有分类体系 【免费下载链接】GLiNER2.5-Decide 项目地址: https://ai.gitcode.com/hf_mirrors/fastino/GLiNER2.5-Decide GLiNER2.5-Decide 是 GLiNER2.5 家族中的 340M 参数英文…

2026/10/4 7:48:10 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →