轨迹生成方法、装置、电子设备、存储介质和3D相机与流程

文档序号:26100583发布日期:2021-07-30 18:11阅读:62来源:国知局
轨迹生成方法、装置、电子设备、存储介质和3D相机与流程

本申请涉及图像处理领域,更具体而言,特别涉及轨迹生成方法、装置、电子设备、存储介质和3d相机。



背景技术:

智能工业机器人已经可以在各个领域代替人类进行作业,例如喷涂,抓取,搬运等。机器人的控制方式大致可以分为两类:一类是预先为机器人的运行规划好移动路径,运行方式等,机器人按照预先规划的行为方式运作,由于以此方式运行时,机器人并不会根据场景中的对象改变自己的动作,因此需要机器人的作业对象,例如待喷涂/待抓取/待搬运的物品,必须严格按照事先规划好位置和姿态进行摆放;另一类则是基于机器人对现场的感知,例如使用视觉技术,使机器人能够感知工业现场物品的位置和摆放等,规划机器人的路径和行为。

在后一种方式中,目前的使用场景中出于通用性和系统复杂度的考虑,为机器人规划出二维的轨迹后,便会令机器人基于该轨迹执行例如喷涂等操作,这对于低高度差或者无高度差的物品来说是可行,然而需要进行喷涂的物品并不总是规则的,换句话说,有的工业场景中,可能需要对向各个方向延伸的管状或线条状物品进行喷涂,或者对堆放在一起的这些物品进行喷涂。在上述场景下进行喷涂时,如果机器人仅按照固定高度,或者说仅在xy平面上移动进行喷涂,而不能在z轴上,即高度上,沿物体延伸方向调整。会出现喷涂不均匀、喷头与物体碰撞等异常情况。



技术实现要素:

鉴于上述问题,提出了本发明以便克服上述问题或者至少部分地解决上述问题。具体地,本发明的创新之一在于,为了使得基于视觉识别的机器人系统能够正确地运作于具有三维特点的对象,申请人提出了一种获取机器人的二维轨迹后将其三维化的方法,该方法中,在通过三维点云获取了物品的二维图像后,先基于二维图像获取机器人运行的轨迹点,再获取该轨迹点的高度信息,结合二维的轨迹点以及轨迹点的高度信息从而获取到机器人运行的三维轨迹点。机器人基于三维轨迹点进行喷涂等操作,能够大大提高对有较大的高度差的待喷涂物品进行喷涂时的准确性。

本发明的创新之二在于,对于特定的工业场景,即待喷涂物品为经过各个方向的物品,例如在xyz轴方向均有扭曲的钢管,且喷涂要求是顺着扭曲的钢管进行喷涂的工业场景,申请人发明了一种专用于此场景或类似场景的轨迹生成方法,该方法首先基于物品的二维图像,生成物品的轮廓,之后基于轮廓生成二维的顺着物品扭曲的轨迹点,之后再将二维的顺着物品扭曲的轨迹点基于物品的高度信息转换为顺着物品在三维空间扭曲的轨迹点。机器人基于该三维轨迹点进行喷涂等操作,能够大大提高该特定场景下进行喷涂的准确性。

本发明的创新之三在于,对于另一个特定的工业场景,即待喷涂物品为放置在一起的多个经过各个方向的物品,例如多个如上所述的扭曲的钢管堆放在一起,且喷涂要求是能把这堆钢管表面都喷上就行,无需考虑是否会喷涂到钢管之外的工业场景,申请人发明了一种专用于此场景或类似场景的轨迹生成方法,该方法首先基于这一堆物品的二维图像,生成这一堆物品的外接矩形,基于物品的外接矩形,生成二维的能够全面覆盖整个外接矩形的喷涂轨迹点,之后再将二维的轨迹点基于物品的高度信息转换为在三维空间扭曲且全面覆盖整个面的轨迹点。机器人基于该三维轨迹点进行喷涂等操作,能够有效避免该特定场景下进行喷涂时与物品的碰撞。

本申请权利要求和说明书所披露的所有方案均具有上述一个或多个创新之处,相应地,能够解决上述一个或多个技术问题。具体地,本申请提供一种轨迹生成方法、装置、电子设备、存储介质和3d相机。

本申请的实施方式的轨迹生成方法包括:

获取物品的二维图像;

基于物品的二维图像获取物品的轮廓;

基于所述物品的轮廓生成二维轨迹点;

获取二维轨迹点的高度信息;

基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点。

在某些实施方式中,所述获取二维轨迹点的高度信息包括:根据轨迹点处的物品像素点的深度信息获取轨迹点的高度信息。

在某些实施方式中,在基于物品的二维图像获取物品的轮廓之前,对二维图像执行膨胀和/或腐蚀操作。

在某些实施方式中,所述基于所述物品的轮廓生成二维轨迹点包括:从第一角轮廓点起,到第二角轮廓点为止,在物品轮廓上每隔特定的距离选择一轮廓点,基于所述轮廓点生成二维轨迹点。

在某些实施方式中,所述特定的距离是基于预设的轨迹点间距和/或预设的总轨迹点数计算得到的。

在某些实施方式中,所述第一角轮廓点和第二角轮廓点在物品轮廓的同一长边上。

