控制装置、控制方法以及程序

文档序号:1327686 发布日期:2020-07-14 浏览:32次 >En<

阅读说明:本技术 控制装置、控制方法以及程序 (Control device, control method, and program ) 是由 浅井大史 土井裕介 玉田雄三 于 2018-12-13 设计创作,主要内容包括:在各种装置的组合中实现实时性高的系统控制。控制装置具备:控制指示接受部,接收针对多个被控制装置的成为控制的目标的控制目标指示;以及控制处理生成部,根据所述控制目标指示,生成针对所述多个被控制装置中的每个被控制装置的控制信号,所述控制装置根据所述多个被控制装置的通信延迟时间、相位偏移时间以及动作周期时间中的至少1个,以使所述多个被控制装置协作地达成所述目标的方式控制所述多个被控制装置的动作。(A system control with high real-time performance is realized in combination of various devices. The control device is provided with: a control instruction receiving unit that receives control target instructions to be targets of control for a plurality of controlled devices; and a control process generating unit that generates a control signal for each of the plurality of controlled devices in accordance with the control target instruction, wherein the control device controls the operations of the plurality of controlled devices so that the plurality of controlled devices cooperatively achieve the target in accordance with at least 1 of a communication delay time, a phase shift time, and an operation cycle time of the plurality of controlled devices.)

控制装置、控制方法以及程序

技术领域

本公开涉及控制装置、控制方法以及程序。

背景技术

为了实现工厂自动化等关键系统,存在要求实时性的通信(例如用于实时的设备控制、安全/维护等的通信)以及并非如此的通信(例如用于针对设备的接下来的目标的指示、保养用遥测等的通信)。作为进行和控制这些通信的例子,可以举出通过区分为实时通信和非实时通信并优先地执行实时通信所涉及的发送接收,使实时通信和非实时通信共存。作为其他例子,可以举出以下系统:为了进行灵活的处理,假设软件性地组合任意的多个控制装置和传感器的环境,具备至少1个用于进行使整体协作动作的控制的协作控制装置。

然而,由多个控制装置、被控制装置、传感器以及它们的组合执行的任务分别具有不同的时间循环。例如,在控制装置和被控制装置之间需要实时性高的控制,所以每4毫秒进行1次通信,另一方面,传感器的信息取得周期是每16.67毫秒1次,用于进行基于深层学习的推测的控制装置有时需要复杂的计算,每200毫秒只能进行1次处理和指示。在这样的情况下,组合分别不同的控制循环并顺利地执行的方法并不是理所当然的。另外,多个被控制装置各自即使为相同的周期,也未必在相同的定时动作,并且也难以使它们顺利地协调动作。

而且,在循环同步的环境中,能够执行实时通信和非实时通信的调度。然而,在现实的装置中,存在动作循环未统一、或者动作循环即使相同也仍未同步这样的制约。另外,在以往的方式中,未考虑通信延迟,在存在通信装置的延迟及抖动(延迟波动)的情况下,不能实现实时性。

发明内容

因此,本发明提供一种组合了多个装置的系统中的实时性高的控制。

一个实施方式所涉及的控制装置具备:控制指示接受部,接收针对多个被控制装置的成为控制的目标的控制目标指示;以及控制处理生成部,根据所述控制目标指示,生成针对所述多个被控制装置中的每个被控制装置的控制信号,所述控制装置根据所述多个被控制装置的通信延迟时间、相位偏移时间以及动作周期时间中的至少1个,控制所述多个被控制装置的动作,使得所述多个被控制装置协作地达成所述目标。

附图说明

图1是示出一个实施方式所涉及的系统的结构的框图。

图2是示出一个实施方式所涉及的控制装置的结构的框图。

图3是示出一个实施方式所涉及的控制装置的处理的流程的流程图。

图4是示出具备一个实施方式所涉及的控制装置的系统的处理的流程图。

图5是图4的其他例子所涉及的流程图。

图6是示出定义一个实施方式所涉及的控制装置的动作的伪代码的图。

图7是示出图6的其他例子所涉及的伪代码的图。

图8是示出一个实施方式所涉及的实现例的框图。

图9是示出一个实施方式所涉及的实现例的图。

具体实施方式

以下,参照附图来更详细说明本发明的实施方式。本实施方式不限定本发明。此外,在各图中对具有等同的功能的构成元素附加相同的符号,相同的构成元素的详细说明不再重复。另外,在下文中,处理的1个循环所需的时间、延误时间以及相位偏移时间等是为了说明而作为一个例子示出的数值,并非实际的数值。因此,在其他数值中也能够与本实施方式同样地处理。

本发明所涉及的协调控制装置规定了最坏情况下的动作,而且通常情况下保持进行赶得上截止期限的调度的准实时(firm real-time)的特性,并且构筑灵活的应用。为此,采用构筑应用逻辑的用于流处理的域描述语言(DSL:Domain-Specific Language)。

图1是示出由本实施方式所涉及的协调控制装置控制的系统的结构的框图。在系统1中,具备控制目标指示装置10、控制装置20、被控制装置30A、被控制装置30B以及传感器40。此外,作为例子,被控制装置设为2个,但被控制装置也可以是比2多的多个。另外,传感器40也可以是由控制装置20控制的被控制装置。

这些各装置通过利用因特网、以太网(注册商标)等的通信路径相互连接。该连接方法不限于有线,也可以无线地连接。另外,规格、方式没有特别限定,是适合地进行信号的通信的连接方法即可。通信中的延误也可以从控制装置20向各装置分别存在。

控制目标指示装置10是向控制装置20指示进行什么样的控制的目标的装置。目标的指示是指,例如,各被控制装置30根据在控制目标指示装置10内形成的已机器学习的模型进行什么样的动作,或者是向模型纳入来自这些被控制装置30的反馈信息或从传感器40取得的状态并指示使之后的被控制装置30怎样动作的目标的装置。在机器学习中,也可以使用深度学习等比其他处理花费时间的处理。

作为更具体的目标的指示的例子,是在与工业用机器人有关的指示中,用多个臂把持1个物体并举起,然后用该多个臂以外的臂在该举起的物体的下方设置夹具等这样的协调控制所需的各臂的一系列的操作。

在该控制目标指示装置10内进行的处理例如是如上所述进行机器学习、或者从已机器学习的模型取得接下来的指示目标这样的比较花费时间的处理,所以设为以100毫秒循环执行。与控制装置20之间的通信延误例如是5毫秒。

此外,在图1中,仅1台控制目标指示装置10,但不限于此,也可以具备多个控制目标指示装置10。在该情况下,针对各控制目标指示装置10,分别存在上述周期和延误等。

控制装置20是依照从控制目标指示装置10取得的控制目标的指示向各被控制装置30发送针对各装置的控制信号的装置。并且接收来自各被控制装置30以及传感器40的信息,根据该接收到的状态生成控制信号。另外,此时,也可以向控制目标指示装置10发送从各被控制装置30以及传感器40取得的状态,接着取得控制目标指示。

被控制装置30根据从控制装置20接收到的控制信号进行动作。就上述例子而言,被控制装置30与各臂相应,根据控制装置20生成的控制信号,把持物体或者在把持的该物体下设置夹具。

多个被控制装置30在各自的动作循环中动作。另外,各个被控制装置30有时还存在来自控制装置20的通信延误。而且,关于各被控制装置30,并非其全部都同步地动作,而是如上所述动作循环不同,而且还存在各被控制装置30动作时的相位偏移。相位偏移是指,例如,即使在各被控制装置30从控制装置20同时接收到控制命令的情况下,直到动作的开始所花费的时间有时也不同,是表示该时间的偏移的偏置。

被控制装置30依照来自控制装置20的控制命令,在自身的动作循环中进行动作。此外,被控制装置30也可以向控制装置20反馈进行了动作的意思的信号。另外,作为其他例子,在能够接收动作等待或者控制命令(空转状态)的情况下,也可以向控制装置20发送该状态。

传感器40例如是拍摄被控制装置30的状态的相机。除此以外,也可以是测量振动的振动传感器,测量声音的感音传感器,测量温度或湿度的温度、湿度传感器,或者感压传感器。只要是感知所需要的被控制装置30的状态的传感器即可。另外,该传感器40自身也可以是由控制装置20控制的被控制装置30。

在传感器40是相机的情况下,以预定的周期(例如10毫秒的循环)拍摄被控制装置30的状态并向控制装置20发送。控制装置20根据来自被控制装置30的反馈信号和传感器40拍摄的图像以及从控制目标指示装置10接收到的控制目标值,生成向被控制装置30发送的接下来的控制信号。

图2是示出控制装置20的结构的框图。控制装置20被构成为具备动作周期推测部200、控制指示接受部202、控制处理生成部204、例外处理执行部206、程序储存部208以及适配器部210。

动作周期推测部200推测各被控制装置30、传感器40以及控制目标指示装置10的动作周期。例如,根据针对来自控制装置20的命令做出其回复的定时来推测各装置的动作周期。也可以预先给出被控制装置30等的控制周期。在该情况下,例如,能够在发出进行回复的意思的命令之后,根据从被控制装置30等接收到向该命令的回复的定时,推测定时的偏移(偏置)。

而且,被控制装置30中的每个被控制装置由于在通过环路处理动作的周期动作中能够回复信号的定时是固定的,所以能够推测从控制装置20发送信号起到被控制装置30开始动作为止的偏置。即,通过读取针对每个装置所固定的回复的定时,推测控制装置20与被控制装置30之间、以及多个被控制装置30之间的定时的偏移。此外,在该情况下,各被控制装置30的动作周期也可以从目录值等给出,也可以如上所述动作周期也由动作周期推测部200推测。

即使在不能从一次的回复定时读取到偏置的情况下,也能够通过在多次不同的定时发出如上所述的命令并考虑接收到回复的定时来判断偏置。在此,偏置是指,表示从控制装置20观察到的各被控制装置30的动作周期的偏移的值。

而且,作为其他例子,能够定期地例如每1毫秒向控制目标指示装置10或者被控制装置30发出进行回复的意思的命令,根据针对该命令在什么样的定时进行回复、或者统一回复多少个命令来推测。通过这样测定回复定时,例如,即使在各被控制装置30的动作周期不明的情况下,也能够推测该动作周期自身。

在事先推测周期的情况下能够以如上所述的方法进行推测,但作为其他例子,也可以在动作中进行推测。在该情况下也能够根据针对从控制装置20发出的命令而回复的定时等进行推测。由此,能够一边进行动作一边推测偏置。在一边进行动作一边推测偏置时,通过推测在动作中发生的时间的偏移,并将该时间的偏移存储到适配器部210,即使在长时间的运用中,也能够进行吸收在动作中发生的时间的偏移的控制。

如上所述,通过在任意的定时发送以从控制装置20向被控制装置30进行回复的方式进行控制的信号,能够根据存在针对该信号的回复的定时和控制装置20进行发送的定时,推测各被控制装置30的相位偏移。

此外,即使如上所述推测了动作周期等,在实际动作时也有发生偏移的情况。为了应对这样的情况,动作周期推测部200也可以接收来自传感器40的传感器信号,进而推测其偏移、动作周期。

控制指示接受部202接受从控制目标指示装置10发送的控制目标值或者进行什么样的控制的指示。依照该控制指示接受部202接受的指示,发出向各被控制装置30、传感器40的控制信号,并向需要的装置发送。

控制处理生成部204根据接收到的控制目标值,生成用于进行被控制装置30的控制的控制信号。控制信号是标示被控制装置30的动作及结束位置等被控制装置30的活动的状态的信号。将该控制信号与延迟特性一起发送给与各被控制装置30对应的适配器部210。

例外处理执行部206在关于与控制装置20连接的装置发生例外的情况下,进行例外处理。例如,在被控制装置30的动作状态超出安全范围的情况、存在多个被控制装置30彼此冲突的可能性的情况等发生事故或者故障的情况下,执行例外处理,使得防止发生该事故等。作为成为进行例外处理的原因的事由,除此以外,也可以包括由于通信异常而引起的定时偏移或者没有针对通信的应答等与通信有关的事由。而且,也可以包括成为一般可能成为危险的状态的事由。

程序储存部208储存用于进行控制装置20的动作的程序等。程序储存部208可以被构成为具备易失性存储器或者非易失存储器。另外,该储存部不仅可以储存控制装置20的动作,也可以储存用于进行被控制装置30等的控制的程序。

适配器部210是用于连接被控制装置30等和控制装置20的接口,针对各被控制装置30等具备1个适配器部210。作为其他例子,也可以用1个适配器部210与多个被控制装置30等连接。在该情况下,也可以通过预先设置预定的通信协议而能够判断是向哪个被控制装置30的通信。该适配器部210根据控制处理生成部204生成的记述有使被控制装置30执行的动作的控制信号的延迟特性,向被控制装置30发送该控制信号。

接下来说明控制装置20的动作。图3是示出本实施方式所涉及的控制装置20的动作的一个例子的流程图。此外,本流程图例如示出环路处理中的1个环路所涉及的动作,通过反复进行这样的动作,达成系统1的动作目标。

也可以在该流程图的动作前,由动作周期推测部200关于控制目标指示装置10、被控制装置30以及传感器40的各装置推测其控制周期。动作周期推测部200也可以除了该周期以外,还一并推测通信路径中的延迟和/或每个被控制装置30的相位偏移。关于这些参数,也可以利用预先测定的参数。另外,动作周期推测部200也可以在预定的定时重新推测各装置的控制周期。在与各被控制装置30对应的适配器部210中,储存有该控制周期、通信延迟以及相位偏移的信息。

首先,控制指示接受部202从控制目标指示装置10接收控制目标指示(步骤S10)。控制目标指示装置10生成关于在系统1中进行的动作的成为目标的指示并向控制装置20的控制指示接受部202发送。成为目标的指示是指,例如,表示为了将系统1内的状态向成为目标的状态设置而使被控制装置30将来向什么样的状态迁移的指示。该指示例如使用已学习的模型来生成,或者通过根据该定时处的被控制装置30的状态实际进行学习来生成。例如,该指示的生成花费100毫秒的时间。

接下来,接收到控制目标指示的控制指示接受部202判断在控制目标指示的接收中是否有例外(步骤S12)。即,判断能否按照预定的定时接收控制目标指示。不能按照预定的定时接收控制目标指示是指,例如,在控制目标指示装置10每100毫秒对控制装置20进行控制目标的指示的情况下,判定能否在每100毫秒的定时接收控制目标指示。此外,此时,根据通信状态以及各种装置的状态,存在发生时间的偏移的可能性,所以可以提供时间上的缓冲器,使得能够在从上次的接收起120毫秒期间进行接收,而非设置为从上次的接收起100毫秒。

在不能按照预定的定时接收控制目标指示的情况下(步骤S12:“是”),控制装置20进行与控制目标指示有关的例外处理(步骤S14)。例外处理由例外处理执行部206执行。

该例外处理例如也可以针对直到上次为止的控制目标进行线性地外插插值。作为其他例子,也可以在安全方向上控制,即,针对直到上次为止的控制目标,相比于用线性插值来进行,也可以以抑制活动的方式进行外插插值。根据各被控制装置30的状态,存在由于进行外插插值而引起冲突等事故的可能性。在这样的情况下,也可以进一步在安全方向上控制并生成控制信号,使得被控制装置30顺利地停止其活动。

在能够按照预定的定时接收控制目标指示的情况下(步骤S12:“否”),控制处理生成部204进行控制目标的生成(步骤S16)。针对由控制目标指示装置10生成的控制目标,考虑被控制装置30从当前的状态面向将来通过什么样的动作能够到达控制目标,生成控制目标。

例如,在从当前的位置到成为控制目标的到达位置之间的位置,控制处理生成部204计算在被控制装置30的接下来的控制周期中前进多少,生成关于被控制装置30的控制周期的控制目标。更具体地,在由控制目标指示装置10指示成为控制目标的位置的情况下,生成在被控制装置30的接下来的控制周期中将哪个位置作为到达目标,作为控制目标。例如,生成被控制装置30的接下来的控制周期中的到达目标作为控制目标,使得被控制装置30能够在直到接下来的控制目标指示到达为止的时间中移动至当前的控制目标。

接下来,控制处理生成部204进行直到所生成的控制目标的关于被控制装置30的动作的控制指示信号的生成(步骤S16)。例如,在指示了被控制装置30的控制周期中的成为控制目标的位置的情况下,生成与被控制装置30的控制周期符合地线性移动的信号。作为其他例子,在从控制目标指示到达起到接下来的控制目标指示到达为止的期间中,在存在成为动作的开始或者动作的结束的位置的情况下,也可以在该位置的周边以逐渐开始动作的方式或者以逐渐停止动作的方式生成控制信号,而非以线性的方式生成控制信号。

例如,根据储存于程序储存部208的程序来生成该控制信号。在指定移动位置的情况下,判断在3维空间内怎样移动,并从储存于程序储存部208的程序中抽出与该移动有关的程序。然后,通过设置移动方向或者移动距离等必要的参数,生成控制信号。

此时,如果储存于程序储存部208的程序是用DSL记载的程序,则能够原样地设置参数并生成信号。而且,多个不同种类的动作也易于合成。当然,也可以通过其他设计思想的计算机语言记载,而无需用DSL记载。

此外,步骤S16以及步骤S18中的控制目标及控制信号不限于根据控制目标的位置以及被控制装置30的位置生成的控制目标及控制信号。例如,也可以是与施加到被控制装置30的电压值、电流值等的控制所需的电气、电力有关的控制信号,与被控制装置30的旋转角度、转矩等旋转及力有关的控制信号,或者与被控制装置30的温度等有关的控制信号。除此以外,在被控制装置30是臂且具备多个指状部的情况下,也可以生成该臂内的指状部的活动的控制信号等。这样,只要生成与被控制装置30的动作有关的控制信号,则能够应对任意的信号。而且,也可以是组合上述多个动作的动作。

接下来,根据适配器部210中设置的延迟时间等,向各被控制装置30发送针对各被控制装置30的控制信号(步骤S20)。根据储存于适配器部210的每个被控制装置30的通信延迟的信息以及相位偏移的信息,从控制装置20向被控制装置30发送生成的控制信号。

使用图1所示的例子进行说明。在被控制装置30A与被控制装置30B之间,存在3毫秒的相位偏移。因此,在与被控制装置30A对应的适配器部210中,将通信延迟设置为0毫秒,将控制周期设置为10毫秒,将相位偏移设置为0毫秒,相对于此,在与被控制装置30B对应的适配器部210中,将通信延迟设置为0毫秒,将控制周期设置为4毫秒,将相位偏移设置为3毫秒。

在这样设置的情况下,在步骤S20中,首先对被控制装置30B发送被控制装置30B的控制信号,在其3毫秒后对被控制装置30A发送被控制装置30A的控制信号。在图1中,关于被控制装置30A以及被控制装置30B的通信延迟都是0毫秒,所以不特别进行与通信延迟有关的控制,但在通信延迟存在差异的情况下,发送以也能够吸收该通信延迟的方式生成的信号。每10毫秒将这样的信号发送到被控制装置30A,每4毫秒将这样的信号发送到被控制装置30B。这样,控制装置20根据通信延迟、控制周期以及相位偏移发送控制信号,使得被控制装置30A以及被控制装置30B协作地进行动作。

此外,被控制装置30在长时间动作时,存在产生100ppm左右的误差的情况。在该情况下,在动作10秒时,存在产生1毫秒左右的误差的情况。动作周期推测部200等可以根据来自被控制装置30的反馈信号或者传感器40检测到的信号来推测这样的误差,并设置在与产生误差的被控制装置30对应的适配器部210中。

如上所述,控制装置20根据从步骤S10到步骤S20的动作,进行从接收到的控制目标指示起到针对各被控制装置30的控制信号的发送为止的动作。

在进行各步骤的动作的期间,控制装置20随时接收来自传感器40的信号(步骤S22)。传感器40例如在传感器40的各控制周期中向控制装置20发送检测到的信息。在传感器40是相机的情况下,可以作为动作周期每10毫秒向控制装置20发送1张图像数据,也可以根据传送速度以及处理速度,例如每100毫秒向控制装置20发送1张图像数据。或者,也可以在需要掌握的被控制装置30的状态的跨度中拍摄并发送。在传感器40不是相机的情况下,也可以适宜地在适合的定时发送由该传感器40检测到的信息。

另外,还考虑由于传感器的故障、通信异常等而不能接收传感器信号的情况。为了应对这样的情况,可以在不仅不能接收传感器信号而且也不能接收来自传感器的通信而经过预定的时间的情况下,也进行步骤S22以下的处理。预定的时间是指,例如,可以设为从传感器发送信号的周期的1.5倍的时间等。1.5倍是一个例子,也可以设为2倍等时间,设为吸收通信延误的充分的时间,相反地,还可以设为1.2倍等,使得能够还检测通信延误。不限于此,也可以与来自传感器的信号的发送的周期独立地决定预定的时间。

接下来,控制装置20判定在接收到的传感器信号中是否发生被控制装置30中的成为例外的事故等(步骤S24)。在未发生例外的情况下(步骤S24:“否”),控制装置20继续既存的处理(例如从步骤S10至步骤S20之间的任意处理)。

另一方面,在被控制装置30中发生成为例外的事故等的情况下(步骤S24:“是”),执行被控制装置的例外处理(步骤S26)。该例外处理例如可能在没赶上控制指示的生成的情况下发生。因此,将在没赶上控制指示的生成的情况下向被控制装置30发送的关于被控制装置30的动作的程序预先储存在程序储存部208中。

在没赶上控制指示的生成而不能确定接下来的被控制装置30的动作的情况下等,调出储存于程序储存部208的用于例外处理的程序,并作为控制信号向被控制装置30发送。此外,可以不考虑通信延迟以及相位偏移等而发送该控制信号。此时,也可以预先准备严重性参数,在连续赶不上控制信号的生成的情况下,提高严重性。而且,也可以根据严重性的高低来改变作为例外处理发送的控制信号。

在包括被控制装置30的各种装置的控制在时间方向上偏移了(发生了抖动)的情况下、或者在空间方向上偏移了(发生了控制误差)的情况下,也可以与检测该被控制装置30中的例外并行地执行例外处理。在针对该控制偏移的例外处理中,首先接收传感器信号并判断是否发生控制偏移的例外(步骤S28)。在未发生控制偏移的情况下(步骤S28:“否”),控制装置20与上述同样地继续进行既存的处理。

另一方面,在被控制装置30等中发生成为例外的控制偏移的情况下(步骤S28:“是”),执行控制偏移的例外处理(步骤S30)。该例外处理可能由于例如由于某种理由发生通信延迟、或者在被控制装置30中没赶上制动、或者由于被控制装置30中的过冲等比想要控制的动作更多地动作而引起。因此,与上述同样地,将在这样的情况下向被控制装置30发送的关于被控制装置30的动作的程序预先储存在程序储存部208中。

在如上所述的情况下,调出储存于程序储存部208的用于例外处理的程序,作为控制信号向被控制装置30等发送。此外,也可以不考虑通信延迟以及相位偏移等而发送该控制信号。此时,也可以使用与上述同样的严重性参数,根据严重性来改变执行的例外处理。该严重性参数既可以在被控制装置的例外处理和控制偏移的例外处理中作为相同的严重性,也可以作为不同的严重性计算。

如以上所述,控制装置20接收控制目标指示,根据该控制目标使被控制装置30动作,而且,在存在发生事故等的可能性的情况下,以防患于未然的方式使被控制装置30执行例外处理。

此外,作为例外处理,是补全被控制装置的动作来控制还是使被控制装置安全地停止的分支例如也可以根据发生例外的次数来判断。例外如上所述例如是发生控制目标指示的接收的延迟、针对被控制装置的控制信号的生成的延迟、被控制装置的动作的时间上的偏移或者被控制装置的动作的空间上的偏移。

例如,在发生例外的次数在预定的次数以下的情况下,通过补全来控制,在发生例外的次数超过预定的次数的情况下,进行安全停止。发生例外的次数既可以设为连续地发生例外的次数,也可以设为在预定的时间内发生例外的次数,或者还可以设为从控制装置20开始控制起累计的发生例外的次数。

进行例外处理的被控制装置30既可以设为全部被控制装置30,也可以设为一部分被控制装置30。例如,在一部分被控制装置30的动作对其他被控制装置30造成的影响少的情况下,可以进行该一部分被控制装置30的动作,并且针对其他被控制装置30的动作进行例外处理。无论如何,都以使得一部分或者全部被控制装置30能够协作地安全动作的方式进行例外处理。

此外,在图3中,各处理被表示为串行的动作,但不限于此,也可以作为并行处理来进行。例如,控制目标指示的接收以及控制目标的生成、控制指示信号的生成及发送、各种例外处理也可以分别作为分叉出的单独的过程而动作。例外的发生的判断例如也可以由守护进程来执行。对各被控制装置30的指示是独立的指示,所以也可以针对每个被控制装置30并行地执行符合该被控制装置30的动作周期的子过程。

图4是示出包括控制目标指示装置10、控制装置20、被控制装置30以及传感器40的处理的流程的一个例子的图。

首先,在各个装置中,进行预定的处理作为前处理。控制目标指示装置10进行控制目标的设置(步骤S100)。例如通过用户输入使系统1执行的任务等来进行控制目标的设置。不限于此,控制目标指示装置10等可以自动地设置控制目标。另外,控制目标指示装置10也可以根据用户输入的任务等进行设置。

控制装置20储存在控制装置20中执行的各种程序(步骤S200)。程序的储存既可以通过从预先决定的文件服务器等下载来进行,也可以预先储存到控制装置20内的程序储存部208。接下来,控制装置20通过动作周期推测部200推测针对初始状态下的控制目标指示装置10、被控制装置30以及传感器40的通信延迟时间、相位偏移时间、控制周期,设置为与各装置有关的延迟时间等(步骤S202)。

被控制装置30进行初始化(步骤S300)。初始化是指,对参数的值进行重置而返回到初始值、或者使被控制装置30的位置返回到初始状态的动作。另外,可以向控制装置20发送已初始化的状态下的各种参数等信息,还可以预先对控制装置20设置初始值。初始化结束的被控制装置30也可以向控制装置20发送初始化结束的意思的信号。

另外,传感器40也进行初始化(步骤S400)。与被控制装置30同样地,初始化是指,对参数的值进行重置而返回到初始值、或者设为进行感知的状态(待机状态)的动作。传感器40也可以向控制装置20发送已成为待机状态。

在如上所述的各种装置的初始化完成之后,系统1开始针对控制目标的动作。

首先,控制目标指示装置10生成控制目标指示,并向控制装置20发送生成的控制目标指示(步骤S102)。根据在步骤S100中设置的控制目标和生成的定时处的被控制装置30的状态,生成控制目标指示。例如,以成为在前1个动作周期中生成的控制目标指示的后续的动作的方式生成控制目标指示。另外,作为其他例子,在依照在前1个动作周期中生成的控制目标指示分别正常地控制被控制装置30的情况下,作为从在该前1个动作周期中生成的控制目标指示中的到达点开始的后续,生成控制目标指示。

此时,在发生例外处理的情况下,可以生成进行了例外处理动作的后续的控制目标指示。在该情况下,控制目标指示装置10可以接收从控制装置20向被控制装置30发送什么样的例外处理的控制信号。

接收到控制目标指示的控制装置20生成针对被控制装置30中的每个被控制装置30的控制目标(步骤S204)。如图1所示,在控制目标指示装置10的动作周期是100毫秒、被控制装置30A的动作周期是10毫秒的情况下,在接收到1次的控制目标指示时,生成例如每10毫秒划分的各被控制装置30的控制目标。

在例如指定了100毫秒后的到达地点作为控制目标指示的情况下,可以将该到达地点10等分,生成每10毫秒的到达地点作为控制目标,也可以以在动作的开始以及到达地点的结束的前后使动作缓和的方式生成控制目标。关于各被控制装置30的控制目标,无需生成在接收到控制目标指示之后直到接收到接下来的控制目标指示为止的预想的全部时间量,而是可以根据从传感器40接收到的被控制装置30的状态来依次生成。

接下来,控制装置20根据生成的控制目标生成指示信号,并向控制装置30发送。考虑通信延迟以及相对多个被控制装置30的动作的相位偏移(从接收信号起到开始动作为止的时间的偏移)来向被控制装置30执行该信号的发送。

接收到指示信号的被控制装置30根据接收到的指示信号执行动作(步骤S302)。关于通信所引起的延迟以及相位偏移所引起的与其他被控制装置30的动作定时的偏移,如上所述被控制装置20吸收,所以被控制装置30简单地根据接收到的指示信号执行动作即可。

通过环路处理,反复进行该控制装置20的指示信号的生成及发送动作和被控制装置30的动作的执行。

