PCL Visualizer演示交互定制崩溃在spinonce上

时间:2014-03-17 17:43:58

标签: multithreading locking point-cloud-library

我正在尝试使用PCL Visualizer演示示例(这里的所有代码:http://pointclouds.org/documentation/tutorials/pcl_visualizer.php)用于Windows,PCL 1.6,32位版本。

除了交互式自定义部分之外,它工作正常,具有讽刺意味的是我最感兴趣的部分。主方法上的spinOnce(100)行发生未处理的异常。从我已经完成的长时间搜索开始,看起来它与VTK有很强的连接,而不是线程安全和键盘/鼠标回调干扰VTK窗口。但是,我不认为我完全理解这一点,可能会弄错。我在stackoverflow(using "pcl::visualization" in different threads from different instance of a class)中找到了一个非常相似的问题,我尝试在spinonce周围使用scoped_locks,正如他所说,但我认为我做得不对。

有没有人设法在win32上完全使用这个例子?作为参考,这是我对锁定spinonce的不良尝试:

while (!viewer->wasStopped ())
 {

boost::mutex vis_mutex;  //storage for static lock 
boost::mutex::scoped_lock lock(vis_mutex); 
viewer->spinOnce (); 
boost::this_thread::sleep (boost::posix_time::microseconds (100000));

  }

提前致谢!

1 个答案:

答案 0 :(得分:1)

我担心它可能与PCL的版本有关。

教程是为了匹配最新版本的PCL,因为1.6可能会有所改变。

我建议您更新到最新的PCL from github。 (实际上我在win64上使用本教程中的代码,开箱即用,没有问题)