这里默认你装好了kinect2驱动libfreenect2 和 ROS包 iai_kinect2
libfreenect2 和iai_kinect2安装请参考:http://www.ncnynl.com/archives/201703/1439.html
kinetic2标定我参考的这个:https://github.com/code-iai/iai_kinect2/tree/master/kinect2_calibration#calibrating-the-kinect-one
这种标定方法是先保存(record)一些图片,然后再计算标定(calibrate)。
需要标定四样东西:color彩色图像 ir红外图像 sync帧同步 depth深度图像
前期准备需要打印好你的标定板,在上面第二个网址里下载
你爱选哪种就哪种,我选的9x11x0.02,打印好了贴在硬板上。注意那个乘号就是小写的x。注意后面运行命令时要改成你标定板一样的尺寸。9x10表示白色块和黑色块的相接的点或边,数过的黑白块不能重复数,宽上有9个黑白相接处,长上有11个。那个0.02还不知道什么意思,自己去查。因为要事先保存图片,所以自己建立一个了文件吧,不然很乱的
mkdir ~/kinect_cal_data
cd ~/kinect_cal_data
待会你按空格键保存时,就会保存到你的命令运行的当前目录里面:
ESC
,q
: QuitSPACE
,s
: Save the current image for calibrationl
: decrease min and max value for IR value rageh
: increase min and max value for IR value rage1
: decrease min value for IR value rage2
: increase min value for IR value rage3
: decrease max value for IR value rage4
: increase max value for IR value rage
标定后的文件需要放到/home/robot/catkin_ws/src/iai_kinect2/kinect2_bridge/data这个文件夹里
开始标定:命令依次运行下去
调整帧率:
rosrun kinect2_bridge kinect2_bridge _fps_limit:=2
运行这条命令后注意看看设备串口号,我的设备串口号是这样的:
[ INFO] [Kinect2Bridge::initDevice] device serial:034011551247
在我的/home/robot/catkin_ws/src/iai_kinect2/kinect2_bridge/data的文件夹里建立一个文件夹,取名叫 034011551247
标定彩色摄像头:
rosrun kinect2_calibration kinect2_calibration chess9x11x0.02 record color
按几次空格键记录
rosrun kinect2_calibration kinect2_calibration chess9x11x0.02 calibrate color
会生成calib_color.yaml 文件
标定红外:
rosrun kinect2_calibration kinect2_calibration chess9x11x0.02 record ir
按几次空格键记录
rosrun kinect2_calibration kinect2_calibration chess9x11x0.02 calibrate ir
会生成calib_ir.yaml 文件
帧同步标定:
rosrun kinect2_calibration kinect2_calibration chess9x11x0.02 record sync
按几次空格键记录
rosrun kinect2_calibration kinect2_calibration chess9x11x0.02 calibrate sync
会生成calib_pose.yaml 文件
深度标定:
rosrun kinect2_calibration kinect2_calibration chess9x11x0.02 calibrate depth
会生成calib_depth.yaml 文件
然后再把calib_color.yaml calib_ir.yaml calib_pose.yaml calib_depth.yaml拷贝到/home/robot/catkin_ws/src/iai_kinect2/kinect2_bridge/data/034011551247文件夹中
标定搞定。
运行 roslaunch kinect2_bridge kinect2_bridge.launch
rosrun kinect2_viewer kinect2_viewer
看看效果。什么样的效果才算标定好了咧,这个我也不太清楚,运行上面两个命令,放一只手进去,试试看看手的彩色图像跟深图像是否重合。这个得对此标定,对比结果。另外我的机器在 rosrun kinect2_viewer kinect2_viewer命令后,后面有几次不出现图像框,我是重启计算机后,就能出现图像框了,不知道什么原因,希望大神留言,谢谢!