用于限定协作表演节目的多个机器人的运动的系统和方法

文档序号:10556534阅读:222来源:国知局
用于限定协作表演节目的多个机器人的运动的系统和方法
【专利摘要】一种用于基于由动画软件限定的机器人的运动的描述来限定协作表演节目的多个真实机器人的运动的系统。系统包括:至少一个存储器(3,5),用于存储描述在节目期间的机器人的运动的多个分段,各分段包括限定时间段期间的机器人中的一个机器人的运动的描述,并且用于存储多个场景,各场景指定将由机器人同时执行的多个分段;和播放列表处理器(6),被配置成处理包括场景的序列的播放列表的创建并且根据用户命令修改播放列表;和用户接口(8),被配置成将播放列表显示给用户、允许用户通过修改场景的序列来编辑播放列表并且接收用户命令。
【专利说明】
用于限定协作表演节目的多个机器人的运动的系统和方法
技术领域
[0001] 本发明设及用于限定协作表演节目的多个真实机器人的运动的系统和方法。
【背景技术】
[0002] 机器人最常用在工业中W执行重复性工作任务。在该情况中,重要的是正确且可 靠地完成任务。观看机器人执行任务多么令人愉快是不重要的。
[0003] 现有的做法是对于人类程序员来说针对各任务给机器人编程。与任务有关的重要 的机器人位置可W通过将机器人直接定位并存储位置来限定。程序员接着写入引用所存储 的位置并指令机器人W执行期望的任务的代码。
[0004] 然而,近年来流行使用机器人来移动诸如视频显示器、视频投影仪或楼梯 (staircase)等的娱乐元素,用于使人娱乐的目的。例如,节目中大量机器人在舞台上与人 一起表演。运可能是人与机器人在舞台上的音乐节目,或者是机器人使显示面板移动的贸 易展览。它也可W应用于机器人处理显示器或具有人的扫描设备的设计师商店(designer stores)和领域。运样的系统的挑战是如何建立机器人程序并且使机器人运动同步至节目 的播放列表W及在舞台上的动作或两者。
[0005] US8356704公开了一种诸如视频显示器、视频投影仪或楼梯等的机器人控制的娱 乐元素。机器人使娱乐元素在=个维度上移动。
[0006] 给用于使观众娱乐的目的的机器人编程与给工业中的机器人编程在许多方面有 质的不同。机器人典型地具有设计用于视觉吸引力(visual appeal)的特定移动序列的明 确限定的集合。对于在机器人的部件上做出的智能决定没有要求并且焦点完全在外观上。 使用传统的编程方法给机器人编程W做出自然、"生机的"观看移动在最好的情况下非常困 难且耗时;在最坏的情况下,几乎不可能。
[0007] 因为程序中的决策的缺失和在视觉吸引力上的焦点,所W针对娱乐表演的机器人 运动的编程具有与计算机动画比与传统机器人编程更多的共同点。于是理想的解决方案是 W与计算机动画器限定机器人表演的动画确切相同的方式来限定机器人表演。
[000引使用现有的3D计算机动画软件和现有的计算机动画才能创建机器人动画序列是 已知的。计算机动画器使用计算机动画软件在真实机器人的物理限制内制作真实机器人的 模型的动画。接着W使得真实机器人的运动与动画的机器人的运动确切匹配的方式由动画 创建出机器人程序。
[0009]今天,节目设计者使用诸如MAYA等的外部3D动画工具来设计出节目或贸易展览中 的与人类运动一起的机器人运动和可能的音乐同步。节目设计者在远离节目将表演所在的 地点的工作室并使用机器人的软件模型事先设计出机器人运动。当节目将由真实机器人在 真实舞台上、与在节目中演出的真实人来表演时,经常会发生机器人的运动需要被改变W 便与真实环境和机器人动画序列的创建期间没有预见到的其他情况配合。因此,存在有在 动画和机器人程序代码已经创建了之后编辑机器人的运动的需要。特别地,存在有例如在 节目的排练期间与真实机器人一起现场编辑机器人运动的需要。例如,存在有改变机器人 运动的序列的需要。然而,机器人的运动在机器人动画序列的创建期间在时间上是同步的。 因此,当改变机器人运动的序列时,存在有机器人之间冲突的风险。

【发明内容】

[0010] 本发明的目的是提供关于在上面提到编辑由计算机动画软件限定的机器人运动 的序列的问题的解决方案。
[0011] 根据发明的一个方面,该目的通过如权利要求1所限定的系统来实现。
[0012] 系统包括:至少一个存储器,用于存储描述在节目期间的机器人的运动的多个分 段(segment),各分段包括限定时间段期间的机器人中的一个机器人的运动的描述,并且用 于存储多个场景,各场景指定将由机器人同时执行的多个分段;和播放列表处理器 化andler),被配置成处理包括场景的序列的播放列表的创建并且根据用户命令修改播放 列表;和用户接口,被配置成将播放列表显示给用户、允许用户通过修改场景的序列来编辑 播放列表并且接收用户命令。
[0013] 将在节目期间执行的针对机器人限定的运动被分成多个场景。针对各机器人的运 动被分成多个相继的分段。各分段限定了将在限定时间段期间由某一机器人执行的运动。 限定时间段仅指定将执行的运动的持续时间,并且没有指定分段将在节目期间在何时执 行。对于各场景有包括将由机器人同时执行的运动的多个相应的分段。将同时执行的分段 的数量与机器人的数量相同。相应地,各场景中的分段的数量等于将编程的机器人的数量。 各场景包括关于哪个分段属于场景的信息。
[0014] 根据发明的实施例,系统获得多个场景,各场景包括将由机器人同时执行的多个 分段。场景包括包含将由机器人同时执行的运动的所有分段。播放列表处理器被配置成处 理包括限定了节目期间的机器人运动的序列的场景的序列的播放列表的创建。系统包括被 配置成将播放列表显示给用户、允许用户通过修改场景的序列来编辑播放列表并接收有关 修改的用户命令的用户接口。播放列表处理器被配置成基于用户命令修改播放列表并相应 地修改场景的序列。因此,对于用户来说能够改变场景的序列、即能够移动、添加和/或删除 整个场景。由于当机器人动画序列被创建时场景内的机器人运动彼此协调并且针对冲突进 行了检查,所W用户可W编辑场景的序列而没有归因于修改在机器人之间有冲突的风险。 本发明允许用户在机器人程序被分配给各自的机器人控制器之前修改由计算机动画软件 限定的机器人运动的序列。
[0015] 根据发明的实施例,系统包括用于存储描述节目期间机器人的运动的多个分段的 分段存储器,各分段包括机器人中的一个机器人的运动的描述。
[0016] 根据发明的实施例,系统包括用于存储场景的场景存储器,和被配置成基于存储 的分段创建多个场景并将场景存储器在存储中的场景处理器。
[0017] 根据发明的实施例,播放列表处理器被配置成接收有关场景的序列的一部分中的 修改的用户命令、基于播放列表的修改部分中的场景中所包括的分段的机器人的运动的描 述查验修改并且基于查验的结果允许或拒绝修改。一个场景中的机器人的位置对机器人可 W在下一场景中被移动至哪个位置施加限制。该实施例查验、即执行检查机器人运动的所 建议的修改是否能够执行,即对于机器人来说是否能够执行运动的新序列。如果所建议的 修改不能执行,则修改被拒绝。该实施例防止用户W使得机器人不能执行运动的方式修改 运动的序列。
[0018] 根据发明的实施例,机器人的运动的描述包括机器人的位置,并且播放列表处理 器被配置成将播放列表的修改部分中的相邻场景的属于相同机器人的位置进行比较并且 基于比较的结果查验修改。位置可W例如被描述为笛卡尔位置或节点值(joint)。
[0019] 根据发明的实施例,各分段包括针对机器人的开始位置和结束位置,并且播放列 表处理器被配置成通过将播放列表的修改部分中的相邻场景的属于相同机器人的分段的 开始位置与结束位置进行比较来查验修改,并且如果邻接场景的分段中的任一个的开始位 置与结束位置之间的差异超过限制值则拒绝修改。如果场景的一个分段的结束位置与下一 场景的属于相同机器人的分段的开始位置之间的差异超过限制值则修改不被允许。
[0020] 通过该实施例,防止用户修改运动的序列致使机器人不能执行运动。
[0021] 例如,描述包括针对机器人的轴线的多个节点值,并且播放列表处理器被配置成 将播放列表的修改部分中的相邻场景的属于相同机器人的阶段的针对轴线的节点值进行 比较。
[0022] 根据发明的实施例,分段中的每一个包括关于分段属于哪个场景的信息,并且场 景处理器被配置成基于此将分段分组成多个场景。各分段设置有关于它属于哪个场景的信 息的事实有助于场景处理器创建场景。
[0023] 根据发明的实施例,分段中的每一个包括包含关于分段属于哪个机器人的信息的 机器人标识标签,并且播放列表处理器被配置成基于机器人标识标签来确定分段属于哪个 机器人。该信息例如用于机器人运动的修改的查验、用于创建针对各机器人的主程序和用 于将主程序分配至正确的机器人。
[0024] 根据发明的实施例,播放列表处理器和用户接口被配置成允许用户编辑播放列表 中的场景的分段。所选择的场景的分段可W被编辑。例如,新的分段可W被添加、来自库的 现有分段可W被添加、分段可W从播放列表中去除并且分段的顺序可W被改变。
[0025] 然而,当分段被改变时,存在有可能会发生机器人之间的冲突的风险。根据发明的 实施例,播放列表处理器被配置成基于播放列表、存储的场景和分段来模拟机器人的运动, 并且基于模拟来查验播放列表。该实施例查验由播放列表限定的机器人运动的序列W避免 归因于分段上的改变的冲突和错误。
[0026] 根据发明的实施例,各分段进一步包括用于执行限定时间段期间的机器人的运动 的程序代码,并且系统进一步包括被配置成基于播放列表、存储的场景和存储的分段的机 器人代码生成针对机器人中的每一个的主程序的程序发生器。该实施例使得能够实现基于 由计算机动画软件限定的机器人运动的序列和由用户创建的播放列表来执行单独移动的 针对每一个机器人的机器人程序的自动生成。
[0027] 根据发明的实施例,各分段包括包含机器人代码并具有将由主程序调用的子程序 名称的子程序,并且程序发生器被配置成基于播放列表生成包括调用子程序的调用的序列 的针对机器人中的每一个的主程序。主程序不包括用于执行移动的任何机器人代码。因此 包括用于执行移动的机器人代码的分段可W被加载至与主程序分离的机器人控制器。将机 器人代码加载至机器人控制器往往是耗时的。在该实施例中,机器人代码仅必须被加载至 机器人控制器一次。归因于机器人程序包括调用包含机器人代码的子程序的调用的序列, 将机器人程序加载至机器人控制器是容易且快速的。如果机器人运动的序列必须稍后被修 改,则修改主程序中的子程序调用的序列是容易的,并且将新的主程序加载至机器人控制 器是快速的。机器人代码不是必须被修改。该实施例简化了在机器人代码已被加载至机器 人控制器之后对机器人程序的修改。
[00%]根据发明的实施例,系统适于将主程序和分段自动地及分配至机器人中的每一 个,使得各机器人接收相关联的主程序和属于机器人的分段。场景的序列的编辑和针对机 器人的主程序的生成优选地在与机器人控制器分离的计算机中离线进行。该实施例使得能 够实现主程序和包括程序代码的分段的至机器人中的每一个的自动分配。
[0029] 根据发明的另一方面,该目的通过如权利要求12所限定的一种用于基于如由动画 软件限定的在节目期间机器人的运动的描述来限定协作表演节目的多个真实机器人的运 动的方法来实现。
[0030] 方法包括:
[0031] -获得描述由动画软件限定的机器人的运动的多个分段,各分段包括在限定时间 段期间机器人中的一个的运动的描述,
[0032] -存储分段,
[0033] -获得多个场景,各场景包括将由机器人同时执行的多个分段,
[0034] -存储关于场景的信息,
[0035] -创建包括场景的序列的播放列表,
[0036] -将播放列表显示给用户并允许用户通过修改场景的序列来编辑播放列表,
[0037] -接收有关修改的用户命令,
[0038] -基于用户命令修改播放列表,和
[0039] -存储修改后的播放列表。
[0040] 多个分段可W通过从包括机器人动画器的运动产生模块接收或获取分段而获得。 多个场景可W通过从运动产生模块接收或获取场景或者通过基于存储的分段创建场景而 获得。
[0041 ]根据发明的实施例,方法包括:
[0042] -接收有关场景的序列的一部分中的修改的用户命令,
[0043] -基于播放列表的修改部分中的场景中所包括的分段的机器人的运动的描述来查 验修改,并且基于查验的结果允许或拒绝修改,并且如果修改被允许则修改播放列表。
[0044] 根据发明的实施例,机器人的运动的描述包括机器人的多个位置,并且方法包括 将播放列表的修改部分中的相邻场景的属于相同机器人的位置中的至少一些进行比较并 且基于比较的结果查验修改。
[0045] 根据发明的实施例,各分段包括针对机器人的开始位置和结束位置,并且方法包 括将播放列表的修改部分中的相邻场景的属于相同机器人的分段的开始位置与结束位置 进行比较,并且如果邻接场景的分段中的任一个的开始与结束位置之间的差异超过限制值 则拒绝修改。
[0046] 根据发明的实施例,方法包括接收多个分段、存储分段、基于存储的分段创建多个 场景并存储场景。
[0047] 根据发明的实施例,分段中的每一个包括关于分段属于哪个场景的信息,并且基 于关于分段属于哪个场景的信息创建多个场景。
[0048] 根据发明的实施例,分段中的每一个包括包含关于分段属于哪个机器人的信息的 机器人标识标签,并且方法包括基于机器人标识标签来确定分段属于哪个机器人。
[0049] 根据发明的实施例,方法进一步包括基于播放列表、存储的场景和存储的分段模 拟机器人的运动,并且基于模拟来查验播放列表。
[0050] 根据发明的实施例,各分段进一步包括用于执行限定时间段期间的机器人的运动 的程序代码,并且方法进一步包括基于播放列表、存储的场景和存储的分段的机器人代码 生成针对机器人中的每一个的主程序。
[0051] 根据发明的实施例,各分段包括包含机器人代码和用于调用分段的机器人代码的 子程序名称的子程序,并且方法包括基于播放列表生成包括调用子程序的调用的序列的针 对机器人中的每一个的主程序。
[0052] 根据发明的实施例,方法包括将主程序和分段自动地分配至机器人中的每一个使 得各机器人接收相关联的主程序和属于机器人的分段。
【附图说明】
[0053] 现在将通过发明的不同实施例的描述并参照附图更严密地说明发明。
[0054] 图1示出根据发明的实施例的用于编辑和查验协作表演节目的多个机器人的运动 的系统的框图。
[0055] 图2示出用于存储播放列表、场景和分段的结构的示例。
[0056] 图3示出根据发明的实施例的用于生成针对协作表演节目的多个机器人的主程序 的系统的框图。
[0057] 图4示出协作表演节目的多个显示处理器器人。
[0058] 图5示出根据发明的实施例的用于编辑和查验协作表演节目的多个机器人的运动 的方法的流程图。
[0059] 图6示出根据发明的实施例的用于生成针对协作表演节目的多个机器人的主程序 的方法的流程图。
【具体实施方式】
[0060] 图1示出根据发明的用于编辑和查验协作表演节目的多个机器人的运动的系统的 示例的框图。
[0061] 通过运动产生模块1预限定机器人的运动,运动产生模块1包括机器人动画模块2a 和适于基于由机器人动画模块2a限定的机器人的运动的描述来产生分段的分段产生器模 块化。机器人动画模块2a和分段产生器模块化不是本发明的系统的一部分。
[0062] 机器人动画模块2a包括用于基于一个或多个机器人模型制作机器人的动画的动 画软件。分段产生器模块化是适于分析机器人模型的动画并自动生成指令真实机器人再现 动画的机器人的运动的机器人程序代码的计算机程序。分段产生器模块化和机器人动画模 块2a在计算机上运行。计算机程序通过提供使动画的机器人模型的转动分量与真实机器人 上的轴线相关联的装置和从完成的动画生成机器人程序代码的装置来实现此。一旦转动分 量与真实机器人上的轴线相关联并制作出机器人模型的动画,程序就通过在分析与合成两 个阶段上的工作而生成机器人程序代码。分析阶段确定在动画中的机器人的运动。合成阶 段接着使用产生于分析阶段的信息来生成指令真实机器人W相同方式移动的机器人程序 代码。
[0063] 在分析阶段中,计算机程序分析与真实机器人上的轴线的转动有关的机器人动画 模型的转动分量。它分析贯穿动画的周期的运些转动并确定针对各轴线的路径。它通过检 测转动值上的线性改变并定位转动运动改变所在的关键位置来确定该路径。它接着将针对 单独轴线的运动路径组合成针对整个机器人的关键位置的集合。各位置包括针对各轴线的 转动值和针对位置的时间值。关键位置的该集合完整地且清楚地描述如由动画软件限定的 呈可用于随后生成用W指令真实机器人W相同方式移动的程序的形式的机器人的运动。
[0064] 在合成阶段中,计算机程序逐步经过(St邱through)由分析阶段确定的关键位置 的集合,并且W机器人的编程语言生成指令。所得到的程序代码指令机器人在正确的时间 到达各正确的位置。运通过生成在机器人到达前一位置时将执行的各移动指令并计算出针 对移动指令使机器人完成移动并在与关键位置相关联的确切时间到达该位置所要求的确 切速度来实现。结果是机器人的经过关键位置的移动与动画的机器人的移动确切地匹配。 可替代地,针对各移动的时间被保存用于在可W不仅W指定速度而且W指定时间在目标之 间移动的那些机器人语言中使用。
[0065] 分段产生器模块2b被配置成产生包括了针对机器人执行限定的运动所需要的所 有信息的多个分段。各分段限定了在限定时间段期间将由某一机器人执行的运动。限定时 间段仅指定将执行的运动的持续时间,例如10分钟或30秒。限定时间段未指定分段将在节 目期间何时执行。将由各机器人执行的运动的序列被分成多个相继的分段。对于各分段有 包括了将由其他机器人同时执行的运动的大量相应的分段。将同时执行的分段的数量等于 节目中表演的机器人的数量。
[0066] 各分段包括将在节目的限定时间段期间执行的机器人的运动的描述。描述包括时 间段和在时间段期间机器人的位置。例如,机器人的位置可W包括针对机器人的轴线的角 位置的序列。可替代地,机器人的位置可W包括针对机器人的笛卡尔位置的序列。各分段可 W包括针对机器人的开始位置、多个中间位置和机器人的结束位置。
[0067] 此外,各分段包括关于分段属于哪个机器人的信息。例如,各分段包括具有关于机 器人id的机器人标识标签。在该实施例中,每个机器人每个场景仅有一个分段。各分段还应 包括使得能够识别出分段属于哪个场景的信息。例如,各分段可W包括识别出分段所属场 景的场景标识标签。在发明的一个实施例中,各分段还包括机器人程序代码,机器人程序代 码包括用于执行分段的限定时间段期间的机器人的运动的指令。例如,各分段包括包含机 器人代码的子程序和用于调用子程序的唯一的名称。优选地,各分段已被分配唯一的名称。
[0068] 根据发明的系统的一个实施例包括:分段存储器3,用于存储由分段产生器模块化 产生的分段;场景处理器4,被配置成基于所存储的分段来创建多个场景;场景存储器5,用 于存储场景;播放列表处理器6,被配置成创建包括场景的序列的播放列表;播放列表存储 器7,用于存储播放列表;和用户接口 8,被配置成将播放列表显示给用户、允许用户通过修 改场景的序列来编辑播放列表和接收有关修改的用户命令。系统在计算机上适当地实施。 分段存储器3、场景存储器5和播放列表存储器7可W是计算机中传统使用的诸如RAM、R0M和 PROM等的任何类型的存储器。它们可W被实施为单独的数据存储,或者是共用存储器的一 部分。场景处理器4和播放列表处理器6可W被实施为在包括诸如中央处理单元(CPU)等的 数据处理器装置的计算机上运行的软件模块。系统可W包括单独的计算机,或者可W与分 段产生器模块化和机器人动画模块2使用相同的计算机。用户接口 8可W例如通过显示屏和 诸如键盘化ey pad)、数据鼠标或触摸屏等的任何传统用户输入装置来实施。
[0069] 场景处理器4被配置成将分段分组成多个场景。场景包括将由机器人同时执行的 所有分段。因此,各场景中的分段的数量与在节目中表演的机器人的数量相同。例如,场景 处理器4使用分段的场景标识标签来确定哪个分段属于哪个场景。针对各场景,确定哪个分 段属于该场景。场景处理器4将场景存储器到场景存储器5内。所存储的场景中的每一个包 括关于哪个分段属于该场景的信息。场景可W包括分段自身,或者至分段存储器中的分段 的链接/地址。
[0070] 在一个实施例中,场景存储器5包括代表场景的多个阵列、在下文中命名为场景阵 列。各场景阵列对应于场景并且包括指出属于该场景的在分段存储器中的分段的多个索 引。例如,场景阵列是其中第一索引是场景索引(例如场景标识标签)并且第二索引是分段 索引的二维阵列。各场景阵列中的分段索引的数量与节目中的机器人的数量相同。
[0071] 播放列表处理器6被配置成创建并存储包括场景的序列的播放列表。适当地,场景 标识标签包括关于场景的顺序的信息。例如,场景信息标签包括识别场景的顺序的编号。在 一个实施例中,播放列表处理器6从场景存储器5获取关于场景的信息并且基于场景标识标 签创建包括场景的序列的默认播放列表。关于播放列表的信息被存储在播放列表存储器7 中。在一个实施例中,播放列表是包括指出了对应于场景存储器5中的场景的场景阵列的多 个索引的阵列。在下文中,阵列被命名为播放列表阵列。
[0072] 图2示出用于存储播放列表、场景和分段的结构的示例。分段13被存储在分段存储 器3中。场景被存储在包括多个场景阵列12的场景存储器5中。场景阵列12的数量与所存储 的场景的数量相同。各场景阵列12包括指出属于该场景的在分段存储器3中的分段13的多 个索弓115。各场景阵列12中的索引15的数量与节目中的机器人的数量相同。在图2中示出的 示例中,机器人的数量是六并且相应地各场景阵列12指出分段存储器3中的六个分段。播放 列表被存储在包括至少一个播放列表阵列10的播放列表存储器7中,播放列表阵列10包括 指出对应于播放列表中的场景的场景阵列12的多个索引14。播放列表存储器可W包括对应 于不同播放列表的多个播放列表阵列。该结构是有利的,因为它简化了播放列表的修改,并 且有助于数据和程序代码的至各机器人的加载。然而,可W使用用于存储播放列表、场景和 分段的其他结构。在一个示例中,分段可W与场景一起被存储在共用存储中。
[0073] 播放列表处理器6被配置成将播放列表显示在用户接口 8上。用户接口被设计成显 示播放列表并允许用户编辑播放列表。用户被允许编辑显示在用户接口上的播放列表,例 如W改变场景的顺序、删除场景和添加新的场景至播放列表。然而,用户不被允许修改单独 分段。用户接口 8被配置成基于来自用户的有关对播放列表的修改的输入而生成并发送命 令至播放列表处理器6。播放列表处理器6被配置成从用户接口 8接收有关由用户发出的对 播放列表的修改的命令,并且基于命令修改播放列表。修改后的播放列表被显示在用户接 口 8上。适当地,播放列表处理器6被配置成存储超过一个的播放列表,并且允许用户选择所 存储的播放列表中的哪个被显示和编辑。
[0074] 然而,如果机器人被移动至一个场景中的某一位置,则存在有对机器人在下一场 景中可W执行的运动的限制。例如,如果机器人被移动至一个场景中的某一位置,则下一场 景中的运动必须接近前一场景中的最后位置开始。如果针对机器人的轴线中的任一个的角 位置在一个场景中的结束位置与在下一场景中的开始位置之间差异太多,则可能对于使机 器人从一个场景移动至下一场景是不可能的。因此,一个场景中的机器人的轴线的位置对 机器人的轴线可W在下一场景中被移动所至的位置施加限制。在发明的一个实施例中,播 放列表处理器6被配置成在修改被执行之前对修改进行查验。当接收有关播放列表中的场 景的序列的修改的命令时,播放列表处理器6被配置成:对于各机器人,将针对播放列表的 修改部分中的相邻场景的分段中所包含的位置中的至少一些进行比较,并且基于比较的结 果来查验修改。例如,播放列表处理器被配置成通过将播放列表的修改部分中的相邻场景 的属于相同机器人的分段的开始与结束位置进行比较来查验修改,并且如果邻接场景的分 段中的任一个的开始与结束位置之间的差异超过限制值则拒绝修改。例如,为通过查验,前 一分段中的最后节点值(joint value)必须等于或非常接近后继的分段中的第一节点值。
[0075] 例如,如果场景将从播放列表中去除,则播放列表处理器对于各机器人将前一场 景中的分段的结束位置与场景的新序列中的下一场景中的分段的开始位置进行比较。如果 对于机器人中的所有在邻接场景的分段的开始与结束位置之间的差异都小于限制值,则播 放列表处理器允许修改。如果对于机器人中的任一个在场景的新序列中的邻接场景的开始 与结束位置之间的差异超过限制值,则播放列表处理器拒绝修改。如果位置是针对机器人 的轴线的节点角度,则对于各机器人将前一场景中的分段的结束节点角度与下一场景中的 分段的相应的开始节点角度进行比较。
[0076] 可选地,播放列表处理器可W包括被配置成基于播放列表、所存储的场景和分段 模拟机器人的运动的模拟单元,并且播放列表处理器被配置成基于模拟来查验播放列表。 当用户已完成编辑播放列表时,播放列表处理器作为最终步骤W播放列表所确定的顺序来 模拟场景并进行检查使得在机器人之间没有冲突。如果播放列表处理器检测到机器人中的 任何机器人之间的冲突,则显示警告给用户。
[0077] 当用户已完成编辑播放列表、播放列表已经过查验并且未发现冲突时,将生成针 对机器人的机器人程序。
[0078] 图3示出根据发明的实施例的用于生成针对协作表演节目的多个机器人的主程序 的系统的框图。在该实施例中,各分段包括用于执行限定时间段期间的机器人的限定运动 的程序代码。各分段的机器人代码包括具有将从主程序调用的名称的子程序。子程序包括 用于指令机器人执行针对分段限定的运动、即由动画软件限定的运动的程序指令。系统包 括被配置成基于播放列表、所存储的场景和分段生成针对机器人中的每一个的主程序的程 序生成器20。在该实施例中,各机器人具有包括用于执行针对机器人的主程序的硬件和软 件的机器人控制器22。机器人控制器在图3中被表示为RCl至R化。用户接口被布置成允许用 户命令基于所选择的播放列表生成主程序并命令主程序加载至各自的机器人控制器。
[0079] 程序生成器20被配置成生成针对机器人中的每一个的主程序。各主程序包括将在 主程序的执行期间调用的子程序的名称的序列。子程序的名称的序列由播放列表中的场景 的序列确定。例如,针对机器人的主程序的生成通过在针对播放列表中的各场景的对应于 机器人的分段中获取子程序的名称来执行。程序生成器20还被配置成生成包括属于机器人 的所有分段的针对各机器人的分段文件或者至少来自分段的信息。分段文件包括机器人的 位置和程序代码。系统适于将主程序和包括分段的分段文件自动分配至各自的机器人控制 器,使得各机器人接收主程序和属于机器人的分段。该实施例进一步有助于播放列表的修 改。分段文件的加载归因于文件的大尺寸而是耗时的。在该实施例中,分段文件的加载仅必 须进行一次。如果用户修改播放列表,仅主程序必须被重新加载至机器人控制器和可选的 新添加的分段。
[0080] 在播放列表被送交至机器人之前,可W做出兼容性检查。如果播放列表不兼容,贝U 下载停止。该功能进行分段是否彼此兼容兼容性检查,例如前一分段中的最后节点值等于 后继的分段中的第一节点值。如果播放列表不兼容,则可W弹出W下消息框:"播放列表中 的分段不兼容"。如果分段是兼容的,则示出W下对话"播放列表兼容"。
[0081] 图4示出保持着显示器32并协作表演节目的显示器处理器器人30的示例。
[0082] 在下文中,将更详细地描述根据发明的系统和方法的示例。系统的基本想法是创 建将要被发送至机器人控制器的场景的播放列表。各场景含有分段。分段源自Maya中的 ' RobotAnimator '加载宏。该加载宏生成被写在机器人代码中的模块,例如RAPID模块,其含 有针对特定分段的移动。移动被离散成具有时间因子的绝对节点移动,因为各分段移动应 该在特定时间中执行。运些是播放列表处理器的基础:
[0083] -个'播放列表'被下载至控制器
[0084] '播放列表'含有语N个'场景'
[0085] '场景'含有1至M个'分段',M是机器人的数量。
[0086] '分段'含有:
[0087] -到盘上的RAPID模块的绝对路径,
[0088] -RAPID子程序调用的名称(将在控制器中执行的子程序),和
[0089] -分段时间,即分段中含有的运动的持续时间。
[0090] 每个机器人每个场景仅有一个分段。
[0091] 通过点击用户接口中的按钮,示出了能够在其中编辑播放列表、场景和分段的对 话。用户可W创建新的播放列表和更改现有的播放列表。通过选择'播放列表',示出包含的 场景。通过选择'场景',示出场景的分段。播放列表信息被存储在位于与Playlist handler .exe (播放列表处理器)相同文件夹中的化ndlerl化rara巧.xml (播放列表处理器 库)中。场景可W在数个播放列表中使用。分段可W在数个场景中使用。用户可W添加和去 除播放列表。播放列表的场景可W被编辑;新的场景可W被添加、来自库的现有场景可W被 添加、场景可W被从播放列表中去除并且场景的顺序可W被改变。用户可W从已经限定的 场景的库中挑选。所选择的场景的分段可W被编辑;新的分段可W被添加、来自库的现有分 段可W被添加、分段可W被从播放列表中去除并且分段的顺序可W被改变。
[0092] 在用户关闭了'添加分段'之后,应用进行分段是否彼此兼容的兼容性检查,如果 不是则弹出W下对话框:"分段不能被添加,因为节点值在前一分段与该分段之间差异太 大'。
[0093] 库中的所有可用的播放列表被示出,并且用户选择哪个播放列表将通过选择该播 放列表被下载至机器人控制器。运会将所选择的播放列表下载至机器人控制器并覆盖现有 的一个。在下载播放列表之前,明智的是确保播放列表被模拟并且播放列表不会引起任何 冲失或错误。
[0094] 在用户已创建了播放列表并将其送交至机器人控制器之后,消息被写下至RAPID 程序模块、运里命名为'数据模块'中的RAPID变量,并且分段模块被加载到各机器人控制器 内。当操作者接着执行节目的下一场景时,主模块将穿越'数据模块'中的阵列并调用该阵 列索引中存在的子程序名称。
[00%]播放列表处理器对着播放列表存储器文件工作。该文件含有所有的播放列表、场 景和分段的描述并且被用作将在新的播放列表配置中使用的现有项目的库。当用户选择播 放列表将下载至控制器时,关于播放列表的信息被从该存储中获取出。
[0096] '数据模块'文件含有播放列表信息,该文件在当新的播放列表被送交至控制器时 由播放列表处理器更新。文件由操作者接口读取,W将正确的信息显示给操作者。
[0097] 播放列表阵列含有场景,场景阵列是其中第一索引是场景索引并且第二索引是用 于该场景的分段索引的二维阵列。还有含有用于各分段的机器人执行时间的分段时间阵 列。分段时间阵列具有与场景阵列相同的尺寸。
[0098] 当用户送交新播放列表时使用W下序列:
[0099] 1.播放列表处理器设定变量场景数量'场景数量(NumberOf Scenes) '
[0100] 2.播放列表处理器通过将"NULL"设定至各组成部分来清除播放列表阵列。接着场 景名称被添加至阵列。如果有两个场景(命名为Sl和S2),则播放列表阵列将具有W下组成 部分:r'Sl ","S2","NUli/',"NUli/',…]
[0101] 3.播放列表处理器通过将"NU化"设定至各组成部分来清除场景阵列。接着场景的 分段名称被添加至阵列。如果有两个场景(其中第一场景具有分段Segl和Seg2并且下一场 景具有分段Seg3和Seg4),则场景场景阵列将具有W下组成部分:["56肖1"/、6肖2"," NULL" /'NULL",....],[ "Seg3","Seg4","NUU/',"NUli/',....],[ ''NUL。' /'NULL",....], [''NULLVNULI;',...
[0102] 4.播放列表处理器首先将'分段时间(SegmentTimes) '中的所有组成部分设定为- 1,并接着用正确时间更新组成部分。与W上相同的其中Segl采取19s、Seg2采取5.7、Se的采 取130.73并且56旨4采取4.63的示例将造成^下阵列:[19,5.7,-1,-1,....],[130.7,4.6,- 1,-1[-1,-1[-1,-1.
[0103] 运里是W上示例的'数据模块'文件的示例: 「01041
[0105] 主模块扫描经过阵列并且执行在分段调用中的各子程序,并且运里是主模块的示 例。
[0106]
[0107] 图5示出根据发明的实施例的用于编辑
和查验协作表演节目的多个机器人的运动 的方法的流程图。应该理解的是,流程图中的各框可W由计算机程序指令实施。
[0108] 方法包括获得描述由动画软件限定的机器人的运动的多个分段,各分段包括在限 定时间段期间的机器人中的一个的运动的描述,框40。多个分段可W通过从运动产生模块1 接收或获取分段来获得。分段被存储在分段存储器中。分段包括关于分段属于哪个场景和 分段属于哪个机器人的信息。例如,分段的名称包括关于分段属于哪个场景的信息,或者各 分段包括包含关于分段属于哪个场景的信息的场景标识标签。例如,分段的名称包括关于 分段属于哪个机器人的信息,或者各分段包括包含关于分段属于哪个机器人的信息的机器 人标识标签。基于所存储的分段获得多个场景,框42。多个场景可W通过从运动产生模块接 收或获取场景或者通过借助于场景处理器4基于所存储的分段创建场景来获得。各场景包 括将由机器人同时执行的多个分段。关于场景的信息被存储在例如如之前所描述的场景存 储器中。
[0109] 获得包括场景的序列的播放列表,框44。播放列表可W由系统作为默认播放列表 创建或者由用户创建。用户可W通过选择场景并将它们添加至场景的序列来创建新的播放 列表。将播放列表显示在用户接口上,框46,并且允许用户通过修改场景的序列来编辑播放 列表,框48。用户在播放列表的编辑期间与用户接口互动,并由此生成有关对播放列表的修 改的命令。系统接收有关修改的用户命令。
[0110] 在修改播放列表之前,检查修改是否有效的,框50。修改基于播放列表的修改部分 中的场景中所包括的分段的机器人的运动的描述来查验。基于查验的结果,允许或拒绝修 改。运例如通过将前一分段中的最后位置值与播放列表的修改部分中的后继的分段中的第 一位置值进行比较来完成,并且如果最后与第一位置值相等或差异小于限制值则允许修 改,框54。如果修改有效,则播放列表基于用户命令被修改。如果最后位置值与第一位置值 差异超过限制值,则修改无效。如果发现修改无效,则修改不被允许并且相应地告知用户, 框52。查验步骤52-54是可选的。例如,如果分段被产生为使得所有分段具有相同的开始和 结束位置,则查验检查是不必要的。用户可W重复编辑播放列表直到他对播放列表满意为 止。修改后的播放列表被存储在播放列表存储器中、例如在之前描述的播放列表存储器7 中。
[0111] 当用户已完成编辑播放列表时,用户具有选择模拟如由播放列表限定的机器人的 运动的选项。可替代地,模拟不是可选的。基于播放列表、所存储的场景和分段来模拟机器 人的运动,框56。基于模拟来查验播放列表,框58。此后,可W确定机器人的运动是否没有冲 突。例如,将模拟的机器人运动显示在用户接口上并且用户可W视觉上确定机器人运动是 否没有冲突。可替代地,系统确定机器人运动是否没有冲突,并且相应地告知用户。在另一 实施例中,模拟步骤被省略。
[0112] 图6示出根据发明的实施例的用于生成针对协作表演节目的多个机器人的运动的 主程序的方法的流程图。当用户已完成播放列表的编辑并且播放列表已经过查验时,用户 可W命令系统开始针对机器人的主程序的生成。针对机器人中的每一个的主程序基于播放 列表、所存储的场景和所存储的分段而生成。各分段包括包含用于执行限定时间段期间的 机器人的运动的程序代码的子程序。各子程序具有子程序名称。获取播放列表,框60。通过 在针对播放列表中的各场景的属于机器人的分段中获取子程序的名称,针对各机器人生成 主程序,框62、64。各主程序包括调用属于机器人的分段中所包括的子程序的调用的序列, 并且调用子程序的调用的顺序由播放列表中的场景的顺序确定。针对各机器人还生成分段 文件,框66。分段包括属于机器人的分段,或者至少来自属于机器人的分段的信息。至少,分 段文件包括机器人的位置和分段的程序代码。
[0113] 当已生成主程序和分段文件时,用户可W命令主程序和分段文件的至所选择的机 器人控制器的自动分配。当从用户接收命令时,将主程序和分段文件加载至各自的机器人 控制器,框68。因此,各机器人接收相关联的主程序和来自属于机器人的分段的信息。场景 可W在没有任何操作者输入的情况下通过其他动作来开始,诸如时间、1/0,事件或其他触 发器。
[0114]本发明不限于所公开的实施例,而是可W在W下权利要求的范围内变化和更改。 例如,场景处理器4可W被包括在运动产生器模块1中。于是,运动产生器模块1将直接输出 完整场景D
【主权项】
1. 一种用于限定协作表演节目的多个真实机器人的运动的系统,其特征在于,所述系 统包括: -至少一个存储器(3,5),用于存储描述在所述节目期间的所述机器人的运动的多个分 段,各分段包括限定时间段期间的所述机器人中的一个机器人的运动的描述,并且用于存 储多个场景,各场景指定将由机器人同时执行的多个分段,和 -播放列表处理器(6),被配置成处理包括场景的序列的播放列表的创建并且根据用户 命令修改所述播放列表,和 -用户接口(8),被配置成将所述播放列表显示给用户、允许所述用户通过修改所述场 景的序列来编辑所述播放列表并且接收所述用户命令。2. 根据权利要求1所述的系统,其中所述播放列表处理器(6)被配置成接收有关所述场 景的序列的一部分中的修改的用户命令、基于所述播放列表的所述修改部分中的所述场景 中所包括的所述分段的所述机器人的运动的所述描述查验所述修改,并且基于所述查验的 结果允许或拒绝所述修改。3. 根据权利要求1或2所述的系统,其中所述机器人的运动的所述描述包括所述机器人 的位置,并且所述播放列表处理器(6)被配置成将所述播放列表的所述修改部分中的相邻 场景的属于相同机器人的位置进行比较并且基于所述比较的结果查验所述修改。4. 根据前述权利要求中的任一项所述的系统,其中各分段包括针对所述机器人的开始 位置和结束位置,并且所述播放列表处理器(6)被配置成通过将所述播放列表的所述修改 部分中的相邻场景的属于相同机器人的分段的开始位置与结束位置进行比较来查验修改, 并且如果邻接场景的所述分段中的任一个的所述开始位置与结束位置之间的差异超过限 制值则拒绝所述修改。5. 根据前述权利要求中的任一项所述的系统,其中所述系统包括被配置成基于存储的 分段创建多个场景并将所述场景存储在所述存储器(5)中的场景处理器(4)。6. 根据权利要求5所述的系统,其中所述分段中的每一个包括关于所述分段属于哪个 场景的信息,并且所述场景处理器(4)被配置成基于所述分段属于哪个场景的信息将所述 分段分组成多个场景。7. 根据前述权利要求中的任一项所述的系统,其中所述分段中的每一个包括包含关于 所述分段属于哪个机器人的信息的机器人标识标签,并且所述播放列表处理器(6)被配置 成基于所述机器人标识标签来确定分段属于哪个机器人。8. 根据前述权利要求中的任一项所述的系统,其中所述播放列表处理器(6)被配置成 基于所述播放列表、存储的场景和分段来模拟所述机器人的运动,并且基于所述模拟来查 验所述播放列表。9. 根据前述权利要求中的任一项所述的系统,其中各分段进一步包括用于执行所述限 定时间段期间的所述机器人的运动的程序代码,并且所述系统进一步包括程序发生器 (20),所述程序发生器被配置成基于所述播放列表、所存储的场景和所存储的分段生成针 对所述机器人中的每一个机器人的主程序。10. 根据权利要求9所述的系统,其中各分段包括包含所述机器人代码并具有将由所述 主程序调用的子程序名称的子程序,并且所述程序发生器(20)被配置成基于所述播放列表 生成包括对所述子程序调用的序列的针对所述机器人中的每一个机器人的主程序。11. 一种用于限定协作表演节目的多个真实机器人的运动的方法,其特征在于,所述方 法包括: -获得并存储描述在所述节目期间的机器人的运动的多个分段(40),各分段包括在限 定时间段期间所述机器人中的一个机器人的运动的描述, -获得多个场景,各场景包括将由所述机器人同时执行的多个所述分段(42), -创建包括所述场景的序列的播放列表(44), -将所述播放列表显示给用户并允许所述用户通过修改所述场景的序列来编辑所述播 放列表(46), -接收有关修改的用户命令(48), -基于所述用户命令修改所述播放列表(54),和 -存储所修改后的播放列表。12. 根据权利要求11所述的方法,其中所述方法包括: -接收有关所述场景的序列的一部分中的修改的用户命令(48),-基于所述播放列表的 所述修改部分中的所述场景中所包括的所述分段的机器人的运动的所述描述来查验所述 修改(50),并且基于所述查验的结果允许或拒绝(52)所述修改,并且如果所述修改被允许 则修改所述播放列表(54)。13. 根据权利要求11或12所述的方法,其中所述机器人的运动的所述描述包括所述机 器人的多个位置,并且所述方法包括将所述播放列表的所述修改部分中的相邻场景的属于 相同机器人的所述位置中的至少一些进行比较并且基于所述比较的结果查验所述修改。14. 根据权利要求11至13中的任一项所述的方法,其中各分段包括针对所述机器人的 开始位置和结束位置,并且所述方法包括将所述播放列表的所述修改部分中的相邻场景的 属于相同机器人的分段的开始位置与结束位置进行比较,并且如果邻接场景的所述分段中 的任一个的所述开始位置与结束位置之间的差异超过限制值则拒绝所述修改。15. 根据权利要求11至14中的任一项所述的方法,其中所述方法包括接收多个所述分 段,所述分段中的每一个包括关于所述分段属于哪个场景的信息,基于关于所述分段属于 哪个场景的信息创建所述场景,并且存储所述场景。16. 根据权利要求11至15中的任一项所述的方法,其中各分段进一步包括用于执行所 述限定时间段期间的机器人的运动的程序代码,并且所述方法进一步包括基于所述播放列 表、所存储的场景和所存储的分段生成针对所述机器人中的每一个机器人的主程序(64)。
【文档编号】B25J9/16GK105916637SQ201480073250
【公开日】2016年8月31日
【申请日】2014年2月5日
【发明人】M·古斯塔夫松, M·鲁斯
【申请人】Abb瑞士股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1