Ubuntu14.04下安裝opencv及ROS Indigo下配置Kinect V2
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.
問題完美解決。