首页> 中国专利> 面向通用服务机器人的多指令响应式任务协同管理方法

面向通用服务机器人的多指令响应式任务协同管理方法

摘要

本发明提供了面向通用服务机器人的多指令响应式任务协同管理方法,设备由三个独立进程构成,分别为态势处理单元(SU)、任务处理单元(TU)、动作处理单元(AU)。这三个进程彼此独立,相互协作。进程之间通过TCP的消息总线实现数据交换。本发明在应用系统运行过程中,基础软件根据内核运行机制以及应用场景模式特点,对各个应用进程任务进行有序调度,保证资源使用的正确性与合理性,强化了运行管理机制,保证服务机器人的正常工作。

著录项

  • 公开/公告号CN113268352A

    专利类型发明专利

  • 公开/公告日2021-08-17

    原文格式PDF

  • 申请/专利号CN202110653407.4

  • 申请日2021-06-11

  • 分类号G06F9/50(20060101);G06F9/54(20060101);

  • 代理机构32252 南京钟山专利代理有限公司;

  • 代理人张明浩

  • 地址 211135 江苏省南京市麒麟科创园创研路266号人工智能产业园4号楼11楼

  • 入库时间 2023-06-19 12:14:58

说明书

技术领域

本发明涉及机器人软件领域,具体涉及面向通用服务机器人的多指令响应式任务协同管理方法装置。

背景技术

随着软硬件技术与产品的不断成熟,服务机器人逐渐走入终端消费市场。服务机器人以机器人机体为载体,通过软件,以人机交互的方式为终端消费者日常生活提供娱乐、信息服务、行为辅助等帮助。服务机器人的应用场景较为广阔,在大量的家庭、公共空间、商业设施、娱乐设施、文化教育以及卫生等领域均有较为强烈的产品需求。这些场景在实际应用过程中,对产品的形态、功能具有一定差异性。但是对于底层机器人硬件载体、基础软件层面的技术与产品需求具有一定共性。前述的差异性更多的是体现在应用软件层面。因此,针对服务机器人研制通用软件以及配套平台系统对于促进我国未来智慧产业发展具有积极的意义。同时,也具有广阔的市场前景。

服务机器人是一个集硬件、软件、网络于一体,高度复杂的综合体。同时,机器人以大量自然形式的语音、图像、动作作为交互的手段。它是目前终端市场中智能化、集成化水平最高的产品。在其软件构建过程中,需要充分考虑主要技术的当前发展水平与发展趋势。作为通用软件,其在设计阶段需要充分考虑产品的形态、应用模式、用户习惯特点等要素。将现有的语音\视频\图像识别、高精度定位导航、基于机器识别的自主行为、前沿人机交互技术等有机地结合在一起。实现完整功能集的构造。在这一功能集的基础上,生产厂商实现其应用系统的开发集成。

机器人在任务执行过程中,其机体收到多种因素影响,由于其机体运动的特点,从安全性的角度出发,需要及时对各种外部环境变化做出正确调整。在传统的过程控制方法中,应用由一个进程构成,应用进程通常运行在一个CPU中。该进程根据指令将任务实例化。在这个任务实例中,将该任务分解成为一组动作,这组动作采用栈或者队列方式顺序执行。在机体运动过中,该进程所依宿的CPU一方面要处理各种外部信息,包括语音\图像、激光雷达扫描等。另一方面还要调度各种动作的执行。该CPU会处于高度负载的运行状态,进而会导致信息处理的滞后以及动作调度的不同步。在特殊情况下,会导致机体行为异常,甚至危害周边事物安全的事故发生。

发明内容

本发明针对现有技术中的不足,提供一种面向通用服务机器人的多指令响应式任务协同管理方法。

为实现上述技术目的,本发明采取的技术方案为:

面向通用服务机器人的多指令响应式任务协同管理方法,包括以下步骤:

第一步:系统由三个独立的线程构成,分别为态势处理单元SU,任务处理单元TU,动作处理单元AU,系统在启动后,这三个线程独立运行,系统整体部署在机器人的操作系统之上,这三个进程之间通过TCP消息通道实现数据交换,

第二步:应用开发过程中,根据实际需求实现业务逻辑的定义,同时,根据不同类别的事件定义对应的响应动作操作,这些响应动作定义由统一的接口进行封装,运行过程中,系统通过配置信息,调用对应的实例,

第三步:在机器人运行,初始阶段处于值守状态,等待外部指令,SU在接收到的外部信息的基础上进行数据处理,识别并过滤出明确的任务指令,

第四步:SU将任务指令发送给TU,TU接收到指令后,根据业务逻辑定义,加载指令对应的任务,该任务为独立的线程对象TUT,TUT完成指令规定的操作集合,TUT创建后被放置在TU本地的线程池中以进行生命周期内的管理与调度,

第五步:TU根据策略,对任务进行规划,将任务分解为一组独立的指令执行动作,同时,根据周边与机器人自身状态进行编排,完成上述操作后,将指令执行动作编排方案装定给TUT,

第六步:TUT任务编排方案装定完毕后,通过消息总线通知AU,AU接收到信息后,根据消息在本地创建对应的任务线程对象AUT,AUT与TUT实现映射绑定,同时,AUT被AU放置在本地的线程池中以与TUT进行双向同步的生命周期管理,

第七步:完成上述操作后,TUT开始根据任务编排方案顺序执行单步指令动作,在指令执行过程中,为每个单步指令执行创建一个独立的子线程对象TUTO,同时,AUT也建立对应的指令执行子线程对象AUTO,AUTO与TUTO通过消息总线实现数据双向交换与状态信息同步,

第八步:完成AUTO与TUTO的创建和绑定后,AUTO根据任务线程对象的指令开始动作执行,AUTO通过统一封装的接口,调用底层设备的驱动程序,实现对底层设备的操作,机器人在这一过程中实现动作的执行,

第九步:AUTO的动作执行完毕后,将状态封装为对应的事件消息,并反馈给TUTO,TUTO将事件消息上报给TUT,TUT根据任务编排方案,结束当前TUTO\AUTO的生命周期,收回其占用的资源,启动并执行后续的动作,

第十步:完成全部或动作后,TUT构造任务完成的事件消息,并上报给TU,TU根据该消息实现TUT\AUT线程对象资源的回收与销毁,并将机器人重新置于值守待机状态,

第十一步:在TUTO\AUTO的动作执行过程中,机器人受到外部环境影响,AUTO通过底层调用的抛出的异常,获取动作执行失败的信息,根据信息分类构造对应的事件消息,并将该消息通过消息总线发送给对应的TUTO,TUTO接收到该消息后,检索对应的策略进行对应的处理操作,

第十二步:当TUTO无法对当前事件消息检索到对应响应处理时,将该消息上报给TUT,TUT根据配置的响应策略进行动作任务的重新编排,构造新响应动作,实现外部反馈,完成响应后,任务继续按照第八步的方式继续执行直至完毕或终止,

第十三步:在任务执行过程中,机器人收到用户新的指令,在这一过程中,SU将指令识别后发送给TU\AU,TU\AU根据响应策略暂停当前正在执行的动作,TU根据调度策略,判断当前指令的优先级,如果当前指令需要优先执行,则暂停当前的任务线程TUT\AUT并释放任务占用的资源,为当前指令创建新的任务对象,将新的任务对象放置在任务池中优先执行,任务执行完毕后,根据策略判断是否继续执行被暂停的任务,如果当前指令不需要优先执行,则将其放置在消息栈中,在当前任务执行完毕后,根据消息栈的管理机制实现后续执行调度,

第十四步:在机器人任务执行过程中,系统自身会产生一些事件,AUTO\TUTO接收到这些事件消息后,将其上报给TUT\AUT,TUT\AUT根据事假消息,执行对应的响应策略动作,同时,将状态信息反馈给TU\AU,以便于TU\AU及时调度任务。

为优化上述技术方案,采取的具体措施还包括:

上述的SU负责外部输入设备的数据接收、处理、融合以及指令消息的识别、加工与发布;TU负责任务规划与执行动作编排,在运行过程中,实现各种状态变化时的动作响应以及任务调度操作;AU负责单步动作的执行操作,其通过统一封装的接口实现底层输出或动作机构对调用。

在日常运行中,SU根据系统定义,为指令建立侦听,当特定的设备采集数据命中指令定义后,通过多通道融合处理的方式实现指令的识别与提取,完成指令提取后,将指令jobMsg发布给TU\AU。

在指令提取过程中,首先根据定义通过单一设备获取数据命中,而后建立一个固定的时间窗口,SU通过不同设备获取对应的采集数据,判断这些采集数据是否满足应用定义的消息命中阈值设定,当满足设定后,而后,根据定义将数据聚合成为指令信息,如果在时间窗口为没有收集到全部满足要求的数据则判断当前指令无效、撤销时间窗口,进入值守状态等待后续指令的下达。

TU接收到SU发送的jobMsg指令后,根据指令分类与数据装定,构造任务对象THT,该对象为独立的线程对象,其运行状态不影响TU的运行过程,TU通过线程池实现对TUT的管理,TU通过消息栈的方式,将接收到SU发送的指令进行管理,当任务执行完毕后,从消息栈中获取下一个指令构造任务并执行,在调度过程中,如果一个任务TUT

AU中建立与THT对应的AUT,两者之间通过消息总线实现数据交换、状态信息同步,THT的各种动作指令通过AUT下达,AUT在执行过程中,收集执行状态信息,反馈给THT。

TUTO在AUT中构建对应的AUTO,AUTO实现对底层输出\动作机构的调用执行,在执行过程中,AUTO根据定义,对这些底层输出\动作机构进行资源锁控制,以保证动作执行的正确性与安全性。

AUTO执行完毕单个动作后,将状态信息封装为事件消息反馈给对应TUTO,TUTO完成响应操作后,将状态事件消息上报給TUT,TUT收回TUTO\AUTO占用的资源并销毁,完成单步动作的整个生命周期管理操作,而后顺序执行下一个动作,直至整个任务执行完毕。

TUT完成全部动作执行后,通知AUT并上报给TU,TU回收TUT\AUT占用的资源并销毁,完成任务整个生命周期管理操作,根据调度策略,从消息栈中获取后续的任务指令执行,直至任务执行完毕。

机器人在执行过程中,受到外部条件影响导致无法继续完成任务时,AUTO在这一过程中,通过捕捉底层设备驱动抛出的异常,获取状态信息,AUTO根据异常分类识别动作执行失败的原因,检索应用定义的响应策略,并通过反射调用的方式实现策略实例的创建、与执行调用,当AUTO无法执行失败响应逻辑时,其根据异常分类构造对应的事件消息,发送给THO进行响应处理,如果THO无法检索到匹配的响应处理操作,则将消息发送给THT,THT根据消息重新规划编排执行动作,实现响应处理,或通知TU结束当前任务。

在机器人任务执行过程中,接收到外部新的指令jobMsg,SU获取指令jobMsg后发送给TU,TU根据当前任务THT

当在机器人任务执行过程中,系统自身会产生一些事件,TU\AU接收到这些消息后,根据策略,对正在运行的TUT\AUT进行暂停或终端或终止或继续执行的调度响应。

服务机器人的运行过程具有一定的特殊性。通常情况下,任务由一个结构化指令启动。系统根据预定义将指令分解为的一组具体动作并逐一完成全部内容。另一方面,服务机器人的应用场景具有一定的开放性与不确定性。在一个任务完整执行过程中,可能受到外界环境干扰、指令变更等因素影响,需要结合条件识别与判断策略进行暂停、终止、等待、复原等状态调整。服务机器人由具有高度复杂结构的硬件设备、动作执行机构构成。在上述调整过程中,需要考虑机体行为安全性的问题,避免因自身动作导致的周边环境破坏等情况的发生。因此,服务机器人不能以完全的任务驱动方式实现应用动作的执行。而应该在任务执行过程中,根据外部环境变化的闭环反馈调整自身执行动作,保证机器人行为的正确性、安全性。

本发明的由三个独立进程构成,分别为态势处理单元(SU)、任务处理单元(TU)、动作处理单元(AU)。这三个进程彼此独立,相互协作。进程之间通过TCP的消息总线实现数据交换。在该机制中,根据机器人行为特点,采用感知-决策-动作三单元独立的协同组织架构。每个单元由一个独立进程构成。该进程可以为三个独立CPU节点运行,也可以为在一个节点上三个独立内核运行。每个进程单元分别独立处理各自的任务内容。本发明能在外界环境干扰、指令变更等因素影响下,结合条件识别与判断策略进行暂停、终止、等待、复原等状态调整,实现对各个应用进程任务进行有序调度,保证资源使用的正确性与合理性,强化了运行管理机制,保证服务机器人的正常工作。