在某些实施方式中,所述基于所述轮廓点生成二维轨迹点包括:在每一个所选择的轮廓点处,计算中点,将所述中点作为物品的轨迹点。

在某些实施方式中,所述计算中点包括:计算物品轮廓在所选择的轮廓点处的切线,计算所述切线在所述轮廓点处的垂线,计算所述垂线与物品轮廓的两条长边的交点的连线,计算该连线的中点。

本申请的实施方式的轨迹生成装置包括:

二维图像获取模块,用于获取物品的二维图像;

轮廓获取模块,用于基于物品的二维图像获取物品的轮廓;

二维轨迹点生成模块,用于基于所述物品的轮廓生成二维轨迹点;

高度信息获取模块,用于获取二维轨迹点的高度信息;

三维轨迹点生成模块,用于基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点。

在某些实施方式中,所述高度信息获取模块具体用于根据轨迹点处的物品像素点的深度信息获取轨迹点的高度信息。

在某些实施方式中,轮廓获取模块还用于在基于物品的二维图像获取物品的轮廓之前,对二维图像执行膨胀和/或腐蚀操作。

在某些实施方式中,所述二维轨迹点生成模块具体用于从第一角轮廓点起,到第二角轮廓点为止,在物品轮廓上每隔特定的距离选择一轮廓点,基于所述轮廓点生成二维轨迹点。

在某些实施方式中,所述特定的距离是基于预设的轨迹点间距和/或预设的总轨迹点数计算得到的。

在某些实施方式中,所述第一角轮廓点和第二角轮廓点在物品轮廓的同一长边上。

在某些实施方式中,所述基于所述轮廓点生成二维轨迹点包括:在每一个所选择的轮廓点处,计算中点,将所述中点作为物品的轨迹点。

在某些实施方式中,所述计算中点包括:计算物品轮廓在所选择的轮廓点处的切线,计算所述切线在所述轮廓点处的垂线,计算所述垂线与物品轮廓的两条长边的交点的连线,计算该连线的中点。

本申请的实施方式的电子设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施方式的轨迹生成方法。

本申请的实施方式的计算机可读存储介质其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施方式的轨迹生成方法。

本申请的实施方式的3d相机包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施方式的轨迹生成方法。

本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:

图1是本申请某些实施方式的轨迹生成方法的流程示意图;

图2是本申请某些实施方式的基于轮廓的轨迹生成方法的流程示意图;

图3是本申请某些实施方式的物品轮廓的示意图;

图4是本申请某些实施方式的物品中点计算方法的示意图;

图5是本申请某些实施方式的基于外接矩形的轨迹生成方法的流程示意图;

图6是本申请某些实施方式的基于外接矩形生成机器人移动路径的示意图;

图7是本申请某些实施方式的轨迹生成装置的结构示意图;

图8是本申请某些实施方式的基于轮廓的轨迹生成装置的结构示意图;

图9是本申请某些实施方式的基于外接矩形的轨迹生成装置的结构示意图;

图10是本申请某些实施方式的电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的轨迹生成方法,包括:

步骤s100,获取物品的三维点云;

步骤s110,基于物品的三维点云生成物品的二维图像;

步骤s120,基于物品的二维图像生成二维轨迹点;

步骤s130,获取二维轨迹点的高度信息;

步骤s140,基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点。

在步骤s100中,可以通过3d工业相机获取点云信息,3d工业相机一般装配有两个镜头,分别从不同的角度捕捉待抓取物品组,经过处理后能够实现物体的三维图像的展示。将待抓取物品组置于视觉传感器的下方,两个镜头同时拍摄,根据所得到的两个图像的相对姿态参数,使用通用的双目立体视觉算法计算出待填充物体的各点的x、y、z坐标值及各点的坐标朝向,进而转变为待抓取物品组的点云数据。具体实施时,也可以使用激光探测器、led等可见光探测器、红外探测器以及雷达探测器等元件生成点云,本发明对具体实现方式不作限定。

本发明可以用在使用机器人进行物品喷涂的工业场景中,在该场景中可以通过使用机器人视觉技术,基于本发明的方法计算出三维的喷涂轨迹点,再令机器人沿着三维喷涂轨迹点执行喷涂。通常可以将物品分为正反两面,相应地,喷涂也按照正反两面进行,正面和反面所使用的喷涂方法是一样的。

在步骤s110中,为了方便数据的处理,提高效率,可将获取的三维点云数据正投影映射到二维平面上。作为一个示例,也可以生成该正投影对应的深度图。可以沿垂直于物品喷涂面的方向获取与三维物品区域相对应的二维彩色图以及对应于二维彩色图的深度图。其中,二维彩色图对应于与预设方向垂直的平面区域的图像;对应于二维彩色图的深度图中的各个像素点与二维彩色图中的各个像素点一一对应,且各个像素点的取值为该像素点的深度值。

获取的二维图像可以是二维彩色图,也可以是只包括两个值的二维图像,即图像的所有像素点的取值为0,或者某个非0值,例如255(像素点的值为0时是黑色,值为255时是白色)。也可以在获取二维彩色图后,将其转化为包括两个值的二维图像。

