CN108897282B - 多任务模块化机器人及调度管理方法、装置及其存储介质 - Google Patents
多任务模块化机器人及调度管理方法、装置及其存储介质 Download PDFInfo
- Publication number
- CN108897282B CN108897282B CN201810423850.0A CN201810423850A CN108897282B CN 108897282 B CN108897282 B CN 108897282B CN 201810423850 A CN201810423850 A CN 201810423850A CN 108897282 B CN108897282 B CN 108897282B
- Authority
- CN
- China
- Prior art keywords
- module
- task
- message
- request
- notification message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
- G05B19/41865—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32252—Scheduling production, machining, job shop
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本申请公开了多任务模块化机器人及调度管理方法、装置及其存储介质。该方法包括:响应于任务请求/触发事件通知消息,发送任务停止消息至当前正在执行任务的功能模块,任务请求是从外部装置接收的触发事件通知消息是从至少一个功能模块中的一个接收的;接收当前正在执行任务的功能模块返回的任务停止响应消息;以及调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。根据本申请实施例的技术方案,降低了各个功能模块之间的耦合度,并为调度管理功能模块提供高效有序的管理平台。
Description
技术领域
本申请一般涉及工业机器人领域,具体涉及机器人调度技术领域,尤其涉及多任务模块化机器人及调度管理方法、装置及其存储介质。
背景技术
机器人的应用逐渐渗入到社会的各行各业,例如在工厂中,机器人的应用正逐渐渗透到各个领域,例如物理和仓储领域,家居领域等等。各个领域对机器人的应用需求不同,每个领域的机器人都需要独立开发。
随着机器人功能模块化设计的应用,降低了模块间的数据耦合,但是外部应用和内部模块在调度场景中难以避免的出现通道混用的问题,从而会导致数据交互的同步性和完整性受到一定程度的影响。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种能够机器人内部与外部协调地交互数据的技术方案。
第一方面,本申请实施例提供了一种调度管理方法,该方法包括:
响应于任务请求/触发事件通知消息,发送任务停止消息至当前正在执行任务的功能模块,任务请求是从外部装置接收的,触发事件通知消息是从至少一个功能模块中的一个接收的;
接收当前正在执行任务的功能模块返回的任务停止响应消息;以及
调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。
第二方面,本申请实施例提供了一种调度管理装置,该装置包括:
第一发送模块,用于响应于任务请求/触发事件通知消息,发送任务停止消息至当前正在执行任务的功能模块,任务请求是从外部装置接收的,触发事件通知消息是从至少一个功能模块中的一个接收的;
第一接收模块,用于接收当前正在执行任务的功能模块返回的任务停止响应消息;以及
调度模块,用于调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。
第三方面,本申请实施例提供了一种机器人设备,包括至少一个功能模块和控制器;
控制器包括存储器和处理器,其中,存储器存储有计算机程序,该程序被处理器执行时实现如本申请实施例描述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序用于:
该计算机程序被处理器执行时实现如本申请实施例描述的方法。
本申请实施例提供的调度管理方案,用于对机器人内部的至少一个功能模块进行调度管理,其中,至少一个功能模块通过基于任务请求/触发事件通知消息触发的方式执行相应的调度,降低了各个功能模块之间的耦合度,并为调度管理功能模块提供高效有序的管理平台。
进一步地,本申请实施例通过基于统一接口的调度管理方法,有效地避免了各个功能模块之间的资源抢占和冲突的风险。
进一步地,本申请实施例还通过外部装置触发的任务指示消息,通过预先设置的优先级调度管理,提升调度管理的效率,增强系统的鲁棒性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了本申请实施例提供的调度管理方法的流程示意图;
图2示出了本申请又一实施例提供的基于统一接口的调度管理方法的流程示意图;
图3示出了机器人中多个功能模块执行多点巡航任务的流程示意图;
图4示出了机器人中多个功能模块执行建图任务的流程示意图;
图5示出了机器人中多个功能模块执行防倾覆任务的流程示意图;
图6示出了机器人中多个功能模块执行自主充电任务的流程示意图;
图7示出了本申请又一实施例提供的调度管理方法的流程示意图;
图8示出了根据本申请一个实施例的调度管理装置800的示例性结构框图;
图9示出了本申请又一实施例提供的基于统一接口的调度管理装置900的示例性结构框图;
图10示出了本申请又一实施例提供的调度管理装置1000的示例性结构框图;
图11示出了适于用来实现本申请实施例的多任务模块化机器人1100的示意性结构框图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,图1示出了本申请实施例提供的调度管理方法的流程示意图。该方法用于调度机器人中至少一个功能模块,该方法的执行主体是调度管理装置。
如图1所示,该方法包括:
步骤110,响应于任务请求/触发事件通知消息,发送任务停止消息至当前正在执行任务的功能模块,任务请求是从外部装置接收的,触发事件通知消息是从至少一个功能模块中的一个接收的;
步骤120,接收当前正在执行任务的功能模块返回的任务停止响应消息;以及
步骤130,调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。
本申请实施例中,机器人可以通过接收外部装置输入的任务请求、和/或机器人内部的功能模块之一发送的触发事件通知消息,来触发新的任务的执行。
其中,任务请求例如可以是速度模式更改任务请求、建图任务请求、自主控制任务请求、多点巡航任务请求以及定点导航任务请求等。触发事件通知消息例如可以是倾覆危险通知消息、充电请求等。
其中,功能模块例如可以是机器人的核心功能模块,或者核心功能模块与传感信息模块的组合,其中,核心功能模块例如可以是防倾覆模块、速度模式模块、自主充电任务模块、建图任务模块、巡航/定点导航任务模块、运动控制模块、地图存储模块、全局规划模块、局部规划模块以及数据融合和其它功能模块等。传感信息模块例如可以是激光雷达模块、超声模块、惯性测量单元、视觉模块、红外监测模块、电池管理系统、编码器以及驱动器等等。
调度管理装置主要用于实现任务序列、中断现场保护、优先级定义等功能。是一个总体的任务调度管理模块,为其余模块的运行进行授权与管理,并对其它模块的开启关闭进行动态的调度。它根据其它模块的任务申请以及模块运行情况,进行实时调度。
调度管理装置响应于任务请求和/或触发事件通知消息,向当前正在执行任务的功能模块发送任务停止消息,以告知当前正在执行任务的功能模块暂时停止执行任务。当前正在执行任务的功能模块则响应任务停止消息,向调度管理装置发送任务停止响应消息。发送任务停止消息之后,调度管理装置按照设置的等待时间阈值,在等待时间阈值内收到功能模块返回的任务停止响应消息,调度管理装置向任务请求/触发事件通知消息对应的功能模块发送任务开始指令。
然后,调度管理装置调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。
与任务请求相关的至少一个功能模块例如可以包括巡航/定点导航任务模块、运动控制模块、导航定位模块等。
与任务请求相关的至少一个功能模块例如可以包括建图任务模块、键盘/手柄操作模块、激光雷达模块、编码器模块以及地图存储模块等。
与触发事件通知消息相关的至少一个功能模块例如可以包括防倾覆模块、惯性测量单元、运动控制模块等。
与触发事件通知消息相关的至少一个功能模块例如可以包括电池管理系统、自主充电任务模块、导航定位模块以及运动控制模块等。
不同的触发机制会触发调度管理装置按照不同的控制时序操控相应的功能模块执行任务。
本申请实施例,通过调度管理系统提供高效有序的调度策略,在降低功能模块耦合性的同时,增强了系统的鲁棒性。
在上述实施例基础上,本申请实施例进一步地解决由于接口设计不统一导致功能模块之间出现资源抢占或冲突的问题。
请参考图2,图2示出了本申请又一实施例提供的基于统一接口的调度管理方法的流程示意图。
如图2所示,该方法包括:
步骤210,经由外部接口模块从外部装置接收任务请求/任务指示消息;
步骤220,经由内部接口模块从至少一个功能模块中的一个接收触发事件通知消息;以及经由内部接口模块转发与至少一个功能模块之间交互的信息。
步骤230,响应于任务请求/触发事件通知消息,发送任务停止消息至当前正在执行任务的功能模块,该任务请求是从外部装置接收的,该触发事件通知消息是由至少一个功能模块中的一个发送的;
步骤240,接收当前正在执行任务的功能模块返回的任务停止响应消息;以及
步骤250,调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。
步骤250还可以包括:
经由内部接口模块向与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部中的一个发送控制消息,以控制至少一个功能模块中部分或全部经由内部接口模块进行信息交互,从而完成与任务请求/触发事件通知消息对应的任务。
本申请实施例中,步骤230-250与步骤110-130是相同的执行步骤,相关描述参见步骤110-130。
其中,外部接口模块用于为机器人外部控制/外部装置提供统一的接口,以实现机器人的多点巡航、定点导航,建图任务等任务请求,外部装置还可以通过该外部接口直接提供用于控制各个功能模块的控制指令,例如各个功能模块执行任务所需的速度指令等。外部接口模块是机器人的调度管理装置面向人机交互端提供的统一接口,其可以是topic方式,或者service方式。外部装置可以是外部客户端的形式,也可以是其他移动终端或者移动控制装置,它们采用rosbridge通信协议封装解析成JSON格式。
其中,内部接口模块用于转发各个功能模块两两之间的交互信息和调度管理装置与单个功能模块之间的交互信息。内部接口模块是机器人的调度管理装置面向机器人内部的多个功能模块提供的统一接口,其可以是topic方式,或者service方式。
本申请实施例中,调度管理装置响应于任务请求/触发事件通知消息,调度管理模块经由内部接口模块向至少一个功能模块中的一个发送控制消息,其中,功能模块例如可以是防倾覆模块、速度模式模块、自主充电任务模块、建图任务模块、巡航/定点导航任务模块、运动控制模块、地图存储模块、激光雷达模块以及编码器模块等等。控制消息,例如可以是中断保护完成指令、某任务开始指令、某任务停止指令等等。
调度管理装置根据触发机制的不同,自适应地选择与之匹配的调度策略控制与任务相关的功能模块有序地执行相应的功能,从而协作完成与任务请求/触发事件通知消息相关的任务。
本申请实施例中,通过执行多点巡航任务、建图任务、防倾覆任务以及自主充电任务来进一步描述调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。
请参考图3,图3示出了机器人中多个功能模块执行多点巡航任务的流程示意图。如图3所示,当任务请求为多点巡航任务请求时,至少一个功能模块包括巡航/定点导航任务模块、导航定位模块以及运动控制模块。
经由内部接口模块向与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部中的一个发送控制消息,以控制至少一个功能模块中部分或全部经由内部接口模块进行信息交互,从而完成与任务请求/触发事件通知消息对应的任务,包括:
调度管理装置经过外部接口模块接收外部装置发送的多点巡航任务请求。
调度管理装置经由内部接口模块向巡航/定点导航任务模块发送多点巡航任务开始/停止指令。
调度管理装置经由内部接口模块依次接收巡航/定点导航任务模块发送的多点巡航任务列表中的目标点,并将该目标点转发至导航定位模块,其中,目标点是巡航/定点导航任务模块在获取当前初始位置之后,从多点巡航任务列表中读取得到的。
调度管理装置经由内部接口模块接收导航定位模块发送第一速度控制指令,并将第一速度控制指令转发至运动控制模块。
本申请实施例中,调度管理装置通过外部接口模块接收外部装置的输入的多个目标点,经由内部接口模块转发给巡航/定点导航任务模块,巡航/定点导航任务模块并将多个目标点转换为相应格式并存储在相应的文件中。
巡航/定点导航任务模块向调度管理装置申请计划任务,调度管理装置开启计划任务后,巡航/定点导航任务模块开始执行,实现机器人按照设置的目标点,在无需人为干预的情况下进行周期性、计划性的移动功能,从而提供多点巡航任务的执行效率。
请参考图4,图4示出了机器人中多个功能模块执行建图任务的流程示意图。如图4所示,任务请求为建图任务请求时,至少一个功能模块包括建图任务模块、键盘/手柄操作模块、运动控制模块、激光雷达模块、编码器模块以及地图存储模块。
经由内部接口模块向与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部中的一个发送控制消息,以控制至少一个功能模块中部分或全部经由内部接口模块进行信息交互,从而完成与任务请求/触发事件通知消息对应的任务,包括:
调度管理装置通过外部接口模块接收外部装置发送的建图任务请求。
响应于建图任务请求,调度管理装置经由内部接口模块向建图任务模块发送建图任务开始指令,并向键盘/手柄操作模块发送启动指令。
调度管理装置经由内部接口模块接收键盘/手柄操作模块发送的第二速度控制指令,并将第二速度控制指令转发至运动控制模块。
调度管理装置经由内部接口模块接收激光雷达模块采集的目标点位置信息和编码器模块采集的里程累计信息,并将目标点位置信息和里程累计信息转发至建图任务模块。
调度管理装置经由内部接口模块接收建图任务模块发送的地图数据,并将地图数据转发至地图存储模块,地图数据是建图任务模块根据目标点位置信息和里程累计信息生成的,在地图数据中标注充电座位置信息。
本申请实施例中,建图任务模块是机器人底盘的一个核心模块,能够根据激光雷达数据实时地建立环境栅格地图。在调度管理装置开启建图任务后,可以通过速度模式模块向底盘发送相应的速度,然后可以通过手动控制建图过程,也可以通过相关的导航模块控制机器人运动,同时完成建图任务。
在建图任务完成之后,可以将生成地图数据进行保存,然后关闭建图任务模块。
其中,建图任务请求例如可以是地图新建请求,或者地图更新请求,或者地图保存请求,或者关闭建图请求等。建图任务模块根据建图任务请求,可以重新开始建图,或者在原有地图机场进行地图更新,或者将地图保存到相应的位置,下次默认启动该地图等等。
本申请实施例,通过统一的内部接口调度管理避免了资源抢占现象。
请参考图5,图5示出了机器人中多个功能模块执行防倾覆任务的流程示意图。如图5所示,触发事件通知消息为倾覆危险通知消息时,至少一个功能模块包括防倾覆模块、惯性测量单元以及运动控制模块。
经由内部接口模块向与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部中的一个发送控制消息,以控制至少一个功能模块中部分或全部经由内部接口模块进行信息交互,从而完成与任务请求/触发事件通知消息对应的任务,包括:
惯性测量单元经由内部接口模块将测量的传感器数据发送给防倾覆模块。
防倾覆模块经由内部接口模块接收到惯性测量单元发送的传感器数据,并根据传感器数据按照预定条件判定生成倾覆危险通知消息。
调度管理装置经由内部接口模块从防倾覆模块接收倾覆危险通知消息;
调度管理装置响应于倾覆危险通知消息,经由内部接口模块向防倾覆模块发送中断保护完成指令;
调度管理装置经由内部接口模块接收防倾覆模块发送的第三速度控制指令,并将第三速度控制指令转发至运动控制模块,第三速度控制指令是由防倾覆模块在接收中断保护完成指令之后计算生成的。
本申请实施例,防倾覆模块检测到惯性测量单元发送或上报的传感器数据,例如姿态信息,通过对传感器数据进行判断来决定是否生成倾覆危险通知消息,例如可以通过姿态信息判断是否发生重心偏移,当重心发生偏移时,通知调度管理装置,调度管理装置收到倾覆危险通知消息后,会进行中断现场保护,并发布倾覆危险的信号给运动控制模块,运动控制模块会发布相应的速度命令给机器人进行相应的控制。当中断保护现场完成以后,会计算恢复所需的速度,并把恢复的速度发送给运动控制模块对机器人进行相应的控制。
本申请实施例,通过协调各个模块之间的操作时序,降低了资源冲突的概率。
请参考图6,图6示出了机器人中多个功能模块执行自主充电任务的流程示意图。如图6所示,触发事件通知消息为自主充电请求消息时,至少一个功能模块包括电池管理系统、自主充电任务模块、导航定位模块以及运动控制模块。
经由内部接口模块向与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部中的一个发送控制消息,以控制至少一个功能模块中部分或全部经由内部接口模块进行信息交互,从而完成与任务请求/触发事件通知消息对应的任务,包括:
电池管理系统经过内部接口模块向自主充电任务模块上报的电量信息。
自主充电任务模块根据电池管理系统上报的电量信息和自主充电任务模块是否正在充电的指示信息共同判断产生的自主充电请求消息。
调度管理装置经由内部接口模块接收自主充电任务模块发送的自主充电请求消息。
调度管理装置经由内部接口模块向自主充电任务模块发送自主充电任务开始指令。
调度管理模块经由内部接口模块接收自主充电任务模块发送的充电座位置信息;并将充电座位置信息转发至导航定位模块。
调度管理装置经由内部接口模块接收导航定位模块发送的第四速度控制指令,并将第四速度控制指令转发至运动控制模块。
调度管理装置经由内部接口模块接收导航定位模块发送的到达充电座位置的响应消息,并将响应消息转发至自主充电任务模块,以使自主充电任务模块判断是否与充电座对准;
如果判断是与充电座对准,则经由内部接口模块接收自主充电任务模块发送的第五速度控制指令,并将第五速度控制指令转发至运动控制模块。
如果判断未与充电座对准,则通过内部接口模块向运动控制模块发送第六速度控制指令,以进行调整方向。
进一步地,自主充电任务模块还需要判断是否与充电座连接成功,如果未与充电座连接成功,则继续判断充电座的位置与充电座的实际位置是否发生偏移,如果是发生偏移,则采用精确对准算法修正充电座的位置,并在完成修正之后,返回判断是与充电座对准的步骤;
如果未发生偏移,则继续返回判断是否与充电座连接成功的步骤。
本申请实施例,充电座完成注册以后,电池管理系统实时检测电量,当满足充电条件时,通过内部接口模块向调度管理装置的调度模块发送自主充电请求消息。其中充电条件,例如可以是当前剩余电量小于总电量的预设阈值,该预设阈值例如可以是20%,10%等设置。调度模块发送自主充电开始任务以后,自主充电任务模块发送充电座位置给导航定位模块,在导航定位模块到达目标位置后,与自主充电任务模块通过内部接口模块协商后,启动对准算法,并在对准成功后,与充电座连接进行充电。
本申请实施例,通过协调各个模块之间的操作时序,降低了资源冲突的概率。在上述实施例基础上,为了便于机器人操作的多元化发展,本申请又一实施例提供了一种优化的调度管理方法。请参考图7,图7示出了本申请又一实施例提供的调度管理方法的流程示意图。该方法用于调度机器人中至少一个功能模块,该方法的执行主体是调度管理装置。
如图7所示,该方法包括:
步骤710,响应于任务请求/触发事件通知消息,发送任务停止消息至当前正在执行任务的功能模块,任务请求是从外部装置接收的,触发事件通知消息是从至少一个功能模块中的一个接收的;
步骤720,接收当前正在执行任务的功能模块返回的任务停止响应消息;以及
步骤730,调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。
步骤740,响应于任务指示消息,按照预先设置的优先级关系判断任务指示消息对应的任务的优先级与当前正在执行任务的优先级之间的关系,任务指示消息用于直接控制至少一个功能模块中的一个执行与任务指示消息相关的任务;
步骤750,基于关系的判断结果确定是否执行与任务指示消息相关的任务。
其中,步骤750还可以进一步包括:
如果任务指示消息对应的任务的优先级高于当前正在执行的任务的优先级,则发送任务停止消息至当前正在执行任务的功能模块,并在接收到当前正在执行任务的功能模块返回的任务停止响应消息后,执行与任务指示消息相关的任务;
如果任务指示消息对应的任务的优先级低于当前正在执行的任务的优先级,则忽略任务指示消息,不执行任务指示消息相关的任务。
本申请实施例中,调度管理模块响应于任务指示消息,按照预先设置的判定关系决定执行任务的先后顺序。其中,任务指示消息用于直接控制至少一个功能模块中的一个执行与任务指示消息相关的任务。该任务指示消息可以是通过外部装置直接输入的信息,例如直接输入用于控制运动控制模块的速度值。
预先设置的优先级关系例如可以是防倾覆模块的优先级>速度模式模块的优先级>自主充电模块的优先级>建图任务模块的优先级>巡航/定点导航任务模块。
预先设置的优先级关系例如还可以是自主充电模块的优先级>防倾覆模块的优先级>速度模式模块的优先级>建图任务模块的优先级>巡航/定点导航任务模块等。
预先设置的优先级关系例如还可以是根据机器人应用场景的特定需求设置的模块执行的顺序等等。
当调度管理模块响应于任务指示消息,获取任务指示消息对应的任务的功能模块的优先级与当前正在执行任务的功能模块的优先级,按照预先设置的优先级关系,判断它们的优先级关系。
然后,根据判断结果确定是否需要执行与任务指示消息对应的任务。
例如,当前正在执行任务的功能模块为建图任务模块,接收到任务指示消息为多点巡航任务指示消息,该消息中携带用于控制运动控制模块的速度值。调度管理模块根据预先设置的优先级关系判断当前正在执行任务的功能模块与多点巡航任务指示消息对应的功能模块之间执行顺序,预先设置的优先级例如为防倾覆模块的优先级>速度模式模块的优先级>自主充电模块的优先级>建图任务模块的优先级>巡航/定点导航任务模块。
建图任务模块的优先级高于巡航/定点导航任务模块的优先级,则多点巡航任务指示消息对应任务被忽略掉,继续执行建图任务模块。
本申请实施例,还可以进一步包括:
经由外部接口模块从外部装置接收任务请求/任务指示消息;
经由内部接口模块从至少一个功能模块中的一个接收触发事件通知消息,并转发与至少一个功能模块之间交互的信息。
其中,调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务还包括:
经由内部接口模块向与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部中的一个发送控制消息,以控制至少一个功能模块中部分或全部经由内部接口模块进行信息交互,从而完成与任务请求/触发事件通知消息对应的任务。
本申请实施例,为机器人多元化操作提供了便捷的调度策略,通过优先级设置提高了事件处理效率。
应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
进一步参考图8,图8示出了根据本申请一个实施例的调度管理装置800的示例性结构框图。该装置用于调度机器人中至少一个功能模块。
如图8所示,该装置包括:
第一发送模块810,用于响应于任务请求/触发事件通知消息,发送任务停止消息至当前正在执行任务的功能模块,任务请求是从外部装置接收的,触发事件通知消息是从至少一个功能模块中的一个接收的;
第一接收模块820,用于接收当前正在执行任务的功能模块返回的任务停止响应消息;以及
调度模块830,用于调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。
本申请实施例中,机器人可以通过接收外部装置输入的任务请求、和/或机器人内部的功能模块之一发送的触发事件通知消息,来触发新的任务的执行。
其中,任务请求例如可以是速度模式更改任务请求、建图任务请求、自主控制任务请求、多点巡航任务请求以及定点导航任务请求等。触发事件通知消息例如可以是倾覆危险通知消息、充电请求等。
其中,功能模块例如可以是机器人的核心功能模块,或者核心功能模块与传感信息模块的组合,其中,核心功能模块例如可以是防倾覆模块、速度模式模块、自主充电任务模块、建图任务模块、巡航/定点导航任务模块、运动控制模块、地图存储模块、全局规划模块、局部规划模块以及数据融合和其它功能模块等。传感信息模块例如可以是激光雷达模块、超声模块、惯性测量单元、视觉模块、红外监测模块、电池管理系统、编码器以及驱动器等等。
调度管理装置主要用于实现任务序列、中断现场保护、优先级定义等功能。是一个总体的任务调度管理模块,为其余模块的运行进行授权与管理,并对其它模块的开启关闭进行动态的调度。它根据其它模块的任务申请以及模块运行情况,进行实时调度。
调度管理装置响应于任务请求和/或触发事件通知消息,向当前正在执行任务的功能模块发送任务停止消息,以告知当前正在执行任务的功能模块暂时停止执行任务。当前正在执行任务的功能模块则响应任务停止消息,向调度管理装置发送任务停止响应消息。
然后,调度管理装置调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。
与任务请求相关的至少一个功能模块例如可以包括巡航/定点导航任务模块、运动控制模块、导航定位模块等。
与任务请求相关的至少一个功能模块例如可以包括建图任务模块、键盘/手柄操作模块、激光雷达模块、编码器模块以及地图存储模块等。
与触发事件通知消息相关的至少一个功能模块例如可以包括防倾覆模块、惯性测量单元、运动控制模块等。
与触发事件通知消息相关的至少一个功能模块例如可以包括电池管理系统、自主充电任务模块、导航定位模块以及运动控制模块等。
不同的触发机制会触发调度管理装置按照不同的控制时序操控相应的功能模块执行任务。
本申请实施例,通过调度管理系统提供高效有序的调度策略,在降低功能模块耦合性的同时,增强了系统的鲁棒性。
在上述实施例基础上,本申请实施例进一步地解决由于接口设计不统一导致功能模块之间出现资源抢占或冲突的问题。
请参考图9,图9示出了本申请又一实施例提供的基于统一接口的调度管理装置900的示例性结构框图。
如图9所示,该装置包括:
外部接口模块910,用于从外部装置接收任务请求/任务指示消息;
内部接口模块920,用于从至少一个功能模块中的一个接收触发事件通知消息,并转发与至少一个功能模块之间交互的信息。
第一发送模块930,用于响应于任务请求/触发事件通知消息,发送任务停止消息至当前正在执行任务的功能模块,该任务请求是从外部装置接收的,该触发事件通知消息是由至少一个功能模块中的一个发送的;
第一接收模块940,用于接收当前正在执行任务的功能模块返回的任务停止响应消息;以及
调度模块950,用于调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。
其中,调度模块950用于经由内部接口模块向与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部中的一个发送控制消息,以控制至少一个功能模块中部分或全部经由内部接口模块进行信息交互,从而完成与任务请求/触发事件通知消息对应的任务。
本申请实施例中,装置与方法对应,涉及与步骤110-130相同的执行步骤,相关描述参见步骤110-130。
其中,外部接口模块用于为机器人外部控制/外部装置提供统一的接口,以实现机器人的多点巡航、定点导航,建图任务等任务请求,外部装置还可以通过该外部接口直接提供用于控制各个功能模块的控制指令,例如各个功能模块执行任务所需的速度指令等。外部接口模块是机器人的调度管理装置面向人机交互端提供的统一接口,其可以是topic方式,或者service方式。外部装置可以是外部客户端的形式,也可以是其他移动终端或者移动控制装置,它们采用rosbridge通信协议封装解析成JSON格式。
其中,内部接口模块用于转发各个功能模块两两之间的交互信息和调度管理装置与单个功能模块之间的交互信息。内部接口模块是机器人的调度管理装置面向机器人内部的多个功能模块提供的统一接口,其可以是topic方式,或者service方式。
本申请实施例中,调度管理装置响应于任务请求/触发事件通知消息,调度管理模块经由内部接口模块向至少一个功能模块中的一个发送控制消息,其中,功能模块例如可以是防倾覆模块、速度模式模块、自主充电任务模块、建图任务模块、巡航/定点导航任务模块、运动控制模块、地图存储模块、激光雷达模块以及编码器模块等等。控制消息,例如可以是中断保护完成指令、某任务开始指令、某任务停止指令等等。
调度管理装置根据触发机制的不同,自适应地选择与之匹配的调度策略控制与任务相关的功能模块有序地执行相应的功能,从而协作完成与任务请求/触发事件通知消息相关的任务。
本申请实施例中,通过执行多点巡航任务、建图任务、防倾覆任务以及自主充电任务来进一步描述调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。
当任务请求为多点巡航任务请求时,至少一个功能模块包括巡航/定点导航任务模块、导航定位模块以及运动控制模块。调度管理装置的调度模块用于:
经由内部接口模块向巡航/定点导航任务模块发送多点巡航任务开始/停止指令;
经由内部接口模块依次接收巡航/定点导航任务模块发送的多点巡航任务列表中的目标点,并将该目标点转发至导航定位模块,其中,目标点是巡航/定点导航任务模块在获取当前初始位置之后,从多点巡航任务列表中读取得到的;
经由内部接口模块接收导航定位模块发送第一速度控制指令,并将第一速度控制指令转发至运动控制模块。
本申请实施例中,调度管理装置通过外部接口模块接收外部装置的输入的多个目标点,经由内部接口模块转发给巡航/定点导航任务模块,巡航/定点导航任务模块并将多个目标点转换为相应格式并存储在相应的文件中。
巡航/定点导航任务模块向调度管理装置申请计划任务,调度管理装置开启计划任务后,巡航/定点导航任务模块开始执行,实现机器人按照设置的目标点,在无需人为干预的情况下进行周期性、计划性的移动功能,从而提供多点巡航任务的执行效率。
任务请求为建图任务请求时,至少一个功能模块包括建图任务模块、键盘/手柄操作模块、运动控制模块、激光雷达模块、编码器模块以及地图存储模块。调度管理装置的调度模块用于:
响应于建图任务请求,经由内部接口模块向建图任务模块发送建图任务开始指令,并向键盘/手柄操作模块发送启动指令。
经由内部接口模块接收键盘/手柄操作模块发送的第二速度控制指令,并将第二速度控制指令转发至运动控制模块。
经由内部接口模块接收激光雷达模块采集的目标点位置信息和编码器模块采集的里程累计信息,并将目标点位置信息和里程累计信息转发至建图任务模块。
经由内部接口模块接收建图任务模块发送的地图数据,并将地图数据转发至地图存储模块,地图数据是建图任务模块根据目标点位置信息和里程累计信息生成的,在所述地图数据中标注充电座位置信息。
本申请实施例中,建图任务模块是机器人底盘的一个核心模块,能够根据激光雷达数据实时地建立环境栅格地图。在调度管理装置开启建图任务后,可以通过速度模式模块向底盘发送相应的速度,然后可以通过手动控制建图过程,也可以通过相关的导航模块控制机器人运动,同时完成建图任务。
在建图任务完成之后,可以将生成地图数据进行保存,然后关闭建图任务模块。
其中,建图任务请求例如可以是地图新建请求,或者地图更新请求,或者地图保存请求,或者关闭建图请求等。建图任务模块根据建图任务请求,可以重新开始建图,或者在原有地图机场进行地图更新,或者将地图保存到相应的位置,下次默认启动该地图等等。
本申请实施例,通过统一的内部接口调度管理避免了资源抢占现象。
当触发事件通知消息为倾覆危险通知消息时,至少一个功能模块包括防倾覆模块、惯性测量单元以及运动控制模块。调度管理装置的调度模块用于:
调度管理装置的调度模块经由内部接口模块从防倾覆模块接收倾覆危险通知消息,该倾覆危险通知消息是防倾覆模块根据传感器数据按照预定条件判定生成的,传感器数据是防倾覆模块经由内部接口模块从惯性测量单元接收的。
响应于倾覆危险通知消息,经由内部接口模块向防倾覆模块发送中断保护完成指令;
经由内部接口模块接收防倾覆模块发送的第三速度控制指令,并将第三速度控制指令转发至运动控制模块,第三速度控制指令是由防倾覆模块在接收中断保护完成指令之后计算生成的。
本申请实施例,防倾覆模块检测到惯性测量单元发送或上报的传感器数据,例如姿态信息,通过对传感器数据进行判断来决定是否生成倾覆危险通知消息,例如可以通过姿态信息判断是否发生重心偏移,当重心发生偏移时,通知调度管理装置的调度模块,调度管理装置的调度模块收到倾覆危险通知消息后,会进行中断现场保护,并发布倾覆危险的信号给运动控制模块,运动控制模块会发布相应的速度命令给机器人进行相应的控制。当中断保护现场完成以后,会计算恢复所需的速度,并把恢复的速度发送给运动控制模块对机器人进行相应的控制。
当触发事件通知消息为自主充电请求消息时,至少一个功能模块包括电池管理系统、自主充电任务模块、导航定位模块以及运动控制模块。调度管理装置的调度模块用于:
经由内部接口模块接收自主充电任务模块发送的自主充电请求消息,自主充电请求消息是由所述自主充电任务模块根据电池管理系统上报的电量信息和自主充电任务模块是否正在充电的指示信息共同判断产生的。
经由内部接口模块向自主充电任务模块发送自主充电任务开始指令。
经由内部接口模块接收自主充电任务模块发送的充电座位置信息;并将充电座位置信息转发至导航定位模块。
经由内部接口模块接收导航定位模块发送的第四速度控制指令,并将第四速度控制指令转发至运动控制模块。
经由内部接口模块接收导航定位模块发送的到达充电座位置的响应消息,并将响应消息转发至自主充电任务模块,以使自主充电任务模块判断是否与充电座对准;
如果判断是与充电座对准,则经由内部接口模块接收自主充电任务模块发送的第五速度控制指令,并将第五速度控制指令转发至运动控制模块。
如果判断未与充电座对准,则通过内部接口模块向运动控制模块发送第六速度控制指令,以进行调整方向。
进一步地,自主充电任务模块还需要判断是否与充电座连接成功,如果未与充电座连接成功,则继续判断充电座的位置与充电座的实际位置是否发生偏移,如果是发生偏移,则采用精确对准算法修正充电座的位置,并在完成修正之后,返回判断是与充电座对准的步骤;
如果未发生偏移,则继续返回判断是否与充电座连接成功的步骤。
本申请实施例,充电座完成注册以后,电池管理系统实时检测电量,当满足充电条件时,通过内部接口模块向调度管理装置的调度模块发送自主充电请求消息。其中充电条件,例如可以是当前剩余电量小于总电量的预设阈值,该预设阈值例如可以是20%,10%等设置。调度模块发送自主充电开始任务以后,自主充电任务模块发送充电座位置给导航定位模块,在导航定位模块到达目标位置后,与自主充电任务模块通过内部接口模块协商后,启动对准算法,并在对准成功后,与充电座连接进行充电。
本申请实施例,通过协调各个模块之间的操作时序,降低了资源冲突的概率。在上述实施例基础上,为了便于机器人操作的多元化发展,本申请又一实施例提供了一种优化的调度管理装置。
请参考图10,图10示出了本申请又一实施例提供的调度管理装置1000的示例性结构框图。该装置用于调度机器人中至少一个功能模块。
如图10所示,该装置包括:
第一发送模块1010,用于响应于任务请求/触发事件通知消息,发送任务停止消息至当前正在执行任务的功能模块,任务请求是从外部装置接收的,触发事件通知消息是从至少一个功能模块中的一个接收的;
第一接收模块1020,用于接收当前正在执行任务的功能模块返回的任务停止响应消息;以及
调度模块1030,用于调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务。
判断模块1040,用于响应于任务指示消息,按照预先设置的优先级关系判断任务指示消息对应的任务的优先级与当前正在执行任务的优先级之间的关系,任务指示消息用于直接控制至少一个功能模块中的一个执行与任务指示消息相关的任务;
确定模块1050,基于关系的判断结果确定是否执行与任务指示消息相关的任务。
其中,确定模块1050还可以进一步包括:
第一子单元,用于如果任务指示消息对应的任务的优先级高于当前正在执行的任务的优先级,则发送任务停止消息至当前正在执行任务的功能模块,并在接收到当前正在执行任务的功能模块返回的任务停止响应消息后,执行与任务指示消息相关的任务;
第二子单元,用于如果任务指示消息对应的任务的优先级低于当前正在执行的任务的优先级,则忽略任务指示消息,不执行任务指示消息相关的任务。
本申请实施例中,调度管理装置响应于任务指示消息,按照预先设置的判定关系决定执行任务的先后顺序。其中,任务指示消息用于直接控制至少一个功能模块中的一个执行与任务指示消息相关的任务。该任务指示消息可以是通过外部装置直接输入的信息,例如直接输入用于控制运动控制模块的速度值。
预先设置的优先级关系例如可以是防倾覆模块的优先级>速度模式模块的优先级>自主充电模块的优先级>建图任务模块的优先级>巡航/定点导航任务模块。
预先设置的优先级关系例如还可以是自主充电模块的优先级>防倾覆模块的优先级>速度模式模块的优先级>建图任务模块的优先级>巡航/定点导航任务模块等。
预先设置的优先级关系例如还可以是根据机器人应用场景的特定需求设置的模块执行的顺序等等。
当调度管理装置响应于任务指示消息,获取任务指示消息对应的任务的功能模块的优先级与当前正在执行任务的功能模块的优先级,按照预先设置的优先级关系,判断它们的优先级关系。
然后,根据判断结果确定是否需要执行与任务指示消息对应的任务。
例如,当前正在执行任务的功能模块为建图任务模块,接收到任务指示消息为多点巡航任务指示消息,该消息中携带用于控制运动控制模块的速度值。调度管理装置根据预先设置的优先级关系判断当前正在执行任务的功能模块与多点巡航任务指示消息对应的功能模块之间执行顺序,预先设置的优先级例如为防倾覆模块的优先级>速度模式模块的优先级>自主充电模块的优先级>建图任务模块的优先级>巡航/定点导航任务模块。
建图任务模块的优先级高于巡航/定点导航任务模块的优先级,则多点巡航任务指示消息对应任务被忽略掉,继续执行建图任务模块。
本申请实施例,为机器人多元化操作提供了便捷的调度策略,通过优先级设置提高了事件处理效率。
本申请实施例,还可以进一步包括:
外部接口模块,用于从外部装置接收任务请求/任务指示消息;
内部接口模块,用于从至少一个功能模块中的一个接收触发事件通知消息,并转发与至少一个功能模块之间交互的信息。
其中,调度模块用于经由内部接口模块向与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部中的一个发送控制消息,以控制至少一个功能模块中部分或全部经由内部接口模块进行信息交互,从而完成与任务请求/触发事件通知消息对应的任务。
应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
应当理解,装置800中记载的诸单元或模块与参考图1描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于装置800及其中包含的单元,在此不再赘述。装置800可以预先实现在电子设备的浏览器或其他安全应用中,也可以通过下载等方式而加载到电子设备的浏览器或其安全应用中。装置800中的相应单元可以与电子设备中的单元相互配合以实现本申请实施例的方案。
下面参考图11,图11示出了适于用来实现本申请实施例的多任务模块化机器人1100的示意性结构框图。
如图11所示,机器人系统1100包括至少一个功能模块(1101-1106)和控制器1107,其中控制器1107包括一个或多个处理器1107a和存储器1107b,一个或多个处理器1107a可以是可操作的,以执行指令、应用逻辑等。可以意识到,这些功能可以由并行地操作和/或通信地链接在一起的多个处理器或者单个芯片上的多个内核来提供。处理器1107a,通过执行相应的程序指令来实现调度管理方法,如图1-7所示的调度管理方法。这些处理器可以包括不同内核配置(包括多个内核)和时间频率。
其中,存储器1107b可以是或包括各种物理尺寸、存储能力、存储容量等的一个或多个存储器设备和/或计算机可读介质,诸如闪速驱动器、盘、随机存取存储器等,以便存储诸如图像、文本这样的数据以及用于由处理器1107a执行的程序指令。存储器系统还可以是至少一个位于远离处理器1107a的存储装置。本申请实施例中不作限定。
在本申请实施例中,计算机可读介质1107b可以存储在被处理器1107a执行操作的指令。当处理器1107a请求时,一个或多个程序1107c或其一部分可以从计算机可读介质1107b载入,以便执行如图1-7所示的调度管理方法。
至少一个功能模块(1101-1106)在控制器1107的调度管理下,依次执行多任务。其中,其他模块1106例如可以是键盘/手柄操作模块、速度模式模块、导航定位模块、地图存储模块、视觉分析模块、惯性测量单元以及电池管理系统等等。
当防倾覆模块1101经控制器1107触发工作时,控制器1107协调惯性测量单元、运动控制模块1105配合防倾覆模块一起完成防倾覆任务。
当自主充电任务模块1102经由电池管理系统上报信息触发自主充电请求任务时,控制器1107协调导航定位模块、运动控制模块配合自主充电任务模块一起完成自主充电任务。
当外部装置触发多点巡航任务时,控制器1107协调导航定位模块、运动控制模块1105配合巡航/定点导航任务模块1103一起完成多点巡航任务。
当外部装置触发建图任务时,控制器1107协调键盘/手柄操作模块、运动控制模块1105配合建图任务模块1103一起完成建图任务,在建图任务过程中还需要激光雷达模块和编码器模块的数据共同产生地图数据。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一发送模块、第二接收模块以及调度模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,调度模块还可以被描述为“用于调度与任务请求/触发事件通知消息相关的至少一个功能模块中部分或全部,有序地协作完成与任务请求/触发事件通知消息相关的任务模块”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中前述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,前述程序被一个或者一个以上的处理器用来执行描述于本申请的调度管理方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (23)
1.一种调度管理方法,其特征在于,该方法包括:
响应于任务请求/触发事件通知消息,发送任务停止消息至当前正在执行任务的功能模块,所述任务请求是从外部装置接收的,所述触发事件通知消息是从至少一个功能模块中的一个接收的;
接收所述当前正在执行任务的功能模块返回的任务停止响应消息;以及
调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部,有序地协作完成与所述任务请求/触发事件通知消息相关的任务;其中,
所述任务请求为多点巡航任务请求时,所述至少一个功能模块包括巡航/定点导航任务模块、导航定位模块以及运动控制模块,同时调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部;
所述任务请求为建图任务请求时,所述至少一个功能模块包括建图任务模块、键盘/手柄操作模块、运动控制模块、激光雷达模块、编码器模块以及地图存储模块,同时调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部;
所述触发事件通知消息为倾覆危险通知消息时,所述至少一个功能模块包括防倾覆模块、惯性测量单元以及运动控制模块,同时调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部;
所述触发事件通知消息为自主充电请求消息时,所述至少一个功能模块包括电池管理系统、自主充电任务模块、导航定位模块以及运动控制模块,同时调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
经由外部接口模块从外部装置接收所述任务请求/任务指示消息。
3.根据权利要求1所述的方法,其特征在于,该方法还包括:
经由内部接口模块从至少一个功能模块中的一个接收所述触发事件通知消息;以及
经由所述内部接口模块转发与所述至少一个功能模块之间交互的信息。
4.根据权利要求3所述的方法,其特征在于,所述调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部,包括:
经由所述内部接口模块向与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部中的一个发送控制消息,以控制所述至少一个功能模块中部分或全部经由所述内部接口模块进行信息交互,从而完成与所述任务请求/触发事件通知消息对应的任务。
5.根据权利要求1所述的方法,其特征在于,所述功能模块包括以下至少一种:防倾覆模块、速度模式模块、自主充电任务模块、建图任务模块、巡航/定点导航任务模块、运动控制模块、地图存储模块、激光雷达模块以及编码器模块。
6.根据权利要求3所述的方法,其特征在于,所述任务请求为多点巡航任务请求时,所述至少一个功能模块包括巡航/定点导航任务模块、导航定位模块以及运动控制模块,同时调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部,包括:
响应于所述多点巡航任务请求,经由所述内部接口模块向所述巡航/定点导航任务模块发送多点巡航任务开始/停止指令;
经由所述内部接口模块依次接收所述巡航/定点导航任务模块发送的多点巡航任务列表中的目标点,并将该目标点转发至所述导航定位模块,其中,所述目标点是所述巡航/定点导航任务模块在获取当前初始位置之后,从所述多点巡航任务列表中读取得到的;
经由所述内部接口模块接收在所述导航定位模块发送第一速度控制指令,并将所述第一速度控制指令转发至所述运动控制模块。
7.根据权利要求3所述的方法,其特征在于,所述任务请求为建图任务请求时,所述至少一个功能模块包括建图任务模块、键盘/手柄操作模块、运动控制模块、激光雷达模块、编码器模块以及地图存储模块,同时调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部,包括:
响应于所述建图任务请求,经由所述内部接口模块向所述建图任务模块发送建图任务开始指令,并向所述键盘/手柄操作模块发送启动指令;
经由所述内部接口模块接收所述键盘/手柄操作模块发送的第二速度控制指令,并将所述第二速度控制指令转发至所述运动控制模块;
经由所述内部接口模块接收所述激光雷达模块采集的目标点位置信息和所述编码器模块采集的里程累计信息,并将所述目标点位置信息和所述里程累计信息转发至所述建图任务模块;
经由所述内部接口模块接收所述建图任务模块发送的地图数据,并将所述地图数据转发至所述地图存储模块,所述地图数据是所述建图任务模块根据所述目标点位置信息和所述里程累计信息生成的,并在所述地图数据中标注充电座位置信息。
8.根据权利要求3所述的方法,其特征在于,所述触发事件通知消息为倾覆危险通知消息时,所述至少一个功能模块包括防倾覆模块、惯性测量单元以及运动控制模块,同时调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部,包括:
经由所述内部接口模块从所述防倾覆模块接收所述倾覆危险通知消息,所述倾覆危险通知消息是所述防倾覆模块根据传感器数据按照预定条件判定生成的,所述传感器数据是所述防倾覆模块经由内部接口模块从所述惯性测量单元接收的;
响应于所述倾覆危险通知消息,经由所述内部接口模块向所述防倾覆模块发送中断保护完成指令;
经由所述内部接口模块接收所述防倾覆模块发送的第三速度控制指令,并将所述第三速度控制指令转发至所述运动控制模块,所述第三速度控制指令是由所述防倾覆模块在接收所述中断保护完成指令之后计算生成的。
9.根据权利要求3所述的方法,其特征在于,所述触发事件通知消息为自主充电请求消息时,所述至少一个功能模块包括电池管理系统、自主充电任务模块、导航定位模块以及运动控制模块,同时调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部,包括:
经由内部接口模块接收所述自主充电任务模块发送的所述自主充电请求消息,所述自主充电请求消息是由所述自主充电任务模块根据所述电池管理系统上报的电量信息和所述自主充电任务模块是否正在充电的指示信息共同判断产生的;
经由所述内部接口模块向所述自主充电任务模块发送自主充电任务开始指令;
经由所述内部接口模块接收所述自主充电任务模块发送的充电座位置信息;并将所述充电座位置信息转发至所述导航定位模块;
经由所述内部接口模块接收所述导航定位模块发送的第四速度控制指令,并将所述第四速度控制指令转发至所述运动控制模块,所述第四速度控制指令用于控制机器人的电机控制器;
经由所述内部接口模块接收所述导航定位模块发送的到达充电座位置的响应消息,并将所述响应消息转发至所述自主充电任务模块,以使所述自主充电任务模块判断是否与所述充电座对准;
如果判断是与所述充电座对准,则经由所述内部接口模块接收所述自主充电任务模块发送的第五速度控制指令,并将所述第五速度控制指令转发至所述运动控制模块。
10.根据权利要求1-9中任一项所述的方法,其特征在于,该方法还包括:
响应于任务指示消息,按照预先设置的优先级关系判断所述任务指示消息对应的任务的优先级与所述当前正在执行任务的优先级之间的关系,所述任务指示消息用于直接控制所述至少一个功能模块中的一个执行与所述任务指示消息相关的任务;
基于所述关系的判断结果确定是否执行与所述任务指示消息相关的任务。
11.根据权利要求10所述的方法,其特征在于,所述基于所述关系的判断结果确定是否执行与所述任务指示消息相关的任务,包括:
如果所述任务指示消息对应的任务的优先级高于所述当前正在执行的任务的优先级,则发送所述任务停止消息至当前正在执行任务的功能模块,并在接收到所述当前正在执行任务的功能模块返回的任务停止响应消息后,执行与所述任务指示消息相关的任务;
如果所述任务指示消息对应的任务的优先级低于所述当前正在执行的任务的优先级,则忽略所述任务指示消息,不执行所述任务指示消息相关的任务。
12.一种调度管理装置,其特征在于,该装置包括:
第一发送模块,用于响应于任务请求/触发事件通知消息,发送任务停止消息至当前正在执行任务的功能模块,所述任务请求是从外部装置接收的,所述触发事件通知消息是从至少一个功能模块中的一个接收的;
第一接收模块,用于接收所述当前正在执行任务的功能模块返回的任务停止响应消息;以及
调度模块,用于调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部,有序地协作完成与所述任务请求/触发事件通知消息相关的任务,其中,
所述任务请求为多点巡航任务请求时,所述至少一个功能模块包括巡航/定点导航任务模块、导航定位模块以及运动控制模块,同时调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部;
所述任务请求为建图任务请求时,所述至少一个功能模块包括建图任务模块、键盘/手柄操作模块、运动控制模块、激光雷达模块、编码器模块以及地图存储模块,同时调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部;
所述触发事件通知消息为倾覆危险通知消息时,所述至少一个功能模块包括防倾覆模块、惯性测量单元以及运动控制模块,同时调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部;
所述触发事件通知消息为自主充电请求消息时,所述至少一个功能模块包括电池管理系统、自主充电任务模块、导航定位模块以及运动控制模块,同时调度与所述任务请求/触发事件通知消息相关的所述至少一个功能模块中部分或全部。
13.根据权利要求12所述的装置,其特征在于,该装置还包括外部接口模块,其用于从外部装置接收所述任务请求/任务指示消息。
14.根据权利要求12所述的装置,其特征在于,该装置还包括内部接口模块,其用于从至少一个功能模块中的一个接收所述触发事件通知消息,并转发与所述至少一个功能模块之间交互的信息。
15.根据权利要求12所述的装置,其特征在于,所述功能模块包括以下至少一种:防倾覆模块、速度模式模块、自主充电任务模块、建图任务模块、巡航/定点导航任务模块、运动控制模块、地图存储模块、激光雷达模块以及编码器模块。
16.根据权利要求14所述的装置,其特征在于,所述任务请求为多点巡航任务请求时,所述至少一个功能模块包括巡航/定点导航任务模块、导航定位模块以及运动控制模块,且所述调度模块用于:
响应于所述多点巡航任务请求,经由所述内部接口模块向所述巡航/定点导航任务模块发送多点巡航任务开始/停止指令;
经由所述内部接口模块依次接收所述巡航/定点导航任务模块发送的多点巡航任务列表中的目标点,并将该目标点转发至所述导航定位模块,其中,所述目标点是所述巡航/定点导航任务模块在获取当前初始位置之后,从所述多点巡航任务列表中读取得到的;
经由所述内部接口模块接收在所述导航定位模块发送第一速度控制指令,并将所述第一速度控制指令转发至所述运动控制模块。
17.根据权利要求14所述的装置,其特征在于,所述任务请求为建图任务请求时,所述至少一个功能模块包括建图任务模块、键盘/手柄操作模块、运动控制模块、激光雷达模块、编码器模块以及地图存储模块,且所述调度模块用于:
响应于所述建图任务请求,经由所述内部接口模块向所述建图任务模块发送建图任务开始指令,并向所述键盘/手柄操作模块发送启动指令;
经由所述内部接口模块接收所述键盘/手柄操作模块发送的第二速度控制指令,并将所述第二速度控制指令转发至所述运动控制模块;
经由所述内部接口模块接收所述激光雷达模块采集的目标点位置信息和所述编码器模块采集的里程累计信息,并将所述目标点位置信息和所述里程累计信息转发至所述建图任务模块;
经由所述内部接口模块接收所述建图任务模块发送的地图数据,并将所述地图数据转发至所述地图存储模块,所述地图数据是所述建图任务模块根据所述目标点位置信息和所述里程累计信息生成的,并在所述地图数据中标注充电座位置信息。
18.根据权利要求14所述的装置,其特征在于,所述触发事件通知消息为倾覆危险通知消息时,所述至少一个功能模块包括防倾覆模块、惯性测量单元以及运动控制模块,同时所述调度模块用于:
经由所述内部接口模块从所述防倾覆模块接收所述倾覆危险通知消息,所述倾覆危险通知消息是所述防倾覆模块根据传感器数据按照预定条件判定生成的,所述传感器数据是所述防倾覆模块经由内部接口模块从所述惯性测量单元接收的;
响应于所述倾覆危险通知消息,经由所述内部接口模块向所述防倾覆模块发送中断保护完成指令;
经由所述内部接口模块接收所述防倾覆模块发送的第三速度控制指令,并将所述第三速度控制指令转发至所述运动控制模块,所述第三速度控制指令是由所述防倾覆模块在接收所述中断保护完成指令之后计算生成的。
19.根据权利要求14所述的装置,其特征在于,所述触发事件通知消息为自主充电请求消息时,所述至少一个功能模块包括电池管理系统、自主充电任务模块、导航定位模块以及运动控制模块,同时所述调度模块用于:
经由内部接口模块接收所述自主充电任务模块发送的所述自主充电请求消息,所述自主充电请求消息是由所述自主充电任务模块根据所述电池管理系统上报的电量信息和所述自主充电任务模块是否正在充电的指示信息共同判断产生的;
经由所述内部接口模块向所述自主充电任务模块发送自主充电任务开始指令;
经由所述内部接口模块接收所述自主充电任务模块发送的充电座位置信息;并将所述充电座位置信息转发至所述导航定位模块;
经由所述内部接口模块接收所述导航定位模块发送的第四速度控制指令,并将所述第四速度控制指令转发至所述运动控制模块,所述第四速度控制指令用于控制机器人的电机控制器;
经由所述内部接口模块接收所述导航定位模块发送的到达充电座位置的响应消息,并将所述响应消息转发至所述自主充电任务模块,以使所述自主充电任务模块判断是否与所述充电座对准;
如果判断是与所述充电座对准,则经由所述内部接口模块接收所述自主充电任务模块发送的第五速度控制指令,并将所述第五速度控制指令转发至所述运动控制模块。
20.根据权利要求12-19中任一项所述的装置,其特征在于,该装置还包括:
判断模块,用于响应于任务指示消息,按照预先设置的优先级关系判断所述任务指示消息对应的任务的优先级与所述当前正在执行任务的优先级之间的关系,所述任务指示消息用于直接控制所述至少一个功能模块中的一个执行与所述任务指示消息相关的任务;
确定模块,用于基于所述关系的判断结果确定是否执行与所述任务指示消息相关的任务。
21.根据权利要求20所述的装置,其特征在于,所述确定模块,还包括:
第一子单元,用于如果所述任务指示消息对应的任务的优先级高于所述当前正在执行的任务的优先级,则发送所述任务停止消息至当前正在执行任务的功能模块,并在接收到所述当前正在执行任务的功能模块返回的任务停止响应消息后,执行与所述任务指示消息相关的任务;
第二子单元,用于如果所述任务指示消息对应的任务的优先级低于所述当前正在执行的任务的优先级,则忽略所述任务指示消息,不执行所述任务指示消息相关的任务。
22.一种机器人设备,其特征在于,其包括至少一个功能模块和控制器;
所述控制器包括存储器和处理器,其中,所述存储器存储有计算机程序,所述程序被所述处理器执行时实现如权利要求1-11中任一所述的方法。
23.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于:
所述计算机程序被处理器执行时实现如权利要求1-11中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810423850.0A CN108897282B (zh) | 2018-05-03 | 2018-05-03 | 多任务模块化机器人及调度管理方法、装置及其存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810423850.0A CN108897282B (zh) | 2018-05-03 | 2018-05-03 | 多任务模块化机器人及调度管理方法、装置及其存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108897282A CN108897282A (zh) | 2018-11-27 |
CN108897282B true CN108897282B (zh) | 2021-10-29 |
Family
ID=64342756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810423850.0A Active CN108897282B (zh) | 2018-05-03 | 2018-05-03 | 多任务模块化机器人及调度管理方法、装置及其存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108897282B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111443700A (zh) * | 2018-12-29 | 2020-07-24 | 深圳市优必选科技有限公司 | 一种机器人及其导航控制方法和装置 |
CN113973176A (zh) * | 2019-01-30 | 2022-01-25 | 深圳市大疆创新科技有限公司 | 一种负载的控制方法、装置及控制设备 |
CN114679950B (zh) * | 2020-12-30 | 2024-03-15 | 南京泉峰科技有限公司 | 用于自驱动设备的数据交互系统及数据交互方法 |
CN112686565A (zh) * | 2021-01-08 | 2021-04-20 | 京东数科海益信息科技有限公司 | 信息的处理装置、方法和机器人 |
CN115674170B (zh) * | 2021-07-30 | 2023-12-19 | 北京小米移动软件有限公司 | 机器人控制方法、装置、机器人及存储介质 |
CN114374681B (zh) * | 2021-12-09 | 2023-08-22 | 达闼机器人股份有限公司 | 任务执行方法、装置、设备和存储介质 |
CN113918196B (zh) * | 2021-12-10 | 2022-03-04 | 北京云迹科技有限公司 | 数据处理方法、升级方法、装置、服务器及移动机器人 |
CN117260688A (zh) * | 2023-10-23 | 2023-12-22 | 北京小米机器人技术有限公司 | 机器人及其控制方法、装置、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006055360A1 (de) * | 2005-11-24 | 2007-06-14 | Denso Wave Inc. | Roboter und Vielfach-Roboter-Steuerverfahren |
CN105068865A (zh) * | 2015-07-28 | 2015-11-18 | 新华瑞德(北京)网络科技有限公司 | 任务调度方法和装置 |
CN106155781A (zh) * | 2015-04-08 | 2016-11-23 | 中国科学院软件研究所 | 一种多智能体平台中的实时任务调度方法 |
CN106227595A (zh) * | 2016-07-12 | 2016-12-14 | 乐视控股(北京)有限公司 | 处理反复快速操作的方法和系统 |
CN106603215A (zh) * | 2017-03-02 | 2017-04-26 | 重庆邮电大学 | 一种基于ZigBee非公平网络信道资源共享方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4682513B2 (ja) * | 2003-12-05 | 2011-05-11 | トヨタ自動車株式会社 | タスク管理システム |
GB201501510D0 (en) * | 2015-01-29 | 2015-03-18 | Apical Ltd | System |
US9914218B2 (en) * | 2015-01-30 | 2018-03-13 | Toyota Motor Engineering & Manufacturing North America, Inc. | Methods and apparatuses for responding to a detected event by a robot |
-
2018
- 2018-05-03 CN CN201810423850.0A patent/CN108897282B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006055360A1 (de) * | 2005-11-24 | 2007-06-14 | Denso Wave Inc. | Roboter und Vielfach-Roboter-Steuerverfahren |
CN106155781A (zh) * | 2015-04-08 | 2016-11-23 | 中国科学院软件研究所 | 一种多智能体平台中的实时任务调度方法 |
CN105068865A (zh) * | 2015-07-28 | 2015-11-18 | 新华瑞德(北京)网络科技有限公司 | 任务调度方法和装置 |
CN106227595A (zh) * | 2016-07-12 | 2016-12-14 | 乐视控股(北京)有限公司 | 处理反复快速操作的方法和系统 |
CN106603215A (zh) * | 2017-03-02 | 2017-04-26 | 重庆邮电大学 | 一种基于ZigBee非公平网络信道资源共享方法 |
Non-Patent Citations (1)
Title |
---|
《网络环境下多无人机任务协调方法研究》;马纯超;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;20170315;第2.4.2.1节 * |
Also Published As
Publication number | Publication date |
---|---|
CN108897282A (zh) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108897282B (zh) | 多任务模块化机器人及调度管理方法、装置及其存储介质 | |
US11709502B2 (en) | Roadmap annotation for deadlock-free multi-agent navigation | |
EP4049910A1 (en) | Automatic driving control system, control method and device | |
EP3636390B1 (en) | Robot cluster scheduling system | |
CN109131340A (zh) | 基于驾驶员行为的主动车辆性能调整 | |
WO2018118272A1 (en) | Multi-agent coordination under sparse networking | |
KR101248802B1 (ko) | 지능형 로봇 시스템에서의 로봇 소프트웨어 컴포넌트 관리 장치 및 방법 | |
US20180306591A1 (en) | Aisle-based Roadmap Generation | |
CN112118318B (zh) | 车辆升级方法、终端设备、车辆和计算机存储介质 | |
CN115145210B (zh) | 车辆的控制信号的控制方法、装置、车辆、介质及芯片 | |
CN113282069A (zh) | 底盘线控测试方法、装置、计算机设备和存储介质 | |
CN113734195B (zh) | 无人车控制方法、装置、存储介质及无人车 | |
EP4273659A1 (en) | Abnormality handling method and apparatus for material pushing robot, and server and storage medium | |
EP3867757A2 (en) | Systems and methods for persistent mapping of environmental parameters using a centralized cloud server and a robotic network | |
KR20080072335A (ko) | 지능형 로봇을 위한 센싱, 구동 및 실시간 행동을 포함한리액티브 층 소프트웨어의 구조 | |
KR20120067649A (ko) | 군집 로봇의 상태 관리 장치 및 방법 | |
WO2021027969A1 (zh) | 可移动设备控制方法及装置、电子设备及存储介质 | |
CN111752638A (zh) | 自动化控制平台及自动化平台控制方法 | |
JP2023516051A (ja) | オンデマンド環境における車両によるトリップの調整 | |
JP2021056745A (ja) | 監視センタ、監視システム及び方法 | |
CN213690325U (zh) | 远程控制装置、自动导引运输车agv、仓库控制装置和远程控制自动导引运输车agv的系统 | |
CN114490338A (zh) | 多线程调试方法、装置、设备及存储介质 | |
US11157004B2 (en) | Real-time control system for a vehicle and a method of executing control of the vehicle via the real-time control system | |
CN113741537A (zh) | 无人机远程快速任务分配方法、装置、设备及存储介质 | |
JP2018149670A (ja) | 学習対象装置及び動作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |