手眼标定:九点标定、十二点标定、OpenCV 手眼标定

因为一直使用6轴协作机器人,且主要应用是三维视觉,平常的手眼标定基本都是基于OpenCV来计算的,听说有九点标定和十二点标定,顺便了解下。

目录

  • 1.九点标定
    • [1.1 基本原理](#1.1 基本原理)
    • [1.2 关于最小二乘法](#1.2 关于最小二乘法)
    • [1.3 具体示例](#1.3 具体示例)
  • 2.十二点标定
  • [3.OpenCV 手眼标定](#3.OpenCV 手眼标定)
  • [4.九点标定与 OpenCV 手眼标定的区别](#4.九点标定与 OpenCV 手眼标定的区别)

1.九点标定

1.1 基本原理

九点标定的数学原理主要涉及通过已知的标定板上的九个特定点,计算相机坐标系与机器人坐标系之间的变换关系。具体步骤如下:

  • 1.坐标系描述:

    机器人坐标系:由机器人臂的末端执行器(例如机械臂或抓取工具)所定义的坐标系。

    相机坐标系:由相机的传感器和视场所定义的坐标系。

    标定板坐标系:由标定板上的九个已知特征点所定义的坐标系。

  • 2.变换矩阵:

    在九点标定中,我们希望通过机器人坐标系中的已知位置点(标定板在机器人坐标系中的位置)与相机坐标系中的观测点(标定板的图像特征点)之间的关系来求解变换矩阵。该变换矩阵包括旋转矩阵(R)和平移向量(T)。

    对于每个标定板的姿态,机器人运动到不同的配置点(例如不同的角度和位置),同时采集图像。每个图像中的特征点位置提供了一个映射关系。

    通过一系列最小二乘法求解这些位置关系,可以得到相机与机器人之间的空间变换关系。

  • 3.数学模型:

    假设相机和机器人坐标系之间的关系是一个刚性变换,通常由以下公式表示:

  • 4.优化与求解:

    在九点标定中,通过多次测量机器人臂末端的不同姿态和相机所拍摄的图像,我们将多组数据输入到优化算法(通常是最小二乘法)中,从而求解出旋转矩阵和平移向量。

    这些参数最终构成了从机器人坐标系到相机坐标系的完整变换矩阵。

1.2 关于最小二乘法

1.3 具体示例

2.十二点标定

十二点标定是九点标定的扩展,核心思想一致,但使用更多标定点(12 个),优势包括:

3.OpenCV 手眼标定

关于这部分的原理和应用可以参考手眼标定系列的博文,这里不再阐述。
https://blog.csdn.net/qq_45445740/article/details/122170029

4.九点标定与 OpenCV 手眼标定的区别

  • 九点标定:聚焦二维平面变换,通过多点拟合简单模型,适用于低维度校准。
  • 十二点标定:增加点数提升复杂模型拟合能力,适用于精度要求更高或存在非线性因素的场景。
  • OpenCV 手眼标定:解决三维空间中机器人与摄像机的坐标转换,需多组位姿数据,数学模型更复杂,应用于机器人视觉等场景。
相关推荐
清醒的兰1 天前
OpenCV 图像像素的读写操作
人工智能·opencv·计算机视觉
jndingxin1 天前
OpenCV CUDA模块图像处理------颜色空间处理之GPU 上交换图像的通道顺序函数swapChannels()
图像处理·人工智能·opencv
jndingxin1 天前
OpenCV CUDA模块图像处理------颜色空间处理之拜耳模式去马赛克函数demosaicing()
图像处理·人工智能·opencv
jndingxin1 天前
OpenCV CUDA模块图像处理------颜色空间处理之颜色空间转换函数cvtColor()
图像处理·人工智能·opencv
闭月之泪舞1 天前
OpenCv高阶(十八)——dlib人脸检测与识别
人工智能·opencv·计算机视觉
jndingxin1 天前
OpenCV CUDA模块图像处理------颜色空间处理之用于执行伽马校正(Gamma Correction)函数gammaCorrection()
图像处理·人工智能·opencv
闭月之泪舞1 天前
OpenCv高阶(十三)——人脸检测
人工智能·opencv·计算机视觉
whoarethenext1 天前
c/c++的opencv双边滤波
c语言·c++·opencv·双边滤波
jndingxin2 天前
OpenCV CUDA模块图像过滤------创建一个 Sobel 滤波器函数createSobelFilter()
人工智能·opencv·计算机视觉
那雨倾城2 天前
使用 OpenCV 实现哈哈镜效果
人工智能·python·opencv·计算机视觉