首页 > 解决方案 > 使用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 的相机图像显示不好,因为整个屏幕都是灰色的。

我搜索了很多,但我一开始找不到使用这个脚本的地方,没有模型我很茫然。

我尝试了以下方法:

我对这些东西还很陌生,靠我自己很难改进。所以我想得到某人的帮助。谢谢。

标签: unity3droshololensmrtk

解决方案


在我目前的理解中(这可能是错误的,因为我也是新手),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 。


推荐阅读