☰
VMware虚拟机安装Ubuntu与ROS:机器人开发环境搭建入门指南
2026/10/15 6:32:27 网站建设 项目流程

简介:这份PDF资料面向ROS机器人操作系统的零基础新手,解决在Windows环境下搭建Linux学习环境的入门难题。内容围绕在VMware虚拟机中安装Ubuntu并部署ROS展开,涵盖虚拟机创建、系统安装、ROS仓库配置、基础包安装与环境变量设置等关键环节,适合刚接触机器人开发、希望低成本安全试错的学习者。资源包共1个PDF文件,约25.9MB,图文并茂地记录了安装过程中的界面操作与命令细节,便于对照执行。目前已有744人学习下载,说明该入门路径受到一定关注。读者可借此掌握虚拟机与Ubuntu的配合使用方式,理解ROS安装的完整流程与常见配置要点,为后续学习话题通信、节点运行等ROS核心功能打下环境基础,是一份适合边看边练的实操型入门材料。

1. 虚拟机里装 Ubuntu 再上 ROS:一条被低估的机器人开发入门路径

很多人第一次接触机器人操作系统,卡住的地方不是写节点,而是环境。手头只有一台 Windows 笔记本,又不想分区、不想折腾双系统,于是「在 VMware 里装 Ubuntu 再装 ROS」成了最省心的起步方式。它解决的核心问题是:用一台机器、一个窗口,隔离出一个可随时回滚、可快照、可复制的 Linux 开发环境,专门跑 ROS 的编译、仿真和调试。适合谁?适合刚入门 ROS、需要跟着教程敲命令的新手,也适合需要同时维护多个 ROS 版本、不想污染主系统的老手。这条路不玄学,但细节没做对,后面会一路翻车。

2. 装之前先把账算清:版本、资源与网络三件事

2.1 Ubuntu 版本和 ROS 版本的对应关系

ROS 的版本和 Ubuntu 是强绑定的,选错组合,后面apt装不上,或者编译到一半报依赖缺失。常见对应关系如下:

ROS 版本推荐 Ubuntu说明
ROS 1 NoeticUbuntu 20.04ROS 1 最后一个长期支持版本,教程最多
ROS 2 FoxyUbuntu 20.04早期 ROS 2 版本,生态逐步完善
ROS 2 HumbleUbuntu 22.04目前 ROS 2 主流长期支持版本
ROS 2 JazzyUbuntu 24.04较新版本,部分第三方包尚未跟进

我一般建议新手直接选 Ubuntu 20.04 + ROS 1 Noetic,原因是网上能搜到的中文教程、示例代码、仿真包绝大多数基于这个组合,遇到问题更容易找到答案。如果你明确要做 ROS 2,那就 Ubuntu 22.04 + Humble,别用太新的版本去踩生态的坑。

2.2 VMware 里给多少资源才够

虚拟机资源给少了,编译 ROS 包会卡到怀疑人生;给多了,宿主机又吃不消。下面是我常用的分配方案,按宿主机 16GB 内存估算:

资源项最低推荐说明
CPU 核心24编译时多核提速明显
内存4GB8GB低于 4GB 编译大包容易 OOM
磁盘40GB80GBROS 加仿真包很占空间
显存256MB1GB 以上跑 Gazebo 需要

磁盘类型选「单个文件」还是「拆分成多个文件」,对性能影响不大,但单个文件在拷贝迁移时更方便。网络适配器选 NAT,这样虚拟机通过宿主机上网,不用额外配置。

2.3 镜像从哪来、校验怎么做

Ubuntu 官方镜像站提供桌面版 ISO,下载后务必做一次校验,避免镜像损坏导致安装中途失败。在 Windows 上可以用 PowerShell 算哈希:

# 计算 ISO 文件的 SHA256,和官网公布的值对比 Get-FileHash -Algorithm SHA256 .\ubuntu-20.04.6-desktop-amd64.iso

逻辑说明:Get-FileHash输出文件的 SHA256 摘要,和官方页面上的值逐位比对,一致才说明下载完整。参数-Algorithm可以换成 MD5 或 SHA1,但优先用 SHA256。这一步很多人跳过,结果安装到一半报「无法读取介质」,回头重下,时间全浪费了。

3. 在 VMware 里把 Ubuntu 跑起来:新建、分区与首启配置

3.1 新建虚拟机的关键选项

打开 VMware,选「创建新的虚拟机」,走自定义模式。几个容易选错的地方:

  • 客户机操作系统选 Linux,版本选 Ubuntu 64 位。
  • 处理器数量按宿主机物理核心的一半给,别超过。
  • 网络类型选 NAT。
  • 磁盘容量给 80GB,选「将虚拟磁盘存储为单个文件」。
  • 最后一步别急着点完成,先点「自定义硬件」,把内存调到 8GB,再确认 ISO 已挂载。

3.2 安装过程中的分区与用户设置

启动后进入 Ubuntu 安装界面,语言选中文或英文都行,但建议选英文,避免终端里中文路径带来的编码问题。分区这一步,新手直接选「清除整个磁盘并安装 Ubuntu」即可,因为这是虚拟机磁盘,不会影响宿主机。

用户设置里,用户名不要用大写字母和中文,密码设简单一点但别太短,因为后面sudo会频繁输入。安装类型选「最小安装」可以省空间,但如果你后面要跑仿真,建议选「正常安装」,把办公套件之外的开发工具一并装上。

3.3 首次启动后必做的四件事

装完重启,进入桌面后先做这几步,能省掉后面很多麻烦:

# 1. 更新软件源索引 sudo apt update # 2. 升级已安装的包 sudo apt upgrade -y # 3. 安装常用工具 sudo apt install -y build-essential git curl vim net-tools # 4. 安装 VMware 工具,改善显示和剪贴板 sudo apt install -y open-vm-tools open-vm-tools-desktop

逻辑说明:apt update刷新软件源索引,apt upgrade升级已有包,两者顺序不能反。build-essential提供 gcc、g++、make,是编译 ROS 包的基础。open-vm-tools-desktop让虚拟机支持自适应分辨率和宿主机剪贴板共享,比手动装 VMware Tools 更省事。装完这些,重启一次虚拟机。

提示:如果apt update很慢,可以在「软件和更新」里把下载源换成国内镜像,速度会明显改善。

4. 装 ROS:源配置、密钥导入与依赖安装的完整命令链

4.1 配置软件源和密钥

ROS 的包不在 Ubuntu 默认源里,需要手动添加。以 ROS 1 Noetic 为例:

# 1. 添加 ROS 软件源 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' # 2. 导入官方密钥 curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add - # 3. 再次更新索引 sudo apt update

逻辑说明:第一行把 ROS 源写入sources.list.d目录,$(lsb_release -sc)会自动替换成当前 Ubuntu 代号,比如 focal。第二行导入签名密钥,没有它apt会拒绝安装。第三行让新源生效。如果你用的是 ROS 2 Humble,把源地址里的ros换成ros2,密钥用对应的即可。

4.2 安装 ROS 主体与初始化

# 安装完整桌面版,包含 ROS、rqt、rviz 和仿真工具 sudo apt install -y ros-noetic-desktop-full # 初始化 rosdep sudo rosdep init rosdep update # 配置环境变量 echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc

逻辑说明:ros-noetic-desktop-full是功能最全的安装选项,包含仿真和可视化工具,适合入门。rosdep用来安装包的系统依赖,init只需执行一次,update可以定期跑。环境变量写入.bashrc后,每次开终端自动生效,不用手动 source。

4.3 验证安装是否成功

开一个新终端,跑下面三条命令:

# 查看 ROS 版本环境变量 echo $ROS_DISTRO # 启动 ROS 核心 roscore # 另开一个终端,列出当前话题 rostopic list

逻辑说明:echo $ROS_DISTRO应输出noetic,说明环境变量生效。roscore是 ROS 1 的核心节点,启动后不要关。rostopic list能看到/rosout和/rosout_agg两个话题,就说明通信正常。如果roscore报端口占用,检查是否有残留进程,用killall roscore清掉再试。

5. 避坑与排查:虚拟机装 ROS 最容易翻车的五个地方

5.1 现象:apt update报密钥过期或签名无效

原因:ROS 源密钥有有效期,或者导入时网络中断导致密钥不完整。解决:重新导入密钥,命令和 4.1 节一致。如果还不行,检查系统时间是否准确,时间偏差过大会导致签名校验失败,用date查看,必要时sudo ntpdate同步。

5.2 现象:roscore启动后卡住或报「Unable to contact my own server」

原因:ROS 依赖主机名解析,虚拟机里/etc/hosts没有把主机名映射到本地回环地址。解决:编辑/etc/hosts,确保有一行127.0.0.1 你的主机名,主机名用hostname命令查看。改完重启网络或重启虚拟机。

5.3 现象:编译包时提示内存不足被杀死

原因:虚拟机内存给太少,或者没配交换分区。解决:关机后在 VMware 设置里把内存加到 8GB;如果宿主机内存紧张,可以在 Ubuntu 里创建一个交换文件:

# 创建 4GB 交换文件 sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 写入 fstab 实现开机自动挂载 echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

逻辑说明:fallocate快速分配空间,mkswap格式化为交换区,swapon立即启用。写入fstab后重启依然有效。交换文件只是应急,根本办法还是加内存。

5.4 现象:虚拟机里无法复制粘贴、分辨率不能自适应

原因:没装open-vm-tools-desktop,或者装了没重启。解决:执行 3.3 节的安装命令,然后sudo reboot。如果还不行,检查 VMware 的「虚拟机设置」里是否启用了共享文件夹和拖放功能。

5.5 现象:rosdep update超时或报网络错误

原因:rosdep默认从境外源拉取数据,网络不稳定时容易失败。解决:多试几次,或者换时间段重试。也可以手动配置rosdep的源地址,但这一步涉及具体网络环境,建议先确认基础网络通畅,再排查rosdep本身。

6. 让环境可复用:快照、克隆与多版本共存的技巧

装好一个能跑的 ROS 环境不容易,所以第一件事就是打快照。在 VMware 里选「虚拟机 → 快照 → 拍摄快照」,命名成「ROS 装好可用」之类的,以后不管怎么折腾,都能一键回滚。这是虚拟机相比双系统最大的优势,也是我每次装完必做的动作。

第二个技巧是克隆。如果你要同时学 ROS 1 和 ROS 2,不用装两遍系统。把当前虚拟机完整克隆一份,在克隆体里卸载旧版本、装新版本,两个环境互不干扰。克隆时选「创建完整克隆」,别选链接克隆,链接克隆依赖父虚拟机,父虚拟机一删,克隆体就废了。

第三个技巧是导出 OVA。在「文件 → 导出为 OVF」里把虚拟机打包成一个文件,换电脑时直接导入,省去重装。导出前先清理一下系统,把~/.bash_history清空,删掉临时文件,能减小体积。

最后一个习惯:把常用的环境配置写成一个脚本,放在~/setup_ros.sh里,内容包括源配置、密钥导入、环境变量。下次重装系统,跑一遍脚本,十分钟就能恢复工作环境。我吃过一次亏,虚拟机磁盘损坏,没快照没脚本,整整一个周末都在重装和配环境。从那以后,快照和脚本成了我的后悔药。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询