手眼标定方法、装置、通信设备及存储介质与流程

文档序号:25876794发布日期:2021-07-16 17:54阅读:136来源:国知局
手眼标定方法、装置、通信设备及存储介质与流程

1.本申请属于计算机技术领域,尤其涉及一种手眼标定方法、装置、通信设备及存储介质。


背景技术:

2.随着制造业与工业产线的自动化程度越来越高,工厂生产线中运用相机搭配机械臂取代人工完成、分类、送料、堆料、质检的自动化生产环节越来越多。通常,先获取相机拍摄得到的照片进行识别,完成物体定位;之后,再根据相机与机械臂之间存在的空间坐标关系,将物体在照片上的像素坐标转换为机械臂坐标系对下的机械臂坐标,以指示机械臂根据该机械臂坐标完成物体抓取。
3.为了实现物体的准确抓取,通常需要提前将相机的视觉坐标(具体为相机拍摄到的照片中的像素坐标)和机械臂坐标进行标定,这一过程称为手眼标定。目前的手眼标定方法通常都是将单个相机的视觉坐标与机械臂坐标进行标定,而基于多相机的视觉系统,难以进行便捷准确的手眼标定。


技术实现要素:

4.有鉴于此,本申请实施例提供了手眼标定方法、装置、通信设备及存储介质,以解决现有技术中如何便捷准确地实现基于多相机的手眼标定问题。
5.本申请实施例的第一方面提供了一种手眼标定方法,包括:
6.获取相机组拍摄得到的照片组,其中所述相机组至少包括两个相机,用于协作拍摄目标视野区域;所述照片组包含所述相机组中每个相机分别拍摄得到的照片;
7.拼接所述照片组中的各张照片,得到所述目标视野区域对应的全局照片;
8.根据所述全局照片,标定所述全局照片的像素坐标系与机械臂坐标系之间的对应关系,得到手眼标定结果。
9.本申请实施例的第二方面提供了一种手眼标定装置,包括:
10.照片组获取单元,用于获取相机组拍摄得到的照片组,其中所述相机组至少包括两个相机,用于协作拍摄目标视野区域;所述照片组包含所述相机组中每个相机分别拍摄得到的照片;
11.拼接单元,用于拼接所述照片组中的各张照片,得到所述目标视野区域对应的全局照片;
12.标定单元,用于根据所述全局照片,标定所述全局照片的像素坐标系与机械臂坐标系之间的对应关系,得到手眼标定结果。
13.本申请实施例的第三方面提供了一种通信设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,使得通信设备实现如所述手眼标定方法的步骤。
14.本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储
介质存储有计算机程序,当所述计算机程序被处理器执行时,使得通信设备实现如所述手眼标定方法的步骤。
15.本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在通信设备上运行时,使得通信设备执行上述第一方面所述的手眼标定方法。
16.本申请实施例与现有技术相比存在的有益效果是:本申请实施例中,对于包含至少两个相机的相机组,能够获取该相机组拍摄得到的照片组,并将照片组中的各张照片进行拼接,得到对应的全局照片后,再根据该全局照片标定全局照片的像素坐标系与机械臂坐标系之间的对应关系,得到手眼标定结果。由于能够基于多相机拍摄的多张照片拼接而成的全局照片来进行手眼标定,因此,相对于只能局限于单相机与机械臂之间的同步手眼标定的现有技术,能够便捷有效地实现基于多相机的手眼标定,以满足工业生产中的实际需求。
附图说明
17.为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
18.图1是本申请实施例提供的一种手眼标定方法对应的应用场景示意图;
19.图2是本申请实施例提供的一种手眼标定方法的实现流程示意图;
20.图3是本申请实施例提供的一种照片组拼接前的整体视图;
21.图4是本申请实施例提供的一种全局照片的示意图;
22.图5是本申请实施例提供的一种预设的标定物的示例图;
23.图6是本申请实施例提供的另一种手眼标定方法对应的应用场景示意图;
24.图7是本申请实施例提供的一种手眼标定装置的示意图;
25.图8是本申请实施例提供的通信设备的示意图。
具体实施方式
26.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
27.为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
28.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
29.还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
30.还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
31.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被
解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0032]
另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0033]
目前,在工业生产线中,绝大部分只使用一部相机来部署视觉框架,其视野范围通常比较有限,导致待识别物体尺寸受限,无法准确地对大尺寸物体进行识别。为了实现对大尺寸物体的识别,本申请实施例采用多相机来部署视觉框架,从而扩大识别视野范围,实现对大尺寸物体的识别。然而,目前的手眼标定方法通常仅局限于单个相机与机械臂之间的标定,即使存在一些多相机与机械臂的标定,也是从多相机中选取一个相机,将该相机与机械臂进行标定后,再进一步确定其他相机与已标定的该相机的相对位置,即,即使存在多相机的视觉系统,也是在单个相机与机械臂之间的标定的基础上,再确定各个相机的标定参数的,无法实现同步标定,并且,这一过程操作繁琐,多个相机之间的相对位置确定过程也可能存在一定的误差。因此,现有技术存在着难以便捷准确地实现基于多相机的手眼标定的技术问题。为了解决该技术问题,本申请实施例提供了一种手眼标定方法、装置、通信设备及存储介质,其中,对于包含至少两个相机的相机组,能够获取该相机组拍摄得到的照片组,并将照片组中的各张照片进行拼接,得到对应的全局照片后,再根据该全局照片标定全局照片的像素坐标系与机械臂坐标系之间的对应关系,得到手眼标定结果。由于能够基于多相机拍摄的多张照片拼接而成的全局照片来进行手眼标定,因此,相对于只能局限于单相机与机械臂之间的同步手眼标定的现有技术,能够便捷有效地实现基于多相机的手眼标定,以满足工业生产中的实际需求。
[0034]
示例性地,图1示出了本申请实施例提供的一种手眼标定方法对应的应用场景示意图。其中,在用于传送物体的输送链传送带上部署视觉框架,该视觉框架中,包含至少两个相机(图1所示的视觉框架包含4个相机),组成相机组。该相机组中的每个相机分别安装在视觉框架顶部同一平面(该平面平行于输送链传送带所在的平面)中的不同位置,用于协作拍摄该视觉框架内的视野区域,即目标视野区域。进一步地,该视觉框架中还可以设有独立补光灯,以保证相机拍摄的亮度。
[0035]
实施例一:
[0036]
图2示出了本申请实施例提供的一种手眼标定方法的流程示意图,该手眼标定方法的执行主体可以为通信设备,例如电脑、服务器等,详述如下:
[0037]
在s201中,获取相机组拍摄得到的照片组,其中所述相机组至少包括两个相机,用于协作拍摄目标视野区域;所述照片组包含所述相机组中每个相机分别拍摄得到的照片。
[0038]
本申请实施例中的相机组用于协作拍摄目标视野区域,例如图1所示的视觉框架的内部区域,该相机组至少包括两个相机。其中,协作拍摄目标视野区域指的是,相机组中的不同相机分别负责拍摄目标视野区域中不同位置的子区域。进一步地,相邻的子区域间存在着重叠区域,该重叠区域使得相机组拍摄时存在的共视区域,该共视区域的信息能够方便后续进行照片拼接。本申请实施例中的照片组具体包括相机组中每个相机分别拍摄得到的照片。例如,若相机组中包括相机a、相机b、相机c、相机d这四个相机,则,对应地,照片组包含照片a、照片b、照片c、照片d这四张照片。
[0039]
具体地,本申请实施例中,可以通过安装于目标视野区域入口处的红外传感器来同步触发相机组中的各个相机进行拍照,并获取各个相机生成的各张照片,从而得到该照片组。在另一个实施例中,相机组拍摄得到的照片组可以存储到指定内存空间中,通过访问该该指定内存空间,即可获得该照片组。
[0040]
进一步地,为了保证照片组中的各张照片的拍摄质量一致,本申请实施例的相机组中的各个相机的曝光度、信号去抖等软硬件参数保持一致。进一步地,为了保证相机组中多相机拍摄的同步性,可以通过外部硬触发方式进行相机的同步启动,还可以通过多线程图片容器进行各个相机的照片存储,从而保证相机拍摄的同步性,保证照片组中的各张照片为几乎同一时刻(仅有微秒级的先后顺序)生成并存储的照片,从而保证标定的准确性。其中,在一个示例中,若本申请实施例的相机组采用多线程图片容器进行存储,则后续在实际使用过程中,如图1所示的应用场景中的输送链的运行速度的最大值限制为45000转/分钟,即当输送链运行速度小于或者等于45000转/分钟时画面不会出现错位重影,当转速高于45000转/分钟时画面中会出现错位重影。
[0041]
在s202中,拼接所述照片组中的各张照片,得到所述目标视野区域对应的全局照片。
[0042]
本申请实施例中,将照片组中的各张照片进行拼接,即,将目标视野区域中各个不同子区域对应的照片进行拼接,并使其中共视区域的图像融合显示,得到目标视野区域对应的全局照片,该全局照片即为能够完整呈现目标视野区域内的图像信息的照片。具体地,在标定时,上述的相机间的共视区域放置了若干特征图片,使得相机组拍摄得到的照片组中的各张照片中均包含这些特征图片的信息,之后以这些特征图片的信息作为参照基准,即可实现各张照片间的拼接。
[0043]
示例性地,设将图1所示的视觉框架中的四个相机拍摄得到的四张照片按照彼此间的位置关系进行顺序摆放,则其拼接前的四张照片(照片a、照片b、照片c、照片d)的整体视图如图3所示,其中,每张照片的照片区域如图3所示按照虚线分为两个部分,其中,包含特征图片的信息的区域为上述的共视区域。根据该共视区域中特征图片的信息,对图3所示的四张照片进行拼接,并使得共视区域的图像进行融合,即得到如图4所示的拼接得到的全局照片。在一个实施例中,对于照片组中的每张照片,共视区域至少占该照片总区域的三分之一,从而保证后续的拼接效果。
[0044]
在s203中,根据所述全局照片,标定所述全局照片的像素坐标系与机械臂坐标系之间的对应关系,得到手眼标定结果。
[0045]
在获得全局照片后,即可基于该全局照片,标定该全局照片的像素坐标系与机械臂坐标系之间的对应关系,将该对应关系作为手眼标定结果,使得后续在确定识别到的待抓取物体的像素坐标后,能够根据该对应关系确定对应的机械臂坐标,实现对待抓取物体准确抓取。在一个实施例中,可以在目标视野区域中预设多个标定点,根据这些标定点在全局照片中对应的像素坐标,以及机械臂移动点到该标定点处时输出的机械臂坐标,建立坐标转换方程进行计算,即可得到全局照片的像素坐标系与机械臂坐标系的对应关系。
[0046]
可选地,上述的步骤s202,具体包括:
[0047]
s20201:对于所述照片组中相邻的每两张照片进行特征点匹配及图像配准,确定所述照片组中相邻照片之间的变换矩阵;
[0048]
s20202:根据所述照片组中相邻照片之间的变换矩阵,对所述照片组中的各张照片进行拼接,得到全局照片。
[0049]
本申请实施例中,特征点指的是图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点;直观来说,特征点即为从不同的角度对同一场景进行拍照,每一张照片中都能鲁棒提取到的点。示例性地,本申请实施例中的特征点即为如图3所示的共视区域中包含特征图片对应的像素点。
[0050]
在s20201中,对于照片组中的每张照片,可以分别从各自的共视区域中提取特征点。其中,提取特征点时可以通过常用的特征点提取算法实现,例如尺度不变特征变换(scale

invariant feature transform,sift)算法、加速稳健特征(speeded up robust features,surf)算法、面向快速和旋转的二元鲁棒独立基本特征(oriented fast and rotated brief,orb)算法等。在提取特征点之后,对于照片组中相邻的两张照片,进行特征点匹配,得到特征点对;之后,根据这些特征点对进行图像配准,确定这两张照片之间的变换矩阵。对于照片组中相邻的每两张照片,均可通过前述的特征点匹配、图像配准处理,确定两张照片之间的变换矩阵,最终可以确定得到照片组中所有相邻照片之间的变换矩阵。
[0051]
具体地,相邻的两张照片的特征点匹配及图像配准过程,可以通过以下步骤实现:
[0052]
a1:根据两张照片分别提取到的特征点,进行特征点匹配,得到指定数目的特征点对。具体地,特征点匹配指的是,对提取到的特征点利用特征描述子进行匹配,从而匹配不同照片中提取到的相同的特征点。例如,在sifi算法中,每个特征点可以通过一个128维的特征向量进行描述,通过比较分别来自两张照片的两个特征点的特征向量,计算它们之间的欧式距离,即可判断这两个特征点是否能够匹配。在特征点匹配得到初步的特征点对后,可以对这些特征点对进行进一步筛选,得到指定数目(例如16对)的有效特征点对。在特征点对筛选过程中,具体可以将一些质量较差的特征点对进行剔除,或者在多对距离较近的特征点对中只保留一组特征点对。
[0053]
a2:根据指定数目的特征点对,进行图像配准,得到这两张照片之间的变换矩阵。获得了特征点对以后,需要根据这些特征点对得到图像的相对位置,这一过程即称为图像配准。具体地,本申请实施例中,两张照片之间的相对位置通过两张照片之间的变换矩阵来表示,该变换矩阵可以通过以下公式求得:
[0054][0055]
其中,表示第一照片的像素坐标的齐次表示形式;表示第二照片的像素坐标的齐次表示形式;第一照片、第二照片分别为上述的两张照片。h即为变换矩阵,也称为单应性矩阵,其为3
×
3的矩阵,且其中h
3,3
=1,因而该变换矩阵是一个八参数矩阵。通过将每组特征点对中的特征点的像素坐标代入该公式,进行方程求解,即可分别得到两张照片之间的变换矩阵,实现图像间的配准。具体地,由于每个特征点都有x,y两个像素坐标,因此需要四个点即可求解出该八参数矩阵的解,同时考虑到前面利用特征向量匹配得到的特征点对可能存在误匹配,因此可以使用随机样本一致性(random sample consensus,ransac)算法进行求解,得到最优的变换矩阵。
[0056]
在s20202中,通过步骤s20201的处理,求得照片组中所有相邻照片之间的变换矩阵,即可根据这些变换矩阵,依次将照片组中的各张照片按照该变换矩阵进行位置转换后
进行拼接,得到全局照片。在一个实施例中,可以在照片组中指定照片作为基准照片,并根据相邻照片之间的变换矩阵,依次将照片组中的其它照片变换到该基准照片像素坐标系中进行拼接,从而得到该全局照片。
[0057]
进一步地,为了减少照片拼接过程中的误差累积,可以采用光束平差法联合优化估计出的固定矩阵。进一步地,在拼接得到全局照片后,还可以根据实际的拼接效果,进行全局照片的水平矫正或者垂直矫正。
[0058]
本申请实施例中,通过特征点匹配及图像配准,能够准确地确定照片组中相邻照片之间的变换矩阵,从而能够根据这些变换矩阵,准确地进行照片拼接,得到准确的全局照片,即为后续的标定过程提供准确的依据,进而提高手眼标定方法的准确性。
[0059]
可选地,上述的步骤s20202,包括:
[0060]
b1:根据所述照片组中相邻照片之间的变换矩阵,对所述照片组中的各张照片进行投影变换,得到初步拼接照片;
[0061]
b2:将所述初步拼接照片进行拼缝融合处理,得到全局照片。
[0062]
在b1中,在得到照片组中相邻照片之间的变换矩阵后,即可获知相机组中各个相机的相对位置关系。若此时直接根据这些变换矩阵进行拼接,可能会破坏视场的一致性,使得拼接得到的全局照片不连贯,因此,本申请实施例中,根据上述的变换矩阵,将照片组中的各张照片依次投影在指定的平面、球面、或者柱面中,从而完成照片的拼接,得到初步拼接照片。进一步地,若得到的初步拼接照片中存在明显的明暗变化,还可以对该初步拼接照片进行曝光补偿处理,使得处理后的初步拼接照片整体亮度一致。
[0063]
在b2中,通过投影变换得到的初步拼接照片中,可能与拼接前照片的共视区域相对的区域(即照片重叠区域)存在明显的过渡痕迹,该过渡痕迹即为拼缝。本申请实施例中,对该拼缝附近的若干个像素采用融合算法,去除初步拼接照片中重复出现的特征点的过程,即称为拼缝融合处理,也称为像素美缝处理。通过该拼缝融合处理,可以有效地去除全局照片中的图像错位、伪像等缺陷,得到特征点重复率低、拼接质量较高的全局照片。
[0064]
进一步地,上述的拼缝融合处理可以由拼缝确定算法及融合算法组成。拼缝确定算法即为寻找初步拼接照片中的拼缝的算法,例如逐点法、动态规划法图割法等。示例性地,本申请实施例通过逐点发进行拼缝的确定,逐点法相对来说较为简单,能够提高处理效率。融合算法即为在确定拼缝的基础上对拼缝附近的像素进行融合计算的算法。该融合算法可以为羽化融合算法、拉普拉斯融合算法等。其中,羽化融合就是对拼缝附近的位置根据与接缝的距离求出权重,加权融合,而拉普拉斯融合算法相当于求出图像不同频率的分量,然后按频率进行融合。
[0065]
本申请实施例中,通过投影变换及拼缝融合处理,能够进一步提高照片拼接质量,提高全局照片的准确性,进而提高后续标定的准确性。
[0066]
在一些实施例中,可以根据图像配准得到的相邻照片之间的变换矩阵(或者进一步结合诸如拼缝融合处理等拼接优化过程中所用到的参数),估计相机组中每个相机对应的虚拟焦距和平移旋转矩阵(即每个相机虚拟的内外参数),组成固定矩阵,并对该固定矩阵进行存储。以便后续在相机组不作变化的情况下,需要再次获取全局照片时,可以直接根据已存储的该固定矩阵,对照片组中的各张照片进行变换拼接,得到全局照片。
[0067]
可选地,所述目标视野区域中包含预设的标定物,所述预设的标定物包含预设数
目个标定点,上述的步骤s203,包括:
[0068]
c1:获取所述全局照片对应的全局相机参数;所述全局相机参数至少包括预估的全局相机的内参数;
[0069]
c2:根据每个所述标定点在所述全局照片的像素坐标系中的像素坐标及所述全局相机参数,确定每个所述标定点对应的全局相机坐标;所述全局相机坐标为预估的全局相机的相机坐标;
[0070]
c3:根据每个所述标定点的全局相机坐标以及读取到的每个所述标定点对应的机械臂坐标,确定所述全局相机坐标系与机械臂坐标系的对应关系;其中,所述机械臂坐标为所述标定点对应在所述机械臂坐标系中的坐标,所述全局相机坐标系为所述全局相机坐标所在的坐标系;
[0071]
c4:根据所述全局相机参数,以及所述全局相机坐标系与机械臂坐标系的对应关系,确定所述全局照片的像素坐标系与所述机械臂坐标系之间的对应关系,得到手眼标定结果。
[0072]
本申请实施例中,在执行本申请实施例的手眼标定方法之前,提前在目标视野区域中放置预设的标定物,该预设的标定物包含预设数目个标定点。在一个实施例中,该预设的标定物可以为包含预设数目个标定点的一张纸张或者一个标定板。在另一个实施例中,该预设的标定物可以包含n张纸张或者n个标定板,每张纸张或者每个标定板中均存在m个标定点,使得由n张纸张或者n张标定板组合而成的标定物共包含n*m个标定点,其中,n、m均为大于0的正整数,n*m即为预设数目。示例性地,如图5所示,可以在目标视野区域中平铺16张纸张组成预设的标定物,每张纸张中存在2个十字尖点作为2个标定点,则该目标视野区域中共存在16*2=32个标定点。
[0073]
在c1中,获取全局照片对应的全局相机参数,该全局相机参数至少包括预估的全局相机的内参数,还可以包括该预估的全局相机的内外参数。该全局相机为预估的全局照片视野下的相机,其具体为悬浮在视觉框架中某一空间位置的虚拟相机,不与相机组中任何一部实际的相机位置重合。由于相片组的中每个相机的内外参数均存在细微差异,且安装精度不一,因此可以直接在全局视野下,以全局照片作为相机内外参数的标定基础,由此可以不通过单个相机独立拍摄得到的照片作为标定基础,从而提高手眼标定方法的准确性。本申请实施例中相机的内外参数具体包括相机的内参数和外参数。其中,相机内参数是与相机自身特性相关的参数,比如相机的焦距、像素大小等;相机外参数是在世界坐标系中的参数,比如相机的位置、旋转方向等。
[0074]
本申请实施例中全局相机参数,即预估的全局相机的内外参数,具体可以提前在当前的相机组安装条件下,在目标视野区域放置标定物(例如棋盘格或者上述预设的标定物),拍摄该目标视野区域并拼接得到指定数量(例如80张)的全局照片后,根据指定数量的全局照片进行标定得到。具体地,设该标定物或者其它标定板中的标定点的世界坐标系的坐标(x
w
,y
w
,z
w
),在全局相机坐标系的坐标为(x
c
,y
c
,z
c
),则二者存在以下关系:
[0075]
[0076]
其中,旋转位移矩阵即为全局相机的外参数,r
11
~r
33
为用于描述旋转运动的元素,t
x
,t
y
,t
z
为用于描述平移运动的元素。具体地,该旋转位移矩阵可以通过选取一张标定物位于像素中心位置的全局照片作为标定参照,从而获得全局相机的外参数,即旋转位移矩阵t。
[0077]
设全局照片的像素坐标系上的坐标为(u,v),则全局相机坐标系与全局照片像素坐标系的坐标之间,存在以下关系(简称为像素

相机关系式):
[0078][0079]
其中,z
deep
为全局相机的景深参数,f为全局相机的焦距,dy为垂直方向上的像素成像大小、dx为水平方向上的像素成像大小,cx表示全局相机在水平方向成像的光心坐标,cy表示全局相机在垂直方向成像的光心坐标,前述的这些参数即为全局相机的内参数。通过获取指定数量的全局照片中标定点的像素坐标、标定点对应在世界坐标系下的坐标,以及上述已确定的外参数,可以联立上述的两个公式,求得全局相机内参数,从而确定全局照片的像素坐标系与全局相机坐标系的对应关系。作为一种可能的实现方式,该全局相机的内外参数可以借助halcon(一种标准的机器视觉算法包)标定助手标定得到。当全局相机的内外参数具体通过halcon标定助手标定得到时,还可以将通过halcon中的残差投影参数评估全局相机内外参数标定的精确度。
[0080]
在c2中,在获取到提前标定的全局相机参数后,即可根据已标定的全局相机的内参数以及每个标定点在全局照片的像素坐标系中的像素坐标,通过上述的像素