附图说明

图1为根据特定的语音指令内容进行对应的任务执行的流程图;

图2为本发明执行动作的流程图;

图3为本发明任务调度的流程图;

图4-6为本发明多指令事件的响应与处理的流程图;

图7为本发明环境反馈事件的响应与处理的流程图;

图8为本发明状态事件的响应与处理的流程图。

具体实施方式

以下对本发明的实施例作进一步详细描述。

面向通用服务机器人的多指令响应式任务协同管理方法,包括以下步骤:

第一步:系统由三个独立的线程构成,分别为态势处理单元SU,任务处理单元TU,动作处理单元AU,系统在启动后,这三个线程独立运行,系统整体部署在机器人的操作系统之上,这三个进程之间通过TCP消息通道实现数据交换,

第二步:应用开发过程中,根据实际需求实现业务逻辑的定义,同时,根据不同类别的事件定义对应的响应动作操作,这些响应动作定义由统一的接口进行封装,运行过程中,系统通过配置信息,调用对应的实例,

第三步:在机器人运行,初始阶段处于值守状态,等待外部指令,SU在接收到的外部信息的基础上进行数据处理,识别并过滤出明确的任务指令,

第四步:SU将任务指令发送给TU,TU接收到指令后,根据业务逻辑定义,加载指令对应的任务,该任务为独立的线程对象TUT,TUT完成指令规定的操作集合,TUT创建后被放置在TU本地的线程池中以进行生命周期内的管理与调度,

第五步:TU根据策略,对任务进行规划,将任务分解为一组独立的指令执行动作,同时,根据周边与机器人自身状态进行编排,完成上述操作后,将指令执行动作编排方案装定给TUT,

第六步:TUT任务编排方案装定完毕后,通过消息总线通知AU,AU接收到信息后,根据消息在本地创建对应的任务线程对象AUT,AUT与TUT实现映射绑定,同时,AUT被AU放置在本地的线程池中以与TUT进行双向同步的生命周期管理,

第七步:完成上述操作后,TUT开始根据任务编排方案顺序执行单步指令动作,在指令执行过程中,为每个单步指令执行创建一个独立的子线程对象TUTO,同时,AUT也建立对应的指令执行子线程对象AUTO,AUTO与TUTO通过消息总线实现数据双向交换与状态信息同步,

第八步:完成AUTO与TUTO的创建和绑定后,AUTO根据任务线程对象的指令开始动作执行,AUTO通过统一封装的接口,调用底层设备的驱动程序,实现对底层设备的操作,机器人在这一过程中实现动作的执行,

第九步:AUTO的动作执行完毕后,将状态封装为对应的事件消息,并反馈给TUTO,TUTO将事件消息上报给TUT,TUT根据任务编排方案,结束当前TUTO\AUTO的生命周期,收回其占用的资源,启动并执行后续的动作,

第十步:完成全部或动作后,TUT构造任务完成的事件消息,并上报给TU,TU根据该消息实现TUT\AUT线程对象资源的回收与销毁,并将机器人重新置于值守待机状态,

第十一步:在TUTO\AUTO的动作执行过程中,机器人受到外部环境影响例如:障碍物无法越过无法执行动作时,AUTO通过底层调用的抛出的异常,获取动作执行失败的信息,根据信息分类构造对应的事件消息,并将该消息通过消息总线发送给对应的TUTO,TUTO接收到该消息后,检索对应的策略进行对应的处理操作,

第十二步:当TUTO无法对当前事件消息检索到对应响应处理时,将该消息上报给TUT,TUT根据配置的响应策略进行动作任务的重新编排,构造新响应动作,实现外部反馈,完成响应后,任务继续按照第八步的方式继续执行直至完毕或终止,

第十三步:在任务执行过程中,机器人收到用户新的指令,在这一过程中,SU将指令识别后发送给TU\AU,TU\AU根据响应策略暂停当前正在执行的动作,TU根据调度策略,判断当前指令的优先级,如果当前指令需要优先执行,则暂停当前的任务线程TUT\AUT并释放任务占用的资源,为当前指令创建新的任务对象,将新的任务对象放置在任务池中优先执行,任务执行完毕后,根据策略判断是否继续执行被暂停的任务,如果当前指令不需要优先执行,则将其放置在消息栈中,在当前任务执行完毕后,根据消息栈的管理机制实现后续执行调度,

