一种统一两种机械臂手眼标定的方法及系统、终端与流程

文档序号:24937847发布日期:2021-05-04 11:29阅读:241来源:国知局
一种统一两种机械臂手眼标定的方法及系统、终端与流程

本发明涉及计算机视觉相机标定和机械臂控制领域,具体地,涉及一种统一两种机械臂手眼标定的方法及系统、终端。



背景技术:

相机标定是计算机视觉领域中的一个基本问题。相机标定分为相机内参标定和外参标定。内参标定的目的是得到相机本身的成像属性,外参标定的目的是得到相机的姿态和位置。手眼标定通常指在一个系统中有一个或者多个机械臂,一个或者多个相机,求解相机和机械臂之间的姿态关系的过程。

由视觉传感器与工业机器人机械手的位置关系可将视觉传感器系统分为:眼在手上(eye-in-hand)和眼在手外(eye-to-hand)两种形式。眼在手外是指视觉传感器(工业相机)安装在一个与机器人的基座及工作平面相对位置固定的位置,不随机器人手臂的移动而移动。在工业生产活动中,经常使用这种方式在一个较大的范围内对操作目标进行视觉定位并引导机器人进行操作。由于机器人工作平面固定与相机安装位置固定,所以只需获取图像平面和机器人工作平面的映射关系,来实现以视觉的方式对机器人进行视觉引导。相似的,眼在手上是指视觉传感器(工业相机)安装在机器人上。随着机器人移动而移动,通过标定得到相机和机械臂之间的位置姿态关系之后可以将相机坐标系下的物体坐标转换到机械臂坐标系下,指导机械臂完成一系列任务。

现有的相机标定技术一般只适用特定场景和特定安装方式,不够一般化,无法适应所有手眼标定的情况,灵活性比较差。

经检索,中国发明专利cn110103217a,公开了一种工业机器人手眼标定方法,提出了一种一般性的固定相机的手眼标定流程。通过最小二乘法求解相机和机械臂之间的关系。具体的,在工业机器人的工作平面区域内设置多个标定数据采集点并记录其在工业机器人基座标系中的坐标,然后将工业机器人的操作臂末端带动标定板绕操作机械臂末端的中心轴进行旋转,在此过程中控制相机采集不同位置标定板图像,从中提取标定点,根据不同位置标定标定板图像中同一标定点的坐标计算出圆心坐标作为机械臂末端在相机坐标系中的坐标,从而获取工业机器人坐标系与相机图像坐标系之间的映射,从而实现标定。

上述专利只适用特定场景和特定安装方式,只能标定眼在手外的机器人系统,不能对眼在手上的系统进行标定。不能满足对于有的机器人系统来说有可能会需要同时做眼在手上和眼在手外两种标定的需求。对于现有技术来说就需要使用两种不同的标定方式来完成任务。而且,该专利没有对数据采集和计算做模块化解耦设计,在设备或者算法有所更新的时候不够灵活,延展性差。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种统一两种机械臂手眼标定的方法及系统,通过标定板和移动机械臂,实现对固定相机或者安装在机械臂上的相机的手眼标定。

本发明的一个方面,提供一种统一两种机械臂手眼标定的方法,包括:

根据预定好的姿态边界点,规划机械臂在空间中运动的路径;

控制所述机械臂按照规划的所述路径,经过设定好的采样点,同时控制相机在每个采样点进行拍照;

分别计算出每一个采样点中相机和标定板之间的位姿关系,包括:计算每一个采样点中固定相机与对应标定板之间的位姿关系,以及安装在机械臂尖端上的相机与对应标定板之间的位姿关系,并得到标定板在相机坐标系下的位姿;

根据多组采样点中的机械臂位姿和所述标定板在相机坐标系下的位姿,求解相机和机械臂之间的位姿关系,其中,这里当相机是“眼在手外”的安装方式时,待求解的是相机和机械臂基座之间的位姿关系;当相机是“眼在手上”的安装方式时,待求解的是相机到机械臂尖端的位姿关系。

可选地,所述根据预定好的姿态边界点,规划机械臂在空间中运动的路径,包括:

通过差值在预定好的边界中均匀的采样指定数量的点;

按照角度空间的距离计算,生成依次通过这些点的最短路径。

可选地,所述分别计算出每一个采样点中相机和标定板之间的位姿关系,包括:

基于标定板上的特征识别出相机采集画面中特征的位置;

根据所述特征的位置,求解相机和标定板之间的位姿关系。

可选地,根据多组采样点中的机械臂位姿和所述标定板在相机坐标系下的位姿,求解相机和机械臂之间的位姿关系,包括:

对于每一个采样点,这里每一个采样点包含一组数据,为机械臂在某个采样姿态下获取的数据,这些数据为:首先获取对应机械臂尖端和机械臂基座之间的位姿关系,然后获取相机和标定板之间的位姿关系,分别得到矩阵b、矩阵a,其中:

对于眼在手外的情况:相机相对于机械臂基座固定,标定板固定在机械臂尖端,定义矩阵a为标定板到相机的外参矩阵,矩阵x为相机到机械臂基座的外参矩阵,矩阵y为标定板到机械臂尖端的外参矩阵,矩阵b为机械臂尖端到机械臂基座的外参矩阵;

在所有采集到的数据中x和y不会发生变化,是恒定的未知量,这里的x即需求解的相机和机械臂基座之前的位姿关系;对于每一个姿态,ax和yb均表示从标定板到机械臂基座的外参,利用多组ax=yb的关系则求解出x和y;

对于眼在手上的情况:相机固定在机械臂尖端,标定板和机械臂基座相对固定;定义矩阵a为标定板到相机的外参矩阵,矩阵x为相机到机械臂尖端的外参矩阵,矩阵y为标定板到机械臂基座的外参矩阵,矩阵b为机械臂基座到机械臂尖端的外参矩阵,其他与眼在手外的情况相同。

可选地,所述方法还进一步包括:对标定结果做自我检查。

具体的,所述对标定结果做自我检查,包括:

无论是眼在手上还是眼在手外的情况,对于每一个采集了的数据点通过计算axb-1得到基于x计算的y’;

将多组计算得到的y’与上述最终计算出的y做误差分析。

本发明的第二方面,提供一种统一两种机械臂手眼标定的系统,包括:

路径规划模块,该模块根据预定好的姿态边界点,规划机械臂在空间中运动的路径;

数据采集模块,该模块控制所述机械臂按照所述路径规划模块规划的路径,经过设定好的采样点,同时控制相机在每个采样点进行拍照;

标定计算模块,该模块根据所述数据采集模块的数据,分别计算出每一个采样点中相机和标定板之间的位姿关系,包括:计算每一个采样点中固定相机与对应标定板之间的位姿关系,以及安装在机械臂尖端上的相机与对应标定板之间的位姿关系,并得到标定板在相机坐标系下的位姿;

位姿关系计算模块,该模块根据所述标定计算模块的多组采样点中的机械臂位姿和所述标定板在相机坐标系下的位姿,求解相机和机械臂之间的位姿关系。

可选地,所述数据采集模块,包括:

机械臂控制模块,该模块与机械臂进行交互,向机械臂发送动作指令以及读取机械臂运行状态;

相机控制模块,该模块与相机进行交互,控制相机的工作,并设置相机参数,发送拍摄指令,以及读取相机拍摄的结果;

数据存储模块,该模块对所述机械臂控制模块和所述相机控制模块获取的机械臂数据、相机数据进行整理和存储,其中所述整理是指按照采样点的顺序对机械臂姿态信息进行序列化,对相机信息按照时间戳命名并且汇总。

可选地,所述标定计算模块,包括:

数据读取模块,该模块从存储设备中读取已采集的用于标定的原始数据,所述原始数据指每一个采样点中由相机采样的图片以及机械臂的姿态;

pnp模块,该模块根据所述数据读取模块读取的数据,计算标定板和相机之间的位姿;

手眼标定计算模块,该模块根据pnp模块获得的位姿,使用可选的多种算法进行手眼标定的计算,计算得到相机和机械臂之间以及相机和标定板之间的姿态关系。

本发明的第三方面,提供一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时可用于执行所述统一两种机械臂手眼标定的方法。

与现有技术相比,本发明实施例具有如下至少一种有益效果:

本发明上述的统一两种机械臂手眼标定的方法及系统、终端,使用同一个框架统一了眼在手上和眼在手外两种标定方式,不同的系统都可以通过本发明进行标定。

本发明上述的统一两种机械臂手眼标定的方法及系统、终端,在选择标定姿态的时候只需要人工预定姿态的边界,不需要人工定义每一个标定点位,大大减少了人工成本。

