win11 + wsl2 搭建 ros + gazebo 环境

    博客分类: 笔记 阅读次数:

win11 + wsl2 搭建 ros + gazebo 环境

win11 是最好的Linux桌面发行版~

安装ubuntu20.04.4

  1. 控制面板 -> 程序 -> 启用或关闭Windows功能 -> 勾选“适用于Linux的Windows子系统”和“虚拟机平台” -> 点击确定 -> 提示重启,重启

  2. 应用商店安装Ubuntu20.04.4

  3. 打开powershell,执行wsl --set-version Ubuntu-20.04 2,将wsl升级成wsl2。执行wls -l -v检查,若输出的wsl版本仍为1, 下载 wsl内核更新 然后重新执行wsl --set-version Ubuntu-20.04 2

  4. 运行linux gui程序:使用 WSL 运行 Linux GUI 应用。可以安装个gedit试下能否打开。

安装ros

  1. 替换国内软件源:sudo sed -i s@/archive.ubuntu.com/@/mirrors.ustc.edu.cn/@g /etc/apt/sources.list

  2. 添加ros源:sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

  3. 设置密钥:sudo apt-key adv --keyserver 'http://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

  4. 安装ros:sudo apt update && sudo apt install ros-noetic-desktop-full

  5. 安装依赖库:sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

  6. 初始化rosdep:由于国内网络环境,建议使用rosdepc:
         sudo apt install python3-pip
         sudo pip install rosdepc
         sudo rosdepc init
         rosdepc update
    
  7. 配置ros环境变量:echo "source ~/ros_ws/devel/setup.bash" >> ~/.bashrc && source ~/.bashrc

  8. 测试ros,打开两个终端,分别输入roscorerosrun turtlesim turtlesim_node,这时候就可以看见小海龟啦。

  9. 测试gazebo:在终端输入gazebo,就会打开gazebo窗口。如果在“运行linux gui程序”这一步安装了nVidia驱动,那么这时候应该是自动跑在独显上的。可以打开资源管理器看下GPU占用。

  10. 设置缩放:如果使用的是高分屏,会发现打开的gazebo字体非常小。通过以下方式打开缩放支持:在c:\ProgramData\Microsoft\WSL下创建一个名为.wslgconfig的文件,其内容如下:

        [system-distro-env]
        WESTON_RDP_DISABLE_FRACTIONAL_HI_DPI_SCALING=false
    

    关闭wsl后重新启动,再打开gazebo会发现字体变大了,但也变模糊了(也许这就是该选项默认不打开的原因吧)。

配置vscode

  1. 在wsl安装的ubuntu里安装wsl:sudo apt install wsl

  2. wsl通过/mnt挂载Windows目录,比如要打开的目录是Windows的D盘下的test,那么可以cd /mnt/d/test

  3. 打开vscode:在test目录下执行:code .。在打开的vscode中,安装插件Remote-WSL。安装完毕后退出。

  4. 重新打开vscode:重新vscode .,这时候就是在wsl环境下的了。左下角可以看到WSL:Ubuntu-20.04

参考资料

  1. Win10下使用WSL2安装ROS1并使用独显的方法
  2. Windows11环境下配置vscode与wsl2