手眼标定:九点标定、十二点标定、OpenCV 手眼标定_机器视觉9点标定原理
因为一直使用6轴协作机器人,且主要应用是三维视觉,平常的手眼标定基本都是基于OpenCV来计算的,听说有九点标定和十二点标定,顺便了解下。
目录
- 1.九点标定
-
- 1.1 基本原理
- 1.2 关于最小二乘法
- 1.3 具体示例
- 1.4 海康VisionMaster中如何进行九点标定
- 2.十二点标定
- 3.OpenCV 手眼标定
- 4.九点标定与 OpenCV 手眼标定的区别
1.九点标定
https://blog.csdn.net/m0_49968063/article/details/143182382?spm=1001.2014.3001.5502
1.1 基本原理
九点标定的数学原理主要涉及通过已知的标定板上的九个特定点,计算相机坐标系与机器人坐标系之间的变换关系。具体步骤如下:
-
1.坐标系描述:
机器人坐标系:由机器人臂的末端执行器(例如机械臂或抓取工具)所定义的坐标系。
相机坐标系:由相机的传感器和视场所定义的坐标系。
标定板坐标系:由标定板上的九个已知特征点所定义的坐标系。 -
2.变换矩阵:
在九点标定中,我们希望通过机器人坐标系中的已知位置点(标定板在机器人坐标系中的位置)与相机坐标系中的观测点(标定板的图像特征点)之间的关系来求解变换矩阵。该变换矩阵包括旋转矩阵(R)和平移向量(T)。
对于每个标定板的姿态,机器人运动到不同的配置点(例如不同的角度和位置),同时采集图像。每个图像中的特征点位置提供了一个映射关系。
通过一系列最小二乘法求解这些位置关系,可以得到相机与机器人之间的空间变换关系。 -
3.数学模型:
假设相机和机器人坐标系之间的关系是一个刚性变换,通常由以下公式表示:
-
4.优化与求解:
在九点标定中,通过多次测量机器人臂末端的不同姿态和相机所拍摄的图像,我们将多组数据输入到优化算法(通常是最小二乘法)中,从而求解出旋转矩阵和平移向量。
这些参数最终构成了从机器人坐标系到相机坐标系的完整变换矩阵。
1.2 关于最小二乘法
1.3 具体示例
1.4 海康VisionMaster中如何进行九点标定
-
法一:通过标定板,将标定板放置于拍照点的视野内,可以一次性识别9个圆心的像素坐标值,然后让机械臂去戳这九个圆心,可以依次得到9个圆心的机械臂坐标值,根据这两组数据进行计算得到标定文件。
参考:https://blog.csdn.net/a491487001/article/details/126404211 -
法二:不通过标定板,将一个工件放置于拍照的视野内,计算这个工件的中心,机械臂编写一个标定运行的程序,移动九个点,工件保持不动,每到一个点就拍照识别一次工件的中心,记录每个点的工件中心像素坐标值和机械臂的坐标值(X、Y),根据这两组数据进行计算得到标定文件。
实际操作:https://www.douyin.com/video/7443955023274446090
https://www.bilibili.com/video/BV1VGgAzME8E/?spm_id_from=333.1391.0.0&vd_source=858585879400a2acad4b4d9a0283f25d 31分钟
2.十二点标定
十二点标定是九点标定的扩展,核心思想一致,但使用更多标定点(12 个)。
十二点标定是在九点标定的基础上,增加三个点的旋转,比如在九点标定的第五个点上面进行三次旋转。此时机械臂的输入需要增加一个旋转角度R
优势包括:
3.OpenCV 手眼标定
关于这部分的原理和应用可以参考手眼标定系列的博文,这里不再阐述。
https://blog.csdn.net/qq_45445740/article/details/122170029
4.九点标定与 OpenCV 手眼标定的区别
- 九点标定:聚焦二维平面变换,通过多点拟合简单模型,适用于低维度校准。
- 十二点标定:增加点数提升复杂模型拟合能力,适用于精度要求更高或存在非线性因素的场景。
- OpenCV 手眼标定:解决三维空间中机器人与摄像机的坐标转换,需多组位姿数据,数学模型更复杂,应用于机器人视觉等场景。
综上所述:
1.九点标定的目的是标定2维平面,可以借助模板匹配,移动9个不同的位置,或者给机器人的X和Y坐标,计算的是机器人平面和当前标定平面的转换关系,只能用于2D平面的抓取,9点标定是用于求解两个二维坐标系之间的仿射变换关系,只能知道XY。
2.十二点标定在九点标定的基础上增加3个旋转的点,这样可以在2D平面位置(X、Y)的基础上增加旋转角度的参数。
3.严格来说,九点和十二点都不是真正的手眼标定。