一. 为什么使用WSL2虚拟而不是VMware 或者 Orical Virtualbox

  1. 因为这个VMware不够轻量化
  2. Vmware无法调用显卡配置,而在我的项目中需要用独立显卡来渲染gazebo

二. 如何实现

1. 硬件配置要求

windows11 或者 windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)

2. 学习教程

  1. Microsoft Learn 官方学习WSL教程
  2. sandonz 关于【WSL Ubuntu20.04 与其图形界面安装配置】 应用该教程可以实现windows自带的远程桌面连接服务,虽然较为卡顿但是效果显著(这里注意一下 该教程的换源对于20.04来说特别好用,一定要及时更换该教程里的源,在我之前使用ubuntu22.04上就是换源问题一直困扰)
  3. 董酷酷_Windows电脑如何开启CPU虚拟化

3.实践过程

3.0 基础设置

在“开始”中搜索 启用或关闭windows功能
启用或关闭windows功能
将以下涉及到的选项全都点击选中,要注意Hyper-V可能无法全部选中,要在BIOS中修改开启CPU虚拟化功能,具体操作看董酷酷_Windows电脑如何开启CPU虚拟化开启Hyper-V这一步很重要,如果不开启的话 后续就无法升级WSL2,会导致很多bug而且ROS2中的rviz2以及rqt_graph等就无法在windows界面上开启。(当然了,届时必须下载python Qt-5才可以打开这些界面)在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1 下载安装windows subsystem for Linux (wsl) 和 ubuntu 20.04

3.1.1

直接在PowerShell或者CMD里输入

wsl --intsall

输入

wsl --list --online #查看可下载的Linux版本
wsl --install -d Ubuntu-xx.xx #下载对应需要的Ubuntu版本,我选择熟悉的Ubuntu-22.04

也可以在应用商店里直接下载Ubuntu
下载完打开Ubuntu20.04 可能会出现一些错误,这个时候直接把wsl换成1,命令如下

wsl --set-version 1

,再打开Ubuntu20.04就会出现等待几分钟(Wait for a few minutes)
等到出现要求我们输入账号密码的时候就证明配置好了,相比起双系统 这种安装Ubuntu的方式真的快了很多倍。

3.2 将WSL更换为WSL2

PS:如果不打开Hpyer-V的所有选项,这一步是不能完成的,会导致以下几个问题:

  1. 无法在windows界面上看到rqt_graph或者rviz2等可视化界面
  2. ROS的不同terminal之间的联系好像也断开了,本人尝试过在一个windows terminal标签页里打开
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_py talker

在另外一个标签页里打开

source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_py listener

他们两个节点之间是没有通信的,而且rqt_graph也没有节点图
很简单,在打开Hyper-V后在windows terminal里改

wsl -l -v
wsl --set-default-version 2
#或者针对某个Linux
wsl --set-version Ubuntu-xx.xx 2

3.3 修改WSL2占用的内存,可以降低WSL出现蓝屏的可能

参考甜甜的初夏_解决WSL2中Vmmem内存占用过大问题

3.4 安装ROS foxy

说在前头:由于我们在前面的工作中把源换好了接下来可以直接安装ROS了
最标准的安装方法直接参照ROS官网的安装方法ROS foxy Installation
安装完毕后就可以尝试

source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_py talker
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_py listener

版权声明:本文为weixin_41969030原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_41969030/article/details/128910093