在这样的环路处理中,传感器40与各被控制装置30独立地感知传感器信息(步骤S402),并向控制装置20发送该感知到的传感器信号(步骤S404)。关于传感器40,由于动作周期、通信延迟以及相位偏移已推测,所以也能够通过将这些信息用作反馈信息来推测被控制装置30的动作的偏移等。通过将推测的延迟信息等随时记述到对应的适配器部210,控制装置20能够向各被控制装置30发送在更正确的定时生成的控制信号。

控制装置20根据控制目标指示的接收状况、来自被控制装置30的反馈信号或者来自传感器40的感知信号,监视是否发生例外。在发生例外的情况下(步骤S208),控制装置20对各被控制装置30发送用于进行例外处理的控制信号。

接收到该控制信号的各被控制装置30根据控制信号进行例外处理的动作(步骤S304)。此时,在被控制装置30侧,无需判断接收到的信号是否为与例外处理有关的信号,进行基于接收到的控制信号的动作即可。

如上所述,在生成与例外处理有关的控制信号时,控制装置20判断在该例外处理后使动作继续还是使动作结束。在使动作继续的情况下,可以向控制目标指示装置10发送例外处理后的到达位置等,修正控制目标指示的设置。由此,能够在发生例外处理之后接收对应的控制目标指示作为新的控制目标指示。在该情况下,存在在生成新的控制目标指示以前发生处理的延迟的可能性,所以可以根据先前接收到的控制目标指示,适宜地用控制装置20补全直到接收新的控制目标指示为止的动作。

在通过例外处理使动作结束的情况下,生成能够使被控制装置30安全地停止的控制信号来控制被控制装置30。可以以在该定时从被控制装置30发送停止的时间点处的各种参数等信息的方式进行控制。另外,也可以以在动作停止后进行各种参数等的初始化的方式进行控制。

如该图4所示,控制目标指示装置10、被控制装置30以及传感器40分别独立地进行动作,控制装置20不发送接收同步信号而统筹它们的动作。图5是示出被控制装置30彼此之间动作周期等不同的情况下的指示信号的生成、发送以及被控制装置30的动作的执行的图。

设为被控制装置30A的动作周期是10毫秒、相位偏移是0毫秒,被控制装置30B的动作周期是4毫秒、相位偏移是3毫秒。控制装置20依照上述过程生成控制目标(步骤S204)。接下来,生成针对各被控制装置30的指示信号。此外,在该图5中,示出为在相同的定时进行指示信号的生成和发送,但不限于此,也可以预先生成指示信号,依照与各被控制装置30对应的各适配器部210的记述,使发送定时偏移。

生成的针对被控制装置30B的指示信号首先依照与各被控制装置30对应的适配器部210的记述而发送给相对被控制装置30A具有延迟的相位偏移的被控制装置30B(步骤S206B)。

接下来,在偏移了相位偏移量的定时,控制装置20向被控制装置30A发送针对被控制装置30A的指示信号(步骤S206A)。通过这样进行考虑了相位偏移的指示信号的发送,被控制装置30A和被控制装置30B协作地开始动作(步骤S302A、步骤302B)。

接下来,控制装置20关于被控制装置30A以及被控制装置30B的每一个,反复进行与其动作周期符合的指示信号的生成和发送(步骤S206A、步骤S206B)。这样,被控制装置30A以及被控制装置30B不相互发送接收同步信号,并且也不与控制装置20发送接收同步信号,而能够协作地与动作周期符合,并且进行吸收相互的相位偏移的协作动作。

根据各被控制装置30的反馈信号以及传感器40的传感器感知信号,控制装置20适宜适合地校正相位偏移等时间上的偏移以及空间上的偏移。这样,在长时间的运用中,也继续各被控制装置30的协作动作。

此外,在图5中,虽然未考虑通信延迟,但通信延迟当然也能够与相位偏移同样地处理。

接下来,使用伪代码说明例外处理的具体的实现例。图6是示出关于包括例外处理的处理的伪代码的图。

在图6中,作为补全处理的一个例子,示出表示进行线性插值的处理的伪代码。在模块LinearOperation()中记载了进行线性插值的模块。在进行了各种输入输出的变量以及类的定义之后,将各装置连接到通道。在该例子中,设为在作为被控制装置30的deviceA及deviceB之间没有相位偏移,也没有与控制装置20之间的通信延迟,并且在传感器40与控制装置20之间存在通信延迟delay。

根据在适配器部210中记述的通信延迟等,将控制信号发送到各装置。通过该适配器部210的记述以及控制信号的发送定时,能够不对控制目标指示装置10、相互的被控制装置30以及传感器40发送接收同步信号而使各装置执行实时性高的协作动作。

在该图6中,作为一个例子,示出在控制装置20中来自控制目标指示装置10的指示延迟的情况等检测到依赖于控制目标指示装置10的延迟的情况的例外处理。作为适配器的定义,在作为控制目标指示装置10的变量的Operator的适配器内记述了例外处理。

作为未接收到控制目标指示的情况的例外处理,在继续动作的情况下,通过设为value=currentValue+timeOffset*(currentValue-previousValue)/cycle;,根据当前的值与前1个循环的值之差,对timeOffset后的值线性地进行外插插值,作为各被控制装置30以及传感器40的循环内的目标,例如通过deviceA.value+=operator.value;进行外插插值。

作为未接收到控制目标指示的情况的例外处理,在进行安全停止的情况下,通过设为value=currentValue+timeOut*(currentValue-previousValue)/cycle;,在经过timeOut值的时间的期间,使被控制装置30以及传感器40安全地停止。

这样,通过记述通信延迟、相位偏移等作为适配器的定义,能够不发送接收同步信号而进行实时性高的协作动作。

此外,在图6的例子中,设为在作为被控制装置30的deviceA及deviceB之间没有相位偏移等的状态,但不限于此。图7是示出伪代码的其他例子的图。

