抓取位姿生成方法、装置、电子设备及可读存储介质
文献发布时间:2024-04-18 20:00:50
技术领域
本申请属于终端技术领域,尤其涉及一种抓取位姿生成方法、装置、电子设备及计算机可读存储介质。
背景技术
随着机器人技术的快速发展,对机器人自主操作的要求越来越高。自主操作可以包括让机器人自动进行物体的识别并抓取。在机器人进行物体抓取时需要先生成抓取位姿,以根据抓取位姿进行物体的抓取。目前,机器人一般是针对物体的所有可以抓取的位置生成初始的抓取位姿,并根据初始的抓取位姿最终确定稳定的抓取位姿,以根据稳定的抓取位姿进行物体的抓取,抓取位姿生成的速率和效率较低。
发明内容
本申请实施例提供了一种抓取位姿生成方法、装置、电子设备及计算机可读存储介质,可以仅针对目标物体的目标部位生成抓取位姿,不仅可以有效提高抓取位姿生成的速率和效率,而且使得电子设备可以通过目标部位来进行目标物体的抓取,可以提高目标物体的抓取效率。
第一方面,本申请实施例提供了一种抓取位姿生成方法,可以包括:
获取目标物体对应的第一点云数据;
将所述第一点云数据输入至第一分割网络进行处理,得到所述第一分割网络输出的第二点云数据,所述第二点云数据为所述目标物体中的目标部位对应的点云数据;
将所述第二点云数据输入至抓取位姿生成网络进行处理,得到所述目标部位对应的目标抓取位姿。
在上述提供的抓取位姿生成方法中,在需要抓取目标物体时,电子设备可以获取目标物体对应的第一点云数据,并可以将第一点云数据输入至第一分割网络进行处理,得到第一分割网络输出的第二点云数据,第二点云数据可以为目标物体中的目标部位对应的点云数据。随后,电子设备可以将第二点云数据输入至抓取位姿生成网络进行处理,以得到目标部位对应的目标抓取位姿。即本申请实施例中,电子设备不需要针对目标物体的所有可以抓取的位置生成抓取位姿,而可以仅针对目标物体的目标部位生成抓取位姿,不仅可以提高抓取位姿生成的速率和效率,而且使得电子设备可以通过目标部位来进行目标物体的抓取,提高目标物体的抓取效率,提升用户体验。
示例性的,所述将所述第二点云数据输入至抓取位姿生成网络进行处理,得到所述目标部位对应的目标抓取位姿,可以包括:
将所述第二点云数据输入至所述抓取位姿生成网络进行处理,得到所述抓取位姿生成网络输出的一个或多个第一候选抓取位姿和各所述第一候选抓取位姿对应的得分,所述第一候选抓取位姿为所述目标部位对应的抓取位姿;
从所述第一候选抓取位姿中,获取得分大于或等于预设阈值的一个或多个第二候选抓取位姿;
根据电子设备的执行机构的运动范围,从所述第二候选抓取位姿中,确定所述目标部位对应的目标抓取位姿,所述目标抓取位姿为所述电子设备的执行机构可到达的位姿。
在一些实施例中,所述根据电子设备的执行机构的运动范围,从所述第二候选抓取位姿中,确定所述目标部位对应的目标抓取位姿,可以包括:
根据所述电子设备的执行机构的运动范围,从所述第二候选抓取位姿中,确定一个或多个第三候选抓取位姿,所述第三候选抓取位姿为所述电子设备的执行机构可到达的位姿;
根据所述电子设备的执行机构对应的工作空间范围,从所述第三候选抓取位姿中,确定所述目标部位对应的目标抓取位姿,所述目标抓取位姿位于所述电子设备的执行机构对应的工作空间范围内。
在另一些实施例中,所述根据电子设备的执行机构的运动范围,从所述第二候选抓取位姿中,确定所述目标部位对应的目标抓取位姿,可以包括:
根据所述电子设备的执行机构的运动范围,从所述第二候选抓取位姿中,确定一个或多个第三候选抓取位姿,所述第三候选抓取位姿为所述电子设备的执行机构可到达的位姿;
根据各所述第三候选抓取位姿和第三点云数据,确定第四候选抓取位姿,并根据所述第四候选抓取位姿,确定所述目标部位对应的目标抓取位姿,所述第三点云数据为非所述目标部位对应的点云数据,所述第四候选抓取位姿为所述第三候选抓取位姿中的位姿,所述第四候选抓取位姿为所述电子设备的执行机构运动至所述第四候选抓取位姿抓取所述目标部位时,不会发生碰撞的位姿。
可选的,所述根据所述第四候选抓取位姿,确定所述目标部位对应的目标抓取位姿,可以包括:
当所述第四候选抓取位姿包括多个时,根据所述第四候选抓取位姿对应的得分,确定所述目标部位对应的目标抓取位姿,所述目标抓取位姿为所述第四候选抓取位姿中,得分最大的候选抓取位姿。
示例性的,所述获取目标物体对应的第一点云数据,可以包括:
获取包含所述目标物体的目标环境对应的第四点云数据;
将所述第四点云数据输入至第二分割网络进行处理,得到所述目标物体对应的第一点云数据。
示例性的,所述第一点云数据和所述第二点云数据为三维点云数据。
第二方面,本申请实施例提供了一种抓取位姿生成装置,可以包括:
第一点云获取模块,用于获取目标物体对应的第一点云数据;
第二点云获取模块,用于将所述第一点云数据输入至第一分割网络进行处理,得到所述第一分割网络输出的第二点云数据,所述第二点云数据为所述目标物体中的目标部位对应的点云数据;
抓取位姿生成模块,用于将所述第二点云数据输入至抓取位姿生成网络进行处理,得到所述目标部位对应的目标抓取位姿。
第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,使所述电子设备实现上述第一方面中任一项所述的抓取位姿生成方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被电子设备执行时,使所述电子设备实现上述第一方面中任一项所述的抓取位姿生成方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述的抓取位姿生成方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种抓取位姿生成方法的示意性流程图;
图2是本申请实施例提供的目标物体的示例图;
图3是本申请实施例提供的一种抓取位姿生成装置的结构示意图;
图4是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
随着机器人技术的快速发展,对机器人自主操作的要求也越来越高。自主操作可以包括让机器人自动进行物体的识别并抓取。在机器人进行物体抓取时需要先生成抓取位姿,以根据抓取位姿进行物体的抓取。
一般地,机器人可以通过二维(2dimensions,2D)抓取或者启发式方法生成抓取位姿。其中,2D抓取是在一个平面环境下进行自上而下的抓取。启发式方法一般能够生成大量的待选择的6D抓取位姿,再通过合适的后处理获得稳定的6D抓取位姿。后处理一般是人为设定的规则。机器人还可以通过基于学习的方法训练深度神经网络,来对启发式方法生成的6D抓取位姿进行评估,以得到稳定的6D抓取位姿。
另外,机器人还可以通过深度学习网络生成抓取位姿。其中,深度学习网络(例如pointNetGPD)可以通过网络生成抓取位姿,并可以通过网络对生成的抓取位姿进行评估,得到稳定的抓取位姿。或者,深度学习网络可以直接端到端生成最后的抓取位姿,例如体积抓取网络(volumetric grasping network,VGN)可以直接端到端的生成最后的抓取位姿。然而,这些抓取位姿的生成方式都是针对物体的所有可以抓取的位置生成的,抓取位姿生成的速率和效率较低,影响用户体验。
另外,在机器人的自主操作中,抓取物体的特定部位是一个较广泛的应用场景。例如当机器人需要操作剪刀、水壶或马克杯等工具,一般是需要机器人拿起工具的特定部位,例如剪刀柄、壶把手、杯子把手等,而不仅是简单的抓取。因此,如何生成抓取物体的特定部位的抓取位姿是一个亟待解决的问题。
为解决上述问题,本申请实施例提供了一种抓取位姿生成方法、装置、电子设备及计算机可读存储介质。该方法中,在需要抓取目标物体时,电子设备可以获取目标物体对应的第一点云数据,并可以将第一点云数据输入至第一分割网络进行处理,得到第一分割网络输出的第二点云数据,第二点云数据可以为目标物体中的目标部位对应的点云数据。随后,电子设备可以将第二点云数据输入至抓取位姿生成网络进行处理,以得到目标部位对应的目标抓取位姿。即本申请实施例中,电子设备不需要针对目标物体的所有可以抓取的位置生成抓取位姿,而可以仅针对目标物体的目标部位生成抓取位姿,不仅可以提高抓取位姿生成的速率和效率,而且使得电子设备可以通过目标部位来进行目标物体的抓取,提高目标物体的抓取效率,提升用户体验,具有较强的易用性和实用性。
下面将结合附图和具体应用场景对本申请实施例提供的抓取位姿生成方法进行详细说明。
请参阅图1,图1示出了本申请实施例提供的抓取位姿生成方法的示意性流程图。该方法可以应用于机器人、机械臂等可以进行物体抓取的电子设备。以下将以应用于机器人为例进行示例性说明。其中,机器人可以进行6自由度抓取,即机器人的执行结构能够以6自由度进行物体抓取。6自由度可以包括沿x、y、z三个坐标轴方向的平移自由度和绕这三个坐标轴的转动自由度。转动自由度包括绕x轴旋转的翻滚角roll、绕y轴旋转的俯仰角pitch和绕z轴旋转的偏航角yaw。也就是说,本申请实施例描述的抓取位姿可以为一组6维(即6D)的数据,例如可以为[x,y,z,roll,pitch,yaw]。
可以理解的是,机器人的执行机构可以根据实际场景具体确定,本申请实施例对此不作任何限制。例如,执行结构可以为二指夹爪、三指机械手、五指灵巧手、软体执行机构或吸附式执行机构,等等。
如图1所示,该方法可以包括:
S101、获取目标物体对应的第一点云数据。
示例性的,目标物体可以为任一可被抓取的物体。例如,目标物体可以为浇水壶、马克杯或者剪刀等任一物体。
可选的,本申请实施例中所描述的点云数据均可以为3D点云数据,即第一点云数据可以为3D点云数据。
示例性的,机器人可以获取目标环境对应的点云数据(以下可以称为第四点云数据),目标环境中可以包括目标物体。随后,机器人可以将第四点云数据输入至已训练完成的语义分割网络(以下可以称为第二分割网络)进行处理,得到第二分割网络输出的目标物体对应的第一点云数据。
可以理解的是,本申请实施例对第四点云数据的获取方式不作任何限制,可以根据实际场景具体确定。例如,机器人可以直接通过激光雷达等传感器对目标环境进行点云数据的采集,以获取第四点云数据。例如,机器人可以通过特定的深度相机(即可以直接获取点云数据的深度相机)对目标环境进行拍摄,以获取第四点云数据。例如,机器人可以通过深度相机获取目标环境对应的深度图,并可以对深度图进行转换,以得到第四点云数据。电子设备通过深度相机获取目标环境对应的深度图的方式可以根据实际场景具体确定。例如,对于双目相机和单目相机,可以采集目标环境对应的至少两张图像,并可以根据三角形原理得到各像素点的深度值,从而得到目标环境对应的深度图。
可选的,机器人中进行点云数据采集的传感器(例如激光雷达或深度相机等)与机器人的执行机构需具有一定的联系。例如,传感器的可视空间范围与执行机构的工作空间范围需要具有一定范围的重叠,以确保可以根据传感器采集的点云数据来准确生成目标物体中的目标部位对应的抓取位姿。其中,一定范围可以根据实际场景具体确定,本申请实施例对此不作任何限制。
例如,以人形机器人为例,当机器人通过头部的深度相机来对目标环境进行第四点云数据的采集时,头部的深度相机的可视空间范围(例如低头后的可视空间范围)与手臂的工作空间范围需具有一定范围的重叠。
在一个示例中,在获取第四点云数据后,可以对第四点云数据进行预处理,并可以将预处理后的第四点云数据输入至第二分割网络进行处理,得到第二分割网络输出的目标物体对应的第一点云数据。
示例性的,预处理可以包括点云拼接、点云滤波或点云补全等中的一个或多个。
可选的,点云拼接可以是对多次采集的点云数据进行拼接处理,即点云拼接可以是在对目标环境采集了多次点云数据后,对采集的多次点云数据进行拼接。其中,具体的拼接方式可以根据实际场景具体确定。
可选的,点云滤波可以包括直通滤波。由于传感器的可视空间范围一般大于机器人的执行机构(例如手臂)的工作空间范围,即传感器采集的点云数据的范围会大于执行机构的工作空间范围,为减少数据规模,提高计算效率,可以通过直通滤波将距离执行机构的工作空间范围较远的点剔除。另外,为去除噪点,以生成更均匀的采样点(即点云数据),还可以通过体素滤波器、均匀采样滤波器、统计滤波器、高斯滤波、双边滤波或基于权重局部优化投影简化算法等滤波器来进行点云滤波。
可选的,点云补全可以为对第四点云数据中缺失的点云数据进行补全。点云补全的具体方式可以根据实际场景确定,本申请实施例对此不作任何限制。例如,可以通过基于模型匹配的补全方法或学习网络的补全方法来进行点云补全。
示例性的,第二分割网络(即语义分割网络)可以为pointNet++网络。
下面将对第二分割网络的训练过程进行详细说明。应理解,训练第二分割网络的执行主体可以为生成抓取位姿的电子设备(例如机器人),也可以为其他电子设备,本申请实施例对此不作任何限制。以下将以训练第二分割网络的执行主体为生成抓取位姿的机器人为例进行示例性说明。
在训练第二分割网络之前,机器人可以获取训练点云数据,训练点云数据中可以包括可被抓取的训练物体对应的点云数据。随后,机器人可以对训练点云数据进行物体标注,即可以对训练点云数据中的各训练物体对应的点云数据进行物体标注。例如,可以将训练点云数据中,训练物体A对应的每一个点云数据都标注为1,将训练物体B对应的每一个点云数据都标注为2,将训练物体C对应的每一个点云数据都标注为3,等等。
应理解,本申请实施例对训练点云数据进行物体标注的方式不作具体限制,可以根据实际场景确定。例如,可以通过点云标注工具(point cloud annotation tool)对训练点云数据进行物体标注。
可选的,训练点云数据可以为在实际环境中采集的点云数据,也可以为已经标注好物体类别的开源数据库中的点云数据,例如可以为S3DIS开源数据库中的点云数据。其中,当训练点云数据为已经标注好物体类别的开源数据库中的点云数据时,电子设备可以不用再对训练点云数据进行物体标注。
应理解,在标注各训练物体对应的点云数据后,对于每一个训练物体,机器人可以确定该训练物体中的每一个点云数据分别对应的点云法向量。例如,当训练物体A包括点云数据A、点云数据B和点云数据C时,机器人可以分别确定点云数据A对应的点云法向量、点云数据B对应的点云法向量和点云数据C对应的点云法向量。随后,机器人可以根据各训练物体对应的点云数据和各点云数据对应的点云法向量训练第二分割网络,得到训练完成的第二分割网络。
S102、将第一点云数据输入至第一分割网络进行处理,得到第一分割网络输出的第二点云数据,第二点云数据为目标物体中的目标部位对应的点云数据。
示例性的,目标部位可以为目标物体中方便机器人进行抓取的部位,或者可以方便机器人使用目标物体的部位。
例如,请参阅图2,图2示出了本申请实施例提供的目标物体的示例图。
如图2中的(a)所示,目标物体可以为剪刀,剪刀可以包括剪刀刃210和剪刀柄211,目标物体中的目标部位可以为剪刀柄211,使得机器人可以通过剪刀柄211拿起剪刀,从而方便机器人进行后续操作。
如图2中的(b)所示,目标物体可以为浇水壶,浇水壶可以包括壶身220和壶把手221,目标物体中的目标部位可以为壶把手221,使得机器人可以通过壶把手221拿起浇水壶,从而方便机器人进行后续操作。
如图2中的(c)所示,目标物体可以为马克杯,马克杯可以包括杯身230和杯子把手231,目标物体中的目标部位可以为杯子把手231,使得机器人可以通过杯子把手231拿起马克杯,从而方便机器人进行后续操作。
可选的,第一分割网络也可以称为实例分割网络。可选的,第一分割网络可以为pointNet++网络。
下面将对第一分割网络的训练过程进行详细说明。应理解,训练第一分割网络的执行主体可以为生成抓取位姿的电子设备(例如机器人),也可以为其他电子设备,本申请实施例对此不作任何限制。以下将以训练第一分割网络的执行主体为生成抓取位姿的机器人为例进行示例性说明。
在训练第一分割网络之前,机器人可以获取训练点云数据,训练点云数据中可以包括可被抓取的训练物体对应的点云数据。随后,机器人可以对训练点云数据中的各训练物体中的目标部位进行标注,即可以对每一训练物体中的目标部位对应的点云数据进行标注。可以理解的是,不同的训练物体可以具有不同的目标部位。例如,可以将训练点云数据中,训练物体A中的目标部位A对应的每一个点云数据都标注为1,将训练物体B中的目标部位B对应的每一个点云数据都标注为2,将训练物体C中的目标部位C对应的每一个点云数据都标注为3,等等。
可选的,训练点云数据可以为在实际环境中采集的点云数据,也可以为已经标注好物体中的目标部位的开源数据库中的点云数据,例如可以为ShapeNet开源数据库的点云数据。其中,当训练点云数据为已经标注好物体中的目标部位的开源数据库中的点云数据时,电子设备可以不用再对训练点云数据进行目标部位的标注。
应理解,在标注各训练物体中的目标部位对应的点云数据后,对于每一个训练物体中的目标部位,机器人可以确定该训练物体中的目标部位的每一个点云数据分别对应的点云法向量。随后,机器人可以根据各目标部位对应的点云数据和各点云数据对应的点云法向量训练第一分割网络,得到训练完成的第一分割网络。
S103、将第二点云数据输入至抓取位姿生成网络进行处理,得到目标部位对应的目标抓取位姿。
可选的,抓取位姿生成网络可以为VGN。其中,VGN的数据输入格式可以为截断符号距离函数(truncated signed distance function,TSDF)格式。在获取目标物体中的目标部位对应的第二点云数据后,可以将第二点云数据转换成TSDF格式,并可以将转换成TSDF格式的第二点云数据输入至训练完成的抓取位姿生成网络进行处理,得到目标部位对应的目标抓取位姿。
下面先对抓取位姿生成网络的训练过程进行详细描述。应理解,训练抓取位姿生成网络的执行主体可以为生成抓取位姿的电子设备(例如机器人),也可以为其他电子设备,本申请实施例对此不作任何限制。以下将以训练抓取位姿生成网络的执行主体为生成抓取位姿的机器人为例进行示例性说明。
在训练抓取位姿生成网络之前,机器人可以先获取用于训练抓取位姿生成网络的训练抓取数据。例如,机器人可以针对不同的训练物体采样生成一个或多个训练抓取位姿,并可以根据训练抓取位姿进行训练物体的抓取,根据抓取结果记录抓取成功或抓取失败,以生成训练抓取数据。随后,机器人可以通过训练抓取数据对抓取位姿生成网络进行训练,得到训练完成的抓取位姿生成网络。其中,训练抓取数据中可以包括抓取成功的抓取数据和抓取失败的抓取数据。例如,可以包括成功抓取某一训练物体的训练抓取位姿和没有成功抓取该训练物体的训练抓取位姿。
可选的,为增加抓取位姿生成网络的鲁棒性,机器人可以针对尽可能多种类的训练物体来进行训练抓取数据的生成。训练抓取数据中可以尽量确保正负样本(即抓取成功的抓取数据和抓取失败的抓取数据)的均衡,确保训练效果。
下面对训练抓取数据的生成过程进行简要描述。示例性的,机器人可以通过启发式的采样算法来实现的训练抓取数据的生成。可选的,机器人可以通过下述步骤来进行训练抓取数据的生成。
步骤一、机器人可以在仿真环境中随机生成N个训练物体。N的取值可以根据实际场景具体确定,例如N可以为1、2、3、4或5等中的任一数值。
步骤二、对于每一个训练物体,机器人可以在该训练物体上随机进行点云数据(以下可以称为训练点云数据)的采样,并计算该训练点云数据对应的法向量。
步骤三、当该训练点云数据对应的法向量的方向朝下时,机器人可以返回步骤二,即可以重新在该训练物体上随机进行点云数据的采样。
步骤四、当该训练点云数据对应的法向量的方向不是朝下时,机器人可以根据该训练点云数据对应的法向量的方向,在距离该训练点云数据一定距离的位置生成夹爪(即夹爪所在的方向与该训练点云数据对应的法向量的方向相同),并可以控制机器人的执行机构移动到该训练点云数据所在的位置后对该训练物体进行抓取。
步骤五、当机器人成功抓取起该训练物体时,机器人可以将该训练点云数据对应的训练抓取位姿标记为抓取成功,以得到该训练物体对应的训练抓取数据,即该训练物体对应的训练抓取位姿和该训练抓取位姿对应的抓取标注(即抓取成功)。否则,机器人可以将该训练点云数据对应的训练抓取位姿标记为抓取失败,以得到该训练物体对应的训练抓取数据,即该训练物体对应的训练抓取位姿和该训练抓取位姿对应的抓取标注(即抓取失败)。应理解,该训练点云数据对应的训练抓取位姿可以根据该训练点云数据所在的位置和对应的法向量的方向确定。
步骤六、机器人可以将该训练点云数据对应的法向量绕世界坐标系的竖直方向上的转轴旋转一定角度,并重新执行步骤四和步骤五。应理解,在对法向量进行不同角度的多次重复旋转后,可以更新环境,并返回步骤一以及后续步骤,以此进行多次操作后,可以得到训练抓取数据。
下面对根据第二点云数据确定目标部位对应的目标抓取位姿的过程进行说明。
在一个示例中,在得到目标物体中的目标部位对应的第二点云数据和已训练完成的抓取位姿生成网络后,机器人可以将第二点云数据输入至已训练完成的抓取位姿生成网络进行处理,得到抓取位姿生成网络输出的一个或多个候选抓取位姿(以下可以称为第一候选抓取位姿)和各第一候选抓取位姿对应的得分,第一候选抓取位姿可以为目标部位对应的抓取位姿,即可以为方便抓取目标部位的抓取位姿。随后,机器人可以从第一候选抓取位姿中,获取得分大于或等于预设阈值的一个或者多个候选抓取位姿(以下可以称为第二候选抓取位姿)。然后,机器人可以根据机器人的执行机构的运动范围,从第二候选抓取位姿中,确定目标部位对应的目标抓取位姿,目标抓取位姿为机器人的执行机构可到达的位姿。
可选的,第一候选抓取位姿对应的得分的范围可以为[0,1]。其中,得分越大表示第一候选抓取位姿的稳定性越高。
应理解,预设阈值可以根据实际场景确定,本申请实施例对此不作任何限制。例如,可以根据实际场景确定预设阈值可以为≥0.6。
也就是说,机器人获取抓取位姿生成网络输出的一个或多个第一候选抓取位姿和各第一候选抓取位姿对应的得分后,可以获取稳定性高于预设阈值的第二候选抓取位姿。对于每一个第二候选抓取位姿,机器人可以判断该第二候选抓取位姿是否满足机器人的执行机构(例如机械臂)的逆运动学解,即确定机器人的手臂是否可以到达该第二候选抓取位姿。若机器人的手臂无法到达该第二候选抓取位姿,则表示机器人无法通过该第二候选抓取位姿来进行目标物体的抓取,此时,机器人可以舍弃该第二候选抓取位姿。
需要说明的是,确定机器人的执行机构是否可以到达该第二候选抓取位姿的方式可以根据实际场景确定,本申请实施例对此不作任何限制。
示例性的,当第二候选抓取位姿中存在多个机器人的执行机构可到达的位姿时,机器人可以根据各第二候选抓取位姿对应的得分,确定目标部位对应的目标抓取位姿,目标抓取位姿可以为得分最大(或者可以称为得分最高)的候选抓取位姿。
示例性的,当第二候选抓取位姿中不存在机器人的执行机构可到达的位姿时,机器人可以返回重新生成第一候选抓取位姿,并可以重新确定第二候选抓取位姿,以根据重新确定的第二候选抓取位姿来确定目标部分对应的目标抓取位姿。
在另一个示例中,在确定第二候选抓取位姿后,机器人可以根据机器人的执行机构的运动范围,从第二候选抓取位姿中,确定一个或多个第三候选抓取位姿,并根据机器人的执行机构对应的工作空间范围,从第三候选抓取位姿中,确定目标部位对应的目标抓取位姿。目标抓取位姿可以位于机器人的执行机构对应的工作空间范围内。应理解,第三候选抓取位姿为机器人的执行机构可到达的位姿。
由于机器人的执行机构一般不是单独存在,例如,机器人所在的环境中还可以存在其他物体或者障碍物等,为实现无碰撞的抓取,一般会对机器人的执行机构对应的工作空间范围进行限制,超出该工作空间范围时,虽然机器人的执行机构可以到达对应的位置,但由于机器人的执行机构可能会发生碰撞等,影响机器人的工作性能,因此,对于超出该工作空间范围的第三候选抓取位姿,可以认为机器人无法通过该第三候选抓取位姿来进行目标物体的抓取,此时,机器人可以舍弃该第三候选抓取位姿,从而得到位于执行机构对应的工作空间范围内的第三候选抓取位姿。
可选的,机器人可以根据该第三候选抓取位姿中的位置(即在x、y、z三个坐标轴中的坐标)来确定第三候选抓取位姿是否位于执行机构对应的工作空间范围内。可以理解的是,执行机构对应的工作空间范围可以根据实际场景具体确定,本申请实施例对此不作任何限制。
示例性的,当第三候选抓取位姿中存在多个位于执行机构对应的工作空间范围内的候选抓取位姿时,机器人可以根据各第三候选抓取位姿对应的得分,确定目标部位对应的目标抓取位姿,目标抓取位姿可以为得分最大的第三候选抓取位姿。
示例性的,当第三候选抓取位姿中不存在位于执行机构对应的工作空间范围内的候选抓取位姿时,机器人可以返回重新生成第一候选抓取位姿,并可以重新确定第二候选抓取位姿,以根据重新确定的第二候选抓取位姿确定第三候选抓取位姿,从而根据重新确定的第三候选抓取位姿确定目标部分对应的目标抓取位姿。
在另一个示例中,在确定第二候选抓取位姿后,机器人可以根据机器人的执行机构的运动范围,从第二候选抓取位姿中,确定一个或多个第三候选抓取位姿。随后,机器人可以根据各第三候选抓取位姿和第三点云数据,确定第四候选抓取位姿,并可以根据第四候选抓取位姿,确定目标部位对应的目标抓取位姿。其中,第三点云数据可以为非目标部位对应的点云数据,第四候选抓取位姿可以为机器人的执行机构运动至该候选抓取位姿抓取目标部位时,不会与非目标部位发生碰撞的位姿。应理解,第三候选抓取位姿为机器人的执行机构可到达的位姿。
示例性的,对于每一个第三候选抓取位姿,机器人可以根据第三点云数据对该第三候选抓取位姿进行碰撞检测,即可以确定机器人的执行机构运动至该第三候选抓取位姿时,是否会发生碰撞。当会发生碰撞时,可以认为机器人无法通过该第三候选抓取位姿来进行目标物体的抓取,此时,机器人可以舍弃该第三候选抓取位姿,从而可以得到不会发生碰撞的第四候选抓取位姿。
可选的,机器人在通过第二分割网络得到目标物体对应的第一点云数据时,还可以得到非目标物体对应的点云数据,因此,机器人可以根据非目标物体对应的点云数据确定第三点云数据,例如可以将非目标物体对应的点云数据确定为第三点云数据。
可选的,机器人在通过第一分割网络得到目标物体中的目标部位对应的第二点云数据时,还可以得到非目标部位对应的第三点云数据。
可选的,为了减少碰撞检测的计算量,第三点云数据可以为目标物体中的目标部位附近的点云数据。
可选的,在获取第三点云数据后,机器人还可以对第三点云数据进行降采样,以减少第三点云数据的数量,减少碰撞检测的计算量。
需要说明的是,本申请实施例对第三点云数据对第三候选抓取位姿进行碰撞检测的具体方式不作任何限制,可以根据实际场景确定。
示例性的,当第四候选抓取位姿包括多个时,机器人可以根据第四候选抓取位姿对应的得分,确定目标部位对应的目标抓取位姿。目标抓取位姿可以为第四候选抓取位姿中,得分最大的候选抓取位姿。
示例性的,当不存在第四候选抓取位姿时,机器人可以返回重新生成第一候选抓取位姿,并可以重新确定第二候选抓取位姿,可以根据重新确定的第二候选抓取位姿确定第三候选抓取位姿,并可以根据重新确定的第三候选抓取位姿确定第四候选抓取位姿,以根据第四候选抓取位姿确定目标部分对应的目标抓取位姿。
在一种可能的实现方式中,机器人可以通过三个线程(例如线程1、线程2和线程3)来并行处理,以提高目标抓取位姿的生成速率和效率。其中,线程1可以负责采集目标环境对应的第四点云数据。线程2可以负责确定目标物体对应的第一点云数据和目标物体中的目标部位对应的第二点云数据。线程3可以负责根据第二点云数据确定目标物体中的目标部位对应的目标抓取位姿。
本申请实施例中,在需要抓取目标物体时,电子设备可以获取目标物体对应的第一点云数据,并可以将第一点云数据输入至第一分割网络进行处理,得到第一分割网络输出的第二点云数据,第二点云数据为目标物体中的目标部位对应的点云数据。随后,电子设备可以将第二点云数据输入至抓取位姿生成网络进行处理,得到目标部位对应的目标抓取位姿。即本申请实施例中,电子设备不需要针对目标物体的所有可以抓取的位置生成抓取位姿,可以仅针对目标物体的目标部位生成抓取位姿,不仅可以提高抓取位姿生成的速率和效率,而且使得电子设备可以通过目标部位来进行目标物体的抓取,提高目标物体的抓取效率,提升用户体验。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的抓取位姿生成方法,图3示出了本申请实施例提供的抓取位姿生成装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图3,该装置包括:
第一点云获取模块301,用于获取目标物体对应的第一点云数据;
第二点云获取模块302,用于将所述第一点云数据输入至第一分割网络进行处理,得到所述第一分割网络输出的第二点云数据,所述第二点云数据为所述目标物体中的目标部位对应的点云数据;
抓取位姿生成模块303,用于将所述第二点云数据输入至抓取位姿生成网络进行处理,得到所述目标部位对应的目标抓取位姿。
示例性的,所述抓取位姿生成模块303,具体用于将所述第二点云数据输入至所述抓取位姿生成网络进行处理,得到所述抓取位姿生成网络输出的一个或多个第一候选抓取位姿和各所述第一候选抓取位姿对应的得分,所述第一候选抓取位姿为所述目标部位对应的抓取位姿;从所述第一候选抓取位姿中,获取得分大于或等于预设阈值的一个或多个第二候选抓取位姿;根据电子设备的执行机构的运动范围,从所述第二候选抓取位姿中,确定所述目标部位对应的目标抓取位姿,所述目标抓取位姿为所述电子设备的执行机构可到达的位姿。
在一些实施例中,所述抓取位姿生成模块303,还用于根据所述电子设备的执行机构的运动范围,从所述第二候选抓取位姿中,确定一个或多个第三候选抓取位姿,所述第三候选抓取位姿为所述电子设备的执行机构可到达的位姿;根据所述电子设备的执行机构对应的工作空间范围,从所述第三候选抓取位姿中,确定所述目标部位对应的目标抓取位姿,所述目标抓取位姿位于所述电子设备的执行机构对应的工作空间范围内。
在另一些实施例中,所述抓取位姿生成模块303,还用于根据所述电子设备的执行机构的运动范围,从所述第二候选抓取位姿中,确定一个或多个第三候选抓取位姿,所述第三候选抓取位姿为所述电子设备的执行机构可到达的位姿;根据各所述第三候选抓取位姿和第三点云数据,确定第四候选抓取位姿,并根据所述第四候选抓取位姿,确定所述目标部位对应的目标抓取位姿,所述第三点云数据为非所述目标部位对应的点云数据,所述第四候选抓取位姿为所述第三候选抓取位姿中的位姿,所述第四候选抓取位姿为所述电子设备的执行机构运动至所述第四候选抓取位姿抓取所述目标部位时,不会发生碰撞的位姿。
可选的,所述抓取位姿生成模块303,还用于当所述第四候选抓取位姿包括多个时,根据所述第四候选抓取位姿对应的得分,确定所述目标部位对应的目标抓取位姿,所述目标抓取位姿为所述第四候选抓取位姿中,得分最大的候选抓取位姿。
示例性的,所述第一点云获取模块301,具体用于获取包含所述目标物体的目标环境对应的第四点云数据;将所述第四点云数据输入至第二分割网络进行处理,得到所述目标物体对应的第一点云数据。
示例性的,所述第一点云数据和所述第二点云数据为三维点云数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图4为本申请一实施例提供的电子设备的结构示意图。如图4所示,该实施例的电子设备4包括:传感器43、至少一个处理器40(图4中仅示出一个)、存储器41以及存储在所述存储器41中并可在所述至少一个处理器40上运行的计算机程序42,所述处理器40执行所述计算机程序42时实现上述任意各个抓取位姿生成方法实施例中的步骤。
所述电子设备4可以包括,但不仅限于,传感器43、处理器40、存储器41。本领域技术人员可以理解,图4仅仅是电子设备4的举例,并不构成对电子设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所述处理器40可以是中央处理单元(central processing unit,CPU),该处理器40还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41在一些实施例中可以是所述电子设备4的内部存储单元,例如电子设备4的硬盘或内存。所述存储器41在另一些实施例中也可以是所述电子设备4的外部存储设备,例如所述电子设备4上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,所述存储器41还可以既包括所述电子设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述各个抓取位姿生成方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时可实现上述各个抓取位姿生成方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质至少可以包括:能够将计算机程序代码携带到装置/电子设备的任何实体或装置、记录介质、计算机存储器、只读存储器(read-only memory,ROM)、随机存取存储器(random accessmemory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
- 一种可提升与PVC人造革涂层附着力的水基聚氨酯及制备方法
- 一种PVC导电复合材料及其制备方法
- 一种阻燃抑烟型PVC复合材料及其制备方法
- 一种改性木粉/PVC复合材料及其制备方法
- 一种高剥离强度PVC涂层复合材料及其制备方法
- 一种高剥离强度导热涂层及其制备方法