为了方便获取二维图像,可以使用相机正对着喷涂面进行拍照,也可以以一定的角度进行拍摄,如果不正对着喷涂面进行拍照进行拍摄,至少需要在拍摄的图像中能够看到要喷涂的面,否则无法进行校正。获得3d点云后,可以将物体点云从拍摄时的相机坐标系校正到z轴垂直于物品待喷涂的面的坐标系下,也就是说,可以基于相机的拍摄参数将拍到的物品的3d点云“摆正”,将物品矫正为喷涂面正对着镜头的位姿。

在步骤s120中,生成二维轨迹点的方法与具体的工业场景联系紧密,不同的喷涂需求和场景会有不同的、各具特色的轨迹点生成方法。本实施例中不对生成二维轨迹点的方法进行限定,任意的二维轨迹点生成方法都可以适用于本实施例的方法。

轨迹点的数量可以根据实际情况的需要而预先设置。一般来说,轨迹点的数量越多,则机器人的运动路径与理想的轨迹路径的一致程度越高,相应地,控制复杂度也越高。可以预设轨迹点总数,也可以预设轨迹点之间的间隔。在确定了机器人的移动路径后,可以按照预设的轨迹点间隔,选取轨迹点;若预设的是轨迹点的总数,则可以基于路径长度以及轨迹点总数计算出轨迹点的间隔后,再根据轨迹点的间隔选取轨迹点。

在步骤s130中,可以基于物品的三维点云获取物品的深度图,深度图中包含了各个像素点的深度信息,该深度信息表示的是该点与相机的距离。像素点的高度是在将喷涂面作为xy面时,像素点在z轴上的取值,像素点的深度信息与像素点的高度信息具有相关性,可以基于深度信息来获取像素点的高度信息。二维轨迹点是根据二维图像生成的点,通常位于二维图像内,为了求取该二维轨迹点处的物品的局部高度信息,可以先找到二维图像上与该轨迹点最相关的像素点(如果基于二维图像的轮廓生成轨迹点,也可以先找到轮廓上与轨迹点最相关的像素点),例如距该轨迹点距离最近的像素点,然后计算该像素点的高度信息。在步骤s140中,将获取与二维轨迹点最相关的物品像素点的高度信息赋予该二维轨迹点,从而将该二维轨迹点转换为三维轨迹点。以此方式,机器人不仅能够能够基于视觉技术实时规划出平面的轨迹,还能够根据识别出轨迹的高度,从而可以在xyz轴上规划移动路径,这样即便喷涂对象为在三个方向上延伸的形状不规则的线条状物品或者待喷涂面凹凸不平的物品,都能够达到良好的喷涂效果,避免喷涂不均匀或者不平整。

获取3d轨迹点后,有时在高度上的轨迹整体上不够平滑。而平滑的移动轨迹点,能够使得机器人根据轨迹点移动时也能更为顺滑,不卡顿,从而使得喷漆更均匀。为此,在获取轨迹点的高度信息后,可以对生成的3d轨迹点在高度方向上进行平滑处理,使得整个轨迹点在高度上平滑衔接。可以用高斯平滑进行过滤、平滑处理,使得3d轨迹点均匀,平滑。在实际的工业场景中,待喷涂物品可能呈线条状并向各个方向弯曲,而喷涂工艺则要求顺着物品的线条喷涂,例如对于一根向各个方向弯曲的钢管,可能要求顺着钢管在钢管的表面上喷漆,因此需要机器人顺着物品的线条走位并喷涂。发明人开发了一种专用于此种场景下的基于物品轮廓的喷涂轨迹生成方法,这是本发明的重点之一。图2示出了根据本发明一个实施例的基于物品轮廓的轨迹生成方法,包括:

步骤s200,获取物品的二维图像;

步骤s210,基于物品的二维图像获取物品的轮廓;

步骤s220,基于所述物品的轮廓生成二维轨迹点;

步骤s230,获取二维轨迹点的高度信息;

步骤s240,基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点。在步骤s200中,可以使用与步骤s100和s110类似的方式获取物品的二维图像,此处不再赘述。

在步骤s210中,由于在工业现场中采集物品点云时,可能因为光照问题或者物品本身反光的问题导致采集的点云存在缺失,甚至断裂的情况。因此在获取物品的二维图像后,可以先对该二维图像进行图像形态学的处理,使得二维图像完整,不存在断裂的情形,并且最好能让图像适当地变宽以方便进行后续轮廓识别以及轨迹点生成的处理步骤。

可以在获取二维图像信息后,对图像执行膨胀处理,以填补点云缺失、断裂的位置。例如,对于图像上的每一个非黑的像素点(非黑的像素点是物品的像素点,没有物品存在的位置,像素点是黑的),可以把该点周围一定数量的点,例如8-25个点,设为与该点相同的值。如果二维图像中只存在白色或黑色的像素点(即该二维图像中的像素点要么值为0,要么值为255),该步骤相当于把每个白色的像素点周围都抹白,因此假如二维图像存在缺失或断裂,该操作会将二维图像的缺失或断裂部分全部填充为有颜色的像素点,如此处理之后,二维图像就会变得完整,不存在缺失或断裂。

