1.本发明涉及一种基于视觉的工业机器人装配的模仿学习系统,属于工业机器人控制、智能制造技术领域。
背景技术:2.随着人工智能的不断发展,近些年机器人学逐步成为人工智能领域的热点之一。目前在机器人的领域中,尤其是工业机器人,由于传统的工业机器人编程周期较长,在多品种、小批量、定制化产品制造中,企业需要根据不同的产品,频繁改变机器人控制程序,影响了编程效率。而基于模仿学习的机器人编程技术,通过观察人类使用工具的视频,从中学习相关的技能,如完成轴孔装配等动作。在机器人的智能性方面带来了巨大提升,大大提高了人机交互性。
3.对于工业机器人模仿学习,一般分为三个过程,示教阶段、学习阶段和再现阶段,目前已经出现了多种模仿学习的方法,大致分为三种方法,一是基于监督学习的方法,二是基于强化学习的方法,三是基于生成对抗网络的方法。虽然这些方法可以得到一个最优的控制策略,但是由于示教样本少、示教样本采集复杂,进而造成控制策略稳定性差、泛化能力差的局面,给机器人模仿学习的应用和局面带来了困难;且由于工业机器人在实际物理世界中所展现的性能与仿真环境中相差较大,尤其是涉及到运动控制,要想把实际的控制算法落地,从仿真到实际还要做大量的修改与调参工作,时间成本比较高。
技术实现要素:4.为了解决上述现有技术中存在的问题,本发明提出了一种基于视觉的工业机器人装配的模仿学习系统及方法,根据目标物体的物体类别以及图像数据中的装配动作类别,匹配文本分类语料库中的装配动作分类语句,以编写机器人控制程序并在虚拟环境中进行观察和调参,增加模仿学习的泛化性和鲁棒性,并大大减少了真实环境调试的时间和成本、高安全性地验证模仿实验的可行性。
5.本发明的技术方案如下:
6.一种基于视觉的工业机器人装配的模仿学习系统,包括深度相机、计算机、机器人控制器以及工业机器人,所述计算机中包括目标检测与定位模块、装配动作分类识别模块、文本分类语料库模块以及ros控制模块,所述机器人控制器中包括机器人执行模块;所述深度相机与计算机通信连接,所述计算机与所述机器人控制器通信连接,所述机器人控制器与工业机器人通信连接;
7.所述深度相机用于采集操作者对目标物体进行装配的图像数据并传输至所述计算机;所述目标检测与定位模块用于识别图像数据中的目标物体的物体类别和位置信息;所述装配动作分类识别模块用于识别图像数据中的装配动作类别;所述文本分类语料库模块用于根据物体类别和装配动作类别匹配装配动作分类语句,并将所述装配动作分类语句转换为对应的编程语言;所述ros控制模块用于根据所述目标物体的位置信息以及所述装
配动作分类语句对应的编程语言编写机器人控制程序,并建立虚拟环境,在虚拟环境中运行机器人控制程序并进行测试和调参,将调整后的机器人控制程序发送至机器人执行模块;所述机器人控制器通过机器人执行模块执行机器人控制程序,控制工业机器人动作。
8.作为优选实施方式,所述目标检测与定位模块包括目标框选与语义分割单元以及目标定位单元;
9.所述目标框选与语义分割单元包括预训练的目标检测网络模型,用于框选目标物体,生成目标物体的像素掩码,并获得目标物体的物体类别;
10.所述目标定位单元用于提取和标注目标物体的像素掩码的中心点坐标,并根据目标物体坐标系与机器人基坐标系之间的矩阵转换关系,计算目标物体的中心点在机器人基坐标系中的坐标。
11.作为优选实施方式,所述装配动作分类识别模块包括预训练的动作识别网络模型;
12.通过所述动作识别网络模型识别操作者对目标物体进行装配的图像数据中的每一帧图像,并输出为对应的动作分类标签;
13.装配动作分类识别模块输出装配动作类别为各动作分类标签整合成的词向量c={c1,c2,
…
cn}。
14.作为优选实施方式,所述文本分类语料库模块包括装配动作分类语句库、匹配单元和转换单元;
15.所述装配动作分类语句库包括若干装配动作分类语句,所述装配动作分类语句用来描述对目标物体进行装配的分类;
16.所述匹配单元用于根据物体类别以及装配动作类别匹配最相关的装配动作分类语句;
17.所述转换单元用于将装配动作分类语句转换为编程语言并输入至ros控制模块。
18.另一方面,本发明提供一种基于视觉的工业机器人装配的模仿学习方法,包括以下步骤:
19.采集原始数据集,通过原始数据集训练用于识别目标物体的目标检测网络模型以及动作识别网络模型;
20.建立文本分类语料库,输入若干用于描述对目标物体进行装配的装配动作分类语句;
21.通过深度相机采集操作者对目标物体进行装配的图像数据;
22.通过目标检测网络模型识别图像数据中目标物体的物体类别,并获取目标物体的位置信息;
23.通过动作识别网络模型识别图像数据中操作者的装配动作类别;
24.根据所述目标物体的物体类别以及装配动作类别在文本分类语料库匹配装配动作分类语句,并将匹配到的装配动作分类语句转换为编程语言;
25.基于ros系统,根据目标物体的位置信息以及装配动作分类语句对应的编程语言编写机器人控制程序;并建立虚拟环境,虚拟环境中运行机器人控制程序并进行测试和调参;
26.将调参后的机器人控制程序发送至工业机器人的控制器中。
27.作为优选实施方式,所述采集原始数据集,通过原始数据集训练用于识别目标物体的目标检测网络模型以及动作识别网络模型的步骤具体为:
28.建立目标检测网络模型;
29.收集若干装配产品的彩色图片,并标注各彩色图片中装配产品的定位框和类别,生成目标检测样本集;
30.通过目标检测样本集对目标检测网络模型进行训练;
31.建立动作识别网络模型;
32.收集操作者对装配产品进行装配的演示视频;
33.提取演示视频的每一帧图像的图像特征,并标注对应的装配动作分类标签,生成动作识别样本集;
34.通过动作识别样本集对动作识别网络模型进行训练。
35.作为优选实施方式,所述通过目标检测网络模型识别图像数据中目标物体的物体类别,并获取目标物体的位置信息的步骤具体为:
36.通过目标检测网络模型框选目标物体,生成目标物体的像素掩码并获取目标物体的物体类别;
37.提取和标注目标物体的像素掩码的中心点坐标,并根据目标物体坐标系与机器人基坐标系之间的矩阵转换关系,计算目标物体的中心点在机器人基坐标系中的坐标。
38.作为优选实施方式,所述通过动作识别网络模型识别图像数据中操作者的装配动作类别的步骤具体为:
39.利用特征提取网络提取图像数据中每一帧图像的图像特征;
40.通过动作识别网络模型识别各图像特征的动作分类标签;
41.输出装配动作类别为各动作分类标签整合成的词向量c={c1,c2,
…
cn}。
42.作为优选实施方式,所述根据所述目标物体的物体类别以及装配动作类别在文本分类语料库匹配装配动作分类语句的步骤具体为:
43.输入目标物体的物体类别以及词向量c={c1,c2,
…
cn};
44.通过以下概率模型将装配动作分类与目标物体进行结合:
[0045][0046]
其中
◎
为目标物体的物体类别,c为词向量;
[0047]
通过公式计算文本分类语料库中似然估计最大的装配动作分类语句;
[0048]
其中v为视频参数,θ为模型参数。
[0049]
本发明具有如下有益效果:
[0050]
1、本发明一种基于视觉的工业机器人装配的模仿学习系统及方法,根据目标物体的物体类别以及图像数据中的装配动作类别,匹配文本分类语料库中的装配动作分类语句,以编写机器人控制程序并在虚拟环境中进行观察和调参,增加模仿学习的泛化性和鲁棒性,并大大减少了真实环境调试的时间和成本、高安全性地验证模仿实验的可行性。
[0051]
2、本发明一种基于视觉的工业机器人装配的模仿学习系统及方法,文本分类语料库模块使用概率模型将装配动作分类与目标物体结合起来,再根据相关的公式以最大化句
子s的对数似然估计,高效地匹配到相关的装配动作分类语句。以此增加模仿学习的泛化性和鲁棒性。
附图说明
[0052]
图1为本发明实施例一中硬件环境示例图;
[0053]
图2为本发明实施例一的系统框架示意图;
[0054]
图3为本发明实施例中动作识别网络模型的示意图;
[0055]
图4为本发明实施例二的方法流程图;
[0056]
图5为本发明实施例中目标物体的实例分割和中心点定位的演示图。
[0057]
图中附图标记表示为:
[0058]
10、深度相机;20、计算机;30、机器人控制器;40、工业机器人;50、机器人工作台;60、装配产品模型;70、操作者。
具体实施方式
[0059]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0060]
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
[0061]
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0062]
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0063]
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0064]
实施例一:
[0065]
结合图1布置的硬件搭建环境,请参阅图2,一种基于视觉的工业机器人装配的模仿学习系统,硬件环境包括深度相机10、计算机20、机器人控制器30以及工业机器人40、机器人工作台50以及装配产品模型60;
[0066]
所述计算机20中包括目标检测与定位模块、装配动作分类识别模块、文本分类语料库模块以及ros控制模块,所述机器人控制器30中包括机器人执行模块;
[0067]
所述深度相机10与计算机20通信连接,所述计算机20与所述机器人控制器30通信连接,所述机器人控制器30与工业机器人40通信连接;
[0068]
所述深度相机10、工业机器人40、装配产品模型60组成相应的坐标系;
[0069]
所述深度相机10用于采集操作者70对目标物体进行装配的图像数据并传输至所述计算机20;所述目标检测与定位模块用于识别图像数据中的目标物体的物体类别和位置信息;所述装配动作分类识别模块用于识别图像数据中的装配动作类别;所述文本分类语
料库模块用于根据物体类别和装配动作类别匹配装配动作分类语句,并将所述装配动作分类语句转换为对应的编程语言;所述ros控制模块用于根据所述目标物体的位置信息以及所述装配动作分类语句对应的编程语言编写机器人控制程序,并建立虚拟环境,在虚拟环境中运行机器人控制程序并进行测试和调参,将调整后的机器人控制程序发送至机器人执行模块;所述机器人控制器30通过机器人执行模块执行机器人控制程序,控制工业机器人40动作。
[0070]
作为本实施例的优选实施方式,所述目标检测与定位模块包括目标框选与语义分割单元以及目标定位单元;
[0071]
所述目标框选与语义分割单元包括预训练的yolact目标检测网络模型,图像数据输入到yolact目标检测模型后,捕获并框选目标物体,在目标物体框选后生成物体的像素掩码,并获得目标物体的物体类别传输至文本分类语料库模块中;
[0072]
所述目标定位单元利用k均值聚类算法提取出yolact网络输出目标物体像素掩码的中心点oi(ui,vi)坐标,并通过matplotlib函数库将中心点标注出来;
[0073]
使用奇异值分解求最小二乘刚性转置的方法,根据目标物体坐标系o
a-xayaza与机器人基坐标系o
w-x
wyw zw的矩阵转换关系,将目标物体中心的像素点坐标oi(ui,vi)转换为机器人基坐标系下的中心点坐标并传输到ros控制模块中。
[0074]
本实施例提出了一个新的目标检测与定位模块,该模块在yolact网络输出目标物体像素掩码的基础上利用k均值聚类算法找到目标物体的中心点。
[0075]
yolact是一个完全卷积的实时实例分割模型,是基于yolo网络的框架建立的,可以达到目标物体检测与分割的实时性要求,这比其他实例分割模型都要快得多。它所进行的目标检测与分割速度比其它的实例分割模型更快速、准确,可以快速准确的识别出目标物体的掩码,运用k均值聚类算法也可以快速找到掩码的中心点坐标,大大减少了机器人执行装配模仿动作的时间。
[0076]
参阅图3,作为本实施例的优选实施方式,所述装配动作分类识别模块包括一个以预先训练的vgg16为基础的新的动作识别网络模型;
[0077]
该动作识别网络网络模型以预先训练的vgg16网络模型为基础,以操作者70对目标物体进行装配的演示视频中的每一帧图像作为输入,由cnn和lstm组成;
[0078]
通过具有五个卷积层和三个完全连接层的cnn对操作者的装配动作进行分类,记录操作者装配动作视频并提取相应的特征。
[0079]
对于特征本实施例定义了6个动作分类标签;通过建立长短时记忆(lstm)上的序列对序列的架构,将提取到的特征输入到lstm网络,利用lstm网络进行时间序列预测,通过lstm网络机制,可以根据之前的信息预测当前帧的结果,避免过度拟合。通过观察操作者装配演示视频,将其转化为描述装配动作分类的标签,最后输出相关的动作分类。输出的装配动作类别表示为词向量c={c1,c2,
…
cn}。
[0080]
作为本实施例的优选实施方式,所述文本分类语料库模块包括装配动作分类语句库、匹配单元和转换单元;
[0081]
所述装配动作分类语句库包括若干装配动作分类语句,所述装配动作分类语句为无语法形式的英文语句,用来描述对目标物体进行装配的分类;
[0082]
所述匹配单元使用概率模型:(其中
◎
为目标物
体的种类,c为当前动作任务的装配动作分类词向量)将装配动作分类与目标物体结合起来;再通过公式计算文本分类语料库中似然估计最大的装配动作分类语句;(其中v为视频参数,θ为模型参数),高效地匹配到相关的装配动作分类语句;
[0083]
为了便于将语句中的每个词映射到编程命令,所述转换单元用于将装配动作分类语句转换为编程语言并输入至ros控制模块。
[0084]
本实施例建立一个文本分类语料库模块,文本分类语料库模块使用无语法的英文语句形式来描述输出的装配动作分类,使用概率模型将装配动作分类与目标物体结合起来,再根据相关的公式以最大化句子s的对数似然估计,高效地匹配到相关的装配动作分类语句。以此增加模仿学习的泛化性和鲁棒性。
[0085]
作为本实施例的优选实施方式,ros控制模块包括ubuntu操作系统、ros机器人控制系统以及加入moveit!插件的rviz虚拟环境;
[0086]
ros控制模块对收集到的目标物体在机器人基坐标系下的中心点和物体类别、装配动作分类语句对应的编程语言进行整合,修改相关的配置参数后进行下一步的编程处理;并根据工业机器人属性,制定ros工业机器人支持包并配置rviz虚拟环境;
[0087]
以往的模仿学习方法往往都是深度强化学习等模块直接应用于物理机器人上,但是这样往往需要大量的真实环境所调试的时间,因此使用ros模拟及控制模块的功能是建立一个虚拟的仿真环境,通过仿真环境观察机器人的运动状况,以此来判断是否符合预期要求,如果不符合预期要求,则进行调参处理,重新执行。
[0088]
本实施例提出的ros控制模块可以方便的预测物理机器人的运动状况,更好的规划出物理机器人的装配过程。加入rviz虚拟环境可以观察虚拟工业机器人执行的装配模仿动作,判断装配模仿动作是否符合预期,实现对工业机器人运动路径的动态观测。
[0089]
实施例二:
[0090]
请参阅图4,本实施例提供一种基于视觉的工业机器人装配的模仿学习方法,包括以下步骤:
[0091]
步骤s01、实例分割的数据集训练:收集装配产品模型的彩色图片,并进行标注图片,组成相关的装配产品模型的数据集和验证集,训练与验证目标检测与定位模块中的yolact目标检测网络模型,并生成相应的权重文件;
[0092]
步骤s02、装配动作分类识别的数据集训练:收集由深度相机10采集的操作者70对产品模型60进行装配的演示视频,对演示视频的每一帧注入装配动作分类标签。本实施例把它分为两个模块:(1)提取每帧的原始图像特征,表示为t={t1,t2,
…
tn};(2)利用提取的特征对相关的动作进行分类,自定义化的动作分为6类:一是unperformed action;二是moveobject;三是pick object;四是move object to targeted;五是assemble;六是releasegripper。对其每帧视频打上动作分类的标签后,组合成相应的数据集并生成pkl文件,使用装配动作分类识别模块中预先训练的vgg16网络模型进行训练,并生成相关的权重文件。
[0093]
步骤s03、目标检测与语义分割:通过深度相机10捕获机器人工作台50上的装配产品模型60,在目标检测与定位模块中识别并框选要检测的目标物体,并生成目标物体的像素掩码。
[0094]
步骤s04、目标定位:请参阅图5,在目标检测与定位模块中通过matplotlib函数库用圆点标记出目标物体的像素掩码中心点,计算目标物体在图像中的图像坐标oi(ui,vi)。
[0095]
步骤s05、坐标转换:目标检测与定位模块中根据特征点的图像坐标oi(ui,vi)和对应的三维坐标qi(xi,yi,zi),用奇异值分解求最小二乘刚性转置方法求解机器人基坐标系o
w-x
wyw zw到相机坐标系o
c-xcyczc的转换矩阵
[0096]
转换关系如下所示:
[0097]
其中m为相机内参矩阵。
[0098]
的逆矩阵为此时,根据目标物体的坐标系o
a-xay
a za到相机坐标系o
c-xcy
c zc的转换可以求出矩阵目标物体坐标系o
a-xay
a za与机器人基坐标系o
w-x
wyw zw的转换矩阵为的转换矩阵为根据目标物体坐标系o
a-xayaza与机器人基坐标系o
w-x
wywzw
的转换关系:
[0099][0100]
求出各顶点在机器人坐标系中ow-xwyw zw的坐标(xw,yw,zw),将目标物体在机器人坐标系下的中心点及其物体类别分别传输到ros控制模块中。
[0101]
步骤s06、装配动作分类识别:在深度相机10下,采集操作者70的装配动作视频,根据装配动作分类识别模块提取相应的特征。将提取到的特征输入到lstm网络,利用lstm网络进行时间序列预测,通过lstm网络机制,可以根据之前的信息预测当前帧的结果,避免过度拟合。最后输出装配动作类别,输出的装配动作类别表示为词向量c={c1,c2,
…
cn};
[0102]
步骤s07、文本分类:通过文本分类语料库模块,将输入的动作分类词向量c={c1,c2,
…
cn}与详细描述的装配动作分类语句逐一对应起来,使用相关的概率模型将目标物体与装配动作分类语句结合起来,通过计算装配动作分类语句的对数似然估计,高效匹配到相关的装配动作分类语句。
[0103]
步骤s08、语言转化:通过文本分类语料库模块,根据装配动作分类语句将其转化为对应的的编程语言,并将其对应的编程语言传输到ros控制模块中。
[0104]
步骤s09、ros环境配置:通过ros控制模块对收集到的目标物体在机器人基坐标系下的中心点和物体类别、装配动作分类语句对应的编程语言进行整合,修改相关的配置参数后进行下一步的编程处理。
[0105]
步骤s10、虚拟环境建立:在ros控制模块中使用rviz虚拟环境,在此基础上加入moveit!插件,可以呈现出虚拟的工业机器人和要装配的目标物体。
[0106]
步骤s11、判断虚拟动作状况:在ros控制模块中使用rviz虚拟环境观察虚拟工业机器人执行的装配模仿动作,对虚拟工业机器人的运动路径进行动态观测,预测实际机器
人的运动状况,如果执行的装配模仿动作符合预先期望,将相关的动作信息传输到工业机器人控制器30中。
[0107]
步骤s12、调参:如果虚拟工业机器人的装配模仿动作不符合预先期望,那么对相关的运动控制做修改与调参工作,重新启动ros控制模块中的rviz。
[0108]
步骤s13、传输指令:通过机器人执行模块,工业机器人控制器30接收到相关的动作信息,将其转化为机器人语言,将运动指令传输到工业机器人40。
[0109]
步骤s14、动作执行:通过机器人执行模块,工业机器人40执行相关的装配模仿动作。
[0110]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。