kinect参数标定

网友投稿 568 2022-05-28

在标定之前,需要确保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内参数的标定

在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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MySQL源码学习(三) Group Commit
下一篇:第五章:C语言函数(中)
相关文章