我是靠谱客的博主 忧虑眼睛,最近开发中收集的这篇文章主要介绍Ros环境下 kinect标定 -- ROS功能包,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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功能包所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部