• 3D手眼标定之原理(3D Vision Roboot Eye-to-hand Calibration)


    3D Vision Roboot Eye-to-hand Calibration
    说明: 3D视觉机器人是配备有3D视觉相机的机械臂,能够观测场景的3D信息,以3D点云的形式交给机械臂,可以用于物体抓取、无序分拣、装配、打磨等工作。手眼标定是3D视觉机器人的前导工作,其意义是将场景信息从相机变换至机械臂坐标系中,其目标是获得相机到机械臂基座的空间变换矩阵


    一、标定方法分为三步:

    在这里插入图片描述

    二、 眼在手外示意图:

    在这里插入图片描述

    三、眼在手外的特点和目标

    特点:
    相机被固定在场地上,机械臂的基座也同样被固定在场地上,则可得出相机与机械臂的基座在空间变换上是固定的,或者说是没有想对空间变换的。

    在这里插入图片描述

    四、标定步骤

    第一步、获得标定板到相机的空间变换矩阵

    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述


    第二步:计算相机到机械臂基座的空间变换矩阵:

    在这里插入图片描述

    第三步:进度提升的方法

    说明:手眼标定的精度是3D视觉机器人的重要和基础指标,直接影响后续工作的展开。手眼标定的精度与拍照数量、机械臂姿态的丰富程度等因素有关,考虑有限的样本容量,手眼标定的精度往往不会很高。为了提升标定精度,本工作在手眼标定完成后,使用了ICP(Iterative
    Closest Points)方法。实验中,这套方法将定位精度从10mm量级提升至1mm量级

    4.3.1、方法:使用ICP

    ICP(Iterative Closest Point,迭代最近点)算法一种迭代计算方法,主要用于计算机视觉中深度图像的精确拼合,通过不断迭代最小化源数据与目标数据对应点来实现精确地拼合。已经有很多变种,主要热点是怎样高效、鲁棒的获得较好地拼合效果

    4.3.2、原理:

    在机械臂的基坐标系下,机械臂的基坐标系和3D相机的坐标系是一个刚体变换的关系,他们之间没有缩放存在,即他们不是彷射变换;我们的所有标定,其实就是来求解此空间变换矩阵(AX=XB)

    4.3.3、方案二:

    我只要知道在相机坐标系下若干点的坐标,然后知道在机械臂基坐标系下若干点的坐标,那么我们可以通过这两组坐标来使用求解空间变换的方法,获得这个空间变换。
    我们常用的方法包括ICP: Iterative Closest Point,可以用求得的空间变换矩阵前提下,为需要两套场景点和模板点,他们之间的空间变换关系一定是刚体变换:Rigid Transformation,
    P1-P2,可以用ICP求解

    4.3.4.1、思考1:第一步和第二步为什么不用ICP?

    ICP有初始值的限制:P1\P2这两套点之间的空间变换一定要比较小,换句话说ICP对迭代初值非常敏感,如果初值P1和P2空间变换比较大,那么ICP可能会收敛至一个局部最优解,而非曾解,导致求解失败;这就是为什么在第一步和第二步时不使用ICP。

    4.3.4.2、思考2:那么为什么在第三步又使用ICP呢?

    因为我们经历过第一步,第二步之后,我们已经得到了一个空间变换矩阵,这个空间变换矩阵虽然它有误差,但是它已经接近增值了,这时候就可以作为我们ICP计算的一个初值来使用,这就是最初的动机。

    4.3.5、场景示意图

    在这里插入图片描述

    4.3.6、机械臂基座标下的坐标采集方法:

    在机械臂末端法兰上安装一个已知尺寸的探针,然后用探针触碰每一个交点,那么机器人的示教器上就会显示工具端所在的位置,在机械臂基座标系下的位置

    此时我们获得了同一个交点在相机和在基座标系下的坐标
    在这里插入图片描述

    五、扩展

    眼在手上标定的是相机和机械臂末端的位置关系,我理解的步骤如下:
    第一步,固定标点板;
    第二步,先用相机获取标定板角点在相机坐标系下的三维坐标,这个和眼在手外的操作一样;
    第三步,记录上一步机械臂末端的位置信息(包括【x,y,z,rx,ry,rz】6维信息);
    第四步,用机械臂末端的尖端去获取标定板角点在机械臂基地坐标系的坐标;
    第五步,利用第三步获取的位置信息把第二步获取的坐标转化成机械臂末端坐标系下的坐标(眼在手外不需要这步);
    第六步,利用第五步获取的坐标和第二步获取的坐标进行ICP计算,即可得到相机与机械臂末端位置关系描述旋转、平移矩阵。

  • 相关阅读:
    图像相似度对比分析软件,图像相似度计算方法
    【MLT】MLT多媒体框架生产消费架构解析(三)
    [附源码]计算机毕业设计基于springboot的汽车租赁系统
    C语言 指针——函数指针
    systemui状态栏添加新图标
    使用Java实现一个简单的贪吃蛇小游戏
    关于射频同轴连接器的功率容量探讨
    条件判断指令分析 || JVM类加载与字节码技术
    从功能测试到自动化测试你都知道他们的有缺点吗?
    Vulkan与OpenGL对比——Vulkan的全新渲染架构
  • 原文地址:https://blog.csdn.net/qq_58220938/article/details/127954673