用于预测在给定的机器人位置对之间移动的机器人的运动结果数据的方法和系统

申请号 CN201980075958.8 申请日 2019-07-18 公开(公告)号 CN113056710A 公开(公告)日 2021-06-29
申请人 西门子工业软件有限公司; 发明人 摩西·豪赞; 马克西姆·泽姆斯基;
摘要 用于预测在给定的 机器人 位置 对之间移动的机器人的运动结果数据的系统和方法。接收关于给定的机器人位置对的数据作为输入数据。将通过 机器学习 算法 训练的函数应用于输入数据,其中生成相关的机器人运动结果数据作为输出数据。提供机器人运动结果数据作为输出数据。
权利要求

1.一种用于通过数据处理系统预测在给定的机器人位置对之间移动的机器人的运动结果数据的方法,包括以下步骤:
a)接收关于给定的机器人位置对的数据作为输入数据;
b)将通过机器学习算法训练的函数应用于所述输入数据,其中,生成相关的机器人运动结果数据作为输出数据;
c)提供所述机器人运动结果数据作为输出数据。
2.根据权利要求1所述的方法,其中,所述运动结果数据选自由下述各项构成的组:
能量消耗数据;
‑周期时间数据;
‑机器人扫掠体积数据;
‑关节移动数据;
‑中间机器人位置数据;
‑其他类型的运动结果数据;
‑包括以上数据的任何组合的任何数据集。
3.根据权利要求1所述的方法,还包括:生成转换格式化表,以将所接收的输入数据的原始格式映射为适合将经训练的函数应用于所述输入数据的数字格式。
4.根据权利要求1所述的方法,其中,所述输入数据包括选自由下述各项构成的组的一条或更多条信息:
‑关于所述机器人位置对的定位的信息;
‑关于所述机器人位置对处的机器人指令的信息;
‑关于机器人工具尖端点与机器人工具框架点之间的差异定位的信息。
5.一种数据处理系统,包括:
处理器;以及
访问存储器,所述数据处理系统被特别配置成:
a)接收关于给定的机器人位置对的数据作为输入数据;
b)将通过机器学习算法训练的函数应用于所述输入数据,其中,生成相关的机器人运动结果数据作为输出数据;
c)提供所述机器人运动结果数据作为输出数据。
6.根据权利要求5所述的数据处理系统,其中,所述运动结果数据选自由下述各项构成的组:
‑能量消耗数据;
‑周期时间数据;
‑机器人扫掠体积数据;
‑关节移动数据;
‑中间机器人位置数据;
‑其他类型的运动结果数据;
‑包括以上数据的任何组合的任何数据集。
7.根据权利要求5所述的数据处理系统,其被配置成:生成转换格式化表,以将所接收的输入数据的原始格式映射为适合将经训练的函数应用于所述输入数据的数字格式。
8.根据权利要求5所述的数据处理系统,其中,所述输入数据包括选自由下述各项构成的组的一条或更多条信息:
‑关于所述机器人位置对的定位的信息;
‑关于所述机器人位置对处的机器人指令的信息;
‑关于机器人工具尖端点与机器人工具框架点之间的差异定位的信息。
9.一种利用可执行指令编码的非暂态计算机可读介质,所述可执行指令在被执行时使一个或更多个数据处理系统进行以下操作:
a)接收关于给定的机器人位置对的数据作为输入数据;
b)将通过机器学习算法训练的函数应用于所述输入数据,其中,生成相关的机器人运动结果数据作为输出数据;
c)提供所述机器人运动结果数据作为输出数据。
10.根据权利要求9所述的非暂态计算机可读介质,其中,所述运动结果数据选自由下述各项构成的组:
‑能量消耗数据;
‑周期时间数据;
‑机器人扫掠体积数据;
‑关节移动数据;
‑中间机器人位置数据;
‑其他类型的运动结果数据;
‑包括以上数据的任何组合的任何数据集。
11.根据权利要求9所述的非暂态计算机可读介质,其被配置成:生成转换格式化表,以将所接收的输入数据的原始格式映射为适合将经训练的函数应用于所述输入数据的数字格式。
12.根据权利要求9所述的非暂态计算机可读介质,其中,所述输入数据包括选自由下述各项构成的组的一条或更多条信息:
‑关于所述机器人位置对的定位的信息;
‑关于所述机器人位置对处的机器人指令的信息;
‑关于机器人工具尖端点与机器人工具框架点之间的差异定位的信息。
13.一种用于通过数据处理系统提供通过机器学习算法训练的函数的方法,包括以下步骤:
a)接收多个机器人位置对数据作为输入训练数据
b)接收多个运动结果数据作为输出训练数据,其中,所述多个运动结果数据与所述多个机器人位置对数据相关;
c)通过机器学习算法基于所述输入训练数据并基于所述输出训练数据来训练函数;
d)提供经训练的函数,所述经训练的函数用于预测在对应的机器人位置对之间移动的机器人的运动结果数据。
14.一种用于通过数据处理系统预测在给定的机器人位置对之间移动的机器人的运动结果数据的方法,包括以下步骤:
a)接收多个机器人位置对数据作为输入训练数据;
b)接收多个运动结果数据作为输出训练数据,其中,所述多个运动结果数据与所述多个机器人位置对数据相关;
c)通过机器学习算法基于所述输入训练数据和所述输出训练数据来训练函数;
d)提供经训练的函数作为运动结果预测模,所述运动结果预测模块用于预测在对应的机器人位置对之间移动的机器人的运动结果数据作为输出数据;
e)通过将所述运动结果预测模块应用于作为输入数据的给定的机器人位置对来预测运动结果数据。
15.一种用于通过数据处理系统预测在给定的机器人位置对之间移动的机器人的运动结果数据的方法,包括以下步骤:
a)接收多个机器人位置对数据作为输入训练数据;
b)接收多个运动结果数据作为输出训练数据,其中,所述多个运动结果数据与所述多个机器人位置对数据相关;
c)通过机器学习算法基于所述输入训练数据和所述输出训练数据来训练函数;
d)提供经训练的函数作为运动结果预测模块,所述运动结果预测模块用于预测在对应的机器人位置对之间移动的机器人的运动结果数据作为输出数据;
e)通过将所述运动结果预测模块应用于作为输入数据的给定的机器人位置对来预测运动结果数据。

