Ubuntu 16.04 & Kinect V2 & installLibfreenect2 的安装

系统环境:ubuntu 16.04
NVIDIA显卡版本:Geforce T705
NVIDIA显卡驱动:390.87
CUDA:8.0
cudnn版本:V5.1.10
OpenCV版本:2.4.9(注意:要调用iai_kinect里面的kinect2_bridge函数必须用2.4.x的OpenCV版本,修正:后来发现不安装OpenCV也没有问题
gcc g++版本:5.4.0
很好的一篇参考:ROS下Kinect2的驱动安装及简单应用

一、使用Kinect传感器查看3D环境中的对象。

需要注意的是Kinect V1 与 Kinect V2的驱动和功能包是不一样的。

1.1 针对于Kinect V1的安装功能包和驱动。

sudo apt-get install ros-kinetic-openni-camera ros-kinetic-openni-launch
sudo apt-get install ros-kinetic-freenect-camera
sudo apt-get install ros-kinetic-freenect-stack
rosstack profile && rospack profile

//openni
//libfreenect for kinect<br>
sudo apt-get install libfreenect-dev
sudo apt-get install ros-kinetic-freenect-launch
sudo apt-get install ros-kinetic-depthimage-to-laserscan
 
//openni
//Installing dependencies:<br>
sudo apt-get install g++ python libusb-1.0-0-dev freeglut3-dev
sudo apt-get install doxygen graphviz mono-complete
sudo apt-get install openjdk-9-jdk
 
//Intalling OpenNI:
git clone https://github.com/OpenNI/OpenNI.git
cd OpenNI
git checkout Unstable-1.5.4.0
cd Platform/Linux/CreateRedist
sudo chmod +x RedistMaker
./RedistMaker
cd ../Redist/OpenNI-Bin-Dev-Linux-[1.5.4.0]
sudo ./install.sh

//install Kinect driver
git clone git://github.com/ph4m/SensorKinect.git
cd SensorKinect/Platform/Linux/CreateRedist
sudo chmod +x RedistMaker
./RedistMaker
cd ../Redist/Sensor-Bin-Linux-x64-v*
sudo ./install.sh

安装完成后,插入Kinect传感器,运行节点就能使用Kinect。
启动roscore后,在另外一个终端运行如下命令:

rosrun openni_camera openni_node
roslaunch openni_launch openni.launch
roslaunch freenect_launch freenect.launch

1.2 针对于Kinect V2的驱动安装与相关功能包安装

1.2.1 CUDA安装

先使用以下命令查看电脑适合的NVIDIA驱动,得知可安装比较稳定的NVIDIA 390.87驱动(虽然上面显示最新的是4xx之后了,但是安装总不成功,最后试了390.87能安装成功):

sudo apt-cache search nvidia-*

先禁用系统自带的驱动,把nouveau驱动加入黑名单,即在/etc/modprobe.d/blacklist.conf的后面加入:

blacklist nouveau
2)备份initramfs文件
sudo mv /boot/initramfs- ( u n a m e − r ) . i m g / b o o t / i n i t r a m f s − (uname -r).img /boot/initramfs- (unamer).img/boot/initramfs(uname -r).img.bat
3)重新建立initramfs文件
sudo dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
4)检查nouveau驱动,确保没有被加载
lsmod | grep nouveau

在官网下载驱动安装的方法总失败,遂弃之。
到官网下载了最新的驱动,ctrl+alt+F1,进入命令模式,使用runfile的方式安装驱动,除了一个什么“”Would you like to run the nvidia-xconfig utility to automatically update your X configuration file…”什么的,选择 了No,其他全都选了y(最后一个选项是要在实时系统内核中使用Nvidia驱动):

安装Nvidia驱动:

sudo apt-get install nvidia-390

安装完后记得要重启,输入以下代码才能看到有输出,不然会报找不到nvidia的错误:

nvidia-smi