第十四步:在机器人任务执行过程中,系统自身会产生一些事件,AUTO\TUTO接收到这些事件消息后,将其上报给TUT\AUT,TUT\AUT根据事假消息,执行对应的响应策略动作,同时,将状态信息反馈给TU\AU,以便于TU\AU及时调度任务。

实施例中,SU负责外部输入设备的数据接收、处理、融合以及指令消息的识别、加工与发布;TU负责任务规划与执行动作编排,在运行过程中,实现各种状态变化时的动作响应以及任务调度操作;AU负责单步动作的执行操作,其通过统一封装的接口实现底层输出或动作机构对调用。

在日常运行中,SU根据系统定义,为指令建立侦听,当特定的设备采集数据命中指令定义后,通过多通道融合处理的方式实现指令的识别与提取,完成指令提取后,将指令jobMsg发布给TU\AU。

在指令提取过程中,首先根据定义通过单一设备获取数据命中,而后建立一个固定的时间窗口,SU通过不同设备获取对应的采集数据,判断这些采集数据是否满足应用定义的消息命中阈值设定,当满足设定后,而后,根据定义将数据聚合成为指令信息,如果在时间窗口为没有收集到全部满足要求的数据则判断当前指令无效、撤销时间窗口,进入值守状态等待后续指令的下达。

TU接收到SU发送的jobMsg指令后,根据指令分类与数据装定,构造任务对象THT,该对象为独立的线程对象,其运行状态不影响TU的运行过程,TU通过线程池实现对TUT的管理,TU通过消息栈的方式,将接收到SU发送的指令进行管理,当任务执行完毕后,从消息栈中获取下一个指令构造任务并执行,在调度过程中,如果一个任务TUT

AU中建立与THT对应的AUT,两者之间通过消息总线实现数据交换、状态信息同步,THT的各种动作指令通过AUT下达,AUT在执行过程中,收集执行状态信息,反馈给THT。

TUTO在AUT中构建对应的AUTO,AUTO实现对底层输出\动作机构的调用执行,在执行过程中,AUTO根据定义,对这些底层输出\动作机构进行资源锁控制,以保证动作执行的正确性与安全性。

AUTO执行完毕单个动作后,将状态信息封装为事件消息反馈给对应TUTO,TUTO完成响应操作后,将状态事件消息上报給TUT,TUT收回TUTO\AUTO占用的资源并销毁,完成单步动作的整个生命周期管理操作,而后顺序执行下一个动作,直至整个任务执行完毕。

TUT完成全部动作执行后,通知AUT并上报给TU,TU回收TUT\AUT占用的资源并销毁,完成任务整个生命周期管理操作,根据调度策略,从消息栈中获取后续的任务指令执行,直至任务执行完毕。

机器人在执行过程中,受到外部条件影响导致无法继续完成任务时,AUTO在这一过程中,通过捕捉底层设备驱动抛出的异常,获取状态信息,AUTO根据异常分类识别动作执行失败的原因,检索应用定义的响应策略,并通过反射调用的方式实现策略实例的创建、与执行调用,当AUTO无法执行失败响应逻辑时,其根据异常分类构造对应的事件消息,发送给THO进行响应处理,如果THO无法检索到匹配的响应处理操作,则将消息发送给THT,THT根据消息重新规划编排执行动作,实现响应处理,或通知TU结束当前任务。

在机器人任务执行过程中,接收到外部新的指令jobMsg,SU获取指令jobMsg后发送给TU,TU根据当前任务THT

当在机器人任务执行过程中,系统自身会产生一些事件,TU\AU接收到这些消息后,根据策略,对正在运行的TUT\AUT进行暂停或终端或终止或继续执行的调度响应。

本发明的态势处理单元(SU):态势处理单元通过底层连接各种外部输入设备,包括音频、视频采集设备、激光雷达、精确定位等。在运行过程中,态势处理单元为上述设备建立对应的数据接收通道与数据处理模块。在增量过程中,实现外部数据的采集以及信息的提取。同时,根据任务定义,建立值守机制,将多种实时采集的信息进行融合处理,识别并捕捉应用所需的各种任务相关消息,并在产生的消息发布给其他的进程单元,为决策、动作执行提供依据;

