Windows如何优雅的运行ROS2/linux
前言
在ROS/ROS2开发过程中,大家普遍使用到的分布式开发方法都是基于虚拟机/双系统进行,本质上是希望基于Ubuntu良好的生态环境进行,但是两种方式各有各自的好处,也有各自的弊端,例如虚拟机很大而且并不能运行GPU;又比如双系统会导致个人数据碎片化(如想在ubuntu下使用微信/qq/word);基于一系列的理由了,笔者想在windows下进行ROS/ROS2的开发,是否有比较好的方式呢?WSL,window下的子系统;
安装WSL
首先判断你的电脑是否支持 WSLg ,这里有一个链接:https://github.com/microsoft/wslg#pre-requisites, 一般而言,WSLg 在 Windows 11 和 Windows 10 上都受支持
支持WSLg
如果可以的话,点击 https://aka.ms/wslstorepage 该网址即可安装 WSLg;
安装 WSlg 之后,打开 powershell 并输入 wsl --install
即可;
如果你的电脑不支持 WSLg 请执行以下步骤
不支持WSLg
安装 WSL2 和 Ubuntu
-
安装 WSL2 和 Ubuntu。
-
安装 vcxsrv,它将在您的桌面中创建一个快捷方式。
- 下载文件到您的用户主目录:
C:\Users\USERNAME\config.xlaunch
- 点击并键入
XLaunch
,点击 “在此处添加快捷方式”。 - 打开
运行
,键入shell:startup
,按 Enter。 - 将快捷方式移至
C:\Program Files\VcXsrv\xlaunch.exe
。 - 右键单击该快捷方式上的 “属性”,更改
Target
为:"C:\Program Files\VcXsrv\xlaunch.exe" -run C:\Users\USERNAME\config.xlaunch
。
- 下载文件到您的用户主目录:
-
在 WSL 中,将以下内容添加到末尾或等效项:
~/.bashrc
if [ -z $DISPLAY ]; thenexport DISPLAY="$(tail -1 /etc/resolv.conf | cut -d' ' -f2):0"fi
-
若要测试所有内容,请打开新的 WSL shell
sudo apt install x11-apps && xcalc
- 您可能会看到以下错误:
Error: Can't open display: 172.20.192.1:0
。 - 打开具有高级安全性的 Windows Defender 防火墙,检查入站规则并确保 VcXsrv Windows Server 不会阻止专用连接。
- 您可能会看到以下错误:
依赖下载
完成以上操作之后边已经能够在WSL中进行一些Linux操作了,接下来还需要下载一些依赖
sudo apt-get install build-essential g++ libx11-dev libxkbfile-dev libsecret-1-dev libkrb5-dev python-is-python3
再安装编译依赖项
sudo apt install python3 python-is-python3 libsecret-1-dev libxss1 libx11-dev libxkbfile-dev libasound2 libgtk-3-0 libgdk-pixbuf2.0-0 libnss3 libxtst6 libxi6 libxdamage1 libxcursor1 libxcomposite1 libx11-xcb1 libgbm1
基于Vsocde进行开发
如果只是基于终端进行一系列操作虽然也已经能够满足我们的需求了,但是依旧不够丝滑,接下来介绍如何基于Vsocde和WSL进行联动;
安装Vscode
此处推荐使用:Documentation for Visual Studio Code
点击该链接即可下载安装;
配置远程登录
点击该链接即可自动给 Vscode 配置 WSL :WSL - Visual Studio Marketplace
配置结果展示
安装ROS2
安装 ROS2 的方式很多,正巧现在各种一键安装ROS2的内容很火热,此处就摘选古月老师的教程了
《ROS2入门21讲图文教程 | 3、ROS2安装方法》 - 古月居
ROS2系统安装
安装步骤如下:
- 设置编码
$ sudo apt update && sudo apt install locales $ sudo locale-gen en_US en_US.UTF-8 $ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $ export LANG=en_US.UTF-8
-
添加源
$ sudo apt update && sudo apt install curl gnupg lsb-release $ 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
如遇报错“Failed to connect to raw.githubusercontent.com”,可参考解决”Failed to connect to raw.githubusercontent.com“报错 - 古月居
-
安装ROS2
$ sudo apt update $ sudo apt upgrade $ sudo apt install ros-humble-desktop
- 设置环境变量
至此,ROS2就已经在系统中安装好了。$ source /opt/ros/humble/setup.bash $ echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc
效果展示
开发案例
更多内容请参考 Windows如何优雅的运行ROS2/linux - 古月居 (guyuehome.com)