相机关系式,确定每个标定点对应在预估的全局相机坐标系中的坐标,即全局相机坐标。即,根据已标定的全局相机内参数,可以确定全局照片的像素坐标系与全局相机坐标系的对应关系,从而完成像素坐标到全局相机坐标的转换,求得每个标定点对应的全局相机坐标。
[0081]
在c3中,机械臂坐标为标定点在机械臂坐标系中的坐标。其中,全局照片对应的全局相机坐标系与机械臂坐标系之间存在以下的关系式(简称为相机

机械臂关系式):
[0082][0083]
其中,(x
c
,y
c
,z
c
)为全局相机坐标系的坐标,(x
r
,y
r
,z
r
)为机械臂坐标系的坐标,r1‑1为全局相机坐标系与机械臂坐标系之间的4*4旋转平移矩阵的逆矩阵。
[0084]
本申请实施例中,在确定了每个标定点在全局相机坐标系的全局相机坐标,以及读取到机械臂输出的每个标定点对应的机械臂坐标后,将每个标定点的这两个坐标代入上述的相机

机械臂关系式进行解方程运算,即可标定得到全局相机坐标系与机械臂自身坐标系之间的变换矩阵r1‑1,从而确定所述全局相机坐标系与机械臂坐标系的对应关系。
[0085]
在c4中,将步骤c1获取到的标定好的全局相机参数中的内参数(z
deep
、f、dy、dx、cx、cy)作为已知系数代入到上述的像素

