Ubuntu下kinect v2相机标定

时间:2024-03-22 17:50:43

先决条件:

  1. KinectV2 驱动libfreenect2的安装,详细步骤参考 https://github.com/OpenKinect/libfreenect2
  2. 与ROS的桥接需要编译iai_kinect2。参考 https://github.com/code-iai/iai_kinect2 需要安装以下依赖库PCL,EIGEN, OPENCL等

相机内参标定:
github上有具体的步骤https://github.com/code-iai/iai_kinect2/tree/master/kinect2_calibration
开始标定之前呢还需要制作自己的标定板这里有不同模式的标定模板,任意选择其一就好。
chess5x7x0.03.pdf
chess7x9x0.025.pdf
chess9x11x0.02.pdf
需要注意的是先保存图片,然后用opencv来计算标定。需要标定四样东西:彩色图像(color)红外图像(ir)帧同步(frame)深度图像(depth)
因为需要保存图片,所以这里建议临时建立个文件夹,以免图片太多看起来很乱

mkdir ~/temp
cd ~/temp

标定后的文件需要放到/home/robot/catkin_ws/src/iai_kinect2/kinect2_bridge/data这个文件夹里
命令行解释:

rosrun kinect2_bridge kinect2_bridge _fps_limit:=2
启动kinect2_bridge,并且限制频率,当然电脑好的可以不限制直接使用
rosrun kinect2_bridge kinect2_bridge。另外运行这条命令后注意看看设备串口号,我的设备串口号是这样的:
Ubuntu下kinect v2相机标定
图中白线标出来的即是要记下来的串口号
在我的/home/robot/catkin_ws/src/iai_kinect2/kinect2_bridge/data的文件夹里建立一个文件夹,取名叫 (注意这是我的串口号,你应该写你自己的)

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/000636660547文件夹中标定搞定。

运行 roslaunch kinect2_bridge kinect2_bridge.launch
rosrun kinect2_viewer kinect2_viewer
尚在学习中,哪里不对请多多指正 [email protected],谢谢