本发明上述的统一两种机械臂手眼标定的方法及系统、终端,通过模块化设计,解耦了标定采集和计算两个部分,这样在使用过程中对于硬件和求解算法都可以更加方便地更新,都可以比较方便的在系统中实现。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明一实施例统一两种机械臂手眼标定的方法流程图;

图2为本发明一实施例统一两种机械臂手眼标定的系统模块框图;

图3为本发明一较优实施例统一两种机械臂手眼标定的方法流程图;

图4为本发明一实施例标定板固定在机械臂尖端的位置关系原理图;

图5为本发明一实施例标定板和机械臂基座的位置关系原理图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。

图1为本发明一实施例统一两种机械臂手眼标定的方法流程图;如图1所示,该实施例中的方法,可以按照以下步骤实现:

s100,根据预定好的姿态边界点,规划机械臂在空间中运动的路径;

s200,控制机械臂按照规划的路径,经过设定好的采样点,同时控制对应安装方式下相机在每个采样点进行拍照;

s300,分别计算出每一个采样点中相机和标定板之间的位姿关系,包括:计算每一个采样点中固定相机与对应标定板之间的位姿关系,以及安装在机械臂尖端上的相机与对应标定板之间的位姿关系,并得到标定板在对应相机坐标系下的位姿;

s400,根据多组采样点中的机械臂位姿和标定板在相机坐标系下的位姿,求解对应安装模式下的相机和机械臂之间的位姿关系。

上述相机,“眼在手上”时为安装在机械臂尖端的相机,“眼在手外”时为固定相机。

本发明上述实施例的统一两种机械臂手眼标定的方法,可以同时适用于眼在手上和眼在手外两种标定方式,在选择标定姿态的时候只需要人工预定姿态的边界,不需要人工定义每一个标定点位,大大减少了人工成本。

当然,在其他预选实施例中,在上述s400得到位姿关系后,还可以进一步标定结果进行自我检查。

作为上述实施例的一个优选,根据预定好的姿态边界点,规划机械臂在空间中运动的路径,包括:通过差值采样在预定好的边界中均匀的采样指定数量的点;按照角度空间的距离计算,生成依次通过这些点的最短路径。这里差值算法包括但不限于在位姿空间中等间隔采样。

作为上述实施例的一个优选,分别计算出每一个采样点中相机和标定板之间的位姿关系,包括:基于标定板上的特征识别出相机采集画面中特征的位置;根据所述特征的位置,求解相机和标定板之间的位姿关系。

图4为本发明一实施例标定板固定在机械臂尖端的位置关系原理图;图5为本发明一实施例标定板和机械臂基座的位置关系原理图。参照图4和图5所示,上述实施例中,根据多组采样点中的机械臂位姿和所述标定板在相机坐标系下的位姿,求解对应相机和机械臂之间的位姿关系,具体操作时,对于每一个采样点,这里每一个采样点包含一组数据,为机械臂在某个采样姿态下获取的数据,这些数据为:首先获取对应机械臂尖端和机械臂基座之间的位姿关系,然后获取相机和标定板之间的位姿关系,分别得到矩阵b、矩阵a,其中:

对于眼在手外的情况:相机相对于机械臂基座固定,标定板固定在机械臂尖端,定义矩阵a为标定板到相机的外参矩阵,矩阵x为相机到机械臂基座的外参矩阵,矩阵y为标定板到机械臂尖端的外参矩阵,矩阵b为机械臂尖端到机械臂基座的外参矩阵;

在所有采集到的数据中x和y不会发生变化,是恒定的未知量,这里的x即需求解的相机和机械臂基座之前的位姿关系;对于每一个姿态,ax和yb均表示从标定板到机械臂基座的外参,利用多组ax=yb的关系则求解出x和y;

对于眼在手上的情况:相机固定在机械臂尖端,标定板和机械臂基座相对固定;定义矩阵a为标定板到相机的外参矩阵,矩阵x为相机到机械臂尖端的外参矩阵,矩阵y为标定板到机械臂基座的外参矩阵,矩阵b为机械臂基座到机械臂尖端的外参矩阵,其他与眼在手外的情况相同。

图2为本发明一实施例统一两种机械臂手眼标定的系统模块框图;参照图3所示,该实施例中的统一两种机械臂手眼标定的系统,包括:

路径规划模块,该模块根据预定好的姿态边界点,规划机械臂在空间中运动的路径;

