用于机器人控制系统的可组合性框架技术方案

技术编号:34083608 阅读:17 留言:0更新日期:2022-07-11 19:28
方法、系统和装置,包括用于支持协调多个子系统的低层动作的可组合性框架的编码在计算机存储介质上的计算机程序。方法之一包括:接收用于实时机器人控制系统的多设备应用定义,实时机器人控制系统被配置为执行包括控制具有多个机器人组件的机器人执行环境的操作,其中,应用定义包括:用于多个机器人组件中的每个机器人组件的一个或多个自定义高层软件模块;用于每个自定义高层软件模块的相应模块接口定义,其中,自定义高层软件模块的模块接口定义指定一个或多个异步或实时通信通道;和用于多个机器人组件中的每一个的相应设备接口定义;以及,处理应用定义以生成将由多个机器人组件分别执行的输出程序。器人组件分别执行的输出程序。器人组件分别执行的输出程序。

【技术实现步骤摘要】
【国外来华专利技术】用于机器人控制系统的可组合性框架

技术介绍

[0001]本说明书涉及用于软件控制系统的框架。
[0002]软件控制系统是控制物理设备(例如,执行器或机器人)的动作的软件系统。一些软件控制系统是控制实时系统的实时软件控制系统。实时软件控制系统必须在严格的定时要求内执行其控制程序(routine),以实现正常操作。定时要求通常规定必须在特定时间窗口内执行特定动作或生成输出,以使系统避免进入故障状态。在故障状态下,系统可能停止执行或采取一些其他中断正常操作的动作。
[0003]这种实时软件控制系统通常用来控制具有高精度和定时要求的物理机器。作为一个示例,工业机器人的执行环境可以由实时软件控制系统控制,实时软件控制系统要求每个机器人以特定频率(例如,1、10或100kHz)重复接收命令。如果机器人之一在周期性时间窗口之一期间没有接收命令,则机器人可以通过停止其操作或通过自动执行恢复过程以回到维护定位来进入故障状态。
[0004]由于这种定时要求,用于物理机器的软件控制系统通常由封闭软件模块来实现,封闭软件模块被专门配置用于高度专业化的任务。例如,挑选用于在印刷电路板上放置的组件的机器人可以由封闭软件系统控制,封闭软件系统控制每个低层的挑选和放置动作。通常,这种软件控制模块的协调遵循观察、规划和行动的模式,该模式涉及进行传感器观察,生成规划,然后根据规划来行动。

技术实现思路

[0005]本说明书描述了支持协调多个子系统的低层动作的可组合性框架,其可以包括一个或多个实时机器人。一般来说,框架是提供用于构建在特定执行环境下的应用的一些基本功能的软件模块库。在本说明书中,执行环境包括多个子系统,其每个具有相应计算硬件。框架提供用于异步通信通道、发现低层能力、以及在多个独立设备之间协调的机制。下面描述的技术提供了用于构建在执行环境下协调多个子系统的应用的框架,其每个可以具有其自己的观察、规划、动作的功能。
[0006]本说明书中描述的主题的特定实施例可以被实施,以便实现一个或多个以下优点。
[0007]一些现有的机器人应用框架规定了设备和软件模块的接口,并且不允许用户针对特定用例自定义接口。本申请中描述的一些系统允许用户组成通用的低层软件模块,以生成适合其需求的高层软件模块;用户还可以制定软件模块的数据接口。一些这种系统还允许软件模块的高层可组合性,其中,自定义的高层软件模块本身还可以组合成更高层软件模块。这种更高层软件模块可以在其相应组成软件模块之间建立通信通道,并且可以协调其相应组成软件模块的执行。
[0008]本说明书中描述的一些系统还可以提供用于设备和软件模块的发现机制,据此,设备和软件模块在用户要求下声明其相应数据接口。因此,这些系统通过使用户容易地调用软件模块和检索其数据接口,提供了用户友好的软件模块管理。因此,这些系统可以被应
用于广泛的应用和广泛的设备。
[0009]本说明书中描述的一些系统允许用户在两个或更多个设备之间建立通信通道。通信通道可以在设备之间传递数据,从而允许设备异步地执行一个或多个软件模块。
[0010]本说明书的主题的一个或多个实施例的细节在附图和下面的描述中进行阐述。主题的其他特征、方面和优点将从描述、附图和权利要求变得明显。
附图说明
[0011]图1是示出示例系统的图。
[0012]图2示出具有多个设备的示例执行环境。
[0013]图3示出示例设备接口定义和示例软件模块。
[0014]图4是用于生成在执行环境下由一个或多个设备执行的程序的示例过程的流程图。
[0015]各个附图中的相同附图标记和名称表示相同元素。
具体实施方式
[0016]图1是示出示例系统100的图。系统100是可实现本说明书所述的技术的系统的示例。
[0017]系统100包括具有规划器120和实时机器人控制系统150的若干个功能组件。这些组件中的每一个可以被实现为安装在一个或多个地点中的一个或多个计算机上的计算机程序,这些计算机通过任何适当的通信网络(例如,内联网或互联网或者各网络的组合)彼此连接。系统100还包括具有N个机器人170a

