Ubuntu18.04+ROS安装Kinect V2步骤及问题解决
笔者配置环境
Ubuntu18.04
ros-melodic
Kinect v2
本文参考:
boyhoodme 的博客:
https://blog.csdn.net/boyhoodme/article/details/89059888?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase
1.安装依赖
1 | sudo apt-get install build-essential cmake pkg-config libturbojpeg libjpeg-turbo8-dev mesa-common-dev freeglut3-dev libxrandr-dev libxi-dev |
1 | sudo apt-get install libglfw3-dev |
1 | sudo apt-get install libopenni2-dev |
1 | sudo apt-get install libusb-1.0-0-dev |
2.安装libfreenect2
在工作空间的src目录下打开终端下载libfreenect2
1 | git clone https://github.com/OpenKinect/libfreenect2.git |
1 | cd libfreenect2 |
1 | mkdir build |
1 | cd build |
1 | cmake .. |
1 | make |
1 | sudo make install |
若发生错误,根据下面报错1提示解决。
接着设定udev rules:(填好自己libfreenect2的路径,以下是例子)
在src工作空间的目录下
1 | sudo cp libfreenect2/platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/ |
然后重新插拔Kinect2。在刚才build目录下运行
1 | ./bin/Protonect |
此时可以打开摄像头,看到录像了。
下面是ROS上使用Kinect v2
安装iai_kinect2
需要安装iai_kinect2这个metapackage,在src工作空间的目录下克隆功能包
1 | cd ~/catkin_ws/src/ |
1 | git clone https://github.com/code-iai/iai_kinect2.git |
1 | cd iai_kinect2 |
1 | rosdep install -r --from-paths . |
在最后一个命令报错情况下参考链接:https://answers.ros.org/question/237451/run-rosdep-install-r-from-paths-error-when-i-install-iai_kinect2/
然后返回工作空间的目录下进行编译:
1 | cd ~/catkin_ws |
1 | catkin_make -DCMAKE_BUILD_TYPE="Release" |
运行测试Kinect
测试之前一定要进行编译一下,编译成功后再进行测试
1 | roslaunch kinect2_bridge kinect2_bridge.launch |
1 | rosrun kinect2_viewer kinect2_viewer |
报错以及解决办法:
报错1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ubuntu@ubuntu:~/Desktop/libfree/libfreenect2/build$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2 -- using tinythread as threading library -- Checking for modules 'libva;libva-drm' -- No package 'libva' found -- No package 'libva-drm' found -- Could NOT find TegraJPEG (missing: TegraJPEG_LIBRARIES TegraJPEG_INCLUDE_DIRS TegraJPEG_L4T_OK TegraJPEG_DRIVER_OK TegraJPEG_WORKS) CMake Error at /usr/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find TurboJPEG (missing: TurboJPEG_INCLUDE_DIRS TURBOJPEG_WORKS) Call Stack (most recent call first): /usr/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:377 (_FPHSA_FAILURE_MESSAGE) cmake_modules/FindTurboJPEG.cmake:66 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) CMakeLists.txt:237 (FIND_PACKAGE): -- Configuring incomplete, errors occurred! See also "/home/ubuntu/Desktop/libfree/libfreenect2/build/CMakeFiles/CMakeOutput.log" |
解决办法:
1 | sudo apt-get install libturbojpeg0-dev |
然后删掉文件夹libfreenect2目录下的build文件夹,重新建build然后cmake . .
1 2 3 4 5 | mkdir build cd build cmake .. make sudo make install |
报错2:
1 2 3 4 5 6 7 | ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: kinect2_viewer: Cannot locate rosdep definition for [kinect2_bridge] kinect2_calibration: Cannot locate rosdep definition for [kinect2_bridge] kinect2_bridge: Cannot locate rosdep definition for [kinect2_registration] Continuing to install resolvable dependencies... All required rosdeps installed successfully |
解决办法:
可以忽略,如果不想忽略,
参考链接:https://answers.ros.org/question/237451/run-rosdep-install-r-from-paths-error-when-i-install-iai_kinect2/
1 | rosdep install --from-paths ~/catkin_ws/src/iai_kinect2 --ignore-src -r |
参考链接:
https://blog.csdn.net/boyhoodme/article/details/89059888?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase
https://answers.ros.org/question/237451/run-rosdep-install-r-from-paths-error-when-i-install-iai_kinect2/