kinect内参数的标定
在标定之前,需要确保ROS中安装有OpenNI驱动包和相机标定包,同时下载一个标准的6X8的棋盘格,如下图:
标定步骤:
1、运行下边指令启动OpenNI驱动包,同时开启Kinect的RGB和深度图像流:
roslaunch openni_launch openni.launch
- 1
- 1
2、在camera_calibration功能包中运行cameralibrator.py 文件来启动相机标定程序,并在后面列出RGB图像话题、相机话题、棋盘格大小和每个方格尺寸大小,在这里我用的是8X6 单个方格边长为0.024
rosrun camera_calibration cameracalibrator.py image:=/camera/rgb/image_raw camera:=/camera/rgb --size 8x6 --square 0.024
- 1
- 1
3、为了更准确的完成标定,需要将棋盘格分别在现场内完成上下前后移动和倾斜棋盘格。上图是我用A4纸做的!最好用大一点的A3大的图也是可以的!
4、在移动过程中,可以看到标定窗口右侧的三条杠的长度在增加,当标定按钮CALIBRATE变亮,就代表已经采集到了足够的数据。按下后如下图:
点击CALIBRATE按钮后标定程序开始自动计算摄像头的标定参数,这个过程需要等待一段时间!千万不要关闭!
参数完成后界面恢复,且在终端会有标定结果显示:
点击界面中的SAVE按钮,标定参数会被保存到默认的文件夹下,并在终端中看到如下图路径:
点击COMMIT按钮,提交数据并退出程序。在、tmp文件夹中就可以看到标定结果的压缩文件calibrationdata.gz 解压后就可找到ost.yaml文件。
在kinect中除了有开一个RGB摄像头外还有一个红外深度摄像头,两个摄像头需要分别标定:
和前边方法类似红外标定用下边指令:
rosrun camera_calibration cameracalibrator.pyimage:=/camera/ir/image_raw camera:=/camera/ir --size 8x6 --square 0.108
- 1
- 1
有一点必须注意,在拍摄红外照片时,要用黑胶带(或其他东西)将Kinect的红外发射器完全挡住,否则其发出的散斑会在红外照片中产生很多亮点,不利于棋盘角点的检测。
参考:https://blog.csdn.net/zkl99999/article/details/49307703
文章来源: blog.csdn.net,作者:小小谢先生,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/xiewenrui1996/article/details/90111610
- 点赞
- 收藏
- 关注作者
评论(0)