当前位置: 首页 > news >正文

Windows 下 ROS/ROS2 开发环境最优解:WSL 比直接安装、虚拟机、双系统更优雅!

前言

  在 Windows 系统中搭建 ROS 或 ROS2 开发环境,往往是开发者的 “入门拦路虎”:直接安装不仅需要手动配置一系列复杂的环境变量,还要解决 Windows 编译工具链与 ROS 依赖的兼容问题,部分依赖 Linux 内核的底层功能甚至无法正常启用,后续版本升级或环境迁移时,还容易出现配置错乱的情况,整体流程繁琐且容错率低。

  相比之下,借助 WSL(Windows Subsystem for Linux)安装轻量化 Ubuntu 发行版来部署 ROS/ROS2,堪称更优雅的解决方案。这种方式无需跨系统适配,可直接沿用 Ubuntu 生态中成熟的 ROS 安装命令和流程,一键完成环境搭建;同时通过简单配置 X Server(Windows 11 用户更可享受 WSLg 原生支持),rviz 可视化工具、Gazebo 仿真环境等图形化组件都能流畅运行,完全覆盖开发与仿真的核心需求。

  1. 对比直接安装:告别繁琐配置,降低适配成本
    直接在 Windows 安装 ROS 需攻克环境变量配置、工具链适配、版本兼容三大难关,且部分功能存在天然限制;而 WSL 内的 Ubuntu 环境可原生支持 ROS,无需额外适配,安装流程与纯 Linux 系统完全一致,大幅减少踩坑概率。

  2. 对比虚拟机:更轻量高效,无缝互通
    虚拟机需要提前分配固定硬件资源,不仅启动缓慢、占用系统资源多,还存在 Windows 与虚拟机间文件传输繁琐的问题;WSL 无需预设资源,启动秒级响应,资源占用更精简,同时能直接访问 Windows 本地文件系统,代码、数据跨环境传输无需额外操作,开发效率更高。

  3. 对比双系统:无需切换,兼顾生态
    双系统虽能提供纯 Linux 体验,但需提前进行磁盘分区、配置引导程序,且切换环境必须重启电脑,无法同时利用 Windows 和 Linux 的软件生态;WSL 可在 Windows 系统内直接运行 Ubuntu 环境,无需重启即可随时切换开发场景,既能享受 ROS 完整功能,又能借助 Windows 软件辅助开发(如用熟悉的编辑器写代码、用办公软件整理文档),兼顾便捷性与功能性。
    综上,WSL 搭建的 ROS 开发环境,既规避了直接安装的适配难题,又弥补了虚拟机、双系统在效率和便捷性上的短板,是 Windows 用户入门 ROS 开发的最优解之一。

1. 安装WSL

启用 WSL 功能(Windows 端)
首先需要在 Windows 中开启 WSL 相关组件,这是运行 Linux 子系统的基础:

1.1. 打开“启用或关闭 Windows 功能” (如下图所示,三个选项都建议勾选)

  • 按下 Win + R 键,输入 optionalfeatures.exe 并回车。
  • 在弹出的窗口中,勾选以下选项:
    • Hyper-V
    • 适用于 Linux 的 Windows 子系统
    • 虚拟机平台(WSL 2 依赖此组件,Windows 10 需手动勾选,Windows 11 可能默认包含)
  • 点击“确定”,等待组件安装完成后,重启电脑。

1.2. 设置 WSL 2 为默认版本

以管理员身份打开 PowerShell,如下图所示找到 PowerShell 后右键,以管理员身份打开
在这里插入图片描述
1)升级 WSL 到最新版本

wsl --update

2)在 powershell 中设置 WSL 默认版本,这里使用 WSL 2,其基于 Hyper-V 虚拟机技术,性能优于 WSL 1,且支持 ROS 图形化工具

wsl --set-default-version 2

1.3 安装 Ubuntu 发行版

第一种方式可以从 Microsoft Store 安装 Ubuntu,但是由于国内网络限制,经常遇到打不开 Microsoft Store,因此推荐使用下面第二种方法。

第二种方式如下:
1)查看 WSL 支持的 Linux 发行版。打开 PowerShell(管理员模式),执行以下命令列出可安装的发行版:

wsl --list --online

执行后会显示类似如下的支持列表(包含发行版名称和别名):

以下是可安装的有效分发:
NAME            FRIENDLY NAME
Ubuntu          Ubuntu
Debian          Debian GNU/Linux
kali-linux      Kali Linux Rolling
openSUSE-42     openSUSE Leap 42
SLES-12         SUSE Linux Enterprise Server v12
Ubuntu-16.04    Ubuntu 16.04 LTS
Ubuntu-18.04    Ubuntu 18.04 LTS
Ubuntu-20.04    Ubuntu 20.04 LTS
Ubuntu-22.04    Ubuntu 22.04 LTS

如果安装ROS,推荐选择 Ubuntu 20.04 LTS,自己试了 22.04 和 24.04 两个版本,安装有点麻烦;
如果安装ROS2,随意选择。

2) 通过命令安装指定版本的 Ubuntu。在 PowerShell(管理员模式)中执行安装命令:
若安装 Ubuntu 20.04,则输入

wsl --install -d Ubuntu-20.04

若安装 Ubuntu 22.04,则输入

wsl --install -d Ubuntu-22.04

若安装 Ubuntu 24.04,则输入

wsl --install -d Ubuntu-24.04
  • 命令说明:-d 参数指定发行版(需与 wsl -l -o 列出的名称完全一致)。
  • 安装过程:系统会自动下载并部署对应版本的 Ubuntu(约 500MB,需联网),无需手动操作。
  • 若之前已安装过其他 WSL 发行版,执行该命令会新增安装指定版本,不会覆盖原有环境。

