背景技术
在执行任务的过程中,传统的机器人可以遵循指令移动机器人的器械到目标位置(location)或一系列目标位置。
在许多情况下,机器人被安装在特定的操作环境中以执行任务,并且执行任务所必需的关节位姿(jointposition)被手动教导给机器人。为了执行任务,机器人随后通过所了解到的关节位姿移动。在这种情况下,校准机器人可能不是必要的,因为机器人的每个目标位置和/或机器人的器械(instrument)可以被手动设置,并且可以简单地与由机器人测量的一组关节位姿相关联。
通常可以使用计算机辅助设计(CAD)和/或计算机辅助制造(CAM)对机器人的移动进行编程来执行任务,而无需手动教导机器人每个目标位置。使用CAD/CAM等对机器人进行编程在本文中通常可以被描述为脱机编程(programingoffline)。
为了执行脱机编程的移动,机器人可以基于机器人的运动学模型(kinematicmodel)执行移动。作为一般情况,运动学模型可以使机器人的关节位姿与机器人的位置相关,并且更具体地,与机器人的器械的位置相关。
为了将机器人移动到期望位置,程序可以给机器人提供目标位置。使用目标位置和当前关节位姿,机器人可以访问本地运动学模型,以确定将使机器人能够被定位在目标位置的机器人的关节位姿。然而,除非机器人已经被校准,否则运动学模型通常不提供将机器人准确地引导到目标位置所需要的关节位姿。
如果机器人没有被校准,则机器人将经常需要手动微调以准确地执行针对脱机编程的任务的移动。然而,如果机器人被正确校准,则机器人可以准确地执行针对任务的移动而无需手动微调。
可以执行校准过程以校准运动学模型,使得该模型准确地表示所观察到的机器人的行为。在一些情况下,可以通过将机器人的关节定位在多个校准位姿并且在校准位姿上外部测量机器人的位置来校准机器人。使用在校准期间所观察到的关节位姿和相关的位置数据,该运动学模型可以被更新以更精确地对机器人的位置到机器人的关节位姿进行建模。通常,很少有机器人被校准。
校准机器人可以使机器人能够更有效地适应变化的任务。例如,可以通过脱机更新机器人的制造任务来流水线化实现产品变化。此外,机器人可以被用于执行不断变化的各种任务,而没有针对手动编程或脱机创建的手动微调程序的显著的停机时间。
机器人制造商可以防止内部供应给机器人的本地运动学模型被用户改变/更新。在一些情况下,诸如链接线(linkline)和扭转(twist)这样的有限的参数可以由用户改变。然而,不是所有参数都可以改变。即使所有的参数都可以改变,运动学模型本身也可能无法更新到更高级的运动学模型。
在此要求保护的主题并不限于解决任何缺点或仅在诸如那些上述环境中操作的实施方式。相反,此背景仅被提供用于说明本文描述的一些实施方式可以被实践的一个示例性的技术领域。
具体实施方式
所公开的实施方式涉及用于定位机器人的设备、系统和方法。可以为机器人开发校准的运动学模型。在机器人的位置被确定的同时,可以指示机器人呈现多个校准位姿。可以基于机器人的确定的位置和相关的校准位姿来开发运动学模型。
可以基于所开发的运动学模型将定位信息提供给机器人。该运动学模型可以在不改变机器人的本地运动学模型的情况下被采用。机器人可以提供目标位置,该目标位置可以与运动学模型一起使用,以确定将机器人定位在目标位置的一组目标关节位姿。可以将该目标关节位姿提供给机器人,以便机器人可以改变其关节位姿并准确地移动到目标位置。
现在将参照其中相似的结构将提供有相似的附图标记的附图。附图是示例性实施方式的图解和示意性表示,并且因此,并不限制所要求保护的主题的范围,也不必要按比例绘制附图。
图1是示例机器人定位系统100的示意图。该系统100可以包括机器人102。
机器人102可以是工业臂型机器人102。另选地,实施方式可以与其它类型的机器人102一起使用。机器人102包括可移动的关节。例如,机器人102可以包括关节104a、104b、104c、104d和104e(统称为“关节104”)。关节104通常描述机器人102的可以相对于彼此移动的两个或更多个部分的接合点。这些部分可以被配置成以多种方式相对于彼此移动。例如,这些部分可以相对于彼此围绕轴旋转,可以相对于彼此平移等。词语“位姿”在本文中通常用来描述机器人102的部分相对于机器人102的其它部分的相对位移。机器人102通常可以控制机器人102的各部分相对于彼此的定位。
机器人102的各部分的相对定位可以由机器人102测量并跟踪。值可以被分配到相对位置,并且在本文中通常被描述为关节位姿。机器人102通常可以测量关节位姿并且以高精度将关节104移动到期望的关节位姿。
词语“位置”在本文中通常用来描述机器人102的部分相对于机器人的环境的相对位移和定向。例如,机器人的位置可以与环境坐标128相关。机器人102的位置通常包括器械106相对于机器人的环境的位移和定向。例如,该位置可以包括器械106的平移位移以及角位移。器械106可以包括任何合适的工具(tool),包括用于绘制、抓握、切割、焊接、检查等的工具。通常,器械106的位置在机器人102的程序和/或任务中是主要关注点。
机器人102的位置可以与关节104的位姿相关。例如,当根据第一组关节位姿定位关节104时,机器人102可以位于第一位置。当根据第二组关节位姿定位关节104时,机器人102可以位于第二位置。机器人102可以通过根据第一组关节位姿和第二组关节位姿分别定位所述关节而位于第一位置和第二位置。
机器人102包括本地(native)机器人控制器108。该机器人控制器108通常经由本地控制语言110运行。不同的机器人102制造商可以使用不同的本地控制语言110。
机器人控制器108可以包括任务程序111。该任务程序111可以包括机器人102应该采取以完成任务的动作的脚本。任务程序111可以被脱机编程并提供给机器人控制器108。任务程序111可以包括机器人102应该移动至的一系列位置,以便完成任务。任务程序111还可以包括器械106应该采取以完成任务的一系列动作。
机器人控制器108可以经由第一接口114与机器人定位设备112进行通信。接口114可以经由机器人控制器108的本地控制语言110与机器人控制器108进行通信。
机器人控制器108可以向设备112发送目标位置,并且设备112可以基于如本文所描述的校准的运动学模型返回一组目标关节位姿。发送到机器人控制器108的目标位置可以是由任务程序111识别到的位置。有利地,设备112可以使机器人102能够基于校准的运动学模型来准确地执行任务,而无需依赖于和/或校准位于机器人控制器108上的本地运动学模型。此外,比起针对位于机器人控制器108上的本地运动学模型可以被允许的,设备112可以允许运动学模型的更加定制化。
在一些实施方式中,设备112可以是位于机器人102的环境中的外部设备112。接口114可以包括诸如以太网连接、通用串行总线(USB)连接等的物理数据连接。另选地或附加地,接口114可以包括诸如IEEE802.11连接、蓝牙连接等的无线连接。在一些实施方式中,设备112可以被远程定位,并且接口114可以包括诸如互联网连接、内部网连接等的远程连接。
设备112包括第二接口124,该第二接口124允许设备112与包括位置测量控制器122和位置测量设备126的位置测量系统进行通信。在一些实施方式中,位置测量设备126包括激光跟踪器。
设备112可以引导位置测量控制器122来确定机器人102的位置。位置测量控制器122可以引导位置测量设备126来测量机器人102的位置。位置测量设备126可以经由任何合适的测量技术来测量机器人102的位置。在一些实施方式中,位置测量设备126可以经由激光跟踪光学测量机器人102的位置。确定机器人102的位置通常可以包括确定器械106的位置。在一些实施方式中,位置测量设备126测量器械106的三个自由度,例如,x、y和z坐标中的平移位移。另选地,位置测量设备126可以测量器械106的六个自由度,例如,x、y和z坐标中的平移位移和Rx、Ry和Rz坐标中的角位移。
设备112可以包括校准器116。该校准器116可以帮助观察具有各种关节位姿的机器人102的位置的过程,以使得可以由建模器118创建校准的运动学模型。校准可以包括内在校准。例如,可以相对于机器人102的基座校准机器人102。另选地或附加地,校准可以包括外在校准。例如,可以相对于机器人102的操作环境校准机器人102。当设备112首次连接到机器人102时,或当由用户、设备112、位置测量控制器122和/或机器人102经由机器人控制器108进行请求时,可以执行校准。
在一些实施方式中,校准器116可以引导机器人控制器108指导机器人102以各种校准关节位姿定位关节104。机器人控制器108可以向设备112提供校准关节位姿。在一些情况下,可以使用源自机器人102和/或机器人控制器108的校准关节位姿。另选地或附加地,设备112可以给机器人控制器108提供校准关节位姿。
随着其用校准关节位姿定位,校准器116也可以引导位置测量控制器122来指示位置测量设备126确定机器人102的校准位置。机器人102的校准位置通常包括器械106校准位置。位置测量控制器122向设备112提供校准位置。该校准位置通常可以经由时间、序列等与校准关节位姿相关联。
建模器118可以基于由位置测量系统观察到的校准关节位姿和相关的校准位置来为机器人102创建校准的运动学模型。
指示器120可以经由接口114从机器人102接收目标位置。可以在机器人102的操作期间接收目标位置。该目标位置可以由任务程序111提供,并且可以是:任务程序111可以为机器人102提供以执行任务的一系列位置中的一个。
指示器120可以基于由建模器118创建的校准的运动学模型,来确定将使机器人102能够到达目标位置的一组目标关节位姿。在一些实施方式中,指示器120还可以经由接口114接收描述机器人102的当前关节位姿和/或当前位置的信息。可以在基于校准的运动学模型确定将使机器人102能够到达目标位置的一组目标关节位姿时,考虑当前的关节位姿和/或当前位置。
在一些实施方式中,由指示器120接收的目标位置可以包括:目标器械106位置变换,以及当前关节位姿和/或当前器械106位置。例如,机器人控制器108可以请求将使机器人102能够将器械106移动到相对于器械106的当前位置的目标位置的一组目标关节位姿。在简化的示例中,机器人控制器108可以请求这样的一组目标关节位姿:将移动器械106到上面50毫米(mm)、向右边30mm、和从器械106的当前位置返回20mm的位置。
在一些实施方式中,系统100可以被用于使机器人102能够准确横穿到目标位置的轨迹。例如,该轨迹可以被划分成一系列中间位置。系统100可以按通常对应于将机器人102引导至一系列目标位置的方式,来引导机器人102以合适的速率通过中间位置。
在一些实施方式中,可以与多个机器人一起使用设备112。图2是另一个示例机器人定位系统200的示意图。该系统200可以包括总体对应于参照图1描述的机器人102的机器人202。该机器人202包括可移动的关节。例如,机器人202可以包括关节204a、204b、204c、204d和204e(统称为“关节204”)。关节204总体可以对应于参照图1描述的关节104。机器人202包括具有任务程序211和本地控制语言210的本地机器人控制器208。该机器人控制器208、任务程序211以及本地控制语言210总体可以对应于参照图1描述的机器人控制器108、任务程序111以及本地控制语言110。
机器人控制器208可以经由第三接口212与机器人定位设备112进行通信。该接口212总体可以对应于参照图1描述的接口114。
设备112可以按总体对应于参照图1描述的方式对机器人202进行校准、建模以及指示。有利地,在操作期间,设备112可以向机器人102和机器人202两者同时提供目标关节位姿。
在一些实施方式中,位置测量设备126可以在机器人102和机器人202各自的校准期间测量它们两者的位置。另选地或附加地,系统200可以包括与设备112通信的附加位置测量系统(未示出)。
图3是基于校准的运动学模型提供关节位姿的示例方法300的流程图。在一些实施方式中,方法300可以在机器人的操作环境下执行。在一些实施方式中,可以由可以与现有机器人通信连接的、诸如图1和图2的设备112的设备来执行方法300。可以由执行存储在非临时性计算机可读介质上的计算机指令的处理设备的操作来执行方法300。在一些实施方式中,处理设备通常可以对应于设备112。
可以通过引导位置测量系统以当机器人的关节定位在校准关节位姿中时确定机器人的校准位置而在块302处开始方法300。位置测量系统总体可以对应于图1的位置测量控制器122和位置测量设备126。该机器人总体可以对应于图1的机器人102。
方法300可以在块304处继续,并且可以包括如下步骤:创建使机器人的关节位姿与机器人的位置相关联的校准的运动学模型。该校准的运动学模型可以至少部分基于从位置测量系统接收的机器人的校准位置和机器人的关节的关联校准关节位姿。
方法300可以在块306处继续,并且可以包括从机器人接收目标位置。在一些实施方式中,目标位置可以包括机器人的器械的目标器械位置变换。该器械总体可以对应于图1的器械。
方法300可以在块308处继续,并且可以包括向机器人发送目标关节位姿。该目标关节位姿可以至少部分基于目标位置和校准的运动学模型。在一些实施方式中,方法300可以从块308返回到块306,并且可以重复块306和308以完成任务。
可选地,方法300可以包括从机器人接收当前关节位姿和/或当前位置。在一些实施方式中,目标关节位姿还至少部分基于机器人的当前关节位姿和/或当前位置。
本文描述的实施方式可以包括包含各种计算机硬件或软件模块的专用目的或通用目的计算机的使用,如下面更详细地讨论的。
可以使用用于携带或具有存储于其上的计算机可执行指令或数据结构的计算机可读介质来实现本文描述的实施方式。这种计算机可读介质可以是可以被通用目的或专用目的的计算机访问的任何可用介质。以示例的方式而非限制地,这种计算机可读介质可以包括有形计算机可读存储介质(包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)或其它光盘存储、磁盘存储或其它磁存储设备)、或可以用于以计算机可执行指令或数据结构的形式携带或存储所需程序代码并且可以由通用目的或专用目的的计算机访问的任何其它的存储介质。上述的组合也可以被包括在计算机可读介质的范围之内。
计算机可执行指令包括例如使得通用目的计算机、专用目的计算机、或专用目的处理设备执行某一功能或功能组的指令和数据。尽管按照针对结构特征和/或方法动作的语言描述了主题,但是应当理解的是,所附权利要求中限定的主题不必限制于以上描述的具体特征或者动作。相反地,以上描述的特定特征和动作被公开为实现权利要求的示例形式。
如本文所用的,术语“模块”或“部件”可以指在计算系统上执行的软件对象或例程。本文中所描述的不同的部件、模块、引擎以及服务可以被实现为在计算系统上执行的对象或进程(例如,作为单独的线程)。尽管本文描述的系统和方法优选地在软件中实现,但是在硬件或软件和硬件的组合中的实现也是可能的和预期的。在本说明书中,“计算实体”可以是如前文定义的任何计算系统,或在计算系统上运行的任何模块或模块的组合。
本发明可以在不背离其精神或本质特征的情况下以其它具体形式体现。上述实施方式在所有方面应仅被视为示例性的而非限制性的。因此,本发明的范围由所附的权利要求而不是由前面的描述指示。在权利要求书的含义和等同物的范围内的所有变化都包括在其范围内。