nvidia驱动最难安装,安装好了nvidia驱动之后,到cuda官网选择下载驱动能兼容的cuda,接下来倒是非常顺利。

安装CUDA 8.0 run文件,在问到是否安装nvidia驱动时选择no,因为前面已经装好了,其他都是yes,问到安装路径时不填(安装到默认路径)就好了,把下载好的cudnn5.1解压,首先打开里面的include文件夹,打开终端输入:

sudo cp cudnn.h /usr/local/cuda/include/ 
cd ~/cuda/lib64 
sudo cp lib* /usr/local/cuda/lib64/ 

安装完cudnn后,需要修改链接:

cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so

设置环境变量,记得把代码里面的8.0改成你自己的cuda版本号:

echo 'export PATH=/usr/local/cuda-8.0/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

1.2.2 OpenCV的安装(经测试可不安装)

先安装OpenCV
安装的时候出现问题:

nvcc fatal : Unsupported gpu architecture 'compute_11' CMake Error at cuda_compile_generated_matrix_operations.cu.o.cmake:206 (message): Error generating /home/smie/Documents/opencv2.4.11/build/modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_gene rated_matrix_operations.cu.o make[2]: *** [modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_generated_matrix_operations.cu.o] Error 1 make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2 make[1]: *** 

以上的报错是由于要在camke的过程中选择适合的CUDA的计算能力,我的电脑显卡Geforce T705,是3.5的计算能力,根据在Wikipedia上查找到的信息,对应的CUDA_GENERATION版本是Kepler。
因此在Cmake安装OpenCV时使用以下命令可解决:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_TIFF=ON -D BUILD_EXAMPLES=ON -D CUDA_GENERATION=Kepler -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_OPENNI=ON -D WITH_OPENGL=ON ..

make的时候有报__mempcpy__错误,将CmakeLists文件开头增加一句命令就好:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")

然后再用以下命令重新配置:

cmake-gui

点击configure与generation
然后输入以下命令就可以了。

make
sudo make install

OpenCV安装依旧报错:

errors detected in the compilation of "/tmp/tmpxft_000038a5_00000000-10_NCVPyramid.compute_35.cpp1.ii".
CMake Error at cuda_compile_generated_NCVPyramid.cu.o.cmake:266 (message):
  Error generating file
  /media/xiong/9971bab0-8b7b-433e-9d2a-d6344dc82aac/opencv-2.4.9/build/modules/gpu/CMakeFiles/cuda_compile.dir/src/nvidia/core/./cuda_compile_generated_NCVPyramid.cu.o

修改NCVPixelOperations.hpp文件即可。

1.2.3 libfreenect2的安装

在youtube上看到了一种方法,首先在
installLibfreenect2.sh下载网址上下载包,按照里面教程来装就没有问题。解压至home文件夹下,打开终端输入如下指令:

sh installLibfreenect2.sh

最后使用以下命令为kinect2配置接口协议,安装成功:

sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/#配置接口协议,注意运行目录为上一层的目录

1.3 发送和查看kinect数据

进入bin文件夹下,运行如下命令:

./Protonect

出来如下图片,成功!
在这里插入图片描述

参考文章:
1 ROS 安装kinect驱动+测试
2 使用PCL点云库在kinect v2设备上运行pcl_openni2_viewer时解决no device connected问题
3 安装kinect v1驱动和kinect v2驱动,适合新手入门
4 Ubuntu 14.04中升级gcc到版本4.9.2并切换使用它们
5 Ubuntu 16.04安装 CUDA7.5
6 Ubuntu 16.04 + Nvidia 显卡驱动 + Cuda 8.0 (问题总结 + 解决方案)
7 Ubuntu16.04系统下CUDA7.5配置Caffe教程
8 ubuntu下安装nvidia显卡驱动
9 编译opencv 2.4.13error:1 /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope
10 Unsupported gpu architecture 'compute_11’解决方法
11 github libfreenect2安装
12 For Kinect V2
13 OpenKinect
14 PCL点云库安装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值