概述
kinect1 标定:
http://wiki.ros.org/openni_launch/Tutorials/IntrinsicCalibration
kinect2标定
作者的github介绍得很详细,记录下来标定过程
https://github.com/code-iai/iai_kinect2/tree/master/kinect2_calibration
tips:
!!标定注意事项:标定默认的是hd的分表率,一般会选择中等大小的qhd分辨率,需要在kinect2_calibration/kinect2_calibration.cpp的1311行中将K2_TOPIC_HD改为K2_TOPIC_QHD,然后重新编译本环境
网上的这些教程不可信!不需要改任何参数,目前的calibration版本不需要认为调整,存的参数文件为K2_TOPIC_HD下的参数,但在用qhd或sd分辨率时,会自动转换为相应的内参(用QHD校正了很多次,看camera_info的出来的结论!)
棋盘纸张贴得尽量平整
检查黑白焦点之间的距离应该是3cm
建议在图像的所有区域,不同方向,至少两个距离处拍摄图像,尽量多拍
启动kinect2_bridge,以较少帧启动,因为用CPU
rosrun kinect2_bridge kinect2_bridge _fps_limit:=2
记录彩色相机的图像
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 record color
校准内参
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate color
出现:
[ INFO] [main] Start settings:
Mode: calibrate
Source: color
Board: chess
Dimensions: 5 x 7
Field size: 0.03
Dist. model: 5 coefficients
Topic color: /kinect2/hd/image_mono
Topic ir: /kinect2/sd/image_ir
Topic depth: /kinect2/sd/image_depth
Path: ./
[ INFO] [main] restoring files...
[ INFO] [CameraCalibration::readFiles] restoring file: 0000_color_points.yaml
[ INFO] [CameraCalibration::readFiles] restoring file: 0004_color_points.yaml
[ INFO] [CameraCalibration::readFiles] restoring file: 0003_color_points.yaml
[ INFO] [CameraCalibration::readFiles] restoring file: 0001_color_points.yaml
[ INFO] [CameraCalibration::readFiles] restoring file: 0002_color_points.yaml
[ INFO] [main] starting calibration...
[ INFO] [CameraCalibration::calibrateIntrinsics] calibrating intrinsics...
[ INFO] [CameraCalibration::calibrateIntrinsics] re-projection error: 2.88088
[ INFO] [CameraCalibration::calibrateIntrinsics] Camera Matrix:
[1496.698522292251, 0, 859.5156093059139;
0, 1458.096498744597, 441.7795101981544;
0, 0, 1]
[ INFO] [CameraCalibration::calibrateIntrinsics] Distortion Coeeficients:
[1.147910048205157, -3.766377179207665, 0.01281112103541489, -0.01054078216625002, -45.31708800833321]
记录红外相机的图像
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 record ir
校准红外内参
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate ir
同步记录深度相机和彩色相机照片校正外参
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 record sync
校准外参
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate sync
标定深度的时候出现:[ERROR] [DepthCalibration::compareDists] no distance sample data!
解决:
需要记录前面的三种数据,每种100张,需要至少两种距离
校准深度测量
rosrun kinect2_calibration kinect2_calibration chess5x7x0.03 calibrate depth
参看序列号,device serial:…….
序列号:019564365047
在kinect2_bridge / data / 中创建校准结果目录:
roscd kinect2_bridge/data
mkdir 019564365047
将以下文件从您的校准目录(〜/ kinect_cal_data)复制到您刚刚创建的目录中:
calib_color.yaml
calib_depth.yaml
calib_ir.yaml
calib_pose.yaml
重新启动kinect2_bridge
最后
以上就是忧虑眼睛为你收集整理的Ros环境下 kinect标定 -- ROS功能包的全部内容,希望文章能够帮你解决Ros环境下 kinect标定 -- ROS功能包所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复