使用WSL2+WSLg优雅地安装ROS系统
前置条件
本教程推荐使用WSL2+WSLg图形化的方式运行ROS及其GUI程序,根据微软官方的要求,最低系统配置如下:
使用 Windows 10 版本 19044+ 或 Windows 11
已安装适用于 vGPU 的驱动程序(只要你安装了最新显卡驱动就没问题)
如果你还没有安装显卡驱动
Intel GPU 驱动程序
AMD GPU 驱动程序
NVIDIA GPU 驱动程序
安装WSL2
确认系统版本
如果你正在使用Windows10 1903/1909,需要使用其他方法来实现WSL的GUI显示,可参考:
如果你使用的是更旧的Windows10版本,请考虑安装新版本系统,或转而使用虚拟机。
启用WSL、虚拟机平台
以管理员身份启动Powershell,运行以下代码
适用于Windows11/Windows10(2004+)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
适用于Windows10(1903/1909)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
正确执行如图所示
重新启动系统以确保功能被安装
测试WSL是否已安装并切换默认版本
打开cmd/Powershell,使用命令wsl,如果功能正常,应当显示
使用命令来更改WSL默认版本到WSL2
wsl --set-default-version 2
正常运行结果:
更新WSL2 Linux内核
打开WSL2 Linux内核更新包并安装,一路next就好。
(如果找不到,从
安装完成后如上图所示。
安装Ubuntu子系统
如果你需要安装ROS Melodic,则需要安装Ubuntu18.04,
如果需要ROS Neotic,则需要Ubuntu20.04
方法一:Microsoft Store直接安装
安装后,在开始菜单中打开这个程序,就会进行系统的安装。
方法二:下载离线AppxBundle手动安装
下载离线安装包
进入https://store.rg-adguard.net/,输入从Microsoft Store获得的商店链接:
手动安装
在下载文件夹内打开Powershell窗口,使用以下命令安装:
Add-AppPackage .\CanonicalGroupLimited.Ubuntu18.04LTS_1804.6.4.0_neutral_~_79rhkp1fndgsc.appxbundle
之后就会在开始菜单内看到一个程序快捷方式,打开即可安装系统。
确认当前运行的是WSL2
一些情况下,可能运行的是WSL1而不是WSL2,为了后面的无缝GUI运行WSL中的程序,需要确认当前运行的是WSL2:
wsl -l -v
如果看到Version为1,就需要进行转换:
wsl --set-version Ubuntu-18.04 2
其中Ubuntu-18.04是之前列表中显示的WSL子系统名称,2代表转换为WSL版本2。
更新WSL内核
为了后面能正常使用WSLg,必须更新WSL内核
wsl --update
Ubuntu系统简单配置
刚装好的系统还需要一些配置,不能直接安装ROS。
更换国内镜像源
修改Ubuntu的软件包源为USTC,也可以使用其他任何你喜欢的国内镜像源(以下命令通用现代Ubuntu发行版):
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list
修改完成后,执行软件源缓存更新和软件包更新:
sudo apt update
sudo apt upgrade -y
检查GUI环境
微软推出的WSLg可以让WSL2子系统的GUI应用程序以窗口化的形式无缝运行在Windows中,就像原生Windows程序一样,可以在任务栏中看到它的图标,切换多任务等等。
接下来,我们安装一个简单的GUI程序:GEdit(Ubuntu中常见的文本编辑器,桌面版自带,但WSL不会自带,需要安装)
sudo apt update
sudo apt install gedit
然后,直接输入gedit回车,就会发现这个Linux程序已经以窗口化的形式运行在你的Windows上了:
安装ROS
以ROS Melodic为例(基于Ubuntu18.04),官方教程:
添加软件源、密钥
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
安装ROS软件包
sudo apt update
sudo apt install ros-melodic-desktop-full
此过程需要安装非常多的软件包,需要耐心等待。
如果出现这样的下载缓慢问题,可能是上网方式不够科学导致的。
如果你拥有一只蓝色小猫咪,可以尝试让它进入隧道(TUN),这样是最方便快速的方式。
配置ROS环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
安装ROS依赖
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo rosdep init
rosdep update
此过程同样需要科学的上网方式,否则容易出错。正确输出如下:
测试ROS小乌龟(Turtlesim)
开三个终端界面,分别执行下面三条命令:
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
如果你使用的是新版本Windows Terminal,可以直接点击下拉菜单快速打开WSL的终端。
在最后一个终端中,使用方向键就可以控制Turtlesim中小乌龟的移动了(←/→转向,↑/↓前后移动)
如果正常运行,那么代表你的ROS环境已经安装完成,恭喜~
- 感谢你赐予我前进的力量