如何在虚拟机中成功安装ROS?虚拟机装ROS步骤详解

在虚拟机中成功安装ROS,核心思路是选用VirtualBox或VMware搭配Ubuntu LTS系统,并分配至少4GB内存和60GB磁盘,再按官方二进制源安装即可,整个过程并不复杂。

很多朋友第一次接触ROS时,都会被满屏的终端命令和依赖报错吓住,其实在虚拟机里安装ROS,算得上是最稳妥的入门路径,它不怕把系统折腾坏,快照一恢复又是全新环境,下面我把自己踩过的坑和验证过的流程完整梳理一遍,照着做就能少走弯路。

为什么多数人选择在虚拟机里折腾ROS

先想清楚一个场景:你手里只有一台Windows笔记本,但ROS原生支持的是Ubuntu,双系统来回切换太痛苦,重启一次就得等半天,虚拟机的好处在于,你可以在Windows桌面里直接开一个Linux窗口,复制粘贴命令、截图查资料都方便得多。

行业共识认为,对于ROS初学者和算法调试场景,虚拟机的性能已经足够了,比如跑仿真、写节点、看话题通信,这些操作对CPU和内存的要求并不高,真正吃力的是同时打开Gazebo和Rviz做重型仿真,这时候虚拟机会明显卡顿,但那是后话。

这里有个关键认知:ROS本身不挑虚拟机,挑的是Ubuntu版本。 你选错Ubuntu版本,后面所有安装步骤都会连锁报错,所以第一步不是装软件,而是先确定你要用ROS1还是ROS2。

虚拟机安装ROS教程的第一步:选对软件和版本

市面上主流虚拟机就两款:VirtualBox和VMware Workstation Pro,前者免费开源,后者对个人用户也免费了,但商业环境要付费,我推荐VirtualBox,因为教程多、问题好搜。

在VMware和VirtualBox装ROS哪个好这个问题上,我个人的体验是:VirtualBox对USB设备的支持稍逊,但胜在轻量、启动快;VMware更稳定,GPU透传能力强一些,适合要跑3D仿真的人,如果只是入门,VirtualBox完全够用。

Ubuntu版本怎么定

ROS和Ubuntu的对应关系是铁律,别乱配。

  • ROS1 Noetic 对应 Ubuntu 20.04 LTS
  • ROS2 Foxy 对应 Ubuntu 20.04 LTS
  • ROS2 Humble 对应 Ubuntu 22.04 LTS
  • ROS2 Jazzy 对应 Ubuntu 24.04 LTS(2024年发布的新版本)

下载Ubuntu时,认准LTS长期支持版,别用中间版本,镜像地址直接去清华源或简米云镜像站,速度比官网快得多,如果你在百度搜“虚拟机安装ROS教程”,很多老教程还在推荐Ubuntu 18.04配ROS Melodic,那个版本已经停止维护了,建议直接用20.04或22.04。

在VirtualBox里创建Linux虚拟机

这部分是纯操作,按顺序做就行。

  1. 打开VirtualBox,点击“新建”,名称填ros,类型选Linux,版本选Ubuntu 64-bit。
  2. 如何在虚拟机中成功安装ROS?虚拟机装ROS步骤详解

  3. 内存分配至少4GB,如果你的物理内存是8GB,请分一半给虚拟机;如果是16GB及以上,分6-8GB,内存太小编译ROS时会直接卡死。
  4. 磁盘分配至少60GB,别选“动态分配”之外的模式,动态分配的意思是实际占用多少就占多少,不浪费宿主机空间。
  5. 创建完成后,进入“设置-系统-处理器”,给2个CPU核心及以上,勾选“启用PAE/NX”。

有一个容易被忽略的设置:在“设置-存储”里,给光驱加载你下载的Ubuntu ISO镜像。 然后启动虚拟机,它会自动进入Ubuntu安装界面。

Ubuntu系统的分区建议

虚拟机里装Ubuntu,不用像物理机那样手动分区,在安装类型界面,选“清除整个磁盘并安装Ubuntu”就行,但如果你打算以后跑大型仿真,建议把/home单独分出来,大小给40GB,其余给根目录。

安装过程持续10-20分钟,中间会提示你创建用户名和密码,这个用户名就是你的ros主目录名,建议用简单的小写单词,比如ros。

虚拟机中安装ROS2 Humble的完整脚本

装完Ubuntu重启进入系统后,先打开终端更新一下系统软件源,这里有个国内用户必须做的操作:把Ubuntu的软件源替换成清华或阿里源,否则apt下载速度可能只有几十KB。

替换源的方法很简单,在“软件和更新”里把下载服务器改为“清华大学镜像站”,然后执行:

sudo apt update && sudo apt upgrade -y

接下来正式开始装ROS,以ROS2 Humble为例,如果你装ROS1 Noetic,最后两节命令换成ROS1的仓库地址即可。

添加ROS软件源

ROS官方源在国内不稳定,推荐用中科大或清华的ROS镜像源,依次执行:

sudo apt install software-properties-common curl
sudo add-apt-repository universe
sudo apt update

然后添加ROS2 GPG密钥:

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 $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

这一步是初学者最容易报错的环节,如果提示curl: Failed to connect,说明你的网络无法访问raw.githubusercontent.com,解决办法是手动下载该key文件,或者用代理,有条件的可以换用国内镜像的key地址。

如何在虚拟机中成功安装ROS?虚拟机装ROS步骤详解

安装ROS2本体

更新源后,直接安装桌面版:

sudo apt update
sudo apt install ros-humble-desktop python3-argcomplete

ros-humble-desktop包含Rviz、Gazebo、demo节点等核心工具,大概占用500MB磁盘空间,装起来需要几分钟,如果你只想跑核心库,可以装ros-humble-ros-base,但入门阶段不建议省这个空间。

配置环境变量

装完并不是结束,ROS2默认不会自动加载到当前shell,需要手动source:

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

这一步千万别省。 很多新人装完ros打不开rviz2,就是因为没有source环境,另外建议再装一个colcon构建工具,后面自己写功能包会用:

sudo apt install python3-colcon-common-extensions

验证安装是否成功

运行一个最简单的测试,开两个终端,第一个跑:

ros2 run demo_nodes_cpp talker

第二个跑:

ros2 run demo_nodes_cpp listener

如果终端里持续出现“Publishing: ‘Hello World’ ”和“Subscribed: ‘Hello World’ ”,说明ROS2已经正常工作了,你也可以用ros2 topic list查看当前话题列表。

Ubuntu虚拟机安装ROS2时经常卡顿怎么办

这是被问得最多的问题,很多人在虚拟机里装完ROS,打开Rviz后画面拖影严重,或者启动Gazebo时风扇狂转,这里有几个实打实的优化手段。

开启3D加速和显存

在VirtualBox的“设置-显示”中,把显存拉到128MB,勾选“启用3D加速”,然后安装增强功能:

sudo apt install virtualbox-guest-utils virtualbox-guest-x11

重启后,Rviz的旋转、缩放会流畅不少,但你发现依然卡,别慌,这通常是CPU调度的问题。

调整虚拟机CPU使用比例

ROS编译和仿真期间,CPU占用会飙到100%,在VirtualBox的“设置-系统-处理器”里,把“执行上限”调低到90%,反而可以减少虚拟机的卡顿感,原因是虚拟化的CPU调度有高优先级抢占问题,稍微限制一下就能给宿主系统留出喘气的空间。

关闭Ubuntu的动画特效

Ubuntu的桌面动画在虚拟机里很吃GPU,打开“设置-外观”,把动画和透明效果全部关闭,或者直接安装轻量桌面:

sudo apt install xfce4

登录时选择Xfce会话,整个系统会变得非常轻快,如果ROS在虚拟机里卡顿已经很影响你写代码了,这个方案是最优解。

虚拟机与Windows宿主机之间的文件共享

如何在虚拟机中成功安装ROS?虚拟机装ROS步骤详解

代码老放在虚拟机里也不踏实,万一虚拟机崩了,你的代码全没了,所以把虚拟机里的ROS项目同步到Windows是刚需。

VirtualBox提供了共享文件夹功能,先关闭虚拟机,在“设置-共享文件夹”里添加一个Windows下的目录,比如D:ros_share,勾选“自动挂载”和“固定分配”,启动虚拟机后,执行:

sudo mount -t vboxsf ros_share /home/ros/share

想每次开机自动挂载,就把这行命令加进/etc/rc.local或者用systemd服务,但更推荐的做法是用Git管理代码,直接推送到Gitee或GitHub,然后Windows上再拉下来,共享文件夹适合大文件,Git适合代码版本管理,两者结合最省心。

