文章目录
  1. 1. 具体安装步骤:
  2. 2. Tips and bugs:
  3. 3. 原创博文
  4. 4. 转载请注明出处


这几天看到kinect fusion 的效果后,对其非常感兴趣,于是也想搭建一个kinect fusion 的框架自己玩玩,无奈PCL中kinfu的开源代码一直是测试版本,并没有release发布版,于是只能默默的卸载之前安装的1.7.1版本换上PCL的测试版本。
Pcl的测试版本同样可以在github主页上下载,只要选中首页的master分支,并download into ZIP即可,kinfu的代码就在gpu文件夹下。

相比于安装1.7.1版本,想要运行kinfu的话需要通过显卡GPU进行加速,事前需要安装的第三方库也更多,贴一张我的所有第三方库的截图:

具体安装步骤:

  • 事先准备:
  1. 确认你的电脑显卡是N卡,并且运算能力在2.x (Fermi) or 3.x (Kepler) 以上;
  2. 去英伟达官方网站下载cuda最新版本,并更新自己的显卡驱动,我的cuda是6.5版本,显卡为650M;
  3. 还是更新自己的显卡驱动,显卡较新的驱动能够让最终kinfu的帧率更快!
  4. 安装第三方库,BOOST EIGEN FLANN QHULL VTK qt4.8.0 ,在安装前请清理干净原来的这些第三方库;
  • 开始安装:
  1. cmake编译源码,configure第一次后会出现很多红色的build,勾选上build_gpu即可,网上也有说勾选build_tools build_visulation build_cuda build_apps的,但是我的这里前两个是默认勾选了的,build_cuda build_apps我最终也没选;
  2. 在点击generate前仔细看看cmake下方的输出信息,to built里面是否包含了你所需要的所有功能;
  3. 点击generate;
  4. vs打开生成的功能进行编译并install;

Tips and bugs:

  1. 运行kinfu需要openni和primesense的支持,pcl从kinect抓取点云是基于openni的框架的,需要注意的是,事先千万不能安装kinect的微软官方SDK,因为官方的会屏蔽pcl的openni接口,最终pcl读取不出深度数据,显示can’t open depth source;
  2. 进行测试时,可以先生成工程里的openni-viewer,测试pcl是否能成功获取kinect的数据,之后再生成kinfu-app进行测试,最终无误后生成全部的pcl,并install;
  3. 此次版本的pcl源码存在的问题1:
    在源码中进行编译时,无论选不选择BUILD_GPU,都会出现
    libboost_thread-vc100-mt-gd-1_50.lib(thread.obj) : error LNK2019:这个错误
    http://blog.csdn.net/lming_08/article/details/19114417 给出了这个问题的解决方法,在源码文件里的cmake/pcl_find_boost.cmake里把
    Required boost modules
    find_package(Boost 1.40.0 REQUIRED COMPONENTS system filesystem thread date_time iostreams)
    修改为
    Required boost modules
    find_package(Boost 1.40.0 REQUIRED COMPONENTS system filesystem thread date_time iostreams chrono)
  4. 此次版本的pcl源码存在的问题2:
    本来以为这下快要大功告成了,没想到1个小时后编译结果是130+成功,2个失败,当时特别丧气。。失败的原因在于出现了有关PNG的错误,贴图如下:

    网上公开的解决方案是在源码的tools文件夹里的cmakelist打开后,屏蔽掉
    PCL_ADD_EXECUTABLE(pcl_pcd2png “${SUBSYS_NAME}” pcd2png.cpp)
    target_link_libraries(pcl_pcd2png pcl_common pcl_io)
    PCL_ADD_EXECUTABLE (pcl_organized_pcd_to_png “${SUBSYS_NAME}” organized_pcd_to_png.cpp)
    target_link_libraries (pcl_organized_pcd_to_png pcl_common pcl_io)
    这四句就可以了,最终可以正确安装完整的pcl
  5. 安装过程中还有一个问题是,在卸载了kinect的微软官方SDK后,还要卸载pcl的openni和premesense,并重新安装,但是安装好后,cmake会提示找不到openni,无法得到kinfu和gpu的工程,找不到具体原因,第二天先利用cmake编译pcl1.7.1的源码能够找到openni,之后转到新的含有kinfu的pcl-master源码,此时才成功找到openni,并最终成功安装,这个问题的原因到现在也不知道。

下面上几张kinfu的截图,简单的试了下,rgb图是按时间间隔采集的,所以有些地方有模型但是没纹理,另外纹理交界的地方并没有做纹理融合,这两个问题是我将来准备优化代码的方向。


补充一下:我下载的pcl-master源码,是在2014年11月8日的版本,官方后续版本应该会陆续修复已有bug。

原创博文

转载请注明出处

文章目录
  1. 1. 具体安装步骤:
  2. 2. Tips and bugs:
  3. 3. 原创博文
  4. 4. 转载请注明出处