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

    一个新的仿真方案之ROS2 For Unity

    已定时 已固定 已锁定 已移动
    文档资料
    unity ros2
    3
    3
    2.1k
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 小鱼小
      小鱼 技术大佬
      最后由 编辑

      推荐语:ROS2 For Unity是一个高性能的通信解决方案,以ROS2 "原生 "方式连接Unity3D和ROS2生态系统。
      地址:https://github.com/RobotecAI/ros2-for-unity

      Ros2 For Unity

      ROS2 For Unity是一个高性能的通信解决方案,以ROS2 "原生 "方式连接Unity3D和ROS2生态系统。通信不是像其他几个解决方案那样的桥接,而是使用ROS2中间件栈(rcl层及以下),这意味着你可以在你的模拟中拥有ROS2节点。
      这个模块的优点包括。

      • 高性能--与桥接解决方案相比,有更高的吞吐量和更低的延迟。
      • 你的模拟实体是真正的ROS2节点/发布者/订阅者。它们将正确使用命令行工具,如ros2 topic。它们遵循QoS设置并可以使用ROS2的native time。
      • 该模块提供了抽象和工具,可以在你的Unity项目中使用,包括转换、传感器接口、时钟、被MonoBehavior包裹的旋转循环,处理初始化和关闭。
      • 支持所有标准的ROS2消息
      • 自定义消息在构建时自动生成,使用标准的ROS2方式。生成和使用它们是很简单的,不需要手工定义.cs等价物。
      • 该模块被包装成一个Unity的asset。

      平台

      支持的操作系统。

      • Ubuntu 20.04 (bash)
      • Windows 10 (powerhell)

      支持的ROS2发行版。

      • Foxy
      • Galactic

      经测试的Unity3D版本:2021.1.7f1。

      仅适用于Windows,该资产可以以两种方式准备。

      • 独立的(在目标机器上不需要安装ROS2,例如你的Unity3D模拟服务器)。所有需要的依赖都已安装,例如可以作为一套完整的Unity3D插件使用。
      • 覆盖(假设目标机上已有(支持)ROS2安装)。只有资产库和生成的信息被安装。

      发布

      快速启动的最好方法是使用我们的版本。

      你可以下载预先建立的版本的资产,支持两个平台和特定的ros2和Unity3D版本。

      构建

      注意:该项目将把ros2cs拉入工作区,它也独立运作,因为它是一个更通用的项目,针对任何C#/.Net环境。
      它有自己的README和脚本,但对于构建Unity asset,请使用本文档中的说明和脚本,除非你也想运行ros2cs的测试或例子。

      请看特定操作系统的说明。

      • Ubuntu 20.04的说明
      • Windows 10的说明

      使用方法

      1. 执行操作系统特定的readme中描述的构建步骤或下载预构建的Unity包。不要为ros2-for-unity或ros2cs提供源代码。
      2. 打开或创建Unity项目。
      3. 在菜单栏(Unity窗口的顶部)进入Assets。
      4. 选择 "导入包"→"自定义包"。确保资产名称是Ros2ForUnity,并且直接在Assets文件夹中。
      5. 在文件浏览器中,选择由create_unity_package脚本建立的.unitypackage文件(默认位于install/unity_package中),并按照屏幕上的指示操作。
      6. 创建一个包含ROS2UnityComponent.cs的顶层对象。这是 "ROS2 For Unity "的中心Monobehavior,管理所有的节点。详情请参考类文件。
      7. 将示例脚本添加到层次标签中的任何对象,例如,将ROS2TalkerExample.cs拖到检查器标签中的对象。
      8. 在层次结构标签中选择另一个对象,用ROS2ListenerExample.cs添加重复上一步。
      9. 一旦你在Unity中启动项目,你应该能够在Unity编辑器的控制台中看到两个节点在互相交谈,或者使用ros2 topic list和ros2 topic echo /chatter来验证ros2通信。

      Acknowledgements

      ROS2 For Unity的开源版本是通过与Tier IV合作实现的。由于Tier IV的鼓励、支持和需求驱动,该项目在可移植性、稳定性、核心结构和用户友好性方面得到了极大的改善。

      新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

      2 1 条回复 最后回复 回复 引用 0
      • ganyuanzhenG
        Elysia 技术大佬
        最后由 编辑

        目前Unity有官方解决方案,详见:https://fishros.org.cn/forum/topic/1844/分享-使用unity进行机器人的仿真/1

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

        1 条回复 最后回复 回复 引用 0
        • 2
          2105704303 @小鱼
          最后由 编辑

          @小鱼 自定义消息在构建时自动生成,使用标准的ROS2方式。生成和使用它们是很简单的,不需要手工定义.cs等价物。这个构建是怎么构建的,ros2中自定义消息类型的话题似乎无法在unity收到

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