说明书全文

用于预测在给定的机器人位置对之间移动的机器人的运动结

果数据的方法和系统

[0001] 相关申请的交叉引用
[0002] 本申请根据35 U.S.C.§119要求于2018年11月20日提交的美国申请第16/196,156号的优先权;该在先申请通过引用整体并入本文。

技术领域

[0003] 本公开内容总体涉及计算机辅助设计可视化和制造(“CAD”)系统、产品生命周期管理(“PLM”)系统、产品数据管理(“PDM”)系统、以及管理产品和其他项的数据的类似系统(统称为“产品数据管理”系统或PDM系统)。更具体地,本公开内容涉及生产环境模拟。

背景技术

[0004] 在工业自动化中,执行机器人模拟的应用用于获取机器人运动的结果数据以用于验证和优化目的。
[0005] 机器人模拟平台和系统的示例包括但不限于:计算机辅助机器人(“CAR”)工具、过程模拟(西子PLM软件套件的产品)、机器人模拟工具以及用于工业机器人模拟的其他系统和虚拟站。
[0006] 为了提高通用机器人运动规划模(MOP)的准确度平,机器人供应商同意了现实机器人模拟(“RRS”)协议,使得现在可以供应机器人控制器软件(RCS)模块以提供运动结果预测功能以及其他功能。供应商特定的虚拟机器人控制器(VRC)是模拟机器人运动轨迹和运动结果数据的模块的其他示例。
[0007] 来自机器人的运动的结果数据的示例包括但不限于:
[0008] ‑扫掠体积(swept volume)数据;例如,在用于检测潜在的机器人碰撞的工业自动化方面有用;
[0009] ‑周期时间数据;例如,在用于调度、高效操作和/或维护机器人处理的工业自动化方面有用;
[0010] ‑能量消耗数据;例如,在用于实现成本降低和/或满足环境规则的工业自动化方面有用;
[0011] ‑机器人的关节移动数据;例如,在用于优化维护工业自动化方面有用;
[0012] ‑中间机器人位置数据;例如,在用于预测机器人轨迹的工业自动化方面有用。
[0013] 上面所提到的机器人的扫掠体积表示由机器人及其附接物体(例如,在特定机器人程序或机器人操作期间沿着其路径的工具)的运动产生的整个三维(“3D”)空间。确定机器人的扫掠体积对于碰撞检测目的特别有用,以避免机器人与其他机器人单元实体(例如设备的部件、物体和/或人)之间的碰撞。
[0014] 不幸的是,运行机器人模拟通常是非常耗时的任务。在用于碰撞检测验证和优化的机器人模拟中更是如此。例如,在一些情形下,需要优化算法来找到对一个或更多个参数(例如,像机器人周期时间、能量、关节移动、机器人轨迹、机器人中间位置和/或其他机器人运动结果)进行优化的最优自由碰撞路径。在这样的情形下,然后需要优化算法来运行大量不同的模拟,收集其运动结果,处理其结果并提供最优解决方案。
[0015] 因此,期望用于预测特定机器人的运动结果的改进技术。发明内容
[0016] 各种公开的实施方式包括用于预测在给定的机器人位置对之间移动的机器人的运动结果数据的方法、系统和计算机可读介质。一种方法包括接收关于给定的机器人位置对的数据作为输入数据。该方法包括将通过机器学习算法训练的函数应用于输入数据,其中,生成相关的机器人运动结果数据作为输出。该方法还包括提供机器人运动结果数据作为输出数据。
[0017] 一种方法包括接收多个机器人位置对数据作为输入训练数据。该方法包括接收多个运动结果数据作为输出训练数据,其中,多个运动结果数据与多个机器人位置对数据相关。该方法还包括通过机器学习算法基于输入训练数据和输出训练数据来训练函数。该方法还包括提供经训练的函数作为运动结果预测模块,该运动结果预测模块用于预测在对应的机器人位置对之间移动的机器人的运动结果数据作为输出数据。该方法还包括通过将运动结果预测模块应用于作为输入数据的给定的机器人位置对来预测运动结果数据。
[0018] 各种公开的实施方式包括用于提供通过机器学习算法训练的函数的方法、系统和计算机可读介质。该方法包括接收多个机器人位置对数据作为输入训练数据。该方法还包括接收多个运动结果数据作为输出训练数据,其中,多个运动结果数据与多个机器人位置对数据相关。该方法还包括通过机器学习算法基于输入训练数据并基于输出训练数据来训练函数。该方法还包括提供经训练的函数,该经训练的函数用于预测在对应的机器人位置对之间移动的机器人的运动结果数据。
[0019] 前面已经相当广泛地概述了本公开内容的特征和技术优点,使得本领域技术人员可以更好地理解随后的详细描述。在下文中将对形成权利要求的主题的本公开内容的附加特征和优点进行描述。本领域技术人员将理解,他们可以容易地使用所公开的构思和具体实施方式作为用于对用于实现本公开内容的相同目的的其他结构进行修改或设计的基础。本领域技术人员还将认识到,这样的等同构造不以其最广泛的形式脱离本公开内容的精神和范围。
[0020] 在进行下面的具体实施方式之前,阐述贯穿本专利文献所使用的某些词或短语的定义可能是有利的:术语“包括”和“包含”及其派生词意指包括但不限于此;术语“或”是包含性的,意指和/或;短语“与……相关联”和“与此相关联”及其派生词可以意指包括、被包括在内、与……互连、包含、被包含在内、连接至或与……连接、耦接至或与……耦接、可与……通信、与……合作、交错、并置、接近、被束缚至或被束缚有、具有、具有……的性质等;术语“控制器”意指控制至少一个操作的任何设备、系统或其部分,无论这样的设备是以硬件固件、软件还是其中至少两个的某种组合实现的。应当注意,与任何特定控制器相关联的功能可以是集中式的或分布式的,无论是本地还是远程的。在整个本专利文献中提供了对某些词和短语的定义,并且本领域普通技术人员将理解,这样的定义在许多(如果不是大多数)情况下适用于这样定义的词和短语的先前使用和未来使用。虽然一些术语可以包括各种各样的实施方式,但是所附权利要求可以将这些术语明确地限制于特定实施方式。附图说明
[0021] 为了更完整地理解本公开内容及其优点,现在参考以下结合附图进行的描述,其中,相同的数字表示相同的对象,并且在附图中:
[0022] 图1示出了可以实现实施方式的数据处理系统的框图
[0023] 图2是示意性地示出根据所公开的实施方式的机器人运动结果预测模块的训练和使用的流程图
[0024] 图3是示意性地示出根据所公开的实施方式如何增加训练数据的图;
[0025] 图4是示意性地示出根据所公开的实施方式的多个机器人运动结果预测模块的框图;
[0026] 图5是示意性地示出虚拟机器人的扫掠体积的示例的图;
[0027] 图6是示意性地示出根据所公开的实施方式的表示机器人周围空间的点的图;
[0028] 图7是示意性地示出根据所公开的实施方式的表示机器人的扫掠体积的突出显示的点的图;
[0029] 图8示出了根据所公开的实施方式的用于预测移动机器人的运动结果数据的流程图。

