标定的分类

Posted 手写不期而遇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了标定的分类相关的知识,希望对你有一定的参考价值。

关于标定的分类及说明(一)

现在工业机器视觉和计算机视觉大量应用标定算法,但是对于初学者来说,存在概念模糊,理论理解错误的现状,因此,需要对标定进行梳理,防止大家在学习过程中混淆各种标定概念。话不多话,上干货!!!!

标定的分类

如果你是视觉工程师,一定会听说过标定这个词,有手眼标定,相机标定,九点标定等等。但是对于控制工程师来说,需要研究轴组和机器人,这时候他们理解的标定指的是机器人本体标定,用户坐标系标定等等。很多时候视觉算法工程师和控制算法工程师在讨论标定问题时,会陷入死胡同。
其实,无论什么标定,标定的基本原理是建立多个坐标系之间的转换关系,从而求解出需要的坐标系坐标,将空间内物体或者工件统一在一个坐标系下,便于后面的工作开展。接下来,我通过一个思维导图来说明:
无论是视觉算法工程师还是控制算法工程师都会接触到的是手眼标定。手眼标定的实质是建立视觉像素坐标系与机器人或轴组基坐标系之间的关系。通过手眼标定,可以将工业相机看到的物体像素坐标转换到机器人坐标上,这样,机器人会根据转换后的坐标完成抓取等动作。在算法层面,AX=BA代表像素坐标系,通常指的是相机看到的像素坐标( Row,Column)B代表的是机器人基坐标系下的坐标(RobotsX,RobotsY)(当然,也可以自定义使用不同的坐标系显示坐标)。通过已知的像素坐标矩阵A和机器人坐标矩阵B,便可以求出X,接下来相机定位到的像素坐标乘以X矩阵,便可以得到机器人下的坐标,从而实现引导机器人抓取动作。值得注意的是,手眼标定不仅仅可以完成对平面物体的抓取,大量的机器人空间抓取工作还需要考虑位姿(位置和姿态)的变化。所以,3D视觉会求解出像素坐标下的物体三维位姿信息,也可以通过这个公式求解出机器人六自由度下的坐标值。很多论文中都提到了对X的解算方法,如最小二乘法,伪逆矩阵等等,其目的在于求取的X更加精确,这里网上论文和推导公式很多,不再赘述…

对于初学者而言,halcon提供的方法有vector_to_hom_mat2d,vector_to_hom_mat3d等等,opencv提供的方法有calibrateHandeye等。其本质都是对X的求解。在操作应用方面,根据相机和机械手的安装位置,分为眼在手上眼在手外两种方式。眼指的是工业相机,手便指的是机械手或者轴组。

手眼标定细分为九点标定十五点标定等。很多初学者会认为手眼标定就是九点标定,这是一个错误的概念。九点标定只是手眼标定的子概念,而且九点标定只能实现对平面物体的抓取和定位,无法做到三维空间的转换。九点标定操作上是机器人运动九次,同时记录同一个物体九次像素坐标和机器人坐标,便可以求解X,具体的操作方法大家可以搜索网上视频观看。其实,三个点便可以完成坐标系的转换,使用九点和十五点无非是增加参数,减少误差。九点标定可以用自己制作的标定板,方式灵活多样。通过上述概念,大家可以得知,手眼标定算法大量应用于机器人定位抓取场景。

相机标定不同于手眼标定,通常指的是相机畸变标定。在一个CCD相机中,存在像素坐标系,图像坐标系,世界坐标系等。由于光学成像的问题,相机存在枕型畸变和桶型畸变,相机的像素尺寸与实际物体尺寸并不是比例关系。而且相机的安装位置与实际的成像平面存在位姿偏差关系。通过相机标定可以将像素坐标下转化到世界坐标系,解算出相机的内参(相机本身的参数,如焦距,X,Y方向上的像元大小),外参(相机与实际平面之间的位姿关系)。在halcon中,提供了圆点标定板和蜂窝标定板两种,通过标定助手可以实现高精度标定,输出相机内外参。


在halcon中的标定助手及结果如下图,标定出需要的相机内参CameraParameters和相机外参CameraPose,再根据这两个参数将像素坐标转化为世界坐标image_points_to_world_plane,接下来便可以求解实际世界坐标系下两点距离,点线距离,两线夹脚等等…

在opencv中,使用棋盘格标定法进行相机标定,通过提取角点实现标定,具体标定原理和函数网上有大量资料,这里主要对初学者做梳理和区分,具体不再赘述…

无论是棋盘格还是圆点标定板,都是精密仪器加工出来的高精度标定板,标定板各圆点,棋盘格之间的距离精准到丝级,通过精密的标定板完成对相机畸变的矫正。标定板价格也从几十到几千元不等。其实,无论是棋盘格,还是圆点标定板,蜂窝标定板,都是通过计算角点,圆点之间的像素位置与标定板厂家提供的描述文件中世界物理尺寸等,求解出相机内外参数。得到精准的相机内外参数之后,便可以将像素坐标转化到实际的世界坐标,从而完成视觉测量等项目。因此,相机标定的应用场景主要在于视觉测量项目中,这一点和手眼标定是不一样的。

对于控制算法工程师而言,除手眼标定以外,还需要对机器人轴组或者机器人进行标定,一般不接触相机标定。首先是本体标定。机器人在安装好伺服电机,加工完成之后,设定的机器人末端的坐标不能简单看成各个连杆(大臂,小臂等)之间的运动学正解。因为设定的机器人硬件参数与加工后的机械参数存在误差。比如说,设定机器人或者轴组大臂长度是100mm,但加工好后是100.5mm,这样解算出的机器人运动学正解便存在误差,因此,需要对本体进行标定,弥补加工误差带来的影响。在操作使用上,使用激光跟踪仪,高精度视觉检测仪,拉线式标定仪器等。

机器人本体标定算法具体的有四部分:运动学建模,数据测量,参数辨识,误差补偿四步。这中间涉及到的算法有DH参数,机器人运动学等。对于生产机器人的厂家而言,出厂的机器人本体都要经过标定。一般使用机器人设备是不需要做本体标定的。

以上是关于标定的分类的主要内容,如果未能解决你的问题,请参考以下文章

相机畸变与标定

基于EmguCV的摄像机标定及矫正

相机标定之相机畸变模型

radar毫米波雷达静态障碍物识别及其相关资料(仿真生成标定运动估计静态障碍物识别)

radar毫米波雷达静态障碍物识别及其相关资料(仿真生成标定运动估计静态障碍物识别)

摄像机标定就是要获得摄像机的内外参数,但标定后获得的参数如何载入摄像机?谢谢