ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

ROS机器人开发必备:Ubuntu系统安装与版本匹配避坑指南

ROS机器人开发必备:Ubuntu系统安装与版本匹配避坑指南 简介面向机器人开发与ROS学习者的Ubuntu系统安装图文教程以PDF格式提供共1个文件压缩包约13.36MB。内容基于ROS机器人学习课程第2章整理聚焦2.3.2 Ubuntu安装环节从下载Ubuntu官方镜像开始完整演示VMware虚拟机中安装Ubuntu 64位系统的全过程。教程不仅按步骤讲解还专门强调了多个初学者易错点新建虚拟机时必须选择Ubuntu 64位版本否则后续UEFI和分区设置将无法正常进行虚拟机名称避免使用中文字符防止兼容性问题建议将虚拟机文件存放在专用文件夹而非系统盘根目录或桌面硬盘容量至少分配25GB并尽量预留更大空间固件类型选择UEFI以配合后期分区。每一步都配有清晰截图和标注便于读者对照操作。这些内容能显著降低环境搭建中的报错概率为后续ROS安装与机器人开发打好基础。已有274人学习适合零基础学习者循序渐进完成Ubuntu环境配置顺利进入ROS机器人开发实践。1. 为什么ROS机器人的第一道坎是Ubuntu系统安装版本选错后面全是返工做ROS机器人开发第一道坎往往不是写代码而是把Ubuntu系统装对。我见过不少初学者在Windows上装了虚拟机、配好了环境结果一跑激光雷达和深度相机就露馅不是USB识别不到就是图形界面卡成幻灯片。更常见的情况是随便装了一个最新版Ubuntu兴致勃勃去装ROS发现版本根本不匹配整个开发环境推倒重来。这篇教程就把ROS机器人开发之前最关键的Ubuntu系统安装讲透从版本怎么选、分区怎么分到U盘启动、装后必做的三件事以及我踩过的几个大坑。跟着走一遍能少走很多弯路。2. 安装前把版本和分区定死ROS版本配对、镜像写入与磁盘规划2.1 Ubuntu与ROS版本配对关系为什么建议盯准LTS版本ROS机器人开发选的Ubuntu版本不是越新越好而是要看ROS官方对哪个版本提供了长期支持。ROS 1最后的一个长期支持版本是Noetic它对应的系统是Ubuntu 20.04ROS 2长期支持的版本是Humble对应的系统是Ubuntu 22.04。这两个组合是目前最常用、社区资料最多的搭配前人的坑基本都填平了。Ubuntu版本配套ROS版本适用场景Ubuntu 20.04 LTSROS 1 Noetic / ROS 2 Foxy学习ROS 1、维护老项目、跑经典算法Ubuntu 22.04 LTSROS 2 Humble新项目、工业级应用、长期维护Ubuntu 24.04 LTSROS 2 Jazzy尝鲜可用资料相对少不推荐入门不建议用非LTS版比如Ubuntu 21.10、23.04这类。它们生命周期只有九个月装完ROS刚上手系统停止维护了apt源也会被官方迁移到旧版本归档装新包经常报404。对ROS机器人这种需要长期调试环境的方向LTS是最省心的选择系统支持周期长ROS版本对应关系也清楚。另一个实际考虑是电脑硬件。如果机器比较老比如只有8GB内存加机械硬盘跑Ubuntu 22.04桌面版会明显吃力建议选Ubuntu 20.04桌面负载更轻。如果是近几年的电脑16GB内存起步那就直接上22.04搭配ROS 2 Humble后续不用再折腾一次系统迁移。2.2 制作启动U盘镜像下载、校验与写入工具选择确定Ubuntu版本后去Ubuntu官网下载对应版本的ISO镜像。下载的时候注意区分桌面版和服务器版ROS开发要用桌面版。ISO文件一般有4到5GB下载完成后别急着写盘先做一步校验用SHA256校验和确认下载的文件完完整整没有在传输中途损坏。校验方法在Windows下用PowerShell在Linux下用sha256sum命令。# Linux或macOS下校验ISO镜像ubuntu-22.04.x-desktop-amd64.iso换成实际文件名 sha256sum ubuntu-22.04.x-desktop-amd64.iso # 把输出的哈希值和官网给出的SHA256校验和逐字符对比 # 一致说明镜像完整可以写盘不一致说明下载损坏需要重新下载Windows用户可以在PowerShell里执行Get-FileHash 镜像文件名来计算哈希值。这一步很多人嫌麻烦直接跳过结果装到一半报错其实是镜像损坏导致的。校验没毛病再进入写盘环节。写盘工具我用过很多初学者推荐用Rufus图形界面三步搞定在Linux或者macOS下Etcher也是个跨平台的稳妥选项。写入模式要选对在Rufus里分区方案选GPT目标系统选UEFI非CSM文件系统保持FAT32默认。如果选错成MBR和Legacy BIOS模式在老主板上有概率能启动在新电脑上经常直接卡在引导阶段。写入过程会把U盘完全格式化U盘里有资料务必先备份这一步没有后悔药。2.3 硬盘分区单系统与双系统的分区方案哪个省心装Ubuntu的时候分区逻辑要先想清楚。ROS机器人开发两种常见场景一是在自己的电脑上装双系统Windows保留偶尔用二是一台机器完全交给Ubuntu。无论是哪种分区方案都要遵循一个原则系统、数据、交换分区尽量分开方便以后重装系统不丢工作区。挂载点分区类型大小建议是否必要/boot/efiEFI系统分区至少512MB必要UEFI引导要用/主分区40-60GB必要装系统和ROS包/home主分区剩余空间全部强烈建议代码和数据集都在这swap交换分区电脑内存小于16GB时给8GB可选内存大可以不要对于双系统先给Ubuntu预留出空闲分区注意不要在Windows的磁盘管理里删分区而是用Ubuntu安装器里的“手动分区”处理。我习惯把根分区给50GB/home给剩余所有空间这样以后哪怕系统崩溃要重装只要挂载点选对/home里的ROS工作空间、数据集、下载的源码全部还在。还需要确认电脑是UEFI引导还是传统BIOS引导。2015年以后出厂的电脑基本都是UEFI安装Ubuntu时引导方式要和Windows保持一致。如果Windows是UEFI模式装的Ubuntu也必须在UEFI模式下安装共享同一个EFI分区。两种模式混着来会出现装完Ubuntu开机直接进Windows、完全没有引导菜单的情况。3. 从U盘启动到进入桌面Ubuntu安装完整流程与关键选项3.1 用U盘启动BIOS设置和UEFI模式这关怎么过镜像写入U盘后把U盘插到电脑上重启之前先确认启动顺序。开机时按F2或F12进入BIOS设置不同品牌主板按键不同通常是F2、F12、Del三选一。进入BIOS后找到Boot选项把U盘调到第一启动项。两个容易卡住的细节一个是Secure Boot建议先关掉它会拦截未经签名的Ubuntu引导程序导致U盘启动失败另一个是如果BIOS里有UEFI和Legacy两种模式选项优先选UEFI除非你的电脑确实很老。实际操作中很多人卡在“明明U盘插上了启动项里找不到U盘”。这种情况先检查U盘是USB 2.0还是3.0口个别主板对USB 3.0口的U盘启动支持不完善换个USB 2.0口试试。另外之前用软碟通之类工具制作的U盘可能会被主板识别成两个分区启动项里出现两个U盘的选项选带UEFI前缀的那个不带前缀的是Legacy模式入口。3.2 安装器里的关键选项联网更新、第三方驱动与擦除磁盘的选择U盘引导成功后会进入GRUB菜单选择第一项“Try or Install Ubuntu”。进入安装界面后语言选中文简体键盘布局默认English或Chinese都行这不会影响系统编码。接下来有几个选项是ROS开发者必须注意的第一个是“正常安装”和“最小安装”的选择。磁盘空间不紧张就直接选正常安装自带的LibreOffice、媒体播放器都装上省得后面用的时候再补。第二个是“安装Ubuntu时下载更新”和“为图形或无线硬件安装第三方软件”。联网良好的情况下两个都勾上第三方软件选项特别重要它默认会包含显卡驱动能避免装完系统后开机黑屏或分辨率低的问题。第三个也是最关键的分区确认步骤。选“清除整个磁盘并安装Ubuntu”只适合单系统用户。双系统用户必须选“其他选项”在手动分区界面里找到刚才预留的空闲分区新建分区。挂载点设置按照上一章的分区方案来注意/boot/efi不能漏没有它系统装完无法引导。这步操作完会提示将要在分区上写入改动确认之前仔细看一眼分区表确认无误再点继续。3.3 首次登录后的环境确认网卡、显卡、系统版本三件事先查安装完成重启后拔掉U盘进入Ubuntu桌面。但先别急着装ROS先用几条命令确认硬件环境有没有正常工作。很多ROS机器人的坑根源都在系统层面没准备好比如网卡驱动没加载导致无法联网或者显卡驱动没生效导致Gazebo仿真卡死。# 查看有线/无线网卡识别情况确认网络接口已加载 ip addr # 查看显卡型号和当前使用的驱动 lspci -k | grep -A 2 -i vga # 查看系统版本确认Ubuntu版本号符合预期 lsb_release -aip addr输出里能看到网络接口正常是类似enp开头的有线网卡和wl开头的无线网卡。如果只有一个lo回环接口多半是网卡驱动没装上这种情况在部分小众无线网卡上比较常见解决思路是先连有线网再更新系统内核或单独安装网卡驱动。lspci查显卡能确认系统用的是核显还是独显以及内核有没有加载对应的驱动模块。lsb_release -a核对版本号是不是你想要的LTS版本之前有人下载镜像时点错了版本装完才发现是Ubuntu 22.10这种旧版本白忙一场。4. 安装后的必踩坑与排查换源、显卡驱动和双系统引导恢复4.1 apt更新慢到怀疑人生换国内镜像源装完Ubuntu后第一件事就是更新系统但默认的apt源是Ubuntu官方服务器在国内访问速度慢得离谱。现象就是你执行sudo apt update卡在读取软件包列表界面等了十几分钟还没动静有些包下载速度只有几十KB每秒。这是所有国内ROS开发者都绕不开的一道坎解决办法是把手动配的镜像源替换成国内源。# 备份原始源文件出问题可以随时还原 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 用sed把官方域名替换为国内镜像站域名按你的网络实际访问速度选 sudo sed -i s/archive.ubuntu.com/mirrors.ustc.edu.cn/g; s/security.ubuntu.com/mirrors.ustc.edu.cn/g /etc/apt/sources.list # 更新索引并验证换源是否生效 sudo apt update这套操作的核心就是用sed做文本替换把Ubuntu官方源地址指到国内镜像站。代码里我写的是某高校镜像站域名如果你的网络到某个云厂商的镜像站更快把域名换成那个站点的就行。注意Ubuntu 20.04用的还是/etc/apt/sources.list这个文件到了Ubuntu 22.04源配置换成了/etc/apt/sources.list.d/ubuntu.sources这个新格式文件内容结构不同直接用sed替换会不生效。处理22.04的源有两种方式一种是直接编辑ubuntu.sources文件把里面的http://archive.ubuntu.com/ubuntu替换成镜像站地址另一种是把下载好的源配置模板放到/etc/apt/sources.list.d/目录下。换完源后执行sudo apt update如果输出显示“Hit”而不是“Ign”或“404”说明连接正常更新速度应该几秒钟就能完成。更新系统后再装ROS包下载速度就很舒服了。4.2 开机黑屏或分辨率只有800x600显卡驱动默认没起作用Ubuntu装完第一次重启如果没有在安装时勾选“为图形或无线硬件安装第三方软件”可能出现两种情况一种是开机停留在黑屏界面进不了桌面另一种是能进桌面但分辨率只有可怜的800x600鼠标卡顿。这是独立显卡的核显驱动和系统自带的默认驱动不匹配导致的。先说黑屏的临时解法。开机进GRUB菜单后按e进入编辑模式找到quiet splash这一行在末尾加上nomodeset参数然后按CtrlX启动。这个参数让内核跳过显卡模式设置用基本显示模式引导能让你先进系统。但这不是长久之计每次启动都要手动改太麻烦。进桌面后的正解是去“软件和更新”工具里切换到“附加驱动”选项卡系统会自动检测显卡可用的专有驱动。选择一个经过验证的版本点应用更改等待安装完成后重启。注意不要自己跑到显卡厂商官网下载最新版闭源驱动手动安装那个跟系统内核模块冲突的概率很大装完轻则开不了图形界面重则连系统都进不去。还要记住装显卡驱动之前先确认内核版本Ubuntu自动更新内核后手动安装的驱动模块需要重新编译这也是很多人为什么过一阵子突然开不了机的隐藏原因。4.3 重启直接进WindowsGRUB菜单消失了怎么办双系统最常见的翻车现场Ubuntu装完重启后直接进入了Windows连GRUB选择菜单都没看到。现象就是仿佛Ubuntu从来没装过一样开机流程和装系统前一模一样。原因是Windows的引导程序抢占了EFI启动项或者安装Ubuntu时引导安装到了错误的EFI分区。排查思路先确认Ubuntu到底装进了哪个分区。进Windows后用磁盘管理查看能识别出Linux分区就说明系统在。接下来在启动设置里查看引导顺序Windows Boot Manager排在了Ubuntu引导项前面把它挪到后面重启后GRUB菜单就会回来。如果EFI分区里根本找不到Ubuntu的引导文件直接用安装U盘里的启动修复工具修复引导。# 用Ubuntu安装U盘启动选择“试用Ubuntu”进入临时系统 # 挂载根分区和EFI分区 sudo mount /dev/sda2 /mnt sudo mount /dev/sda1 /mnt/boot/efi # 用grub-install重新安装GRUB到EFI分区 sudo grub-install --root-directory/mnt /dev/sda # 重新生成GRUB菜单配置让Windows和Ubuntu都在菜单里 sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt update-grub这套修复操作的核心逻辑是先把Ubuntu根分区挂载到一个临时目录用grub-install把GRUB引导程序重新写入EFI分区再在chroot环境里执行update-grub让系统重新扫描磁盘上的所有操作系统。命令中的/dev/sda1和/dev/sda2要按你的实际分区替换不确定的话用lsblk查看。修复完成后重启GRUB菜单里会出现Ubuntu和Windows两个选项这个坑基本就填平了。5. 装完别急着装ROS先做环境验证和系统快照后悔药留好跳过环境验证直接开装ROS是不少人的习惯但等装到一半报错再回头查系统问题就晚了。我建议花十分钟把系统状态摸一遍顺便做一份系统快照后面就算把ROS折腾坏了也能一键还原。先用系统监视器或者命令行确认内存和磁盘空间ROS本体加上依赖包大约需要15GB空间/home如果小于30GB装完会非常局促。# 查看内存和交换分区使用情况 free -h # 查看根分区和home分区的剩余空间 df -h / # 用timeshift创建第一份系统快照保存在外接硬盘或另一分区 sudo timeshift --create --comments ubuntu-installed-clean --tags Dfree -h显示内存总量和可用量低于4GB跑ROS 2会很吃力建议加内存或装轻量桌面。df -h确认挂载点空间足够根分区建议剩余不少于20GB。最后一条timeshift命令会在系统当前状态创建一份快照--comments参数给快照起个名字方便识别--tags D表示归类为系统初始状态。这份快照就是你的后悔药后面装ROS装崩了或是不小心把系统搞挂了在GRUB菜单里选择timeshift恢复就能回到这个干净的初始状态。我自己的教训是第一次装完Ubuntu后嫌弃系统发烫去折腾了一个非官方电源管理工具结果把显卡驱动搞坏了开机直接卡死在登录界面。当时没做快照只能重装系统重新配置环境和下载依赖又花了一整天。后来每次系统只要处于“刚装好、能正常用”的状态我必定先做一个快照再做别的改动。这个习惯让我后期省了无数时间也推荐你保留。验证做完、快照做好系统的底子就算真正打牢了。这时候再去装ROS无论是选Noetic还是Humble也不管用apt还是源码编译出了问题都知道不会是系统层面的锅排查起来心里有底。希望这份教程能帮你把Ubuntu环境一次装对把精力留给后面的ROS学习本身。本文还有配套的精品资源点击获取
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进