如该图7所示,能够将作为被控制装置30的deviceA及deviceB的适配器定义设为不同的适配器定义。在图7的例子中,在deviceA与deviceB之间产生作为通信延迟的delay1以及作为相位偏移的shift1的差异,所以在作为deviceB的装置类型的DeviceType2的适配器定义中,设为value=value-delay1-shift1;,吸收这些延迟等并发送控制信号。在相对传感器也同样地存在相位偏移的情况下,如图7进行适配器的定义。

另外,在图6中,记述了控制目标指示装置10所引起的例外处理,但如图7,在例如引起DeviceType1固有的例外处理的情况下,也可以在DeviceType1的适配器定义中记述例外处理。这样,还能够记述各装置固有的例外处理。

如上所述,作为发生例外处理的原因,存在例如发生设备彼此的冲突的事由、通信异常(通信障碍)、其他一般可能对人类或者装置造成危险的事由。为了检测通信的异常,在从operator进行通信的情况下,既可以从deviceA等经由适配器向operator发送应答信号(例如ACK/NACK等信号),也可以根据用相机等拍摄的图像解析各设备的动作来检测没有在进行通信。另外,也可以监视通信状态,用各设备或者operator等检测。

即,如上所述,在控制目标指示的接收的延迟、针对被控制装置的控制信号的生成的延迟、被控制装置的动作的时间上的偏移、被控制装置的动作的空间上的偏移以及通信异常中的至少1个发生的次数在预定的次数以下的情况下,补全被控制装置的动作而进行控制。另一方面,在控制目标指示的接收的延迟、针对被控制装置的控制信号的生成的延迟、被控制装置的动作的时间上的偏移、被控制装置的动作的空间上的偏移以及通信异常中的至少1个发生的次数超过预定的次数的情况下,进行安全地停止被控制装置的动作的控制。

图8是示出本实施方式的具体的实现的一个例子的图。

在Fog级中,存在控制目标指示装置10,控制目标指示装置10与控制装置20之间的通信通过使用TCP/IP的以太网连接。关于控制目标指示装置10与控制装置20之间的通信,无需实时性高的通信,所以可以是这样使用通常的TCP/IP的通信。

控制装置20存在于单元级(cell level),例如,用EtherCAT(注册商标)与各被控制装置30连接,用通过能够忍受数据量比与被控制装置30的通信多的通信的TSN(Time-Sensitive Networking,时间敏感网络)扩展的以太网与传感器连接。与控制目标指示装置10相比,在被控制装置30及传感器40与控制装置20之间,需要实时性更高的通信,所以例如通过利用这样扩展的以太网的通信方法连接。

各被控制装置30既可以如图8所示环状地连接,也可以多个被控制装置30与控制装置20分别连接。

传感器40经由交换机42及控制器44与控制装置20连接。通过使用TSN扩展的以太网,能够忍受数据量多的通信,并且优先低延迟的通信,所以能够向控制装置20发送实时性高的感知信息。

通过这样连接,传感器40能够感知多个被控制装置30的动作状态,并尽快向控制装置20发送感知到的信息。而且,如上所述,能够不发送同步信号而根据控制目标指示装置10生成的控制目标指示来发送各被控制装置30的控制指令。

如以上所述,根据本实施方式,通过推测各被控制装置30的动作周期等,在与各被控制装置30对应的适配器部210中记述该动作周期等,在控制装置20中吸收通信延迟、相位偏移等延误、移位、时延等并发送控制信号,能够不进行同步信号的发送接收而在实时性高的通信(被控制装置30及传感器40与控制装置20之间)和并非如此的通信(控制目标指示装置10与控制装置20之间)混合存在的状态下执行依照控制目标指示装置10生成的控制目标指示的多个被控制装置30的控制。通过设为这样的结构,能够在控制目标指示装置10中生成精密度更高的控制目标,并且能够在被控制装置30以及传感器40中进行实时性高的控制。

此外,既可以在控制装置20中吸收系统1内的全部延迟等,也可以吸收一部分的延迟等。在控制装置20中吸收全部延迟等的情况下,存在如传感器40的来自外部的观测单元即可。这是因为,能够根据来自外部的观测单元与各被控制装置30的当前的指示状态的偏移,通过控制装置20或者周边设备分析各被控制装置30的延迟特性,在控制装置20内的与各被控制装置30对应的适配器部中记述延迟特性,程序处理部使用该延迟特性生成命令列。在此,延迟特性是指,不仅包括值和工作延迟,而且还包括各被控制装置30等的特性的概念。另外,可以在各被控制装置30中包括如控制目标指示装置10的装置作为使用深度学习的装置。

该DSL是通过事先构成其构成元素的动态测试已确认动态特性、特别是CPU时间的特性的DSL,通过DSL对其进行合成的应用逻辑是明确以何种程度的概率满足期望的实时属性的应用逻辑。另外,能够在相位偏移地动作的被控制设备、周期本来不同的装置或者延迟特性或抖动特性不同的装置等中保证准实时性并且补全中间值。

而且,应对不满足期望的实时特性的情况,定义向设备的输出数据部分中的默认策略、紧急时策略。默认策略、紧急时策略以嵌入的硬实时(hard real-time)处理进行动作,在没有实时地赶上控制的情况下,在作为准实时进行动作的情况下采纳。在默认策略持续一定时间以上的情况下判断为紧急,能够通过紧急时策略进行安全停止。由此,能够保证系统自身的安全,并且还防止系统内的各种设备的故障等。

在上述实施方式中,单独地具备控制装置20和被控制装置30,但不限于此。也可以在相同的机械、装置内具备控制装置20和被控制装置30。另外,在该情况下,也可以多个被控制装置包括于1个装置。

图9是示出1个实现例的示意图。例如,系统1设置于1体的机器人1R的内部。在机器人1R内具备控制周期未同步的多个被控制装置30的情况下,也能够应用上述实施方式。

