具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种机械臂的控制方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种机械臂的控制方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,根据机械臂所处环境的图像识别待抓取物体。
上述机械臂可以为任意一个机器人中的机械臂,在该机械臂上安装有抓手,该抓手用于抓取待抓取物体,其中,上述机械臂和抓手均包括多个关节(例如,机械臂的肘关节),在本发明实施例中可以通过调节上述机械臂的多个关节和抓手的多个关节的来调节机械臂的抓取姿态。
在本发明实施例中,可以通过视觉识别装置获取机械臂所处环境的图像,进而在获取到的图像信息中识别待抓取物体。
步骤S104,确定待抓取物体与机械臂之间的目标距离。
在本发明实施例中,可以通过上述视觉识别装置协助机械臂在视觉识别装置的视线范围内搜索待抓取物体,并通过视觉识别装置检测待抓取物体到机器人的机械臂本身的大致距离(即,上述目标距离)。
步骤S106,根据目标距离确定机械臂执行的目标动作,其中,目标动作用于指示命令机械臂抓取待抓取物体并将待抓取物体移动至目标位置。
在确定待抓取物体到机器人的机械臂的大致距离(即,上述目标距离)之后,可以根据该目标距离确定机械臂执行的目标动作。执行该目标动作的机械臂能够成功抓取待抓取物体,并将待抓取物体由当前位置移动至目标位置,其中,对于一个待抓取物体,机械臂可以执行的目标动作可以有多个,即机械臂和机械臂的抓手可以通过执行多种动作将待抓取物体移动至目标位置。
在本发明实施例中,通过根据机械臂所处环境的图像识别待抓取物体,以及确定机械臂与待抓取物体之间的目标距离,进而根据目标距离确定机械臂执行的目标动作,相对于现有技术中采用传感器确定待抓取物体的方式,在本不能发明中,采用机械臂所处环境的图像识别待抓取物体的方式,达到了精确控制机械臂抓取待抓取物体的目的,从而实现了提高机械臂的抓取精度的技术效果,进而解决了现有技术中机械臂的抓取精度较低的技术问题。
在本发明实施例中,根据机械臂所处环境的图像识别待抓取物体具体为:采集机械臂所处环境的视频图像,其中,视频图像包括多帧图像,然后,识别多帧图像中的待抓取物体。
在本发明实施例中,识别多帧图像中的待抓取物体,具体为:在多帧图像的每帧图像中添加滑动框,其中,滑动框的数量至少为一个,然后,当滑动框在每帧图像中滑动时,获取处于滑动框内的图像像素,最后,通过预先设置的目标分类器从处于滑动框内的图像像素中识别出待抓取物体,其中,目标分类器用于指示待抓取物体的特征。
具体地,在本发明实施例中,可以通过视觉识别装置中的摄像头采集机械臂所处环境的视频图像,然后,在视频图像包括的多帧图像中识别待抓取物体。识别待抓取物体的方法可以有很多种,在本发明实施例中,可以采用滑动框技术和视觉识别装置中的物体识别系统在多帧图像中识别待抓取物体,其中,滑动框技术为在多帧图像的每帧图像中添加一个或者多个滑动框,使用并行计算方法使多个滑动框并行在每频视频图像中滑动,滑动框在每帧图像中滑动的过程中,将处于滑动框内的图像像素分别通过物体识别装置进行物体识别检测,进而在滑动框内的图像像素中识别出待抓取物体。如果通过物体识别装置识别出的物体为待抓取物体,则在识别出的待抓取物体上保留该滑动框,即在识别出的待抓取物体上显示一个滑动框。由于该保留的滑动框中除待抓取物体,还可能框住了其他的物体,因此,可以缩小保留的滑动框的尺寸,使得滑动框框定的图像像素的范围变小,然后,通过上述物体识别装置对处于缩小之后的滑动框内的图像像素进行识别,直到滑动框的尺寸不能缩小为止,即在滑动框内仅框定一个物体(即,上述待抓取物体)。
需要说明的是,在本发明实施例中,利用并行计算方式使多个滑动框并行在每频视频图像中滑动,能够快速搜索视频图像中需要抓取的物体,进而再结合双目测距系统确定识别出的物体与机械臂之间的距离(即,上述目标距离),确定目标距离之后,就可以快速、有效地辅助机械臂定位物体,并执行抓取动作。
例如,视觉识别装置获取到的视频图像中包括物体A和物体B,其中,物体B的尺寸大于物体A,在对该视频图像的每帧图像进行处理时,滑动框框定的图像像素中包括物体A和物体B,因此,为了保证识别出的物体的准确度,需缩小该滑动框,使得该滑动框框定的图像像素中仅包括物体A,此时,通过物体识别装置识别出物体A即为上述待抓取物体。
需要说明的是,在本发明实施例中,滑动框可以有多种尺寸(例如,N×N的正方形框),因此,可以在每帧图像中添加多个尺寸不相同的滑动框,并按照并行算法使多个滑动框并行在每频视频图像中滑动。
在滑动框中使用的物体识别装置中的识别算法可以有很多种,在本发明实施例中,可以是简易的深度学习算法,其中,可以使用简单的卷积神经元网络结构构建目标分类器,通过目标分类器对处于滑动框内的图像像素进行识别,以提高物体识别的效率。
由于机器人可能从多种角度、在多种光线条件下搜索物体,传统的机器人学习对于物体特征提取要求较大,需要人工预处理添加特征信息才能进行有效的识别模型训练。然而,在本发明实施例中,通过深度学习算法能够对处于滑动框内的图像的物体特征进行提取,进而,通过物体特征对该物体进行识别。采用深度学习算法识别物体的效果高于传统机器人中的学习方法,同时,采用深度学习算法识别物体的方法对于角度和光照条件的要求不高。
上述深度学习算法可以为卷积神经元网络构建的目标分类器(即上述预先构建的目标分类器),用较少的卷积核和下采样层提取多帧图像中的物体特征信息,然后,利用简单的全连接层结构表示该物体特征信息,通过对物体特征信息进行处理之后,输出该物体的识别结果。
需要说明的是,通过机器人的视觉识别装置收集了机械臂所处环境多个不同角度、不同种类、不同光照条件下的各类物体的图像,输入到卷积神经元网络中进行前向和反向的训练(Back propagation),训练之后目标分类器的输出分类结果,例如,识别出的物体为待抓取物体,则输出为1,识别出的物体不是待抓取物体,则输出为0。
经过训练之后,目标分类器即可用于识别图像(即,上述多帧图像)中的物体(即,待抓取物体),即输入图像(即,多帧图像)经过卷积神经元网络的前向计算和后向计算之后得到的分类结果,例如,如果分类结果为1,表示多帧图像中的物体是待转抓取的物体,如果分类结果为0,表示多帧图像中的物体不是待转抓取的物体。
因此,在本发明实施例中,通过使用训练好的目标分类器,识别滑动框在多帧图像中框定的物体是否为待抓取物体的方法,省去了目标分类器的训练过程,能够极大提高系统的运行速度。
在本发明实施例中,确定待抓取物体与机械臂之间的目标距离包括:采集待抓取物体的第一图像和第二图像,其中,第一图像通过第一摄像头采集,第二图像通过第二摄像头采集,第一摄像头与第二摄像头设置在相同的水平面上,然后,利用第一图像和第二图像的图像参数,按照如下公式确定目标距离D,公式为:
其中,b表示第一摄像头的中线与第二摄像头的中线之间的距离;x
1表示第一摄像头的投影距离,x
2表示第二摄像头的投影距离;f表示第一摄像头的镜头长度和第二摄像头的镜头长度。
具体地,视觉识别装置在能够识别到待抓取物体的基础上,可以利用立体视觉检测识别到的待抓取物体到机器人本身的大致距离,在该实施例中采用双目测距系统的方法检测待抓取物体到机器人本身之间的距离(即上述的目标距离),其中,上述视觉识别装置包括第一摄像头和第二摄像头。
如图2所示,第一摄像头A1(图2中的左侧摄像头)和第二摄像头A2(图2中的右侧摄像头)设置在相同的水平位置上,第一摄像头和第二摄像头具有相同的镜头长度f和相同的视角角度θ0。目标T(即,待抓取物体)在左侧摄像头中的投影距离是x1,目标T(即,待抓取物体)在右侧摄像头中的投影距离是x2,并且两个摄像头的中心距离为b,b1和b2分别为水平方向镜头中心线到目标T(即,待抓取物体)的距离。利用等比对角(对左右两个镜头分别为θ1和θ2)原理,即相似三角形原理可以构建等式:
其中,D为镜头到目标T(即,待抓取物体)的直线距离。因为b1+b2=b,b即两个镜头中线线间的距离,根据上述公式可以得到下述公式:
从2中可以看出,镜头长度可以f可以理解为摄像头的像素平面到摄像头凸透镜光心的距离。上述像素平面为摄像头成像的CCD传感器表面,可以使用CCD传感器的尺寸对f进行像素转化(或将像素转化到真实距离),例如CCD传感器的尺寸为8mm x 6mm,相机的像素为800x600,f的距离为8mm,则转化为像素值得到f=800pixels。由此,可以得到真实的距离值。
当然,在实际过程中,两个摄像头不能够完美地对准位置,对于得到的图像也会出现差异(例如,物体角度不相等)。因此,在上述实施例中,可以以识别到图像中物体的中心点为基准,并可以采用取均值等矫正方法矫正中间产生的微小误差,计算识别到的物体(如识别到的待抓取物体)与机器人本身之间的距离(即上述的目标距离)。
需要说明的是,在本发明实施例中,上述视觉识别装置中可以包括两个摄像头(即,上述第一摄像头和第二摄像头),除此之外,还可以包括第三摄像头,由于第一摄像头和第二摄像头设置在相同的水平面上,此时,第三摄像头可以设置在第一摄像头和第二摄像头所在平面的垂直方向上,通过上述三个摄像头能够更加精确地确定待抓取物体与机械臂的目标距离,从而能够提高机械臂的移动精度。
在本发明实施例中,根据目标距离确定机械臂执行的目标动作包括:根据目标距离控制机械臂移动至待抓取物体所在的第一范围,其中,处于第一范围的机械臂接触待抓取物体;在第一范围内确定机械臂执行的目标动作。
其中,在第一范围内确定机械臂执行的目标动作包括:在第一范围内确定机械臂执行的目标移动动作,以及在第一范围内确定机械臂的抓手执行的目标抓取动作,其中,目标移动动作用于指示命令机械臂移动至待抓取物体所在的位置,目标抓取动作用于指示命令抓手抓取待抓取物体。
具体地,在机器人通过上述视觉识别装置识别到待抓取物体,并通过双目测距系统(即,上述包括两个摄像头的视觉识别装置)确定该待抓取物体的与机械臂之间的目标距离之后,机器人可以将机械臂移动至抓取范围(即,上述第一范围)。抓取范围是经过预先人为测量的机械臂抓手能够接触抓取物体的大致范围,即抓手在抓取范围内可以抓取或者接触待抓取物体,但是,处于抓取范围的机械臂的抓手并不一定能够将待抓取物体移动至目标位置。
在将机械臂移动至第一范围之后,下一阶段可以为优化抓手的抓取动作,得到优化之后的目标抓取动作,以及优化机械臂的移动动作,得到优化之后的目标移动动作,其中,当机械臂执行目标移动动作,机械臂的抓手执行目标抓取动作时,机械臂的抓手能够抓取该物体,并将该物体移动至目标位置。
在上述实施例中,在机械臂的抓手抓取物体时,可以通过视觉识别装置追踪机械臂和抓手的运动,如果通过视觉识别装置追踪得到物体和机械臂的抓手共同运动,并且成功移动至目标位置不掉落,则确定此时机械臂实行的动作为目标移动动作,机械臂的抓手执行的动作为目标抓取动作。
可选地,确定在第一范围内机械臂执行的目标移动动作包括:将初始移动动作序列作为当前移动动作序列,执行以下步骤,直到确定出目标移动动作:控制机械臂对当前移动动作序列执行移动训练操作,得到当前移动训练值;根据当前移动动作序列生成当前移动动作序列的下一个移动动作序列;对下一个移动动作序列执行移动训练操作,得到下一个移动训练值;判断下一个移动训练值与当前移动训练值的差值是否满足第一预设条件;如果下一个移动训练值与当前移动训练值的差值满足第一预设条件,则将下一个移动动作序列作为目标移动动作;如果下一个移动训练值与当前移动训练值的差值不满足第一预设条件,将下一个移动动作序列作为当前移动动作序列。
可选地,确定第一范围内机械臂的抓手执行的目标抓取动作包括:将初始抓取动作序列作为当前抓取动作序列,执行以下步骤,直到确定出目标抓取动作:控制机械臂的抓手对当前抓取动作序列执行抓取训练操作,得到当前抓取训练值;根据当前抓取动作序列生成当前抓取动作序列的下一个抓取动作序列;对下一个抓取动作序列执行抓取训练操作,得到下一个抓取训练值;判断下一个抓取训练值与当前抓取训练值的差值是否满足第二预设条件;如果下一个抓取训练值与当前抓取训练值的差值满足第二预设条件,则将下一个抓取动作序列作为目标抓取动作;如果下一个抓取训练值与当前抓取训练值的差值不满足第二预设条件,将下一个抓取动作序列作为当前抓取动作序列。
具体地,可以通过相应的训练算法对机械臂和机械臂抓手的动作进行训练得打目标移动动作和目标抓取动作。训练算法可以有很多种,例如,粒子群算法,神经网络算法,遗传算法,鱼群算法和蚁群算法等人工智能算法。在本发明实施例中,以遗传算法为例进行说明。
步骤S1,确定基因群;
遗传算法起源于达尔文的遗传进化论,因此,遗传算法首先要定义遗传基因(即,下述基因序列)。下面结合图3详细介绍确定基因序列。
由于机械臂和机械臂的抓手包括多个关节,可以通过每个关节的转动角度调节机械臂和抓手执行的动作。在本发明实施例中,可以将所有机械臂的抓手的关节运动器的移动范围值(所有可能的转动角度值)转为二进制码并组合为阵列,得到一系列的字节链。如图4所示,假设,运动器1和运动器2为机械臂的2个关节的运动器,字节链“00”可以表示为运动器1转动的角度值,字节链“01”可以表示为运动器2转动的角度值,将上述两个字节链作为一个子基因序列,集合到一起,形成一个基因序列,多个基因序列得到一个基因群。需要说明的是,在一个基因序列中,可以包括不止2个子基因序列,可以包括3个、4个子基因序列。如图4所示,字节链“00”表示运动器转动的角度值可以为30℃,字节链“01”表示运动器转动的角度值可以为35℃,字节链“10”表示运动器转动的角度值可以为40℃,字节链“11”表示运动器转动的角度值可以为45℃。
需要说明的是,在本发明实施例中,通过相应的训练算法分别对机械臂和机械臂抓手的动作进行训练,因此,对机械臂的动作进行训练时的基因群为第一基因群(即,上述第一初始动作),对机械臂的动作进行训练时的基因群为第二基因群(即,上述第二初始动作)。
步骤S2,确定适应度函数(fitness function);
在通过遗传算法对机械臂或者抓手的动作进行训练时,需要分别建立一个目标函数(即适应度函数),可以通过适应度函数判断是否找到了最优的机械臂动作(即目标移动动作)。由于机械臂需要进行移动和抓取的两个训练,因此构建了两个适应度函数,分别为fr和fg,其中,fr为对机械臂的移动动作进行训练时构建的适应度函数(下文称为机械臂移动适应度函数),fg为对机械臂的抓手动作进行训练时构建的适应度函数(下文称为机械臂抓手抓取适应度函数)。下面对上述适应度函数fr和fg分别进行详细的介绍。
(1)机械臂移动适应函数fr
由于机械臂移动动作的优劣判断取决于机械臂能否使抓手抵达可抓取物体(即,待抓取物体)的范围。其中,可以通过下述判断函数判断机械臂能否使抓手抵达可抓取物体的范围:
其中,do为待抓取物体到视觉识别装置中的摄像头的估计距离(又可称为景深值),dh为机械臂抓手到摄像头的估计距离。do与dh的差值与阈值T相比,如果do-dh≤T,判断出gr的输出值为1,表明机械臂的抓手进入抓取范围;如果do-dh>T,判断出gr的输出值为0,表明机械臂的抓手未进入抓取范围。其中,阈值T为预先试验测量的抓手可触碰到物体至物体可被完全抓取的距离差值。因此,上述机械臂移动适应函数所要满足的条件为:fr=do-dh→T,即机械手臂的移动能够使抓手尽可能进入抓取范围(即,上述第一范围)。根据fr=do-dh→T可知,fr的值越小,表明机械手臂的移动能够使抓手尽可能进入抓取范围。
(2)机械臂抓手抓取适应函数fg
由于机械臂抓手的抓取动作的优劣判断取决于抓手最终是否成功抓取物体,并将抓取的物体移动至目标位置,因此,判断抓手最终是否成功抓取物体的依据为视觉系统能否观察到物体和抓手共同移动并能够随时离开原有的空间平面,其中,该判断依据是为了防止机械臂只是推动物体在同一空间平面位移而不是抓取物体在空间中移动。其中,可以通过下述判断函数判断抓手最终是否成功抓取物体:
fg(t)=C0(t)-Ch(t)→0
在本实施例中,可以通过上述公知判断当前的抓手的抓取姿态是否为最优姿态(即,目标抓取动作)。
步骤S3,通过遗传算法对机械臂的移动进行训练,并对抓手的抓取动作进行训练:
(1)遗传算法对机械臂的移动进行训练
遗传算法的模型按照不同的任务对机械臂的移动进行训练,从上述运动器运动状态编码组合后的基因群中选择基因序列,作为父代基因链1(即,上述初始抓取动作序列)。执行父代基因链1(即,上述初始抓取动作序列)所代表的功能,而视觉识别装置观察判断并计算相应的动作结果(即,上述适应度函数fr)。
执行了父代基因链1,得到相应的适应度函数值a(即,当前抓取训练值)后,对父代基因链1进行重组和变异,得到子代基因链1(即,当前抓取动作序列的下一个抓取动作序列)后再次执行子代基因链1所代表功能,得到新的适应度函数b(即,对下一个抓取动作序列执行目标抓取训练操作之后得到的下一个抓取训练值)。将上述两次的训练结果(即,上述适应度函数a和适应度函数b)进行对比后,如果两次训练结果的差值小于一个误差值,例如,小于0.001(即,上述第一预设条件),则将子代基因链1执行的动作作为目标移动动作;如果两次训练结果的差值大于或者等于一个误差值,例如,大于或者等于0.001(即,不满足上述第一预设条件),则将子代基因链1作为父代基因链2。
执行当前父代基因链2所代表功能,重新得到一个适应度值c,然后对父代基因链2进行重组和变异,得到子代基因链2,执行子代基因链2,得到适应度值3,判断适应度值3与适应度值2的差值是否小于上述0.001,如果满足上述第一预设条件,将子代基因链2执行的动作作为目标移动动作,如果不满足上述第一预设条件,将子代基因链2作为父代基因链3,继续上述循环操作,直到执行目标抓取训练操作之后的训练结果与上一次执行目标抓取训练操作之后的训练结果的差值小于0.001。或者,如果预先设定对父代基因链1(即,初始抓取动作序列)执行预设次数的目标抓取训练操作,当执行完预设次数的目标抓取训练操作时,将执行最后一次目标抓取训练操作之后得到的基因序列作为最优的基因序列(即,目标移动动作)。
(2)遗传算法对机械臂的抓手的抓取动作进行训练
遗传算法的模型按照不同的任务对机械臂的抓手的抓取动作进行训练,从上述运动器运动状态编码组合后的基因群中选择基因序列,作为父代基因链1’(即,上述初始抓取动作序列)。执行父代基因链1’(即,上述初始抓取动作序列)所代表的功能,而视觉识别装置观察判断并计算相应的动作结果(即,上述适应度函数fg)。
执行了父代基因链1’,得到相应的适应度函数值a’(即,当前抓取训练值)后,对父代基因链1’进行重组和变异,得到子代基因链1’(即,当前抓取动作序列的下一个抓取动作序列)后再次执行子代基因链1’所代表功能,得到新的适应度函数b’(即,对下一个抓取动作序列执行目标抓取训练操作之后得到的下一个抓取训练值)。将上述两次的训练结果(即,上述适应度函数a’和适应度函数b’)进行对比后,如果两次训练结果的差值小于一个误差值,例如,小于0.001(即,上述第二预设条件),则将子代基因链1’执行的动作作为目标抓取动作;如果两次训练结果的差值大于或者等于一个误差值,例如,大于或者等于0.001(即,不满足上述第二预设条件),则将子代基因链1’作为父代基因链2’。
执行当前父代基因链2’所代表功能,重新得到一个适应度值c’,然后对父代基因链2’进行重组和变异,得到子代基因链2’,执行子代基因链2’,得到适应度值3’,判断适应度值3’与适应度值2’的差值是否小于上述0.001,如果满足上述第二预设条件,将子代基因链2’执行的动作作为目标抓取动作,如果不满足上述第二预设条件,将子代基因链2’作为父代基因链3’,继续上述循环操作,直到执行目标抓取训练操作之后的训练结果与上一次执行目标抓取训练操作之后的训练结果的差值小于0.001。或者,如果预先设定对父代基因链1’(即,初始抓取动作序列)执行预设次数的目标抓取训练操作,当执行完预设次数的目标抓取训练操作时,将执行最后一次目标抓取训练操作之后得到的基因序列作为最优的基因序列(即,目标抓取动作)。
需要说明的是,上述对机械臂移动进行训练的过程,以及对机械臂的抓手的抓取动作进行训练的过程为大量的训练过程,研发人员通过设置不同位置,不同角度,不同形状的大量物体对机器人继续抓取训练,当用户采用该机器人进行抓取时,不需要再进行训练,可以通过该机器人直接并准确地抓取物体。并且,在本发明实施例中采用的训练方法能够通过转移学习,应用到抓取其它物体,节省了训练时间,上述训练方法具有一定的自适应性,能在遇到不同角度、形变等情况下利用先前训练得到的动作进行进一步优化、调整。
图4是根据本发明实施例的一种可选地机械臂的控制方法的流程图,如图4所示,该方法包括如下步骤:
步骤S402,视觉识别装置根据机械臂所处环境的图像识别待抓取物体。
步骤S404,视觉识别装置确定待抓取物体与机械臂之间的目标距离。
步骤S406,机械臂控制系统根据目标距离控制机械臂移动至待抓取物体所在的第一范围。
步骤S408,对机械臂的移动动作进行训练,并对机械臂抓手的抓取动作进行训练。
步骤S410,机械臂的抓手抓取待抓取物体。其中,机械臂的抓手在抓取待抓取物体之后,返回步骤S402,视觉识别装置继续根据机械臂所处环境的图像识别待抓取物体。
在本发明实施例中,利用视觉识别装置中的物体识别装置和双目测距系统,协助机械臂在视线范围内搜索需要抓取的物体(即,待抓取物体),并确定待抓取物体与机器人本体的目标距离。然后,机械臂控制系统根据目标距离控制机械臂移动至待抓取物体所在的第一范围,接下来,使用遗传算法对机械臂和抓手在第一范围内分别进行训练,得到机械臂和抓手能够抓取物体,并将物体移动至目标位置的最佳的手臂动作,即手臂移动、各关节转动和伸缩等。同时,还可以通过视觉识别装置对机械臂的抓手进行识别和跟踪,以判断抓手是否能够触碰到物体。整个动作训练过程为闭环训练,视觉识别装置将不断观察机械臂动作对物体状态产生的变化,辅助遗传算法计算其动作训练的效果,帮助其不断获取更优化的动作。
本发明实施例还提供了一种机械臂的控制装置,该控制装置主要用于执行本发明实施例上述内容所提供的机械臂的控制方法,以下对本发明实施例送提供的机械臂的控制装置做具体介绍。
图5是根据本发明实施例的一种机械臂的控制装置的示意图,如图4所示,该装置包括:识别单元51、第一确定单元53和第二确定单元55,其中,
识别单元51,用于根据机械臂所处环境的图像识别待抓取物体。
上述机械臂可以为任意一个机器人中的机械臂,在该机械臂上安装有抓手,该抓手用于抓取待抓取物体,其中,上述机械臂和抓手均包括多个关节(例如,机械臂的肘关节),在本发明实施例中可以通过调节上述机械臂的多个关节和抓手的多个关节的来调节机械臂的抓取姿态。
在本发明实施例中,可以通过视觉识别装置获取机械臂所处环境的图像,进而根据获取到的图像信息识别待抓取物体。
第一确定单元53,用于确定待抓取物体与机械臂之间的目标距离。
在本发明实施例中,可以通过上述视觉识别装置协助机械臂在视觉识别装置的视线范围内搜索待抓取物体,并通过视觉识别装置检测待抓取物体到机器人的机械臂本身的大致距离(即,上述目标距离)。
第二确定单元55,用于根据目标距离确定机械臂执行的目标动作,其中,目标动作用于指示命令机械臂抓取待抓取物体并将待抓取物体移动至目标位置。
在确定待抓取物体到机器人的机械臂本身的大致距离之后,可以根据该距离确定机械臂执行的目标动作。执行该目标动作的机械臂能够成功抓取待抓取物体,并将待抓取物体由当前位置移动至目标位置,其中,对于一个待抓取物体,机械臂可以执行的目标动作可以有多个,即机械臂和机械臂的抓手可以通过执行多种动作将待抓取物体移动至目标位置。
在本发明实施例中,通过根据机械臂所处环境的图像识别待抓取物体,以及确定机械臂与待抓取物体之间的目标距离,进而根据目标距离确定机械臂执行的目标动作,相对于现有技术中采用传感器确定待抓取物体的方式,在本不能发明中,采用机械臂所处环境的图像识别待抓取物体的方式,达到了精确控制机械臂抓取待抓取物体的目的,从而实现了提高机械臂的抓取精度的技术效果,进而解决了现有技术中机械臂的抓取精度较低的技术问题。
可选地,识别单元包括:采集子单元,用于采集机械臂所处环境的视频图像,其中,视频图像包括多帧图像;识别子单元,用于识别多帧图像中的待抓取物体。
可选地,识别子单元包括:添加模块,用于在多帧图像的每帧图像中添加滑动框,其中,滑动框的数量至少为一个;获取模块,用于当滑动框在每帧图像中滑动时,获取处于滑动框内的图像像素;识别模块,用于通过预先设置的目标分类器从处于滑动框内的图像像素中识别出待抓取物体。
可选地,第一确定单元包括:采集模块,用于采集待抓取物体的第一图像和第二图像,所述采集模块包括第一摄像头及第二摄像头,其中,第一图像通过第一摄像头采集,第二图像通过第二摄像头采集,第一摄像头与第二摄像头设置在相同的水平面上;计算模块,用于利用第一图像和第二图像的图像参数,按照如下公式计算目标距离D,公式为:
其中,b表示第一摄像头的中线与第二摄像头的中线之间的距离;x
1表示第一摄像头的投影距离,x
2表示第二摄像头的投影距离;f表示第一摄像头的镜头长度和第二摄像头的镜头长度。
可选地,第二确定单元包括:移动子单元,用于根据目标距离控制机械臂移动至待抓取物体所在的第一范围,其中,处于第一范围内的机械臂接触待抓取物体;执行子单元,用于在第一范围内确定机械臂执行的目标动作。
可选地,执行子单元包括:确定模块,用于在第一范围内确定机械臂执行的目标移动动作,以及在第一范围内确定机械臂的抓手执行的目标抓取动作,其中,目标移动动作用于指示命令机械臂移动至待抓取物体所在的位置,目标抓取动作用于指示命令抓手抓取待抓取物体。
可选地,确定模块包括:将初始移动动作序列作为当前移动动作序列,执行以下步骤,直到确定出目标移动动作:第一控制子模块,用于控制机械臂对当前移动动作序列执行移动训练操作,得到当前移动训练值;第一生成子模块,用于根据当前移动动作序列生成当前移动动作序列的下一个移动动作序列;第一执行子模块,用于对下一个移动动作序列执行移动训练操作,得到下一个移动训练值;第一判断子模块,用于判断下一个移动训练值与当前移动训练值的差值是否满足第一预设条件;第一确定子模块,用于在下一个移动训练值与当前移动训练值的差值满足第一预设条件的情况下,将下一个移动动作序列作为目标移动动作;第二确定子模块,用于在下一个移动训练值与当前移动训练值的差值不满足第一预设条件的情况下,将下一个移动动作序列作为当前移动动作序列。
可选地,确定模块包括:将初始抓取动作序列作为当前抓取动作序列,执行以下步骤,直到确定出目标抓取动作:第二控制子模块,用于控制机械臂的抓手对当前抓取动作序列执行抓取训练操作,得到当前抓取训练值;第二生成子模块,用于根据当前抓取动作序列生成当前抓取动作序列的下一个抓取动作序列;第二执行子模块,用于对下一个抓取动作序列执行抓取训练操作,得到下一个抓取训练值;第二判断子模块,用于判断下一个抓取训练值与当前抓取训练值的差值是否满足第二预设条件;第三确定子模块,用于在下一个抓取训练值与当前抓取训练值的差值满足第二预设条件的情况下,将下一个抓取动作序列作为目标抓取动作;第四确定子模块,用于如果下一个抓取训练值与当前抓取训练值的差值不满足第二预设条件,将下一个抓取动作序列作为当前抓取动作序列。
本发明实施例还提供了一种执行上述机械臂的控制方法的机械臂。
图6是根据本发明实施例的一种机械臂的示意图,如图6所示,该机械臂装置包括:双目测距系统61和控制器63,其中,
双目测距系统61,用于识别机器人所处环境中的待抓取物体,并确定待抓取物体与机械臂之间的目标距离。
其中,双目测距系统包括第一摄像头和第二摄像头,其中,第一摄像头和第二摄像头设置在相同的水平面上,并且第一摄像头的镜头长度和第二摄像头的镜头长度相同,并且第一摄像头的视角角度和第二摄像头的视角角度相同。
控制器63,用于根据目标距离确定机械臂执行的目标动作,其中,目标动作用于指示机械臂抓取待抓取物体并将待抓取物体移动至目标位置。
在本发明实施例中,通过根据机械臂所处环境的图像识别待抓取物体,以及确定机械臂与待抓取物体之间的目标距离,进而根据目标距离确定机械臂执行的目标动作,相对于现有技术中采用传感器确定待抓取物体的方式,在本不能发明中,采用机械臂所处环境的图像识别待抓取物体的方式,达到了精确控制机械臂抓取待抓取物体的目的,从而实现了提高机械臂的抓取精度的技术效果,进而解决了现有技术中机械臂的抓取精度较低的技术问题。
本发明实施例还提供了一种机器人,包括上述机械臂。在本发明实施例中,可以在任意一个机器人中安装在机械臂,并通过该机械臂抓取物体。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。