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源码安装与测试(转)
- 新建一个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
- 测试是否安装成功
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的姿势不太对导致的...尴尬...