在经过膨胀处理后,虽然图像中间的缺失或断裂能够被填充,但是二维图像整体上会因为膨胀而变“胖”,适当的膨胀有助于后续进一步的求轮廓,求轨迹点等图像处理操作,然而膨胀过多则可能使得二维图像失真,导致最终确定的轨迹点位置不准确。为了避免膨胀过多,也可以对膨胀后的二维图像执行腐蚀操作。例如,对于图像上的每一个黑色像素点,可以把该点一定数量的点,例如8-25个点,均设为0。如此操作,相当于把二维图像上每个黑色的像素点周围都涂黑。经过腐蚀处理后,二维图像边缘位置的附近的点会被涂黑,因此二维图像整体上会变“瘦”,从而使得处理后的二维图像更接近于真实的物品,基于该处理后的二维图像生成的轨迹点更准确。

在步骤s220中,可以先对物品进行轮廓分析,以得到待物品的轮廓。可以通过边缘检测方法获取物品的轮廓,边缘是指其周围像素灰度急剧变化的那些象素的集合,它是图像最基本的特征。边缘存在于目标、背景和区域之间,所以,它是图像分割所依赖的最重要的依据。通过提取图像中不连续部分的特征来确定物品的边缘,例如两边像素的灰度值明显不同的位置,或者灰度值由小到大再到小的变化转折点的位置。也可以通过深度学习算法提取物品的边缘,此处不再赘述。

可以理解的是,物品的物品轮廓可以为任意形状,例如为规则的圆形、矩形等,也可以为不规则形状,例如,各种形状的小零件,向各个方向弯曲的钢管等。作为一个示例,图3示出了本实施例的物品轮廓,轮廓中四个角的像素点为角轮廓点,角轮廓点可以通过获取物品二维图像的外接矩形,基于物品像素点与外接矩形的关系获取物品轮廓的角轮廓点。机器人移动时所依据的轨迹点为在该物品的二维图像中按照一定间隔获取的多个中点。其中,一定间隔可以是预设的,例如,预设10mm的间隔,则获取一个轨迹点后,间隔10mm获取下一个轨迹点;也可以预设轨迹点总数,则可以根据该轨迹点总数以及物品的长度计算轨迹点间隔,再依据该间隔获取轨迹点。

为了获取机器人移动的轨迹点,可以从任一角轮廓点开始,以物品轮廓的一长边为基准(物品轮廓包括两个窄边和两个长边,可以以任一长边为基准),沿着该长边按照一定间隔选取轮廓点,对于每个选取的轮廓点(包括角轮廓点),计算物品二维图像局部(即该轮廓点处)的中点作为轨迹点。如图4所示,对于任一物品局部的轮廓点a,可以先计算该a所在的长边在a处的切线a,接着计算该切线在a处的垂线b,垂线b与物品轮廓的两个长边相交,形成两个交点a和b,则线段ab的中点c即是所求的中点,将该中点作为机器人移动的轨迹点。对于步骤s230和s240,可以采用与步骤s130和s140类似的方式实现,此处不再赘述。在一些工业场景中,待喷涂的是排列在一起的多个物品,而喷涂工艺的要求是无需精准,但求无遗漏地在每个物品表面喷涂(即就算会喷到物品之外也没关系,只要每个物品表面都能喷上就行),例如多根上个实施例中的向各个方向弯曲的钢管放置在一起,要求为这一堆钢管进行喷涂。为此,发明人开发了一种专用于此种场景下的基于物品外接矩形的喷涂轨迹生成方法,这是本发明的重点之一。该方法同样适用于待喷涂物品的待喷涂表面可能较为宽大,并且凹凸不平,喷涂工艺要求涂满整个表面的工业场景。为了简洁,本实施方式中的“物品”可以指代单个物品,也可以指代多个物品构成的物品组。图5示出了根据本发明一个实施例的基于物品外接矩形的轨迹生成方法,包括:

步骤s300,获取物品的二维图像;

步骤s310,计算所述二维图像的外接矩形;

步骤s320,基于所述外接矩形生成二维轨迹点;

步骤s330,获取二维轨迹点的高度信息;

步骤s340,基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点。在步骤s300中,可以使用与步骤s100和s110类似的方式获取物品的二维图像,此处不再赘述。

在步骤s310中,对于由多个物品构成的物品组,由于并不需要沿着每个物品的弯曲或者延伸方向进行喷涂,因此可以忽略单个物品的具体轮廓,而是划出一片能包括所有物品的区域,在该区域上进行均匀、高覆盖率、低重复率的盲喷,该区域应当能包括所有物品,但不宜过大,否则会导致路径计算更加复杂且浪费。为了求取这样的区域,在获得物品的二维图像后,将多个物品的二维图像视为一个整体,计算其外接矩形,之后即可基于该外接矩形的区域执行机器人运动路径的规划;对于单个物品,直接计算该物品的外接矩形即可。

对于步骤s320,获取物品的外接矩形之后,可以将外接矩形沿纵向或横向按照一定的间隔进行划分,可以沿着划分方向在一边上按照一定的间隔取多个点,在每一个点处,计算该边的切线,将该切线作为划分线。作为一个示例,图6示出了物品以及物品的外接矩形的划分线,划分线与外接矩形的两边相交,沿着物品被划分的方向将该边上的外接矩形的角点以及划分线与矩形的交点分别记为p0,p1,p2…pn+1,对侧的角点以及交点记为p0’,p1’,p2’…pn+1’。这些点将作为机器人运动路径的拐点使用。相邻拐点之间的间隔(例如p0和p1之间)可以根据实际情况的需要任意设置,通常来说间隔越小,则喷涂越密,间隔越大,则喷涂越稀疏,本发明优选为20mm。

在确定机器人移动路径的轨迹点之前,可以先设定轨迹点的间距,可以直接预设特定的间距或者预设轨迹点的总数,再基于路径长度以及轨迹点总数计算轨迹点的间距。间距和总数可以根据待喷涂物品的高度变化来确定,大体上来说,如果待喷涂物品表面的高度变化较大,则需要设置较多的轨迹点,这样获取的规矩点更贴近真实需要的轨迹;而高度变化较小的话,则可以设置较少的轨迹点。

在规划机器人移动路径的轨迹点时,可以先从外接矩形的四个角点中任选一个作为轨迹点的起始位置,机器人的移动路径应当从该起始轨迹点开始沿着与划分线平行的方向,在碰到拐点时,按照z字形沿着外接矩形的边或者划分线转向,遍历划分线以及外接矩形的边,按照预设的轨迹点间距选取轨迹点,直到遍历完所有的与划分线平行的外接矩形的边并达到角点为止。作为一个示例,在图6中选取一个角点,例如p0作为起始点,则机器人的运动路径应当为从p0开始,向p0’移动,到达p0’之后右转90度,向p1’移动,到达p1’后左转90度,向着p1移动,到达p1后,按照z字形轨迹右转90度,以此方式,直到走过最右侧的边并到达pn+1或pn+1’为之,即按照p0→p0’→p1’→p1…pn+1或pn+1’的路径运动。在该运动路径上基于前述的轨迹点间隔生成二维轨迹点。

对于步骤s330和s340,可以采用与步骤s130和s140类似的方式实现,此处不再赘述。

根据上述实施例,首先,本发明提出了基于机器人视觉技术的通过二维轨迹点生成三维轨迹点的整体性的方法,该方法避免了机器人在进行喷涂时由于物品高度可能导致的喷涂不均匀问题或物体与喷头的碰撞问题;其次,针对特定的工业场景,即使用机器人喷涂不规则物品,例如向各个方向弯曲的长条状物品时,本发明也能够准确地生成沿着物品表面的在三个方向上延伸的轨迹;第三,针对另一个特定的工业场景,即使用机器人喷涂多个并列的不规则形状物品,例如多个如上所述的向各个方向弯曲的长条状物品或者喷涂表面具有较大高度起伏的物品时,本发明也能够准确地生成立体且能够全面覆盖全部物品或整个物品表面的三维轨迹。由此可见,本发明解决了如何基于机器人视觉生成机器人三维的移动轨迹以及特定工业场景中如何生成二维轨迹并基于该二维轨迹生成三维轨迹的问题。

另外,本领域技术人员还能够针对上述实施例进行各种改动和变形:

本发明的各个实施方式中的机器人可以是工业机器人手臂,这些机器人手臂可以是通用的,也可以是专用于进行喷涂的。本发明可以对任意物体进行喷涂,例如玻璃,桌板,钢板,坐垫,钢管等,本发明对具体应用领域不作限制,作为优选的实施例,本发明特别适用于在为单个不规则钢管沿着其表面喷涂或者多个这样的钢管堆在一起,为堆在一起的钢管喷涂。

在一些实施方式中,可以在预先建立通信连接的工业机器人的操作末端安装喷涂头,根据喷涂头的喷涂尺寸和喷涂头上的预设移动参考点,生成待喷涂物体的喷涂轨迹信息。

可以理解的是,移动参考点为喷涂头移动时定位其位置所用,在移动过程中定位时,喷涂头位置以该点为参考,而不定位喷涂头移动参考点以外部位。具体移动参考点在喷涂头上的哪一部位,可以根据具体需求而预先设定,本实施例不做限制。

喷涂头的喷涂头形状可以为任意形状,例如可以为矩形,或者圆形等。可选地,上述的喷涂头的移动参考点可以根据需求设置在喷涂头的某一端,也可以设置在喷涂头的中心位置,例如喷涂头为矩形则该移动参考点可设置在喷涂头一端的中点或角点,或者设置在喷涂头对角线交叉点,即中心点。在另一可选实施例中,喷涂头还可以为圆形,移动参考点可以为喷涂头的圆心、或者可位于该圆形喷涂头的圆周上。

需要说明的是,本实施例中的喷涂尺寸可以为喷涂头的实际尺寸,例如在喷涂头的喷涂头形状为矩形时,喷涂头的喷涂尺寸可以包括宽度以及长度;在喷涂头的喷涂头形状为圆形时,喷涂头的喷涂尺寸可以为喷涂直径。可选地,喷涂尺寸还可以为喷涂头在待喷涂物体上投影所得阴影对应尺寸。

可以发送轨迹信息至工业机器人,以使得移动参考点沿轨迹信息移动,可选地,可基于tcp协议、http协议、grpc协议(googleremoteprocedurecallprotocol,谷歌远程过程调用协议)与上述工业机器人进行通信,进而发送上述轨迹信息。

在需要通过工业机器人对待喷涂物品进行全覆盖喷涂时,结合喷涂头的喷涂尺寸和喷涂头上的预设移动参考点,生成待喷涂物体的轨迹信息,并将喷涂轨迹信息提供给工业机器人,以使得移动参考点沿喷涂轨迹信息移动,进而实现对待喷涂物体表面的全覆盖且无重复喷涂。

为了使得机器人走更少的多余轨迹,可将轨迹点的初始点设置在轨迹路径上与机器人初始位姿最为相近的位置,例如:将初始点设置在靠近机器人那条边的中间。也即是说,在确定机器人的初始位姿之后,可将距离该机器人的初始位姿最近的那条边的轨迹路径上的中间点作为轨迹点的初始点,之后可根据机器人的固有属性在轨迹路径上设置其他轨迹点,进而可以得到轨迹点信息。值得一提的是,该轨迹点信息可包括但不限于轨迹点的坐标、轨迹点的初始轨迹点以及轨迹点的走向(即轨迹点走位顺序)等。在得到轨迹点信息之后,可采用通信方式将轨迹点信息发送至机器人。机器人在接收到轨迹点信息时,可基于轨迹点信息,控制自身的喷涂头进行喷涂。

在某些实施方式中,根据机器人的固有属性以及机器人初始位姿,在轨迹路径上生成轨迹点信息,包括:

确定轨迹路径中的拐角处和直线处;

根据机器人的喷涂速率、运动速度在拐弯处以及直线处以相应密度设置轨迹点;

根据机器人初始位姿确定轨迹点的走位顺序,以得到轨迹点信息。

具体地,确定轨迹路径中的拐角处和直线处,可以基于轨迹路径上各点的坐标值间的关系确定。拐角处相邻点的x坐标和y坐标均会不一样,而直线处相邻点,可能其x坐标会一样或y坐标会一样。例如:假设待喷涂物品的形状为矩形,则该待喷涂物品的轨迹路径中,四个角的拐角处相邻点的x坐标和y坐标均会不一样,而上边直线处相邻点的y坐标会一样而x坐标会不一样,下边直线处相邻点的y坐标会一样而x坐标会不一样且y坐标相对于上边直线处数值小,左边直线处相邻点的x坐标会一样而y坐标会不一样,右边直线处相邻点的x坐标会一样而y坐标会不一样且x坐标相对于左边直线处数值小。

机器人进行喷涂时,会基于一定的喷涂速率控制喷涂头进行喷涂。喷涂速率作为机器人的固有属性,影响本实施例中喷涂的效果。为了能够方便参考机器人的喷涂速率在轨迹路径上设置轨迹点,以避免堆料情况,可确定该机器人的喷涂速率。

机器人运动的固有属性还体现为,若机器人在拐角处和直线处设置同样的运动速度参数,其在拐角处和直线处的运动速度会不同,具体拐角处运动速度慢于直线处运动速度。而实际情况下机器人另一固有属性喷涂速率是不变的,因此对于合适直线的喷涂速率与运动速度参数,在拐弯处就会造成堆料情况。在某些实施方式中,在保证机器人沿着所确定的轨迹路径移动的前提下,在轨迹路径上的拐角处设置的轨迹点的间距可以比直线处设置的轨迹点间距大些,以达到直线处运动速度与拐角处运动速度的平衡,进而解决拐角可能造成的堆料现象。可在直线处设置一最小间距用于限定直线处轨迹点的间距,防止直线处由于机器人由于轨迹点数量过多而出现卡顿堆料的情况。还可在直线处和拐角处设置数值不同的运动速度参数以达到直线处运动速度与拐角处运动速度的平衡,解决由于固有属性导致的堆料问题。

根据机器人初始位姿确定轨迹点的走位顺序,以得到所述轨迹点信息。可以理解,为了使得机器人走更少的多余轨迹,设置轨迹点的初始点为靠近机器人初始位姿的点,例如:可以为待喷涂物品的靠近机器人那条边的中间部位对应的轨迹点。也即是说,在确定机器人的初始位姿之后,可将距离该机器人的初始位姿最近的那条边的轨迹路径上的中间点对应的轨迹点(或者距离该点最近的轨迹点)作为轨迹点的初始轨迹点,之后,可以顺时针走位其他轨迹点,也可以逆时针走位其他轨迹点。

在某些实施方式中,轨迹点信息具体可以包括轨迹点坐标,初始轨迹点坐标、轨迹点的走位顺序、轨迹点的运动速度参数等。

在某些实施方式中,轨迹点信息还包括:轮廓点对应的法向信息。

具体地,法向信息可以为各轮廓点云对应的法向量相对于一固定量的角度值,还可以为各轮廓点云中相应走位顺序在后的点云相对于其前一点云的偏离角度值。

图7示出了根据本发明又一个实施例的轨迹生成装置的结构示意图,该装置包括:

三维点云获取模块400,用于获取物品的三维点云,即用于实现步骤s100;

二维图像生成模块410,用于基于物品的三维点云生成物品的二维图像,即用于实现步骤s110;

二维轨迹点生成模块420,用于基于物品的二维图像生成二维轨迹点,即用于实现步骤s120;

高度信息获取模块430,用于获取二维轨迹点的高度信息,即用于实现步骤s130;

三维轨迹点生成模块440,用于基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点,即用于实现步骤s140。