n的执行环境170。
[0018]实时机器人控制系统150被配置为控制在执行环境170下的机器人170a

n。实时机器人控制系统150必须在执行环境170的操作中,满足一个或多个硬性时间限制。例如,在执行环境170下的机器人之一可能被要求每隔一段时间(例如,10毫秒)执行特定操作;如果机器人在给定时间窗口内无法执行操作,则机器人进入故障状态。
[0019]实时机器人控制系统150由一个或多个软件模块回路组成,每个软件模块回路包含多个软件模块,这些软件模块以预定顺序重复执行,以便控制机器人170a

n。为简单起见,图1示出包括M个软件模块150a

m的单软件模块回路。每个软件模块可以执行机器人170a

n中的相应机器人的一个或多个功能。
[0020]每个软件模块可以具有指定实时数据的对应数据接口,其中,软件模块接收实时数据作为输入,并且提供作为输出。在执行过程期间,软件模块交换相应软件模块执行所需的P个实时消息152a

p。例如,软件模块150a可以将实时消息152a提供给软件模块150b,并且软件模块150b可以将实时消息152p提供给软件模块150m。
[0021]规划器120的总体目标是生成时间表135,时间表135允许实时机器人控制系统150控制在执行环境170下的机器人,以执行特定任务。
[0022]规划器120接收应用定义110。应用定义110可以由用户生成。应用定义110可以识别要由在执行环境170下的机器人完成的特定任务。为了完成任务,应用定义110可以指定软件模块回路,包括识别在软件模块回路中的软件模块150a

m。应用定义110还可以根据软件模块的数据接口来指定在软件模块之间交换的实时消息152a

p。
[0023]软件模块150a

m中的一些可以是由一个或多个更低层软件模块和数据接口组成的高层软件模块,数据接口由用户使用更低层软件模块生成。也就是说,自定义的高层软件模块可以依赖于一个或多个低层软件模块。
[0024]低层软件模块可以执行机器人170a

n中的相应机器人的基本功能。在一些实施方式中,每个低层软件模块依赖于为相应机器人自定义的自定义软件模块。也就是说,自定义软件模块可以执行为特定机器人设计(例如,为特定机器人的特定规格调整)的特定低层功能。在一些情况下,低层软件模块可以依赖于由机器人的制造商提供的自定义软件模块;也就是说,自定义软件模块可以被开箱即用地提供给机器人的用户。
[0025]每个软件模块可以与在执行环境170下的一个或多个机器人关联;给定设备支持的软件模块可以使用设备接口定义来识别。下面,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种系统,包括一个或多个计算机和存储可操作的指令的一个或多个存储设备,指令在由一个或多个计算机执行时,使一个或多个计算机执行操作,包括:接收用于实时机器人控制系统的多设备应用定义,实时机器人控制系统被配置为执行包括控制具有多个机器人组件的机器人执行环境的操作,其中,应用定义包括:用于多个机器人组件中的每个机器人组件的一个或多个自定义高层软件模块,其中,每个自定义高层软件模块被配置为执行机器人组件的一个或多个功能,并且其中,每个自定义高层软件模块依赖于相应机器人组件的一个或多个低层软件模块;用于每个自定义高层软件模块的相应模块接口定义,其中,自定义高层软件模块的模块接口定义指定一个或多个异步或实时通信通道,自定义高层软件模块能够通过异步或实时通信通道,从不同的自定义高层软件模块接收输入数据或将输出数据传输到不同的自定义高层软件模块;和用于多个机器人组件中的每一个的相应设备接口定义,其中,机器人组件的设备接口定义声明机器人组件能够执行的软件模块;以及处理应用定义以生成将由多个机器人组件分别执行的输出程序,其中,输出程序包括执行一个或多个自定义高层软件模块的多个命令,并且其中,用于多个机器人组件中的第一机器人组件的第一输出程序使第一机器人组件将关于第一通信通道的信息传送到用于多个机器人组件中的第二机器人组件的第二输出程序。2.根据权利要求1所述的系统,其中,机器人组件的每个低层软件模块依赖于为特定机器人组件自定义的自定义软件模块。3.根据权利要求2所述的系统,其中,自定义软件模块由机器人组...

【专利技术属性】
技术研发人员:GJ普里塞门特M比尔德沃斯
申请(专利权)人:因思创新有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1