数据采集模块,该模块控制机械臂按照路径规划模块规划的路径,经过设定好的采样点,同时控制相机在每个采样点进行拍照;这里数据采集模块会在当机械臂经过每个采样点的时候分别获取来自相机的数据和机械臂的实时姿态信息;

标定计算模块,该模块根据数据采集模块的数据,分别计算出每一个采样点中相机和标定板之间的位姿关系,包括:计算每一个采样点中固定相机与对应标定板之间的位姿关系,以及安装在机械臂尖端上的相机与对应标定板之间的位姿关系,并得到标定板在相机坐标系下的位姿;

位姿关系计算模块,该模块根据标定计算模块的多组采样点中的机械臂位姿和标定板在相机坐标系下的位姿,求解相机和机械臂之间的位姿关系。

本发明上述实施例的统一两种机械臂手眼标定的系统,可以同时适用于眼在手上和眼在手外两种标定方式,也就是,使用同一个框架统一了眼在手上和眼在手外两种标定方式,不同的系统都可以进行标定。在选择标定姿态的时候只需要人工预定姿态的边界,不需要人工定义每一个标定点位,大大减少了人工成本。

在上述实施例基础上,作为一优选方式,数据采集模块包括:机械臂控制模块、相机控制模块和数据存储模块,其中,机械臂控制模块与机械臂进行交互,向机械臂发送动作指令以及读取机械臂运行状态;相机控制模块与相机进行交互,控制相机的工作,并设置相机参数,发送拍摄指令,以及读取相机拍摄的结果;数据存储模块对机械臂控制模块和相机控制模块获取的机械臂数据、相机数据进行整理和存储。这样的模块划分将系统中的各个部分解耦开,易于对任意模块进行更新和升级,尤其当需要更换机械臂或者相机的时候,只需对对应模块进行修改就能快速应用到本系统中。

在上述实施例基础上,作为一优选方式,标定计算模块包括数据读取模块、pnp模块和手眼标定计算模块,其中:数据读取模块从存储设备中读取已采集的用于标定的原始数据;pnp模块根据数据读取模块读取的数据,计算标定板和相机之间的位姿;手眼标定计算模块根据pnp模块获得的位姿,使用可选的多种算法进行手眼标定的计算,计算得到相机和机械臂之间以及相机和标定板之间的姿态关系。相似地,将计算部分进一步解耦开,当针对不同的场景可以选择更加合适的解算方式而达到更好的效果。同时当有更新,效果更好的算法时,可以方便地应用于本系统。

本实施例中,pnp根据所述数据读取模块读取的数据,其中pnp算法包括但不限于epnp,iterative等用于求解pnp问题的算法,依据相机坐标系下标定特征点和图片中标定特征点之间的对应关系计算标定板和相机之间的位姿,这里,标定特征点视标定板而定,包括但不限于棋盘格标定板的角点或圆点标定版上的圆点中心。

本实施例中,手眼标定计算模块根据pnp模块获得的位姿,其中使用可选的多种计算axyb问题的算法,这里包括但不限于模块中已经预置的方法,任何解决axyb问题的算法均可使用。

当然,在其他优选实施例中,上述的统一两种机械臂手眼标定的系统还可以包含自我检查模块,用于对得到的标定结果进行自查。

图3为本发明一较优实施例统一两种机械臂手眼标定的方法流程图。如图3所示,该具体实施例中提供一个具体应用实例,是对六轴机械臂和两个相机组成的系统进行眼在手上和眼在手外标定。具体的,本实施例提供了对六轴机械臂进行手眼标定的方法,该方法通过路径规划,数据采集,标定计算等步骤实现了对机械臂的眼在手上与眼在手外的手眼标定。如图3所示,统一两种机械臂手眼标定的方法包括如下步骤:

步骤1:安装准备待进行手眼标定的设备(机械臂,相机,标定版,用于固定的装置等);

步骤2:设定数据采集所需要的姿态边界点,这里设置三维空间中的8个点,形成一个近似台体的三维空间区域;当然,其他实施例中也可以采用其他的方式设置三维空间区域;

步骤3:通过路径规划模块根据预定好的姿态边界点,自动选择可选数量的采样点形成运动路径,通过差值在边界空间中均匀的采样一百个点,计算生成遍历一百个点的最短路径;当然其他实施例中也可以选择其他数量的采样点;

步骤4:控制机械臂逐一经过每个采样点,同时控制相机在每个采样点进行拍照,并且储存;

