Intel RealSense L515&Unreal Engine 4调试记录

2023-05-16

文章目录

  • 前言
  • 一、安装与配置
    • 1.安装前置条件
    • 2.配置
  • 二、编译与运行
    • 1.编译
    • 2.运行
  • 填坑与测试
    • 1.填坑
    • 2.测试


前言

Intel RealSense系列推出了适用于Unreal Engine 4的相关插件,官网提供了相关示例代码下载,并且给出了简单的使用教程Intel官方文档。对于二次开发是否有用还有待商榷,不过作为入门的示例完全足够。在此简单记录一下调试过程以及一些踩过的坑。

一、安装与配置

1.安装前置条件

首先,需要拥有一个Intel RealSense系列的设备,这里叨叨一句RealSense是牙膏厂推出的一系列计算机视觉产品的统称,包括但不限于立体深度相机、光学雷达以及面部识别相机等。

在购买到相应设备后,还需要安装RealSense SDK 2.0,这是因为在为UE开发的插件中,会调用到相关库内的函数。该SDK适用于深度相机(D400系列、L500系列、SR300)以及T265追踪相机。这里插一句,其实在更早之前,Intel为UE开发过两款插件,主要适用于面部追踪,目前已经停止支持。安装SDK的方法详见
SDK安装步骤

还需要安装Unreal Engine 4与Visual Studio,经过测试,UE4.27、UE4.26均可使用,在配置时注意版本选择即可。Visual Studio测试后。2017与2019均可用,可根据实际下载使用。

此外,就是需要下载主角,RealSense针对UE推出的插件示例。

2.配置

下载后的目录结构如下所示。
目录结构
接下来对RealSenseUE.uproject生成项目文件,Intel 官网文档中给的UE wiki已经失效,在这里说明一下具体操作。即右键RealSenseUE.uproject,选择Generate Visual Studio project files,之后等待就可以了。这里注意选择的UE版本,之后的步骤会和版本有关系。
生成项目
生成项目之后,需要将选动态库(C:\Program Files (x86)\Intel RealSense SDK 2.0\bin\x64\realsense2.dll)拷贝到UE或项目路径下。

(1)如果知道UE的版本,可以直接将realsense2.dll拷贝至“D:\Epic Games\Epic Games\UE_4.26\Engine\Binaries\Win64\”下,这里的路径是我安装UE的路径;

(2)如果在上一步生成时忘记了版本,可以直接拷到项目路径下,即“\librealsense-2.50.0\wrappers\unrealengine4\Plugins\RealSense\Binaries\Win64” (这里是相对路径)。

如果SDK最开始安装时自定义了安装路径,还需要在“\librealsense-2.50.0\wrappers\unrealengine4\Plugins\RealSense\Source\RealSense\RealSense.Build.cs” 中更新

`string RealSenseDirectory = "自定义安装路径"`。

二、编译与运行

1.编译

打开RealSenseUE.sln,在DevelopmentEditor模式下进行Build,时间大概10分钟到半个小时。

2.运行

Build之后可以通过两种方式运行示例项目,一种是在VS中通过调试的方式运行,适用于想了解源代码运行机制的同学,也可以直接双击RealSenseUE.uproject运行,可以进行进行演示。两种方式都可以通过UE编辑器对蓝图进行编辑。打开之后界面如下图所示。
空白项目
打开后时空白地图,这时如果需要看具体效果的话,需要打开TestLevel关卡,双击即可。
TestLevel

此时直接Play即可看到实时数据流送。

填坑与测试

1.填坑

以为Play之后就万事大吉了,没想到Play之后并未出现预期中的数据流,依旧是黑白格方块,果然这种万年不更新的官方文档不太靠谱(ˉ▽ˉ;)…。去查找了输出日志,发现报了如下错误。

LogRealSense: Error: ARealSenseInspector::Start exception: Profile not supported。

本以为CSDN一下,就能解决,发现似乎并没有人进行到这一步。这时候就只能通过自己断点调试的方式查找问题了/(ㄒoㄒ)/~~。

首先找到了这句Log输出的地方,是在RealSense插件的源代码中,先插个小旗子。再看看这个函数叫啥,EnsureProfileSupported(),好像没有得到什么实质性的东西ヾ(•ω•`)o。先逐语句调试到这里看看吧,发现这个函数判断了数据流模式、数据流格式、数据流的高度以及数据流的宽度。而且是和一组预设数据进行逐一比对,只要有一项符合,就supported。

既然知道了这个函数的作用,那是不是只要把输入流的相关参数修改为符合这组预设数据即可,包括了三类,也和蓝图中的几个方块是对应的:深度的RAW和Color数据、RGB相机数据以及红外数据。先看看怎么在源码中修改数据流参数吧。只要断点调试,看看获取参数的函数在哪里就没有问题了吧。
抱着轻松的心态进行调试,发现一步一步,弹出了如下画面……
外部函数提示
跳到了所谓的外部函数,那就是通过源码修改是走不通了。那只能在UE编辑器中修改了,可是之前捋了一遍参数,没有可以修改的地方。只能再看一遍了,当我点击了这个小按钮后,出现了,原来是默认隐藏了啊。
Depth Config

可算是找到了,那我只要把这个修改了,应该就可以了。可是好像忘记调试的时候内置的预设数据是什么了。突然想起来Intel RealSense Viewer里面好像有分辨率的选项,再单步调试一次,和Viewer里的选项进行了对比,嗯,是一样的。
Intel RealSense Viewer
注意修改后,发现红外数据这里没有对应的预设可以参考,再去查看官方文档,不起眼的地方写了一句“In case running both depth and infrared they should be configured to same video mode.”,原来是要设成一样的。

修改之后,再次运行,dangdang~可以看到实时数据了!!!!!
实时数据

2.测试

在调试过程中还出现了一个插曲,因为分别在家里和办公室的电脑进行了调试,发现预设的参数数据不一样,这个神秘现象后来发现是和USB口的协议有关,2.0与3.0数据流可以选择的分辨率有较大差别,这一点可以通过Viewer这个软件进行监看。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Intel RealSense L515&Unreal Engine 4调试记录 的相关文章

随机推荐