具体实施方式

[0030] 以下讨论的图1至图8以及用于描述本专利文献中的本公开内容的原理的各种实施方式仅作为说明,并且不应以任何方式解释为限制本公开内容的范围。本领域技术人员将理解,本公开内容的原理可以以任何适当布置的设备来实现。将参考示例性非限制实施方式来描述本申请的许多创新教导。
[0031] 用于对在给定的机器人位置对之间移动的特定机器人的运动结果数据进行预测的先前技术具有一些缺点。本文公开的实施方式提供许多技术益处,包括但不限于以下示例。
[0032] 实施方式在无需运行机器人的模拟的情况下实现了特定机器人的运动结果数据的预测。
[0033] 实施方式避免了引起运行机器人模拟的性能缺陷中的一些性能缺陷。
[0034] 实施方式在无需启动RCS服务的情况下实现了特定机器人的运动结果数据的准确预测。
[0035] 实施方式实现了不依赖于RRS的外部客户端‑服务器通信的快速数据通信。
[0036] 实施方式实现了时间节省。
[0037] 实施方式实现了不具有RCS模块的特定机器人的运动结果数据的准确预测。
[0038] 实施方式实现了广泛的机器人供应商的广泛机器人的运动结果数据的准确预测。
[0039] 实施方式实现了具有复杂运动学的机器人例如三(delta)机器人/蜘蛛机器人或其他下一代机器人的运动结果数据的准确预测。
[0040] 实施方式可以用于机器人验证或者优化目的。
[0041] 实施方式实现了机器人碰撞检测验证。
[0042] 实施方式实现了升级机器人规划和模拟应用的质量和/或性能。
[0043] 实施方式实现了时间节省,实际上,在机器人操作期间不需要进行以下操作:使用运动学逆计算、运行运动模拟、与外部运动模块通信和/或计算扫掠体积。有利地,利用实施方式,所提供的机器学习运动结果预测模块以独立于机器人运动复杂度的快速方式来传递结果。
[0044] 由于避免运行机器人模拟所涉及的时间节省同时仍实现了用于碰撞检测验证的扫掠体积的计算,实施方式实现了升级运动学/机器人模拟应用(例如,像“机器人查看器”、“扫掠体积”、“自动路径规划器”以及其他)的性能。
[0045] 实施方式实现了升级若干现有的运动学/机器人静态应用(例如,像“机器人智能放置(Robot Smart Place)”、“到达测试(Reach Test)”)的质量,这些应用如今出于节省时间的原因不使用机器人模拟,并且因此仅将机器人跳跃到结束目标位置并且仅在那里检查碰撞。有利地,利用实施方式,静态机器人应用也可以执行碰撞检测。
[0046] 图1示出了数据处理系统100的框图,其中实施方式可以被实现为例如通过软件或以其他方式特别配置以执行如本文所描述的处理的PDM系统,并且特别被实现为如本文所描述的多个互连并且通信的系统中的每一个。所示的数据处理系统100可以包括连接至二级高速缓冲存储器/桥接器104的处理器102,二级高速缓冲存储器/桥接器104又连接至本地系统总线106。本地系统总线106可以是例如外围组件互连(PCI)架构总线。在所示的示例中主存储器108和图形适配器110也连接至本地系统总线。图形适配器110可以连接至显示器111。
[0047] 其他外围设备,例如局域网(LAN)/广域网/无线(例如,WiFi)适配器112,也可以连接至本地系统总线106。扩展总线接口114将本地系统总线106连接至输入/输出(I/O)总线116。I/O总线116连接至键盘/鼠标适配器118、盘控制器120和I/O适配器122。盘控制器120可以连接至存储装置126,存储装置126可以是任何合适的机器可用存储介质或者机器可读存储介质,包括但不限于非易失性硬编码类型介质例如只读存储器(ROM)或电可擦除可编程只读存储器(EEPROM)、磁带存储装置和用户可记录类型介质例如软盘硬盘驱动器和致密盘只读存储器(CD‑ROM)或数字通用盘(DVD),以及其他已知的光存储设备、电存储设备或磁存储设备。
[0048] 在示出的示例中音频适配器124也连接至I/O总线116,扬声器(未示出)可以连接至音频适配器124以播放声音。键盘/鼠标适配器118为指向设备(未示出)例如鼠标、跟踪球、跟踪指针触摸屏等提供连接。
[0049] 本领域普通技术人员将理解,图1中示出的硬件可以针对特定实现方式而变化。例如,除了所示的硬件以外或者代替所示的硬件,也可以使用其他外围设备例如光盘驱动器等。提供所示出的示例仅用于说明的目的,并不意在隐含关于本公开内容的架构限制。
[0050] 根据本公开内容的实施方式的数据处理系统可以包括采用图形用户接口的操作系统。操作系统允许在图形用户接口中同时呈现多个显示窗口,其中每个显示窗口提供到不同应用或者到同一应用的不同实例的接口。用户可以通过指向设备操纵图形用户接口中的光标。可以改变光标的定位以及/或者生成诸如点击鼠标按钮的事件以启动期望的响应。
[0051] 如果适当修改,则可以采用各种商业操作系统之一例如位于华盛顿州雷蒙德市的TM微软公司的产品Microsoft Windows 的版本。如所描述的,根据本公开内容修改或创建操作系统。
[0052] LAN/WAN/无线适配器112可以连接至网络130(不是数据处理系统100的一部分),网络130可以是任何公共的或私有的数据处理系统网络或者如本领域技术人员所知的包括因特网的网络的组合。数据处理系统100可以通过网络130与服务器系统140通信,服务器系统140也不是数据处理系统100的一部分,但是可以被实现为例如单独的数据处理系统100。
[0053] 图2是示意性地示出根据所公开的实施方式的机器人运动结果预测模块的训练和使用的流程图。
[0054] 对于特定类型和特定供应商的工业机器人(未示出),可以从不同类型的数据源201、202、203、204、205、206接收运动结果训练数据211、212、213、214、215、216。
[0055] 如本文所使用的,术语机器人指示工业机器人、任何其他类型的机器人或任何类型的运动学机器。
[0056] 第一类型的训练数据源201、202、203提供从特定物理机器人的真实运动中获得的数据,并且第二类型的数据源204、205、206提供从特定物理机器人的虚拟表示(本文称为虚拟机器人)的模拟运动中获得的数据。在实施方式中,可以提供将上述进行组合的混合数据源。机器人供应商可以有利地提供从不同数据源得到的输入训练数据和输出训练数据。
[0057] 物理数据源201、202、203的示例包括在特定物理工业机器人在机器人位置对之间移动时的运动期间提供机器人运动结果数据的位置跟踪系统例如摄像机201、机器人应用程序接口(“API”)202、物联网(IoT)传感器。机器人位置对是源位置和目标位置,例如机器人的工具中心点框架(“TCPF”)的期望起点和终点,或者在其他实施方式中,机器人的工具中心点(“TCP”)的期望起点和终点。
[0058] 模拟数据源204、205、206包括RCS 204、VRC 205和MOP 206。这三个模块204、205、206在虚拟工业机器人在机器人位置对之间的运动期间模拟机器人运动结果数据。
[0059] 在实施方式中,虚拟机器人(未示出)被加载在可以生成训练运动数据的机器人模拟系统中。
[0060] 在实施方式中,准备来自虚拟数据或真实数据的训练数据。
[0061] 在实施方式中,通过优选地在后台以及/或者并行地运行多个机器人模拟处理来生成来自模拟数据源的运动训练数据。方便地,可以在没有图形的情况下完成所需的计算。
[0062] 每个处理可以运行从可到达源位置至可到达目标位置(下文中称为“机器人位置对”)的多个模拟,每次具有不同的机器人运动指令和参数。机器人运动指令(下文中称为“机器人指令”)的示例包括但不限于运动类型、配置、速度、加速度和区域。
[0063] 模拟的数据输入是关于机器人位置对的定位和/或机器人指令的数据。例如,在实施方式中,源位置数据可以给出为具有当前机器人指令数据的3D位置坐标,并且目标位置数据可以给出为具有其期望的机器人指令数据的3D位置坐标。在其他实施方式中,位置对定位数据可以给出为当前机器人姿势和目标机器人姿势(例如,各个关节值)。
[0064] 在每个单个模拟期间,可以优选地收集大量训练数据。
[0065] 在实施方式中,在训练数据处理模块220中处理从每个数据源201、202、203、204、205、206中的一个或更多个数据源接收的接收到的运动结果训练数据211、212、213、214、
215、216,以组织成输入训练数据和输出训练数据,用于经由机器学习(“ML”)算法基于输入训练数据和输出训练数据来训练函数。
[0066] 在示例性实施方式中,输入训练数据和输出训练数据可以如下组织:
[0067] ‑输入训练数据,x元组:机器人位置对数据(例如,定位和机器人指令),例如,具有其当前机器人指令(配置、速度)的源位置定位(X、Y、Z、RX、RY、RZ)、具有其当前机器人指令(例如,运动类型、配置、速度、加速度、区域)的目标位置(X、Y、Z、RX、RY、RZ);
[0068] ‑输出训练数据,y元组:位置对之间的机器人运动的运动结果数据(例如,扫掠体积数据、周期时间数据、能量消耗数据、机器人的关节移动数据、中间机器人位置数据和/或其他)。
[0069] 在实施方式中,当输出训练数据描述中间机器人位置(例如,六个一组的机器人姿势值的关节值的列表(jl、j2、j3、j4、j5、j6))时或者当输出训练数据描述机器人的关节移动数据时,该数据集表示在运动期间特定时间的值。在实施方式中,数据集可以优选地具有相同的时间参考值。例如,对于在时间TS处开始并且最晚在时间TT处结束的运动,时间参考可以是以固定间隔对机器人的状态的采样。在预定义采样时间的实施方式中,每个采样值的时间可以从其在y元组中的索引来推断。在可以以非预定义的时间间隔对值进行采样的其他实施方式中,采样时间值可以优选地与其他中间位置值一起包括在y元组中。
[0070] 如本文所使用的,术语“机器人位置的对”和“机器人位置对”指示定义期望的机器人输入约束的机器人源位置和机器人目标位置,机器人源位置和机器人目标位置分别指代在机器人运动期间机器人运动的开始和机器人运动的结束。
[0071] 在实施方式中,可以添加其他机器人输入约束。例如,在机器人的圆周运动的情况下,需要起始点与目标点之间的第三位置(通常称为圆点(circular point))来定义机器人输入约束。因此,在圆周运动的情况下,x元组描述机器人位置三元组、位置对和作为圆位置的第三位置。
[0072] 出于ML训练的目的,被表示为M的列数应该优选地对于所有位置是相同的。对于描述中间机器人位置的y元组,然而,可能存在这样的情况:由于从给定的源位置到达给定的目标位置所必需的机器人姿势的数量不同,因此中间姿势的列表具有被表示为N0、N1、Ni
[0073] 在实施方式中,输入ML训练模块230的处理数据221可以优选地是数字数据格式。在运动参数是非数字数据格式例如字符串格式或其他非数字格式的实施方式中,生成“配置的散列”以包含数字配置索引与配置字符串,使得可以使用数字数据形式。在其他实施方式中,将针对具有“0”值或“1”值的每个配置添加新列,使得对于每行仅存在一个单个的“1”值,并且然后所有其他值均为“0”。
[0074] 下面示出的是机器人配置字符串和相应索引的映射的简化示例:
[0075] J5+J6‑OH‑ 1J5‑J6+OH‑ 2
J5‑J6+OH+ 3
J5+J6‑OH+ 4
[0076] 表1:配置的散列的示例。
[0077] 在实施方式中,当遇到映射中不存在的新配置时,将该新配置方便地插入具有新索引的表中。
[0078] 在实施方式中,如果特定机器人不能从期望源位置到达期望目标位置,则复制源位置的机器人姿势直到达到期望的M列。
[0079] 详细描述经处理的数据221,其用于利用机器学习(ML)算法优选地利用选自监督学习算法的组的机器学习算法来训练函数。学习函数fML使得其可以最好地将x变量元组映射至y变量元组中。
[0080] 所使用的ML算法的目标是很好地近似映射函数,使得对于给定的输入数据(x元组),可以针对该给定的输入数据预测输出变量(y元组)。
[0081] 经训练的函数数据231用于生成预测模块240,以用于预测特定机器人的运动结果数据。
[0082] 运动结果数据预测模块240用于预测该特定机器人的运动结果数据,使得当接收x变量元组值形式的机器人位置对250作为输入时,该运动结果数据预测模块240提供描述在所输入的机器人位置对250之间移动的特定机器人的运动结果数据的y变量元组值作为结果输出260。
[0083] 在实施方式中,运动结果数据预测模块240可以用作独立模块,例如,用于机器人规划和验证的云服务。在其他实施方式中,运动预测模块可以由虚拟模拟系统用作独立模块。在其他实施方式中,运动预测模块240可以嵌入在虚拟模拟系统内。在“混合配置”形式的其他实施方式中,预测模块240可以——独立地或嵌入地——与一个或更多个运动规划模块结合用作例如通用运动规划器、RCS模块以及其他的预测模块。
[0084] 在实施方式中,为了增加训练数据集的量,可以使用除了原始主源位置之外的源位置,如图3的实施方式中所例示的。可以沿着运动轨迹——来自物理机器人或虚拟机器人——捕获中间机器人位置中的至少之一作为用于训练目的的期望位置对之一。
[0085] 可以根据单个虚拟机器人的运动或单个被跟踪的物理机器人的运动生成多个训练数据集。对于相同的原始目标位置,可以通过使用不同的中间位置作为起始位置来生成不同的训练数据集。在实施方式中,对于所有这些集,目标位置是所跟踪的移动的原始目标。对于每个生成的集,起始位置的输入数据被包括在输入训练数据——元组x中。
[0086] 在实施方式中,生成转换格式化表。转换格式化表将接收到的训练数据的原始格式映射为适合机器学习(例如,用于训练和/或使用目的)的x元组、y元组的数字格式。
[0087] 图3是示意性地示出根据所公开的实施方式的如何增加训练数据的图表。
[0088] 示出了包括原始主源位置301和原始主目标位置302的原始主机器人位置对301、302。在主位置对之间,沿着机器人的TCPF(未示出)的运动轨迹收集多个中间机器人位置
303、304、305。对于任何源位置(第一或中间)和目标位置(原始运动目标)的对,数据被收集为机器人姿势与增量时间的列表,该列表优选地包括相应的机器人运动参数。
[0089] 在图3中,机器人位置301、302、303、304、305是三个有向图310、311、312的节点,每个有向图表示从源节点至目标节点的机器人运动。原始主图310从主源节点301前往主目标节点302。通过添加相应边311、312而获得的另外两个生成的有向图311、312从中间节点303、304前往结束节点302。在实施方式中,可以生成其他图。
[0090] 因此,如图3中所示,可以通过沿着机器人的TCPF轨迹在位置对之间添加中间位置来有利地增加训练数据集的量。
[0091] 图4是示意性地示出根据所公开的实施方式的多个机器人运动结果预测模块的框图。
[0092] 在实施方式中,机器人应用401利用多个ML运动结果预测模块412、422来模拟一个或更多个特定机器人供应商的一个或更多个特定机器人的运动结果行为。
[0093] 在图4的示例性实施方式中,第一机器人410可以是特定模型的ABB机器人,并且第二机器人420可以是特定模型的KUKA机器人。
[0094] 虚拟模拟系统通过将关于给定的机器人位置对411、412的数据输入至对应的特定ML运动预测模块412、422中,并且通过接收在特定机器人在输入的机器人位置对411、421之间的运动期间特定机器人的ML预测运动结果413、423,来预测特定机器人410、420的运动结果行为。
[0095] 示例实施方式算法:运动结果数据是扫掠体积数据以下描述的示例实施方式算法是指其中机器人运动结果数据是特定机器人的扫掠体积数据的实施方式。本领域技术人员可以容易地将该特定示例实施方式的教导应用于具有其他机器人运动结果数据的其他实施方式,这些其他机器人运动结果数据例如是周期时间数据、能量消耗数据、机器人的关节移动数据、中间机器人位置数据以及其他机器人运动结果数据。
[0096] 图5是示意性地示出根据所公开的实施方式的机器人的扫掠体积的图。由机器人501利用其附接工具在机器人从源位置502至最终目标位置503的运动期间生成机器人扫掠体积500。
[0097] 图6是示意性地示出根据所公开的实施方式的表示机器人(未示出)周围的3D空间的点云的图。在此利用球形子体积示出的每个点610是机器人周围的3D空间的体积600的单元。在其他实施方式表示中,体积单元610可以利用点、利用立方体形子体积或者利用其它类型的形状子体积来表示。
[0098] 图7是示意性地示出表示机器人在机器人周围的3D空间中的扫掠体积的突出显示的点的图。突出显示的点710的集合表示机器人(未示出)的扫掠体积。
[0099] 示例性算法实施方式包括以下步骤。
[0100] 1)准备训练数据:
[0101] 1.a)利用点云600映射机器人的包络;
[0102] 1.b)对于每个机器人任务,模拟从源机器人位置(具有机器人指令的当前值)前进至目标机器人位置(具有机器人指令的期望值)的单个机器人运动;
[0103] 1.c)在机器人的运动期间,标记机器人接触的每个点;所有标记的点710表示机器人的扫掠体积;
[0104] 1.d)可选点:在机器人没有工具的情况下,收集机器人工具框架轨迹列表(例如,位置和取向数据集)。
[0105] 2)准备用于机器学习的x元组和y元组的数据处理:
[0106] 2.a)可选地:通过使用所计算的中间位置作为源位置来增加训练数据集;
[0107] 2.b)在每个x元组中插入数据:
[0108] ‑源位置数据(具有其机器人指令数据)和目标位置数据(具有其运动指令数据);
[0109] 2.c)在每个y元组中插入数据:
[0110] ‑所有标记的点,例如由其(X、Y、Z)坐标或由其点索引表示;
[0111] ‑可选地:机器人工具框架列表,例如由其位置和取向坐标(X、Y、Z、RX、RY、RZ)表示。
[0112] 3)提供经训练的ML模块:
[0113] ‑利用监督算法训练ML函数,并将所得到的ML训练函数作为经训练的ML模块公开。
[0114] 4)通过使用ML训练的模块来检测冲突:
[0115] 4.a)对于每个碰撞检测请求,向ML训练的模块应用具有关于位置对和机器人指令的数据的x元组,并且获得具有关于机器人的扫描体积点的数据的对应y元组作为结果;
[0116] 4.b)可选地,在安装了工具(例如,枪或甚至夹持部件的夹持器)的情况下,将其在第一工具框架(来自y元组)处重新分配,并使其沿列表的其他工具框架数据跳跃以获得具有已安装工具的机器人的扫掠体积;
[0117] 4.c)检查机器人扫掠体积与任何可能的障碍物之间可能的碰撞的存在;
[0118] 4.d)在检测到碰撞的情况下,示出碰撞点和关键机器人位置对。
[0119] 有利地,通过应用ML训练的模块,可以在无需运行机器人的模拟的情况下计算机器人的扫掠体积。
[0120] 在实施方式中,为了支持不同的机器人TCPF,x元组还可以包括机器人工具框架与x元组中的当前TCPF之间的差异信息。
[0121] 在实施方式中,为了支持不同的机器人基定位,可以像在常规下载的机器人程序中那样相对于机器人基定位给出关于x元组中的位置对的数据。
[0122] 在实施方式中,可以通过仅标记包裹机器人的扫掠体积的外部的点并且通过忽略扫掠体积内部的点方便地减少用于训练ML模块的所使用的点的数量。
[0123] 实施方式包括预测在给定的机器人位置对之间移动的机器人的运动结果数据,包括:接收多个机器人位置对数据作为输入训练数据;接收多个运动结果数据作为输出训练数据,其中,多个运动结果数据与多个机器人位置对数据相关;通过机器学习算法基于输入训练数据和输出训练数据来训练函数;提供经训练的函数作为运动结果预测模块,该运动结果预测模块用于预测在对应的机器人位置对之间移动的机器人的运动结果数据作为输出数据;通过将运动结果预测模块应用于作为输入数据的给定的机器人位置对来预测运动结果数据。
[0124] 实施方式包括用于预测在给定的机器人位置对之间移动的机器人的运动结果数据的方法,包括:接收针对多个机器人位置对的机器人的运动轨迹的训练数据;处理训练数据,以获得用于机器学习目的的x元组和y元组;其中,x元组描述机器人位置对,并且y元组描述机器人在位置对之间的运动期间的特定时间戳处的一个或更多个中间机器人位置;根据经处理的数据学习将x元组映射到y元组的函数,以生成用于机器人的运动预测模块;对于给定的机器人位置对,通过得到由运动预测模块产生的相应中间位置来预测给定对之间的机器人运动结果数据。
[0125] 图8示出了根据所公开的实施方式的用于预测在给定的机器人位置对之间移动的特定机器人的机器人运动结果的方法的流程图800。这样的方法可以例如通过上面所描述的图1的系统100来执行,但是下面的处理中的“系统”可以是被配置成执行如所描述的处理的任何装置。
[0126] 在动作805处,接收关于给定的机器人位置对的数据作为输入数据。
[0127] 在动作810处,将通过机器学习算法训练的函数应用于输入数据,其中,生成相关的机器人运动结果数据作为输出数据。
[0128] 在动作815处,提供机器人运动结果数据作为输出数据。
[0129] 在实施方式中,运动结果数据选自由下述各项构成的组:能量消耗数据;周期时间数据;机器人扫掠体积数据;关节移动数据;中间机器人位置数据;其他类型的运动结果数据;以及包括以上数据的任何组合的任何数据集。
[0130] 在实施方式中,生成转换格式化表,用于将接收到的输入数据的原始格式映射为适合将经训练的函数应用于输入数据的数字格式。
[0131] 在实施方式中,x元组包括选自由下述各项构成的组的一条或更多条信息:关于机器人位置对的定位的信息;关于机器人位置对处的机器人指令的信息;以及/或者关于机器人工具尖端点与机器人工具框架点之间的差异定位的信息。在实施方式中,将关于x元组的机器人位置对的定位的信息给出为相对于机器人的给定的参考框架。在实施方式中,y元组包括关于一个或更多个中间位置的定位的信息以及/或者关于一个或更多个中间机器人位置的机器人指令的信息。
[0132] 在实施方式中,描述位置对的x元组至少包括关于位置对的定位的信息(例如位置对的姿势、定位和/或方向),并且可选地,x元组可以附加地包括关于位置对处的机器人运动的信息(例如位置对处的速度、加速度、张、状态和/或其他机器人运动相关的信息/指令)。
[0133] 在实施方式中,x元组包括描述特定机器人的期望运动规划所需的最少信息。
[0134] 在实施方式中,可以方便地将位置对以及/或者中间位置的定位信息给出为相对于特定机器人的给定的参考框架。优选地,特定机器人的给定的参考框架可以是机器人基框架,因为通常的情况是使用下载的机器人程序。有利地,以这种方式,特定机器人的不同基定位可以由ML预测模块灵活地支持。
[0135] 在实施方式中,描述位置对的x元组包括机器人工具相关信息。例如,机器人工具相关信息可以包括机器人的工具类型和/或工具差异定位信息。差异工具定位信息可以优选地是机器人的工具框架与机器人的TCPF框架之间的差值。有利地,以这种方式,不同类型的机器人工具/TCPF可以由ML预测模块灵活地支持,并且然后考虑相关的运动学影响。有利地,在不同的位置对中使用不同的机器人工具的实施方式可以由ML预测模块灵活地支持,例如,对于一个位置对使用机器人工具A,并且对于另一位置对使用机器人工具B。
[0136] 在实施方式中,描述位置定位的信息可以独立于机器人类型以描述机器人的尖端定位的空间坐标的形式给出,或者该信息可以给出为机器人姿势(例如,经由机器人的关节值)。在其他实施方式中,位置定位信息可以以可以是或可以不是机器人特定的其他格式给出。
[0137] 当然,本领域技术人员将认识到,除非由操作的序列明确地指示或要求,否则上面所描述的处理中的某些步骤可以省略、同时或顺序执行、或者以不同的顺序执行。
[0138] 本领域技术人员将认识到,为了简单和清楚起见,本文未示出或描述适用于本公开内容的所有数据处理系统的完整结构和操作。替代地,仅示出和描述了对于本公开内容而言是唯一的或者理解本公开内容所必需的数据处理系统。数据处理系统100的其余构造和操作可以符合本领域中已知的各种当前实现方式和实践中的任何一个。
[0139] 重要的是注意到,尽管公开内容包括在完全功能系统的上下文中的描述,但是本领域技术人员将理解,本公开内容的至少部分能够以包含在各种形式中的任何形式的机器可用、计算机可用或计算机可读介质中的指令的形式来分发,并且本公开内容同等地适用,而不管用于实际执行分发的指令或信号承载介质或存储介质的特定类型如何。机器可用/可读介质或计算机可用/可读介质的示例包括:非易失性硬编码类型介质例如只读存储器(ROM)或电可擦除可编程只读存储器(EEPROM),以及用户可记录类型介质例如软盘、硬盘驱动器和致密盘只读存储器(CD‑ROM)或数字通用盘(DVD)。
[0140] 尽管已经详细描述了本公开内容的示例性实施方式,但是本领域技术人员将理解,在以其最广泛的形式不脱离本公开内容的精神和范围的情况下,可以进行本文所公开的各种改变、替换、变化和改进。
[0141] 本申请中的描述均不应被解读为暗示任何特定元素、步骤或功能是必须包括在权利要求范围内的必要元素:专利的主题的范围仅由允许的权利要求限定。
QQ群二维码
意见反馈