常见问题解答

虚拟机里装ROS性能跑得起来吗?

分场景,纯写代码、跑话题通信,性能损耗基本感知不到,跑Rviz做可视化,掉帧但能用,跑Gazebo复杂物理仿真,大概率会卡,如果你要做SLAM建图或者深度相机点云处理,建议还是直接装双系统,虚拟机的GPU加速能力再强,也比不过物理机直通显卡,多数情况下,入门和算法验证用虚拟机完全够,别在早期被环境问题劝退就好。

安装ROS1和ROS2可以共存于同一个虚拟机吗?

可以,但不推荐,ROS1 Noetic和ROS2 Humble分别依赖不同的Python环境和构建工具,同时装着容易导致python3指向混乱,如果确实有共存需求,最简单的办法是不修改系统默认环境,每次使用前分别source不同的setup.bash,社区里也有ros1_bridge这个中间件能实现跨版本通信,但配置过程相当繁琐,新手不建议碰。

为什么我的apt install ros-提示找不到软件包?

99%的情况是软件源没更新,或者ROS源还没写入sources.list.d,你先执行sudo apt update,然后搜索一下是否有该包:apt search ros-humble,如果搜索结果显示红色[universe]标签但没结果,说明你的Ubuntu发行版代号和ROS版本不匹配,比如在Ubuntu 22.04上你安装的是ros-foxy-desktop,那肯定报错,因为Foxy只支持20.04,用lsb_release -a查看你的Ubuntu版本,再对照前文提到的对应表重新选择。

回到最初的问题,在虚拟机里安装ROS这件事,本质上就是一次系统环境的组合搭配,选对Ubuntu版本,配好虚拟机硬件参数,然后一行一行执行官方源里的安装命令,它不要求你多精通Linux,但需要一点耐心,当你第一次看到talker和listener在终端里互相同步消息时,前面所有的等待就都值了,把环境跑通,接下来的机器人编程之路才算真正开始。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/920541.html

赞 (0)
上一篇 2026年10月17日 21:00
下一篇 2026年10月17日 21:05

相关推荐

  • 域名解析错误什么意思,域名解析错误怎么解决

    域名解析错误(DNS Error)是指浏览器无法将您输入的网址(如www.example.com)转换为服务器IP地址,导致网页无法加载,其本质是“地址簿”查询失败或通信中断,在2026年的互联网生态中,随着IPv6的普及和CDN技术的深度整合,域名解析的稳定性直接影响用户体验与转化率,根据中国互联网络信息中心……

    2026年6月14日
    01754
  • 个人域名有哪些用途,个人域名怎么用?

    它不仅是你在互联网上的专属门牌号,更是个人品牌资产、职业机会的入口和数据自主权的基石,与其在社交媒体上被动流浪,不如主动经营一块完全属于自己的数字领地,软件开发者、内容创作者、设计师和自由职业者,正越来越普遍地通过个人域名来掌控自己的网络形象——这件事本身,比它看起来要重要得多,个人域名有什么用途:从名片到数字……

    2026年8月21日
    01194
  • 域名与ip地址绑定,域名和ip地址怎么绑定

    域名与IP地址绑定并非物理连接,而是通过DNS解析将人类可读的域名映射为机器识别的IP地址,实现用户访问域名时自动跳转至对应服务器,在2026年的互联网基础设施架构中,这种映射关系已成为网站稳定运行的基石,随着IPv6的普及和CDN(内容分发网络)技术的深度整合,传统的“一对一”绑定模式已演变为动态、智能的多层……

    2026年7月6日
    01382
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • mi域名是什么靠谱吗?mi域名是什么平台

    mi域名是公认的高价值短域名品类,注册价格通常在几十元到几百元不等,但优质单词“mi”的含义丰富,适合品牌建站、个人博客和投资收藏,它凭借简短、易记、拼音“米”的谐音以及“Mobile Internet”的联想,在近年来的域名市场中热度持续走高,如果你正在纠结是否入手mi域名,这篇文章直接帮你拆解价格、注册渠道……

    2026年9月2日
    01005

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(2条)

  • happy191boy的头像
    happy191boy 2026年10月17日 21:03

    这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于设置的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!

  • smartbot741的头像
    smartbot741 2026年10月17日 21:03

    这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是设置部分,给了我很多新的思路。感谢分享这么好的内容!