使用kinect 1记录到klg文件

Logging to klg file using kinect 1

我正在尝试使用我的自定义 .klg 文件 运行 SLAM 算法 (ElasticFusion)。 我尝试了以下两种方式:

第一种方法 是从单独的深度和 rgb 图像 (.png) 文件及其时间戳信息手动构建 .klg 文件。我在这个 Sequence 'freiburg1_desk' 数据集上尝试了转换脚本,然后在 运行 ElasticFusion 上尝试了转换脚本。我得到了很好的结果和点云。但是当我尝试按照相同的步骤在自己的设备上记录环境时,我没有得到想要的结果或点云。我在实时记录中得到的结果要好得多。我想这是因为我用于深度图像可视化的代码。

np.clip(depth, 0, 2**10-1, depth)   
depth2=depth/2842.5
depth2+=1.1863
depth=np.tan(depth2)
depth*=0.1236
depth-=0.037
depth*=1000     
#depth = 0.1236 * math.tan(depth / 2842.5 + 1.1863);
depth = depth.astype(np.uint16)
return depth

我从 here

得到上面的公式

A better approximation is given by Stéphane Magnenat in this post: distance = 0.1236 * tan(rawDisparity / 2842.5 + 1.1863) in meters. Adding a final offset term of -0.037 centers the original ROS data.

我尝试的第二种方法 是使用 Thomas Whelan (ElasticFusion) 建议的 Logger。我运行这个Logger没有任何错误。

Number devices connected: 1
  1. device on bus 001:14 is a Xbox NUI Camera (2AE) from Microsoft (45E) with serial id 'A00366911101042A'
searching for device with index = 1
Opened 'Xbox NUI Camera' on bus 1:14 with serial number 'A00366911101042A'

但是深度和 RGB 图像出现黑屏。

我正在使用 Ubuntu 16.04 和 Kinect1。任何类型的建议或帮助将不胜感激

已解决

第二种方法 在重新安装 OpenNI 后有效。可能在之前的运行中,Logger 以某种方式无法找到用于流式传输深度和 rgb 的 OpenNI。