一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种未知数量线状变形体拓扑状态识别和解缠方法

2022-04-30 12:45:50 来源:中国专利 TAG:


1.本发明涉及线状变形体拓扑状态识别技术领域,具体为一种未知数量线状变形体拓扑状态识别和解缠方法。


背景技术:

2.随着自动化水平的不断提高,机器人在各领域的生产活动中代替人工劳动已经成为一个必然趋势。现如今的机器人技术对刚性物体的操作已经相对成熟,在生产流水线中得到了广泛应用。但是,当操作对象是柔性变形体时,机器人往往难以胜任。这是由于柔性变形体具有易发生形变和形状难以控制的特点,在操作过程中存在更多的不确定性。尤其是对线状变形体(deformable linear object,dlo)的操作,除了不断变化的几何形态,其拓扑状态也可能非常复杂,这是制约机器人对其自动化操作的难点。
3.在现有的针对dlo识别的研究中,研究者们主要将目光放在了对dlo的识别、分割。在dlo操作方面,则主要解决单根dlo的打结、解结任务和变形控制问题,已有的识别及解缠方法主要依赖图像处理方法识别拓扑信息并以序列的形式进行表征,然后根据扭结理论规划机器人拆解操作。对复数线状变形体(英文简写:dlos)的研究很少,也无法适用于工业和生活中最常见的数量不确定的情形。
4.也有极少的人对复数线状变形体(英文简写:dlos)开展研究,绝大多数的研究都在一个假设条件下进行,即dlo完整地出现在相机的视野中,dlo部分出视野的情形下往往不再适用。此外,许多已有方法无法适应背景复杂或者视野中存在无关的干扰物体的场景。对识别环境的要求较高,而工业场景和生活场景中环境条件往往难以控制,因此,机器人暂时无法实际应用。


技术实现要素:

5.本发明的目的在于提供一种未知数量线状变形体拓扑状态识别和解缠方法,以解决现有技术中存在的问题。
6.为实现上述目的,本发明采用的技术方案是:提供一种未知数量线状变形体拓扑状态识别和解缠方法,包括如下步骤:
7.s100:对未知数量线状变形体进行拓扑状态识别;
8.s200:根据拓扑状态识别的结果进行拆解操作制定;
9.s300:机器人感知和执行解缠。
10.优选的,在本技术方案中,使用相机获取的颜色系统图像作为系统输入的原始图像,同时训练一个卷积神经网络模型语义分割网络用于提取原始图像中的复数线状变形体轮廓信息在提取出的轮廓图的基础上,经过降噪预处理后,采用zhang-suen图像细化算法进一步提取轮廓的骨架图。
11.优选的,在本技术方案中,所述复数线状变形体的端点检测采用八邻域法。
12.优选的,在本技术方案中,所述复数线状变形体的交叉点检测采用深度学习方法,
先训练一个实时目标检测网络,从复杂的背景中检测出各个交叉点区域的坐标,同时对图像处理方法容易出现交叉点误检的区域通过增加负样本的方式有效避免。
13.优选的,在本技术方案中,所述复数线状变形体的交叉点的遍历是用一种遍历骨架图的算法来实现;
14.通过根据获取图像中复数线状变形体的轮廓骨架,以及骨架图上的端点坐标和原始图像上的交叉点坐标,将目标检测网络返回的交叉点区域坐标映射到骨架图上,然后选择第一个端点作为遍历算法起点开始遍历流程。
15.优选的,在本技术方案中,所述遍历流程,是遍历开始后检测是否存在未标记的端点,若不存在则直接结束,若存在则标记该端点,而后查找该端点附近的目标路点,确认是否进入交叉点区;若是进入交叉点区,则旋转、裁剪交叉点框图,跳跃交叉点得到跃出点,以进行方向矢量归一化,便于查找下一个目标路点;若没有进入交叉点区,则保存路点,而后更新方向矢量并查找下一目标路点。所述查找下一目标路点过程中,若不存在下一个目标路点则到达端点并标记该端点,而后重新检测是否存在未标记的端点。
16.优选的,在本技术方案中,对交叉点拓扑状态的判定采用深度学习方法,训练基于深度残差网络的模型执行交叉点上下关系判定的二分类任务,并将交叉点序号和类型依次排列输出作为拓扑序列结果,依据结果可绘制拓扑状态识别可视化图。
17.优选的,在本技术方案中,所述步骤s200,是将步骤s100中获得的拓扑序列形图,输入至可执行针对复数线状变形体的基础操作的机器人中,基于机器人的每个基础操作在拓扑序列中的逻辑规律和检索方法,按优先级顺序在拓扑序列中查找,确定当前应该执行的基础操作。
18.优选的,在本技术方案中,所述机器人每获取一张可视化图和拓扑序列形图仅进行一次操作,操作结束后,进入下一个循环的识别和操作流程,直至识别得到的拓扑状态达到最简状态时结束。
19.优选的,在本技术方案中,在所述步骤s300中,根据拓扑序列确定了基础操作类型后,利用遍历时记录的信息计算机器人系统对复数线状变形体操作的抓取点、放置点及其抓取方向。
20.与现有技术对比,本发明具备以下有益效果:
21.1、本发明提出的方法能够取得相较于其他方法更突出的效果,该方法不仅能够处理单根dlo、多根dlos的场景,还能处理视野中dlos数量未知的场景,无需人为给定数量,更符合实际应用需求。
22.2、本发明方法能够应对背景复杂或视野中存在无关的干扰物体的情形;此外,在dlos部分出视野时,系统依然能将视野内的dlos拓扑状态正确识别和拆解,不影响整体效果。
附图说明
23.图1为本发明的线状变形体拓扑状态的简化任务目标图;
24.图2为本发明方法的流程图;
25.图3为本发明中的vgg语义分割网络提取dlos轮廓的效果图;
26.图4为本发明对轮廓图进行图像细化的效果图;
27.图5为本发明方法对端点检测原理示意图;
28.图6a为本发明步骤s100中遍历流程示意图一;
29.图6b为本发明步骤s100中遍历流程示意图二;
30.图7为本发明步骤s100中遍历查找目标路点的过程示意图;
31.图8为本发明步骤s100中遍历算法流程图;
32.图9为本发明中定义的两种类型的交叉点框图;
33.图10a为本发明相机获取的原始图像及交叉点区域序号示意图;
34.图10b为本发明拓扑状态识别结果可视化图;
35.图10c为本发明输出的拓扑序列图;
36.图11为本发明机器人对dlos执行五种的基础操作示意图;
37.图12为本发明步骤s300的拆解操作流程图;
38.图13为本发明双臂机器人平台系统架构图;
39.图14为本发明机器人执行前四种基础操作的坐标计算方法;
40.图15为本发明机器人执行操作v的坐标计算方法示意图。
具体实施方式
41.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例;对于相同或相似的概念或过程可能在某些实施例不再赘述。
43.请参阅图1和图2,本发明的一种未知数量线状变形体拓扑状态识别和解缠方法,其包括如下步骤:
44.s100:对未知数量线状变形体进行拓扑状态识别;
45.s200:根据拓扑状态识别的结果进行拆解操作制定;
46.s300:机器人感知和执行解缠。
47.进一步的,在步骤s100中,更具体的是使用相机获取的rgb图像(颜色系统图像)作为系统输入的原始图像,同时训练一个卷积神经网络模型vgg语义分割网络用于提取原始图像中的复数线状变形体(以下简称dlos)轮廓信息。在此过程过,选用了4个实例(用例1-用例4)来进行展示vgg语义分割网络提取复数线状变形体(以下简称dlos)轮廓的效果,具体的网络输入输出入图如3所示。
48.在提取出的轮廓图的基础上,经过一系列降噪预处理后,采用zhang-suen图像细化算法(张-孙细化算法)进一步提取轮廓的骨架图。获得的骨架图中线条宽度严格为单位像素,便于检测视野中的dlos端点位置及遍历dlos。本发明的图像细化效果如图4所示,图4中左侧为轮廓图,右侧为骨架。交叉点位置会出现错位现象,因此在后续的遍历算法中需要针对交叉点位置的特定遍历流程。
49.进一步的,在本发明中,dlos端点检测采用八邻域法,其原理如图5所示,对于二值
骨架图中所有白色像素点p1(白色值为1,黑色值为0),满足公式的点可判定为骨架图端点,即dlos端点。相比较于深度学习的目标检测方法,基于八邻域的端点检测方法具有更强的容错性,且检测出的端点坐标必定位于骨架图上,有利于遍历流程的正确执行。
50.进一步的,在本发明中,dlos交叉点检测采用了深度学习方法。具体是先训练了一个yolov3实时目标检测网络(yolo是一个实时目标检测网络,v3指的是第三个版本),从复杂的背景中检测出各个交叉点区域的坐标,同时对一些图像处理方法容易出现交叉点误检的区域可以通过增加负样本的方式有效避免。
51.进一步的,在本发明中,遍历dlos时选用一种遍历骨架图的算法来实现。具体是,通过根据获取图像中dlos的轮廓骨架,以及骨架图上的端点坐标和原始图像上的交叉点坐标,将目标检测网络返回的交叉点区域坐标映射到骨架图上,然后选择第一个端点作为遍历算法起点开始遍历流程。更具体的过程是,如图6a和图6b所示。在图6a中每个格子表示骨架图中的一个像素点,格子中的数字表示遍历算法于路点pi处查找下一个目标路点p
i 1
的搜索顺序,首个搜索点根据当前路点pi和上一个路点p
i-1
获得,即(2
·
p
i-p
i-1
),之后的搜索点以首个搜索点为中心依次向搜索框的两个方向查找。按搜索顺序找到的第一个白色像素点作为目标路点p
i 1
。但由于骨架图在交叉点区域会出现错位现象,因此每遇到交叉点区域就需要进行跳跃操作。交叉点区域由目标检测网络获得,在如图6b所示的交叉点区域中,pi为遍历进入点,深色格子表示值为0的黑色背景区域,浅色格子表示值为1的骨架区域,由pi开始按顺时针顺序在交叉点框边上搜索所有值由0跃迁为1的白色点,如w1、w2、w3,每次在交叉点区域均取w2作为跳跃操作的跃出点,即p
i 1
。将方向矢量(p
i 1-pi)归一化操作后继续图6a的常规遍历过程。
52.图6a和图6b是遍历过程中的两个关键步骤,每个格子表示二值骨架图上的一个像素,其中的中(i 1)表示遍历过程中路点的序号,j表示寻找p
i 1
过程中的查找顺序,若当前路点为骨架图端点时,直接顺时针遍历搜索框上的所有点,找到的首个白色像素点作为目标点即可。即如图7所示,p0表示骨架图端点,p
ij
中i表示遍历过程中路点的序号,j表示每次在搜索框寻找pi时的查找路径顺序,每一次迭代中的搜索起始点由(2
·
p
i-p
i-1
)获得,则图7中的遍历路点为:
53.进一步的,完整遍历过程如图8所示,开始后检测是否存在未标记的端点,若不存在则直接结束,若存在则标记该端点,而后查找该端点附近的目标路点,确认是否进入交叉点区,若是进入交叉点区,则旋转、裁剪交叉点框图,跳跃交叉点得到跃出点,以进行方向矢量归一化,便于查找下一个目标路点;若没有进入交叉点区,则保存路点,而后更新方向矢量并查找下一目标路点。所述查找下一目标路点过程中,若不存在下一个目标路点则到达端点并标记该端点,而后重新检测是否存在未标记的端点。对交叉点拓扑状态的判定采用深度学习方法,训练基于深度残差网络的模型执行交叉点上下关系判定的二分类任务,并将交叉点序号和类型依次排列输出作为拓扑序列结果,依据结果可绘制拓扑状态识别可视化图。在这一遍历过程中将每次遇到的交叉点根据方向矢量和坐标信息进行旋转和裁剪,得到如图9的交叉点框图,该交叉点框图可分为两种类型,即上层类型和下层类型。本发明训练了一个基于resnet34的二分类网络,完成对复杂背景下的两种交叉点框图的分类任
务。
54.依次循环上述各个流程,直至遍历结束后,输出各交叉点序号和交叉点框图类型即可得到拓扑序列,同时根据结果可绘制拓扑状态识别结果可视化图,具体如图10所示的拓扑识别结果可视化图和拓扑序列形图。
55.进一步的,在步骤s200中,根据拓扑状态识别的结果进行拆解操作制定,具体是,将步骤s100中获得的拓扑识别结果可视化图和拓扑序列形图,输入至可执行针对dlos的基础操作的机器人中,基于机器人的每个基础操作在拓扑序列中的逻辑规律和检索方法,按优先级顺序在拓扑序列中查找,确定当前应该执行的基础操作。更具体的是,机器人每获取一张图片(可视化图和拓扑序列形图)仅进行一次操作,操作结束后,进入下一个循环的识别和操作流程,直至识别得到的拓扑状态达到最简状态时结束。需要说明的是,最简状态可能是视野内没有剩余的交叉点,即所有交叉都得到拆解;也有可能是视野中的交叉不可完全拆解,机械臂仅将其中可以拆解的部分消除,达到最简状态后机器人自动结束操作。
56.进一步的,在本发明中,针对dlos的基础操作至少包括以下的五种基础操作:
[0057][0058]
五种基础操作在前文定义的拓扑序列中均可找到对应且独有的规律,依据各自的规律即可从拓扑序列中看出当前拓扑状态是否可以执行对应操作。
[0059]
此外,综合考虑五种操作的拆解效率、出现条件和机器人执行的难以程度,定义了查找优先级,即操作v、ii、iv、i、iii,其拆解策略流程图如图12所示。
[0060]
进一步的,在步骤s300中,机器人感知和执行解缠,具体是,先搭建一个双臂机器人平台用于实验验证。平台构成包括用于图像采集的相机和用于执行操作的机械臂和夹具(也是可执行针对dlos的基础操作的机器人),基于ros完成各设备与上位机的通讯,编写机械臂和夹具的控制程序,并整合步骤s100和步骤s200的过程,双臂机器人平台系统架构如图13所示。
[0061]
在步骤s100的遍历流程中,记录遍历过程中的所有路点坐标、每段dlo的起始点序号以及每个交叉点的遍历顺序和坐标等信息,在步骤s200中,根据拓扑序列确定了基础操作类型后,利用遍历时记录的信息即可计算出机器人系统对dlos的操作的抓取点和放置点及其抓取方向。其中,抓取方向可以根据抓取点的前后路点的位置计算得到。前四种基础操作的计算方法如图14所示(图中a、b、c表示遍历过程中记录的交叉点坐标,e表示端点坐标,dir为dlo抓取/放置方向(由前后路点坐标计算得到)),其中,p0为操作的抓取点,p1为计算
参考点,p2为操作的放置点,操作i由p0抓取,根据p1处的切线和线段p0p1的夹角方向即可确定机器人夹爪旋转方向,旋转后放置回p0即可。操作ii、iii、iv则是由p0抓取,直接移动到p2放置即可,dlo切线方向无需改变,p2坐标根据p1和p0的距离进行归一化确定方向后指定一段距离得到。而在操作v中,需要同时使用双臂将视野中最上层的dlo分拣出来,放置在预置的视野边缘位置,实现交叉点的消除。如图15所示,p0、p1为机器人双臂的抓取点,p2、p3为预置的机器人双臂的放置点,dir0、dir1、dir2、dir3分别为四个点的抓取/放置方向,dir2、dir3的方向预置为固定值即可。
[0062]
进一步,优选的,利用遍历时记录的信息即可计算出机器人系统对dlos的操作的抓取点和放置点及其抓取方向,如图14、15,根据路点信息可直接获得抓取点p0和参考点p1的坐标信息,根据抓取点的前后路点连线角度得到抓取和放置时夹爪的方向,其中,操作i的放置点与抓取点位于同一位置,操作ii、iii、iv的放置点p2在p0p1连线上给定方向和距离确定,操作v的放置点和放置方向预先给定。遍历流程中已经记录的路点数据和各dlos起点索引信息,使用一个数组将所有路点坐标存储起来,对于后续的计算过程,可以通过索引找到所需的点的位置,下文将以wp指代。计算机器人拆解动作的抓取点、抓取角度、放置点、放置角度等的具体步骤如下:
[0063]
如图14,对于操作i:
[0064]
(1)由拓扑序列和路点数组wp可以得到环形区域中间路点p0和交叉点a处位于上层的路点p1,定义p0为抓取点,抓取角度为p0的近似切向角度dir;定义p1为计算参考点,沿p1的近似切向作参考直线l0。
[0065]
(2)过p0、p1作辅助线l1,l1可以经过顺时针或是逆时针两个方向旋转至与l0平行,两种旋转方式中绝对值较小的旋转角作为参考角度β。定义旋转轴z垂直纸面向里,显然,若β为顺时针旋转得到,则为正,反之为负。
[0066]
(3)机械臂以dir的抓取角度从p0抓取dlo,移动至p1上方,机械臂末端姿态绕z轴旋转225度,旋转方向的正负与β的正负相同。旋转后仍以dir的角度将dlo放置回抓取点p0即可。
[0067]
如图14,对于操作ii:
[0068]
(1)由拓扑序列和路点数组wp可以得到“d”形区域两段dlos的两个中间路点的坐标,定义其中位于上层一段的为抓取点p0,抓取角度为p0的近似切向角度dir0;位于下层一段的为计算参考点p1。
[0069]
(2)由于向量p0p1的长度为变量,需要将向量p0p1进行归一化处理,缩放至固定长度(本发明使用了30个像素长)后与p1相加上得到目标点p2。
[0070]
(3)机器人从p0位置以dir角度抓取dlo,平移至p2上方后松开,松开时夹具角度与抓取时相同。
[0071]
如图14,对于操作iii:
[0072]
(1)由拓扑序列和路点数组wp可以得到“xi”形区域三段dlos的三个中间路点的坐标和三个交叉点坐标,定义其中位于最上层一段的为抓取点p0,抓取角度为p0的近似切向角度dir;p0所在dlo段未经过的交叉点作为计算参考点p1。
[0073]
(2)与操作ii相同,对p0p1进行归一化处理,缩放至固定长度(本发明使用了75个像素长)后与p1相加上得到目标点p2。
[0074]
(3)机器人从p0位置以dir角度抓取dlo,平移至p2上方后松开,松开时夹具角度与抓取时相同。
[0075]
如图14,对于操作iv:
[0076]
(1)由拓扑序列和路点数组wp可以得到交叉点a和端点e在wp中的索引i、j,从路点wp[i 1]和wp[i-1]中选择距离wp[j]更远的一个作为抓取点p0,抓取角度为p0的近似切向角度dir;定义交叉点p1为计算参考点。
[0077]
(2)与操作ii和操作iii类似,对p1p0进行归一化处理,缩放至固定长度(本发明使用了30个像素长)后与p0相加上得到目标点p2。
[0078]
(3)由端点和交叉点的索引的差值除以一个常量s得到需要重复操作的次数n=|i-j|/s,本发明使用的s为1.67(测试后估计得到,由于机器人操作过程中dlo的变换存在不确定性,因此操作次数无法准确得到)。
[0079]
(4)机器人从p0位置以dir角度抓取dlo,平移至p2上方后松开,松开时夹爪角度与抓取时相同即可。重复n次。
[0080]
如图15,对于操作v:
[0081]
(1)由拓扑序列和路点数组wp可以得到最上层dlo两个端点在wp中的索引i、j(假设i《j),本发明定义wp[i 15]和wp[j-15]作为抓取点p0、p1,抓取角度分别为p0、p1的近似切向角度dir0、dir1。
[0082]
(2)在图像下方的空白区域预先设定几个放置点,在出现操作v时选择空白的放置点作为目标点p2、p3,放置时角度均与图像底边平行,如dir2、dir3。
[0083]
(3)机器人从p0、p1位置以dir0、dir1角度抓取最上层dlo,平移至p2、p3上方后松开,松开时夹具角度为dir2、dir3。
[0084]
机器人系统根据制定的操作类型及其该类型的抓取点/放置点等运动信息按设计好的方法执行,即可逐步简化dlos的拓扑状态。
[0085]
在本发明中,步骤s100、步骤s200和步骤s300三个流程是依次执行的,每次识别拓扑状态输出拓扑序列后,即可确定需要执行的拆解操作,计算出抓取点、放置点,而后机器人执行相应动作,完成动作后进入下一轮迭代,开始下一次拓扑状态的识别,直至识别的拓扑状态为最简。若无法用五种基础操作进行进一步简化后,则自动终止程序,完成解缠任务。
[0086]
综上,本发明提出的方法能够取得相较于其他方法更突出的效果。该方法不仅能够处理单根dlo、多根dlos的场景,还能处理视野中dlos数量未知的场景,无需人为给定数量,更符合实际应用需求;dlos本发明方法能够应对背景复杂或视野中存在无关的干扰物体的情形;此外,在dlos部分出视野时,系统依然能将视野内的dlos拓扑状态正确识别和拆解,不影响整体效果。
[0087]
在本实施例子中未说明的部件结构、连接关系、工作原理等均采用现有技术来实现,在此不再重复累述。
[0088]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献