PCL使用Kinect V1 在获取设备的时候出现智能指针错误

问题:

Ubuntu16.04系统中,利用PCL获取Kinect V1数据时,可能会出现莫名其妙的只能指针错误。
经过调试发现是这一行代码出错:

pcl::Grabber* interface = new pcl::OpenNIGrabber();  //没有获取到设备接口,导致出错

分析:

经过测试发现
按照此链接安装时,如果安装Kinect支持项SensorKinect

cd Platform/Linux/CreateRedist/ 
chmod +x RedistMaker 
./RedistMaker 
cd ../Redist/Sensor-Bin-Linux-x64-v5.1.2.1/ 
chmod +x install.sh 
sudo ./install.sh 

之后就会报错。

但是这一步安装为了使用其中的NiViewer显示Kinect获取的数据流。

解决办法:

1、PCL中使用Kinect

如果在PCL中通过
pcl::Grabber* interface = new pcl::OpenNIGrabber()
调用Kinect则在终端中输入
$ sudo ./install.sh -u
先将SensorKinect卸载掉,然后再使用。

2、直接调用NiViewer显示Kinect数据流

如果要使用SensorKinect自带的NiViewer显示Kinect数据流,则再次再终端中输入:
$ sudo ./install.sh
重新安装SensorKinect即可,当然要先cd到对应的文件夹。

你可能感兴趣的:(PCL)