任务处理单元(TU):任务处理单元负责根据应用定义执行任务过程。其将任务分解为一组执行动作,并通过执行栈实现执行顺序组织。并将任务定义的消息schema发送给态势处理单元。在任务处理过程中,其根据执行顺序将执行动作指令发送给动作处理单元。在动作处理过程中,建立对应的绑定关系,及时收集动作处理单元在执行当前动作时的机体自身各种反馈信息。另一方,其也通过态势处理单元获取外部环境信息。在两种信息融合处理的基础上,根据应用预定义的策略对当前动作及时做出暂停、终止、变更等响应,在满足任务执行的同时,保证机体反馈响应的正确性以及安全性;

动作处理单元(AU):动作处理单元负责执行具体的单步任务。其控制输出设备、动作执行机构。在运行过程中,其接收任务处理单元发送的动作指令。根据动作指令控制相关设备\机构的运行。在动作执行过程中收集机体的状态信息、执行过程信息等及时反馈给任务处理单元。同时,其也接受态势处理单元发送的相关消息。根据响应定义对当前机体动作做出对应的控制调整。

以下具体讲述本发明任务与动作执行调度的方法:

1.1任务的启动与执行

服务机器人在设计阶段,开发人员根据应用需求实现不同任务的定制开发,将特定的任务流程逻辑进行编排。同时,根据服务机器人的基本原则,将任务执行过程中接收到外部事件消息进行响应定义。保证机器人的正常运作。在日常运行中,服务机器人处于待机状态。其通常根据特定的语音指令内容进行对应的任务执行。在这一过程中,机器人在值守状态通过态势处理单元(SU)接收语音数据,经过识别为有效指令内容后,将信息发送给任务处理单元(TU)。TU接收到任务指令后,根据当前机体状态进行任务调度,执行当前语音指令要求的任务内容。这一过程图1所示。

整体任务执行过程:

1、任务指令接收阶段:态势处理单元(SU)通过音频采集设备接收指令信息理解指令并映射为指令编码,根据编码检索对应的消息规则。根据消息规则定义,在约束的时间窗口内,从其它外设获取相关数据。从不同外设提取信息,构造消息并发送给任务处理单元开始后续执行。

2、任务决策与规划阶段:任务处理单元(TU)接收消息,根据消息类别检索对应的响应操作定义。

如果为应急任务,直接调用行为处理单元,如果当前任务为普通任务则进行任务规划与编排。系统根据消息内容进行任务对象的实例化与加载,根据应用定义以及当前机体状态进行规划,将任务分解为一组执行动作并进行规划与编排。在每个执行动作配置相关的响应种策略。同时,根据当前任务的优先级,配置执行动作的优先级。完成全部处理后将任务信息发送送给动作处理单元。

3、动作执行阶段:动作处理单元(AU)接收任务的动作执行信息,根据优先级进行任务动作调度。AU开始执行当前任务,获取当前状态并记录。根据任务规划,按照步骤执行。在执行过程中,根据策略进行各个外部设备的调用。在每个规划步骤执行过程中,维护当前状态,完成全部任务执行后续,根据定义恢复状态并通知系统。

1.2动作的执行

在整个任务的执行,TU以任务主线程TUT为基础,为单步执行动作建立独立的线程对象(TUTO)。同时,在AU中绑定的AUT建立对应的执行线程对象(AUTO),两个线程对象实现映射绑定。在运行过程中,通过消息总线实现状态信息的同步。

在动作执行启动阶段,TUT首先根据当前状态将指令动作的TUTO实例化,同时完成相关数据的加载与装定。完成处理后将该对象放置在对象池中以便于后续管理。之后,TUT在TUTO序列化的基础上,将相关信息通过总线发送给AUT。AUT接收到这一信息后,自动在本地建立对应的AUTO对象并在本地对象池中进行管理。TUT在接收到反馈信息后将TUTO与AUTO进行绑定,而后TUT的任务主线程启动TUTO的线程执行。TUTO在线程启动后,通过AUT的任务主线程将对应的AUTO线程进行对应的启动执行操作。AUTO的线程内部根据应用定义的动作持续执行,直至当前动作执行完毕或被外部条件终止。这一过程如图2所示。

通常一个动作执行需要一个过程。在这一过程中AUTO以独立线程的方式不断控制输出设备\动作机构运行,并将状态信息通过消息总线反馈给TOTU。由于AUTO和TOTU都是独立于TUT和TUT任务主线程的动作子线程。因此,任务主线程可以根据外部环境变化以及任务执行状态对动作子线程进行调整,以实现及时响应与修正的目的。