图8示出了根据本发明又一个实施例的基于物品轮廓的轨迹生成装置的结构示意图,该装置包括:

二维图像获取模块500,用于获取物品的二维图像,即用于实现步骤s200;

轮廓获取模块510,用于基于物品的二维图像获取物品的轮廓,即用于实现步骤s210;

二维轨迹点生成模块520,用于基于所述物品的轮廓生成二维轨迹点,即用于实现步骤s220;

高度信息获取模块530,用于获取二维轨迹点的高度信息,即用于实现步骤s230;

三维轨迹点生成模块540,用于基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点,即用于实现步骤s240。

图9示出了根据本发明又一个实施例的基于外接矩形的轨迹生成装置的结构示意图,该装置包括:

二维图像获取模块600,用于获取物品的二维图像,即用于实现步骤s300;

外接矩形计算模块610,用于计算所述二维图像的外接矩形,即用于实现步骤s310;

二维轨迹点生成模块620,用于基于所述外接矩形生成二维轨迹点,即用于实现步骤s320;

高度信息获取模块630,用于获取二维轨迹点的高度信息,即用于实现步骤s330;

三维轨迹点生成模块640,用于基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点,即用于实现步骤s340。

上述图7-图9所示的装置实施例中,仅描述了模块的主要功能,各个模块的全部功能与方法实施例中相应步骤相对应,各个模块的工作原理同样可以参照方法实施例中相应步骤的描述,此处不再赘述。另外,虽然上述实施例中限定了功能模块的功能与方法的对应关系,然而本领域技术人员能够理解,功能模块的功能并不局限于上述对应关系,即特定的功能模块还能够实现其他方法步骤或方法步骤的一部分。例如,上述实施例描述了三维轨迹点生成模块640用于实现步骤s340的方法,然而根据实际情况的需要,三维轨迹点生成模块640也可以用于实现步骤s310、s320或s330的方法或方法的一部分。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施方式的方法。需要指出的是,本申请实施方式的计算机可读存储介质存储的计算机程序可以被电子设备的处理器执行,此外,计算机可读存储介质可以是内置在电子设备中的存储介质,也可以是能够插拔地插接在电子设备的存储介质,因此,本申请实施方式的计算机可读存储介质具有较高的灵活性和可靠性。

图10示出了根据本发明实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定,优选地,该电子设备可以是3d相机。

如图10所示,该电子设备可以包括:处理器(processor)902、通信接口(communicationsinterface)904、存储器(memory)906、以及通信总线908。

其中:

处理器902、通信接口904、以及存储器906通过通信总线908完成相互间的通信。

通信接口904,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器902,用于执行程序910,具体可以执行上述方法实施例中的相关步骤。

具体地,程序910可以包括程序代码,该程序代码包括计算机操作指令。

处理器902可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器906,用于存放程序910。存储器906可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序910具体可以用于使得处理器902执行上述方法实施例中的各项操作。

概括地说,本发明的发明内容包括:

一种轨迹生成方法,包括:

获取物品的三维点云;

基于物品的三维点云生成物品的二维图像;

基于物品的二维图像生成二维轨迹点;

获取二维轨迹点的高度信息;

基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点。

可选的,所述基于物品的三维点云生成物品的二维图像包括将物品的三维点云沿物体表面的垂直方向进行映射并生成二维图像。

可选的,所述基于物品的二维图像生成二维轨迹点包括:基于预设的轨迹点数量和/或轨迹点间隔生成二维轨迹点。

可选的,所述获取二维轨迹点的高度信息包括:基于轨迹点处的物品像素点的深度信息获取轨迹点的高度信息。

可选的,还包括:对生成的三维轨迹点在高度上进行平滑处理。

可选的,所述基于物品的二维图像生成二维轨迹点包括:基于物品的轮廓和/或基于二维图像的外接矩形生成二维轨迹点。

一种轨迹生成装置,包括:

三维点云获取模块,用于获取物品的三维点云;

二维图像生成模块,用于基于物品的三维点云生成物品的二维图像;

二维轨迹点生成模块,用于基于物品的二维图像生成二维轨迹点;

高度信息获取模块,用于获取二维轨迹点的高度信息;

三维轨迹点生成模块,用于基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点。

可选的,所述二维图像生成模块具体用于将物品的三维点云沿物体表面的垂直方向进行映射并生成二维图像。

可选的,所述二维轨迹点生成模块基于预设的轨迹点数量和/或轨迹点间隔生成二维轨迹点。

可选的,所述高度信息获取模块具体用于根据轨迹点处的物品像素点的深度信息获取轨迹点的高度信息。

可选的,所述三维轨迹点生成模块还用于对生成的三维轨迹点在高度上进行平滑处理。

可选的,所述二维轨迹点生成模块基于物品的轮廓和/或基于二维图像的外接矩形生成二维轨迹点。

一种轨迹生成方法,包括:

获取物品的二维图像;

基于物品的二维图像获取物品的轮廓;

基于所述物品的轮廓生成二维轨迹点;

获取二维轨迹点的高度信息;

基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点。

可选的,所述获取二维轨迹点的高度信息包括:根据轨迹点处的物品像素点的深度信息获取轨迹点的高度信息。