步骤5:数据采集结束后通过pnp模块分别计算出每一个采样点中固定相机和安装在机械臂尖端上的相机与对应标定板之间的位姿关系;

步骤6:通过手眼标定计算模块根据多组采样点中的机械臂位姿(从机械臂读取)和标定板在相机坐标系下的位姿(步骤5计算得)求解相机和机械臂之间的位姿关系;

步骤7:在计算结束之后使用自检查模块对标定结果做一个初步的自我检查。

上述实施例中,步骤3可以包括如下步骤:

步骤3.1:通过差值在步骤2中预订的边界中均匀的采样指定数量的点;

步骤3.2:按照角度空间的距离计算并且生成依次通过这些点的最短路径;

上述实施例中,步骤5可以包括以下步骤:

步骤5.1:基于标定板(包括但不限于棋盘格标定板,圆点标定板,apriltags等)上的特征识别出相机采集画面中特征的位置;

步骤5.2:根据可选的一个或者多个pnp(包括单不限于epnp,dls,ippe等相关算法)求解算法方式求解相机和标定板之间的位姿关系;

上述实施例中,步骤6可以包括以下步骤:

步骤6.1:对于每一组采样点,首先读取对应机械臂尖端和机械臂基座之间的位姿关系;

步骤6.2:然后读取相机和标定板之间的位姿关系;

步骤6.3:对于眼在手外的情况:相机相对于机械臂基座固定,标定板固定在机械臂尖端(包括但不限于使用加抓加持或者使用固定机构固定)如附图4,定义矩阵a为标定板到相机的外参矩阵,矩阵x为相机到机械臂基座的外参矩阵,矩阵y为标定板到机械臂尖端的外参矩阵,矩阵b为机械臂尖端到机械臂基座的外参矩阵。其中,a,b矩阵分别从步骤6.2和步骤6.1中获得,在这里作为公式中的已知量;在所有采集到的数据中x和y不会发生变化,是恒定的未知量,这里的x就是我们希望求解的相机和机械臂基座之前的位姿关系。对于每一个姿态,ax和yb均表示从标定板到机械臂基座的外参,利用多组ax=yb的关系可以求解出x和y(包括但不限于使用基于kroneckerproduct,四元数等算法)。对于眼在手上的情况,相似的:相机固定在机械臂尖端,标定板和机械臂基座相对固定;如附图5定义矩阵a为标定板到相机的外参矩阵,矩阵x为相机到机械臂尖端的外参矩阵,矩阵y为标定板到机械臂基座的外参矩阵,矩阵b为机械臂基座到机械臂尖端的外参矩阵。其中,a,b矩阵分别从步骤6.2和步骤6.1中获得,在这里作为公式中的已知量;在所有采集到的数据中x和y不会发生变化,是恒定的未知量,这里的x就是我们希望求解的相机和机械臂基座之前的位姿关系。对于每一个姿态,ax和yb均表示从标定板到机械臂基座的外参,利用多组ax=yb的关系可以求解出x和y(包括但不限于使用基于kroneckerproduct,四元数等算法)。

上述实施例中,步骤7可以包括以下步骤:

步骤7.1:无论是眼在手上还是眼在手外的情况,对于每一个采集了的数据点我们可以通过计算axb-1来得到基于x计算的y’;

步骤7.2:将多组步骤7.1中计算得到的y’与步骤6中最终计算出的y做误差分析(包括但不限于换算成欧拉角或四元数后统计)。这里,误差分析的目的是衡量y所代表的位姿和y’所代表的位姿之间的不同,衡量方式包括但不限于计算y与y’之间的二阶泛数。

本发明上述实施例使用同一个框架统一了眼在手上和眼在手外两种标定方式,解决了现有技术只适用特定场景和特定安装方式不够一般化的问题,能适应所有手眼标定的情况。本发明通过对数据采集和计算做模块化解耦设计,在设备或者算法有所更新的时候灵活性好,延展性好,可以灵活更换标定流程中的不同组件,应对不同场景。

在本发明另一实施例中,还提供一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时可用于执行上述任一实施例中的统一两种机械臂手眼标定的方法。

需要说明的是,本发明提供的所述方法中的步骤,可以利用所述系统中对应的模块、装置、单元等予以实现,本领域技术人员可以参照所述系统的技术方案实现所述方法的步骤流程,即,所述系统中的实施例可理解为实现所述方法的优选例,在此不予赘述。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。上述各优选特征在互不冲突的情况下,可以任意组合使用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1