自己安装过程和中间的坑,可以参考

1.ros版本 ros-noetic,Ubuntu版本:20.04

        1.1ros安装完成后需要配置环境

//source /opt/ros/<distro>/setup.bash
//若为ros版本为noetic版本则为下述
source /opt/ros/neotic/setup.bash
//添加echo

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

        1.2 创建ros工作空间

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

2.安装libfreenect2:

官方地址:GitHub - OpenKinect/libfreenect2: Open source drivers for the Kinect for Windows v2 device

2.1 git 

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

2.2 安装build工具

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

2.3 安装libusb

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

2.4 安装urboJPEG

sudo apt-get install libturbojpeg0-dev

2.5 安装OpenGl

sudo apt-get install libglfw3-dev

2.6 安装OpenCl

sudo apt-get install beignet-dev  //Intel GPU 其他GPU按github上介绍

2.7 安装OpenNI

sudo apt-get install libopenni2-dev //可选,未尝试不安装,因此若不安装结果未知

2.8 进入libfreenect2文件夹,编译安装

mkdir build && cd build
cmake .. -DENABLE_CXX11=ON -DCMAKE_INSTALL_PREFIX=$HOME/freenect2 
/*后续要安装iai_kinect2,需要对上面一行进行修改
将cmake .. 修改为 cmake .. -DENABLE_CXX11=ON*/
make
make install

3. git iat_kinect2,并编译安装

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"

3.1 catkin_make 过程中会报错,

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

        在报错的文件目录中找到相应的CMakeLists.txt文件并修改,如kinect2_viewer.cpp报错,则   

        修改文件:iai_kinect2/kinect2_viewer/CMakeLists.txt

        在文件中添加如下内容(注意不要在IF...ELSE...ENDIF循环中添加):

set( CMAKE_CXX_STANDARD 14)

        (2)主要是OpenCv更新后带来的函数名称和头文件问题:

//文件:iai_kinect2/kinect2_calibration/src/kinect2_calibration.cpp
//CV_IMWRITE_PNG_COMPRESSION 未声明 
//修改为:cv::IMWRITE_PNG_COMPRESSION

//文件:iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp
//CV_IMWRITE_PNG_STRATEGY 未声明  
//修改为:cv::IMWRITE_PNG_STRATEGY

//CV_IMWRITE_PNG_COMPRESSION 未声明
//修改为:cv::IMWRITE_PNG_COMPRESSION

//CV_IMWRITE_JPEG_QUALITY 未声明
//修改为:cv::IMWRITE_JPEG_QUALITY

//下方为OpenCv颜色类更名导致:
//CV_BGR2GRAY 未声明
//修改为:cv::COLOR_BGR2GRAY

//CV_RGBA2BGR 未声明
//修改为:cv::COLOR_RGBA2BGR

//CV_BGRA2BGR 未声明
//修改为:cv::COLOR_BGRA2BGR

文件:iai_kinect2/kinect2_viewer/src/viewer.cpp
//CV_AA 未声明  
//添加头文件:#include "opencv2/imgproc/imgproc_c.h"

        3.2 连接相机,运行kinect2_bridge。

        如果电脑没有GPU(核显),则会报错< [Kinect2Bridge::start] Initialization failed! >,需要修改文件kinect2_bridge.launch,修改内容如下:

  (1)
<arg name="depth_method"      default="default"/>
修改为:
<arg name="depth_method"      default="opengl"/>
  (2)
<arg name="reg_method"        default="default"/>
修改为:
 <arg name="reg_method"        default="cpu"/>

 

3.3 试运行

(1)打开一个终端,运行下方代码:

(运行后会在最后一行显示:waiting for clients to connect)

roslaunch kinect2_bridge kinect2_bridge.launch

(2)打开一个新终端,运行:

rosrun kinect2_viewer kinect2_viewer kinect2 sd cloud
//可以输入--help查看其他启动选项
//rosrun kinect2_viewer kinect2_viewer kinect2 --help

(3)如果运行成功则会出现一个点云相机窗口 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