可选的,在基于物品的二维图像获取物品的轮廓之前,对二维图像执行膨胀和/或腐蚀操作。

可选的,所述基于所述物品的轮廓生成二维轨迹点包括:从第一角轮廓点起,到第二角轮廓点为止,在物品轮廓上每隔特定的距离选择一轮廓点,基于所述轮廓点生成二维轨迹点。

可选的,所述特定的距离是基于预设的轨迹点间距和/或预设的总轨迹点数计算得到的。

可选的,所述第一角轮廓点和第二角轮廓点在物品轮廓的同一长边上。

可选的,所述基于所述轮廓点生成二维轨迹点包括:在每一个所选择的轮廓点处,计算中点,将所述中点作为物品的轨迹点。

可选的,所述计算中点包括:计算物品轮廓在所选择的轮廓点处的切线,计算所述切线在所述轮廓点处的垂线,计算所述垂线与物品轮廓的两条长边的交点的连线,计算该连线的中点。

一种轨迹生成装置,包括:

二维图像获取模块,用于获取物品的二维图像;

轮廓获取模块,用于基于物品的二维图像获取物品的轮廓;

二维轨迹点生成模块,用于基于所述物品的轮廓生成二维轨迹点;

高度信息获取模块,用于获取二维轨迹点的高度信息;

三维轨迹点生成模块,用于基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点。

可选的,所述高度信息获取模块具体用于根据轨迹点处的物品像素点的深度信息获取轨迹点的高度信息。

可选的,轮廓获取模块还用于在基于物品的二维图像获取物品的轮廓之前,对二维图像执行膨胀和/或腐蚀操作。

可选的,所述二维轨迹点生成模块具体用于从第一角轮廓点起,到第二角轮廓点为止,在物品轮廓上每隔特定的距离选择一轮廓点,基于所述轮廓点生成二维轨迹点。

可选的,所述特定的距离是基于预设的轨迹点间距和/或预设的总轨迹点数计算得到的。

可选的,所述第一角轮廓点和第二角轮廓点在物品轮廓的同一长边上。

可选的,所述基于所述轮廓点生成二维轨迹点包括:在每一个所选择的轮廓点处,计算中点,将所述中点作为物品的轨迹点。

可选的,所述计算中点包括:计算物品轮廓在所选择的轮廓点处的切线,计算所述切线在所述轮廓点处的垂线,计算所述垂线与物品轮廓的两条长边的交点的连线,计算该连线的中点。

一种轨迹生成方法,其特征在于,包括:

获取物品的二维图像;

计算所述二维图像的外接矩形;

基于所述外接矩形生成二维轨迹点;

获取二维轨迹点的高度信息;

基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点。

可选的,所述获取物品的二维图像包括将物品的三维点云沿物体表面的垂直方向进行映射并生成二维图像。

可选的,所述获取二维轨迹点的高度信息包括:根据轨迹点处的物品像素点的深度信息获取轨迹点的高度信息。

可选的,对生成的三维轨迹点在高度上进行平滑处理。

可选的,所述基于所述外接矩形生成二维轨迹点包括:在外接矩形的一边按照预定间隔生成该边的切线,将切线与外接矩形两边的交点之间的线段作为分界线,基于所述分界线生成二维轨迹点。

可选的,所述基于分界线生成所述二维轨迹点包括:从外接矩形任意角点开始,以外接矩形的角点以及分界线与边的交点作为拐点,以z字形遍历分界线以及与分界线平行的边,从而生成所述二维轨迹点。

可选的,在遍历分界线以及与分界线平行的边时,按照特定的距离生成轨迹点。

可选的,所述特定的距离是基于预设的轨迹点间距和/或预设的总轨迹点数计算得到的。

一种轨迹生成装置,包括:

二维图像获取模块,用于获取物品的二维图像;

外接矩形计算模块,用于计算所述二维图像的外接矩形;

二维轨迹点生成模块,用于基于所述外接矩形生成二维轨迹点;

高度信息获取模块,用于获取二维轨迹点的高度信息;

三维轨迹点生成模块,用于基于二维轨迹点以及获取的二维轨迹点的高度信息生成三维轨迹点。

可选的,所述二维图像获取模块具体用于将物品的三维点云沿物体表面的垂直方向进行映射并生成二维图像。

可选的,所述高度信息获取模块具体用于根据轨迹点处的物品像素点的深度信息获取轨迹点的高度信息。

可选的,所述高度信息获取模块还用于对生成的三维轨迹点在高度上进行平滑处理。

可选的,所述二维轨迹点生成模块具体用于在外接矩形的一边按照预定间隔生成该边的切线,将切线与外接矩形两边的交点之间的线段作为分界线,基于所述分界线生成二维轨迹点。

可选的,所述基于分界线生成所述二维轨迹点包括:从外接矩形任意角点开始,以外接矩形的角点以及分界线与边的交点作为拐点,以z字形遍历分界线以及与分界线平行的边,从而生成所述二维轨迹点。。

可选的,在遍历分界线以及与分界线平行的边时,按照特定的距离生成轨迹点。

可选的,所述特定的距离是基于预设的轨迹点间距和/或预设的总轨迹点数计算得到的。

在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理模块的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

应当理解,本申请的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施方式进行变化、修改、替换和变型。

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