视觉引导拾取和放置方法、移动机器人和计算机可读存储介质与流程

文档序号:33127918发布日期:2023-02-01 06:13阅读:19来源:国知局
视觉引导拾取和放置方法、移动机器人和计算机可读存储介质与流程

1.本发明涉及机器人,更具体地涉及一种视觉引导拾取和放置方法、移动机器人和计算机可读存储介质。


背景技术:

2.抓取规划是机器人领域中的一个基本问题,已经吸引了越来越多的研究人员。许多机器人执行“盲抓”(例如,在仓库或生产线内),它们每次都致力于从同一位置拾取物体。如果有任何变化,例如物体的形状、质地或位置,机器人将不知道如何响应,并且抓取尝试很可能会失败。这种方法显然不适合机器人需要在其他物体中的随机位置抓取目标的其他应用。
3.因此,需要提供一种方法和移动机器人来克服上述问题。


技术实现要素:

4.因此,本发明提供一种方法和移动机器人以解决上述问题。
5.为了达到上述目的,本发明提供了一种用于移动机器人的计算机实现的视觉引导拾取和放置方法,该移动机器人包括具有手和摄像头的机械臂,该方法包括:接收命令该移动机器人抓取至少一个物体中的目标物品的命令指令;控制该移动机器人移动到确定的与该至少一个物体相关联的位置,控制该机械臂伸手去够该至少一个物体,并使用该摄像头实时拍摄该至少一个物体的一幅或多幅图像;从所述一幅或多幅图像中提取视觉特征数据,将提取的视觉特征数据与数据库中预设的目标物品的特征数据进行匹配,以识别出该目标物品,并确定该目标物品的抓握位置和抓握向量;及根据该抓握位置和抓握向量控制该机械臂和手抓取该目标物品,并将该目标物品放置到目标位置。
6.可选的,在接收该命令指令之前,该方法还包括:扫描与该移动机器人执行的取放任务相关联的至少一个样本物品,以获得与该至少一个样本物品中的每一个对应的至少一个模板图像,其中,该至少一个样本物品包括该目标物品;将至少一对抓取点的抓握数据插入到该至少一个模板图像中,其中,该抓握数据包括与该至少一个样本物品相关联的抓握位置和抓握向量;及将该至少一模板图像以及与该至少一模板图像对应的抓握数据存储为该至少一样本物品中对应的一个样品物品的特征数据。
7.可选的,从所述一幅或多幅图像中提取视觉特征数据,将提取的视觉特征数据与数据库中预设的目标物品的特征数据进行匹配,以识别出该目标物品,包括:使用定向快速旋转简要(orb)算法从所述一幅或多幅图像的每一帧中提取多个视觉特征数据;和使用平衡二叉搜索方法和最近欧几里得距离算法将所述多个视觉特征数据与该目标物品的视觉特征数据匹配以识别该目标物品,其中,该目标物品的视觉特征数据是通过orb算法从该目标物品的一模板图像中提取的。
8.可选的,从所述一幅或多幅图像中提取视觉特征数据,将提取的视觉特征数据与
数据库中预设的目标物品的特征数据进行匹配,以识别出该目标物品,包括:使用定向快速旋转简要(orb)算法从所述一幅或多幅图像的每一帧中提取多个视觉特征数据;将所述多个视觉特征数据与该目标物品的视觉特征数据进行比较以获得内点比和透视角,其中,其中,该目标物品的视觉特征数据是通过orb算法从该目标物品的一模板图像中提取的;根据该内点比和透视角确定该至少一个物体的匹配度的置信度;以及将具有最高置信度分数的该至少一个物体之一确定为该目标物品。
9.可选的,根据该内点比和透视角确定该至少一个物体的匹配度的置信度包括:判断该内点比是否小于第一预设值;响应于该内点比不小于该第一预设值,计算所述一幅或多幅图像的单应矩阵,并将该单应矩阵的变换矩阵应用于该模板图像中目标物体的形状;判断该单应矩阵对应的一幅或多幅图像的面积是否超过第二预设值且位于该摄像头的视野之外;响应该单应矩阵对应的所述一幅或多幅图像的面积不超过第二预设值且在该摄像头的视野之外,判断对应于该单应矩阵的所述一幅或多幅图像的形状畸变度是否大于预设畸变度;响应于该单应矩阵对应的所述一幅或多幅图像的形状畸变度不大于预设畸变度,根据预设置信度评分规则确定该至少一个物体的匹配度的置信度分数,其中,该置信度评分规则与该内点比和透视角正相关。
10.可选的,确定该目标物品的抓握位置和抓握向量包括:当该机械臂伸手去够该目标物品时,利用该摄像头拍摄该目标物品的多个图像;根据插入在该至少一个模板图像中的抓握位置和抓握向量,确定该目标物品的该多个图像中的每一个的第一有希望区域;控制该机械臂移动靠近该第一有希望区域,并确定该目标物品的所述多个图像中的每一个的该第一有希望区域的第二有希望区域;根据判断结果控制该手向该目标物品移动,直到该机械臂抓住该目标物品。
11.可选的,控制该移动机器人移动到确定的与该至少一个物体相关联的位置并控制该机械臂伸手去够该至少一个物体包括:响应于侦测到该目标物品,根据该目标物品的位置和方向计算该机械臂的无碰撞运动轨迹;响应存在两个或多个无碰撞运动轨迹,选择其中一个无碰撞运动轨迹作为最终运动轨迹;响应存在一条无碰撞运动轨迹,选择该无碰撞运动轨迹作为最终运动轨迹;控制该机械臂根据该最终运动轨迹向该目标物品移动。
12.可选的,该方法还包括:使用该摄像头获取该目标物品的二维图像,根据该二维图像中关键特征位置之间的欧几里得距离确定该二维图像的深度信息;和当该手靠近该目标物品并停在该目标物品上方时,利用距离传感器确定该目标物品的距离信息,并根据该距离信息和深度信息引导该手抓住该目标物品。
13.可选的,在将该目标物品放置到目标位置之前,该方法还包括:该手握住该目标物品后,控制该手将该目标物品旋转360度,通过安装在该手的一侧的摄像头持续观察旋转过程中的该目标物品;响应于检测到附着在该目标物品表面的条形码,通过安装在该手的该侧的该摄像头连续拍摄该条形码的图像;基于该条形码的所述图像运行条形码查找和解码算法,生成条形码串;将该该条形码串与数据库中预存的目标商品的条形码串进行比较;响应该条形码串与预存条形码串相同,控制该移动机器人将该目标物品放置到该目标位置。
14.本发明还提供一种移动机器人,包括:机械臂,其包括手和摄像头;一个或多个处理器;存储器;和一个或多个程序,其中,所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括:接收命令该移动机器人抓
取至少一个物体中的目标物品的命令指令的指令;控制该移动机器人移动到确定的与该至少一个物体相关联的位置,控制该机械臂伸手去够该至少一个物体,并使用该摄像头实时拍摄该至少一个物体的一幅或多幅图像的指令;从所述一幅或多幅图像中提取视觉特征数据,将提取的视觉特征数据与数据库中预设的目标物品的特征数据进行匹配,以识别出该目标物品,并确定该目标物品的抓握位置和抓握向量的指令;及根据该抓握位置和抓握向量控制该机械臂和手抓取该目标物品,并将该目标物品放置到目标位置的指令。
15.本发明还提供一种存储将由移动机器人的一个或多个处理器执行的一个或多个程序的非暂时性计算机可读存储介质,该一个或多个程序在由所述一个或多个处理器执行时,使该移动机器人执行处理包括:接收命令该移动机器人抓取至少一个物体中的目标物品的命令指令;控制该移动机器人移动到确定的与该至少一个物体相关联的位置,控制该机械臂伸手去够该至少一个物体,并使用该摄像头实时拍摄该至少一个物体的一幅或多幅图像;从所述一幅或多幅图像中提取视觉特征数据,将提取的视觉特征数据与数据库中预设的目标物品的特征数据进行匹配,以识别出该目标物品,并确定该目标物品的抓握位置和抓握向量;及根据该抓握位置和抓握向量控制该机械臂和手抓取该目标物品,并将该目标物品放置到目标位置。
16.本发明技术方案,具有如下优点:移动机器人在接近目标物品的同时计算目标物品的握取位置和抓握向量,从而实现抓握动作的精确计算,提高抓握精度。
附图说明
17.并入本文并形成说明书的一部分的附图说明了本公开的实施例,并且与描述一起进一步用于解释本公开的原理并使相关领域的技术人员能够制作和使用本公开。为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是根据一个实施例的机械臂的立体示意图。
19.图2是图1的机械臂的俯视图。
20.图3是图1的机械臂的侧视图。
21.图4是显示使用机械臂的移动机器人的示例性应用场景的示意图。
22.图5是根据一个实施例的移动机器人的示意框图。
23.图6是根据一个实施例的用于控制移动机器人拾取和放置物体的方法的示例性流程图。
24.图7是根据一个实施例的用于控制移动机器人的系统的示意图。
25.图8是根据一个实施例的视觉引导拾取和放置物体的方法的示例性流程图。
26.图9是根据另一实施例的视觉引导拾取和放置物体的方法的示例性流程图。
27.图10是根据一个实施例的用于确定具有最高置信度分数的物体之一的方法的示例性流程图。
28.图11是根据一个实施例的用于确定具有最高置信度分数的物体之一的方法的示例性流程图。
29.图12示出了移动机器人的手抓取圆柱形目标物品的示例性应用场景。
具体实施方式
30.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.本公开在附图中以示例而非限制的方式进行说明,附图中相似的参考标号表示相似的元件。应当注意,本发明中对“一个”实施例的引用不一定是对同一实施例的引用,并且这种引用可以表示“至少一个”实施例。
32.尽管讨论了具体的配置和布置,但应该理解,这样做只是为了说明的目的。相关领域的技术人员将认识到,在不背离本公开的精神和范围的情况下,可以使用其他配置和布置。对于相关领域的技术人员显而易见的是,本公开还可以用于各种其他应用中。
33.需要注意的是,说明书中对“一个实施例”、“示例实施例”、“一些实施例”、“某些实施例”等的提及表明所描述的实施例可以包括特定的特征(feature)、结构或特性(characteristic),但每个实施例可能不一定包括特定特征、结构或特性。此外,这些短语不一定指相同的实施例。此外,当结合一实施例描述特定特征、结构或特性时,实现与其他实施例相关的这种特征、结构或特性,是在相关领域的技术人员的知识范围内的,无论是否明确描述。
34.一般而言,术语可以至少部分地从上下文中的使用来理解。例如,至少部分取决于上下文,如本文所用的术语“一个或多个”可用于以单数意义描述任何特征、结构或特性,或者可用于以复数意义描述特征、结构或特性的组合。类似地,至少部分地取决于上下文,诸如“一个”或“该”之类的术语也可以被理解为传达单数用法或传达复数用法。此外,术语“基于”可以被理解为不一定旨在传达一组排他的因素,并且可以相反地允许存在不一定明确描述的附加因素,这再次至少部分地取决于上下文。
35.尽管本公开的特征和元件被描述为特定组合中的实施例,在本公开的原理内,每个特征或元件可以单独使用,或以其他各种组合使用,所述使用的最大程度由表述所附权利要求的术语的广泛、一般含义来指示。
36.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
37.图1-3示出了根据一个实施例的机械臂10。机械臂10可以是可折叠的6自由度机械臂。机械臂10可以包括连杆主体11,连杆主体11包括彼此连接的多个连杆、臂端工具(end of arm tooling,eoat)12和安装接口13。eoat 12可以包括手121和布置在手121上或者靠近手121的摄像头122。在一个实施例中,手121可以是具有两个手指的抓手(gripper)。然而,手121的配置可以根据实际需要而改变。例如,手121可以被配置为类似于人的手。机械臂10可通过安装接口13连接到移动机器人的身体。在一个实施例中,移动机器人的嵌入式中央处理单元(cpu)板可以执行集成的视觉操纵算法以控制机械臂10执行取放操作。
38.移动机器人可以是自主机器人并且用途广泛,足以对小物体进行精确抓握(precision grasps),以及对较重/较大物体进行稳健的动力抓握(power grasps)。机器人能够识别场景中的物体,训练或检测每个物体几何形状的最佳抓握姿势,相对于机械臂底座或eoat 12定位物体,在抓取前的姿势中规划无碰撞或“碰撞安全”路径,规划抓取配置,并在抓取后配置中定位物体。凭借这些能力,移动机器人可以提供无人监督的端到端物流
解决方案,以满足各种递送和物流需求。例如,如图4所示,在移动机器人已经移动到目标位置(例如,货架300)之后,机械臂10和eoat 12被控制为处于使得eoat 12可以够得到(reach)确定位置以拾取确定物体400的状态。在一实施例中,在eoat 12抓握物体400之后,移动机器人将控制机械臂10和eoat 12将物体400放置到确定位置,例如移动机器人的存储单元(例如,抽屉)。在移动机器人从货架300移动到确定位置后,移动机器人将打开抽屉21以允许机械臂10卸载物体400。
39.图5示出了根据一个实施例的移动机器人20的示意框图。移动机器人20可以是轮式机器人,可以在各种应用环境中工作,如医院、工厂、仓库、商场、街道、机场、家庭、养老中心、博物馆、餐厅、酒店,甚至野外等。然而,图的例子仅是说明性示例。移动机器人20可以是其他类型的机器人。移动机器人20可以包括致动器201、移动机构202、处理器203、存储器204和通信接口模块205。摄像头122电连接到处理器203,用于将拍摄的图像传输到处理器203。移动机构202可以包括一个或多个轮子和/或履带。致动器201与移动机构202和处理器203电耦合,可根据处理器203的指令驱动移动机构202的运动。致动器201可以是电动机或舵机。存储器204可以包括非暂时性计算机可读存储介质。存储器204中存储有一个或多个可执行计算机程序206。处理器203与存储器204电连接,并通过执行存储器204中存储的可执行计算机程序来执行相应的操作。通信接口模块205可以包括无线发射器、无线接收器以及处理器203可执行的计算机程序。通信接口模块205与处理器203电连接,用于处理器203与外部设备之间的通信。在一个实施例中,摄像头122、致动器201、移动机构202、处理器203、存储器204和通信接口模块205可以通过总线相互连接。
40.处理器203可以是中央处理单元(cpu)、通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、可编程逻辑器件、分立门、晶体管逻辑器件或分立硬件组件。通用处理器可以是微处理器或任何常规处理器等。当处理器203执行计算机程序206时,移动机器人20的控制方法的实施例中的步骤,例如图1中的步骤s81至s85,图8中的步骤s91到s98,图9中的步骤s941到s944,被执行。
41.存储器204可以是移动机器人20的内部存储单元,例如硬盘或存储器。存储器204也可以是移动机器人20的外部存储设备,例如插入式硬盘、智能存储卡(smc)和安全数字(sd)卡,或任何合适的闪存卡。此外,存储器204还可以同时包括内部存储单元和外部存储设备。存储器204用于存储移动机器人20所需的计算机程序、其他程序和数据。存储器204还可以用于临时存储已经输出或即将输出的数据。
42.示例性地,一个或多个计算机程序206可以被划分为一个或多个模块/单元,并且所述一个或多个模块/单元存储在存储器204中并且可由处理器203执行。所述一个或多个模块/单元可以是一系列能够执行特定功能的计算机程序指令段,所述指令段用于描述移动机器人20中的一个或多个计算机程序206的执行过程。
43.图6是通过视觉引导机械臂10来控制移动机器人拾取和放置物体的方法的示例性流程图。具体而言,首先,预先建立数据库。具体而言,确定移动机器人要拾取和放置的物品样本,然后扫描以获得在每个物品样本周围的多个不同视角拍摄的模板图像。每个物品样本对应多个模板图像。每个模板图像中都插入了抓取点。在此,抓取点是每个物品样本上的可以与手121的手指接触以使得物品样本可以被手121抓住的位置。包括与抓取点相关联的位置的抓握数据被确定为元数据。存储元数据和相应的模板图像以获得数据库。该数据库
可以配置在云服务器中,也可以配置在移动机器人20中。然后移动机器人20使用摄像头122拍摄图像。所拍摄的图像和数据库中的数据(包括与所拍摄图像对应的物品样本的元数据和模板图像)被输入到视觉检测模块中用于识别。根据识别结果,移动机器人20控制手121抓取识别的目标物品。手121握住识别出的目标物品后,手121会在空中旋转该物品360度。一个普通的摄像头(不是用于检测目标的摄像头,例如,通用串行总线(usb)摄像头)安装在侧面,在旋转过程中观察识别的目标物品。如果识别出的目标物品表面贴有条形码,则此usb摄像头会连续拍摄此识别出的目标物品的图像,并运行条形码查找和解码算法,以生成条形码字符串。该结果将与该目标的数据库进行比较,以验证它是否是正确的物品。条形码验证通过后,控制移动机器人将目标物品放置到目标位置,该目标位置是与移动机器人执行的取放任务对应的预先指定的位置。需要注意的是,并非每个目标物品上都有条形码。只有一些模棱两可的或者容易出错的有条形码。在物品扫描步骤中输入存储在数据库中的条形码,同时进行模板拍摄和抓握数据插入。
44.图7是用于控制移动机器人的系统的示意图。具体地,用户可以通过手机/平板电脑与服务器进行交互,从而控制移动机器人的运行。手机/平板电脑与服务器可以通过http传输协议进行数据交换。服务器可以通过具有主从关系的路由器以太网连接到臂端计算机。臂端计算机可以是c++状态机,可以包括视觉实时检测模块和操作控制模块。臂端计算机可以通过usb连接器与移动机器人的摄像头连接,获取摄像头拍摄的图像。视觉实时检测模块对图像进行处理后,即可确定要抓取的目标物体。然后操作控制模块控制移动机器人的手来抓取目标物体。臂端计算机还可以与具有图形用户界面的个人计算机(pc)通信,以实现在pc上使用远程gui程序的功能。
45.图8示出了根据一个实施例的用于视觉引导拾取和放置物体的方法的示例性流程图。可以实施该方法来控制图4和5中所示的移动机器人20,该机器人20配备了机械臂,该机械臂具有手和摄像头以执行拾取和放置操作。具体地,该方法可以由图5所示的移动机器人20或与移动机器人20电耦合的其他控制装置来实施。其他控制装置可以但不限于:台式电脑、平板电脑、笔记本电脑、多媒体播放器、服务器、智能移动设备(如智能手机、手持电话等)和智能穿戴设备(如智能手表、智能眼镜、智能相机、智能手环等)和其他具有计算和控制功能的计算机设备。在一个实施例中,该方法可以包括步骤s81到s85。
46.步骤s81:接收命令移动机器人抓取至少一个物体中的目标物品的命令指令。
47.移动机器人20可以接收来自用户的命令指令。用户可以使用无线连接到移动机器人20的设备(例如,移动电话)发送命令指令。命令指令可以包括至少一个物体所在的位置(例如,图4的货架),使得移动机器人20可以自主地移动到该位置。所述至少一个物体的数量不限,在此实施例中以多个物体为例。目标物品是多个物体之一。
48.步骤s82:控制移动机器人移动到与该至少一个物体相关联的确定的位置,控制机械臂伸手去够该至少一个物体,并使用摄像头实时拍摄该至少一个物体的一幅或多幅图像。
49.在移动机器人已经移动到确定的位置(例如,图4的架子)之后,移动机器人20的机械臂10被控制以伸手去够多个物体。当机械臂10够向该至少一个物体时,控制摄像头122实时拍摄物体的图像。
50.步骤s83:从所述一幅或多幅图像中提取视觉特征数据,并将提取的视觉特征数据
与目标物品的预设特征数据进行匹配,以识别目标物品。
51.机器人对摄像头122拍摄的图像执行视觉相关处理。机器人至少需要距离信息和明暗信息来确定物体的位置和形状。每幅图像中的视觉特征可以包括:颜色特征、纹理特征、形状特征、空间关系特征等。视觉特征的提取位置可以包括边、角、区域和脊。
52.目标物品的特征数据可以包括预先建立的数据库中的目标物品的图像。可以执行特征提取算法以从目标物品的图像中提取多个视觉特征数据。提取的视觉特征数据将与多个物体的视觉特征数据进行比较。或者,目标物品的视觉特征数据不仅可以包括数据库中预先存储的目标物品的图像,还可以包括对目标物品的图像进行预处理后得到的视觉特征数据,使得目标物品的视觉特征数据可以与多个物体的视觉特征数据进行比较。
53.将提取的多个物体的图像的视觉特征数据与数据库中的目标物品的特征数据进行比较,以识别所述多个物体中的目标物品。将匹配度最高的物体确定为目标物品。
54.步骤s84:确定目标物品的抓握位置和抓握向量。
55.抓握位置与移动机器人20的手121的类型有关。抓握位置的选择应考虑手抓握物体的方便性和牢固性。抓握位置通常高于物体的重心。抓握向量是抓握姿势(即抓握方向)。在一个实施例中,抓握向量是目标物品的偏航角。
56.在一个实施例中,目标物品的抓握位置和抓握向量可以作为目标物品的特征数据的一部分存储在数据库中。可根据手121与目标物品的当前位置关系计算目标物品的抓握向量,得到目标物品可被抓握和拾取的抓握角度。
57.步骤s85:根据抓握位置和抓握向量控制机械臂和手抓握目标物品,并将目标物品放置到目标位置。
58.目标位置可以是命令指令指定的位置。在自主移动到与目标物品相关联的确定的位置(例如,图4的货架)之后,移动机器人控制机械臂和手将目标物品放置到目标位置(例如,货架上的位置)。
59.图9示出了根据一个实施例的视觉引导拾取和放置物体的方法的流程图。该方法可以包括步骤s91到s96。
60.步骤s91:建立移动机器人要拾取和放置的物体的数据库。
61.数据库可以建立在服务器上。使用扫描设备扫描与移动机器人执行的拾取和放置任务相关的物品样本。从而获得物品样本的模板图像。物品样本是移动机器人在执行取放任务时可能抓取的物品。模板图像是扫描设备从不同角度扫描物品样本得到的图像。每个物品样本对应于在不同视角拍摄的多个模板图像,从而可以通过将在不同视角捕获的目标物品的一个或多个图像与对应的模板图像进行比较来识别目标物品。
62.然后使用预设算法确定每个物品样本的多个模板图像的抓握点。这些抓握点的抓握数据被插入到每个模板图像中。例如,将至少一对抓握点的抓握数据插入到至少一个模板图像中。抓握数据可以包括与抓取相应物品样本的手121接触的位置和抓握向量。移动机器人的机械臂可以根据物体对应的抓握数据,牢牢抓住物体。抓握数据用作元数据。每个物品样本的多个模板图像和每个模板图像对应的元数据被存储为对应物品样本的特征数据,以建立数据库。物品样本包括要抓握的目标物品。
63.为了完成端到端的物体识别和检测任务,物品扫描系统作为附加系统被包括在内,其中自动化方法收集关于目标物品的期望训练数据。该物品扫描系统用于扫描部署场
所中的物品,因此拾取和放置系统针对特定的应用需求进行定制,因为不同的物流应用需要处理不同的目标物品。
64.步骤s92:接收命令指令。
65.命令指令用于命令移动机器人20抓取多个物体中的目标物品。移动机器人20可以接收来自用户的命令指令。用户可以使用无线连接到移动机器人20的装置(例如,手机)发送命令指令。命令指令可以包括多个物体所在的位置(例如,图4的货架),使得移动机器人20可以自主移动到该位置。
66.步骤s93:根据命令指令控制移动机器人移动并拍摄物体的图像。
67.在接收到命令指令后,移动机器人自主移动到与目标物品相关联的确定的位置。然后,移动机器人控制机械臂伸手去够物体,并使用摄像头实时捕捉物体的图像。
68.在一个实施例中,移动机器人在识别出目标物品后,根据目标物品的位置和方向(orientation)计算出机械臂无碰撞运动轨迹。移动机器人根据计算结果控制机械臂的运动。具体来说,执行运动规划器以检查是否可以计算逆运动学(ik)解,并检查在基于ik解计算的轨迹解中是否可以避免任何预定义的自碰撞。如果有多个解,则计算出的运动轨迹之一将被随机选择作为最终运动轨迹。如果只有一种解,则选择计算出的运动轨迹作为最终的运动轨迹。将控制机械臂根据最终轨迹抓取目标物品。
69.如果有多于一个解,则最终轨迹将由低级机械臂运动控制来执行。机械臂将移动到物体检测和识别地点(site),打开eoat,等待视觉模块计算出的详细位置/方向命令,并在eoat半开状态下接近物体并进行抓握。
70.低级机械臂运动控制是指位置控制和速度控制,而高级运动控制可以包括任务调度以及与计算机视觉和语音命令等其他模块的交互。
71.在一个实施例中,移动机器人可以包括安装在机器人主体上的主动照明控制模块。主动照明控制模块是为了确保在黑暗、照明不均匀等非最佳照明环境下视觉检测性能不下降。
72.步骤s94:从图像中提取视觉特征数据,并将提取的视觉特征数据与目标物品的特征数据进行匹配,以识别目标物品。
73.对于摄像头拍摄的物体图像的每一帧,可以使用定向快速旋转简要(orb)算法提取多个视觉特征的数据。在一个实施例中,可以提取多达200个视觉特征的数据。然后使用平衡二叉搜索方法和最近欧几里德距离算法将多个视觉特征数据与目标物品的视觉特征数据匹配以识别目标物品。
74.在一个实施例中,可以使用orb算法从存储在上述数据库中的目标物品的模板图像中提取目标物品的视觉特征数据。在所有物体中,与数据库中目标物品的视觉特征具有欧氏距离最小的视觉特征的物体为匹配的待抓握目标物品。然后计算目标物品的位置信息和姿势估计(即方向)。为了加快匹配计算,采用平衡二叉搜索方法“kd树”来加快搜索过程。对于多核cpu平台,通过多线程并行化优化特征提取和特征匹配。根据背景的杂乱程度,每帧图像需要50-100毫秒的计算时间。
75.参照图10,在一个实施例中,步骤s94可以包括以下步骤。
76.步骤s941:使用定向快速旋转简要(orb)算法从每帧图像中提取多个视觉特征数据。
77.步骤s942:将视觉特征数据与目标物品的视觉特征数据进行比较,得到内点比和透视角。利用orb算法从目标物品的模板图像中提取目标物品的视觉特征数据。
78.步骤s943:根据内点比和透视角确定物体匹配度的置信度。
79.步骤s944:将置信度得分最高的物体之一确定为目标物品。
80.可以通过对匹配度的置信度进行评分来过滤掉误报。对检测到的物体进行排序,将置信度得分最高的物体确定为目标物品。通常,可以使用两种方法对置信度进行评分。
81.具体地,第一种方法是根据内点比确定置信度分数。即,将拍摄的图像中每个物体的特征点与存储在数据库中的目标物品的特征点进行比较。内点比越高,置信度得分越高。
82.第二种方法是根据透视角确定置信度分数。即,将拍摄的图像中的物体相对于存储在数据库中的目标物品的畸变度相互比较。透视角越小,置信度分数越高。
83.图11示出了用于将具有最高置信度分数的物体之一确定为目标物品的方法的示例性流程图。
84.具体地,处理器203判断内点比是否小于第一预设值。当内点比不小于第一预设值时,处理器203计算摄像头122拍摄的图像的单应矩阵(homography matrix),并将单应矩阵的变换矩阵应用于模板图像中的目标物品的形状。处理器203判断单应矩阵对应的图像是否有超过第二预设值的区域在摄像头的视野之外。当单应矩阵对应的图像的面积不超过第二预设值且不在摄像头的视野范围内时,处理器203判断单应矩阵对应的图像的形状畸变度是否超过预设的畸变度。当单应矩阵对应的图像的形状畸变度不大于预设畸变度时,处理器203根据预设的置信度评分规则确定物体匹配度的置信度分数。置信度评分规则与内点比和透视角正相关。
85.换言之,处理器203将所拍摄的图像与数据库中的要抓握的目标物品的图像进行比较,以确定是否存在过少的内匹配(inlier matches)。如果不是,则计算拍摄的图像的单应矩阵,并将单应矩阵的变换矩阵应用于待抓握物体的形状。根据单应矩阵和变换矩阵,可以确定单应矩阵对应的图像的大部分区域是否在摄像头的视野之外。如果不是,处理器203判断对应于单应矩阵的图像的形状是否严重畸变。如果不是,则处理器203计算置信度分数,该置信度分数主要由内点比和透视角决定。可根据实际需要设置各自的权重。在一个例子中,可以通过以下c语言编写的代码进行计算:float regionscore=1-abs(90-minangle)/90.0;float inlinerperc=getinliers.size/(getinliers.size+getoutliers.size);float confscore=1*regionscore*inlinerperc/(regionscore+inlinerperc),其中,“float”代表小数,“regionscore”代表检测区域的畸变度,每个模板图像都是一个矩形图像。如果单应变换后仍然是矩形,每个角都等于90度,则说明没有畸变。在这种情况下,regionscore等于100%。如果畸变度很大,比如变成梯形,四个角中最小的等于45度,那么regionscore=1

