简介:这份PDF资料面向初次接触ROS的机器人方向学生与开发者,解决在Windows环境下搭建Linux学习平台的入门难题。内容围绕VMware虚拟机安装Ubuntu并部署ROS展开,涵盖虚拟机创建、系统安装、ROS仓库配置、基础包安装与环境变量设置等关键环节,适合零基础或刚入门ROS的读者按图索骥完成环境搭建。资源包内共1个PDF文件,约25.9MB,图文并茂地记录了安装过程中的界面操作与命令细节,便于对照执行与排错。目前已有744人学习下载,可作为ROS学习起步阶段的环境配置参考,帮助读者在虚拟机中安全、便捷地建立Ubuntu与ROS开发环境,为后续机器人编程实践打下基础。
1. 为什么我建议你先在 VMware 里跑通 Ubuntu 再碰 ROS
很多人第一次装 ROS,卡住的不是 ROS 本身,而是 Ubuntu 环境。直接双系统怕分区翻车,买台新机器又没必要,于是「VMware + Ubuntu + ROS」这条链路成了机器人方向入门最稳的起手式。它解决的核心问题就一个:把操作系统、依赖库、ROS 发行版这三层风险隔离在一个可随时回滚的虚拟机里,装崩了删掉重来,不伤宿主机。
这份资源讲的正是这条链路:在 VMware 里装 Ubuntu,再在 Ubuntu 里装 ROS。适合两类人——刚接触机器人操作系统、想先跑通 talker/listener 的新手,以及需要临时搭一套干净 ROS 环境做验证的熟手。下面我按自己实际装过十几遍的流程拆,重点放在参数怎么给、哪一步最容易翻车。
2. 装之前先把 VMware 和 Ubuntu 镜像选明白
2.1 虚拟机软件与镜像的版本搭配
VMware 这边,个人学习用 Player 就够,Workstation 功能更全但收费。安装时那个许可证密钥环节,输入任意一个格式合法的密钥即可进入,这一步资源里也提到了「输入任选一个合适的输入密钥」,本质是跳过授权校验的常规操作,装完在桌面能看到 VMware 图标就说明成了。
Ubuntu 镜像的选择直接决定后面 ROS 能不能装。ROS 1 和 ROS 2 对 Ubuntu 版本卡得很死,常见搭配是:
| ROS 版本 | 推荐 Ubuntu | 说明 |
|---|---|---|
| ROS Noetic | Ubuntu 20.04 LTS | ROS 1 最后一个长期支持版 |
| ROS 2 Foxy | Ubuntu 20.04 LTS | 资源里用的就是这套 |
| ROS 2 Humble | Ubuntu 22.04 LTS | 目前维护周期更长 |
提示:镜像一定去 Ubuntu 官方渠道拿 LTS 版本,别用来路不明的精简版,后面 apt 源对不上会非常难受。
2.2 创建虚拟机时的关键参数
打开 VMware,选「创建新的虚拟机」,类型选「自定义」而不是「典型」,因为典型模式会替你决定一堆参数,后面想改反而麻烦。安装来源选「我以后再安装操作系统」,这样能先把硬件配好再挂 ISO。
操作系统类型选 Linux → Ubuntu。命名随意,比如 ROS_Ubuntu,存储位置挑一个剩余空间大的盘。磁盘容量建议 40GB 起步,资源里写 20GB 是底线,但 ROS 桌面版加上后续编译工作空间,20GB 很快见底,这是我踩过的坑。
硬件配置在「自定义硬件」里调:
- 内存:至少 2GB,建议 4GB。宿主机 8GB 内存的话给虚拟机 4GB 比较舒服。
- 处理器:分配 2 个核心,资源里说的「分配处理器数量」就是这里。核心给太少,后面 colcon 编译会等到怀疑人生。
- 网络:默认 NAT 即可,能上网装包就行。
配好后再把 Ubuntu 的 ISO 挂到 CD/DVD,勾选「启动时连接」,开机就能进安装界面。
3. Ubuntu 安装过程里真正要盯的几个点
3.1 分区与用户设置
进入安装界面后选语言,点「安装 Ubuntu」。到了安装类型这一步,新手直接选「清除整个磁盘并安装」就行——注意这是虚拟机里的虚拟磁盘,不是你的物理硬盘,别慌。手动分区是给熟手玩的,入门阶段没必要。
用户名和密码这一步要记牢,后面 sudo 全靠它。密码别设太简单也别搞特殊符号,虚拟机里够用就行。安装过程会下载语言包和更新,网速慢的话可以勾掉「安装时下载更新」,装完再补。
安装完重启,第一次进系统可能会提示移除安装介质,直接回车。进桌面后先做一件事:确认能联网。打开终端跑一下:
ping -c 3 www.ubuntu.com能通说明网络没问题,不通就检查 VMware 的网络适配器是不是 NAT 模式。这一步看着废话,但后面 apt 装 ROS 全靠它,网络不通的话所有命令都会卡在下载环节。
3.2 装完先更新系统再动 ROS
很多人装完 Ubuntu 直接冲 ROS,结果 apt 报一堆依赖冲突。正确顺序是先更新:
sudo apt update sudo apt upgrade -yapt update是刷新软件源索引,apt upgrade是升级已装软件。这两条跑完再装 ROS,能避开大部分「依赖版本对不上」的玄学问题。升级过程如果提示配置文件冲突,选保留当前版本即可。
4. 在 Ubuntu 20.04 上装 ROS 2 Foxy 的完整命令
4.1 配置软件源与密钥
ROS 2 的包不在 Ubuntu 默认源里,得先加进来。资源里给的命令顺序基本对,我按实际能跑通的整理一遍:
# 允许使用 universe 仓库 sudo apt install software-properties-common -y sudo add-apt-repository universe -y # 添加 ROS 2 的 apt 源 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 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这里几个参数值得说清楚:$(dpkg --print-architecture)自动填当前架构,一般是 amd64;$(. /etc/os-release && echo $UBUNTU_CODENAME)自动取系统代号,20.04 对应 focal。用变量而不是写死,是为了换 Ubuntu 版本时命令不用改。密钥文件放到/usr/share/keyrings/下并用signed-by引用,是现在 apt 推荐的做法,比老的apt-key adv更规范。
4.2 安装桌面版并配置环境变量
源配好后更新索引,再装桌面版:
sudo apt update sudo apt install ros-foxy-desktop -yros-foxy-desktop包含 ROS、RViz、demo 和教程,体积不小,下载慢是正常的。装完必须 source 环境,否则ros2命令根本找不到:
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc source ~/.bashrc第一句把 source 写进.bashrc,以后每开一个终端自动生效;第二句让当前终端立即生效。少了第二句,你得关掉终端重开才行,这是新手最常问的「为什么命令找不到」。
4.3 验证安装是否真的成功
验证别只看ros2 --version,那个只能说明命令在。真正跑通通信才算数,开两个终端:
# 终端 1 ros2 run demo_nodes_cpp talker # 终端 2 ros2 run demo_nodes_py listenertalker 持续打印Publishing: Hello World: N,listener 打印I heard: [Hello World: N],两边序号对得上,说明 ROS 2 的发布订阅机制正常工作。到这一步,整套环境就算立住了。
5. 避坑排查:这几个翻车点我几乎每次都遇到
5.1 虚拟机里 apt 卡在 0% 或超时
现象:apt update一直转圈,最后报连接超时。原因多半是 VMware 网络模式不对,或者宿主机本身网络受限。解决:确认虚拟机网络适配器是 NAT,然后在 Ubuntu 里ping一下外网;还不行就换桥接模式试试,或者检查宿主机防火墙。
5.2 装 ROS 时报「无法定位软件包 ros-foxy-desktop」
现象:源加完了,apt install却说找不到包。原因通常是上一步的源地址写错,或者apt update没成功执行。解决:cat /etc/apt/sources.list.d/ros2.list看源内容对不对,再重新sudo apt update,观察有没有报错行。
5.3 source 之后新终端还是找不到 ros2
现象:当前终端能用,新开一个就失效。原因是 source 那行没写进.bashrc,或者写进去了但顺序有问题。解决:tail -n 5 ~/.bashrc确认那行在,然后source ~/.bashrc。如果.bashrc里有提前 return 的逻辑,source 行要放在 return 之前。
5.4 虚拟机磁盘很快满了
现象:用一段时间后提示空间不足,编译直接失败。原因是最初磁盘给太小,或者快照占了一堆空间。解决:VMware 里可以扩展虚拟磁盘容量,但扩展后还得进 Ubuntu 用gparted把分区撑大,两步都做才生效。更省事的办法是一开始就给 40GB 以上。
5.5 talker 和 listener 收不到彼此消息
现象:两个终端都跑起来了,但 listener 一直没输出。原因是两个终端不在同一个 ROS_DOMAIN_ID,或者其中一个没 source 环境。解决:两个终端都执行echo $ROS_DOMAIN_ID确认一致,默认都是 0;再确认两边都 source 过/opt/ros/foxy/setup.bash。
6. 装完之后怎么验证这套环境真能干活
环境装好只是起点,我更在意的是它能不能扛住真实工作负载。一个简单的压力验证:开三个终端,分别跑 talker、listener,再用ros2 topic list看话题列表,用ros2 topic hz /chatter看发布频率。如果 hz 稳定在 10 左右,说明通信链路健康。
再进一步,可以建一个工作空间编译一个自己的包,这一步能暴露依赖和编译工具链的问题:
mkdir -p ~/ros2_ws/src cd ~/ros2_ws colcon build source install/setup.bashcolcon build是 ROS 2 的构建命令,空工作空间也能跑通,用来验证构建工具是否就位。如果这一步报错,多半是python3-colcon-common-extensions没装,补一句sudo apt install python3-colcon-common-extensions -y即可。
我自己的习惯是,每装完一套新环境,先跑 talker/listener,再跑一次空工作空间编译,两个都过才认为环境可用。从那以后我每次搭 ROS 环境都强制走一遍这个验证流程,省得后面写代码时才发现底层没配好,回头排查更费劲。希望这套流程能帮到你,少走几个我当年踩过的弯路。
本文还有配套的精品资源,点击获取