鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    记录一下win11 WSL2一键安装Docker+ROS

    已定时 已固定 已锁定 已移动
    一键安装
    wsl ros一键安装 docker ros docker
    1
    1
    1.2k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 16205904451
      橘子树下
      最后由 编辑

      记录一下win11 WSL2一键安装Docker+ROS

      安装并尝试启动

      1. 按照【小鱼一键安装系列】在wsl2 上安装了docker+ros,输入docker images可以看到成功安装;
        f4bb450f-42af-4868-8c6e-d5b413e5c49a-image.png
      2. 尝试启动镜像,出现报错:
      error gathering device information while adding custom device "/dev/snd":not a device node
      
      1. 尝试以命令行交互的形式启动:
      docker run -it -e DISPLAY=host.docker.internal:0.0 fishros2/ros:noetic-desktop-full
      

      成功启动镜像:
      8ee3ae36-55d9-4cf3-bdd2-2059bc1216c0-image.png
      启动小海龟rosrun turtlesim turtlesim_node,出现报错:

      qt.qpa.xcb: could not connect to display                                                                                                                                  qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.                                                                                This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.                                                                                                                                                                                                             Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
      

      查询后得知wsl2没有GUI需要安装xserver

      安装Xserver

      1. WSL2 ubuntu下安装xfce4:
      sudo apt-get install xfce4
      

      弹出的配置界面选择lightdm,

      1. 编辑.bashrc,
      gedit ~/.bashrc
      

      在.bashrc末尾添加如下内容:

      # xfce4
      export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
      export LIBGL_ALWAYS_INDIRECT=1
      

      之后,执行source .bashrc使环境变量生效。
      3. windows 安装vcxsrv,一路点击next即可,安装完成后,设置防火墙,windows防火墙允许vcxsrv.exe和XLaunch.exe。
      73223383-2ec1-4f24-b6e0-3a9134278d9b-image.png
      ecc534a8-c441-4dc3-b5ca-3bc1d0abac8f-image.png
      4. windows运行XLaunch,配置如下:
      724a3a25-a87d-41f2-9627-3d9b176bac78-image.png
      f259f9ec-1f94-428f-a1b1-3a6cbf8c5b43-image.png
      09110039-c372-4baa-8102-adcd79161b80-image.png
      5. 打开windows命令行cmd,输入ipconfig查看ipv4地址;
      6. ubuntu 下添加DISPLAY变量:

      export DISPLAY=xxx.xxx.xxx.xxx:0.0
      

      xxx.xxx.xxx.xxx为你的windows的ipv4地址。
      7. WSL2 ubuntu 启用xfce4:

      sudo startxfce4
      

      顺利的话,xfce4启动后,XLaunch窗口中可以看到ubuntu的图形界面,如果没看到ubuntu的图形界面,在第4步里选择Multiple windows, Display number设为-1,然后再试试。

      启动ROS

      以命令行交互的形式启动docker镜像:

      docker run -it -e DISPLAY=host.docker.internal:0.0 fishros2/ros:noetic-desktop-full
      

      启动roscore

      roscore
      

      另开一个终端启动小海龟:先打开一个wsl2 ubuntu 终端,查看正在运行的docker镜像名称:

      docker ps
      

      b3e01b50-5f6c-4e75-9643-22453ea1c049-image.png
      然后执行:

      docker exec -it xxx /bin/bash
      

      其中,xxx为镜像名,在镜像的终端里启动小海龟:

      rosrun turtlesim turtlesim_node
      

      21646a44-6e31-4af7-9c5d-2aede90fc9a6-image.png
      ba405d0e-3070-4f57-bbfc-f85fe5cfc7c0-image.png

      可能遇到的错误

      启动xfce4报错FAILED TO CONNECT TO SESSION MANAGER的解决方法:

      rm -rf .config/xfce4
      rm -rf .config/xfce4-session
      su -c 'systemctl enable lightdm'
      

      之后重启电脑。

      1 条回复 最后回复 回复 引用 1
      • 第一个帖子
        最后一个帖子
      皖ICP备16016415号-7
      Powered by NodeBB | 鱼香ROS