2017-06-19 119 views
1

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

第一种方式正要从不同深度和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

更好的近似斯特凡Magnenat在这篇文章中给出:distance = 0.1236 * tan(rawDisparity/2842.5 + 1.1863) in meters。添加-0.037的最终偏移项为最初的ROS数据。

,我试图用该Logger其由托马斯维兰(ElasticFusion)建议的第二种方式。我运行这个记录器没有任何错误。

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图像。

enter image description here

我使用Ubuntu 16.04和Kinect1。任何一种建议或帮助的可以理解的

回答

1

解决

方式二后重新安装OpenNI工作。可能在以前的运行记录器莫名其妙地无法找到OpenNI流式传输深度和rgb。

+0

你能够离线运行ElasticFusion吗? –

+1

是的,它可能通过插入标志 – MIRMIX

+0

我们是否必须使用记录器进行记录,然后转换为.klg文件,然后像dyson klg文件一样脱机运行? –