一种基于目标装配关系自然语言描述的机械手装配任务自主编程方法与流程

文档序号:11864376阅读:401来源:国知局
本发明属于与机械手相关的任务编程、自然语言处理、计算机等
技术领域
,涉及一种采用自然语言的机械手装配任务编程方法,特别是一种基于目标装配关系自然语言描述的机械手装配任务自主编程方法。
背景技术
:机器人正在快速融入人们的日常生活与工作,机器人利用机械手帮助人们自主地完成物体搬运、装配等任务。然而,现有技术的机械手的自主功能主要面向特定的应用场景,功能相对固定。当任务发生变化时,需要专业的编程人员对机械手进行离线的编程或配置,广泛采用手工引导、示教器、专用的机器人编程语言、图形化编程工具等方式。这些编程方法比较耗时、成本高。利用自然语言对机器人进行任务编程是一种直观高效的方式,用户无需掌握编程知识,即可利用自然语言描述机器人操作任务,完成任务在线编程。然而,现有的采用自然语言的机器人任务编程方法,都严重依赖用户根据机器人的动作能力把新的任务人工分解成动作序列,并通过自然语言传达动作序列交由机器人执行。对没有接受过训练的普通用户而言,无疑增加了负担,人机交互体验的自然与舒适度大大降低。技术实现要素:为克服现有技术中的缺陷,本发明提出一种基于目标装配关系自然语言描述的机械手装配任务自主编程方法,可让不具备任何编程知识的普通使用者仅通过自己习惯的自然语言表达方式描述新的装配任务中各个部件的装配关系,就可以完成新的机械手装配任务的编程,机械手能自主完成该任务的执行。本发明的技术方案是:一种基于目标装配关系自然语言描述的机械手装配任务自主编程方法,其特征在于,包括如下步骤:(1)用户通过自然语言描述机械手装配任务中各个部件的装配关系,经自然语言处理后,生成目标装配关系矩阵;(2)机械手通过视觉摄像头进行部件检测,分割和识别分散在平面上的各个部件,与自然语言中提及的部件进行关联;(3)针对目标装配关系矩阵,经相关的矩阵运算将装配任务分解为具有一定时序关系的子任务,在每个子任务中确定待装配的部件及其与已装配部件的目标装配关系;(4)机械手根据分解后的各个子任务的时序,在基于视觉的装配定位与抓取辅助下,依次完成部件的装配。步骤(1)中所述目标装配关系矩阵是一个N×N的方阵,记为GARMN×N,该方阵由自然语言处理模块直接生成,方阵中元素的取值直接体现自然语言语句中所描述部件之间的关系,部件由自然语言处理模块自动从自然数1开始编号,方阵中的第i行第j列的元素定义为:步骤(1)中所述自然语言处理是指利用斯坦福解析器对自然语言文本进行解析,生成语法成分依赖关系树,在结合机械手关于部件关系的先验知识的基础上,输出部件引用表达和部件关系表达;部件引用表达中实现了对所描述部件的自然数编号;将部件关系表达,按照公式(1)填充至目标装配矩阵。步骤(2)中所述部件检测是指利用视觉摄像头采用视觉检测算法分割出分散在某一平面上的各个部件,识别各个部件的属性,包括名称、颜色和形状,并与自然语言中已经编号的物体进行关联,确定视觉检测部件的编号,能够根据目标装配关系计算待装配部件的目标装配位姿和抓取位姿。步骤(3)中所述的矩阵运算,一方面指利用部件之间关系的对称性、传递性更新GARM,对称性与传递性准则分别由公式(2)和公式(3)给出;其中,将经对称性准则更新后的GARM保存为SGARM;[GARM]ij=-[GARM]ji,if|[GARM]ij|>1(2)[GARM]ik=r,if[GARM]ij=r且[GARM]jk=r(3)另一方面,指利用公式(4)和公式(5)来计算部件装配的优先级;利用公式(4)消除左右、前后等装配关系对装配优先级的影响,得到中间矩阵WARM;利用公式(5)对矩阵进行按列求和运算,得到一个行向量Indicator,其中sum(GARM,1)表示对矩阵GARM的第1维进行求和运算。该行向量中每个元素所在的列号代表部件的编号,元素的取值越大代表装配该部件的优先级越高;通过对该列向量中元素进行降序排序,从而确定各个部件的装配时序;[WARM]ij=[GARM]ij,if|[GARM]ij|<40else---(4)]]>Indicator=sum(WARM,1)(5)步骤(3)中所述装配任务分解是指根据确定的各个部件的装配时序,将整个装配任务分解为具有此时序关系的子任务,每个子任务中指明待装配的某个部件i,以及该部件的目标装配关系集合,该部件的目标装配关系通过查询上述矩阵SGARM中第i行的元素得到;装配任务分解后,机械手利用上述部件检测模块在基于视觉的装配定位与抓取辅助下,依次执行各个子任务,完成自然语言任务编程方式下的自主装配过程。本发明的有益效果为:本发明提出的一种基于目标装配关系自然语言描述的机械手装配任务自主编程方法,工作原理清晰,与现有技术相比,本发明具有以下优点:(1)本发明中用户仅需通过自然语言描述新的装配任务中各个部件的目标装配关系,实现了传统自然语言编程方法的创新。传统方法中,用户需要通过自然语言描述出详细的装配步骤供机械手学习与执行,要求用户能够手工分解装配任务且对机械手的动作能力有清楚的了解,因此对用户的知识技能有较高的要求。而本发明方法中,只要求用户使用自然语言描述出装配任务中各部件的目标配置状态,没有其它知识技能的要求。(2)本发明中采用基于装配关系矩阵运算的解析方法,实现了新的装配任务的表示与自动分解,机械手无需学习,就能自主执行用户描述的新的装配任务。附图说明图1为本发明的工作原理框图。图2为本发明实施例中待装配的4个部件示意图。图3为本发明实施例中房子造型装配任务示意图。图4为本发明实施例中部件检测模块的检测与识别结果示意图。图5为本发明方法的工作流程图。具体实施方式下面结合附图对本发明作进一步说明:如图1所示,一种基于目标装配关系自然语言描述的机械手装配任务自主编程方法,用户利用自然语言文本描述新的装配任务中各个部件的目标装配关系,经自然语言处理后,输出部件引用表达和部件关系表达;机械手利用视觉摄像头对当前场景进行部件检测,识别实际检测到的部件的属性,可以根据目标装配关系计算待装配部件的目标装配位姿和抓取位姿;部件关联模块将实际检测到的各个部件与自然语言中所述的已经编号的部件进行关联,完成实际部件的编号;部件关系表达送入目标装配关系矩阵生成模块,输出目标装配关系矩阵至装配任务分解模块,进行相关的矩阵运算后,将整个装配任务分解为具有一定时序关系的子任务,每个子任务中指明待装配的某个部件以及该部件与已装配部件的目标装配关系集合;机械手根据分解后的各个子任务的时序,在基于视觉的装配定位与抓取辅助下,依次完成部件的装配。如图2-4所示,一种基于目标装配关系自然语言描述的机械手装配任务自主编程方法,图2所示桌面上摆有4个不同颜色和形状的积木块,代表待装配的4个部件。新的装配任务是将4个部件装配成如图3所示的房子造型。图4是部件检测模块的检测与识别结果。假定该装配任务中,用户描述目标装配关系的自然语言文本为“黄色木块和蓝色木块在绿色木块的上面。黄色木块在蓝色木块的右侧。红色木块在黄色和蓝色木块的上面”。机械手应能根据该自然语言文本自主地完成该装配任务。如图5所示,首先将图2-4示例中的自然语言文本逐句地送入斯坦福解析器进行处理,生成语法成分依赖关系树,结合机械手关于部件关系的先验知识,输出部件引用表达与部件关系表达。如第一句“黄色木块和蓝色木块在绿色木块的上面”处理后,输出所描述部件的引用表达:1(绿色(木块)),2(黄色(木块)),3(蓝色(木块)),以及部件关系的表达:On(2,1)∧On(3,1)。其中绿色木块被自动编号为1,黄色木块和蓝色木块被依次编号为2和3,On表示部件关系。第二句的处理结果为Right(2,3),其中未输出新的部件引用表达。第三句的处理结果为4(红色(木块)),On(4,2)∧On(4,3)。其中红色木块被编号为4。当所有语句处理完成后,按公式(1)生成目标装配关系矩阵机械手利用视觉摄像头对当前场景进行部件检测。首先检测出摆放部件的平面,然后保留平面上方的三维点云,将在欧氏距离空间中相邻的点集,分割为一个独立的部件,最终得到分散在平面上的各个部件,进一步识别各个部件的属性(如名称、颜色、形状等)。检测与识别结果如图4所示。然后,根据实际部件的属性以及部件引用表达,将实际部件与自然语言中所述的已经编号的部件进行关联,完成实际部件的对应编号。接着,按公式(2)更新GARM,得到并保存为SARM。按公式(3)更新GARM,得到进一步,经公式(4)和公式(5)计算后,得到Indicator=[600-6]。该行向量中每个元素所在的列号代表部件的编号,元素的取值越大代表装配该部件的优先级越高,因此,各个部件的装配优先级为1→2→3→4或1→3→2→4。然后,按照待装配部件的优化级生成装配子任务时序,包括4个装配子任务,每个子任务中指明待装配的部件分别为部件1、部件2、部件3和部件4,对每个待装配部件从SARM中获取该部件与已装配部件的目标装配关系,如子任务3中待装配部件3与已装配部件1和2的目标装配关系取值是2与4。接着,机械手依次执行各个装配子任务,在执行装配子任务过程中,请求部件检测模块根据目标装配关系计算待装配部件的目标装配位姿和抓取位姿,在基于视觉的装配定位与抓取辅助下最终完成整个装配任务的执行。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1