(90-45)/90=50%。“minangle”表示畸变图像的最小内角,“inlinerperc”表示内点与所有检测点的比率。例如,每个模板图像有100个点,单应性有40个对应点。因此,inlier等于40,outlier等于60,inlinerperc=40%。“confscore”表示置信度分数,由regionscore和inlinerperc决定。regionscore和inlinerperc越大,confscore越大。
86.步骤s95:确定目标物品的抓握位置和抓握向量。
87.当移动机器人准备抓握目标物品时,它执行视觉操纵闭环优化。当安装有摄像头
的手靠近目标物品时,通过视觉引导算法进行多次检测,在时间轴上检测多张图像。通过视觉引导控制移动机器人的手部移动到“有希望的区域”,并在有希望的区域进行进一步的检测。每次检测为有希望的区域找到最佳的抓握位置和抓握向量,然后根据检测结果控制移动机器人的手接近目标物品。之后再进行一次检测,然后控制移动机器人的手进一步接近目标物品,直到手根据最新的抓握位置和抓握向量成功抓握目标物品,完成视觉操纵闭环优化。
88.换言之,当机械臂伸手够向目标物品时,摄像头拍摄目标物品的多个图像。根据插入到模板图像中的抓握位置和抓握向量,确定目标物品的每幅图像的第一有希望区域。之后,控制机械臂靠近第一有希望区域,并确定目标物品的每幅图像的第一有希望区域的第二有希望区域。然后根据判断结果控制机器人的手向目标物品移动,直到机械臂抓住目标物品。这里的判断结果是指手与目标物品的距离小于预设距离时检测到的抓握位置和抓握矢量。
89.步骤s96:根据抓握位置和抓握向量控制机械臂和手抓握目标物品,并将目标物品放置到目标位置。
90.在一个实施例中,距离传感器可以安装在移动机器人的手上。移动机器人的摄像头是用来捕捉二维图像的,二维图像的深度信息是通过二维图像中关键特征位置之间的欧几里得距离来估计的。距离越短意味着观测值越小,因此目标相对于相机的位置越远。深度估计结果的精度在0.5cm以内。当手靠近并停在物体上方时,距离传感器将帮助引导移动机器人的手到达物体表面所在的精确深度水平。距离传感器检测移动机器人手部到目标物品的距离,并根据距离引导手部到达目标物品表面。摄像头和手上设置的距离传感器共同确定手抓握目标物品的抓握深度。
91.图12示出了在视觉引导检测期间获得的目标物品的示例性检测结果。具体地,图12中的点划线表示围绕示例性目标物品(即,圆柱形物体)的抓握轮廓线。目标物品的水平抓握轴是为了适应两指手的抓握平衡。抓握轴与抓握轮廓线的交点为两指手的抓握位置。
92.步骤s97:执行条形码验证以验证是否已抓握所需的目标物品。
93.在一个实施例中,条形码验证模块被集成在移动机器人上以确保接近100%的准确度和最小的误识别率。具体地,手握住目标物品后,控制手在空中旋转目标物品360度,条形码验证模块通过安装在手的一侧的usb摄像头持续观察旋转过程中的目标物品。如果目标物品表面贴有条形码,则条形码验证模块通过usb摄像头连续采集条形码图像,根据采集到的条形码图像运行条形码查找解码算法,生成条形码串。条形码验证模块将生成的条形码字符串与数据库中预先存储的目标物品的条形码字符串进行比较。如果相同,则确定移动机器人所抓取的物体是本次抓取任务的目标抓取对象。然后控制移动机器人将目标物品放置到确定的目标位置。在一个实施例中,只有一些模棱两可的或容易出错的有条形码。如果目标物品上没有条形码,则可以控制移动机器人直接将目标物品放置到确定的目标位置,无需进行条形码验证。在物品扫描步骤中输入存储在数据库中的条形码,同时进行模板拍摄和抓取数据插入。进一步地,如果生成的条形码串与预先存储的目标物品的条形码串不同,则判断移动机器人所抓取的物体不是本次抓取任务的期望抓取目标物品。在这种情况下,可以控制手将抓取的物体放置在另一个预设位置或将抓取的物体放回原处。
94.步骤s98:响应验证已通过,将目标物品放置到目标位置。
95.条形码验证通过后,控制移动机器人移动到确定的位置,松开手,将抓取的目标物品放置到目标位置。
96.通过实施上述实施例的方法,移动机器人利用其摄像头拍摄多个物体的图像,从图像中提取视觉特征,将提取的视觉特征与数据库中目标物品的数据进行匹配,确定要抓取的目标物品。移动机器人使用安装在eoat上的摄像头的移动性执行“边看边接近”的闭环优化。移动机器人采用多重检测方法。即移动设备在接近目标物品的同时计算目标物品的握取位置和抓握向量,从而实现抓握动作的精确计算,提高抓握精度。当目标物品已被抓握时,对条形码进行验证,进一步提高抓取目标物品的准确度。
97.通过实施上述实施例的方法,移动机器人可以为物品配送自动化提供端到端的完整解决方案。该系统是完整的,包括从物品扫描到交付验证。此外,可以使视觉和操作软件在单个中央处理单元(cpu)板上运行。递送过程的自动化有助于改善上述情况。技术上,移动机器人自成一体,包括物品扫描装置、条形码验证和内部照明设计,对目标物流场所的改造工作量最小,具有成本效益。
98.在一个实施例中,提供了一种非暂时性计算机可读存储介质。非暂时性计算机可读存储介质可以配置在移动机器人20中。非暂时性计算机可读存储介质存储可执行的计算机程序,并且当程序由移动机器人20的一个或多个处理器执行时,实施上述实施例中描述的视觉引导拾取和放置物体的方法。
99.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
100.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
101.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
102.在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
103.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
104.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
105.所述集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
106.本说明书和示例旨在仅被认为是示例性的,真实范围由权利要求及其等同指示。
107.为了解释的目的,以上描述已经参照特定实施例进行了描述。然而,上述说明性讨论并不旨在穷举或将本公开限制为所公开的精确形式。鉴于上述教示,许多修改和变化都是可能的。选择和描述实施例是为了最好地解释本公开的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用本公开和具有适合预期特定用途的各种修改的各种实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1