Ubuntu14.04下安装opencv及ROS Indigo下配置Kinect V2
本篇文章是我在配置Kinect V2时的一些记录,参考了一些前人的经验博客,并把遇到的问题记录了下来。但之前保存在了word里面,出现了一些乱码,这是我尽力修改了之后的结果,但也难免哪里会出错,还请见谅。
- 一、Ubuntu14.04安装OpenCV2.4.13
因为你安装Kinect V2的驱动时安装依赖项之前最好安装编译好opencv,并且必须要安装2.X。
安装教程可参考:https://blog.csdn.net/chunmi6974/article/details/78298470
这里要注意,opencv的源存在一些问题,下载较慢。我是直接拷来了opencv的文件夹,把build文件夹清空。然后教程里面的解压部分就可以直接跳过。直接从第3步开始按照教程往下做。
教程中配置pkg-config这里可以选择,我没有做,不影响后面。
测试opencv
-
创建工作目录
mkdir~/opencv-lena cd ~/opencv-lena gedit DisplayImage.cpp
-
编辑如下代码
#include <stdio.h> #include <opencv2/opencv.hpp> using namespacecv; int main(int argc, char** argv ) { if ( argc != 2 ) { printf("usage: DisplayImage.out <Image_Path>\n"); return -1; } Mat image; image = imread( argv[1], 1 ); if ( !image.data) { printf("No image data \n"); return -1; } namedWindow("Display Image", WINDOW_AUTOSIZE ); imshow("Display Image", image); waitKey(0); return 0; }
-
创建CMake编译文件
gedit CMakeLists.txt
写入如下内容
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED)
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries(DisplayImage ${OpenCV_LIBS} )
- 编译
cd ~/opencv-lena cmake . make
- 执行
此时opencv-lena文件夹中已经产生了可执行文件DisplayImage,下载lena.jpg放在opencv-lena下,运行
./DisplayImage lena.jpg
- 结果
结果就可以看到你调用的图片了。
到这里opencv就装好了。
- 二、Ubuntu 14.04+Ros下KinectV2 安装
安装可参考教程:https://www.cnblogs.com/hitcm/p/5118196.html
问题1:
第4步,安装GLFW3时出现,找不到该文件或者该目录错误提示。
解决方案:既然找不到文件,我们就在install.sh文件中找到这个文件包所在的网络地址,然后打开这个网址,发现确实没有3.0.4-1这个版本,然后我选择了3.2.1-1这个版本。
更改命令为:
sudo dpkg -i
libglfw3*_3.2.1-1_*.deb
运行,发现还是找不到文件。
我们再回到刚刚的install.sh文件,发现文件中很多路径的名字还是3.0.4这个文件名,我们把所有的都进行更正,更正为我们使用的3.2.1.
再次运行,成功安装GLFW3.
问题2:
测试驱动时:指示灯未出现变色,不过不影响,我们忽略它。
输入运行./bin/Protonect命令时(注意这里要在/liffreenect/build文件路径下)出现下列错误:
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
[Info] [Freenect2Impl] enumerating devices...
[Info] [Freenect2Impl] 10 usb devices connected
[Error] [Freenect2Impl] failed to open Kinect v2: @3:5
LIBUSB_ERROR_ACCESS Access denied (insufficient permissions)
[Info] [Freenect2Impl] found 0 devices
no device connected!
解决方案:
设定执行:
sudo cp../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/
然后重新插拔Kinect2.
问题完美解决。