虚拟机里配置ROS的核心路径很清晰:先创建Ubuntu 20.04虚拟机并分配合适资源,再更换国内软件源,接着按官方步骤安装ROS Noetic,最后配置环境变量并运行小乌龟测试,新手跟着做大约1小时能跑通。
虚拟机跑ROS卡不卡?先看这3项资源分配
虚拟机跑ROS卡不卡,主要不取决于ROS本身,而取决于你给虚拟机分配了多少硬件资源,ROS的节点通信和话题发布本身很轻量,但一旦运行rviz、Gazebo或者摄像头驱动,资源占用会立刻上去,根据ROS官方文档和多数用户的实际反馈,下面这3项分配最关键。
内存
- 最低分配2GB,只能跑roscore和简单节点。
- 建议分配4GB,能流畅运行turtlesim、rviz基础功能。
- 如果要跑Gazebo仿真,8GB起步更稳。
处理器
- 至少给2个虚拟核心,否则roscore启动都会慢半拍。
- 建议分配4个核心,并确保电脑BIOS里的虚拟化技术已开启。
- 处理器数量比单核高主频更重要,ROS很多节点是多线程运行的。
硬盘与显卡
- 硬盘空间建议预留30GB以上,ROS桌面完整版安装完就要占7GB左右。
- 虚拟机文件放在SSD上,启动和编译速度会明显提升。
- 显存分配128MB以上,并在虚拟机设置里启用3D加速,不开启的话rviz和Gazebo会卡成幻灯片。
| 配置级别 | 内存 | 处理器核心 | 硬盘 | 适合场景 |
|---|---|---|---|---|
| 最低可用 | 2GB | 2核 | 20GB | 仅跑节点通信 |
| 推荐入门 | 4GB | 4核 | 40GB SSD | rviz+基础仿真 |
| 舒适开发 | 8GB | 6核 | 60GB SSD | Gazebo+多传感器 |
先把资源给足,后面90%的卡顿问题都不会出现。
新手怎么在虚拟机里装ROS?先搞定这4个前提
很多新手卡在第一步,不是因为ROS难装,而是虚拟机环境没准备好,动手之前,先确认下面4个前提。
- Ubuntu镜像选择:ROS Noetic对应Ubuntu 20.04,ROS Melodic对应Ubuntu 18.04,2026年新手入门建议直接选Ubuntu 20.04 + ROS Noetic,资料多、兼容性好。
- 虚拟机软件:VMware Workstation Player和VirtualBox都可以,前者3D性能稍好,后者完全免费。
- CPU虚拟化:进BIOS开启Intel VT-x或AMD-V,否则虚拟机跑64位系统会报错。
- 网络连接:安装过程需要下载大量软件包,确保网络稳定,最好能访问GitHub。
这4个前提满足后,下面的步骤基本不会遇到大坑。
虚拟机安装ROS详细步骤:从创建Ubuntu到跑通小乌龟
创建Ubuntu 20.04虚拟机
先在虚拟机软件里新建一台虚拟机,以VMware Workstation Player为例,操作路径如下。
- 选择“创建新的虚拟机”,类型选“典型”。
- 安装来源选“稍后安装操作系统”,避免自动简易安装乱配置。
- 客户机操作系统选Linux,版本选Ubuntu 64位。
- 虚拟机名称随意,位置选SSD分区。
- 磁盘大小填40GB,选择“将虚拟磁盘存储为单个文件”。
- 创建完成后,在“编辑虚拟机设置”里把内存调到4GB,处理器调成4核。
- 在“显示器”选项里勾选“加速3D图形”,显存给到256MB。
- 挂载Ubuntu 20.04 ISO镜像,启动虚拟机并完成Ubuntu安装。
- 安装完成后,安装VMware Tools或VirtualBox增强功能,实现剪贴板共享和分辨率自适应。
虚拟机这边准备完毕,接下来进入ROS安装环节。
Ubuntu虚拟机安装ROS Noetic的命令行流程
打开Ubuntu终端,按顺序执行下面的命令,每一条都建议复制后粘贴,避免手敲出错。
先更换Ubuntu系统软件源为清华源,加快下载速度。
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo apt update
添加ROS软件源,这里直接用清华的ROS镜像,国内访问更稳定。
sudo sh -c 'echo "deb https://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
添加ROS密钥并更新软件索引。
sudo apt install curl gnupg2 lsb-release curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add - sudo apt update
安装ROS Noetic桌面完整版,这个包包含ROS核心、rviz、Gazebo和常用工具,体积较大,耐心等待。
sudo apt install ros-noetic-desktop-full
初始化rosdep,rosdep是ROS的依赖管理工具,官方源经常超时,可以先手动指定国内镜像。
sudo mkdir -p /etc/ros/rosdep/sources.list.d/
sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://mirrors.tuna.tsinghua.edu.cn/rosdistro/rosdep/sources.list.d/20-default.list
sudo rosdep init
rosdep update
配置环境变量,把ROS的setup文件加入bashrc,这样每次打开终端都能自动加载ROS命令。
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
创建Catkin工作空间,Catkin是ROS1的编译系统,后续自己的代码都放在这个目录下。
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
运行小乌龟验证安装
安装是否成功,跑一下经典的小乌龟仿真就知道。
先启动ROS主节点。
roscore
新开一个终端,启动小乌龟界面。
rosrun turtlesim turtlesim_node
再新开一个终端,启动键盘控制节点。
rosrun turtlesim turtle_teleop_key
把鼠标焦点停在键盘控制终端上,按方向键就能看到小乌龟移动,能走到这一步,说明虚拟机里的ROS已经完整跑通。
ROS虚拟机需要多大内存?分配不当最容易踩的坑
ROS虚拟机需要多大内存,要看你的使用场景,单纯跑话题通信和简单节点,2GB勉强能用,但要跑rviz可视化,4GB是底线,跑Gazebo物理仿真,8GB才比较舒服。
有几个常见的资源分配错误,新手特别容易犯。
- 把物理机内存全分给虚拟机:物理机自身需要至少保留2GB,否则Windows会疯狂使用页面文件,虚拟机反而更卡。
- 忽略交换空间:Ubuntu安装时建议保留4GB以上的swap分区,内存不够时能兜底。
- 硬盘给太小:ROS桌面完整版加上后续编译的包,很容易超过20GB,建议一开始就分40GB。
- 没开3D加速:rviz和Gazebo依赖OpenGL渲染,不开3D加速会导致界面黑屏或极低帧率。
虚拟机环境不像物理机,资源分配需要留有余量,按推荐配置来,能省去大量调试时间。
新手快速上手的5个避坑建议
下面这5条建议来自大量新手反复踩坑后的经验总结,实操时对照检查。
- 软件源优先用清华或中科大:官方源在国内下载ROS经常只有几十KB/s,换源后能跑满带宽。
- rosdep update失败别硬试:直接用清华的rosdep镜像文件覆盖,成功率接近100%。
- 安装完先做快照:虚拟机快照能让你在后续玩崩时一键恢复,比重新安装省事得多。
- 善用aptitude或apt的自动修复:依赖冲突时执行
sudo apt --fix-broken install,能解决大部分安装中断问题。 - 别在共享文件夹里编译ROS包:虚拟机共享目录的读写性能差,catkin编译放虚拟机内部磁盘,速度能快好几倍。
ROS学习路上,环境配置是最容易劝退新手的环节,但只要按照上面的路径走,虚拟机方案依然是成本最低、最不易破坏主系统的入门方式。
Q&A:虚拟机配置ROS常见疑问
虚拟机安装ROS需要联网吗?
需要,安装过程要从软件源下载ROS包和系统依赖,离线安装极其麻烦,至少保证第一次安装和后续rosdep update时有网络连接。
VirtualBox和VMware哪个更适合装ROS?
两款都能稳定运行ROS,VMware在3D加速和USB设备直通上稍强,配置rviz和Gazebo时表现更好,VirtualBox完全免费,资源占用更低,行业共识认为,新手用VMware Workstation Player更容易一次性配好3D环境,如果只是跑节点通信,选VirtualBox完全够用。
虚拟机跑ROS太卡怎么优化?
先增加虚拟机内存和处理器核心,把虚拟机文件迁移到SSD,然后在Ubuntu里关闭桌面动画,使用轻量桌面环境如Xfce,最后确认虚拟机3D加速已开启,并且分配了足够显存,这几项优化做完,大多数卡顿都能消失。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/650088.html





