ROS-melodic安裝Kinect V2步驟和測試及問題解決


要想Kinect V2在ROS上運行。
需要libfreenect2 和 iai_kinect2兩個驅動

再用攝像頭前,要確保你安裝opencv  ,我用的版本是opencv-3.4.3

安裝教程網上比較多,這里就不啰嗦了

一.首先安裝libfreenect2

1.安裝依賴

sudo apt-get install build-essential cmake pkg-config libturbojpeg libjpeg-turbo8-dev mesa-common-dev freeglut3-dev libxrandr-dev libxi-dev 
sudo apt-get install libglfw3-dev sudo apt-get install libopenni2-dev sudo apt-get install libusb-dev
sudo apt-get install libturbojpeg0-dev

2.開始安裝

下載源碼

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

安裝

cd libfreenect2
mkdir build 
cd build
cmake ..
make
sudo make install

設定udev路徑

#設定udev rules:(填好自己libfreenect2的路徑)
sudo cp libfreenect2/platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/

3.測試

#運行build目錄下的例子
./bin/Protonect

 

二.安裝iai_kinect2驅動

1,首先進入ROS的工作空間下載源碼

 

cd ~/catkin_ws/src/
git clone https://github.com/code-iai/iai_kinect2.git
cd iai_kinect2 rosdep install -r --from-paths .

在這一步rosdep install -r --from-paths .會報錯

解決方法

rosdep install --from-paths ~/catkin_ws/src/iai_kinect2 --ignore-src -r

然后開始編譯

cd ~/catkin_ws           
catkin_make -DCMAKE_BUILD_TYPE="Release" #編譯 #如果沒有添加永久環境變量,則每次都需要source以下 source ~/catkin_ws/devel/setup.bash #添加ros永久環境變量 echo "source ~/catkin_ws/devel/setup.sh" >> ~/.bashrc

我在編譯時候出現了問題,如下

 
/home/zztsj/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp: In member function ‘void Kinect2Bridge::initCompression(int32_t, int32_t, bool)’:
/home/zztsj/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:465:28: error: ‘CV_IMWRITE_JPEG_QUALITY’ was not declared in this scope compressionParams[0] = CV_IMWRITE_JPEG_QUALITY; ^~~~~~~~~~~~~~~~~~~~~~~ /home/zztsj/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:465:28: note: suggested alternative: ‘CV_WRITE_SEQ_ELEM’ compressionParams[0] = CV_IMWRITE_JPEG_QUALITY; ^~~~~~~~~~~~~~~~~~~~~~~ CV_WRITE_SEQ_ELEM /home/zztsj/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:467:28: error: ‘CV_IMWRITE_PNG_COMPRESSION’ was not declared in this scope compressionParams[2] = CV_IMWRITE_PNG_COMPRESSION; ^~~~~~~~~~~~~~~~~~~~~~~~~~ /home/zztsj/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:469:28: error: ‘CV_IMWRITE_PNG_STRATEGY’ was not declared in this scope compressionParams[4] = CV_IMWRITE_PNG_STRATEGY; ^~~~~~~~~~~~~~~~~~~~~~~ /home/zztsj/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:470:28: error: ‘CV_IMWRITE_PNG_STRATEGY_RLE’ was not declared in this scope compressionParams[5] = CV_IMWRITE_PNG_STRATEGY_RLE; ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/zztsj/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp: In member function ‘void Kinect2Bridge::initCompression(int32_t, int32_t, bool)’: /home/zztsj/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:465:28: error: ‘CV_IMWRITE_JPEG_QUALITY’ was not declared in this scope compressionParams[0] = CV_IMWRITE_JPEG_QUALITY; ^~~~~~~~~~~~~~~~~~~~~~~ /home/zztsj/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:465:28: note: suggested alternative: ‘CV_WRITE_SEQ_ELEM’ compressionParams[0] = CV_IMWRITE_JPEG_QUALITY; ^~~~~~~~~~~~~~~~~~~~~~~ CV_WRITE_SEQ_ELEM /home/zztsj/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:467:28: error: ‘CV_IMWRITE_PNG_COMPRESSION’ was not declared in this scope compressionParams[2] = CV_IMWRITE_PNG_COMPRESSION; ^~~~~~~~~~~~~~~~~~~~~~~~~~ /home/zztsj/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:469:28: error: ‘CV_IMWRITE_PNG_STRATEGY’ was not declared in this scope compressionParams[4] = CV_IMWRITE_PNG_STRATEGY; ^~~~~~~~~~~~~~~~~~~~~~~ /home/zztsj/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:470:28: error: ‘CV_IMWRITE_PNG_STRATEGY_RLE’ was not declared in this scope compressionParams[5] = CV_IMWRITE_PNG_STRATEGY_RLE; ^~~~~~~~~~~~~~~~~~~~~~~~~~~

查閱資料好像是版本不對應的問題,用oopencv2可以成功,用opencv3的話需要指定安裝路徑,我的是默認安裝的,就出現了一系列沒有定義的問題

我的解決方法,沒有安裝過opencv3,而是改了一種定義方式

將CV_IMWRITE_JPEG_QUALITY;
改為cv::IMWRITE_JPEG_QUALITY;

剩下的改法相同,改完就編譯好了,

2.測試

roslaunch kinect2_bridge kinect2_bridge.launch    #運行kinect2自帶的launch

rosrun kinect2_viewer kinect2_viewer              #查看運行結果。

 

到此,驅動就安裝完成了。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM