当前位置:   article > 正文

ROS2 For Unity:高性能的通信解决方案_ros for unity

ros for unity

机器人学习资源:鱼香ROS官网
QQ交流群:139707339
教学视频地址:小鱼的B站
公众号:鱼香ROS
版权声明:如非允许禁止转载与商业用途。
公众号

开源地址: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的测试或例子。

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

使用方法

  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 listros2 topic echo /chatter来验证ros2通信。

Acknowledgements

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/91199
推荐阅读
相关标签
  

闽ICP备14008679号