例如,各个被控制装置30连接传感器、致动器,执行用于实现任务关键处理的控制环路。在属于不同的被控制装置30的传感器以及致动器进行协调动作的情况下,通过应用本实施方式,能够执行控制周期、各传感器的测量周期的偏移的校正以及处理时间的波动、通信延迟的吸收等。通过进行这些校正等,在操作机器人1R的情况下,能够实现实时性。

可以在处理时间、通信延迟等超过预定的阈值的情况、例如处理时间、通信延迟等超过预定的时间那样的情况下,针对每个被控制装置30执行安全地中止预先定义的协调动作作业的处理。如上所述,也可以在该处理中发生预先定义的处理的例外的情况下进行紧急停止。

例如,如图9所示,机器人1R具备作为2个被控制装置的臂300、302。这些臂300、302能够进行协作操作。在进行把持1个物体的协作操作的情况下,即使在关于臂300、302的控制周期未取得同步的情况下,通过关于各个被控制装置校正该控制周期的偏移,各臂部也协作地动作并实现把持动作。

例如,在与作为被控制装置的臂300、302的通信中发生大的延迟而必须停止协作操作的情况下,在急停止时有时对把持的物体造成损伤。在这样的情况下,通过预先在程序部中定义例外处理,能够定义依照作为被控制装置的各个臂300、302的动作的安全停止处理。例如,通过该定义,能够使臂300、302缓慢地停止,不损伤物体地进行处理。

如上所述,系统1、即机器人1R也可以具备传感器40。例如,机器人1R具备相机400。关于与相同的控制装置20连接的传感器40以及被控制装置30,也能够如上所述根据本实施方式分别控制。在1个控制装置20中,一般是用总线时钟等控制信号执行同步的方法,但例如在计算量是可变的且与时钟周期符合而没有确定计算结果的处理、传感器的测量周期并非恒定的情况下,使用利用校正值的同步处理。

在图9的例子中,1个控制装置20能够根据相机400取得的影像控制使用臂300、302把持物体。即使关于臂300、302以及相机400具有不同的同步周期,根据本实施方式,根据来自相机400的影像控制臂300、302,即使在发生例外的情况下,也能够适合地进行协作动作。

而且,在经由因特网等数据通信网络对机器人进行远程操作的情况下,也能够应用本实施方式。即使在通信延迟变大的情况、有数据缺损的情况下,也能够进行实时性高的系统控制。由此,操作对象的机器人根据预先定义的例外处理,能够降低成为紧急停止等异常事态的可能性。这样,还能够继续利用机器人的任务关键作业。

另外,上述实施方式涉及的装置能够作为控制多个被控制装置的控制装置实施,该控制装置具备:

控制指示接受部,关于所述被控制装置中的每个被控制装置,接收成为所述控制的目标的控制目标指示;以及

控制处理生成部,根据接收到的所述控制目标指示,生成进行所述被控制装置的动作的控制的信号,

根据关于所述被控制装置中的每个被控制装置的通信延迟时间、相位偏移时间以及动作周期时间,以使所述被控制装置中的每个被控制装置协作地到达控制的目标的方式进行动作的控制。

另外,上述实施方式涉及的方法能够作为控制多个被控制装置的控制方法实施,该控制方法具备:

关于被控制装置的中的每个被控制装置,接收成为控制的目标的控制目标指示的步骤;

根据接收到的控制目标指示,生成进行所述被控制装置的动作的控制的信号的步骤;以及

根据关于所述被控制装置中的每个被控制装置的通信延迟时间、相位偏移时间以及动作周期时间,以使所述被控制装置中的每个被控制装置协作地到达控制的目标的方式进行动作的控制的步骤。

另外,上述实施方式涉及的程序能够作为使计算机控制多个被控制装置的程序实施,该程序执行:

关于所述被控制装置的中的每个被控制装置,接收成为控制的目标的控制目标指示的步骤;

根据接收到的控制目标指示,生成进行所述被控制装置的动作的控制的信号的步骤;以及

根据关于所述被控制装置中的每个被控制装置的通信延迟时间、相位偏移时间以及动作周期时间,以使所述被控制装置中的每个被控制装置协作地到达控制的目标的方式进行动作的控制的步骤。

在上述全部记载中,系统1的至少一部分既可以用硬件构成,也可以用软件构成而由CPU(Central Processing Unit,中央处理单元)等通过软件的信息处理实施。在用软件构成的情况下,可以将实现系统1及其至少一部分的功能的程序收纳到软盘、CD-ROM等存储介质,使计算机读入并执行。存储介质不限定于磁盘、光盘等可装卸的例子,也可以是硬盘装置、存储器等固定型的存储介质。即,利用软件的信息处理可以是使用硬件资源具体地实现的信息处理。而且,利用软件的处理也可以是安装到FPGA(Field-Programmable GateArray,现场可编程门阵列)等电路而由硬件执行的处理。学习模型的生成、输入到学习模型之后的处理例如可以使用GPU(Graphical Processing Unit,图形处理单元)等加速器进行。

另外,本实施方式所涉及的学习模型能够用作作为人工智能软件的一部分的程序模块。即,以计算机的CPU根据储存于控制目标指示装置10的模型针对由传感器40检测出的数据或者成为动作目标的数据进行运算并从已学习模型输出结果的方式动作。

根据上述全部记载,本领域技术人员能够想到本发明的追加、效果或者各种变形,但本发明的方案不限定于上述各个实施方式。能够在不脱离从权利要求书中规定的内容及其等同物导出的本发明的概念上的思想和要旨的范围内进行各种追加、改变以及部分性删除。

符号说明

1:系统

10:控制目标指示装置

20:控制装置

200:动作周期推测部

202:控制指示接受部

204:控制处理生成部

206:例外处理执行部

208:程序储存部

210:适配器部

30:被控制装置

40:传感器

1R:机器人

300、302:臂

400:相机

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:创建和管理智能可编程逻辑控制器解决方案的方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!