眼在手上的手眼标定(matlab+python)实测精度±1mm
- 原理网上有很多教程,提供一个参考,就不详细阐述了,这里主要记录一下手眼标定的过程和代码。
- 源码:https://gitee.com/Tavox/hand-eye-calibrate
一、准备工作
- 材料准备:标定板、相机、机械臂;
- 做相机标定,同时记录拍照位机械臂位姿(images/pos.txt),照片放在images下;(笔者提供了标定的图片及数据)
二、相机标定:
- 使用matlab自带的相机标定工具箱进行标定,标定结果会输出到matlab工作区,需要将其保存至本地;
data = toStruct(cameraParams);
save('cameraParams.mat', 'data');
三、手眼矩阵计算:
1. 运行hand_eye_calibrate.py;
- 读取cameraParams.mat中的标定结果,并写入配置文件camera.ini;
- 计算相机和机械臂末端变换矩阵至cam2end.txt;
2. 注意
- 需要注意机械臂位姿输出的格式,我这里用的输出格式为:
[x, y, z, rx, ry, rz]
四、如何使用手眼矩阵
- 提供了一个基于AprilTag的定位方案,见get_target_pose.py;