Orbbec Femto Bolt多相机unity应用

项目需求一个程序使用4台体感相机,需要同步设备。

第一步:根据链接里的方法把4台相机连接到主机电脑,验证设备是否已连接并可通信。

同步多个设备奥比中光致力于构建机器人与AI视觉产业中台、打造机器人的“眼睛”。基于自研芯片和全栈式系统技术,奥比中光为机器人、3D扫描、生物识别等行业客户及全球开发者提供高性能的3D视觉传感器及机器人与AI视觉方案。https://www.orbbec.com.cn/index/Sdkdoc/info.html?cate=117&id=61

第二步:校准同步后的多台设备。

Azure Kinect and Femto Bolt Examples for Unity插件里的MultiCameraSetup场景可以很方便地校正,根据文档Azure Kinect Tips & Tricks | RF Solutions - Technology, Health and More进行操作。

翻译一下:

如何在场景中校准和设置多个摄像头
为了校准连接到同一台机器(通常为两个或更多 Azure Kinect传感器)的多个摄像头,您可以使用KinectDemos/MultiCameraSetup-folder 中的 MultiCameraSetup-scene。请打开此场景并执行以下操作:
1.在“层次结构”中创建所需的传感器接口对象,作为“Kinectcontroller-game”对象的子对象。默认情况下,那里有两个“Kinect4Azure-objects”,但如果你有更多的传感器连接,请随意创建新的或复制现有传感器接口对象之一。不要忘记相应地设置它们的“设备索引”和“设备同步模式”设置。
2a.设置第一个传感器接口对象的位置和旋转(场景层次结构中的Kinect4Azure0)。请参阅上面的提示。
2b.在层次结构中选择“KinectController”对象,并启用KinectManager组件的“同步多摄像头帧”设置(如果当前禁用)。
3.运行场景。所有配置的传感器都应该亮起。在校准过程中,一个(且仅一个)用户应该对所有配置的传感器可见。校准进度和校准质量将显示在屏幕上。所有摄像机可见的用户网格也应该可见。它们可能有助于您从视觉上跟踪校准质量。校准完成后,校准配置文件“multicam_config.json”将保存到Unity项目的根文件夹中。
4.如果在校准过程中,用户无法在摄像机的交叉区域中找到,请再次在层次结构中选择“Kinectcontroller”对象,禁用其KinectManager组件的“同步多摄像头帧”设置,然后再次尝试运行场景。
4.自动校准完成后,您可以手动调整已校准传感器的旋转和位置(第一个传感器除外),以使用户网格彼此尽可能接近。为了围绕用户网格进行更好的可见性,请按Alt+鼠标拖动。准
备就绪后,按“保存”按钮将更改保存到校准配置文件。

6.为了测试保存的校准文件的质量,在“层次结构”中选择“KinectController”对象,并启用其“KinectManager”组件的“使用多摄像机配置”设置。然后再次运行场景,检查在不同摄像机视角下检测到的用户的网格有多接近。
7.如果您对当前多摄像头校准结果的质量不满意,请在禁用"使用多摄像头配置"设置的情况下重新运行多摄像头设置场景。
8.要在任何其他场景中使用保存的校准配置,请打开相应的场景,并启用该场景中KinectManager组件的“使用多摄像头配置”设置。运行它时,KinectManager应根据保存的校准配置重新创建和设置传感器接口。运行场景以检查是否按预期工作。请注意,在多摄像头情况下,用户体合并脚本将尝试根据它们之间的距离自动合并所有摄像头检测到的用户体。

第三步:使用校准好的配置文件。

修改应用场景中的KinectController设置如图。

添加和体感相机数量相同的Kinect4Azure。

扫描二维码关注公众号,回复: 17585764 查看本文章

修改Kinect4Azure组件的设置。

打包.exe文件。

此时直接运行.exe会发现无法调用多相机,还需要在Unity项目的根文件夹中找到保存的multicam_config.json文件,放到打包好的执行文件根目录,再次运行,测试成功调用多相机。