CN112313045A - 用于机器人拣箱的***和方法 - Google Patents
用于机器人拣箱的***和方法 Download PDFInfo
- Publication number
- CN112313045A CN112313045A CN201980041398.4A CN201980041398A CN112313045A CN 112313045 A CN112313045 A CN 112313045A CN 201980041398 A CN201980041398 A CN 201980041398A CN 112313045 A CN112313045 A CN 112313045A
- Authority
- CN
- China
- Prior art keywords
- robot
- path
- candidate
- user interface
- graphical user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 104
- 230000008569 process Effects 0.000 claims description 65
- 238000012795 verification Methods 0.000 claims description 16
- 238000004088 simulation Methods 0.000 claims description 10
- 230000009193 crawling Effects 0.000 claims description 9
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 230000003068 static effect Effects 0.000 claims description 5
- 238000012800 visualization Methods 0.000 claims description 4
- 230000033001 locomotion Effects 0.000 description 13
- 239000012636 effector Substances 0.000 description 11
- 238000003860 storage Methods 0.000 description 8
- 238000012549 training Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 238000009434 installation Methods 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 102000007469 Actins Human genes 0.000 description 5
- 108010085238 Actins Proteins 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 235000011888 snacks Nutrition 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 239000004606 Fillers/Extenders Substances 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 101100172132 Mus musculus Eif3a gene Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 239000002775 capsule Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 210000003734 kidney Anatomy 0.000 description 1
- 239000007937 lozenge Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 239000003826 tablet Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1633—Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1612—Programme controls characterised by the hand, wrist, grip control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1669—Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1674—Programme controls characterised by safety, monitoring, diagnostic
- B25J9/1676—Avoiding collision or forbidden zones
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4155—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39138—Calculate path of robots from path of point on gripped object
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39473—Autonomous grasping, find, approach, grasp object, sensory motor coordination
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39484—Locate, reach and grasp, visual guided grasping
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40053—Pick 3-D object from pile of objects
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40607—Fixed camera to observe workspace, object, workpiece, global
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/50—Machine tool, machine tool null till machine tool work handling
- G05B2219/50362—Load unload with robot
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Manipulator (AREA)
Abstract
本发明提供了一种方法和计算***,该方法和计算***包括识别一个或多个候选对象以供机器人选择。可至少部分地基于机器人环境和至少一个机器人约束来确定通往该一个或多个候选对象的路径。可验证抓取该一个或多个候选对象中的第一候选对象的可行性。如果该可行性得到验证,则可控制该机器人以物理地选择第一候选对象。如果该可行性未得到验证,则可以选择第一候选对象的不同抓取点、第二路径或第二候选对象中的至少一者。
Description
相关专利申请
本专利申请要求提交于2018年6月26日的序列号为62/690186的美国临时专利申请的权益,该专利申请的全部内容以引用方式全文并入本文。
技术领域
本发明整体涉及机器人,并且更具体地,涉及用于机器人拣箱的***和方法。
背景技术
某些形式的体力劳动诸如将箱一次一个工件地卸载到机器中、散装零件分拣和订单履行都是劳动密集型的。如果工件或操作是笨重的、锋利的或换句话讲危险的,则这些工作通常很危险。在应对这些问题的努力中,拣箱机器人已经解决了这些繁琐的工作。然而,机器人拣箱是需要管理的特别困难的任务,因为所需的准确度和精度的量通常超出***的能力。
发明内容
在一个具体实施中,提供了一种用于识别一个或多个候选对象以供机器人选择的方法。可至少部分地基于机器人环境和至少一个机器人约束来确定通往该一个或多个候选对象的路径。可验证抓取该一个或多个候选对象中的第一候选对象的可行性。如果该可行性得到验证,则可控制该机器人以物理地选择第一候选对象。如果该可行性未得到验证,则可以选择第一候选对象的不同抓取点、第二路径或第二候选对象中的至少一者。
可包括下列一个或多个特征。验证可包括使用机器人运动学模型。路径可以是可行路径或最佳路径中的至少一者。可在控制机器人的同时实时确定路径。确定路径可包括使用关于与候选对象相邻的至少一个对象的一个或多个表面的信息,并且避免碰撞与候选对象相邻的至少一个对象。机器人或一个或多个候选对象中的至少一者可显示在图形用户界面处。图形用户界面可允许用户可视化或控制机器人、路径确定、模拟、工作单元定义、性能参数规格或传感器配置中的至少一者。图形用户界面可允许同时创建程序和与程序相关联的调试过程。图形用户界面可与示教器、手持设备、个人计算机或机器人中的一者或多者相关联。可提供包括使用扫描仪的一个或多个静态对象和动态对象的环境的图像,其中机器人被配置为接收图像并使用图像来学习环境以确定路径和碰撞避免。控制机器人可包括执行第一候选对象的第二扫描,将第一候选对象移动到具有带有准确度要求的固定位置的放置目标,操纵第一候选对象并根据准确度要求将第一候选对象递送到放置目标。控制机器人可包括将第一候选对象呈现给扫描仪,以使第一候选对象上的一个或多个特征的使用最大化,从而精确地定位第一候选对象。控制机器人可包括以最大化成功进行物理选择的概率的方式定位和拾拣第一候选对象。可在扫描仪的最大分辨率区域中进行第二扫描。确定通往一个或多个候选对象的路径可以至少部分地基于机器人连杆或机器人关节限制中的至少一者。除一个或多个候选对象之外的所有未选择的部件和未选择的表面上的收缩包裹可视化可显示在图形用户界面处。可使用主处理器和至少一个协处理器中的至少一者执行识别、确定、验证或控制中的至少一者。确定通往一个或多个候选对象的路径可以至少部分地基于全局路径规划和局部路径规划中的至少一者。验证抓取第一候选对象的可行性可包括分析与用户程序相关联的条件逻辑。验证抓取第一候选对象的可行性可包括验证所有路径替代方案、验证特定路径替代方案、验证任何路径替代方案、验证一个或多个异常路径、排除一个或多个被验证的区段或执行路径的多个区段的并行验证中的至少一者。
在另一个具体实施中,包括处理器和存储器的计算***被配置为执行包括识别一个或多个候选对象以供机器人选择的操作。可至少部分地基于机器人环境和至少一个机器人约束来确定通往该一个或多个候选对象的路径。可验证抓取该一个或多个候选对象中的第一候选对象的可行性。如果该可行性得到验证,则可控制该机器人以物理地选择第一候选对象。如果该可行性未得到验证,则可以选择第一候选对象的不同抓取点、第二路径或第二候选对象中的至少一者。
可包括下列一个或多个特征。验证可包括使用机器人运动学模型。路径可以是可行路径或最佳路径中的至少一者。可在控制机器人的同时实时确定路径。确定路径可包括使用关于与候选对象相邻的至少一个对象的一个或多个表面的信息,并且避免碰撞与候选对象相邻的至少一个对象。机器人或一个或多个候选对象中的至少一者可显示在图形用户界面处。图形用户界面可允许用户可视化或控制机器人、路径确定、模拟、工作单元定义、性能参数规格或传感器配置中的至少一者。图形用户界面可允许同时创建程序和与程序相关联的调试过程。图形用户界面可与示教器、手持设备、个人计算机或机器人中的一者或多者相关联。可提供包括使用扫描仪的一个或多个静态对象和动态对象的环境的图像,其中机器人被配置为接收图像并使用图像来学习环境以确定路径和碰撞避免。控制机器人可包括执行第一候选对象的第二扫描,将第一候选对象移动到具有带有准确度要求的固定位置的放置目标,操纵第一候选对象并根据准确度要求将第一候选对象递送到放置目标。控制机器人可包括将第一候选对象呈现给扫描仪,以使第一候选对象上的一个或多个特征的使用最大化,从而精确地定位第一候选对象。控制机器人可包括以最大化成功进行物理选择的概率的方式定位和拾拣第一候选对象。可在扫描仪的最大分辨率区域中进行第二扫描。确定通往一个或多个候选对象的路径可以至少部分地基于机器人连杆或机器人关节限制中的至少一者。除一个或多个候选对象之外的所有未选择的部件和未选择的表面上的收缩包裹可视化可显示在图形用户界面处。可使用主处理器和至少一个协处理器中的至少一者执行识别、确定、验证或控制中的至少一者。确定通往一个或多个候选对象的路径可以至少部分地基于全局路径规划和局部路径规划中的至少一者。验证抓取第一候选对象的可行性可包括分析与用户程序相关联的条件逻辑。验证抓取第一候选对象的可行性可包括验证所有路径替代方案、验证特定路径替代方案、验证任何路径替代方案、验证一个或多个异常路径、排除一个或多个被验证的区段或执行路径的多个区段的并行验证中的至少一者。
附图和以下具体实施方式中陈述了一个或多个具体实施的详细信息。根据说明书、附图和权利要求书,其他特征和优点将显而易见。
附图说明
附图被包括在内以提供对本公开的实施方案的进一步理解,并且被结合到本说明书中并构成本说明书的一部分,附图示出了本公开的实施方案,并且与说明书一起用于解释本公开的实施方案的原理。
图1是联接到分布式计算网络的机器人拣箱过程的图解视图;
图2是图1的机器人拣箱过程的一个具体实施的流程图;
图3是根据本公开的实施方案的被配置为运行协处理器上的所有模块并使用UR的实时数据交换接口通过以太网连接与UR控制器进行交接的拣箱***。
图4是示出根据本公开的实施方案的拣箱***部署图的界面。
图5是示出符合根据本公开的实施方案的拣箱***的实施方案的界面。
图6是示出符合根据本公开的实施方案的拣箱过程的图形用户界面的界面。
图7是符合根据本公开的实施方案的拣箱过程的图形用户界面。
图8是符合根据本公开的实施方案的拣箱过程的图形用户界面。
图9是根据本公开的实施方案的用于生成程序模板的图形用户界面。
图10是根据本公开的实施方案的用于生成程序模板的图形用户界面。
图11是根据本公开的实施方案的用于生成程序模板的图形用户界面。
图12是根据本公开的实施方案的允许配置EOAT的图形用户界面。
图13是根据本公开的实施方案的允许配置工具碰撞形状的图形用户界面。
图14是根据本公开的实施方案的允许箱配置的图形用户界面。
图15是根据本公开的实施方案的允许箱配准的图形用户界面。
图16是根据本公开的允许配置箱碰撞形状的图形用户界面。
图17是根据本公开的实施方案的允许配置工件并加载工件模型的图形用户界面。
图18是根据本公开的实施方案的允许配置工件碰撞形状的图形用户界面。
图19是根据本公开的实施方案的允许验证工件检测的图形用户界面。
图20是根据本公开的实施方案的允许重新扫描位置配置的图形用户界面。
图21是根据本公开的实施方案的允许配置抓取分级结构和/或抓取选择指标的图形用户界面。
图22是根据本公开的实施方案的允许配置抓取分级结构和/或抓取选择指标的图形用户界面。
图23是根据本公开的实施方案的允许添加和/或布置抓取的图形用户界面。
图24是根据本公开的实施方案的允许训练抓取和放置的图形用户界面。
图25是根据本公开的实施方案的允许训练放置位置和偏移的图形用户界面。
图26是根据本公开的实施方案的允许训练放置位置和偏移的图形用户界面。
图27是根据本公开的实施方案的允许配置抓持和释放序列的图形用户界面。
图28是根据本公开的实施方案的允许***操作的图形用户界面。
图29是根据本公开的实施方案的可允许用户从USB驱动器或其他合适设备安装拣箱URCap的图形用户界面。
图30是根据本公开的实施方案的允许用户配置环境的图形用户界面。
图31是根据本公开的实施方案的允许用户配置传感器的图形用户界面。
图32是根据本公开的实施方案的允许用户配准传感器的图形用户界面。
图33是根据本公开的实施方案的允许用户配准传感器的图形用户界面。
图34是根据本公开的实施方案的允许用户配准传感器的图形用户界面。
图35是根据本公开的实施方案的允许用户配准传感器的图形用户界面。
图36是根据本公开的实施方案的允许用户创建拣箱程序的图形用户界面。
图37是根据本公开的实施方案的示出用于生成程序模板的选项的图形用户界面。
图38是根据本公开的实施方案的示出可供用户使用的选项的示例的图形用户界面。
图39是根据本公开的实施方案的示出用于设置抓取指标的一种方法的图形用户界面。
图40是根据本公开的实施方案的示出允许设置RRT节点的示例性图形用户界面的图形用户界面。
图41是根据本公开的实施方案的允许用户设置原始位置的图形用户界面。
图42是根据本公开的实施方案的允许用户配置工具的图形用户界面。
图43是根据本公开的实施方案的允许用户配准箱的图形用户界面。
图44是根据本公开的实施方案的允许用户配准箱的图形用户界面。
图45是根据本公开的实施方案的允许用户配置箱碰撞形状的图形用户界面。
图46为根据本公开的实施方案的允许用户验证零件模板的图形用户界面。
图47是根据本公开的实施方案的允许用户配置重新扫描位置的图形用户界面。
图48是根据本公开的实施方案的允许用户添加抓取的图形用户界面。
图49是根据本公开的实施方案的允许用户训练抓取和放置的图形用户界面。
图50是根据本公开的实施方案的允许用户训练拾拣的图形用户界面。
图51是根据本公开的实施方案的允许用户配置EOAT信号的图形用户界面。
图52是根据本公开的实施方案的允许用户操作***的图形用户界面。
图53是根据本公开的实施方案的允许用户创建附加节点的图形用户界面。
图54是示出符合本公开的实施方案的安装、程序配置和拣箱操作的示例的流程图。
具体实施方式
本公开的实施方案涉及用于机器人拣箱的***和方法。因此,本文所包括的拣箱方法可允许机器人与扫描***一起工作以识别箱中的零件,从箱拾拣零件,并且将所拾拣的零件放置在指定位置处。
本主题申请的实施方案可包括来自美国专利6757587、美国专利7680300、美国专利8301421、美国专利8408918、美国专利8428781、美国专利9357708、美国公布2015/0199458、美国公布2016/0321381、美国公布2018/0060459的概念,每个专利的全部内容全文以引用方式并入本文。
现在参见图1,示出了可驻留在计算设备12上并可由该计算设备执行的机器人拣箱过程10,该计算设备可连接到网络(例如,网络14)(例如,互联网或局域网)。计算设备12(和/或下文所述的客户端电子设备中的一者或多者)的示例可包括但不限于个人计算机、膝上型计算机、移动计算设备、服务器计算机、一系列服务器计算机、大型计算机或计算云。计算设备12可执行操作***,例如但不限于OSRed或定制操作***。(Microsoft和Windows是Microsoft Corporation在美国、其他国家/地区或这两者的注册商标;Mac和OS X是Apple Inc.在美国、其他国家/地区或这两者的注册商标;Red Hat是Red Hat Corporation在美国、其他国家/地区或这两者的注册商标;并且Linux是Linus Torvalds在美国、其他国家/地区或这两者的注册商标)。
如下文将更详细地讨论,机器人拣箱过程诸如图1的机器人拣箱过程10可识别一个或多个候选对象以供机器人选择。可至少部分地基于机器人环境和至少一个机器人约束来确定通往该一个或多个候选对象的路径。可验证抓取该一个或多个候选对象中的第一候选对象的可行性。如果该可行性得到验证,则可控制该机器人以物理地选择第一候选对象。如果该可行性未得到验证,则可以选择第一候选对象的不同抓取点、第二路径或第二候选对象中的至少一者。
可存储在联接到计算设备12的存储设备16上的机器人拣箱过程10的指令集和子例程可由包括在计算设备12内的一个或多个处理器(未示出)和一个或多个存储器架构(未示出)执行。存储设备16可包括但不限于:硬盘驱动器;闪存驱动器、磁带驱动器;光驱;RAID阵列;随机存取存储器(RAM);以及只读存储器(ROM)。
网络14可连接到一个或多个二级网络(例如,网络18),该二级网络的示例可包括但不限于:局域网;广域网;或内联网。
机器人拣箱过程10可以是与经由客户端应用程序22、24、26、28、66访问的小应用程序/应用程序进行交接的独立应用程序。在一些实施方案中,机器人拣箱过程10可全部或部分地分布在云计算拓扑中。这样,计算设备12和存储设备16可以指可分布在整个网络14和/或网络18中的多个设备。
计算设备12可以执行机器人控制应用程序(例如,机器人控制应用程序20),其示例可包括但不限于来自Energid Technologies of Cambridge,Massachusetts的软件开发套件以及任何其他拣箱应用程序或软件。机器人拣箱过程10和/或机器人控制应用程序20可经由客户端应用程序22、24、26、28、68访问。机器人拣箱过程10可以是独立应用程序,或者可以是可与机器人控制应用程序20、机器人控制应用程序20的部件和/或客户端应用程序22、24、26、28、68中的一个或多个客户端应用程序进行交互和/或在其内执行的小应用程序/应用程序/脚本/扩展程序。机器人控制应用程序20可以是独立应用程序,或者可以是可与机器人拣箱过程10、机器人拣箱过程10的部件和/或客户端应用程序22、24、26、28、68中的一个或多个客户端应用程序进行交互和/或在其内执行的小应用程序/应用程序/脚本/扩展程序。客户端应用程序22、24、26、28、68中的一个或多个客户端应用程序可以是独立应用程序,或者可以是可与机器人拣箱过程10的部件和/或机器人控制应用程序20交互和/或在其内执行的小应用程序/应用程序/脚本/扩展程序。客户端应用程序22、24、26、28、68的示例可包括但不限于接收查询以从一个或多个数据库、服务器、云存储服务器等、文本和/或图形用户界面、定制web浏览器、插件、应用编程接口(API)或定制应用程序搜索内容的应用程序。可存储在联接到客户端电子设备38、40、42、44的存储设备30、32、34、36上的客户端应用程序22、24、26、28、68的指令集和子例程可由结合到客户端电子设备38、40、42、44中的一个或多个处理器(未示出)和一个或多个存储器架构(未示出)执行。
存储设备30、32、34、36可包括但不限于:硬盘驱动器;闪存驱动器、磁带驱动器;光驱;RAID阵列;随机存取存储器(RAM);以及只读存储器(ROM)。客户端电子设备38、40、42、44(和/或计算设备12)的示例可包括但不限于个人计算机(例如,客户端电子设备38)、膝上型计算机(例如,客户端电子设备40)、支持智能/数据的蜂窝电话(例如,客户端电子设备42)、笔记本电脑(例如,客户端电子设备44)、平板电脑(未示出)、服务器(未示出)、电视(未示出)、智能电视(未示出)、媒体(例如,视频、照片等)捕获设备(未示出)和专用网络设备(未示出)。客户端电子设备38、40、42、44可各自执行操作***,其示例可包括但不限于 OSRedMobile、ChromeOS、Blackberry OS、Fire OS或定制操作***。
客户端应用程序22、24、26、28、68中的一个或多个客户端应用程序可被配置为实现机器人拣箱过程10的一些或全部功能(反之亦然)。因此,机器人拣箱过程10可以是由客户端应用程序22、24、26、28、68中的一个或多个客户端应用程序和/或机器人拣箱过程10协同地执行的纯服务器侧应用程序、纯客户端侧应用程序或混合服务器侧/客户端侧应用程序。
客户端应用程序22、24、26、28、68中的一个或多个客户端应用程序可被配置为实现机器人控制应用程序20的一些或全部功能(反之亦然)。因此,机器人控制应用程序20可以是由客户端应用程序22、24、26、28、68中的一个或多个客户端应用程序和/或机器人控制应用程序20协同地执行的纯服务器侧应用程序、纯客户端侧应用程序或混合服务器侧/客户端侧应用程序。由于单独地或以任何组合采用的客户端应用程序22、24、26、28、68中的一个或多个客户端应用程序、机器人拣箱过程10和机器人控制应用程序20可以实现相同功能中的一些或全部,因此对经由客户端应用程序22、24、26、28、68中的一个或多个客户端应用程序、机器人拣箱过程10、机器人控制应用程序20或它们的组合实现此类功能的任何描述,以及实现此类功能的客户端应用程序22、24、26、28、68中的一个或多个客户端应用程序、机器人拣箱过程10、机器人控制应用程序20或它们的组合之间的任何所述交互应当仅作为示例而非限制本公开的范围。
用户46、48、50、52可通过网络14或通过二级网络18直接或间接地访问计算设备12和机器人拣箱过程10(例如,使用客户端电子设备38、40、42、44中的一个或多个客户端电子设备)。另外,计算设备12可通过二级网络18连接到网络14,如虚线连接线54所示。机器人拣箱过程10可包括一个或多个用户界面,诸如浏览器和文本或图形用户界面,用户46、48、50、52可通过这些用户界面访问机器人拣箱过程10。
各种客户端电子设备可直接或间接地联接到网络14(或网络18)。例如,客户端电子设备38被示出为经由硬连线的网络连接直接联接到网络14。另外,客户端电子设备44被示出为经由硬连线的网络连接直接联接到网络18。客户端电子设备40被示出为经由在客户端电子设备40与无线接入点(即,WAP)58之间建立的无线通信信道56无线联接到网络14,该WAP被示出为直接联接到网络14。WAP 58可以是例如能够在客户端电子设备40与WAP 58之间建立无线通信信道56的IEEE 800.11a、800.11b、800.11g、和/或BluetoothTM(包括BluetoothTM低能耗)设备。客户端电子设备42被示出为经由在客户端电子设备42与蜂窝网络/网桥62之间建立的无线通信信道60无线联接到网络14,该蜂窝网络/网桥被示出为直接联接到网络14。在一些具体实施中,机器人***64可经由在客户端电子设备42与蜂窝网络/网桥62之间建立的无线通信信道66无线联接到网络14,该蜂窝网络/网桥被示出为直接联接到网络14。存储设备70可联接到机器人***64并且可包括但不限于:硬盘驱动器;闪存驱动器、磁带驱动器;光驱;RAID阵列;随机存取存储器(RAM);以及只读存储器(ROM)。用户72可通过网络14或通过二级网络18直接或间接地访问计算设备12和机器人拣箱过程10(例如,使用机器人***64)。
IEEE 800.11x规范中的一些或全部可以使用以太网协议和载波感测多路访问和碰撞避免(即,CSMA/CA)以进行路径共享。各种800.11x规范可以使用例如相移键控(即,PSK)调制或互补代码键控(即,CCK)调制。BluetoothTM(包括BluetoothTM低能耗)是电信行业规范,其允许例如移动电话、计算机、智能电话和其他电子设备使用短程无线连接来互连。也可使用其他形式的互连(例如,近场通信(NFC))。
还参见图2至图54,并且在一些实施方案中,机器人拣箱过程10通常可包括识别一个或多个候选对象以供机器人选择200。可至少部分地基于机器人环境和至少一个机器人约束来确定通往该一个或多个候选对象的路径202。可验证抓取该一个或多个候选对象中的第一候选对象的可行性204。如果该可行性得到验证,则可控制机器人以物理地选择第一候选对象206。如果该可行性未得到验证,则可以选择第一候选对象的不同抓取点、第二路径或第二候选对象中的至少一者208。
如本文所用,术语“Actin查看器”可指图形用户界面,“Actin”可指机器人控制软件,并且“UR”可指“通用机器人”。这些特定公司和产品的任何用途仅以举例的方式提供。因此,在不脱离本公开的范围的情况下,可以使用任何合适的图形用户界面、机器人控制软件和设备/模块。
在一些实施方案中,拣箱***(例如,拣箱***64)可包括机械臂(例如,得自Universal Robots的通用机器人UR5等)、控制器、夹持器、传感器和协处理器(例如,以根据感知和任务规划运行计算昂贵的操作)。然而,应当理解,拣箱***可包括附加部件并且/或者可以省略本公开范围内的这些示例性部件中的一个或多个部件。
在一些实施方案中,并且还参见图3,拣箱***(例如,拣箱***64)可被配置为运行协处理器上的所有模块并使用UR的实时数据交换接口通过例如以太网连接与UR控制器进行交接。软件应用程序可由用于一个或多个图形用户界面诸如得自EnergidTechnologies的“Actin查看器”的定制插件构建。在一些实施方案中,传感器可以是任何合适的传感器(例如,3D传感器)。在一些实施方案中,拣箱***(例如,拣箱***64)可被配置为运行至少一个协处理器上的一些模块和UR控制器上的一些模块。在一些实施方案中,所有模块可在UR控制器上运行。
在一些实施方案中,协处理器可包括核心处理器和图形卡。操作***和编译器可以是任何合适的类型。协处理器可包括多个外部接口(例如,以太网到UR控制器、USB3.0到相机、HDMI到投影仪等)。这些特定设备和***以及贯穿本文档描述的其他设备和***仅以举例的方式提供。
在一些实施方案中,可在拣箱***64中使用通用机器人UR5。控制器可以是未修改的。例如,臂工具的吸盘端部(EOAT)可经由例如24VDC数字输出信道连接到控制器。然而,应当理解,任何EOAT可用于本公开范围内的任何机械臂上。
在一些实施方案中,可使用任何扫描仪。这可以是结构化光传感器,并且可实现第三方集成。与SDK一起,扫描仪可与可用于创建工件网格模板的应用程序一起使用。
在一些实施方案中,拣箱应用程序(例如,拣箱应用程序20)可被配置为代替上述基于GUI的Actin查看器在拣箱***(例如,拣箱***64)的协处理器上运行。例如,用户界面可经由拣箱能力移动到控制器和示教器。如本文所用,“能力”通常可指机器人能力、附件或***设备。“UR”盖可指得自“Universal Robotics”或本公开的受让人的盖。在一个示例中,C++能力守护进程可以在控制器上运行,以实现通过RTI Connext DDS与协处理器的通信。图4示出了示例性部署。
在一些实施方案中,工业PC(IPC)可用于协处理器。协处理器可与拣箱应用程序一起托管用于拣箱的相关文件,包括用于EOAT、箱和工件的STEP文件。用户可经由USB或通过网络将这些文件加载到协处理器上。
在一些实施方案中,拣箱应用程序可在协处理器上运行,并且执行所有计算昂贵的任务,包括工件检测和运动规划。该应用程序可使用Actin SDK来构建,并且可链接到拣箱所需的密钥库。在一个示例中,RTI Connext DDS 5.3.1可用于与在UR控制器上运行的URCap进行通信。然而,应当理解,在本公开的范围内,各种配置是可能的。在一些实施方案中并且如将在下文更详细地讨论,可从点云数据检测目标对象或工件。在一个示例中,API可用于与传感器进行交接。在另一个示例中,可以使用开放式级联将STEP文件转换为生成拣箱***部件的Actin模型和点云所需的网格文件。在一些实施方案中,拣箱URCap可包括Java部件,该Java部件形成UR示教器上的用户界面和用于与协处理器通信的守护进程。例如,守护进程可以建立在Actin库上并链接到例如RTI Connext DDS 5.3.1.。
在一些实施方案中,拣箱***可包括多个阶段。这些阶段可包括但不限于:安装;校准和对准;应用程序配置;以及拣箱操作。
在一些实施方案中,可配置拣箱***。例如,机器人、传感器和夹持器均可在该操作阶段中物理地安装和校准。可执行传感器校准以识别相机和投影仪的固有参数和外部参数。传感器与机器人的对准可使用由球体阵列组成的3D打印的对准对象来执行。例如,目标工件可易于检测,并且其可限定工件位姿估计所相对的机器人坐标系。可将安装、校准和对准参数保存到协处理器上的文件中。
在一些实施方案中,拣箱程序配置阶段是用户配置拣箱***以利用给定工件执行拣箱操作并且放置或固定的阶段。用户可首先加载或创建新的程序配置。创建新的程序可包括但不限于配置工具、工件模板和箱,然后训练抓取和放置。
在拣箱操作阶段中,用户可触发拣箱***以执行拣箱或停止,并监视进程。拣箱***可以自动运行并在每次拾拣尝试之前扫描箱。在一些实施方案中,存在用于拣箱***的两个预期的用户角色,这些角色可包括用户角色和开发者角色。用户可通过图形用户界面与拣箱***交互(例如,可能不需要编程体验)。开发者可以扩展拣箱软件以包括新的传感器支持、新的夹持器、新的位姿估计(匹配器)算法、新的边界生成器和新的抓取脚本选择器。用户可执行各种任务,并且开发者可执行其他任务。
在一些实施方案中,拣箱软件可在定制插件中实现到Actin查看器。这些定制插件可包括但不限于:perceptionPlugin、taskExecutionPlugin和urHardwarePlugin。
在一些实施方案中,perceptionPlugin可通过感知***类与taskExecution插件进行交接。该类是感知模块的成员,并且由三个主要类接口构成:传感器、匹配器和边界生成器。
在一些实施方案中,传感器接口可包括以下方法,并且可通过传感器类来实现以与扫描仪进行交接。
在一些实施方案中,匹配器接口包括以下方法,并且通过匹配器类来实现,以利用SDK位姿估计实用性。
在一些实施方案中,边界生成器界面包括以下方法,并且由高度场发生器实现。
在一些实施方案中,任务计划评估器类经由各种指标快速评估预期抓取。该类位于任务规划模块中,并且包括称为EcBaseTaskPlantric的一个核心接口。
在一些实施方案中,TaskPlantric接口包括以下方法,并且可通过基于抓取脚本在箱中的高度对抓取脚本进行评分(箱中的最高点得到最高得分)的HeightTaskPlanMetric和基于抓取垂直的程度对抓取脚本进行评分(垂直抓取角度实现最大得分,需要从桌子底部运动的抓取角度实现最小得分)的AngleTaskPlanMetric实现。
在一些实施方案中,拣箱URCap可以使用URCap SDK创建密切遵循本机UR任务向导诸如“货盘”和“寻货”的模式和约定的模板程序。可将配置元素分成两个主组:将相对于拣箱***设置通用的那些配置元素放置在安装节点中,而将特定于特定拣箱应用程序的那些配置元素放置在由拣箱模板创建的程序节点中。运行时状态可通过由UR程序执行提供的本机程序节点突出显示机制以及通过位于主拣箱序列节点上的显示元素来显示。
在一些实施方案中,UI的总体设计可遵循上述拣箱用例。拣箱URCap设计可相对于每个用例呈现。对于每个UI元素,可提供屏幕截图以及该元素参与的用例的列表。用例在下文中进一步详细讨论。
现在参见图5,提供了符合拣箱***的一个实施方案。拣箱***安装可通过用以太网线缆将协处理器连接到UR控制器来开始。然后,用户打开协处理器,该协处理器自动启动拣箱应用程序。首先,用户可将拣箱URCap传输至UR控制器并通过设置机器人页面进行安装。
现在参见图6,提供了符合拣箱过程的图形用户界面。URCap在安装选项卡上创建拣箱节点。用户可以选择该节点并查看状态页面。状态页面示出用于包括URCap守护进程、协处理器和传感器的所需部件的状态的LED样式指示器。如果检测到问题,则可将错误消息写入UR日志并在日志选项卡上可见。
现在参见图7,提供了符合拣箱过程的图形用户界面。接下来,用户可以选择环境选项卡以配置工作空间障碍物。在该选项卡中,用户可加载、创建、编辑和/或保存限定工作空间中可在拣箱操作期间避免的所有障碍物的一组形状。可支持三种形状类型:球体、胶囊和锭剂。然而,许多其他形状类型也在本公开的范围内。用户可加载并保存来自拣箱***上的文件的碰撞形状。
现在参见图8,提供了符合拣箱过程的附加的图形用户界面。用户可以选择传感器选项卡并选择传感器类型并配置参数。这些参数可用于调谐传感器,并且当处于测试和调谐阶段时,可重新访问该页面。
现在参见图9,提供了用于生成程序模板的图形用户界面。用户可通过以下步骤和用例来配置拣箱UR程序(.urp)。用户首先生成模板拣箱程序树并点击根节点。
现在参见图10,提供了用于生成程序模板的图形用户界面。用户可通过选择“基本”选项卡来编辑基本程序选项。这包括设置完成或不完成重新扫描的选项、检查箱中的碰撞等。如图11所示,用户可以选择高级选项卡并编辑附加参数。这可包括未被拾拣的工件的碰撞检测半径。
现在参见图12,提供了允许配置EOAT的图形用户界面。用户可通过首先点击程序树中的“工具”节点来配置EOAT。
现在参见图13,提供了允许配置工具碰撞形状的图形用户界面。工具碰撞形状可在编辑器中配置,该编辑器类似于用于环境碰撞形状的编辑器。可不断地渲染工具和形状,并且用户可在编辑形状时旋转和缩放以查看形状。
现在参见图14,提供了允许箱配置的图形用户界面。用户可通过点击程序树中的“箱”节点来配置箱。
现在参见图15,提供了允许箱配准的图形用户界面。箱可以相对于机器人的基座配准。用户可首先定义UR特征平面以免在箱的三个拐角上与EOAT TCP接触。然后可在箱节点“配准平面”下拉菜单中选择该平面。
现在参见图16,提供了允许配置箱碰撞形状的图形用户界面。接下来使用类似于环境节点、工具节点和工件节点的对话来配置箱的碰撞形状。
现在参见图17,提供了允许配置工件和加载工件模型的图形用户界面。用户可通过点击程序树中的“零件模板”节点来配置待拾拣的工件。用户可从拣箱***上的文件加载工件CAD模型。CAD模型可被转换为用于渲染的网格文件和用于位姿检测的点云。用户可在渲染窗口中查看工件模板,以验证工件模板是否被正确地加载和转换。
现在参见图18,提供了允许配置工件碰撞形状的图形用户界面。用户可配置工件的碰撞形状。这些形状用于在工件被拾拣之后检测和避免工件与环境之间的碰撞。
现在参见图19,提供了允许验证工件检测的图形用户界面。用户可通过向箱添加零件然后触发扫描和检测以查找匹配来验证工件配置。检测结果可被渲染并显示在列表中。
现在参见图20,提供了允许重新扫描位置配置的图形用户界面。用户可接着设置机器人的重新扫描位置。这是可用于训练抓取点和用于在拾拣时重新扫描(如果该选项被启用)的位置。
现在参见图21至图22,提供了允许配置抓取分级结构和/或抓取选择指标的图形用户界面。用户可配置抓取分级结构,包括抓取指标、抓取点和偏移,以及接下来的放置点和偏移。抓取选择指标定义程序在可能的情况下如何选取要使用哪些抓取。用户可从列表中选择抓取指标并为每个抓取指标编辑参数。
现在参见图23,提供了允许添加和/或布置抓取的图形用户界面。用户可以在分级结构中添加并布置抓取。抓取列表可定义在评估抓取时使用的优先级顺序。可通过点击添加抓取和移除抓取按钮来添加和移除抓取。抓取可通过点击在列表中选择。所选抓取可与所提供的按钮一起在列表中向上或向下移动。
现在参见图24,提供了允许训练抓取和放置的图形用户界面。用户可通过点击左侧的程序树中的抓取节点并从左到右遵循抓取页面选项卡来训练抓取和放置。每个抓取页面可允许用户1)相对于工件定义抓取位置,2)定义在接近工件时使用的抓取偏移,3)相对于机器人基座定义放置位置,以及4)定义在接近放置位置时使用的放置偏移。用户可通过点击“名称”字段为每次抓取赋予唯一的名称。用户可通过遵循“拾拣位置”选项卡上的对话中所示的步骤来设置抓取拾拣位置。拾拣位置可指工件表面上将附接EOAT的点。用户可点击第一按钮以将机器人移动到教导位置(重新扫描位置)。接下来,用户可将工件置于夹持器中并点击第二按钮以触发扫描。可记录相对于EOAT的工件位姿并将其保存为抓取位置。然后,用户可切换到拾拣偏移选项卡并设置偏移值。
现在参见图25,提供了允许训练拾拣位置和偏移的图形用户界面。用户可通过遵循“拾拣位置”和“拾拣偏移”选项卡来训练工件拾拣位置和偏移。
现在参见图26,提供了允许训练放置位置和偏移的图形用户界面。用户可通过遵循“放置位置”和“放置偏移”选项卡来训练工件放置位置和偏移。
现在参见图27,提供了允许配置抓持和释放序列的图形用户界面。用户可将程序结构节点添加到抓持和释放序列文件夹以定义致动EOAT要采用的EOAT动作。每个序列中的默认节点可包括设置和等待节点。这些文件夹可以是用户可添加特定于EOAT的节点(可包括由其他URCap提供的那些)的位置。
现在参见图28,提供了允许***操作的图形用户界面。用户现在可以测试、调谐和运行程序。为了查看拣箱***状态信息,用户可以点击程序树中的“拣箱序列”节点。该节点页面可显示拣箱***的渲染视图以及扫描和检测到的零件的点云覆盖。用户可使用标准UR启动暂停和停止按钮来运行程序。可通过点击停止按钮,然后点击启动按钮来重置程序操作。用户可通过查看“拣箱序列”节点页面来监视拣箱***状态。所选抓取可在“当前视图”窗口中渲染,并且其ID将显示在该窗口的左侧。
在一些实施方案中,图形用户界面可允许用户设置机器人。一旦选择设置机器人选项,如图29所示的图形用户界面就可允许用户从USB驱动器或其他合适的设备安装拣箱URCap。用户可以选择“URCap”和“+”来加载URCap文件。机器人可在安装之后重新启动。
现在参见图30,提供了允许用户配置环境的图形用户界面。在该示例中,用户可以选择“环境”,然后创建和保存碰撞形状。例如,球体-1点、胶囊-2点、锭剂-3点等。在一些实施方案中,可以多种方式来定义点。其中一些可包括但不限于从特征点设置、从机器人位置设置、手动设置等。
现在参见图31,提供了允许用户配置传感器的图形用户界面。在一些实施方案中,用户可从下拉菜单中选择传感器并配置其设置。
现在参见图32至图35,提供了允许用户配准传感器的图形用户界面。在一些实施方案中,可配准传感器以确定其相对于机器人的基部的位姿偏移。用户可以选择“启动向导”选项以开始。图33示出了图形用户界面和将配准标记固定到夹持器的选项。配准标记可以是可直接安装到夹持器上的3D打印的塑料球体或半球。图34描绘了移动机器人以将配准标记放置在扫描区内的不同位置处。配准标记可以直接面向传感器。用户可以选择“添加样本”选项以记录每个步骤。在几个样本之后,配准误差可小于例如2mm。在一些实施方案中,可使用多于10个样本。在图35中,可从夹持器移除配准标记,并且可以选择“完成”选项以完成配准。
现在参见图36,提供了允许用户创建拣箱程序的图形用户界面。用户可以选择“程序”选项并选择“空程序”以创建新任务。在图37中,提供了用于生成程序模板的选项。在此,用户可以在选择“拣箱”之前选择“结构”和“URCap”选项。这可将拣箱程序模板***程序树中。图38示出了可供用户使用的选项的示例,并且图39示出了用于设置抓取指标的一种方法。抓取指标可定义程序在可能的情况下如何选取要使用哪些抓取。图40示出了允许设置RRT节点的示例性图形用户界面。RRT节点可被配置为向机器人提供路径规划引导,以拾拣箱中的困难位置(例如,靠近壁、拐角等)处的部件。RRT节点可被设置为与困难工件的拾拣位置相距一定距离。在一些实施方案中,机器人可能仅需要沿着直线移动以拾拣工件,而不会显著改变其位姿或遇到奇点。
现在参见图41,提供了允许用户设置原始位置的图形用户界面。用户可以选择程序树中的“原始位置”选项,然后选择“设置原始位置”。然后,用户可遵循示教器上的指令以将机器人移动到期望的原始位置。
现在参见图42,提供了允许用户配置工具的图形用户界面。用户可以选择程序树中的“工具”选项,并且通过手动键入坐标和取向来设置工具中心点。也可为用户提供用于加载对象文件的选项。
现在参见图43,提供了允许用户配准箱的图形用户界面。用户可以选择“基本”选项作为配准平面并选择“教导”选项作为箱类型。指针可安装到端部执行器。
现在参见图44,提供了允许用户配准箱的图形用户界面。用户可使用指针与每个箱壁的内部上的四个点接触以进行配准。在一些实施方案中,教导点可被扩展。可提供侧面定义图示以配准每一侧。一旦配准完成,LED指示器就可以切换。
现在参见图45,提供了允许用户配置箱碰撞形状的图形用户界面。用户可以选择“默认形状”选项以基于配准定义箱的碰撞形状。在一些实施方案中,用户可更改碰撞形状的尺寸。
现在参见图46,提供了允许用户验证零件模板的图形用户界面。用户可以选择“扫描”选项以扫描箱中的工件。在一些实施方案中,拣箱***可尝试将点云与零件模板匹配。
现在参见图47,提供了允许用户配置重新扫描位置的图形用户界面。用户可以选择程序树中的“重新扫描位置”选项并选择“设置重新扫描位置”。一旦机器人移动到期望的重新扫描位置,用户就可以选择“确定”。
现在参见图48,提供了允许用户编辑抓取列表的图形用户界面。在一些实施方案中,抓取列表可定义在评估抓取时使用的优先级顺序。可通过选择“添加抓取”或“移除抓取”来添加和移除抓取。所选抓取可与按钮一起在列表中向上或向下移动,如图所示。
现在参见图49,提供了允许用户查看抓取向导的图形用户界面。用户可以选择程序树中的新抓取节点或选择“下一个”以访问抓取向导。用户可在“选项”选项卡下更改抓取名称。
现在参见图50,提供了允许用户训练拾拣的图形用户界面。用户可以选择“教导拾拣方法”选项并将机器人移动到方法位置。方法位置不应位于零件模板碰撞区中。用户可以选择“确定”选项来记录位置,然后继续设置其他位置。
现在参见图51,提供了允许用户配置EOAT信号的图形用户界面。在一些实施方案中,标准UR设置节点可用于触发数字或模拟输出以致动EOAT。用户可在每个序列下删除或添加节点。
现在参见图52,提供了允许用户操作拣箱***的图形用户界面。用户可显示点云和检测到的零件。用户可使用UR启动和暂停按钮来运行程序。
现在参见图53,提供了允许用户训练货盘装载序列的图形用户界面。在货盘装载序列中,拣箱程序迭代通过放置位置列表,从而将每个后续零件放置在如由货盘装载模式所指定的不同位置。
在一些实施方案中,本文所述的拣箱***可以用一系列传感器或具有不同透镜的单个传感器模型来实现,但也可以采用将涵盖整个操作范围的单个传感器模型。产品可在体积为例如10×10×10cm至例如1.2×0.9×0.8米(H×W×D)的情况下工作。分辨率和准确度规格可在体积内的最差情况位置处得到满足。
在一些实施方案中,分辨率和准确度可随箱尺寸而变化。该具体实施可使用多个传感器模型或配置来覆盖该整个体积。如果传感器视野之外的箱确实影响拣箱***的性能,则软件可以检测并报告该错误。传感器可安装在箱上方、臂上或任何合适的位置处。
在一些实施方案中,在箱上方,在传感器与拾拣体积的顶部之间可存在足够的空间以供机器人操作,而不影响循环时间。在箱上方,可存在足够的空间以供操作者将更多的零件倒进箱中。传感器与箱之间的距离能够变化±10%或±10cm,以较大者为准。类似地,只要整个箱仍然可见,传感器就可以容忍围绕x轴、y轴或x轴的传感器安装的±10°变化。
在一些实施方案中,假设传感器在对准之后不移动,则传感器可能不需要精确位置来满足规格。在单元被配置和校准之后,传感器可被认为是固定的。拣箱***可以容许传感器与箱之间的临时阻碍。临时阻碍可包括操作者、再填充箱、调配棒等。“容许”可指示拣箱***可重新尝试拾拣合理的时间量并且将仅在多次重新尝试或实耗时间之后才生成错误。对于这两种配置,可检测导致力限制的阻碍并强制重新尝试。
在一些实施方案中,拣箱***可用于任意形状的箱,诸如纸板盒、圆柱形桶、肾脏形碗等。对于大致平行六面体形状的箱,编程可能不需要箱的CAD模型。如果需要CAD模型,则如果箱与CAD模型具有微小差异,例如翘曲硬纸板盒、具有裂缝的塑料箱、具有缺失板条的木质板条箱,则拣箱***可仍然以所需性能发挥作用。操作可能不需要主传感器轴线垂直于箱的顶部平面或底部平面。这允许箱倾斜或者传感器被不精确地放置。
在一些实施方案中,设置可能需要扫描空箱。设置可能对箱尺寸和形状是不可知的。优选地,箱甚至可以在拾拣之间变化,例如从塑料手提袋到纸板盒,而不影响***操作。拣箱***可用于具有打开翼片的纸板盒。拣箱***可以在不存在箱时工作,例如如果零件在一堆中。拣箱***也可用作2D拣箱器,例如其中零件均匀地设置在平坦表面上。拣箱***可用于小至1×1×0.1cm和大至30×30×30cm的工件。分辨率和准确度可随工件尺寸而变化。拣箱***能够接受工件的CAD模型并且/或者也可与工件的点云一起工作。
在一些实施方案中,拣箱***可用于在一个或两个维度上非常薄或非常窄的工件(即,与金属片一样薄或具有线材的纵横比),但仍然满足工件为刚性的要求。即使箱中存在异物或畸形工件,拣箱***也可工作。这些工件可被避免并且不被拾拣。拣箱***可在同一箱中实现多种类型的可拾拣工件。如果情况是这样,拣箱***能够在开始拾拣之前以编程方式指定期望工件的类型。拣箱***也可与真空拾拣器和机械夹持器一起工作。机械夹持器可包括内侧夹具和外侧夹具。夹具可结合对零件的识别,该零件具有用于夹持器的足够间隙而不会与相邻零件轻撞。
在一些实施方案中,拣箱***能够接受端部执行器的CAD模型。拣箱***也可与端部执行器的点云一起工作。拣箱***可具有可选择的选项以避免端部执行器与箱或非夹持工件之间的碰撞。当选择与相邻工件的碰撞避免时,夹持器、机器人和任何被夹持的工件在夹持期间不应接触其他工件。这意味着路径规划可以搜索目标工件周围的一定程度的间隙。拣箱***可允许定义给定工件的多个拾拣点或抓取。如果不同工件的多个拾拣点或抓取是可定义的,则对于使用哪个夹具的指示可供控制程序使用。如果不同工件的多个拾拣点或抓取是可定义的,则可存在夹持偏好的分级结构。
在一些实施方案中,拣箱***可在没有可拾拣零件可见时生成信号或返回警告。拣箱***可以区分“无零件可见”和“零件可见但不可拾拣”。拣箱***还可以发信号通知箱“几乎是空的”。拾拣操作可允许机器人在拾拣期间阻挡对箱的查看。
在一些实施方案中,拣箱***可包括对调用程序的信号发送或错误返回机制。拣箱***可具有错误分辨率的“合理”范围,例如,可包括其中“未找到零件”不是错误而是状态的模式:传感器周期性地重新扫描该区域并等待工件到达。传感器也可安装在箱上方或机械臂上的固定位置。传感器可容许微小振动,诸如可存在于工厂楼层上的振动。
在一些实施方案中,传感器可在可能存在顶置式照明和工作照明两者并且其中机器人、经过的人和其他机器可投射不同的阴影的环境中以目标可靠性操作。“环境光”可以是荧光、LED荧光、白炽光、间接自然光等,即,其可包含窄光谱带或可以是宽光谱。拣箱***可包括以编程方式更改投影图案以允许将来增强的能力。拣箱***可能对工件表面纹理不敏感。拣箱***可以排除使用具有显著镜面反射的零件。拣箱***可以排除使用具有显著镜面反射的箱。拣箱***可能对与背景的对比度不敏感(因为背景更多地为相同的工件类型,根据定义,将存在低对比度)。拣箱***可以排除透明零件的操作。拣箱***可允许零件具有一定程度的半透明性。在一些实施方案中,拣箱***可以排除透明箱或半透明箱的操作。拣箱***可用于未精确放置的箱以及在循环之间移动的箱。
拣箱***可允许中等熟练的UR编程人员在八小时内生成拣箱程序(不包括拣箱之外的程序部分,例如最终工件放置、向操作者发信号、其他操作等)。拣箱***可以实现离线拣箱程序开发,以使对生产吞吐量的影响最小化。可以调用先前训练的工件类型并在一小时内创建新的拣箱程序。拣箱***可以使用向导或其他交互式工具来生成程序。
在一些实施方案中,拣箱***可在UR控制器上执行,或者如果存在第二图像处理计算机,则可在该计算机上执行。在一些实施方案中,拣箱***(例如,拣箱***64)可允许在上述两台计算机之一或单独的计算机上基于模拟生成拣箱程序。拣箱***可以是兼容URCap的应用程序。如果使用多个传感器模型或变型,则配置和编程软件可使用所有传感器类型操作。如果使用多个传感器模型或变型,则配置和编程软件可自动检测使用哪种传感器类型。
在一些实施方案中,拣箱***可包括视觉机构以验证被夹持的工件相对于夹持器的位置,并且补偿工件的位置的任何偏移。如果支持任意箱形状,则编程可能需要箱的CAD模型。拣箱***可使用端部执行器的一般描述(例如,长度、宽度、广度)工作。检查端部执行器与未夹持工件之间的碰撞可以是用户可选择的。拣箱***可允许定义拾拣点的一般区域。
放置训练过程可包括以下步骤:1)离线:教导机器人拾拣工件并将其呈现给传感器以进行扫描。记录端部执行器位姿和工件位姿两者。2)离线:教导机器人将工件放置在其目的地,记录端部执行器位姿。3)在线:拾拣工件并将其呈现给传感器以使用与步骤1中相同的机器人位姿进行扫描,记录端部执行器位姿和工件位姿。4)在线:通过在先前步骤中收集的信息将工件放置到其目的地。
在一些实施方案中,放置准确度可由三个主要来源支配:1)机器人运动学模型校准,2)传感器校准和对准,以及3)工件位姿估计。这三个任务确定坐标系变换,该坐标系变换定义共用坐标系中的机器人端部执行器位姿、传感器位姿和工件位姿。最终工件放置可根据这些变换来计算。
在一些实施方案中,检查端部执行器与未夹持工件之间的碰撞可以是用户可选择的。在一些实施方案中,路径规划可以搜索目标工件周围的一定程度的间隙。分辨率和准确度规格可在箱内的最差情况位置处得到满足。
在一些实施方案中,在箱上方,可有足够的空间供操作者将更多的部件倒进箱中。通常,这意味着可存在空间让类似尺寸的再填充箱旋转到箱上方,直到箱尺寸为40cm深度(即,再填充箱的尺寸存在上限)。在一些实施方案中,操作可能不需要主传感器轴线垂直于箱的顶部平面或底部平面。这允许箱倾斜或者传感器被不精确地放置。在一些实施方案中,操作可能不需要箱是水平的。如果不组合在传感器中,则处理器可与UR控制器外壳中的UR处理器组合。从传感器产生点云的任何单独的软件可支持产品系列中的所有传感器。
在一些实施方案中,可检测导致力限制的阻碍并强制重新尝试。拣箱***可在没有可拾拣零件可见时生成信号或返回警告。拣箱***可以使用向导或其他交互式工具来生成程序。在一些实施方案中,拣箱应用程序可以是兼容URCap的应用程序。拣箱***可包括用于将六维偏移返回到调用程序而不是执行放置操作的选项。拣箱***能够在开始拾拣之前以编程方式指定期望工件的类型。拣箱***可包括对调用程序的信号发送或错误返回机制。设置可能对箱尺寸和形状是不可知的。在一些实施方案中,拣箱***能够接受工件的CAD模型。在一些实施方案中,拣箱***可允许在上述两台计算机之一或单独的计算机上基于模拟生成拣箱程序。拣箱***可以容许传感器与箱之间的临时阻碍。临时阻碍可包括操作者、再填充箱、调配棒等。
在一些实施方案中,拣箱***可与真空拾拣器和机械夹持器一起工作。在一些实施方案中,拣箱***可用于小至1×1×0.1cm和大至30×30×30cm的工件。然而,应当理解,可在本公开的范围内使用任何尺寸的工件或对象。
现在参见图54,提供了示出符合本公开的实施方案的拣箱操作的示例的流程图。例如,在一些实施方案中,机器人拣箱过程10可识别待拾拣的候选工件或对象的列表200。如上所述,工件通常可包括可由机器人操纵(例如,抓取、拾拣、移动等)的对象。在一些实施方案中,可基于一个或多个指标对列表进行排序。指标可包括成功拾拣的可能性、成功放置的可能性和/或放置在特定位置的适用性。如上所述并且在一些实施方案中,拣箱***(例如,拣箱***64)可包括被配置为识别箱中的零件的扫描***(例如,一个或多个传感器和/或扫描仪)。
在一些实施方案中,机器人拣箱过程10可至少部分地基于机器人环境和至少一个机器人约束来确定通往一个或多个候选对象的路径202。例如,考虑到一个或多个方面,机器人拣箱过程10可定义通往候选对象或工件的路径,该一个或多个方面包括但不限于工件形状、环境、箱、臂工具的端部和/或机器人连杆/关节限制/约束。在一些实施方案中,路径可以是可行路径、最佳路径或两者。例如,可行路径通常可包括通往工件的可能路径,而最佳路径通常可包括针对一个或多个属性(例如,最短时间、机器人臂中的最少调整等)优化的路径。在一些实施方案中,当候选工件被拾拣时,可动态地实时确定路径。
在一些实施方案中,传感器可以是3D传感器。在一些实施方案中,传感器可以是2D传感器。可在感测体积的传感器分辨率最大的区域中进行重新扫描。传感器(例如,扫描仪)还可提供描述包括静态对象和动态对象的感知环境的数据集。在一些实施方案中,机器人拣箱过程10可以使用该数据集来学习环境以确定路径和/或避免碰撞。
在一些实施方案中,机器人拣箱过程10可验证抓取一个或多个候选对象中的第一候选对象的可行性204。例如,机器人拣箱过程10可以尝试通过比实时更快地模拟拾拣和放置操作来验证在列表上抓取候选对象或工件的可行性204。在一些实施方案中,模拟可包括使用机器人运动学模型。在一些实施方案中,模拟可包括机器人周围的环境的模型。环境可包括静态对象和动态对象(例如,移动的对象)。在一些实施方案中,这些对象可包括由运动学模型表示的机器,该运动学模型使其状态至少部分地基于传感器反馈而更新。在一些实施方案中,可基于来自传感器的点云数据将一个或多个对象建模为动态障碍物。点云可变换为表示对象的感知外表面的体素网格、高度场或网格。虽然上文已经讨论了用于使用模拟来验证抓取第一候选对象的可行性的示例,但是应当理解,抓取对象的可行性可以在本公开的范围内以其他方式验证。
在一些实施方案中,如果可行性得到验证,则机器人拣箱过程10可控制机器人以物理地选择第一候选对象206。例如,如果验证通过,则机器人拣箱过程10可控制机器人拾拣候选工件。
在一些实施方案中,如果可行性未得到验证,则机器人拣箱过程10可以选择第一候选对象的不同抓取点、第二路径或第二候选对象中的至少一者208。例如,如果验证抓取第一候选对象的可行性204失败,则机器人拣箱过程10可以选择以下项中的至少一者:同一候选工件的不同抓取点、不同路径和/或列表上的不同候选工件(例如,列表上的较低排名的对象)。在一些实施方案中,选择不同的抓取点、不同的路径和/或不同的候选对象可包括模拟不同的抓取点、不同的路径和/或不同的候选对象的可行性,如上所述。
在一些实施方案中并且如上所述,确定通往一个或多个候选对象的路径202可包括使用关于与候选对象相邻的至少一个对象的一个或多个表面的信息,并且避免碰撞与候选对象相邻的至少一个对象。这样,当确定候选对象的路径时,机器人拣箱过程10可使用关于候选工件周围的对象的表面的信息,以避免与候选工件周围的对象碰撞。例如,在一些实施方案中,收集关于与候选对象相邻的至少一个对象的一个或多个表面的信息,作为识别候选对象的一部分。在一些实施方案中,识别候选对象200可包括将候选对象与一个或多个相邻对象区分开,这可包括收集关于相邻对象的信息。在一些实施方案中,机器人拣箱过程10可基于工件的外表面生成工件的简化模型。
在一些实施方案中,控制机器人206可包括执行第一候选对象的第二扫描,将第一候选对象移动到具有带有准确度要求的固定位置的放置目标,操纵第一候选对象并根据准确度要求将第一候选对象递送到放置目标。例如,机器人可拾拣候选工件并将其移动到可为机器的放置位置。机器可具有带有更高准确度要求的固定位置。因此并且为了提高放置准确度,机器人拣箱过程10可以扫描所拾拣的工件(例如,重新扫描)、操纵工件并将其定位到机器上。重新扫描操作可使用与用于定位工件的传感器/扫描仪相同的传感器/扫描仪,或者使用附加的传感器/扫描仪。在一些实施方案中,可在扫描仪的最大分辨率的区域中进行候选对象的第二扫描。虽然放置目标或放置位置在上面的示例中已被描述为机器,但是应当理解,放置目标不限于机器,并且可以是用于将候选对象放置在本公开的范围内的任何目标。
在一些实施方案中,控制机器人206可包括将第一候选对象呈现给扫描仪,以使第一候选对象上的一个或多个特征的使用最大化,从而精确地定位第一候选对象。例如,机器人拣箱过程10可将工件呈现给传感器/扫描仪,使得工件上的特征的使用最大化以精确地定位工件。在一些实施方案中,机器人拣箱过程10可以最大化工件可被成功地物理选择或拾拣的概率而不是最大化拾拣的准确性的方式定位和拾拣工件。
在一些实施方案中,机器人拣箱过程10可在图形用户界面(GUI)处显示机器人或一个或多个候选对象中的至少一者,其中图形用户界面允许用户可视化或控制机器人、路径确定、模拟、工作单元定义、性能参数规格或传感器配置中的至少一者。例如,机器人拣箱过程10可显示可用于操作拣箱***的GUI。如上所述并且在一些实施方案中,显示GUI可包括但不限于向用户提供路径确定、模拟、工作单元定义、性能参数规格、模型导入和导出、传感器配置等。在一些实施方案中,GUI可允许同时创建程序和调试所创建的程序。GUI还可允许拣箱程序命令与其他机器人控制命令混合。
在一些实施方案中,机器人拣箱过程10可以在图形用户界面处在除一个或多个候选对象之外的所有未选择部件和未选择表面上显示收缩包裹可视化。在给定周围对象的情况下,该显示可帮助编程人员确定经训练的抓取是否适用于拾拣工件。
在一些实施方案中并且如上所述,GUI可位于任何合适的设备上,包括但不限于示教器上、手持设备上、个人计算机上、机器人自身上等。在一些实施方案中,GUI可从多个来源绘制其显示的信息,例如从机器人控制器以及从与机器人控制器分开的处理器。在一些实施方案中,GUI可将用户输入引导到一个或多个目的地,例如引导到机器人控制器和/或与机器人控制器分开的处理器。在一些实施方案中,GUI的用户可能知道或可能不知道多个数据源或目的地的存在。
在一些实施方案中,可使用主处理器和至少一个协处理器来执行识别一个或多个候选对象、确定通往一个或多个候选对象的路径、验证抓取第一候选对象的可行性和/或控制机器人中的至少一者。在一些实施方案中并且如上所述,机器人拣箱过程10可被配置为将GUI从协处理器流式传输到机器人示教器。这样,机器人拣箱过程10可运行协处理器上的GUI应用程序,该GUI应用程序可包括机器人和工作单元的3D渲染视图,然后将GUI的图像流式传输到示教器以用于显示。在一些实施方案中,用户触摸事件可以从示教器流式传输到协处理器以与GUI应用程序远程交互。
在一些实施方案中,确定通往一个或多个候选对象的路径202可至少部分地基于以下项中的至少一者:全局路径规划和局部路径规划。例如,机器人拣箱过程10可以利用全局路径规划、局部路径规划或两者的组合。如本文所用,全局路径规划通常可有助于在不能局部规划的情况下找到无碰撞路径。局部规划在其可能在局部解决方案中受阻的情况下可以类似于梯度下降算法。如果环境中存在许多障碍物,则可能发生这种情况。机器人拣箱过程10的局部规划方法可包括具有碰撞避免优化的实时控制。例如,它可以快速操作,但可能并不总是在机器人的整个工作空间探索解决方案。相比之下,经由机器人拣箱过程10的全局路径规划可被配置为在整个工作空间中搜索解决方案。
在一些实施方案中,验证抓取第一候选对象的可行性204可包括分析与用户程序相关联的条件逻辑。如上所述并且在一些实施方案中,在拣箱应用程序中,用户可能需要定义各种***特征,以及开发用于拾拣和放置零件的用户程序。这样,考虑到变化的开始(拾拣)和结束(放置)机器人位置以及由用户程序中的条件逻辑限定的多个另选路径,机器人拣箱过程10可以尝试确保在受限环境中成功的端到端机器人运动。当执行用户程序时,机器人拣箱过程10可重复执行三个主要任务:感知(即,通过使用传感器识别箱中的零件);验证(即,在给定环境约束的情况下,根据用户程序中指定的规则,识别哪些部件可由机器人拾拣然后放置);以及运动(即,根据用户程序中指定的规则,在经验证的零件上执行机器人运动)。在验证任务期间,机器人拣箱过程10可以确定需要进行以便在实际执行运动之前拾拣和放置零件的机器人运动。因此,机器人拣箱过程10可以避免机器人由于一些环境或机器人灵活性约束而在运动中间停滞时的情况。
在一些实施方案中,验证抓取第一候选对象的可行性204可包括验证所有路径替代方案、验证特定路径替代方案、验证任何路径替代方案、验证一个或多个异常路径、排除一个或多个被验证的区段或执行路径的多个区段的并行验证中的至少一者。例如,为了验证所有路径替代方案,用户程序可具有条件逻辑,其中机器人预期基于验证时未知的一些条件采取不同的路径。例如,如果零件在其被拾拣之后需要由相机检查,则检查结果确定零件是否被放置在例如放置位置1或例如放置位置2中。为了保证成功的运动,机器人拣箱过程10的验证逻辑可以在零件可以移动之前确认这两个替代方案。
为了验证特定路径替代方案,用户程序可能具有条件逻辑,其中机器人可预期基于验证时已知的一些条件采取不同的路径。例如,用户程序可根据如何拾拣该零件(即,机器人如何握持该零件)来定义机器人运动。在货盘装载期间,可将零件放置在若干已知位置中的一个位置中,并且程序以可预测的模式在这些位置上迭代。在这些情况下,确定可能的另选路径的条件在验证时是已知的。为了保证成功的运动,可能仅需要分析用户程序中的条件流的一些分支中指定的运动。事实上,在这些情况下分析所有代码路径可能是有害的,因为这将花费更长的时间,因为不能基于用户程序中的条件逻辑采取的那些路径区段不应阻止机器人移动,而不管它们是否能够被验证。
为了验证任何替代路径,用户程序可以定义其中任何替代方案是可接受的若干路径替代方案。例如,在货盘装载期间,可将零件或对象放置在若干已知位置中的任一个位置中。在这种情况下,验证将需要考虑由程序指定的多个路径选项,直到其找到起作用的路径选项。
为了验证一个或多个异常路径,机器人可因异常条件而采取一个或多个路径。例如,如果零件或对象在拾拣期间未能附接到机器人夹持器,则机器人拣箱过程10可引导机器人返回到起始位置。如果机器人在拾拣零件时遇到抵抗其运动的过大的力,则机器人拣箱过程10可引导机器人返回到起始位置。在这些情况下,验证可能需要确认这些路径的可行性,即使它们未在用户程序流中明确指定。
为了排除一个或多个被验证的区段,用户可以选择排除程序流的被验证的一些区段。例如,一个或多个代码路径可包含不能被验证的运动类型。在一些实施方案中,用户可以选择进行验证以优化性能。在这些情况下,可以有条件地不执行验证。
在一些实施方案中,机器人拣箱过程10可以执行路径的多个区段的并行验证。例如,为了优化性能,可并行验证路径的多个子区段。
如上所述,本发明提供了一种方法和由提供用于执行该方法的步骤的功能的各种模块组成的对应设备。该模块可被实现为硬件,或者可被实现为用于由计算机处理器执行的软件或固件。具体地,就固件或软件而言,本发明可作为包括计算机可读存储结构的计算机程序产品提供,该计算机可读存储结构体现其上的计算机程序代码(即,软件或固件)以供计算机处理器执行。
应当理解,上述布置仅是本发明原理的示例性应用。在不脱离本公开的范围的情况下,本领域的技术人员可设计出许多变型和替代布置。
Claims (19)
1.一种用于机器人拣箱的方法,所述方法包括:
识别一个或多个候选对象以供机器人选择;
至少部分地基于机器人环境和至少一个机器人约束来确定通往所述一个或多个候选对象的路径;
验证抓取所述一个或多个候选对象中的第一候选对象的可行性;以及
如果所述可行性得到验证,则控制所述机器人以物理地选择所述第一候选对象;
如果所述可行性未得到验证,则选择所述第一候选对象的不同抓取点、第二路径或第二候选对象中的至少一者。
2.根据权利要求1所述的方法,其中验证包括使用机器人运动学模型。
3.根据权利要求1所述的方法,其中所述路径是可行路径或最佳路径中的至少一者。
4.根据权利要求1所述的方法,其中在控制所述机器人的同时至少部分地实时确定所述路径。
5.根据权利要求1所述的方法,其中确定所述路径包括使用关于与所述候选对象相邻的至少一个对象的一个或多个表面的信息,并且避免碰撞与所述候选对象相邻的所述至少一个对象。
6.根据权利要求1所述的方法,所述方法还包括:
在图形用户界面处显示所述机器人或所述一个或多个候选对象中的至少一者,其中所述图形用户界面允许用户可视化或控制所述机器人、路径确定、模拟、工作单元定义、性能参数规格或传感器配置中的至少一者。
7.根据权利要求6所述的方法,其中所述图形用户界面允许同时创建程序和与所述程序相关联的调试过程。
8.根据权利要求6所述的方法,其中所述图形用户界面与示教器、手持设备、个人计算机或所述机器人中的一者或多者相关联。
9.根据权利要求1所述的方法,所述方法还包括:
使用扫描仪提供包括一个或多个静态对象和动态对象的所述环境的图像,其中所述机器人被配置为接收所述图像并使用所述图像来学习所述环境以确定所述路径和碰撞避免。
10.根据权利要求1所述的方法,其中控制所述机器人包括执行所述第一候选对象的第二扫描,将所述第一候选对象移动到具有带有准确度要求的固定位置的放置目标,操纵所述第一候选对象并根据所述准确度要求将所述第一候选对象递送到所述放置目标。
11.根据权利要求1所述的方法,其中控制所述机器人包括将所述第一候选对象呈现给扫描仪,以使所述第一候选对象上的一个或多个特征的使用最大化,从而精确地定位所述第一候选对象。
12.根据权利要求1所述的方法,其中控制所述机器人包括以最大化成功进行物理选择的概率的方式定位和拾拣所述第一候选对象。
13.根据权利要求10所述的方法,其中在所述扫描仪的最大分辨率区域中进行所述第二扫描。
14.根据权利要求1所述的方法,其中确定通往所述一个或多个候选对象的路径至少部分地基于机器人连杆或机器人关节限制中的至少一者。
15.根据权利要求6所述的方法,所述方法还包括:
在所述图形用户界面处,在除所述一个或多个候选对象之外的所有未选择的部件和未选择的表面上显示收缩包裹可视化。
16.根据权利要求1所述的方法,其中使用主处理器和至少一个协处理器中的至少一者执行识别、确定、验证或控制中的至少一者。
17.根据权利要求1所述的方法,其中确定通往所述一个或多个候选对象的路径至少部分地基于以下项中的至少一者:全局路径规划和局部路径规划。
18.根据权利要求1所述的方法,其中验证抓取第一候选对象的可行性包括分析与用户程序相关联的条件逻辑。
19.根据权利要求18所述的方法,其中验证抓取第一候选对象的可行性包括验证所有路径替代方案、验证特定路径替代方案、验证任何路径替代方案、验证一个或多个异常路径、排除一个或多个被验证的区段或执行所述路径的多个区段的并行验证中的至少一者。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862690186P | 2018-06-26 | 2018-06-26 | |
US62/690,186 | 2018-06-26 | ||
PCT/US2019/039226 WO2020006071A1 (en) | 2018-06-26 | 2019-06-26 | System and method for robotic bin picking |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112313045A true CN112313045A (zh) | 2021-02-02 |
Family
ID=67297328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980041398.4A Pending CN112313045A (zh) | 2018-06-26 | 2019-06-26 | 用于机器人拣箱的***和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US11511415B2 (zh) |
EP (1) | EP3814072A1 (zh) |
JP (1) | JP7437326B2 (zh) |
CN (1) | CN112313045A (zh) |
CA (1) | CA3102997A1 (zh) |
MX (1) | MX2020014187A (zh) |
SG (1) | SG11202011865WA (zh) |
WO (1) | WO2020006071A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11407111B2 (en) * | 2018-06-27 | 2022-08-09 | Abb Schweiz Ag | Method and system to generate a 3D model for a robot scene |
USD938960S1 (en) * | 2019-03-27 | 2021-12-21 | Teradyne, Inc. | Display screen or portion thereof with graphical user interface |
US11648674B2 (en) | 2019-07-23 | 2023-05-16 | Teradyne, Inc. | System and method for robotic bin picking using advanced scanning techniques |
KR20190104483A (ko) * | 2019-08-21 | 2019-09-10 | 엘지전자 주식회사 | 로봇 시스템 및 그 제어 방법 |
US11701777B2 (en) * | 2020-04-03 | 2023-07-18 | Fanuc Corporation | Adaptive grasp planning for bin picking |
USD950594S1 (en) * | 2020-06-30 | 2022-05-03 | Siemens Ltd., China | Display screen with graphical user interface |
US11559885B2 (en) * | 2020-07-14 | 2023-01-24 | Intrinsic Innovation Llc | Method and system for grasping an object |
CN112734932A (zh) * | 2021-01-04 | 2021-04-30 | 深圳辰视智能科技有限公司 | 一种条形物体拆垛方法、拆垛装置及计算机可读存储介质 |
CN112802093B (zh) * | 2021-02-05 | 2023-09-12 | 梅卡曼德(北京)机器人科技有限公司 | 对象抓取方法及装置 |
JP7460744B1 (ja) | 2022-12-27 | 2024-04-02 | 京セラ株式会社 | ロボット制御装置、ロボット、かき混ぜ方法及びプログラム |
CN116330306B (zh) * | 2023-05-31 | 2023-08-15 | 之江实验室 | 一种物体的抓取方法、装置、存储介质及电子设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100272547A1 (en) * | 2007-06-12 | 2010-10-28 | Norbert Cottone | Method And System For Depalletizing Tires Using a Robot |
CN102216037A (zh) * | 2008-11-19 | 2011-10-12 | Abb技术公司 | 用于优化工业机器人的编程移动路径的方法和装置 |
US20140107953A1 (en) * | 2012-10-16 | 2014-04-17 | Beckman Coulter, Inc. | Container fill level detection |
CN104942808A (zh) * | 2015-06-29 | 2015-09-30 | 广州数控设备有限公司 | 机器人运动路径离线编程方法及*** |
CN106406320A (zh) * | 2016-11-29 | 2017-02-15 | 重庆重智机器人研究院有限公司 | 机器人路径规划方法及规划路线的机器人 |
CN106553195A (zh) * | 2016-11-25 | 2017-04-05 | 中国科学技术大学 | 工业机器人抓取过程中的物体6自由度定位方法及*** |
US9707682B1 (en) * | 2013-03-15 | 2017-07-18 | X Development Llc | Methods and systems for recognizing machine-readable information on three-dimensional objects |
US20180021951A1 (en) * | 2011-08-02 | 2018-01-25 | Sony Corporation | Display control device, display control method, computer program product, and communication system |
US20180170676A1 (en) * | 2016-12-21 | 2018-06-21 | Amazon Technologies, Inc. | Systems for removing items from a container |
US20190337154A1 (en) * | 2018-05-01 | 2019-11-07 | X Development Llc | Robot navigation using 2d and 3d path planning |
US20190381659A1 (en) * | 2018-06-13 | 2019-12-19 | Siemens Healthcare Gmbh | Method for operating a robot, data memory with corresponding program code, robot, and robot system |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100348383C (zh) * | 2002-12-12 | 2007-11-14 | 松下电器产业株式会社 | 机器人控制装置 |
US6757587B1 (en) | 2003-04-04 | 2004-06-29 | Nokia Corporation | Method and apparatus for dynamically reprogramming remote autonomous agents |
US7680300B2 (en) | 2004-06-01 | 2010-03-16 | Energid Technologies | Visual object recognition and tracking |
US8301421B2 (en) | 2006-03-31 | 2012-10-30 | Energid Technologies | Automatic control system generation for robot design validation |
US8408918B2 (en) | 2007-06-27 | 2013-04-02 | Energid Technologies Corporation | Method and apparatus for haptic simulation |
JP2009032189A (ja) * | 2007-07-30 | 2009-02-12 | Toyota Motor Corp | ロボットの動作経路生成装置 |
US9357708B2 (en) | 2008-05-05 | 2016-06-07 | Energid Technologies Corporation | Flexible robotic manipulation mechanism |
US8428781B2 (en) | 2008-11-17 | 2013-04-23 | Energid Technologies, Inc. | Systems and methods of coordination control for robot manipulation |
JP5528095B2 (ja) * | 2009-12-22 | 2014-06-25 | キヤノン株式会社 | ロボットシステム、その制御装置及び方法 |
US10475240B2 (en) * | 2010-11-19 | 2019-11-12 | Fanuc Robotics America Corporation | System, method, and apparatus to display three-dimensional robotic workcell data |
JP5306313B2 (ja) * | 2010-12-20 | 2013-10-02 | 株式会社東芝 | ロボット制御装置 |
JP5788460B2 (ja) * | 2013-11-05 | 2015-09-30 | ファナック株式会社 | バラ積みされた物品をロボットで取出す装置及び方法 |
US9764469B1 (en) * | 2013-12-13 | 2017-09-19 | University Of South Florida | Generating robotic trajectories with motion harmonics |
US10078712B2 (en) | 2014-01-14 | 2018-09-18 | Energid Technologies Corporation | Digital proxy simulation of robotic hardware |
JP5897624B2 (ja) | 2014-03-12 | 2016-03-30 | ファナック株式会社 | ワークの取出工程をシミュレーションするロボットシミュレーション装置 |
DE102014008444A1 (de) * | 2014-06-06 | 2015-12-17 | Liebherr-Verzahntechnik Gmbh | Vorrichtung zum automatisierten Entnehmen von in einem Behälter angeordneten Werkstücken |
JP6335806B2 (ja) * | 2015-01-22 | 2018-05-30 | 三菱電機株式会社 | ワーク供給装置およびワーク把持姿勢計算方法 |
US10635761B2 (en) | 2015-04-29 | 2020-04-28 | Energid Technologies Corporation | System and method for evaluation of object autonomy |
US9724826B1 (en) * | 2015-05-28 | 2017-08-08 | X Development Llc | Selecting physical arrangements for objects to be acted upon by a robot |
JP6572687B2 (ja) * | 2015-09-02 | 2019-09-11 | トヨタ自動車株式会社 | 把持可否判定方法 |
US10118296B1 (en) * | 2015-09-10 | 2018-11-06 | X Development Llc | Tagged robot sensor data |
WO2017139330A1 (en) | 2016-02-08 | 2017-08-17 | Berkshire Grey Inc. | Systems and methods for providing processing of a variety of objects employing motion planning |
EP3243607B1 (en) * | 2016-05-09 | 2021-01-27 | OpiFlex Automation AB | A system and a method for programming an industrial robot |
US10445442B2 (en) | 2016-09-01 | 2019-10-15 | Energid Technologies Corporation | System and method for game theory-based design of robotic systems |
WO2018087546A1 (en) * | 2016-11-08 | 2018-05-17 | Dogtooth Technologies Limited | A robotic fruit picking system |
CN106647282B (zh) * | 2017-01-19 | 2020-01-03 | 北京工业大学 | 一种考虑末端运动误差的六自由度机器人轨迹规划方法 |
CN107263484B (zh) * | 2017-08-10 | 2020-04-14 | 南京埃斯顿机器人工程有限公司 | 机器人关节空间点到点运动的轨迹规划方法 |
US11220007B2 (en) * | 2017-08-23 | 2022-01-11 | Shenzhen Dorabot Robotics Co., Ltd. | Method of stacking goods by robot, system of controlling robot to stack goods, and robot |
US10981272B1 (en) * | 2017-12-18 | 2021-04-20 | X Development Llc | Robot grasp learning |
US11458626B2 (en) * | 2018-02-05 | 2022-10-04 | Canon Kabushiki Kaisha | Trajectory generating method, and trajectory generating apparatus |
-
2019
- 2019-06-26 CA CA3102997A patent/CA3102997A1/en active Pending
- 2019-06-26 JP JP2020569995A patent/JP7437326B2/ja active Active
- 2019-06-26 WO PCT/US2019/039226 patent/WO2020006071A1/en unknown
- 2019-06-26 EP EP19740180.5A patent/EP3814072A1/en not_active Ceased
- 2019-06-26 SG SG11202011865WA patent/SG11202011865WA/en unknown
- 2019-06-26 MX MX2020014187A patent/MX2020014187A/es unknown
- 2019-06-26 US US16/453,197 patent/US11511415B2/en active Active
- 2019-06-26 CN CN201980041398.4A patent/CN112313045A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100272547A1 (en) * | 2007-06-12 | 2010-10-28 | Norbert Cottone | Method And System For Depalletizing Tires Using a Robot |
CN102216037A (zh) * | 2008-11-19 | 2011-10-12 | Abb技术公司 | 用于优化工业机器人的编程移动路径的方法和装置 |
US20180021951A1 (en) * | 2011-08-02 | 2018-01-25 | Sony Corporation | Display control device, display control method, computer program product, and communication system |
US20140107953A1 (en) * | 2012-10-16 | 2014-04-17 | Beckman Coulter, Inc. | Container fill level detection |
US9707682B1 (en) * | 2013-03-15 | 2017-07-18 | X Development Llc | Methods and systems for recognizing machine-readable information on three-dimensional objects |
US20180243904A1 (en) * | 2013-03-15 | 2018-08-30 | X Development Llc | Object Pickup Strategies for a Robotic Device |
CN104942808A (zh) * | 2015-06-29 | 2015-09-30 | 广州数控设备有限公司 | 机器人运动路径离线编程方法及*** |
CN106553195A (zh) * | 2016-11-25 | 2017-04-05 | 中国科学技术大学 | 工业机器人抓取过程中的物体6自由度定位方法及*** |
CN106406320A (zh) * | 2016-11-29 | 2017-02-15 | 重庆重智机器人研究院有限公司 | 机器人路径规划方法及规划路线的机器人 |
US20180170676A1 (en) * | 2016-12-21 | 2018-06-21 | Amazon Technologies, Inc. | Systems for removing items from a container |
US20190337154A1 (en) * | 2018-05-01 | 2019-11-07 | X Development Llc | Robot navigation using 2d and 3d path planning |
US20190381659A1 (en) * | 2018-06-13 | 2019-12-19 | Siemens Healthcare Gmbh | Method for operating a robot, data memory with corresponding program code, robot, and robot system |
Also Published As
Publication number | Publication date |
---|---|
CA3102997A1 (en) | 2020-01-02 |
MX2020014187A (es) | 2021-03-09 |
EP3814072A1 (en) | 2021-05-05 |
US11511415B2 (en) | 2022-11-29 |
US20190389062A1 (en) | 2019-12-26 |
SG11202011865WA (en) | 2021-01-28 |
JP7437326B2 (ja) | 2024-02-22 |
WO2020006071A1 (en) | 2020-01-02 |
JP2021528259A (ja) | 2021-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112313045A (zh) | 用于机器人拣箱的***和方法 | |
EP0291965B1 (en) | Method and system for controlling robot for constructing products | |
US20110288667A1 (en) | Industrial robot system | |
JP2017094407A (ja) | シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム | |
KR101860200B1 (ko) | 카메라를 이용한 장치 또는 물체의 선택 | |
CN113039499B (zh) | 通过自主机器支持任务的对象标记 | |
JP2019018272A (ja) | モーション生成方法、モーション生成装置、システム及びコンピュータプログラム | |
Kootbally et al. | Enabling robot agility in manufacturing kitting applications | |
CN114080590A (zh) | 使用先进扫描技术的机器人料箱拾取***和方法 | |
US20230153486A1 (en) | Method and device for simulation | |
Yang et al. | Automation of SME production with a Cobot system powered by learning-based vision | |
JP6456557B1 (ja) | 把持位置姿勢教示装置、把持位置姿勢教示方法及びロボットシステム | |
WO2016132521A1 (ja) | 教示データ生成装置 | |
US8718801B2 (en) | Automated programming system employing non-text user interface | |
Bulej et al. | Simulation of manipulation task using iRVision aided robot control in Fanuc RoboGuide software | |
Rivera-Calderón et al. | Online assessment of computer vision and robotics skills based on a digital twin | |
US20230249345A1 (en) | System and method for sequencing assembly tasks | |
JP7481591B1 (ja) | サーチモデルを生成する装置及び方法、作業位置を教示する装置及び方法、並びに制御装置 | |
US20240198515A1 (en) | Transformation for covariate shift of grasp neural networks | |
JP2018144163A (ja) | ロボット設定装置、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器 | |
WO2023171687A1 (ja) | ロボット制御装置及びロボット制御方法 | |
JP2018144161A (ja) | ロボット設定装置、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器 | |
Solberg et al. | Utilizing Reinforcement Learning and Computer Vision in a Pick-And-Place Operation for Sorting Objects in Motion | |
Pozo León et al. | Vision-driven assembly robot | |
WO2024054797A1 (en) | Visual robotic task configuration system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |