自己安装过程和中间的坑,可以参考
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)如果运行成功则会出现一个点云相机窗口