相机关系式,即可确定当前全局照片的像素坐标
系到全局相机坐标系的对应关系;根据步骤c3中求得的矩阵r1‑1作为已知系数代入到上述的相机

机械臂关系式,即可确定当前全局相机坐标系到机械臂坐标系的对应关系;结合这两个对应关系,即可确定全局照片的像素坐标系到机械臂坐标系的对应关系。本申请实施例中,具体可以将已代入上述确定系数的像素

相机关系式、相机

机械臂关系式作为手眼标定结果。
[0086]
本申请实施例中,由于能够借助预设的标定物,根据全局照片中标定点的像素坐标及全局相机参数确定标定点的全局相机坐标,并根据该全局相机坐标和标定点的机械臂坐标,求得全局相机坐标系与机械臂坐标系的对应关系,最终确定全局照片的像素坐标系到全局相机坐标系的对应关系,以及全局相机坐标系到机械臂坐标系的对应关系,从而联立这两个对应关系,准确地确定全局照片的像素坐标系到机械臂坐标系的对应关系,准确地完成手眼标定。
[0087]
进一步地,在确定全局照片的像素坐标系到全局相机坐标系的对应关系,以及全局相机坐标系到机械臂坐标系的对应关系之后,可以通过在如图1所示在应用场景中放置固定物体,并启动相机、输送链传送带、机械臂,验证该手眼标定结果的精确度。进一步地,若通过验证确定手眼标定结果存在一定的高度误差,则可以通过微调上述的全局相机内参数中的景深参数z
deep
来调整标定精度和误差。
[0088]
可选地,上述预设的标定物中,各个所述标定点之间的间隔小于或者等于预设阈值。
[0089]
本申请实施例中,上述预设数目个标定点具体均匀分布在目标视野区域内,铺满该目标视野区域,并且每个标定点之间的间隔小于预设阈值。例如,标定点之间的横向距离小于或者等于15厘米,垂直距离小于或者等于12厘米,从而提高标定精度。具体地,在满足标定点之间的间隔小于或者等于预设阈值的条件下,上述的预设数目具体根据目标视野区域的大小而确定(例如可以在每平方米的区域内设置5~8个标定点)。具体地,在满足标定点之间的间隔小于或者等于预设阈值的条件下,预设数目通常大于9,从而使得本申请实施例的手眼标定方法的精确度高于传统的九点标定法,从而能弥补由于全局照片可能存在的畸变误差对精确度的影响。
[0090]
可选地,在上述的步骤s203之后,还包括:
[0091]
d1:若检测到目标物体进入目标视野区域,则启动所述相机组进行拍摄,得到目标照片组;
[0092]
d2:拼接所述目标照片组,得到包含所述目标物体的完整图像信息的目标全局照片;
[0093]
d3:根据所述目标全局照片及所述手眼标定结果,确定所述目标物体对应的目标机械臂坐标;所述目标机械臂坐标为所述目标物体的抓取点对应在所述机械臂坐标系中的坐标。
[0094]
在d1中,当检测到目标物体进入目标视野区域时,则同步启动相机组中的所有相机进行拍摄,得到目标照片组。具体地,本申请实施例中的目标物体为待抓取的大尺寸物体(即其尺寸大小大于单个相机所能够识别的预设尺寸,例如,该大尺寸物体可以为钢筋),该目标照片组中的每张照片均包含该目标物体的一部分图像信息。在一个实施例中,具体可以在检测到目标视野区域的入口处的红外传感器存在触发信号时,确定当前检测到目标物
体进入目标视野区域,并同步启动相机组中的所有相机进行拍摄得到,从而得到目标照片组。
[0095]
在d2中,将目标照片组中的各张照片进行拼接,得到目标全局照片,该目标全局照片即包含了该目标物体的完整图像信息。具体地,可以获取上述标定过程中,即步骤s202中已确定的相关拼接参数(例如相邻照片间的变换矩阵、投影变换、拼缝融合处理中所用到的参数),直接进行目标照片组的拼接。
[0096]
在d3中,在得到目标全局照片后,可以预设的物体识别模型(例如预先训练得到的神经网络模型),确定目标物体的抓取点在该目标全局照片中的像素坐标。之后,根据上述的手眼标定结果(即从全局照片的像素坐标系到机械臂坐标系之间的对应关系),将该抓取点对应的像素坐标转换为该抓取点对应在机械臂坐标系中的坐标,即目标机械臂坐标。之后,将该目标机械臂坐标发送至机械臂,即可指示机械臂根据该目标机械臂坐标进行移动,准确地定位目标物体的抓取点,实现对目标物体的准确抓取。
[0097]
本申请实施例中,在得到手眼标定结果之后,在检测到目标物体时,能够根据相机组拍摄得到的目标照片组进行拼接得到目标全局照片,并根据该目标全局照片和手眼标定结果准确地确定目标物体对应的目标机械臂坐标,从而能够准确地指示机械臂实现对目标物体的准确抓取。
[0098]
可选地,在上述的步骤c3之前,还包括:
[0099]
指示机械臂搭载预设长度的标定工具依次点过每个所述标定点,并读取所述标定工具点在所述标定点的位置时所述机械臂输出的坐标,得到所述标定点对应的机械臂坐标;其中,所述机械臂输出的坐标为机械臂基坐标系下的坐标;
[0100]
对应地,在上述的步骤d3之后,还包括:
[0101]
将所述目标机械臂坐标发送至所述机械臂,以指示所述机械臂根据所述目标机械臂坐标及机械臂预设参数,抓取所述目标物体;其中,所述机械臂预设参数包括所述标定工具的信息以及输送链起始点坐标。
[0102]
本申请实施例中,机械臂基与视觉框架存在一定的距离,即机械臂基与目标视野区域存在一定的距离,因此,在进行手眼标定时,机械臂需要搭载预设长度的标定工具,才能接触到位于该目标视野区域内的预设物中的标定点。示例性地,该预设长度的标定工具可以为1米的长尖点工具(即长度为一米且端点为尖点探针的工具),该长尖点工具可以安装在机械臂的法兰盘上。
[0103]
在机械臂已安装预设长度的标定工具后,指示该机械臂搭载该预设长度的标定工具,依次点过预设的标定物上的每个标定点,并将标定工具点在该标定点的位置时,机械臂输出的坐标作为该标定点对应的机械臂坐标。具体地,机械臂输出的坐标为机械臂输出至示教器的机械臂基坐标,可以通过与机械臂的示教器建立连接,获取机械臂输出的坐标。
[0104]
对应地,在本申请实施例的步骤d3中,根据目标全局照片及手眼标定结果,确定出的目标机械臂坐标为目标物体的抓取点对应在机械臂基坐标系中的坐标。在步骤d3之后,将该目标机械臂坐标发送至机械臂,指示机械臂根据该目标机械臂坐标和机械臂自身提前设置的机械臂预设参数,计算得到目标机械臂实际需要移动到的输送链坐标系上的坐标位置(简称为输送链目标坐标),并将机械臂移动该该输送链目标坐标,实现对目标物体的抓取。具体地,上述的机械臂预设参数包括标定工具的信息以及输送链起点坐标。其中,标定
工具的信息可以包括表示该机械臂已搭载标定工具的指示信息、表示该机械臂没有搭载标定工具的指示信息以及该标定工具的类型、长度等信息。该输送链起点坐标具体为视觉框架在输送链坐标系中的坐标,该坐标可以标定视觉框架中的物体尚未开始输送时的坐标。
[0105]
具体地,本申请实施例中,机械臂内部根据机械臂预设参数确定“机械臂基坐标系

