当前位置: 代码迷 >> 综合 >> Kinect V2 在ros-noetic使用(ubuntu20.04)
  详细解决方案

Kinect V2 在ros-noetic使用(ubuntu20.04)

热度:71   发布时间:2023-10-22 02:34:27.0

(1)安装opencv

      本文安装的为 opencv3.4.15,本来准备安装3.1.0,但是好像和之前已经安装的vtk8.2有冲突。源码安装,cmake  /make/install 走下来没问题。

(2)安装libfreenect2

特别注意,这理由与不同版本原因,不同的unbuntu的安装 有点差别,本文是20.04,如果是14.04,请直接参照 github 的readme 进行安装。

下载
git clone https://github.com/OpenKinect/libfreenect2.git
cd libfreenect2sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libusb-1.0-0-dev
sudo apt-get install libturbojpeg0-dev
sudo apt-get install libglfw3-dev其他可选的我都没有安装了opencl  opengl  cuda等,有需要自己安装。mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2
make
make install

安装完成,可以运行一下测试,连接摄像机

./bin/Protonect

(3)IAI Kinect2

这个需要在ros的工作目录下进行安装,但是好像和20.04有些问题,挺多报错的。

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"

如果你没错误,恭喜你完成安装。

(4)报错排除

(1)error: #error PCL requires C++14 or above

在对应的包里面的Cmakelist.txt 加入

  ADD_COMPILE_OPTIONS(-std=c++11 )ADD_COMPILE_OPTIONS(-std=c++14 )set( CMAKE_CXX_FLAGS "-std=c++11 -O3" )

(2)error: CV_IMWRITE_JPEG_QUALITY was not declared in this scope

CV_xxx 找不到的之类的报错
找到对应的报错文件,修改Crtl+F 先定位到:

修改

CV_xxx  修改为cv::xxx,例如CV_IMWRITE_JPEG_QUALITY修改为 cv::IMWRITE_JPEG_QUALITY 小写的cv奥!

(3)其中CV_BGR2GRAY 报错时,如果上面方法无效,先恢复原来的CV_XXX形式, error: CV_BGR2GRAY was not declared in this scope

添加头文件:

#include <opencv2/imgproc/types_c.h> 

(4)其中CV_AA 报错时,如果上面方法无效,先恢复原来的CV_XXX形式, error: CV_AA was not declared in this scope

添加头文件:

#include<opencv2/imgproc/imgproc_c.h>

完成这些应该可以编译通过了。

  相关解决方案