3)初始化 Ubuntu 并设置账户
安装完成后,系统会自动启动 Ubuntu 初始化流程,或手动在开始菜单中找到并打开 “Ubuntu 20.04 LTS”/“Ubuntu 22.04 LTS”/“Ubuntu 24.04 LTS” 应用:
首次启动会进行系统配置(约 1-2 分钟,耐心等待)。
按提示设置 Linux 用户名 和 密码(输入时无字符显示,输完按回车确认,后续使用 sudo 需输入此密码)。
设置完成后,即可进入 Ubuntu 命令行界面,说明安装成功。

2. 安装 ROS

参照 官方 ROS Wiki 上面的教程安装ROS即可。

一些基础、常用的的 WSL 命令如下,建议在 PowerShell 输入:

  • 输入wsl -d Ubuntu-24.04,即登录 Ubuntu 的命令行,记得后面的 24.04 要改成你自己安装的系统版本
  • 如果仅安装了一个 WSL 系统,则可以只输入 wsl进入系统
  • 在 WSL 的 Ubuntu 中,输入exit即可退出,返回 Windows 的 PowerShell
  • wsl --shutdown关闭后台运行的 Ubuntu 系统

下面是 rviz展示
在这里插入图片描述

下面是 gazebo展示

在这里插入图片描述

到此就可以结束了。


但是因为个人习惯用 vscode 来写代码,因此记录下如何使用 Windows 下的 vscode 来编辑 WSL 系统下的代码,详见下一节。

3. Vscode 编程(可选)

1)Windows 上安装 vscode ,过程跳过

2)打开安装好的 vscode,在 vscode 的拓展中输入wsl搜索安装 WSL 插件
在这里插入图片描述
3)安装完插件后,进入 WSL 中的系统,然后在你想要打开的文件夹对应的路径下,输入 code .,如此就可以在 Windows 下的 vscode 中编译代码了。

在这里插入图片描述
2)如果想打开 WSL 中系统的命令窗口,可以如下图操作,就可以直接打开 WSL 中系统下的命令窗口。这种方式比较快捷,不像通过 PowerShell 进入那么麻烦。
在这里插入图片描述

4. 修改主机名(强迫症)

WSL 安装系统的时候会从 Windows 继承主机名,例如 lanx@WIN-QARU3HPPVI9,**@**前面的是用户名,后面的是主机名,不想要这一长串的话可以按照下面方式进行修改:
1)修改 /etc/wsl.conf

sudo nano /etc/wsl.conf

然后输入下面内容,lan换成你自己想要的主机名,然后按 ctrl+s保存,再按 ctrl+x退出编辑。

[network]
hostname = lanx  # 强制设置 WSL 的主机名为 lanx
generateHosts = false  # 禁用自动生成 /etc/hosts 文件(避免覆盖)

2)修改 /etc/hosts

sudo nano /etc/hosts

里面的内容如下,把其中原来旧的主机名 WIN-QARU3HPPVI9 全部改成你想要修改的主机名。
原始内容为:

127.0.0.1       localhost
127.0.1.1       WIN-QARU3HPPVI9.localdomain     WIN-QARU3HPPVI9
127.0.0.1       localhost.sangfor.com.cn

比如我的主机名 lanx,修改后成为:

127.0.0.1       localhost
127.0.1.1       lanx.localdomain     lanx
127.0.0.1       localhost.sangfor.com.cn

3)退出 WSL 的系统

exit

然后关闭系统,重新进入 WSL 的系统

wsl --shutdown
wsl

重新进入后即可看到已经修改成功

5. WSL 使用 Windows 的网络

参考博客 在 WSL2 中使用 Windows 的网络连接。

http://www.dtcms.com/a/582530.html

相关文章:

  • (Linux (6):从包管理到工具探索,构建系统操作基础认知)
  • 网站建设哪家专业为什么电脑打不开网页
  • wordpress 4.7.9seo推广有哪些
  • 读取证书问题so调用问题
  • Jottings-Lishaozhuo 2025.11.7
  • 聊聊怎么更好去设计数据库表
  • STM32H743-ARM例程40-U_DISK_IAP
  • 网站开发 实时更新做网站做的好的公司有哪些
  • 专门做酒店设计的网站源码屋整站源码
  • Memory MCP(记忆服务器)
  • Java基础 | 基本类型与引用类型使用规范
  • 香港1核2G云服务器当网站服务器够用不?
  • 用Python来学微积分36-牛顿 - 莱布尼茨公式的深度解析
  • 网站建设规章制度软件app开发需要多少钱
  • 网站建设外出考察信息家在深圳房网论坛首页
  • 测试开发工程师面经准备(sxf)
  • 2026商业航天展,中国商业航天规模化发展的加速器
  • 网站建设与推广范文防下载 的视频网站 怎么做
  • TrueNas Scale配置immich集成GPU硬件加速,用于智能模型,人脸识别,OCR文本识别加速
  • 旅游网站建设规划报告怎么写个人做外贸网站违法吗
  • FLUX1. 代码解读
  • 朔州路桥建设有限责任公司网站新乡发布最新通告
  • 基于黏菌算法的路径规划
  • Java--HTTP(上)
  • 【软考架构】软件测试-白盒测试方法中的几种测试准则(覆盖准则)
  • 网站建设类公司排名中国建筑人才网怎么样
  • Dify 迁移后常见问题解决方案与使用腾讯云cos上传文件 FILES_URL缺失
  • 郑州网站建设培训网站域名备案认证
  • 专业制作网站公司哪家好软件开发项目总结
  • 切换海外动态IP的方法