一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

具有碰撞避免机制的机器人系统及其操作方法与流程

2021-10-22 22:57:00 来源:中国专利 TAG:机器人 碰撞 引用 机制 系统

具有碰撞避免机制的机器人系统及其操作方法
1.相关申请的交叉引用
2.本技术要求于2020年4月15日提交的美国临时专利申请序列号63/010,068的权益,并且该专利的主题通过引用并入本文。
技术领域
3.本技术一般涉及机器人系统,并且更具体地涉及碰撞避免机制。


背景技术:

4.现代机器人和自动化技术正在提供越来越高的功能水平来支持工业环境,诸如制造设施、接收和配送中心以及仓库。现有技术的研究和开发可以采取许多不同的方向。
5.由于用户随着机器人系统的增长而变得越来越强大,新旧范式开始利用这一新技术领域。有许多利用这些新能力来增强或加强机器人系统的自动化的技术解决方案,诸如机器人系统避免碰撞的能力。但是,机器人系统的附加功能仍然需要手动操作,并且手动操作仍需要避免碰撞。
6.因此,仍然需要具有用于手动操作的碰撞避免机制的机器人系统。鉴于不断增加的商业竞争压力,以及不断增长的消费者期望和市场中有意义的产品差异化的机会的减少,找到这些问题的答案越来越重要。此外,降低成本、提高效率和性能以及满足竞争压力的需求为寻找这些问题的答案的关键必要性增加了更大的紧迫性。
7.已经长期寻求对这些问题的解决方案,但是先前的发展没有教导或提出任何解决方案,因此,本领域技术人员长期以来一直没有解决这些问题。


技术实现要素:

8.本发明的实施例提供了一种机器人系统,包括:用户接口,被配置为接收用于手动操作机器人单元的点动(jog)命令;与用户接口耦合的控制单元,被配置为:实时并行处理点动命令,包括:执行碰撞检查线程以基于环境模型和机器人模型确定点动命令在操作环境内对于机器人单元是导致碰撞还是导致通畅状态、执行点动操作线程以确定是否在碰撞检查时间限制内提供通畅状态;以及基于在碰撞检查时间限制之前提供的通畅状态,由机器人单元执行点动命令。
9.本发明的实施例提供了一种机器人系统的操作方法,包括:接收用于手动操作机器人单元的点动命令;实时并行处理点动命令,包括:执行碰撞检查线程以基于环境模型和机器人模型确定点动命令在操作环境内对于机器人单元是导致碰撞还是导致通畅状态、执行点动操作线程以确定是否在碰撞检查时间限制内提供通畅状态;以及基于在碰撞检查时间限制之前提供的通畅状态,由机器人单元执行点动命令。
10.本发明的实施例提供了一种非暂态计算机可读介质,其包括用于机器人系统的指令,该指令包括:接收用于手动操作机器人单元的点动命令;实时并行处理点动命令,包括:执行碰撞检查线程以基于环境模型和机器人模型确定点动命令在操作环境内对于机器人
单元是导致碰撞还是导致通畅状态、执行点动操作线程以确定是否在碰撞检查时间限制内提供通畅状态;以及基于在碰撞检查时间限制之前提供的通畅状态,由机器人单元执行点动命令。
11.除了上述那些之外或代替上述那些,本发明的某些实施例还具有其它步骤或元素。通过参考附图阅读下面的详细描述,这些步骤或元件对于本领域技术人员将变得清楚。
附图说明
12.图1是实施例中的具有碰撞避免机制的机器人系统的示例环境。
13.图2是机器人系统的框图的示例。
14.图3是另一个实施例中的机器人系统的另一个示例。
15.图4是机器人单元的示例。
16.图5是图3的机器人系统的控制流程的示例。
17.图6是本发明的实施例中的机器人系统的操作方法的流程图。
具体实施方式
18.在以下描述中,阐述了许多具体细节以提供对当前公开的技术的透彻理解。在其它实施例中,可以在没有这些具体细节的情况下实践这里介绍的技术。在其它情况下,未详细描述众所周知的特征,诸如具体的功能或例程,以避免不必要地混淆本公开。在本说明书中对“实施例”、“一个实施例”等的引用意味着所描述的特定特征、结构、材料或特性包括在本公开的至少一个实施例中。在本说明书中这些短语的出现不一定全都指同一个实施例。另一方面,这样的引用不一定相互排斥。此外,在一个或多个实施例中,可以以任何合适的方式组合特定的特征、结构、材料或特性。
19.应该理解的是,各图中所示的各种实施例仅仅是说明性的表示。此外,示出系统的实施例的附图是半示意性的,并且没有按比例绘制,并且特别地,一些维度是为了清楚起见并且在附图中被夸大地示出。类似地,虽然为了便于描述,附图中的视图通常示出了相似的朝向,但是在各图中的这种描述在大多数情况下是任意的。一般而言,本发明可以在任何朝向上进行操作。
20.为了清楚起见,在下面的描述中没有阐述描述众所周知的并且通常与机器人系统和子系统相关联但可能不必要地使所公开的技术的一些重要方面模糊的结构或处理的几个细节。而且,虽然以下公开阐述了本技术的不同方面的几个实施例,但是几个其它实施例可以具有与本节中所描述的实施例不同的配置或不同的部件。因此,所公开的技术可以具有带有附加元件或不带有下面描述的元件中的几个元件的其它实施例。
21.下面描述的本公开的许多实施例或方面可以采取计算机可执行或控制器可执行指令的形式,包括由可编程计算机或控制器执行的例程。相关领域的技术人员将认识到,可以在除了下面示出和描述的那些之外的计算机或控制器系统上实践所公开的技术。本文所述的技术可以实施在专用计算机或数据处理器中,该专用计算机或数据处理器被专门编程、配置或构造为执行下面描述的一个或多个计算机可执行指令。因此,如本文一般使用的术语“计算机”和“控制器”是指任何数据处理器,并且可以包括互联网电器和手持设备,包括掌上计算机、可穿戴计算机、蜂窝或移动电话、多处理器系统、基于处理器或可编程的消
费者电子器件、网络计算机、小型计算机等。由这些计算机和控制器处理的信息可以呈现在任何合适的显示介质上,包括液晶显示器(lcd)。用于执行计算机或控制器可执行任务的指令可以存储在任何合适的计算机可读介质中或之上,包括硬件、固件或硬件和固件的组合。指令可以包含在任何合适的存储器设备中,包括例如闪存驱动器、usb设备和/或其它合适的介质。
22.术语“耦合”和“连接”及其派生词可在本文中用于描述部件之间的结构关系。应该理解的是,这些术语并不旨在彼此等同。而是,在特定实施例中,“连接”可以用于指示两个或更多个元件彼此直接接触。除非在上下文中另外变得显然,否则术语“耦合”可以用于指示两个或更多个元件彼此直接或间接(与它们之间的其它中间元件)接触,或者两个或更多个元件彼此协作或交互(例如,以因果关系进行交互,诸如用于信号传输/接收或用于函数调用),或者两者。
23.足够详细地描述了以下实施例,以使本领域技术人员能够制造和使用本发明。应该理解的是,基于本公开,其它实施例将是清楚的,并且在不脱离本发明的实施例的范围的情况下,可以做出系统、处理或机械改变。
24.根据使用术语的上下文,本文提及的术语“模块”或“单元”可以包括本发明实施例中的软件、硬件、机械机制或其组合。例如,软件可以是机器代码、固件、嵌入式代码或应用软件。而且,例如,硬件可以是电路系统、处理器、专用计算机、集成电路、集成电路核心、压力传感器、惯性传感器、微机电系统(mems)、无源设备或其组合。此外,机械机制可以包括致动器、马达、臂、关节、手柄、端部执行器、导向器、反射镜、锚定基座、真空管线、真空发生器、液体源线或止动器(stopper)。另外,如果在下面的系统权利要求部分中写出“模块”或“单元”,那么“模块”或“单元”被认为包括用于系统权利要求的目的和范围的硬件电路系统。
25.实施例的以下描述中的模块或单元可以如所描述的或如所示的那样彼此耦合或附接。耦合或附接可以是直接的或间接的,在耦合或附接的模块或单元之间没有或具有中间物品。耦合或附接可以通过物理接触或通过模块或单元之间的通信。
26.还应该理解的是,实施例中的名词或元素可以被描述为单数实例。应该理解的是,单数的用法不限于单数,而是单数的用法可以适用于应用中任何特定名词或元素的多个实例。许多实例可以是相同或相似的,或者可以是不同的。
27.现在参考图1,其中示出了实施例中的具有碰撞避免机制的机器人系统100的示例环境。机器人系统100的环境可以包括被配置为执行一个或多个任务的一个或多个结构,诸如机器人或机器人设备。可以通过各种结构来实践或实现物体碰撞避免机制的各方面。
28.在图1所示的示例中,机器人系统100可以包括仓库、配送中心或运输枢纽中的卸载单元102、转移单元104、运输单元106、装载单元108、机器人单元110、控制器112或其组合。机器人系统100或机器人系统100的一部分可以被配置为执行一个或多个任务。
29.可以按顺序组合任务以执行实现目标的操作,例如,诸如从车辆(诸如卡车、拖车、厢式货车或火车)上卸载目标物体120以存储在仓库中,或者从存储位置卸载目标物体120并将目标物体120装载到车辆上以进行运输。任务是由机器人系统100执行的功能,用于在卸载单元102、转移单元104、运输单元106、装载单元108、机器人单元110或其组合上进行物理转换。
30.例如,任务可以包括将目标物体120从一个位置(该位置诸如是容器、箱、笼、篮、架
子、平台、托盘或传送带)移动到另一个位置。机器人系统100或机器人系统100的一部分可以被配置为执行一系列动作,诸如操作其中的一个或多个部件,以执行任务。
31.目标物体120可以表示一个或多个将由机器人系统100移位或移动的容器。目标物体120的示例可以包括箱、盒、篓、外壳、包装或其组合。稍后将进一步描述目标物体120。
32.在这个示例中,机器人系统100的操作环境124被描述为机器人单元110在其中操作的区域和区域中的物品126。操作环境124包括机器人单元110本身。作为具体示例,操作环境124还可以包括控制器112、转移单元104、目标物体120或其组合。操作环境124还可以包括图1中示出或未示出的可以影响机器人单元110的操作的其它物品126。类似地,操作环境124也可以包括或被描述为卸载单元102在其中操作的区域和区域中的物品126。为了简洁起见,将相对于机器人单元110来描述机器人系统100,但是机器人系统100可应用于卸载单元102或机器人系统100的执行与机器人系统100相关联的接合或移动的其它部分。
33.图1图示了可以由机器人系统100的各个单元在处理目标物体120时执行的可能功能和操作的示例,并且应该理解的是,包括操作环境124在内的环境和条件可以与下文所描述的不同。例如,卸载单元102可以是车辆卸载机器人,其被配置为将目标物体120从诸如卡车的运载器中的位置转移到传送带上的位置。
34.另外,转移单元104,诸如码垛机器人,可以被配置为将目标物体120从传送带上的位置转移到运输单元106上的位置,诸如用于将目标物体120装载在运输单元106上的托盘上。在另一个示例中,转移单元104可以是被配置为转移目标物体120的拾件(piece-picking)机器人。在完成操作时,运输单元106可以将目标物体120从与转移单元104相关联的区域转移到与装载单元108相关联的区域,并且装载单元108可以诸如通过移动承载目标物体120的托盘而将目标物体120从转移单元104转移到存储位置,诸如架子上的位置。
35.为了说明的目的,在运输中心的上下文中描述了机器人系统100;但是,应该理解的是,机器人系统100可以被配置为在其它环境中或为了其它目的执行任务,诸如为了制造、组装、包装、医疗保健或其它类型的自动化。还应该理解的是,机器人系统100可以包括在图1中未示出的其它单元,诸如操纵器、服务机器人、模块化机器人。例如,在一些实施例中,机器人系统100可以包括用于将物体从笼、推车或托盘转移到输送器或其它托盘上的卸垛单元、用于将物体从一个容器转移到另一个容器的容器切换单元、用于包裹物体的打包单元、用于根据物体的一个或多个特性对物体进行分组的分类单元、用于根据物体的一个或多个特性不同地操纵(诸如分类、分组和/或转移)物体的拾件单元,或其组合。
36.控制器112可以为机器人系统100或机器人系统100的一部分提供智能以执行任务。作为示例,控制器112可以控制机器人单元110的操作和机器人单元110的运动以执行任务。控制器112可以控制机器人单元110的操作以执行与目标物体120相关联的任务。控制器112可以向机器人单元110提供手动操作指令以及具有轨迹的预编程操作。手动操作不具有用于机器人单元110的至少一部分的运动的预编程轨迹。
37.控制器112可以提供执行指令的并行处理以执行任务。作为示例,控制器112可以并行处理用于碰撞检查以避免机器人单元110发生碰撞128的指令以及同时执行与手动操作相关的其它指令,而无需等待完成碰撞检查。碰撞128是机器人单元110与操作环境124中没有作为机器人单元110的操作指令的一部分被包括在内的物品126之一的物理接触。碰撞128也可以包括机器人单元110的至少一部分与机器人单元110的没有作为机器人单元110
的操作指令的一部分被包括在内的另一部分的物理接触。
38.为了说明的目的,机器人系统100被描述为具有分离的部件,诸如机器人单元110和控制器112,但是应该理解,机器人系统100可以被不同地组织。例如,机器人系统100可以包括由分布在整个机器人系统100上的控制器112提供的功能,而不是如图1所示作为控制器112的单独外壳。又例如,控制器112可以被包括作为机器人单元110的一部分。还例如,控制器112可以是多个外壳,每个外壳向机器人系统100的不同部分或单元提供智能。
39.返回到机器人单元110,机器人单元110可以包括夹持器122。机器人单元110可以利用夹持器122在转移单元104中移动目标物体120。如前所述,控制器112可以为机器人单元110提供智能。类似地,控制器112还可以为夹持器122提供智能。
40.作为示例,来自控制器112的智能可以在机器人单元110上分布。作为具体示例,夹持器122也可以为夹持器122的操作提供一些智能,并且可以与来自控制器112的智能或作为机器人单元110的一部分的分布式智能进行交互。
41.现在参考图2,其中示出了机器人系统100的框图的示例。图2所示的示例可以用于图1所示的机器人系统100。在一个实施例中,机器人系统100可以包括控制单元202、存储单元206、通信单元212、用户接口216、致动单元220和传感器单元230。在一个实施例中,如虚线框所示,这些部件中的一个或多个可以组合在控制器112中。
42.控制器112可以容纳机器人系统100的一部分。例如,控制器112可以是壳体、机箱、盒、控制台、计算机塔架或计算机母板。作为具体示例,图1的操作环境124可以包括控制器112。同样作为具体示例,图1的机器人单元110也可以包括控制器112。还作为具体示例,控制器112可以分布在机器人系统100中。仍然作为具体示例,相对于机器人系统100,在其内部、外部或其组合可以存在多个控制器112。
43.继续该示例,控制单元202、存储单元206、通信单元212或其组合可以被容纳并包括在控制器112中。又例如,控制单元202、存储单元206、通信单元212或其组合可以被容纳并包括在控制器112中,而用户接口216可以在控制器112外部可访问。
44.虽然机器人系统100的一个或多个部分可以被容纳在控制器112中或控制器112上,但是机器人系统100的其它部分可以在控制器112的外部。例如,用户接口216、致动单元220、传感器单元230或其组合可以在控制器112的外部,而控制单元202、存储单元206和通信单元212被容纳并包括在控制器112中。机器人系统100或机器人单元110的各部分的其它组合可以被容纳在控制器112中或在一起。
45.此外,例如,操作环境124可以包括机器人单元110、控制器112、传感器单元230、用户接口216、通信单元212、存储单元206、控制单元202或其组合。作为具体示例,机器人单元110可以包括传感器单元230、通信单元212、存储单元206、控制单元202或其组合。
46.控制单元202可以执行软件210以提供机器人系统100的指令和智能。控制单元202还可以执行用于机器人系统100、机器人单元110、控制器112或其组合的其它功能的软件210。可以以若干种不同的方式来实现控制单元202。例如,控制单元202可以是处理器、专用集成电路(asic)、嵌入式处理器、微处理器、硬件控制逻辑、硬件有限状态机(fsm)、数字信号处理器(dsp)或其组合。
47.为了说明的目的,控制单元202被示为单个元件,但是应该理解的是,控制单元202可以表示若干个设备和计算资源的分布。例如,控制单元202可以是跨整个机器人系统100
及其外部的计算资源的分布。又例如,控制单元202可以分布在图1的控制器112、机器人单元110、传感器单元230、夹持器122或其组合之间。软件210也可以分布在控制器112、机器人单元110、传感器单元230、夹持器122或其组合之间。
48.控制单元202可以执行软件210的指令的并行处理,并且可以以若干种方式来实现。例如,控制单元202可以包括多个处理核心,每个处理核心能够执行来自软件210的指令。又例如,控制单元202可以包括能够在前一条指令完成之前执行软件210的多条指令的流水线体系架构。此外,例如,除了处理核心和流水线体系架构之外,控制单元202还可以利用分布式计算来执行软件210的多条指令。
49.控制单元202可以包括控制接口204。控制接口204可以用于控制单元202与机器人系统100、机器人单元110、传感器单元230或其组合的其它功能单元之间的通信。控制接口204还可以用于机器人系统100外部的通信。控制接口204可以从其它功能单元或从外部源接收信息,或者可以将信息传输到其它功能单元或外部目的地。外部源和外部目的地是指机器人系统100外部的源和目的地。
50.控制接口204可以以不同的方式实现,并且可以包括不同的实现,这取决于哪些功能单元或外部单元与控制接口204接口。例如,控制接口204可以用压力传感器、惯性传感器、微机电系统(mems)、光学电路系统、波导、无线电路系统、有线电路系统、应用编程接口或其组合来实现。
51.存储单元206可以存储软件210。为了说明的目的,存储单元206被示为单个元件,但是应该理解的是,存储单元206可以表示若干个设备和存储元件的分布。同样为了说明的目的,机器人系统100被示为具有作为单层次存储系统的存储单元206,但是应该理解的是,机器人系统100可以具有不同配置的存储单元206。例如,存储单元206可以由不同的存储技术形成,形成包括不同级别的高速缓存、主存储器、转储介质或离线存储装置的存储器分层系统。又例如,存储单元206可以分布在控制器112、机器人单元110、夹持器122或其组合之间。软件210也可以分布在控制器112、机器人单元110、夹持器122或其组合之间。
52.存储单元206可以是易失性存储器、非易失性存储器、内部存储器、外部存储器或其组合。例如,存储单元206可以是非易失性存储装置,诸如非易失性随机存取存储器(nvram)、闪存、盘存储装置,或易失性存储装置,诸如静态随机存取存储器(sram)。
53.存储单元206可以包括存储接口208。存储接口208可以用于存储单元206与机器人系统100的其它功能单元之间的通信。存储接口208还可以用于机器人系统100外部的通信。存储接口208可以从机器人系统100的其它功能单元或从外部源接收信息,或者可以将信息传输到机器人系统100的其它功能单元或外部目的地。外部源和外部目的地是指机器人系统100外部的源和目的地。
54.存储接口208可以包括不同的实现,这取决于哪些功能单元或外部单元与存储单元206接口。可以使用与控制接口204的实现类似的技术和技艺来实现存储接口208。
55.通信单元212可以实现与机器人系统100的通信,包括机器人系统100的各部分、外部设备或其组合之间的通信。例如,通信单元212可以允许机器人系统100通过通信路径238与外部设备(诸如外部计算机、外部数据库、外部机器、外部外围设备或其组合)通信。
56.通信路径238可以跨越并表示各种网络和网络拓扑。例如,通信路径238可以包括无线通信,有线通信,光通信,超声通信或其组合。例如,卫星通信、蜂窝通信、蓝牙、红外数
据协会标准(lrda)、无线保真(wifi)和全球微波接入互操作性(wimax)是可以包括在通信路径238中的无线通信的示例。电缆、以太网、数字订户线(dsl)、光纤线路、光纤到户(ftth)和普通老式电话服务(pots)是可以包括在通信路径238中的有线通信的示例。
57.另外,通信路径238可以穿越多个网络拓扑和距离。例如,通信路径238可以包括直接连接、个域网(pan)、局域网(lan)、城域网(man)、广域网(wan)或其组合。又例如,通信路径238还可以包括机器人系统100内的元件之间的信息交换。作为具体示例,通信路径238可以在机器人单元110的各部分之间、与传感器单元230、与控制器112或其组合之间。控制单元202还可以执行软件210,以经由通信单元212与通信路径238进行交互。
58.通信单元212还可以用作通信枢纽,从而允许机器人系统100用作通信路径238的一部分,并且不限于成为通信路径238的端点或终端单元。通信单元212可以包括用于与通信路径238交互的有源和无源部件,诸如微电子器件或天线。
59.通信单元212可以包括通信接口214。通信接口214可以用于通信单元212与机器人系统100的其它功能单元之间的通信。通信接口214可以从机器人系统100的其它功能单元或从外部源接收信息,或者可以将信息传输到机器人系统100的其它功能单元或外部目的地。通信接口214可以包括不同的实现,这取决于哪些功能单元与通信单元212接口。通信接口214可以用类似于控制接口204的实现的技术和技能来实现。
60.控制单元202可以操作用户接口216以呈现或接收由机器人系统100生成的信息。用户接口216可以包括输入设备和输出设备。用户接口216的输入设备的示例可以包括小键盘、触摸板、软键、键盘、麦克风、用于接收远程信号的传感器、用于接收动作命令的相机或其任意组合,以提供数据和通信输入。输出设备的示例可以包括显示接口218和音频接口232。
61.显示接口218可以是任何图形用户接口,诸如显示器、投影仪、视频屏幕或其任何组合。音频接口232可以包括扬声器、麦克风、耳机、低音炮、声音部件、换能器或其任意组合。显示接口218和音频接口232允许机器人系统100的用户与机器人系统100交互。显示接口218和音频接口232可以是可选的。
62.机器人系统100还可以包括致动单元220。致动单元220可以包括被配置为绕对应的机械关节或在对应的机械关节处驱动、操纵、移位、定向、重定向(或它们的组合)机器人系统100的结构构件或机械部件的设备,例如,马达、弹簧、齿轮、滑轮、链条、导轨、线、人造肌肉、电活性聚合物或其组合。控制单元202可以操作致动单元220,以控制或操纵致动单元220。
63.为了说明的目的,致动单元220被示为单个元件,但是应该理解的是,致动单元220可以表示若干个设备并且可以是致动器的分布。例如,致动单元220可以分布在整个机器人系统100上。又例如,致动单元220可以分布在整个机器人单元110、夹持器122或其组合中。
64.致动单元220可以包括致动接口222。致动接口222可以用于致动单元220与机器人系统100、机器人单元110、夹持器122或其组合的其它功能单元之间的通信。致动接口222还可以用于机器人系统100外部的通信。致动接口222可以从机器人系统100的其它功能单元或从外部源接收信息,或者可以将信息传输到其它功能单元或外部目的地。致动接口222可以用作致动处理的源,诸如气体管线。
65.致动接口222可以包括不同的实现,这取决于机器人系统100或外部单元的哪些功
能单元与致动单元220接口。可以用类似于控制接口204的实现的技术和技能来实现致动接口222。致动接口222也可以用气动或气体设备来实现。
66.机器人系统100可以包括传感器单元230,传感器单元230被配置为获得用于执行任务和操作的传感器读数246,诸如,用于操纵机器人系统100、机器人单元110、夹持器122或其组合的结构部件。传感器单元230还可以被配置为获得机器人系统100的各部分的传感器读数246。例如,传感器单元230可以获得用于机器人单元110、夹持器122或其组合的传感器读数246。又例如,传感器单元230可以获得由机器人系统100、机器人单元110、夹持器122或其组合操作的图1的物品126的传感器读数246。作为具体示例,传感器单元230可以提供用于图1的目标物体120的传感器读数246。
67.传感器读数246可以包括来自传感器单元230的信息或数据,以检测机器人系统100的环境中的事件或变化,并将信息发送给机器人系统100的各部分、外部设备或其组合,以促进任务。传感器读数246的示例可以包括图像读数、光学读数、压力读数、距离读数或其组合。同样作为示例,传感器读数246可以表示距可以对机器人单元110或机器人单元110的一部分造成碰撞或冲击的物体的距离。
68.为了说明的目的,传感器单元230被示为单个元件,但是应该理解的是,传感器单元230可以表示若干个设备。例如,致动单元220可以分布在整个机器人系统100上。又例如,致动单元220可以分布在整个机器人单元110、夹持器122或其组合中。
69.传感器单元230可以包括传感器接口224。传感器接口224可以用于传感器单元230与机器人系统100、机器人单元110或其组合的其它部分之间的通信。传感器接口224还可以用于机器人系统100、机器人单元110或其组合外部的通信。传感器接口224可以从机器人系统100的其它部分或从外部源接收信息,或者可以将信息传输到机器人系统100的其它部分或外部目的地。作为具体示例,传感器接口224可以提供与机器人单元110、夹持器122或其组合以及与机器人系统100的其它部分的通信或它们之间的通信。
70.传感器接口224可以包括不同的实现,这取决于机器人系统100的哪些功能单元或外部单元与传感器单元230接口。传感器接口224可以利用与控制接口204的实现相似的技术和技艺来实现。
71.现在参考图3,其中示出了在另一个实施例中的机器人系统300的另一个示例。机器人系统300可以包括被配置为执行一个或多个任务的一个或多个结构,诸如机器人或机器人设备。可以通过各种结构来实践或实现物体碰撞避免机制的各方面。对于机器人系统300,未全部重复与机器人系统100的相似之处。可以在图3中描述附加信息或与机器人系统100的区别。图2中的框图也适用于机器人系统300,并且为了简洁起见不再重复。
72.在图3的示例和实施例中,机器人系统300可以包括运输单元306、机器人单元310、控制器312或其组合。机器人系统300或机器人系统300的一部分可以被配置为执行一个或多个任务。
73.对于图3所示的实施例并且作为示例,运输单元306可以为机器人单元310的处理任务转移目标物体320。运输单元306可以包括架子334或箱,架子334或箱装载有目标物体320并滚动到由机器人单元310访问的位置。运输单元306还可以包括在运输单元306和供机器人单元310操作的操作环境324的一部分之间的门336。
74.在这个示例中,门336可以提供运输单元306的内部与操作环境324的机器人单元
310所位于的该一部分的分隔。门336可以处于打开位置或关闭位置。打开位置允许机器人单元310访问运输单元306的内部。关闭位置防止机器人单元310访问运输单元306的内部。
75.继续图3的示例,机器人单元310可以在目标物体320上操作。作为具体示例,机器人单元310可以从运输单元306抓取目标物体320。机器人单元310可以针对机器人系统300的处理以及在机器人系统300的处理期间固定和移动目标物体320。用户接口216可以调用任务以通过机器人单元310、机器人系统300或其组合对目标物体320进行固定、移动、处理或其组合。用户接口216可以向机器人系统300、机器人单元310或其组合提供手动命令。用户接口216可以是控制器312的一部分或与控制器312一起操作。
76.例如,手动命令可以包括点动命令338。点动命令338通过手动操作指示机器人单元310的至少一部分移动。作为示例,点动命令338不包括预先计划的轨迹的运动,而是包括用于通过手动操作来引导机器人单元310的命令。
77.类似于图1的控制器112,控制器312可以为机器人系统300、机器人单元310或其组合提供针对任务的指令、智能或操作控制。控制器312还可以向机器人系统300、运输单元306或其组合中的机器人单元310的操作环境324提供碰撞避免。任务是由机器人系统300执行的功能,以利用运输单元306、机器人单元310、目标物体320或其组合来实现物理变换。
78.机器人系统300的操作环境324类似于针对机器人系统100所描述的。在这个示例中,描述了用于机器人系统300的操作环境324,其包括机器人单元310在其中操作的物理空间和物理空间中的物品126。操作环境324包括机器人单元310本身。
79.继续该示例,操作环境324可以提供关于机器人系统300、机器人单元310或其组合的信息。返回到运输单元306的示例,操作环境324可以包括在其中容纳机器人单元310的操作室(chamber)。操作环境324表示物理环境、用于物理环境的信息、或其组合。当表示物理环境时,操作环境324还可以包括关于门336的信息,诸如位置、是否处于打开位置、关闭位置、架子334的位置和信息、目标物体320的位置和信息或其组合。
80.进一步继续该示例,操作环境324还可以包括其它类型的物品126,包括工具以及操作室内用于执行处理目标物体320的任务的一个或多个机制。操作环境324还可以包括机器人单元310或能够与机器人单元310相似、相同或不同地移动的其它机器人设备的其它实例。其它工具、(一个或多个)机制、结构或其组合可以是静态的并且在固定位置,或者能够被移动以处理目标物体320。操作环境324还可以包括图3中示出或未示出的可以影响机器人单元310的操作的物品126的其它实例。
81.图3图示了可以由机器人系统300的各个单元在处理目标物体320时执行的可能功能和操作的示例,并且应该理解的是,包括操作环境324在内的环境以及与该环境相关联的条件可以与所描述的不同。例如,图2的卸载单元102可以是车辆卸载机器人,其被配置为将目标物体320从诸如卡车之类的运载器中的位置转移到传送带上的位置。同样作为示例,图1的转移单元104可以被配置为将目标物体320转移到运输单元306。
82.为了说明的目的,在对目标物体320进行处理的上下文中描述了机器人系统300,并且机器人系统300可以是如图1所示的机器人系统100的扩展或包括在其中,但是应该理解的是,机器人系统300可以是被配置为独立于图1中描述的操作示例进行操作。机器人系统300可以在其它环境中或出于其它目的执行任务,诸如用于制造、组装、包装、医疗保健或其它类型的自动化。还应该理解的是,机器人系统300可以包括图3中未示出的其它单元,诸
如操纵器、服务机器人、模块化机器人。
83.同样为了说明的目的,机器人系统300被描述为具有单独的部件,诸如机器人单元310和控制器312,但是应该理解的是,机器人系统300可以被不同地组织。例如,机器人系统300可以包括由分布在整个机器人系统300上的(而不是如图3所示作为与运输单元306、机器人单元310或其组合分离的外壳的)控制器312提供的功能。又例如,控制器312可以被包括作为运输单元306、机器人单元310或其组合的一部分。还例如,控制器312可以是多个外壳,每个外壳向机器人系统300的不同部分或单元提供智能。
84.现在参考图4,其中是机器人单元310的示例。对机器人单元310的描述也可以适用于图1的机器人单元110以及图1中的其它机器人设备,诸如图1的装载单元108。
85.在这个示例中,机器人单元310包括连杆340和关节342。关节342提供机器人单元310的接合或致动部分。关节342通常在连杆340之间。总的来说,关节342可以整体上提供机器人单元310的接合或致动,而连杆340提供机器人单元310的刚性构件。作为示例,关节342的移动可以通过相同或不同类型的图2的致动单元220中的一个或多个来实现。
86.关节342中的一些可以提供附接到每个关节342的连杆340的旋转接合,或更具体而言,旋转致动。关节342的其它实例可以提供平移或线性接合或致动,诸如附接到夹持器422或接合夹持器422的关节342的实例。夹持器422可以类似地描述为图1的夹持器122。
87.继续该示例,示出了机器人单元310的一端附接到操作环境324的内部,该内部表示机器人单元310在其中操作的机器人系统300的内部操作室。在这个示例中,关节342可以包括第一关节444、第二关节446、第三关节448、第四关节450、第五关节452、或其组合。又例如,连杆340可以包括第一连杆454、第二连杆456、第三连杆458、第四连杆460、或其组合。
88.作为具体示例,示出了将操作室内部连接到第一连杆454的第一关节444。第一关节444在图4中被示为提供旋转致动并且作用在第一连杆454上。第二关节446被示为提供旋转致动,并且从第一连杆454作用在第二连杆456上。第三关节448被示为提供旋转致动并且从第二连杆456作用在第三连杆458上。第四关节450被示为提供旋转致动并且从第三连杆458作用在第四连杆460上。第五关节452被示为提供线性致动并且从第四连杆460作用在夹持器422上。
89.作为示例,图3的架子334、图3的目标物体320和机器人单元310可以各自被建模为具有缓冲区462。机器人系统300、图3的控制器312或其组合操作机器人单元310,并且可以利用缓冲区462来避免图1的碰撞128或与操作环境324、图3的运输单元306、或图3的门336的意外接触。
90.缓冲区462在机器人单元310周围提供阈值距离464,以用于确定是否可能由于移动而发生碰撞。阈值距离464由速度466、周期次数468和周期时间470定义。速度466是基于点动命令338的机器人单元310的至少一部分的运动速率。周期次数468是控制时间间隔472的数量。周期时间470是每个控制时间间隔472的时间量或持续时间。控制时间间隔472将在后面描述。
91.作为示例,缓冲区462可以包围表示机器人单元310的整个物理轮廓的模型,并且缓冲区462的覆盖维度可以变化。例如,缓冲区462可以包括围绕机器人单元310的物理轮廓的三维覆盖。又例如,缓冲区462还可以提供机器人单元310的局部轮廓,并且可以是二维的。缓冲区462的二维版本可以相对于移动平面是平面的。缓冲区462的二维版本也可以是
非平面的,以与非线性移动路径一致。缓冲区462也可以根据需要而被限制在机器人单元310的朝向移动方向的一侧。还例如,缓冲区462也可以是从沿着机器人单元310的朝向移动方向的一侧进一步延伸的一维的。
92.如由阈值距离464所确定的,超出机器人单元310、连杆340、关节342或其组合的物理轮廓的缓冲区462的大小或范围可以是固定的、可以是动态调整的、或者可以是在固定或调整之间可互换的。例如,缓冲区462的大小可以是固定的并且基于机器人单元310、连杆340、关节342或其组合周围的操作环境324的复杂度。又例如,缓冲区462的阈值距离464也可以是固定的或基于机器人单元310、连杆340、关节342或其组合的移动的速度466。可以基于对操作环境324的改变、碰撞事件或其组合来调整阈值距离464。
93.作为具体示例,缓冲区462可以包括多个段,以避免每个关节342、每个连杆340、夹持器422或其组合的意外接触。作为示例,缓冲区462的段可以对应于关节342、连杆340、夹持器422或其组合,并且可以包括第一缓冲区、第二缓冲区、第三缓冲区、第四缓冲区、第五缓冲区或其组合。为了简洁起见,如对缓冲区462所描述的一维、二维和三维轮廓的描述也可以应用于从第一缓冲区到第五缓冲区的各个缓冲区。缓冲区462的维度和阈值距离464在第一缓冲区到第五缓冲区之间可以相同或不同。
94.继续该示例,第一缓冲区可以表示用于第一关节444和第一连杆454的碰撞避免阈值或潜在碰撞检测阈值。第二缓冲区可以表示用于第二关节446和第二连杆456的碰撞避免阈值或潜在碰撞检测阈值。第三缓冲区可以表示用于第三关节448和第三连杆458的碰撞避免阈值或潜在碰撞检测阈值。第四缓冲区可以表示用于第四关节450和第四连杆460的避免碰撞阈值或潜在碰撞检测阈值。第五缓冲区可以表示用于第五关节452和夹持器422的碰撞避免阈值或潜在碰撞检测阈值。
95.作为示例,机器人单元310可以包括传感器单元230,以提供关节342、连杆340或其组合周围的缓冲区462的图2的传感器读数246。在这个示例中,传感器读数246可以提供关于是否已经或可以触发针对缓冲区462的由阈值距离464描绘的距离阈值或边界的指示。
96.又例如,机器人单元310可以包括传感器单元230的单个实例。作为具体示例,传感器单元230可以位于机器人单元310的远离附接到操作环境324中的操作室壁的一部分的进一步延伸范围处。继续该具体示例,传感器单元230可以附接在或位于第五关节452或夹持器422处。
97.还例如,传感器单元230可以包括第一传感器、第二传感器、第三传感器、第四传感器、第五传感器或其组合。第一传感器可以提供第一缓冲区。第一传感器可以监视第一缓冲区,并位于第一连杆454处的第一关节444所位于的相对端处或第一关节444处。第二传感器可以提供第二缓冲区。第二传感器可以监视第二缓冲区,并位于第二连杆456处的第二关节446所位于的相对端处或第二关节446处。第三传感器可以提供第三缓冲区。第三传感器可以监视第三缓冲区,并位于第三连杆458处的第三关节448所位于的相对端处或第三关节448处。第四传感器可以提供第四缓冲区。第四传感器可以监视第四缓冲区,并位于第四连杆460处的第四关节450所位于的相对端处或第四关节450处。第五传感器可以提供第五缓冲区。第五传感器可以监视第五缓冲区,并位于夹持器422处或夹持器422处。
98.操作环境324的复杂度可以确定传感器单元230的实例数量以及针对机器人单元310、机器人系统300或其组合的传感器读数246的数量。操作环境324的复杂度还可以确定
传感器单元230的一种或多种类型以及被利用或提供给机器人单元310、机器人系统300或其组合的来自每个传感器读数494的信息的类型。
99.例如,被描述为非复杂的操作环境324是指在机器人单元310附近的障碍物非常少、围绕机器人单元310的物品126是静止的或静态的、围绕机器人单元310的物品126不移动,或者其组合。如果之前提到的关于缓冲区462的示例适用于机器人单元310的运动范围或运动路径,那么操作环境324也可以是非复杂的。如果之前提到的任何示例或者如果机器人单元310的运动范围的路径中发生障碍物变化,那么操作环境324可以是更复杂的,而不是非复杂的。
100.此外,非复杂类型的操作环境324的示例包括静态环境,其中没有其它移动物体、几乎没有障碍物或物品126、或其组合,使得可以在机器人单元310周围的区域进行操作达到阈值数量的周期而没有发生碰撞的可能性。阈值数量的周期可以指机器人单元310的操作在可能确定机器人单元310与操作环境324中的另一个物体或物品碰撞之前执行图3的点动命令338达到预定义时间段。最不复杂的操作环境324是空房间,其中在机器人单元310的运动范围内没有物体或物品126以供潜在碰撞。
101.如果操作环境324是非复杂的或被认为是简单的,那么控制器312、机器人系统300或其组合可以利用较少数量或较低复杂度的传感器读数246来避免机器人单元310的碰撞128。作为示例,机器人系统100可以利用传感器单元230的一个实例,并且传感器读数246可以表示对于连杆340的面向移动方向的一侧上的距离阈值可以是一维的缓冲区462。该示例的选择简化了控制器312、机器人系统300或其组合的计算,并且还可以减少控制器312、机器人单元310、传感器单元230、机器人系统300或其组合的功耗。该简化还允许更快地确定以避免碰撞128,从而改善了机器人系统300、机器人单元310或其组合的操作。
102.复杂环境的示例可以被描述为其中机器人单元310的运动范围受到静态障碍物、动态障碍物或其组合的限制的环境。例如,如果操作环境是复杂的或者不是简单的或者沿着复杂度谱更趋于复杂,那么控制器312、机器人系统300或其组合可以利用更多数量或更高复杂度的传感器单元230来避免机器人单元310的碰撞128。作为示例,机器人系统100可以利用传感器单元230的多个实例,并且传感器读数246可以表示缓冲区462。缓冲区462可以被划分为更小的段,诸如从第一缓冲区到第五缓冲区。缓冲区462的每个段的维度可以变化。
103.继续该示例,对于阈值距离464,缓冲区462的某个段可以是一维的,而对于其它段可以是二维的,而对于还有的其它段可以是三维的。可以通过操作环境324相对于机器人单元310的不同部分的潜在运动路径的复杂度来确定每个传感器单元230、缓冲区462的每个段、每个连杆340、每个关节342或其组合的维度。换句话说,操作环境324的复杂度水平可以相对于机器人单元310的不同部分而不同。一些连杆340的运动范围或潜在运动路径可能在操作环境324的可以被确定为简单的一部分内操作,而连杆340的其它实例可能在操作环境324的被确定具有不同水平的复杂度的可能需要不同类型的传感器读数246、传感器单元230或其组合来避免碰撞128的不同部分中操作。
104.传感器单元230、传感器读数246、缓冲区462或其组合沿着机器人单元310的连杆340的不同实例的变化不仅为机器人系统300提供了如前所述简化计算的能力以及附带的益处,还提供了根据需要在操作环境324中处理不同或变化的复杂度的灵活性,以平衡碰撞
避免的准确性。在操作环境324中混合和匹配以及考虑不同级别的复杂度的能力允许机器人系统300在提高功能准确度以避免碰撞128的同时提高效率。
105.现在参考图5,其中示出了图3的机器人系统300的控制流程的示例。该描述也可以应用于图1中描述的机器人系统100。控制流程可以包括模型生成模块502、命令接收模块504、模型更新模块506、碰撞检查模块508、计算限制模块510、命令标志模块512、命令确认模块514、命令转移模块516、模式检查模块518、模式终止模块520、或其组合。
106.为了简洁起见,控制流程的一部分被描述为碰撞检查线程522,其可以包括模型更新模块506、碰撞检查模块508、命令确认模块514或其组合。控制流程的一部分被描述为点动操作线程524,其可以包括命令接收模块504、计算限制模块510、命令转移模块516、模式检查模块518、模式终止模块520或其组合。
107.控制流程可以由图2的软件210来实现,并且可以由图2的控制单元202、图3的控制器312或其组合来执行。可以由控制单元202、控制器312、图3的机器人单元310、图3的机器人系统300或其组合来生成命令。可以使用用户接口216来发起命令。
108.软件210可以存储在图2的存储单元206中,并且可以由控制单元202执行。控制流程可以包括根据需要利用图2的通信单元212、图2的通信接口214、图2的控制接口204、图2的存储接口208、图2的致动接口222、图2的传感器接口224或其组合来传输命令或调用动作。控制流程可以由图4的夹持器422、机器人单元310、控制器312、机器人系统300或其组合来执行。
109.模型生成模块502、命令接收模块504、模型更新模块506、碰撞检查模块508、计算限制模块510、命令标志模块512、命令确认模块514、命令转移模块516、模式检查模块518和模式终止模块520可以通过将一个模块的输出包括为另一个模块的输入、通过包括一个模块的操作影响另一个模块的操作、或其组合来使用有线连接或无线连接彼此耦合。控制流程的各部分可以直接耦合而在它们之间除连接器之外没有中间结构或物体,或者可以彼此间接耦合。
110.模型生成模块502提供用于图3的操作环境324的环境模型526,作为关于机器人单元310的周围环境的信息。模型生成模块502还可以为机器人单元310生成机器人模型528。环境模型526也可以包括机器人模型528。
111.环境模型526可以包括关于并且表示图1的物品126的数量、物品126的类型、物品126的位置、物品126的维度、物品126的移动性、物品126的状态或状况的信息。物品126的示例可以包括目标物体320、其它机器人设备,诸如图1的卸载单元102或图1的转移单元104、图1的装载单元108、图3的门336、图3的架子334、机器人单元310的其它实例、或其组合。
112.作为具体示例,环境模型526可以被实现为坐标系统,该坐标系统包括机器人单元310的表示、机器人单元310周围的物体(诸如墙壁、门336、架子334、容器)的位置和维度。机器人系统300、控制器312或其组合可以接收关于操作环境324中的物品126的信息,并且这些物体可以被包括在环境模型526中。
113.机器人模型528可以表示图4的连杆340、图4的关节342、图2的传感器单元230、或其组合。机器人模型528可以包括每个连杆340、每个关节342的物理维度,连杆340和关节342与机器人单元310的物理关系,或其组合。机器人模型528可以包括每个连杆340、每个关节342或其组合的运动范围或运动能力。机器人模型528还可以包括图4的缓冲区462以及作
为图4的第一缓冲区、图4的第二缓冲区、图4的第三缓冲区、图4的第四缓冲区、图4的第五缓冲区的分段形式,或其组合。
114.机器人模型528可以是与缓冲区462对应的网格,其尺寸大于机器人单元310的实际物理测量/维度,以提供机器人单元310周围的缓冲区域。作为示例,模型生成模块502可以基于图3的点动命令338的图4的速度466将机器人模型528的缓冲区462、图3的阈值距离464或其组合的大小调整为从缓冲区462的边缘行进到与机器人单元310的实际接触的时间量或控制时间间隔472的数量。
115.作为具体示例,对于速度466的较高移动值的情况,缓冲区462的阈值距离464可以大于对于机器人单元310的速度466的较低移动值的情况。在一些实施例中,缓冲区462的阈值距离464可以被限制为最大值或最小值。如果缓冲区462太大,那么即使机器人单元310实际上可以安全地点动通过操作环境324,机器人单元310也不能在某些空间中操纵或操作。
116.作为示例,可以基于机器人单元310的运动的速度466和控制时间间隔472的数量以及每个控制时间间隔472的单位时间(诸如被认为无碰撞的2毫秒(ms)或4ms)的乘积来计算缓冲区462的图3的大小或阈值距离464。控制时间间隔472将在后面描述。
117.模型生成模块502还可以提供相对于机器人单元310所使用的传感器单元230的识别,以确定缓冲区462。例如,模型生成模块502可以确定与机器人单元310一起使用的传感器单元230的实例数量、传感器单元230的位置、每个传感器单元230的规格或功能和针对传感器单元230的该特定实例监视的缓冲区462的维度,或其组合。流程可以进行到命令接收模块504。
118.命令接收模块504接收用于机器人单元310的任务的指令。命令接收模块504可以是来自图3的用户接口216的输入。作为示例,当在手动操作中操作机器人单元310、机器人系统300或其组合时,命令接收模块504可以接收任务的命令。
119.用于手动操作的命令的示例是点动命令338,该点动命令338是用于使机器人单元310、夹持器422、机器人单元310的另一部分或其组合移动的任务的命令。点动命令338没有预先计划的轨迹,但是由接收到的用于手动操作的输入所控制。作为示例,点动命令338可以致动作为整体的机器人单元310、连杆340和关节342的特定实例、连杆340和关节342的仅单个选定的实例(或其组合)以执行任务。又例如,点动命令338可以提供单个运动,或者至少对于点动命令338的一部分可以表示多于单个运动。
120.作为具体示例,机器人系统300、机器人单元310或其组合可以处于手动操作的点动模式。在点动模式中,发送到机器人系统300、机器人单元310或其组合的指令可以包括或限于方向和速度466。点动命令338或指令与轨迹的不同之处在于,没有预定义的起点或终点或速度466。在具有轨迹的情况下,机器人系统300、控制器312、机器人单元310或其组合被提供有用于被致动的机器人单元310或机器人单元310的一部分的起点和终点,并且可以提前计划轨迹。
121.例如,在点动模式中,当用户使用用户接口216、机器人系统300、控制器312或其组合激活点动功能或发起点动模式时,该激活将开始以用户输入或设置的方向和速度466点动或移动机器人单元310的至少一部分,并且将在用户停止点动命令338或发送结束命令530时停止。结束命令530是用于让机器人单元310的至少一部分停止运动的指令。作为示例,当释放操作员用于维持点动模式的按钮或拨盘时,可以发生结束命令530。机器人单元
310接收并实时执行点动命令338,机器人系统300、控制器312或其组合不能预先计划运动的轨迹。
122.该流程可以进行到实时并行分别处理碰撞检查线程522和点动操作线程524的模型更新模块506和计算限制模块510。并行处理是指控制流程的两条路径正在并发或同时执行。并行处理是指控制流程的两条路径不需要顺序地工作。实时是指在完成指令的该实例或手动调用以终止该指令之前处理手动操作机器人单元310的指令。作为具体示例,对点动命令338的实时并行处理是指在点动命令338的该实例的调用时且在点动命令338的同一实例的完成或点动命令338的同一实例的结束命令530的调用之前,通过碰撞检查线程522和点动操作线程524并行处理点动命令338的该实例。
123.模型更新模块506可以基于对点动命令338的过去调用以及是否收集到附加信息使得需要更新或修改环境模型526来更新环境模型526。例如,当接收到基于来自传感器单元230的传感器读数246的新外部传感器信息,指示操作环境324中存在变化(其可能包括碰撞)时,可以更新环境模型526。还可以根据预定时间间隔来更新环境模型526。预定时间间隔可以以若干种方式设置或确定。例如,预定时间间隔可以基于传感器单元230的不同传感器的默认采样频率。又例如,由于更新环境模型526对于机器人系统300可能是资源密集的,因此可以指定预定时间间隔。还例如,预定时间间隔还可以基于操作环境324的复杂度,并且可以是高度动态的,以更频繁地更新环境模型526。还例如,预定时间间隔可以以秒的数量级,因为与毫秒时间帧相比,手动操作将不能那么快地做出反应。流程可以进行到碰撞检查模块508。
124.此外,模型更新模块506可以利用从外部系统接收到的与机器人单元310、机器人系统300或其组合相关的信息来更新环境模型526。该信息与操作环境324中的物品126的可移动类型相关联。作为示例,操作环境324的信息可以在环境模型526中表示为二进制信息。作为具体示例,从门336处的传感器位置接收到的信息或用于门336的信息指示门336是打开的还是关闭的。在这个示例中,该信息可以是二进制的,简单地是“打开”或“关闭”位置,并且基于从外部传感器接收到的信息,门336的位置是处于“打开”位置和“关闭”位置。作为示例,环境模型526提供操作环境324的近似,并且不需要是确切或精确的表示。来自外部系统的信息的示例可以包括来自以下各项的信息:外部传感器(诸如周界传感器)、指示操作环境324中的其它可移动类型的物品126或其它机器人的位置或姿态的致动器读数或关节值、三维相机、监视关节/伺服的角度/位置/速度的编码器。
125.作为示例,来自外部系统的通知不需要实时接收,并且可以稍微延迟,诸如以控制时间间隔472的一个或两个实例的量级延迟。换句话说,不需要在控制时间间隔472的每个实例中都发生对环境模型526的每个方面的更新。提供环境信息的外部系统可能会滞后或具有大于一个控制时间间隔472的周期,即使操作环境324中发生变化。外部系统可能需要花费时间来将该变化报告给提供作为点动控制器的功能的控制器312。又例如,门336的打开或关闭作为二进制信息提供,因此即使门336处于关闭过程中,外部报告系统仍可以将门336报告为关闭,即使门336仍然部分地打开,或者可以采用控制时间间隔472的一个或多个实例来注册和报告门336实际上是关闭的。机器人系统300可以提供可以与外部系统接口以与各种类型的传感器一起工作的应用编程接口(api)。
126.碰撞检查模块508执行潜在碰撞的实时确定。例如,为了避免碰撞,机器人系统
300、控制器312或其组合可以确定点动命令338的调用是否会导致碰撞。
127.作为示例,在机器人单元310的点动模式期间,机器人系统300可以包括实时碰撞检查机制,该实时碰撞检查机制提供用于防止或减轻错误(特别是导致机器人单元310与环境模型526中的物品126之间碰撞的错误)的方法。作为具体示例,在手动点动操作期间,操作员或用户在控制机器人单元310时可能犯错,诸如当想要命令机器人单元310后退移动时在用户接口216上错误地按下用于机器人单元310前进的点动命令338的控件。
128.碰撞检查模块508可以以若干种方式确定潜在的碰撞。例如,机器人系统300、控制器312或其组合可以利用机器人模型528、传感器读数246或其组合来确定环境模型526中的任何物品126的接近度是否通过缓冲区462或与缓冲区462交叉。碰撞检查模块508还可以确定点动命令338是否指示机器人单元310沿着发生了图1的碰撞128的路径的移动、对机器人模型528的缓冲区462的继续穿越或其组合将导致碰撞128。如果是,那么存在发生碰撞128的可能性,并且流程可以传递到命令标志模块512。
129.又例如,机器人模型528可以包括传感器读数246的粒度或数量,以基于如先前所讨论的在环境模型526中捕获的操作环境324的复杂度来表示传感器单元230的数量、类型、位置、或其组合。作为具体示例,机器人模型528可以包括传感器读数246,以表示缓冲区462的段的数量(诸如第一缓冲区至第五缓冲区)的维度,如先前所讨论的。如果操作环境324中的任何物品与任何阈值(包括被监视的第一缓冲区至第五缓冲区)交叉,并且如果点动命令338指示机器人单元310沿着碰撞的路径移动、对机器人模型528的缓冲区462的继续穿越或其组合将导致碰撞,那么存在碰撞的可能性,并且流程可以传递到命令标志模块512。
130.已经发现,作为示例的实施例通过向机器人模型528提供缓冲区462的阈值距离464或大于机器人单元310的物理测量的阈值距离464而提高了操作和检测潜在碰撞的效率并且避免检测到错误的碰撞检测,以提供完成碰撞检查计算的额外时间以及减少处理时间、带宽或其组合的益处。即使缓冲区462与操作环境324中的物品126碰撞,机器人单元310本身仍然可以不发生碰撞。
131.还已经发现,作为示例的实施例通过能够调整或重新调整机器人单元310周围的缓冲区462的大小提高了检测潜在碰撞的效率。针对由环境模型526表示的较少复杂度的操作环境324,机器人模型528可以包括较大的缓冲区462,从而当操作环境324中有很少数量的物品126或没有物品126可能阻碍机器人单元310的移动时,减少用于对缓冲区462的穿越的处理时间。另一方面,针对由环境模型526表示的更复杂类型的操作环境324,机器人模型528可以包括较小的缓冲区462或减小阈值距离464,从而当在操作环境324中有许多数量的物品126可能阻碍机器人单元310的移动时,不会过度约束机器人单元310的移动,并且减少用于对缓冲区462的穿越的处理时间。
132.如果操作环境324中的物品126的实例与缓冲区462(或者作为更具体的示例,被监视的第一缓冲区至第五缓冲区中的任何一个)交叉,并且物品126的该实例尚未在操作环境324的环境模型526中找到,那么模型更新模块506可以用附加信息来更新环境模型526。该附加信息也可以被传递给命令标志模块512。
133.如果机器人系统300、控制器312、传感器单元230或其组合未检测到对缓冲区462的穿越或点动命令338的路径未导致碰撞128,那么确定点动命令338不会导致与操作环境324中的已知或未知物品126的碰撞128。在这种情况下,流程可以传递到命令确认模块514。
134.为了说明的目的,针对基于对缓冲区462的穿越和点动命令338的路径来确定可能导致碰撞128的点动命令338的实例而描述了机器人系统300,但是应该理解,机器人系统300可以不同地操作。例如,作为确定的一部分,机器人系统300、控制器312、机器人单元310、传感器单元230或其组合可以在没有遍历机器人单元310的路径的情况下确定点动命令338的碰撞128的潜在发生。在这个示例中,仅对缓冲区462的穿越就可以指示基于碰撞命令338的碰撞128或潜在碰撞。继续该示例,机器人系统300、控制器312、机器人单元310、传感器单元230或其组合可以重新调整缓冲区462或第一缓冲区至第五缓冲区中的任何一个的大小,使得基于点动命令338的路径不被包括在碰撞或潜在碰撞的确定中。
135.继续命令标志模块512,基于对缓冲区462或被监视的第一缓冲区到第五缓冲区中的任何一个的穿越,命令标志模块512为机器人单元310提供动作。命令标志模块512可以采取若干个动作。
136.例如,命令标志模块512可以提供生成警告。警告可以被传递到用户接口216。警告可以包括对用户接口216的触觉反馈、音频反馈、显示反馈或其组合,以向用户通知中止点动命令338的调用、调用终止命令530、或其组合。警告可以包括关于通过传感器单元230的接近度读数检测到的物品126的信息。警告可以提供从图4的第一传感器到图4的第五传感器的传感器单元230中的哪个检测器分别检测到对第一缓冲区至第五缓冲区的接近穿越。警告还可以提供在操作环境324的环境模型526中未找到的、检测到的任何物品126的信息。
137.又例如,命令标志模块512也可以代替警告的生成和传递、在警告的生成和传递之前、期间或之后终止点动命令338。可能存在机器人系统300、机器人单元310、控制器312或其组合可以确定需要终止点动命令338的情况。
138.为了说明的目的,图5中所示的控制流程的示例描绘了在命令标志模块512处终止的流程,但是应该理解,机器人系统300、控制器312、机器人单元310或其组合可以不同地起作用。例如,流程可以允许覆盖警告或终止点动命令338。又例如,流程可以允许移除物品126,从而允许点动命令338继续,并且流程可以进行到命令确认模块514。
139.命令确认模块514可以生成通畅状态532,即被处理的点动命令338已经由机器人系统300、控制器312、机器人单元310、传感器单元230或其组合确定为是无碰撞的。当点动命令338将不会在由环境模型526所提供的操作环境324内导致机器人单元310的碰撞128(包括机器人单元310的一部分与机器人单元310的不是点动命令338的一部分的另一部分的无意物理接触)时,命令确认模块514可以确定通畅状态532。流程可以进行到命令转移模块516。
140.返回到计算限制模块510,计算限制模块510可以确定碰撞检查线程522的碰撞检查功能是否已经超过碰撞检查时间限制534。作为示例,机器人系统300、控制器312或其组合可以以控制时间间隔472向机器人单元310提供指令或命令,诸如点动命令338。控制时间间隔472表示命令被发送到机器人单元310的频率。对于不同类型的机器人单元310或机器人单元310的不同配置,用于每个控制时间间隔472的值可以不同。例如,机器人系统300、控制器312,用户或其组合可以将一些操作的控制时间间隔472的值配置为不同的持续时间,诸如2毫秒(ms)、4ms或6ms。又例如,对于其它操作,控制时间间隔472可以不能被修改。
141.作为值的示例,控制时间间隔472为2ms,机器人系统300、控制器312或其组合可以以2ms的间隔发送用于点动命令338的点动指令。作为示例,可以根据由操作员/用户输入的
控制或命令,每2ms将点动命令338发送到点动操作线程524,以用于计算机器人单元310的图2的关节342或致动单元220的值,其可以包括用于方向、位置、速度466或其组合的指令。针对将遵循点动指令或点动命令338而移动的关节342的每个实例执行计算。例如,如果点动命令338是要在一个方向上移动连杆340之一,那么将需要为每个关节342计算关节值以使该运动发生。可以为将实际移动以执行点动命令338的每个关节342计算关节值。
142.继续该示例,为了防止机器人单元310与操作环境324中的物品126之间的碰撞128,机器人系统300、控制器312或其组合可以在每个控制时间间隔472期间利用碰撞检查线程522并行执行实时碰撞检查。
143.又例如,机器人系统300、控制器312或其组合可以执行碰撞检查,以核实针对控制时间间隔472的当前实例的点动命令338将不会导致碰撞。如果将发生碰撞,那么机器人系统300、控制器312、碰撞检查模块508、命令标志模块512或其组合可以拒绝点动命令338、终止点动操作、或其组合。
144.例如,当机器人系统300、控制器312、碰撞检查线程522或其组合不能在控制时间间隔472的一个实例中(诸如通过碰撞检查模块508)完成碰撞检查时,计算限制模块510可以确定点动命令338的不完整碰撞检查,并且流程可以进行到命令标志模块512。作为示例,由于处理带宽的限制,操作环境324、环境模型526或其组合的复杂度可能导致不完整的碰撞检查。
145.为了避免不完整的碰撞检查将导致基于点动命令338的点动操作终止的情况,机器人系统300、控制器312或其组合操作碰撞检查线程522,碰撞检查线程522专门用于碰撞检查、利用模型更新模块506的环境建模或更新、或其组合,碰撞检查线程522与点动操作线程524分离或独立并且与点动操作线程524并行。
146.作为具体示例,机器人单元310周围的操作环境324不频繁地改变并且不需要在控制时间间隔472的每个实例期间被更新。可以将接收点动命令338的机器人单元310包括作为环境模型526的一部分,因为在碰撞检查期间也使用环境模型526,也相对于操作环境324考虑机器人单元310。
147.在另一个示例中,机器人系统300、控制器312或其组合可以在具有动态物体(诸如图3的可以打开和关闭的门336或其它移动机器人)的更复杂的操作环境324中操作,环境模型526可以更复杂,使得碰撞检查模块508进行的碰撞检查计算可能花费控制时间间隔472的多个实例来完成。在控制时间间隔472的单个实例内未完成碰撞检查计算的情况下,机器人系统300、控制器312、用户接口216或其组合可以继续向机器人单元310提供点动命令338直到已经达到由计算限制模块510确定的碰撞检查时间限制534。
148.继续该示例,碰撞检查时间限制534可以是控制时间间隔472的数量,诸如总时间段为4ms(或控制时间间隔472的两个实例)或6ms(或控制时间间隔472的三个实例),直到可能发生碰撞。在一些实施例中,碰撞检查时间限制534可以基于机器人单元310的机器人模型528。如果在没有来自碰撞检查线程522的通畅状态532的响应的情况下达到碰撞检查时间限制534,那么机器人系统300、控制器312或其组合可以确定将发生碰撞并且可以终止点动命令338的点动操作,其中流程进行到命令标志模块512。
149.还发现,作为示例的实施例通过使用附接到机器人单元310的传感器单元230提高了机器人系统300的效率,以准确且可靠地避免机器人单元310的碰撞128。传感器单元230
可以包括接近度传感器,用于提供传感器读数246,其指示由缓冲区462生成的对接近范围的任何穿越。由于由碰撞检查模块508进行的碰撞分析是在短时间帧(诸如2ms或者在由计算限制模块510确定的碰撞检查时间限制534内)执行的,因此来自传感器读数246的信息将被实时处理并且具有很短的窗口。实施例不需要基于三维点云信息的详细模型,诸如详细的视觉信息,以及环境模型526的物品126的位置。实施例通过使用传感器单元230作为附接到机器人单元310、连杆340、关节342或其组合的接近度传感器来确定点动路径中是否存在物品来进行操作。相机也可以用作视觉确认或附加验证,以核实碰撞或潜在碰撞、环境模型526中的信息,或更新环境模型526。
150.还发现,作为示例的实施例通过动态更新环境模型526以及机器人模型528而改善了机器人单元310的手动操作的功能。随着操作环境324的改变,实施例可以检测到对缓冲区462的穿越,并且如果物品不是所预期的,那么可以基于对缓冲区462的穿越来更新环境模型526。随着通过操作环境324中的物品126的相同或不同实例对缓冲区462或缓冲区462的段的附加穿越而接收到附加信息,环境模型526可以被继续细化。
151.又发现,作为示例的实施例通过实时并行处理碰撞检查线程522和点动操作线程524而改善了机器人单元310的手动操作的功能和效率。实时碰撞检查为机器人系统300提供了在执行碰撞检查的同时继续向机器人单元310提供点动命令338的益处,这可以包括,即使碰撞检查计算的计算周期超过控制时间间隔472的实例,也可以生成或更新描述机器人单元310周围的操作环境324和机器人单元310本身相对于操作环境324的环境模型526。例如,在操作环境324不包括大量障碍物或物品126的情况下,诸如在机器人单元310与墙壁之间具有大距离的空房间或在静态环境中,碰撞检查线程522更可能在一个控制时间间隔472内生成环境模型526并执行碰撞检查计算。
152.流程可以从计算限制模块510进行到命令转移模块516。命令转移模块516确定正被调用的点动命令338可以继续被机器人单元310处理。作为示例,命令转移模块516确定正被调用的点动命令338已经被命令确认模块514确认,碰撞检查线程522、碰撞检查模块508或其组合确定机器人单元310基于该正被分析的点动命令338的移动应该是无碰撞的。
153.继续该示例,命令转移模块516可以基于通畅状态532确定点动命令338应该是无碰撞的。命令转移模块516可以基于由碰撞检查线程522在点动操作线程524达到碰撞检查时间限制534之前提供的通畅状态532而将点动命令338传输到机器人单元310以供执行。流程可以进行到模式检查模块518。
154.模式检查模块518确定机器人系统300、控制器312、机器人单元310是否仍处于手动操作模式。模式检查模块518将确定机器人单元310是否可以接受另一个手动命令或点动命令338的另一个调用。如果是,那么流程周期回到命令接收模块504。如果否,那么流程可以进行到模式终止模块520。
155.模式终止模块520禁止机器人单元310的手动操作。例如,模式终止模块520可以拒绝或阻止手动命令的执行或由用户接口216提供的点动命令338的进一步调用。
156.为了说明的目的,在图5中用模块的划分和每个模块的功能描述了控制流程,但是应该理解的是,控制流程可以不同地操作和配置。例如,机器人模型528的生成可以被设置为默认设置,并且不需要利用模型生成模块502来生成。又例如,命令标志模块512可以流到模式检查模块518以移动来接受下一个手动操作命令。
157.现在参考图6,其中示出了本发明的实施例中的机器人系统300的操作方法600的流程图。方法600包括在框602中接收用于手动操作机器人单元的点动命令;实时并行处理点动命令,包括:执行碰撞检查线程,以基于环境模型和机器人模型确定点动命令在操作环境内导致机器人单元的碰撞还是导致通畅状态,在框604中执行点动操作线程,以确定在碰撞检查时间限制内是否提供通畅状态;以及在框606中,基于碰撞检查时间限制之前提供的通畅状态,由机器人单元执行点动命令。
158.方法600还包括生成表示机器人单元的机器人模型,其中包括围绕机器人单元的缓冲区;生成表示包括机器人单元的操作环境的环境模型;并且其中执行碰撞检查线程以确定点动命令是否导致碰撞包括:确定环境模型中的物品的表示进入缓冲区。
159.方法600包括执行碰撞检查线程以确定点动命令是否导致碰撞包括:在没有包括在操作环境的环境模型中的物品的表示的情况下,穿越缓冲区;还包括利用物品的表示来更新环境模型。
160.方法600还包括基于将操作环境表示为非复杂的环境模型而重新调整缓冲区的大小。
161.方法600还包括生成机器人单元的机器人模型,该机器人模型包括围绕机器人单元的缓冲区;其中对机器人单元进行建模包括:对连杆和关节进行建模;对用于连杆和关节的第一缓冲区进行建模;以及执行碰撞检查线程以确定点动命令是否导致碰撞包括确定环境模型中的物品进入第一缓冲区。
162.方法600还包括:对于操作环境将环境模型生成为复杂;以及基于复杂的环境模型减小缓冲区的大小。
163.方法600还包括:基于在碰撞检查时间限制之前未提供通畅状态,由机器人单元终止点动命令。
164.所得到的方法、处理、装置、设备、产品和/或系统具有成本效益、高度通用性、准确性、灵敏性和有效性,并且可以通过调整已知部件以获得现成、高效且经济的制造、应用和利用率来实现。本发明的实施例的另一个重要方面是它有价值地支持和服务于降低成本、简化系统和提高性能的历史趋势。
165.因此,本发明的实施例的这些和其它有价值的方面将技术状况进一步提升到至少下一个水平。
166.虽然已经结合具体的最佳模式描述了本发明,但是应该理解的是,鉴于前述描述,许多替代方案、修改和变化对于本领域技术人员来说将是清楚的。因而,旨在涵盖落入所附权利要求范围内的所有这些替代方案、修改和变化。本文阐述或附图中示出的所有内容将以说明性和非限制性的意义解释。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献