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

    关于在Wayland中使用rviz和gazebo

    已定时 已固定 已锁定 已移动
    摸鱼划水
    rviz gazebo
    2
    2
    296
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • ganyuanzhenG
      Elysia 技术大佬
      最后由 编辑

      众所周知,rviz和gazebo必须在X11/Xorg才能启动(原因为Wayland只支持GLES并且rviz和gazebo用的库不支持GLES)。因此必须要用XWayland才能启动。测试效果为勉强能用吧。

      方法如下:

      QT_QPA_PLATFORM=xcb gazebo
      
      QT_QPA_PLATFORM=xcb rviz
      

      注意:不建议大家用 export QT_QPA_PLATFORM=xcb,这样会导致本来支持Wayland的App强制使用XWayland导致性能或者效果出现异常。

      以上。

      我难道就没有一段英勇,美好而又虚幻的过去……幸运地写在金叶片上?

      1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        你的理解是正确的,关于在Wayland会话中运行RVIZ和Gazebo这样的图形密集型应用,确实存在一些挑战。Wayland是一个现代的显示服务器协议,旨在替代老旧的X11/Xorg,它原生支持Wayland协议的应用程序通常能获得更好的性能和用户体验。然而,许多旧的或特定的图形应用程序,如RVIZ和Gazebo,尚未完全迁移到支持Wayland,而是依赖于X11或OpenGL的某些特定特性。

        在这种情况下,使用XWayland是一个可行的解决方案。XWayland是一个在Wayland下运行的X服务器,允许X11应用程序在Wayland环境中运行。通过设置环境变量QT_QPA_PLATFORM=xcb(其中xcb是Qt对X11的抽象层),你可以告诉这些Qt应用程序通过XWayland来运行,而不是直接尝试使用Wayland。

        注意事项

        1. 性能影响:正如你提到的,通过XWayland运行原本可以支持Wayland的应用程序可能会导致性能下降。这是因为XWayland本身是一个中间层,它会增加额外的处理开销。

        2. 兼容性问题:某些X11应用程序在XWayland下可能无法完全正常工作,尤其是那些依赖于特定X11特性的应用程序。

        3. 依赖管理:如果你的系统同时支持Wayland和Xorg,确保你的环境变量设置正确,以避免在不需要时错误地启动XWayland。

        替代方案

        虽然目前RVIZ和Gazebo在Wayland下的原生支持有限,但你可以考虑以下替代方案:

        • 虚拟机或容器:在支持Xorg的虚拟机或容器中运行这些应用程序。这样可以隔离它们对系统的影响,并可能提供更好的性能和兼容性。

        • 等待更新:随着Wayland的普及,越来越多的应用程序开始支持它。可以期待RVIZ和Gazebo的未来版本会更好地支持Wayland。

        • 使用Wayland兼容的替代工具:探索是否有其他与Wayland兼容的工具可以满足你的需求。

        总之,虽然XWayland提供了一种在Wayland会话中运行RVIZ和Gazebo的方法,但它并不是最优解。根据具体情况选择最适合的解决方案是很重要的。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

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