当前位置: 首页 > news >正文

保姆级教程:在Ubuntu 22.04上从零安装ROS Humble(含虚拟机配置与常见报错解决)

零基础实战:Ubuntu 22.04虚拟机环境下的ROS Humble完整安装指南

当机器人操作系统(ROS)遇上Ubuntu长期支持版,会碰撞出怎样的开发火花?本指南专为从未接触过Linux环境的开发者设计,从虚拟机配置到ROS Humble环境调试,手把手带你避开90%新手会踩的坑。不同于常规教程,我们将重点解决代理环境配置、依赖项冲突、网络连接异常等实际安装过程中必然遇到的"魔鬼细节"。

1. 虚拟化环境搭建:从镜像选择到系统优化

1.1 虚拟机软件选型与性能调优

主流虚拟化平台对比:

特性VMware WorkstationVirtualBoxHyper-V
3D加速支持完整基础支持需手动配置
磁盘性能NVMe仿真仅SATA原生NVMe
网络模式NAT/桥接/主机仅NAT虚拟交换机
快照管理树状快照线性快照单点快照

推荐使用VMware Workstation 17+版本,安装时注意:

# 检查CPU虚拟化支持(Windows主机) systeminfo | find "Hyper-V Requirements"

若显示"已禁用",需进入BIOS开启Intel VT-x/AMD-V功能

1.2 Ubuntu 22.04安装的七个关键步骤

  1. 镜像下载:建议选择ubuntu-22.04.3-desktop-amd64.iso官方镜像
  2. 虚拟机创建时:
    • 磁盘空间≥40GB(实际占用约25GB)
    • 内存分配≥4GB(ROS编译需要)
    • 必须勾选"虚拟化Intel VT-x"选项
  3. 安装过程卡在"Detecting file systems"时:
# 在虚拟机启动时按ESC,在grub菜单追加参数 nomodeset quiet splash
  1. 地区选择建议保持默认"Shanghai"(时区配置更简单)
  2. 用户名避免使用中文(可能导致ROS包路径问题)
  3. 安装完成后立即执行:
sudo apt update && sudo apt upgrade -y sudo apt install open-vm-tools-desktop -y
  1. 共享文件夹配置(Windows与Ubuntu文件交换):
# 在.vmx配置文件中添加: sharedFolder.maxNum = 1 sharedFolder0.present = "TRUE" sharedFolder0.readAccess = "TRUE"

实测数据:在i5-1135G7/16GB主机上,分配4核CPU/8GB内存时,Ubuntu 22.04启动时间从默认35秒优化至12秒

2. ROS Humble安装前的系统级准备

2.1 编码与区域设置深度解析

ROS 2对UTF-8编码有强制要求,但多数教程未解释原理。执行以下命令:

# 查看当前locale配置 locale # 永久修改系统级设置(需重启生效) sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 # 临时生效方案(仅当前会话) export LANG=en_US.UTF-8

常见问题:若出现"locale: Cannot set LC_ALL to default locale"错误,需先生成缺失的locale:

sudo locale-gen en_US.UTF-8

2.2 网络环境配置的三种方案

由于ROS官方源位于海外,国内访问可能出现不稳定情况:

方案A:使用国内镜像源(推荐)

# 替换Ubuntu官方源 sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list # 测试网络连通性 ping -c 4 mirrors.aliyun.com

方案B:IPv4优先策略

# 修改gai.conf配置文件 sudo nano /etc/gai.conf # 取消注释以下行: precedence ::ffff:0:0/96 100

方案C:DNS优化

# 使用Cloudflare DNS sudo rm /etc/resolv.conf sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

3. ROS Humble核心安装流程

3.1 密钥添加的底层原理

常规教程直接给出curl命令,但未说明密钥作用。实际上这是GPG密钥验证机制:

# 分步解析密钥添加过程 curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \ | gpg --dearmor \ | sudo tee /usr/share/keyrings/ros-archive-keyring.gpg > /dev/null # 验证密钥指纹(应显示:117E AC06 5DE5 A8B5 7A1F 8D6D 3C8E 5F60 317D 6FC3) gpg --show-keys /usr/share/keyrings/ros-archive-keyring.gpg

3.2 软件源配置的架构解析

/etc/apt/sources.list.d/ros2.list文件内容详解:

deb [arch=amd64 signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] \ http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy main
  • arch=amd64:指定CPU架构
  • signed-by:GPG密钥路径
  • jammy:Ubuntu 22.04代号

3.3 桌面版与基础版安装对比

组件ros-humble-desktopros-humble-ros-base
GUI工具包含不包含
RViz
Gazebo支持部分需手动安装
磁盘占用2.8GB800MB
推荐用户初学者嵌入式开发者

