一种全局视觉坐标系和机械臂坐标系的映射方法及装置
技术领域
本发明涉及机器人信息处理领域,尤其涉及一种全局视觉坐标系和机械臂坐标系的映射方法及装置。
背景技术
随着社会发展和科技的进步,机器人在人类的生产生活中应用越来越广泛。机器人本身具有一套独立的世界坐标空间,而在实际的应用场景中,需要借助其他设备建立得到作业空间的世界坐标系,两套坐标系之间是相互独立的,当想要机器人自动化的完成一些特定需求,则需要将两个坐标系进行统一。
目前,机器人坐标系映射转换算法可以通过采样两个坐标系中的4个空间公共点,但是其需要人工进行建模和测量,不可避免的存在人为的误差,非常低效。
发明内容
本发明实施例提供了一种全局视觉坐标系和机械臂坐标系的映射方法及装置,能够降低映射误差和提高计算转换效率。
根据本发明的一个方面,提供一种全局视觉坐标系和机械臂坐标系的映射方法,包括:
S1:获取机械臂末端上的目标球的球心在机械臂坐标系下的第一球心坐标;
S2:对所述目标球进行图像识别,通过球检测算法对得到的图像进行球圆心提取并换算,得到所述目标球在视觉坐标系下的表面点坐标;
S3:根据所述目标球的所述表面点坐标和半径计算得到所述目标球在所述视觉坐标系下的第二球心坐标;
S4:调整所述目标球的位置,重新执行步骤S1,直至得到预置组数的所述第一球心坐标和所述第二球心坐标;
S5:通过最小二乘法对预置组数的所述第一球心坐标和所述第二球心坐标进行计算,得到两个坐标系之间的映射关系。
优选地,对所述目标球进行图像识别,通过球检测算法对得到的图像进行球圆心提取并换算,得到视觉坐标系下的目标球的表面点坐标具体为:
对所述目标球进行图像识别,对得到的图像依次进行颜色空间转换、颜色分割、轮廓提取和圆形度约束后,得到球圆心位置,并对所述球圆心位置进行换算得到视觉坐标系下的目标球的表面点坐标。
优选地,所述根据所述目标球的所述表面点坐标和半径计算得到所述目标球在所述视觉坐标系下的第二球心坐标具体包括:
S31:计算所述视觉坐标系的原点坐标与所述目标球的表面点坐标之间的第一长度,将所述第一长度加上所述目标球的半径得到第二长度,计算所述第一长度与所述第二长度之间的比例关系;
S32:对所述表面点坐标的三个坐标值根据所述比例关系进行比例计算得到所述目标球在所述视觉坐标系下的第二球心坐标。
优选地,两个坐标系之间的所述映射关系为:
式中,(xn,yn,zn)、(Xn,Yn,Zn)为第n组第一球心坐标和第二球心坐标,R为参数矩阵,T为偏移向量。
优选地,所述第一球心坐标和所述第二球心坐标满足以下约束条件:
根据本发明的另一方面,提供一种全局视觉坐标系和机械臂坐标系的映射装置,包括:
获取模块,用于获取机械臂末端上的目标球的球心在机械臂坐标系下的第一球心坐标;
第一计算模块,用于对所述目标球进行图像识别,通过球检测算法对得到的图像进行球圆心提取并换算,得到所述目标球在视觉坐标系下的表面点坐标;
第二计算模块,用于根据所述目标球的所述表面点坐标和半径计算得到所述目标球在所述视觉坐标系下的第二球心坐标;
循环模块,用于调整所述目标球的位置,重新触发获取模块,直至得到预置组数的所述第一球心坐标和所述第二球心坐标;
第三计算模块,用于通过最小二乘法对预置组数的所述第一球心坐标和所述第二球心坐标进行计算,得到两个坐标系之间的映射关系。
优选地,所述第一计算模块还用于对所述目标球进行图像识别,对得到的图像依次进行颜色空间转换、颜色分割、轮廓提取和圆形度约束后,得到球圆心位置,并对所述球圆心位置进行换算得到视觉坐标系下的目标球的表面点坐标。
优选地,所述第二计算模块具体包括:
第一计算单元,用于计算所述视觉坐标系的原点坐标与所述目标球的表面点坐标之间的第一长度,将所述第一长度加上所述目标球的半径得到第二长度,计算所述第一长度与所述第二长度之间的比例关系;
第二计算单元,用于对所述表面点坐标的三个坐标值根据所述比例关系进行比例计算得到所述目标球在所述视觉坐标系下的第二球心坐标。
优选地,两个坐标系之间的所述映射关系为:
式中,(xn,yn,zn)、(Xn,Yn,Zn)为第n组第一球心坐标和第二球心坐标,R为参数矩阵,T为偏移向量。
优选地,所述第一球心坐标和所述第二球心坐标满足以下约束条件:
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明提供了一种全局视觉坐标系和机械臂坐标系的映射方法及装置,该方法包括:S1:获取机械臂末端上的目标球的球心在机械臂坐标系下的第一球心坐标;S2:对目标球进行图像识别,通过球检测算法对得到的图像进行球圆心提取并换算,得到目标球在视觉坐标系下的表面点坐标;S3:根据目标球的表面点坐标和半径计算得到目标球在视觉坐标系下的第二球心坐标;S4:调整目标球的位置,重新执行步骤S1,直至得到预置组数的第一球心坐标和第二球心坐标;S5:通过最小二乘法对预置组数的第一球心坐标和第二球心坐标进行计算,得到两个坐标系之间的映射关系。本发明能够高效快速地实现自动换计算,且映射转换精度高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明提供的一种全局视觉坐标系和机械臂坐标系的映射方法的一个实施例的流程示意图;
图2为本发明提供的一种全局视觉坐标系和机械臂坐标系的映射方法的另一个实施例的流程示意图;
图3为全局视觉坐标系和机械臂坐标系的转换示意图;
图4为视觉坐标系下的标志球心求解示意图;
图5为本发明提供的一种全局视觉坐标系和机械臂坐标系的映射装置的一个实施例的结构示意图。
具体实施方式
本发明实施例提供了一种全局视觉坐标系和机械臂坐标系的映射方法及装置,能够降低映射误差和提高计算转换效率。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明提供的一种全局视觉坐标系和机械臂坐标系的映射方法的一个实施例,包括:
101、获取机械臂末端上的目标球的球心在机械臂坐标系下的第一球心坐标;
102、对目标球进行图像识别,通过球检测算法对得到的图像进行球圆心提取并换算,得到目标球在视觉坐标系下的表面点坐标;
103、根据目标球的表面点坐标和半径计算得到目标球在视觉坐标系下的第二球心坐标;
104、调整目标球的位置,重新执行步骤101,直至得到预置组数的第一球心坐标和第二球心坐标;
105、通过最小二乘法对预置组数的第一球心坐标和第二球心坐标进行计算,得到两个坐标系之间的映射关系。
本发明提供了一种全局视觉坐标系和机械臂坐标系的映射方法,包括:101:获取机械臂末端上的目标球的球心在机械臂坐标系下的第一球心坐标;102:对目标球进行图像识别,通过球检测算法对得到的图像进行球圆心提取并换算,得到目标球在视觉坐标系下的表面点坐标;103:根据目标球的表面点坐标和半径计算得到目标球在视觉坐标系下的第二球心坐标;104:调整目标球的位置,重新执行步骤101,直至得到预置组数的第一球心坐标和第二球心坐标;105:通过最小二乘法对预置组数的第一球心坐标和第二球心坐标进行计算,得到两个坐标系之间的映射关系。本发明能够高效快速地实现自动换计算,且映射转换精度高。
以上为一种全局视觉坐标系和机械臂坐标系的映射方法的一个实施例,为进行更具体的说明,下面提供一种全局视觉坐标系和机械臂坐标系的映射方法的另一个实施例,请参阅图2,本发明提供的一种全局视觉坐标系和机械臂坐标系的映射方法的另一个实施例,包括:
201、获取机械臂末端上的目标球的球心在机械臂坐标系下的第一球心坐标;
如图3所示,本发明实施例将双目摄像头架设在一定高度h上,可观测到机械臂整个作业空间,并对整个空间进行三维深度信息的构建,得到双目视觉坐标系o-xyz。而机械臂自带有坐标系空间O-XYZ,两个坐标系是独立的空间。因此本发明实施例提出一种在机械臂末端安装球体标志物(目标球),建立起视觉坐标系转换到机械臂坐标系的映射关系。
在机械臂上设计一段校正动作,开机运行校正程序,双目摄像头会对目标球的球心进行识别和位置的计算,在视觉坐标系中记为o(xn,yn,zn),此时也有在机械臂坐标系中记为O(Xn,Yn,Zn),本发明采用这样的n组点对进行计算。可以理解的是,目标球的位置固定后,其在机械臂坐标系下的第一球心坐标是可以测量得到并确定的,则接下来需要计算该位置下的目标球在视觉坐标系下的第二球心坐标。
202、对目标球进行图像识别,对得到的图像依次进行颜色空间转换、颜色分割、轮廓提取和圆形度约束后,得到球圆心位置,并对球圆心位置进行换算得到视觉坐标系下的目标球的表面点坐标;
通常机械臂末端上的目标球具备特定颜色的标志物,通过图像识别技术,可以捕捉目标球的图像。然后再通过求检测算法计算球在图像中的圆心位置。具体的,球检测算法的过程为:对得到的图像依次进行颜色空间转换、颜色分割、轮廓提取和圆形度约束后,得到球圆心位置(u,v)。最后再对球圆心位置进行换算得到视觉坐标系下的目标球的表面点坐标d(xd,yd,zd),即:
式中,f是镜头焦距。
203、计算视觉坐标系的原点坐标与目标球的表面点坐标之间的第一长度,将第一长度加上目标球的半径得到第二长度,计算第一长度与第二长度之间的比例关系;
204、对表面点坐标的三个坐标值根据比例关系进行比例计算得到目标球在视觉坐标系下的第二球心坐标;
由于球在图像中不具有三维,因此图像中检测到圆也就是球,再计算出圆心的位置(u,v),这一点其实是球表面上的一个点d(xd,yd,zd)如图4中所示。但是实际需要的是球心的位置o(xn,yn,zn),因为球心具有位置不变性。
在双目视觉下,可以很容易的从图像中检测到圆心(u,v)位置转换为视觉三维坐标系o-xyz下的d(xd,yd,zd),如图4所示,已知d点位置,以及球半径r,同时球心q、d点和视觉坐标原点o三点共线,那么球心o(xo,yo,zo)可求得。将oq线垂直投射到y轴上,d和球心q分别的投射点为D和O,我们可知△doD和△qoO是相似三角形,因此oO长度也就是yn求得如公式(2)所示。再分别垂直投影到x和z轴上同理可求得xn和zn。
205、调整目标球的位置,重新执行步骤201,直至得到预置组数的第一球心坐标和第二球心坐标;
由于本发明实施例需要通过多组第一球心坐标和第二球心坐标,因此则可以调整目标球的位置,然后重新执行步骤201,直至得到满足需求组数的球心坐标。
206、通过最小二乘法对预置组数的第一球心坐标和第二球心坐标进行计算,得到两个坐标系之间的映射关系。
在本实施例中,采用最小二乘法进行参数矩阵R和偏移向量T的估计,采样有效点对数n越多越能逼近理论的计算方法,建立起全局视觉***的坐标点和机械臂末端位置关系如下:
式中,(xn,yn,zn)、(Xn,Yn,Zn)为第n组第一球心坐标和第二球心坐标,R为参数矩阵,T为偏移向量。
在本实施例中,为保证计算的有效性,通常每组球心坐标之间满足一定的约束条件,即第一球心坐标和第二球心坐标满足以下约束条件:
本发明可以保证计算的有效性,降低映射转换误差。同时计算映射矩阵和偏移参数这个过程都是自动过程,无需认为进行测量,高效快速。
请参阅图5,本发明提供的一种全局视觉坐标系和机械臂坐标系的映射装置的一个实施例,可以理解的是,该装置上安装有双目摄像头,且与机械臂可以进行信息交互。该实施例包括:
获取模块501,用于获取机械臂末端上的目标球的球心在机械臂坐标系下的第一球心坐标;
第一计算模块502,用于对目标球进行图像识别,通过球检测算法对得到的图像进行球圆心提取并换算,得到目标球在视觉坐标系下的表面点坐标;
第二计算模块503,用于根据目标球的表面点坐标和半径计算得到目标球在视觉坐标系下的第二球心坐标;
循环模块504,用于调整目标球的位置,重新触发获取模块501,直至得到预置组数的第一球心坐标和第二球心坐标;
第三计算模块505,用于通过最小二乘法对预置组数的第一球心坐标和第二球心坐标进行计算,得到两个坐标系之间的映射关系。
可选的,第一计算模块502还用于对目标球进行图像识别,对得到的图像依次进行颜色空间转换、颜色分割、轮廓提取和圆形度约束后,得到球圆心位置,并对球圆心位置进行换算得到视觉坐标系下的目标球的表面点坐标。
可选的,第二计算模块503具体包括:
第一计算单元5031,用于计算视觉坐标系的原点坐标与目标球的表面点坐标之间的第一长度,将第一长度加上目标球的半径得到第二长度,计算第一长度与第二长度之间的比例关系;
第二计算单元5032,用于对表面点坐标的三个坐标值根据比例关系进行比例计算得到目标球在视觉坐标系下的第二球心坐标。
可选的,两个坐标系之间的映射关系为:
式中,(xn,yn,zn)、(Xn,Yn,Zn)为第n组第一球心坐标和第二球心坐标,R为参数矩阵,T为偏移向量。
可选的,第一球心坐标和第二球心坐标满足以下约束条件:
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。