unity3d - 使用rossharp与Hololens2和Ros通信,将Hololens2的摄像头图像发布为raw_image
问题描述
我最近开始为 Hololens2 开发应用程序。我想在 Unity 和 Ros 之间使用 rossharp。
现在,我正在尝试将 Hololens2 的相机图像发布到 Hololens2 启动的应用程序中的 ros。(介绍 MRTK 作为一种工具。)
首先,我将ImagePublisher脚本附加到 Gameobject,然后从 Hierarchy 中为 ImageCamera 选择 MixedRealityPlaySpace / Main Camera。但是,当我播放它时,我收到一个错误,即 Display1 No Cameras Rendering。
因此,当我复制主摄像头时,它可以很好地构建,应用程序运行良好,并且数据已发送。虽然,当我使用 rqt_image_view 可视化这个图像时,Hololens 2 的相机图像显示不好,因为整个屏幕都是灰色的。
我搜索了很多,但我一开始找不到使用这个脚本的地方,没有模型我很茫然。
我尝试了以下方法:
- 启用 PlayerSettings/PublishingSettings/Capabity/WebCamera
- 为 Hololens2 启用研究模式
- 解压发送的数据,重新发送,尝试显示。(结果是一样的)
我对这些东西还很陌生,靠我自己很难改进。所以我想得到某人的帮助。谢谢。
解决方案
在我目前的理解中(这可能是错误的,因为我也是新手),Unity相机就像一个在游戏/应用程序中向用户显示场景的视点,而不是面向物理相机外面的世界。因此,假设您希望访问 Hololens 的前置 RGB 摄像头并获取真实世界的图像,ImagePublisher 脚本似乎不知道如何访问它。
这是 Peter Koch 的精彩视频,展示了如何使用WebCamTexture类从硬件摄像头获取数据。我使用 Peter 的代码编写了一个修改后的脚本来获取相机图像,并使用原始 ROS# ImagePublisher 代码将它们发布到 ROS 中。我不确定这是否有必要或可以以更好的方式完成,但在部署到 Hololens 2 后,我能够在终端中看到像素数据以及 rqt_image_view 中的视频流。欢迎您如果对您有用,请下载或查看:https ://github.com/armlabstanford/mixed_reality_setup#accessing-the-hololens-front-camera-and-streaming-camera-data-to-ros 。
推荐阅读
- javascript - 检查数组中的日期是否包含晚于当前日期的日期
- python - 如何将向量分离为基向量?
- flutter - 在 Flutter 中实现时 Listview.builder 不显示我的图像
- c# - 取消订阅委托与函数中的事件
- php - Twilio PHP:如何验证 Connect 应用程序?
- python - 从熊猫数据框中获取前后日期时间
- powershell - PowerShell:条件 CSV 单元格值
- java - 不知道为什么这个 stream() 不能在这个嵌套列表上工作?
- .net - 为什么设计时数据上下文属性不会传播到用户控件?
- python - 如何根据值的相似性将字典拆分为两个单独的字典