机械臂工具坐标系

输送链坐标系”之间的内部转换关系,使得机械臂在获取到在机械臂基坐标系下的目标机械臂坐标后,能够通过该内部转换关系,计算得到目标物体的抓取点对应在输送链坐标系下的坐标,从而准确地移动到目标物体的抓取点所在的位置,实现对目标物体的准确抓取。具体地,“机械臂基坐标系

机械臂工具坐标系

输送链坐标系”之间的内部转换关系,可以通过机械臂坐标系到输送链坐标系之间的4*4旋转平移矩阵的逆矩阵r2‑1矩阵来表示,则有:
[0106][0107]
其中,(x

,y

,z

)为输送链坐标系的坐标,(x
r
,y
r
,z
r
)为机械臂坐标系的坐标,(x
c
,y
c
,z
c
)为全局相机坐标系的坐标,r1‑1为全局相机坐标系与机械臂坐标系之间的4*4旋转平移矩阵的逆矩阵,r2‑1为机械臂坐标系到输送链坐标系之间的4*4旋转平移矩阵。为了方便描述,将上式称为机械臂

输送链关系式。
[0108]
即,本申请实施例中,在获取目标照片组并拼接得到目标全局照片后,可以基于上述的像素

相机关系式和相机

机械臂关系式,计算得到目标全局照片识别出的抓取点的像素坐标对应在机械臂坐标系上的目标机械臂坐标;将该目标机械臂坐标发送至机械臂后,机械臂又进一步结合上述的机械臂

