在进行相机标定之前先安装驱动libfreenect2 和ros下的IAI Kinect2 for OpenCV 4
安装Kinect v2驱动libfreenect2教程
安装ros下的IAI Kinect2 for OpenCV 4教程
为什么要安装IAI Kinect2 for OpenCV 4而不是官方的库,这是因为使用官方库进行标定会报错,无法进行标定,具体看上面教程
标定
标定过程按照官方教程中步骤进行,教程链接
下载标定板
我选择chess5x7x0.03,与教程保持一致,然后将它打印出来贴在一块平面上
标定步骤
- 开一个窗口启动bridge节点
rosrun kinect2_bridge kinect2_bridge _fps_limit:=2
- 新建存放标定数据的文件夹,可以根据实际情况修改路径
mkdir ~/kinect_cal_data; cd ~/kinect_cal_data
- 拍
color
图片rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 record color
,如果提示找不到包,就先source
一下,相应的source
路径要变换成你存放iai_kinect2_opencv4
的catkin_ws
子目录下,因为你保存标定数据的位置可能不在catkin_ws
子目录下,eg:source ~/catkin_ws/devel/setup.bash
。至少要拍100张照片 - 标定内参,
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate color
- 拍
ir
照片,rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 record ir
,至少要拍100张照片 - 标定
ir
相机内参,rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate ir
- 拍
color
和ir
同步照片,rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 record sync
,至少要拍100张照片 - 标定外参,
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate sync
- 标定深度测量,
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate depth
- 查看相机的设备号,
roslaunch kinect2_bridge kinect2_bridge.launch
,可以从输出的内容中看到设备号
- 在
kinect2_bridge/data
下新建该设备的标定文件,roscd kinect2_bridge/data; mkdir 008426164947
- 将
kinect2_cal_data
中calib_color.yaml
,calib_depth.yaml
,calib_ir.yaml
,calib_pose.yaml
复制到008426164947
中
验证
cd ~/catkin_ws
source devel/setup.bash
roslaunch kinect2_bridge kinect2_bridge.launch
# 新开窗口
rosrun kinect2_viewer kinect2_viewer kinect2 sd cloud