1. 程式人生 > >ROS下Kinect2的驅動安裝

ROS下Kinect2的驅動安裝

搭建環境:ubuntu 16.04+ROS kinetic

一.ubuntu連線kinect v2

1.下載libfreenect2原始碼

git clone https://github.com/OpenKinect/libfreenect2.git
cd libfreenect2

2.安裝編譯工具

sudo apt-get install build-essential cmake pkg-config

3.安裝libusb.版本必須 >= 1.0.20.

sudo apt-get install libusb-1.0-0-dev

4. 安裝TurboJPEG

sudo apt-get install libturbojpeg libjpeg-turbo8-dev

5.安裝OpenGL

  sudo apt-get install libglfw3-dev

6.安裝OpenCL(Intel GPU)

sudo apt-get install beignet-dev

7.安裝VAAPI

sudo apt-get install libva-dev libjpeg-dev

8.安裝OpenNI2

sudo apt-get install libopenni2-dev

9.編譯&測試

cd
.. mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2 make make install **設定udev rules:** sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/ 重新插拔Kinect的usb線, 執行lsusb,如果下面出現 Bus 002 Device 003: ID 045e:02c4 Microsoft Corp. Bus 002 Device 002: ID 045e:02d9 Microsoft Corp. 就說明連上了。 ./bin/Protonect

折騰了好久,一直出現裝置未見測到,是因為kinect資料線只能接usb3.0,即藍色usb口,桌上型電腦沒有。

二.iai-kinect2

1 建立工作空間

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ..
catkin_make

利用命令列從Github上面下載工程原始碼到工作空間內src資料夾內:

cd ~/catkin_ws/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"

在ROS kinetic 版本下編譯iai_kinect2會存在下面的錯誤:

/opt/ros/kinetic/include/opencv-3.2.0-dev/opencv2/flann/saving.h:113:63: error: exception handling disabled, use -fexceptions to enable
throw FLANNException("Invalid index file, cannot read");

出現這個問題的原因是kinetic版本預設使用的OpenCV-3.2。有一個編譯選項在以前版本是沒問題的,在OpenCV-3.2就有點問題。這就是-fexceptions
解決方法

把 iai_kinect2/kinect2_registration/CMakeLists.txt的66行刪掉:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")

但是如果前面libfreenect2你安裝的位置不是標準的兩個路徑下, 需要提供引數指定libfreenect2所在路徑:

catkin_make -Dfreenect2_DIR=path_to_freenect2/lib/cmake/freenect2 -DCMAKE_BUILD_TYPE="Release"

三. 在ROS中獲取Kinect2的資料

source ~/catkin_ws/devel/setup.bash
roslaunch kinect2_bridge kinect2_bridge.launch

在另外一個命令列中, 輸入rostopic list, 可以檢視到該節點發布出來的Topic, 還可以輸入
source ~/catkin_ws/devel/setup.bash
rosrun kinect2_viewer kinect2_viewer sd cloud, 來開啟一個Viewer檢視資料。

這裡寫圖片描述

這裡寫圖片描述