1. 为什么要在Win11上用WSL2搞ROS开发?
如果你是个机器人开发者,或者正在学习ROS(Robot Operating System),可能早就习惯了在Ubuntu系统上工作。毕竟ROS官方主要支持Ubuntu,很多教程、工具链都围绕它展开。但现实是,很多人日常办公、娱乐的主力机是Windows,尤其是Win11现在越来越普及。难道为了搞ROS就得装双系统,或者整天开着虚拟机?那也太折腾了。
我自己就经历过这个阶段:在虚拟机里跑Ubuntu和ROS,资源占用大,运行卡顿,文件共享也不方便。后来接触到WSL2(Windows Subsystem for Linux 2),感觉就像打开了新世界的大门。简单说,WSL2是微软在Windows里内置的一个完整的Linux内核,它不再是简单的模拟环境,而是一个轻量级的虚拟机。这意味着你可以在Win11上直接运行原生的Linux应用,包括ROS,而且性能损耗极小,几乎和纯Linux系统没区别。
那为什么还要配上Gazebo呢?Gazebo是ROS里最常用的机器人仿真工具,相当于机器人的“虚拟试验场”。你可以在里面搭建各种场景,测试机器人算法,而不用担心损坏真实的硬件。但Gazebo本身依赖图形界面(GUI),而WSL2默认只提供命令行。这就需要X11服务器来帮忙——它能把Linux里运行的图形程序“投射”到Windows桌面上显示。听起来有点复杂?别担心,跟着我一步步操作,半小时内你就能在Win11上跑起ROS和Gazebo,还能看到炫酷的3D仿真界面。
2. 前期准备:开启WSL2并安装Ubuntu
2.1 启用WSL2和虚拟机平台
首先,你的系统必须是Win10 2004以上版本,或者Win11。我强烈推荐用Win11,因为对WSL2的支持更完善。按下Win + S,搜索“启用或关闭Windows功能”,打开那个经典窗口。你会看到一长串列表,找到“适用于Linux的Windows子系统”和“虚拟机平台”这两项,把它们都勾选上。

点击确定后,系统会提示你重启。这是必须的,因为内核组件需要重新加载。重启完成后,WSL2的基础框架就搭好了。
2.2 安装Ubuntu 20.04 LTS
接下来是安装Linux发行版。微软商店(Microsoft Store)里提供了好几个选择,但我推荐Ubuntu 20.04 LTS。为什么不是更新的22.04?因为ROS Noetic(当前最稳定的ROS1版本)官方支持到20.04,兼容性最好。打开Microsoft Store,搜索“Ubuntu 20.04”,找到那个紫色图标的官方版本,点击“获取”就行。
安装过程很快,主要是下载和初始化。完成后,你可以在开始菜单里找到“Ubuntu 20.04”的图标,点击它就会打开一个终端窗口。第一次启动会要求你设置用户名和密码,这个密码就是将来执行sudo命令时要用的,别忘了。
2.3 升级WSL2内核并设置默认版本
有时候安装的WSL默认是版本1,我们需要确保它运行在WSL2模式下。打开PowerShell(不是命令提示符!),输入:
wsl -l -v
这个命令会列出所有已安装的WSL发行版及其状态。如果你看到Ubuntu 20.04后面跟着“VERSION 1”,那就需要升级。输入:
wsl --set-version Ubuntu-20.04 2
升级过程可能需要几分钟,耐心等待。完成后,再运行wsl -l -v确认版本号变成了2。你还可以设置WSL2为默认版本,以后安装新的发行版都会自动用WSL2:
wsl --set-default-version 2
2.4 解决可能遇到的安装错误
如果你在启动Ubuntu时看到类似“WslRegisterDistribution failed with error: 0x800701bc”的错误,别慌。这通常是因为WSL2的内核组件没更新。去微软官网下载最新的WSL2 Linux内核更新包,安装后



被折叠的 条评论
为什么被折叠?