完整安装命令:

sudo apt install ros-humble-desktop python3-colcon-common-extensions -y

4. 环境验证与故障排除实战

4.1 turtlesim测试的底层原理

运行乌龟仿真时:

ros2 run turtlesim turtlesim_node

实际触发的进程链:

  1. 加载/opt/ros/humble/lib/turtlesim/turtlesim_node
  2. 初始化rclcpp节点
  3. 启动QT5渲染窗口

常见异常处理:

  • 黑屏无显示:安装OpenGL驱动
    sudo apt install mesa-utils libgl1-mesa-glx glxinfo | grep "OpenGL version"
  • 键盘控制无响应:检查~/.bashrc是否漏掉source命令

4.2 深度诊断工具套件

# 检查ROS环境变量 printenv | grep ROS # 验证消息通信 ros2 topic list ros2 topic echo /turtle1/cmd_vel # 包路径检查 ros2 pkg prefix turtlesim

4.3 典型报错解决方案库

错误1: "Failed to fetch... 404 Not Found"

# 更新软件索引 sudo apt update --fix-missing # 清理无效包 sudo apt autoclean

错误2: "ImportError: cannot import name 'TypeGuard' from 'typing_extensions'"

# 解决方案(Python3.8+特有问题) pip install typing-extensions --upgrade

错误3: "Could not resolve host: raw.githubusercontent.com"

# 临时解决方案 sudo sh -c 'echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts'

在虚拟机环境中,ROS Humble的编译效率比物理机低约40%,建议在/etc/ros/rosdep/sources.list.d中添加国内镜像源。完成所有配置后,不妨尝试创建虚拟机快照——这是回滚到稳定状态的最快捷方式。

http://www.jsqmd.com/news/709350/

相关文章:

  • 告别Win下闪退!在Ubuntu 20.04子系统或虚拟机里,用Anaconda搞定moltemplate安装(附环境变量配置详解)
  • 3分钟搭建i茅台自动化预约系统:告别手动抢购的Java解决方案
  • Gitee CodePecker SCA:企业数字化转型中的安全基石
  • Gitee CodePecker SCA:开启企业软件供应链安全的新纪元
  • 江西高职单招机构推荐:大圣学成教育品牌实力解析 - 新闻快传
  • serversideup/php健康检查深度解析:确保应用100%可用性
  • Yuedu项目书源配置:构建个性化阅读生态的智能解决方案
  • wxappUnpacker深度解析:从编译包到源码的逆向工程实践
  • 2026年宁波短视频代运营与GEO搜索优化全链路数字化营销深度选购指南 - 企业名录优选推荐
  • 科技向善 智护万家——镭达晶元以无线感知技术赋能智慧人居新未来 - 热敏感科技蜂
  • brand-guidelines技能:应用OpenAI品牌风格的设计指南
  • 2026年宁波GEO搜索优化与短视频代运营:中小企业低成本精准获客完全指南 - 企业名录优选推荐
  • 从Flask路由到日志记录:手把手教你用@wraps写出更‘专业’的Python装饰器
  • AUTOSAR Classic Platform 终极指南:从入门到精通
  • 重要!2027年江西高职单招最后一年!2028年江西职教高考元年正式开启 - 新闻快传
  • 目前专业的医用门品牌 - 小张小张111
  • 【观察】月薪不是最高,但为何仍被选择?一份关于校招 Offer 的冷静观察 - 新闻快传
  • 终极指南:AWS机器学习模型解释与SHAP值分析
  • 2026年柔性抓取技术应用:食品生鲜场景品牌推荐 - 品牌2026
  • 魔兽世界宏编辑器GSE:如何用智能技能编排提升你的战斗效率
  • dns-over-https故障排除手册:常见问题与解决方案大全
  • mysql操作错误
  • 2026年防静电地板十大品牌榜单揭晓:技术驱动行业新格局 - 江苏中天庄美荃
  • 别再手动装Oracle了!用Docker官方仓库5分钟搞定19c测试环境(附持久化配置)
  • 暗黑破坏神2存档编辑器:释放角色定制的无限可能
  • 别再为字段名发愁了!Spring Boot 2.7.x 中 Jackson 三种命名规则配置(全局/类/字段级)保姆级教程
  • 2026年Q2中国氟塑料泵优质厂家首选推荐:安徽通宇泵阀制造有限公司 - 安互工业信息
  • 如何构建智能AI记忆层:Embedchain打造持久化Agent实战指南
  • #2026最新美发培训公司推荐!广东优质权威榜单发布,实力靠谱广州等地美发培训公司推荐 - 十大品牌榜
  • 2026年宁波短视频代运营与GEO搜索优化:中小企业精准获客完全指南 - 企业名录优选推荐