Advertisement

SurfaceBook + Ubuntu16.04 安装 Kinect V2 & libfreenect2pclgrabber

阅读量:

#0. 第0定律?github网址和相关blog地址

Surfacebook + Kinect V2 + Ubuntu 16.04

官方的github写的很全,步骤都很细,直接看着做就好了

https://github.com/OpenKinect/libfreenect2

绝大部分的blog都只是梗概一下而已,这个写的比较新,我是看着这个的做的(里面的参考也总结了一些有用的blog的链接)

<>

#1. 按照官方的github安装驱动

复制代码
 git clone https://github.com/OpenKinect/libfreenect2.git

    
  
    
 //关于配置环境,在#2有大概的步骤(可能不全),具体请跟着github里面的提示做
    
  
    
 cd libfreenect2
    
 mkdir build
    
 cd build
    
 cmake ..
    
 make -j7
    
 sudo make install

#2. 关于环境配置

复制代码
 //libusb

    
 sudo apt-add-repository ppa:floe/libusb
    
 sudo apt-get update
    
 sudo apt-get install libusb-1.0-0-dev
    
  
    
 //TurboJPEG
    
 sudo apt-get install libturbojpeg libjpeg-turbo8-dev
    
  
    
 //opencl
    
 sudo apt-get install nvidia-modprobe opencl-headers ocl-icd-dev
    
  
    
    
    [
    ]()

#3. 重新插上Kinect V2 然后运行之

复制代码
 cd ~/Downloads/libfreenect2/build

    
 ./bin/Protonect

#4. My trouble_shooting (一帆风顺的话我都不会写了)

a. 关于编译

编译时候确实遇到过小问题,但目前的blog都有解决办法,也就轻松解决了

b. 关于运行 ./Protonect

这个遇到个问题,undefined symbol: libusb_get_version , 弄了很久很久 {acknowledgement: 感谢霞姐群哥的帮忙解决}

复制代码
 //报错如下

    
  
    
 alvin@alvin-Surface-Book:~/libfreenect2/build$ ./bin/Protonect gl
    
 Version: 0.2.0
    
 Environment variables: LOGFILE=<protonect.log>
    
 Usage: ./bin/Protonect [-gpu=<id>] [gl | cl | clkde | cuda | cudakde | cpu] [<device serial>]
    
     [-noviewer] [-norgb | -nodepth] [-help] [-version]
    
     [-frames <number of frames to process>]
    
 To pause and unpause: pkill -USR1 Protonect
    
 ./bin/Protonect: symbol lookup error: /home/alvin/libfreenect2/build/lib/libfreenect2.so.0.2: undefined symbol: libusb_get_version

原因大概是动态库出了问题,libusb这个在我系统有,在opt文件夹也有,使用的时候本来是去系统下的结果用了opt文件夹下的了,所以gg了?

解决办法大概就是删除掉重复的那个libusb

cd /opt/mvIMPACT_Acquire/ , cd lib ,cd x86_64 , 然后 rm libusb-1.0.so.0.0.0 , 回去libfreenect2文件夹删除build,重新创建build,make一下,搞定。

iai-kinect2源码安装与测试(转)

  1. 新建一个catkin_ws工作空间,编译安装iai-kinect2
复制代码
 mkdir catkin_ws

    
 cd catkin_ws
    
 mkdir src
    
 cd src
    
 git clone https://github.com/code-iai/iai_kinect2.git
    
 cd iai_kinect2
    
 rosdep install -r --from-paths .
    
 cd ~/catkin_ws
    
 catkin_make -DCMAKE_BUILD_TYPE="Release"
    
 rospack profile
  1. 测试是否安装成功
复制代码
    roslaunch kinect2_bridge kinect2_bridge.launch

若出现错误,则:
是因为在.bashrc文件中要添加如下代码,并且要注释掉原来的rgbdslam_catkin_ws的那行代码
在~/.bashrc中添加
source /home/yuanlibin/rgbdslam_catkin_ws/devel/setup.bash
source /home/yuanlibin/catkin_ws/devel/setup.bash
3. 最后测试

复制代码
    roslaunch kinect2_bridge kinect2_bridge.launch

再打开一个终端:

复制代码
    rosrun kinect2_viewer kinect2_viewer

测试成功。

此时,可以按空格或者s键单张采集彩色图、深度图及其对应的点云图图像。

如果要连续采集图像,请参考博文:<>

Libfreenect2pclgrabber 安装

https://github.com/giacomodabisias/libfreenect2pclgrabber

安装这个要先安装好PCL,具体参考

<>

安装流程

复制代码
 git clone https://github.com/giacomodabisias/libfreenect2pclgrabber.git

    
  
    
  
    
 /***
    
 If you have issues with multiple kinects execute "echo 64 > /sys/module/usbcore/parameters/usbfs_memory_mb". If this works you can apply this patch permanently as follows:
    
  
    
 Open the /etc/default/grub file in any text editor. Find and replace: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" with this:
    
  
    
 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=1000"
    
  
    
 Update grub with these settings: $ sudo update-grub
    
 ***/
    
  
    
  
    
 cd ~/libfreenect2pclgrabber
    
  
    
 mkdir build
    
  
    
 cd build
    
  
    
 cmake ..
    
  
    
 sudo make
    
  
    
 sudo make install
    
  
    
  
    
 // REMEMBER TO EXECUTE sudo make install in the libfreenect2 build folder to copy all files in /usr/local
    
  
    
  
    
 cd libfreenect2 所在的文件夹
    
  
    
 cd build
    
  
    
 sudo make install

安装完可以测试一下

我个人安装的时候遇到了提示找不到pclconfig,eigen等等之类的cmake文件,大概如下

Building CXX object CMakeFiles/MultiKinect2Grabber.dir/multi_test.cpp.o
/home/alvin/libfreenect2pclgrabber/multi_test.cpp: In function ‘int main(int, char**)’:
/home/alvin/libfreenect2pclgrabber/multi_test.cpp:122:28: error: ‘class K2G’ has no member named ‘getCloud’
clouds[i] = kinects[i]->getCloud();
^
/home/alvin/libfreenect2pclgrabber/multi_test.cpp:148:30: error: ‘class K2G’ has no member named ‘updateCloud’
clouds[i] = kinects[i]->updateCloud(clouds[i]);
^
CMakeFiles/MultiKinect2Grabber.dir/build.make:62: recipe for target 'CMakeFiles/MultiKinect2Grabber.dir/multi_test.cpp.o' failed
make[2]: *** [CMakeFiles/MultiKinect2Grabber.dir/multi_test.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/MultiKinect2Grabber.dir/all' failed
make[1]: *** [CMakeFiles/MultiKinect2Grabber.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

解决办法就是重装pcl,有可能当初安装pcl的姿势不太对导致的...尴尬...

全部评论 (0)

还没有任何评论哟~