1.3执行过程中的任务调整与动作修正

在动作执行过程中,受外部环境的影响(例如:新的语音指令接收、当前行动路线存在不可规避的障碍、当前动作机构运动受限等)时,机器人需要及时调整当前动作以保证安全性。根据机体状态这一修正主要包括两个环节:

1、暂停当前动作执行:根据机器人当前状态,及时停止当前机器人的运行。并产生相关的事件消息发送给TU。

2、修正当前执行动作:TU根据事件消息与应用预定的策略,对当前执行动作进行新的指令动作规划。在这一基础上用新编排的TUTO\AUTO替换处于暂停状态的TUTO\AUTO,并启动执行。

1.4任务调度

机器人在任务执行过中,一定情况下会被新的指令打断。在这一过程中,TU通过消息栈的方式,将接收到SU发送的指令进行管理。当任务执行完毕后,从消息栈中获取下一个指令构造任务并执行。在调度过程中,如果一个任务TUT

2.事件响应与处理

在机器人的任务执行过程中,其因自身动作限制、周边环境、外部指令等因素影响,需要对修正任务的执行。在这一过程中,系统需要根据各类事件的特点对应用任务的执行线程进行各种干预操作。在系统中,事件基本由以下几个类别构成:

1、多指令事件:通过语音、网络连接传输等方式,向机器人发送的指令。机器人需要根据指令内容执行对应的任务。如果当前机器人处于某个任务的执行状态。则根据指令的优先级进行调度,确保机器人的正常工作。

2、环境反馈事件:在运行过程中,因障碍物、环境温度等因素形成的事件。机器人通过SU接受到相关信息后,构造对应的事件消息发送给TU。TU根据策略,重新规划任务,对当前执行的动作进行修正,保证机器人顺利完成当前操作。

3、执行状态事件:在TU\AU的任务执行过程中,系统在指令动作执行各个阶段的一些状态事件。通过这些事件系统可以掌握各个动作执行的启动、中间过程、结束、暂停等状态,因此可以调用对应的配置策略,保证动作的正确执行。

4、系统状态事件:系统运行过程中一些内部网络通讯、底层数据读写等事件。在特定情况下,应用配置对应的策略,以便在系统发生内部故障时及时响应,确保系统整体的安全性与可靠性。

2.1多指令事件的响应与处理

在机器人运行过程中,SU通过音频采集设备,获取外部的音频数据。进过处理后识别其中的指令信息。当指令信息识别后根据应用定制的消息格式融合其他数据形成指令事件消息,而后将其发送给任务处理(TU)。这一过程如图4。

TU接收到指令事件消息后,进过调度机制控制当前正在执行的任务主线程并判断当前指令是否与正在执行的任务内容一致。如果一致,则将事件消息发送给任务主线程,由任务自行处理该指令。如果不一致则根据指令建立新的任务对象。并根据策略调度当前的任务对象与新建任务对象执行。其基本调度架构如图5所示。具体执行流程如6图所示。

2.2环境反馈事件的响应与处理

机器人在任务执行过程中,受外部环境因素的影响会导致任务执行无法继续。在这一情况下,系统形成环境反馈事件消息,TU根据事件消息调整当前的动作执行,根据配置的策略重新规划执行动作,完成任务的执行过程修正。机器人实现正确的反馈响应。

如前所述,环境反馈事件有AU发起。在运行过程中AU的动作执行通过异常捕捉的方式获取动作执行失效的状态信息。结合应用配置的状态定义形成对应的环境反馈事件消息发送给TU。TU根据内容进行重新规划并将结果反馈给AU。AU根据内容重新执行动作或执行新的动作,完成环境反馈事件的响应执行。这一过程如图7所示。

2.3状态事件的响应与处理

在任务运行过程中,各个线程对象会经历启动、执行、暂停、继续、撤销、中断等状态。由于多个任务之间存在一定的协同关系,所以对象之间需要根据其他对象的状态变化及时响应,以保证机体运行的正常。

在上述过程中,对象在状态变化时,构造对应的事件消息,利用这些消息,实现TU与AU之间映射线程对象的状态同步以及上级线程对象的调度执行。其过程如图8所示。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号