输送链关系式,计算该抓取点在输送链坐标系上的坐标,从而联合实现“像素坐标系

全局相机坐标系

机械臂基坐标系

输送链坐标系”的空间坐标链转换,使得机械臂准确地定位目标物体的抓取点,实现对目标物体的准确抓取。
[0109]
本申请实施例中,能够在视觉框架与机械臂距离较远时,通过预设长度的标定工具,方便准确地实现手眼标定。并且,相应地,在这种视觉框架与机械臂距离较远的场景中,后续得到目标机械臂坐标后,可以将该目标机械臂坐标发送至机械臂,指示机械臂根据该目标机械臂坐标,以及包含了该标定工具的信息和输送链起始点坐标的机械臂预设参数,准确地定位目标物体的抓取点,实现对目标物体的准确抓取。
[0110]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0111]
实施例二:
[0112]
图7示出了本申请实施例提供的一种手眼标定装置的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分:
[0113]
该手眼标定装置包括:照片组获取单元71、拼接单元72、标定单元73。
[0114]
其中:
[0115]
照片组获取单元71,用于获取相机组拍摄得到的照片组,其中所述相机组至少包括两个相机,用于协作拍摄目标视野区域;所述照片组包含所述相机组中每个相机分别拍摄得到的照片。
[0116]
拼接单元72,用于拼接所述照片组中的各张照片,得到所述目标视野区域对应的全局照片。
[0117]
标定单元73,用于根据所述全局照片,标定所述全局照片的像素坐标系与机械臂坐标系之间的对应关系,得到手眼标定结果。
[0118]
可选地,所述拼接单元72,包括变换矩阵确定模块及拼接模块:
[0119]
变换矩阵确定模块,用于对于所述照片组中相邻的每两张照片进行特征点匹配及图像配准,确定所述照片组中相邻照片之间的变换矩阵;
[0120]
拼接模块,用于根据所述照片组中相邻照片之间的变换矩阵,对所述照片组中的各张照片进行拼接,得到全局照片。
[0121]
可选地,所述拼接模块,具体用于根据所述照片组中相邻照片之间的变换矩阵,对所述照片组中的各张照片进行投影变换,得到初步拼接照片;将所述初步拼接照片进行拼缝融合处理,得到全局照片。
[0122]
可选地,所述目标视野区域中包含预设的标定物,所述预设的标定物包含预设数目个标定点,所述标定单元73,具体用于获取所述全局照片对应的全局相机参数;所述全局相机参数至少包括预估的全局相机的内参数;根据每个所述标定点在所述全局照片的像素坐标系中的像素坐标及所述全局相机参数,确定每个所述标定点对应的全局相机坐标;所述全局相机坐标为全局相机坐标系中的坐标,所述全局相机坐标系为所述全局相机所在的坐标系;根据每个所述标定点的全局相机坐标以及读取到的每个所述标定点对应的机械臂坐标,确定所述全局相机坐标系与机械臂坐标系的对应关系;其中,所述机械臂坐标为所述标定点对应在所述机械臂坐标系中的坐标;根据所述全局相机参数,以及所述全局相机坐标系与机械臂坐标系的对应关系,确定所述全局照片的像素坐标系与所述机械臂坐标系之间的对应关系,得到手眼标定结果。
[0123]
可选地,所述目标视野区域中各个所述标定点之间的间隔小于或者等于预设阈值。
[0124]
可选地,所述手眼标定装置还包括:
[0125]
目标照片组获取单元,用于若检测到目标物体进入目标视野区域,则启动所述相机组进行拍摄,得到目标照片组;
[0126]
目标全局照片确定单元,用于拼接所述目标照片组,得到包含所述目标物体的完整图像信息的目标全局照片;
[0127]
目标机械臂坐标确定单元,用于根据所述目标全局照片及所述手眼标定结果,确定所述目标物体对应的目标机械臂坐标;所述目标机械臂坐标为所述目标物体的抓取点对应在所述机械臂坐标系中的坐标。
[0128]
可选地,所述手眼标定装置还包括:
[0129]
第一指示单元,用于指示机械臂搭载预设长度的标定工具依次点过每个所述标定点,并读取所述标定工具点在所述标定点的位置时所述机械臂输出的坐标,得到所述标定点对应的机械臂坐标;其中,所述机械臂输出的坐标为机械臂基坐标系下的坐标;
[0130]
第二指示单元,用于将所述目标机械臂坐标发送至所述机械臂,以指示所述机械臂根据所述目标机械臂坐标及机械臂预设参数,抓取所述目标物体;其中,所述机械臂预设参数包括所述标定工具的信息以及输送链起始点坐标。
[0131]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0132]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0133]
实施例三:
[0134]
图8是本申请一实施例提供的通信设备的示意图。如图8所示,该实施例的通信设备8包括:处理器80、存储器81以及存储在所述存储器81中并可在所述处理器80上运行的计算机程序82,例如手眼标定程序。所述处理器80执行所述计算机程序82时实现上述各个手眼标定方法实施例中的步骤,例如图2所示的步骤s201至s203。或者,所述处理器80执行所述计算机程序82时实现上述各装置实施例中各模块/单元的功能,例如图7所示照片组获取单元71至标定单元73的功能。
[0135]
示例性的,所述计算机程序82可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器81中,并由所述处理器80执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序82在所述通信设备8中的执行过程。
[0136]
所述通信设备8可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述通信设备可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是通信设备8的示例,并不构成对通信设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述通信设备还可以包括输入输出设备、网络接入设备、总线等。
[0137]
所称处理器80可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0138]
所述存储器81可以是所述通信设备8的内部存储单元,例如通信设备8的硬盘或内存。所述存储器81也可以是所述通信设备8的外部存储设备,例如所述通信设备8上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器81还可以既包括所述通信设备8的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机程序以及所述通信设备所需的其他程序和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
[0139]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0140]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0141]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0142]
在本申请所提供的实施例中,应该理解到,所揭露的装置/通信设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/通信设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0143]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0144]
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0145]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电
信信号。
[0146]
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1