安装
安装iai_kinect2之前先安装kinect v2的驱动libfreenect2
,相关教程看这篇博客
之前写过安装iai_kinect2的教程,但是该库在进行kinect v2标定的时候会出现下面的问题,详情看issue
When I run: rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate sync, it displays [INFO] [CameraCalibration::calibrateExtrinsics] re-projection error: 6.92399e-310
[INFO] [CameraCalibration::calibrateExtrinsics] Rotation:
[]
[INFO] [CameraCalibration::calibrateExtrinsics] Translation:
[]
[INFO] [CameraCalibration::calibrateExtrinsics] Essential:
[]
[INFO] [CameraCalibration::calibrateExtrinsics] Fundamental:
[]
When I run: rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate depth
Error:
[INFO] [DepthCalibration::calibrate] frame: ./0000_depth.png
terminate called after throwing an instance of'cv::Exception'
what(): OpenCV(4.2.0) ../modules/calib3d/src/calibration.cpp:259: error: (-5:Bad argument) Input argument is not a valid matrix in function'cvRodrigues2'
Abandoned (core dumped)
该issue中给出能够在opencv4.x成功标定的fork仓库,所以下面直接安装该仓库
cd ~/catkin_ws/src/
git clone https://github.com/paul-shuvo/iai_kinect2_opencv4.git
cd iai_kinect2_opencv4
rosdep install -r --from-paths .
cd ~/catkin_ws
catkin_make -DCMAKE_BUILD_TYPE="Release"
编译的时候会报错,下面列出解决办法
错误1:Unable to find either executable ‘empy’ or Python module ‘em’… try installing the package ‘python3-empy’
这是因为catkin找的python版本为anaconda下面的版本,所以需要改为指定采用下面的命令
catkin_make -DCMAKE_BUILD_TYPE="Release" -DPYTHON_EXECUTABLE=/usr/bin/python3
错误2:pcl_conversions build error: PCL requires C++14 or above
在下面对应的包里面的Cmakelist.txt 的第一行加上set( CMAKE_CXX_STANDARD 14)
再重新编译
验证
cd ~/catkin_ws
source devel/setup.bash
roslaunch kinect2_bridge kinect2_bridge.launch
现在就可以成功运行了(如果不成功开一个新窗口运行一下roscore试试?),现在只是搭好桥bridge,还需要通过以下命令看到相机画面
rosrun kinect2_viewer kinect2_viewer kinect2 sd cloud