CN114888804B - 基于工作链的机器人控制装置及方法、介质、机器人 - Google Patents
基于工作链的机器人控制装置及方法、介质、机器人 Download PDFInfo
- Publication number
- CN114888804B CN114888804B CN202210546093.2A CN202210546093A CN114888804B CN 114888804 B CN114888804 B CN 114888804B CN 202210546093 A CN202210546093 A CN 202210546093A CN 114888804 B CN114888804 B CN 114888804B
- Authority
- CN
- China
- Prior art keywords
- work
- task
- robot
- action
- chain model
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000009471 action Effects 0.000 claims abstract description 264
- 230000000875 corresponding effect Effects 0.000 claims abstract description 108
- 238000004458 analytical method Methods 0.000 claims abstract description 12
- 230000033001 locomotion Effects 0.000 claims description 31
- 230000004927 fusion Effects 0.000 claims description 27
- 230000009850 completed effect Effects 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 19
- 238000013439 planning Methods 0.000 claims description 19
- 230000001276 controlling effect Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 14
- 230000000977 initiatory effect Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 description 34
- 230000008569 process Effects 0.000 description 29
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 18
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 18
- 230000006399 behavior Effects 0.000 description 16
- 238000003860 storage Methods 0.000 description 16
- 101100232371 Hordeum vulgare IAT3 gene Proteins 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 230000006978 adaptation Effects 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000005021 gait Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010438 heat treatment Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001502 supplementing effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62D—MOTOR VEHICLES; TRAILERS
- B62D57/00—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
- B62D57/02—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
- B62D57/032—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Transportation (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
Abstract
本申请公开了一种基于工作链的机器人控制装置及方法、介质、机器人,其中任务指示解析模块对任务指示进行解析得到任务内容,其中的任务内容包括任务类型,工作链模型识别模块从数据库中识别出与任务类型相对应的工作链模型,其中的工作链模型包含机器人的多个工作事项,且多个工作事项在被执行时的执行顺序为链式顺序,动作序列生成模块获取机器人的场景信息,依据场景信息对工作事项进行实例化,得到对应于工作事项的动作序列,动作控制模块依据动作序列控制机器人执行相应动作,该方法以通用的工作链模型作为宏观上的任务执行流程,并在微观层面上将机器人的场景信息补充到任务执行流程中,使得机器人能够自主适应不同任务场景的变化。
Description
技术领域
本申请涉及机器人控制技术领域,特别涉及一种基于工作链的机器人控制装置及方法、介质、机器人。
背景技术
随着社会的发展,人们生活水平逐渐提高,机器人也逐渐进入到人们的生活、工作中的方方面面,帮助和代替人们进行各项活动,例如生产制造、运输加工、物品取送、多媒体播放,等等。在相关技术中,现有的机器人,无论是家用机器人还是工业机器人,主要面向的是相对固定的场景,执行的也只能是相对单一的任务。
在实现本申请的过程中,发明人发现上述机器人控制技术中,机器人的执行流程是针对具体任务而设计的,而单个的执行流程只能解决固定场景的问题,无法做到根据场景的变化而自主适应地执行不同场景的任务,因此,同一机器人难以应对多种不同类型的任务,使得机器人在功能多样性和场景适应性上难以满足用户需求。
需要说明的是,本背景技术部分中公开的信息仅用于理解本申请构思的背景技术,并且因此,它可以包含不构成现有技术的信息。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种基于工作链的机器人控制装置,使得机器人能够自主适应不同任务场景的变化,以通用的工作链模型作为宏观上的任务执行流程,并通过在微观层面上将机器人的场景信息补充到任务执行流程中,完成任务执行流程的生成,由此能够在不改变任务执行流程的前提下,仅通过改变任务的场景配置即可实现任务流程的改动,由此实现机器人对多种不同类型任务的执行,让机器人在家用、工业等多种场景下能够以通用化的方式执行多种任务,增加机器人的功能多样性和场景适应性。
本申请的第二个目的在于提出一种基于工作链的机器人控制方法。
本申请的第三个目的在于提出一种计算机可读存储介质。
本申请的第四个目的在于提出一种机器人。
为达上述目的,本申请第一方面实施例提出了一种基于工作链的机器人控制装置,包括:任务指示解析模块,用于响应于接收到的任务指示,对所述任务指示进行解析得到任务内容,其中,所述任务内容包括任务类型;工作链模型识别模块,用于从数据库中识别出与所述任务类型相对应的工作链模型,其中,所述工作链模型包含机器人的多个工作事项,且所述多个工作事项在被执行时的执行顺序为链式顺序;动作序列生成模块,用于获取机器人的场景信息,依据所述场景信息对所述工作事项进行实例化,得到对应于所述工作事项的动作序列;动作控制模块,用于依据所述动作序列控制机器人执行相应动作。
根据本申请实施例提出的基于工作链的机器人控制装置,使得机器人能够自主适应不同任务场景的变化,以识别出的通用工作链模型作为宏观上的任务流程,并在微观层面上将机器人的场景信息和任务信息补充到工作链模型的工作事项中,完成任务流程的实例化和场景配置,由此能够仅通过改变任务的场景配置即可实现在任务流程上针对不同的任务而进行适应性改动,无需针对不同场景而设计不同的任务流程,使机器人适用于多种不同类型任务的执行,让机器人在家用、工业等多种场景下能够以通用化的方式执行多种任务,增加机器人的功能多样性和场景适应性;另外,工作链模型本身不对何种具体算法进行选定,只有实例化之后形成的动作序列才会利用到具体算法,实现了将执行任务流程时依赖的算法功能与任务流程本身进行了剥离,使得在算法功能本身被修改时不会导致用到该算法功能的任务流程发生不适用或不匹配的情况,进一步保证了工作链模型的通用性和稳定性。
根据本申请的一个实施例,所述装置还包括:命令有效性判断模块,所述命令有效性判断模块用于在从数据库中识别出与所述任务类型相对应的工作链模型之前,对所述任务指示进行命令有效性判断,并依据所述命令有效性判断的结果确定是否对所述工作链模型进行识别,其中,所述命令有效性判断的判断事项包括:所述任务指示的指示来源、指示目标、控制类型、控制对象中的至少一项。
根据本申请的一个实施例,所述装置还包括:权限有效性判断模块,所述权限有效性判断模块用于在从数据库中识别出与所述任务类型相对应的工作链模型之前,对所述任务指示进行权限有效性判断,并依据所述权限有效性判断的结果确定是否对所述工作链模型进行识别,其中,所述权限有效性判断的判断事项包括:发起所述任务指示的对象的发起权限。
根据本申请的一个实施例,所述装置还包括:工作链模型生成模块,所述工作链模型生成模块用于生成所述工作链模型,所述工作链模型生成模块生成所述工作链模型的方式包括:获取机器人支持的多种场景任务,其中,所述场景任务包含机器人的多个工作事项;对每种场景任务进行抽象处理,得到与场景无关的多个工作事项;将所述与场景无关的多个工作事项进行链式排序,形成所述工作链模型。
根据本申请的一个实施例,所述动作序列生成模块通过以下步骤对所述工作事项进行实例化从而得到对应于所述工作事项的动作序列:依据所述场景信息和所述任务内容对所述工作事项的实施进行规划,得到多个工作节点,其中,所述多个工作节点按链式拓扑进行排列;依据预先配置的节点-动作对应关系,分别得到每个所述工作节点对应的动作指令;将各所述动作指令按所述链式拓扑进行排列,形成所述工作事项的动作序列。
根据本申请的一个实施例,所述场景信息包括:机器人的状态信息和机器人所处环境的环境信息。
根据本申请的一个实施例,在所述工作事项为机器人从第一位置移动到第二位置时,所述动作序列生成模块通过以下步骤对所述工作事项的实施进行规划从而得到多个工作节点:依据所述机器人的状态信息、机器人所处环境的环境信息以及所述任务内容中的任务目的地对所述工作事项的实施进行路径规划,得到移动路径;从预先配置的位置节点集合中确定所述移动路径途径的位置节点,并将每个所述位置节点作为相应的工作节点。
根据本申请的一个实施例,所述装置还包括:工作链模型融合模块,所述工作链模型融合模块用于在接收到的任务指示有多个时,则在识别出各任务指示对应工作链模型之后,先对各识别出的工作链模型按任务重要性或任务目标位置进行融合,并将融合后的工作链模型包含的工作事项作为待实例化的对象。
为达上述目的,本申请第二方面实施例提出了一种基于工作链的机器人控制方法,包括:响应于接收到的任务指示,对所述任务指示进行解析得到任务内容,其中,所述任务内容包括任务类型;从数据库中识别出与所述任务类型相对应的工作链模型,其中,所述工作链模型包含机器人的多个工作事项,且所述多个工作事项在被执行时的执行顺序为链式顺序;获取机器人的场景信息,依据所述场景信息对所述工作事项进行实例化,得到对应于所述工作事项的动作序列;依据所述动作序列控制机器人执行相应动作。
为达上述目的,本申请第三方面实施例提出了一种计算机可读存储介质,所述计算机可读存储介质上存储有基于工作链的机器人控制程序,该基于工作链的机器人控制程序被处理器执行时实现如上述实施例中的基于工作链的机器人控制方法。
为达上述目的,本申请第四方面实施例提出了一种机器人,包括存储器、处理器及存储在存储器上并可在处理器上运行的基于工作链的机器人控制程序,所述处理器执行所述基于工作链的机器人控制程序时,实现如上述实施例中的基于工作链的机器人控制方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
图1是本申请一个实施例的基于工作链的机器人控制装置20的结构框图。
图2是本申请一个实施例中任务指示为CMD1时工作事项实例化过程的示意图。
图3是本申请另一个实施例的基于工作链的机器人装置20的结构框图。
图4是本申请一个实施例中工作链模型生成模块27生成工作链模型MODEL1的过程示意图。
图5是本申请一个实施例中动作序列生成模块23对不同事项类型的工作事项进行实例化的结构框图。
图6是本申请一个实施例中动作序列生成模块23对工作事项EVENT1进行规划得到工作节点的结构框图。
图7是工作事项EVENT1为位置移动时动作序列生成模块23对EVENT1进行路径规划得到的移动路径的示意图。
图8是本申请一个实施例中工作链模型融合模块对工作链模型进行融合的过程示意图。
图9是本申请另一个实施例中工作链模型融合模块对工作链模型进行融合的过程示意图。
图10是本申请一个实施例的基于工作链的机器人控制方法的流程示意图。
图11是本申请一个实施例的机器人10的结构框图。
图12是本申请一个实施例的多足机器人100的结构框图。
图13是本申请一个实施例中多足机器人100的机械结构1013的三维结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示部件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
请参阅图1,为实现本发明各个实施例的一种基于工作链的机器人控制装置20的结构框图该机器人控制装置20包括依序连接的任务指示解析模块21、工作链模型识别模块22、动作序列生成模块23和动作控制模块24。下面结合图1对机器人控制装置的各个模块进行具体的介绍。
任务指示解析模块21用于响应于接收到的任务指示,对任务指示进行解析得到任务内容,其中,任务内容包括任务类型。
用户在需要机器人进行一些服务时,可以将服务需求输入至控制机器人的APP中,APP会将该服务需求转化为机器人能够识别和处理的数据形态,生成与服务需求对应的任务指示,然后将任务指示发送给机器人的任务指示1解析模块21。或者用户也可以通过直接与机器人对话来对机器人进行任务指示的下达,机器人通过配置的语音识别模块,将用户发出的语音转化为器人能够识别和处理的数据形态,进而生成并得到任务指示。
任务指示中包含有机器人执行任务所需的数据内容,请参阅图2,例如任务指示CMD1可以是“去小区门口迎接父亲”。任务指示解析模块21先对任务指示进行数据解析,从而得到任务指示中包含的数据内容,此时也就得到了任务内容。任务内容包含有任务类型,任务类型可以是取回物品,运送物品,陪伴某人,迎接某人,播放音乐,加热食物,等等,任务内容取决于机器人支持的功能。可以理解的是,任务内容还可以包含有其他内容项,例如可以包含用户ID,任务执行时间,被执行对象,加热时间,等等。
对不同任务指示解析得到的任务内容的内容项可能有所不同,若任务指示为CMD1时,任务内容可以包含:用户ID,任务目的地,目标人物,等等;若任务指示为“播放郭德纲相声”时,任务内容可以包含:用户ID和播放曲目,但无需包含任务目的地。
工作链模型识别模块22用于从数据库中识别出与任务类型相对应的工作链模型,其中,工作链模型包含机器人的多个工作事项,且该多个工作事项在被执行时的执行顺序为链式顺序。
数据库中预先存储有多种工作链模型,每个工作链对应一种类型的任务,继续参阅图2,例如从任务指示CMD1中解析得到的任务类型TYPE1为“迎接某人”时,则工作链模型识别模块22会将“迎接某人”作为待匹配对象,将数据库中的工作链模型依次与该待匹配对象进行匹配,将其中匹配度最高的工作链模型作为与任务类型TYPE1相对应的工作链模型。
工作链模型是执行一类场景任务需要进行的与场景无关的工作事项的链式组合,或者说,工作链模型是同一种任务在不同场景下执行需要经过的相同工作事项,而每个工作事项相当于一个子任务。
例如与任务类型TYPE1相对应的工作链模型MODEL1为:从当前位置移动到目标位置-迎接目标对象。其中,当前位置和目标位置在此时均是未知的,目标对象和迎接时间也是未知的,这些未知内容均属于与场景相关的内容,机器人当前位置可以是位于五层的家里,也可以是公园,需要迎接的目标对象可以是父亲,也可以是某位客户。若机器人当前位置不同,则任务场景就不同;若机器人需要迎接的目标对象不同,则任务场景同样认为是不同的,但无论当前位置在哪儿,目标对象是谁,采用工作链模型MODEL1都能够适用于这些任务场景,因为工作链模型与场景无关。
工作链对应于完整的任务,而各工作事项对应于完整任务的各子任务。在上述工作链模型MODEL1的举例中,可知MODEL1包含有两个工作事项EVENT1和EVENT2,其中,EVENT1为“从当前位置移动到目标位置”,EVENT2为“迎接目标对象”。该两个工作事项在MODEL1中呈链式排列,且执行顺序同样按链式顺序执行。该两个工作事项在工作链模型中未包含场景内容并且形成链式组合,属于“与场景无关的工作事项的链式组合”。
可以理解的是,数据库可以配置于机器人内部,例如将数据库存储于机器人的存储模块中,工作链模型也可以作为机器人的配置文件而保存在机器人内,每个工作链模型可以单独对应一个配置文件。工作链模型识别模块22在对数据库进行检索和查询时,可直接对存储模块进行检索和查询操作,无需借助外界通讯;数据库也可以配置于云端服务器,工作链模型识别模块22在对数据库进行检索和查询时,通过网络与云端服务器通信,把任务类型等相关信息发送至云端服务器,云端服务器将相应的工作链模型及其相关信息反馈给工作链模型识别模块22,减少对机器人存储能力的要求。
还可以理解的是,每个工作事项同样也可以单独作为一个配置文件保存在机器人的存储模块内,当工作链模型被确定之后,工作链模型的配置文件中会包含有本工作链模型包含的工作事项的配置文件的信息,通过调用等方式来得到工作链模型包含的工作事项及工作事项的内容。
动作序列生成模块23用于获取机器人的场景信息,依据场景信息对工作事项进行实例化,得到对应于工作事项的动作序列。
机器人的场景信息表征了机器人的当前所处状态,例如场景信息可以是机器人当前的运行状态、空间姿态、所处位置,等等。由于工作链模型此时未包含有与场景相关的内容,也未确定出机器人为完成任务指示所需要执行的功能和动作,因此动作序列生成模块23需要先对工作事项实例化,得到机器人的动作序列之后,才能相应确定出机器人采用的具体动作控制内容,机器人才能因此进行自主动作。其中,动作序列包含多个动作指令,动作指令在被执行时基于机器人配置的算法功能实现。
动作序列生成模块23进行实例化的过程包括将场景信息补充到工作链模型的工作事项中的过程,继续参阅图2,例如对于上述工作链模型MODEL1中的工作事项EVENT1,EVENT1为“从当前位置移动到目标位置”,其中,机器人的当前位置可以从机器人的场景信息中获取到,例如机器人通过自身配备的GPS定位模块能够实时获取到自身位置,假设机器人此时位于某栋楼十二层的用户家中。同时,作为任务目的地的目标位置则可以从解析后得到的任务内容中获取到,依据任务指示CMD1的内容可知,任务目的地为“小区门口”,因此目标位置为“小区门口”。
动作序列生成模块23进行实例化的过程还包括确定出工作事项所需具体执行的行为流程的过程,例如获取到当前位置和目标位置后,动作序列生成模块23利用EVENT1的配置文件中的内容,通过逻辑运算和算法调用等方式,确定出从家移动到小区门口所需具体执行的行为流程,继续参阅图2,例如EVENT1的行为流程可以是:出家门-等电梯-进电梯-出电梯-出楼门-导航到小区门口,该六个行为分别为MOV11-MOV16。可以理解的是,工作事项的行为流程同样是链式结构。
工作事项的行为流程包含的每个行为均通过机器人支持的基础能力而实现。机器人支持的基础能力可以包括:开门,关门,进电梯,出电梯,搜索目标,拾取目标,播放音乐等等。例如EVENT1的第一个行为MOV11是出家门,实现MOV11所需的机器人基础能力可能包括机器人的关于姿态改变、水平移动和手臂控制的动作,例如MOV11具体对应的动作序列AS11可以是:站立-移动到门前-开门-移动到门外-关门,动作序列AS11共计包含五个动作指令。其中,AS11中的“站立”是作为工作链模型中首个工作事项的首个行为的首个动作序列要执行动作内容之前进行的准备动作,即在执行首个工作事项的首个行为之前,先将机器人从当前状态转换为准备执行动作序列的状态,例如从当前的卧姿变为站姿,因此将“站立”作为动作序列中的新的首个动作指令。依据动作序列中原首个动作指令的不同,新的首个动作指令也可以是其他动作指令。
可以理解的是,机器人支持的基础能力可以通过机器人配置的算法功能实现,算法功能为计算或控制功能,例如检测目标物、规划路径、导航到目标点、移动机械臂等,而基础能力相当于对机器人的算法功能进行的逻辑化封装。每种基础能力都基于固定的逻辑执行,机器人执行基础能力时,实际最终执行的则是算法功能。
上述EVENT1共包含六个行为,对于剩余的行为MOV12-MOV16,同样是通过机器人支持的基础能力而实现,例如EVENT1的第二个行为MOV12是等电梯,则MOV12对应的动作序列AS12可以是:导航移动到电梯门前-抬臂到按钮前-按电梯按钮,动作序列AS12共计包含三个动作指令。EVENT1的其他四个行为以此类推。
在得到工作事项EVENT1的所有行为MOV11-MOV16的动作序列AS11-AS16之后,将动作序列按照行为流程的顺序进行排序,也就是将AS11-AS16进行依次衔接,每个动作序列的最后一个动作之后即是下一个动作序列的第一个动作,由此,通过对工作事项的配置文件的内容进行读取、分析、处理和运算,同时利用机器人配置的算法功能和支持的基础能力,最终生成对应于工作事项EVENT1的动作序列AS1。
对于工作链模型MODEL1的工作事项EVENT2,动作序列生成模块23进行同样也可以按照对EVENT1进行实例化的方式来进行EVENT2的实例化,得到EVENT2的动作序列AS2。
具体的,对于EVENT2来说,EVENT2为“迎接目标对象”,动作序列生成模块23在对EVENT2进行实例化时,可以从解析后得到的任务内容中获取到要迎接的目标对象是谁,例如父亲为目标对象,则获取到预先录入的父亲的面部图像,然后可以利用EVENT2的配置文件中的内容,通过逻辑运算和算法调用等方式,确定出迎接父亲的行为流程,例如EVENT2的行为流程可以是:人脸识别。此时的EVENT2只包含一个行为MOV21,实现MOV21所需的机器人基础能力可能包括机器人的关于摄像和图像处理识别的动作,例如MOV21具体对应的动作序列AS21可以是:获取图像-识别对象-获取图像-识别对象…-目标对象确认。由于EVENT2只包含行为MOV21,因此动作序列AS21即为对应于工作事项EVENT1的动作序列AS2。这里能够看出,上述基础能力同样可以通过算法功能实现,例如图像获取和图像识别。
完成工作事项EVENT1和EVENT2的实例化后,将动作序列AS2排列于动作序列AS1的末尾,AS2的第一个动作指令排列于AS1的最后一个动作之后,得到完成本次任务指示CMD1所需执行的动作序列AS。通过实例化得到的动作序列AS,既得到了与场景相关的内容,也确定出了机器人需要执行何种样式的功能和动作,因此形成了可供机器人实际进行动作并实际执行功能的工作链。
动作控制模块24用于依据动作序列控制机器人执行相应动作。
对于任务指示CMD1,需要先将所有的工作事项(EVENT1和EVENT2)完成实例化并得到动作序列AS之后,动作控制模块24才会开始执行动作序列AS中的动作指令。动作控制模块24依据动作序列AS进行动作的过程,就是顺序执行动作指令的过程。机器人在动作过程中,也会实时采集场景信息,并将场景信息以算法功能参数的形式发送给相应的算法模块进行处理,以控制机器人动作,但此时采集的场景信息是用于机器人能够正常进行执行动作,例如采集距离信息用于避障、采集位置信息用于检查行进路线是否发生偏移,采集无线信号用于收发数据,等等;而动作序列生成模块23采集场景信息是用于对工作事项进行实例化,例如行进路线的规划,因此两者的采集目的不同,用途也不同,采集的场景信息所包含的数据项也可能不同。
根据本申请实施例提出的基于工作链的机器人控制装置,使得机器人能够自主适应不同任务场景的变化,以识别出的通用工作链模型作为宏观上的任务流程,并在微观层面上将机器人的场景信息和任务信息补充到工作链模型的工作事项中,完成任务流程的实例化和场景配置,由此能够仅通过改变任务的场景配置即可实现在任务流程上针对不同的任务而进行适应性改动,无需针对不同场景而设计不同的任务流程,使机器人适用于多种不同类型任务的执行,让机器人在家用、工业等多种场景下能够以通用化的方式执行多种任务,增加机器人的功能多样性和场景适应性;另外,工作链模型本身不对何种具体算法进行选定,只有实例化之后形成的动作序列才会利用到具体算法,实现了将执行任务流程时依赖的算法功能与任务流程本身进行了剥离,使得在算法功能本身被修改时不会导致用到该算法功能的任务流程发生不适用或不匹配的情况,进一步保证了工作链模型的通用性和稳定性。
在一些实施例中,请参阅图3,机器人控制装置20还可以包括:命令有效性判断模块25,命令有效性判断模块25用于在从数据库中识别出与任务类型相对应的工作链模型之前,对任务指示进行命令有效性判断,并依据命令有效性判断的结果确定是否对工作链模型进行识别。
机器人在解析出任务内容之后,先基于解析出的任务内容对任务指示进行命令有效性判断,当判定任务指示的命令有效时,工作链模型识别模块22才会进行工作链模型的识别,而当判定任务指示的命令无效时,工作链模型识别模块22不会进行工作链模型的识别。
命令有效性判断的判断事项包括:任务指示的指示来源、指示目标、控制类型、控制对象中的至少一项,也就是说,命令有效性的判断事项可以包括该四项内容中的其中一项,或者包括其中多项,甚至可以包括全部四项内容。这些判断事项均可以从解析出的任务内容中得到。命令有效性判断的具体判断规则可以是:若所有的关于命令有效性的判断事项的判断结果均为有效,则认为该任务指示的命令有效,若有其中一个判断事项的判断结果为无效,则认为该任务指示的命令无效。
任务指示的指示来源是指下发任务指示的一方是否是机器人所期望的对象,下发任务指示的对象可以是某个终端APP,或者机器人控制端的某个进程。用户可能通过对机器人进行设置,将某些APP或进程进行了屏蔽,因此这些APP下发的任务指示会被机器人认为是无效的,而未被屏蔽的APP和进程下发的任务指示的指示来源有效。
任务指示的指示目标是指机器人自身是否是任务指示下发的正确对象,例如当前环境中共存在多个机器人,当需要将任务指示单独下发给某一个机器人时,则可以将机器人的ID或机器人的其他唯一标识包含在任务指示中,当多个机器人均获取到广播的任务指示时,只有ID与任务指示中的机器人ID相同的机器人才属于任务指示下发的正确对象,因此指示目标有效,其他机器人的指示目标则无效。
任务指示的控制类型是指该任务指示是需要用户手动操作机器人,还是由机器人自动执行该任务指示。若任务指示需要手动操作机器人,但机器人的当前状态使得机器人不支持手动操作,则该任务指示的控制类型无效;同理,若任务指示需要机器人自动执行任务,但机器人的当前状态使得机器人不支持自动执行,则该任务指示的控制类型无效。
任务指示的控制对象是指机器人的受控部分,受控部分可以是底盘、旋转机构、机械臂等部件或模块。若任务指示需要控制机器人的底盘和机械臂,但机器人的当前状态使得机器人不支持底盘或机械臂进行动作,则该任务指示的控制对象无效;若机器人当前支持对所有自身受控部分的控制和动作,则该任务指示的控制对象有效。
在一些实施例中,继续参阅图3,机器人控制装置20还可以包括:权限有效性判断模块26,权限有效性判断模块26用于在从数据库中识别出与任务类型相对应的工作链模型之前,对任务指示进行权限有效性判断,并依据权限有效性判断的结果确定是否对工作链模型进行识别。
机器人在解析出任务内容之后,先基于解析出的任务内容对任务指示进行权限有效性判断,当判定任务指示的权限有效时,工作链模型识别模块22才会进行工作链模型的识别,而当判定任务指示的权限无效时,工作链模型识别模块22不会进行工作链模型的识别。
权限有效性判断的判断事项包括:发起任务指示的对象的发起权限。该判断事项可以从解析出的任务内容中得到。权限有效性判断的具体判断规则可以是:若该关于权限有效性的判断事项的判断结果为有效,则认为该任务指示的权限有效,若该关于权限有效性的判断事项的判断结果为无效,则认为该任务指示的命令无效。
发起任务指示的对象可以是某某用户,例如任务内容中可以包含有用户ID,则用户ID代表了下发任务指示的对象的身份,而不同用户的权限可能是不同的,孩子和老人的权限会低于成人,因此若依据该用户ID判断出下发当前任务指示的为小孩,则可以根据预先设置的孩童权限的权限范围,直接得出权限无效的判断结果,避免孩童操作机器人导致损害和危险,或者依据任务类型来判断该任务指示是否超出了孩童权限的权限范围,未超出孩童权限的权限范围则任务指示的权限有效;若依据该用户ID判断出下发当前任务指示的为主人,则可以根据预先设置的主人权限直接得出权限有效的判断结果。
可以理解的是,命令有效性判断可以先于权限有效性判断执行,也可以后于权限有效性判断执行,但若命令有效性判断的判断结果为任务指示的命令无效,或权限有效性判断的判断结果为任务指示的权限无效,则均不会触发对工作链模型的识别,只有任务指示的命令和权限均有效时,才会触发对工作链模型的识别。
在一些实施例中,请参阅图4,机器人控制装置20还可以包括:工作链模型生成模块27,工作链模型生成模块27用于生成工作链模型,工作链模型生成模块27生成工作链模型的方式可以是:首先获取机器人支持的多种场景任务。然后对每种场景任务进行抽象处理,得到与场景无关的多个工作事项。最后将与场景无关的多个工作事项进行链式排序,形成工作链模型。
场景任务指的是包含场景相关内容的任务命令,并且场景任务包含机器人的多个工作事项,例如场景任务为“中午十二点整从家出发去小区门口迎接父亲”,该场景任务包含的工作事项为:在中午十二点整时从家移动到小区门口,以及迎接父亲,共两个工作事项,并且该两个工作事项中还包含了具体的动作控制内容,也就是机器人接收到的任务直接包含了控制机器人行动的动作序列和相关的算法程序,机器人被动按照设定的算法程序执行设定的动作序列,以达成任务目的。
工作链模型生成模块27对场景任务进行抽象处理的过程,就是对场景任务进行去场景化的过程,如图4所示,例如机器人支持的场景任务包括ST1-ST5,ST1为“中午十二点整从家出发去小区门口迎接父亲”,ST2为“下午两点半从家出发去公园门口迎接母亲”,ST3为“下午四点从公园出发去幼儿园门口迎接妻子”,ST4为“下午五点半从家出发去停车场迎接主人”,ST5为“下午六点从停车场出发去菜市场门口迎接妻子”。ST1-ST5中的时间、出发地点、目的地和迎接对象均为和场景相关的限定,因此对ST1-ST5进行抽象处理和去场景化,得到了两个工作事项EVENT1和EVENT2,其中EVENT1为:从当前位置移动到目标位置,EVENT2为:迎接目标对象。
EVENT1和EVENT2中未包含控制机器人行动的动作序列和相关的算法程序,对本次任务如何进行动作未进行明确设置,完成了任务的抽象化。之后工作链模型生成模块27将EVENT1和EVENT2进行排序,得到前文中的工作链模型MODEL1:从当前位置移动到目标位置-迎接目标对象,而该工作链模型也因为抽象化的原因而未对何种具体算法进行选定,实现将执行任务流程时依赖的算法功能与任务流程本身进行了剥离。
经过抽象处理得到的工作链模型与场景无关,只要是迎接某人的任务均可以调用该工作链模型,实现了工作链模型的通用性和场景适应性。而机器人支持的场景任务有若干个,因此会得出多种不同的工作链模型,使得机器人能够依据这些不同的工作链模型执行更多种不同场景的任务,实现了机器人的功能多样性。
在一些实施例中,动作序列生成模块23在对工作事项进行实例化之前,先依据预先配置的事项类型对工作链模型包含的工作事项进行划分,得到主动工作事项和从动工作事项。其中,触发动作序列生成模块23对主动工作事项进行实例化的时机为:主动工作事项位于工作事项队列中所有未执行工作事项的首位时;触发动作序列生成模块23对从动工作事项进行实例化的时机为:对工作事项队列的所有未执行工作事项中排位于本从动工作事项之前且与本从动工作事项之间排位距离最近的主动工作事项进行实例化时。
在工作链模型识别模块22识别出工作链模型之后,得到了工作链模型包含的工作事项,工作链模型包含的工作事项可以在得到工作事项时进行全部工作事项的实例化,得到全部工作事项的动作序列,然后机器人开始按动作序列执行相应动作,例如任务指示CMD1即采用的此种方式;但还可以是在得到工作事项时先进行部分工作事项的实例化,剩余未实例化的工作事项则在任务执行过程中再依据相应条件的触发来进行实例化。
例如任务指示CMD1’为“去小区门口迎接父亲后回家”,对应的工作链模型MODEL1’为:从当前位置移动到目标位置-迎接目标对象-携目标对象返回家中,MODEL1’包含三个工作事项EVENT11’-EVENT13’,EVENT11’为从当前位置移动到目标位置,EVENT12’为迎接目标对象,EVENT13’为携目标对象返回家中。其中,EVENT11’和EVENT13’的事项类型为动态类型,例如机器人位置移动属于动态类型的工作事项,EVENT12’的事项类型为静态类型,例如原地播放音乐等属于静态类型的工作事项。在识别出工作链模型之后,通过事项类型可判断出该任务两个动态类型的工作事项,第一次的动态发生于EVENT11’中,即从当前位置移动到目标位置,第二次的动态发生于EVENT13’中,即从当前位置移动到家中。
工作链模型识别模块22在识别出工作链模型之后,以队列的形式管理工作链模型中的待执行的工作事项。EVENT11’是首个执行的工作事项,因此需要在识别出工作链模型后立即通过场景信息进行实例化,否则无法开启任务的执行过程,而EVENT13’中的当前位置与EVENT11’中的当前位置不同,因此需要机器人在需要执行该工作事项时依据当时的场景信息进行工作事项的规划,由此得到正确可行的移动路线。EVENT12’未涉及到位置移动,属于可以预先确定出动作序列的工作事项,因此EVENT12’无需在需要执行时再进行工作事项的规划。
因此,动作序列生成模块23通过事项类型可划分出主动工作事项包括EVENT11’和EVENT13’,从动工作事项包括EVENT12’。具体的,EVENT11’和EVENT13’均当自身为位于工作事项队列的首位时再进行实例化,而EVENT12’则在EVENT11’进行实例化时随EVENT11’一同实例化。也就是说,机器人先对EVENT11’和EVENT12’进行实例化,得到对应的动作序列AS1’和AS2’,然后依次执行AS1’和AS2’,当执行完AS2’之后,此时已经迎接到了目标对象,然后机器人开始EVENT13’的实例化,依据机器人当时所处的位置来规划从当前位置返家的路径,得到对应的动作序列AS3’,之后再执行动作序列AS3’,完成整个任务指示CMD1’。可以理解的是,工作事项队列会随着工作事项的执行而逐渐减少其中包含的工作事项,每完成一个工作事项,工作事项队列会消除一个首位的工作事项,则次位的工作事项变为新的首位工作事项,直到工作事项队列中不包含工作事项时,说明机器人完成了所有任务指示。
请参阅图5,假设工作链模型具有10个工作事项E01-E10,其中E01、E03、E04和E07均为依据任务类型判定的主动工作事项,在图5中采用圆边矩形表示,其余六个为从动工作事项,采用普通矩形表示,因此先对E01和E02进行实例化,并依次执行E01和E02的动作序列,然后对E03进行实例化,并执行E03的动作序列,然后对E04-E06进行实例化,并依次执行E04-E06的动作序列,然后对E07-E10进行实例化,并依次执行E07-E10的动作序列,其中,不同实例化批次下的被实例化对象通过虚线框进行隔开和区分,同一虚线框内的工作事项在同一批次内进行实例化。
可以理解的是,若对任务指示CMD1对应的工作链模型MODEL1包含的工作事项EVENT1和EVENT2进行划分,则只划分出一个主动工作事项EVENT1。
在一些实施例中,动作序列生成模块23通过以下步骤310至步骤330对工作事项进行实例化从而得到对应于工作事项的动作序列。
步骤310,动作序列生成模块23依据场景信息和任务内容对工作事项的实施进行规划,得到多个工作节点。其中,多个工作节点按链式拓扑进行排列。
若将工作链视为任务层,将工作事项视为子任务层,将动作序列视为动作层,则子任务层和动作层之间还可以设有一层行为层,行为层包含有多个工作节点,以及将这些工作节点联接起来后得到的对应于工作事项的行为流程。
继续以工作事项EVENT1为例,请参阅图6,利用机器人的当前位置Loc(从场景信息中得到)和任务目的地位置Des(从任务内容得到)对工作事项EVENT1进行规划,得到工作事项EVENT1的工作节点,包括:“家门”、“电梯”、“楼门”和“小区门口”。规划的方式可以是从预先配置的工作节点池Col中选择工作节点,从工作节点池Col中包含的若干个工作节点确定出本工作事项所需的工作节点,图6中正方形为确定出的EVENT1所需的工作节点,圆形为工作节点池Col中的候选工作节点,图中仅示出了部分的候选工作节点。通过这些工作节点进而得到前文中举例的EVENT1的行为流程,即出家门-等电梯-进电梯-出电梯-出楼门-导航到小区门口,也就是MOV11-MOV16。
工作节点为机器人实施工作事项过程中需要使用复杂动作或大量运算或特殊功能以完成任务实施的对象或客体,例如机器人执行与“家门”节点相关的行为时,需要机器人移动手臂对门把手进行转动;执行与“电梯”节点相关的行为时,需要机器人移动手臂按下按钮;执行与“小区门口”节点相关的行为时,需要机器人进行远距离导航。
步骤320,动作序列生成模块23依据预先配置的节点-动作对应关系,分别得到每个工作节点对应的动作指令。
节点-动作对应关系是预先配置于机器人内的,例如配置于相应工作事项的配置文件中,用于得到与工作节点相对应的动作指令。例如对于工作节点“家门”来说,机器人移动需要途经“家门”,而机器人通过场景信息得知自身目前处于家内,因此则会确定出“出家门”的行为;对于工作节点“电梯”来说,机器人移动需要途经“电梯”,而机器人通过场景信息得知自身目前处于家内,因此则会确定出“等电梯”、“进电梯”和“出电梯”的行为;对于“楼门”和“小区门口”同理。
得到的这些行为之后,通过逻辑运算、算法调用和运用机器人的基础能力等方式,可以确定出达成这些行为所需的动作指令,例如得到MOV11的动作序列AS11,以及得到其他行为MOV12-MOV16的对应动作序列AS12-AS16。
步骤330,动作序列生成模块23将各动作指令按链式拓扑进行排列,形成工作事项的动作序列。
将动作序列AS11-AS16的动作指令按照动作序列的之间的顺序进行衔接和排序,得到工作事项EVENT1的动作序列AS1。对于其他工作事项的动作序列同理可得。
可以理解的是,对于不涉及机器人移动的工作事项,同样也可以进行工作事项的规划得到工作节点,进而得到对应的动作指令。
在一些实施例中,场景信息包括:机器人的状态信息和机器人所处环境的环境信息。其中,机器人的状态信息可以包括机器人的运行模式、空间姿态、剩余电量、各执行机构的使用程度等等,机器人所处环境的环境信息可以包括机器人所处的空间位置、环境亮度、环境湿度、环境噪声、周围人流密度等等。
在一些实施例中,在工作事项为机器人从第一位置移动到第二位置时,动作序列生成模块23通过以下步骤311和步骤312对工作事项的实施进行规划从而得到多个工作节点。
步骤311,动作序列生成模块23依据机器人的状态信息、机器人所处环境的环境信息以及任务内容中的任务目的地对工作事项的实施进行路径规划,得到移动路径。
继续以工作事项EVENT1为例,EVENT1为“从当前位置移动到目标位置”,也就是机器人从第一位置移动到第二位置,在此种情况下,对工作事项的实施进行规划具体为路径规划,也就是在机器人当前位置(即Loc)和任务目标位置的基础上,通过路径规划得到从机器人当前位置和任务目标位置的移动路径。在进行路径规划时可能考虑到多种因素,包括外界因素,或者机器人自身因素,或者外界因素和自身因素均进行考虑,例如以移动路程最短为目标进行路径规划,或者由于某路段施工禁行而规划出能够顺利移动到目的地的路径,这些属于基于外界因素进行路径规划;以机器人的执行机构状态不佳而难以承受颠簸路段为目标规划出移动路程远但路面平坦的移动路径,这属于基于自身因素进行路径规划。
可以理解的是,对工作事项的实施进行规划需要用到一些相关数据,例如路径规划时需要用到地图数据,这些相关数据可以预先存储于机器人内部。
步骤312,动作序列生成模块23从预先配置的位置节点集合中确定移动路径途径的位置节点,并将每个位置节点作为相应的工作节点。
请参阅图7,在确定出移动路径Path后,可以进一步确定出该移动路径上存在的位置节点,例如“家门”Node1、“电梯”Node2、“楼门”Node3和“小区门口”Node4(即Des),而这些位置节点对于本工作事项EVENT1就相当于工作节点。位置节点是从预先设定的位置节点集合中选取出来的,而选取位置节点的标准就是移动路径是否途经了位置节点。例如,机器人的许可移动范围是小区内,以小区边界线形成的区域即为机器人的允许移动区域,则预先将小区区域内所有的位置节点全部提取出来,形成位置节点集合。此时判断出哪些位置节点途经了该移动路径,并按照移动路径的移动方向将这些途经了移动路径的位置节点进行排序,得到“家门”-“电梯”-“楼门”-“小区门口”。
得到位置节点后,进而得出行为流程,也就是出家门(图中未示出)、等电梯(MOV12)、进电梯(图中未示出)、出电梯(图中未示出)、出楼门(MOV15)和导航到小区门口(MOV16),其中,Node2’和Node2均为电梯,Node2’表示电梯升降到了另一位置,Bu1为机器人所在建筑,Bu2为外界环境中的建筑,建筑用虚线表示。
在一些实施例中,机器人控制装置还可以包括:任务动作约束模块,任务动作约束模块用于在依据动作序列控制机器人执行相应动作之前,基于任务内容生成任务指示的任务约束条件,并且在动作控制模块24控制机器人执行相应动作时,还依据任务约束条件控制机器人执行相应动作。其中,所述任务内容还包括:任务执行时间、目标位置、被执行对象中的至少一项。
任务约束条件就是机器人的运行限制条件,用于对机器人的运行参数进行限制,例如对电机的运转速度、发声的音量、避障时的引起急停的极限距离数值等参数进行限制。通过针对不同的任务进行不同的参数限制,避免机器人在执行任务时采用了不适当的参数,导致任务执行不顺畅,甚至引发安全性问题和导致机器人状态不稳定,提高机器人运行的稳定性。
在一些实施例中,机器人控制装置还可以包括:工作链模型融合模块。若接收到的任务指示有多个,则在工作链模型识别模块22识别出各任务指示对应工作链模型之后,工作链模型融合模块先对各识别出的工作链模型按任务重要性或任务目标位置进行融合,并将融合后的工作链模型包含的工作事项作为待实例化的对象。
请参阅图8,例如用户同时向机器人下发了两个不同的任务指示CMD1和CMD2,其中,CMD1为“去小区门口迎接父亲”,CMD2为“去小区门口拾取快递”。机器人分别识别出CMD1和CMD2的工作链模型MODEL1和MODEL2,其中,MODEL1包含有两个工作事项EVENT1和EVENT2,EVENT1为:从当前位置移动到目标位置,EVENT2为:迎接目标对象,MODEL2包含有两个工作事项EVENT3和EVENT4,EVENT3为:从当前位置移动到目标位置,EVENT4为:拾取目标对象。
对工作链模型的融合就是对工作事项进行融合,此时对EVENT1-EVENT4进行融合,得到一个新的工作链模型MODEL’。融合就是确定出不同工作链模型之间的重复的工作事项和独有的工作事项,将重复的工作事项进行合并,实现融合。MODEL’包含的工作事项数量小于等于参与融合的各工作链模型在融合前的工作事项数量之和,若MODEL’包含的工作事项数量小于MODEL1和MODEL2包含的工作事项数量之和,则两者的差值部分就是被合并的部分,若MODEL’包含的工作事项数量等于MODEL1和MODEL2包含的工作事项数量之和,则说明无法融合,因此会按队列的顺序对所有的工作事项依序执行。
融合的规则包括:基于任务重要性进行融合和基于任务目标位置进行融合,该两个规则可以择一使用,也可以同时使用,具体的使用方式可以根据需求进行设置。其中,基于任务重要性进行融合指的是对优先级更高的工作链模型的工作事项优先进行执行,即任务内容中可以包含有任务等级,任务等级代表了该任务的优先级;基于任务目标位置进行融合指的是根据机器人与任务目标位置之间距离的不同而由近至远进行执行,任务目标位置可以从任务内容中获取到。
继续参阅图8,从工作链模型MODEL1和MODEL2中确定出工作事项EVENT1和EVENT3为重复的工作事项,并且CMD1和CMD2的任务内容中的任务目的地均为小区门口,因此将EVENT1和EVENT3进行合并。由于在EVENT1和EVENT3中,机器人与任务目标位置之间距离相同,因此本次合并的规则是基于任务指示的优先级进行,任务内容中包含有任务等级,若从任务内容中确定出CMD1的任务等级高于CMD2的任务等级,则合并后得到的MODEL’包含依次排列的工作事项EVENT1’、EVENT2’和EVENT4’,其中,EVENT1’即为EVENT1,EVENT2’即为EVENT2,EVENT4’即为EVENT3;若从任务内容中确定出CMD2的任务等级高于CMD1的任务等级,则合并后得到的MODEL’包含依次排列的工作事项EVENT1’、EVENT4’和EVENT2’。
通过对工作链模型进行融合,避免了多任务中重复部分的重复执行,实现了多任务融合执行,实现了机器人自主融合任务,提高了机器人智能化自主执行任务的能力,也因此提高了机器人的任务执行效率。
可以理解的是,对于在机器人接收到多个任务指示时工作事项队列未存在未执行工作事项的情况,也就是对于机器人在空闲状态下同时接收到多个任务的情况,工作链模型的融合可以发生于工作事项划分之后,即先进行融合,得到一个整体的工作链模型,然后再对该整体的工作链模型进行主动工作事项和从动工作事项的划分,划分之后再依据各自的触发时机进行实例化。需要说明的是,若接收到的各任务指示的任务类型各不相同,则按照接收任务指示的时间顺序将任务指示的相应工作事项进行排序,并将排序后的工作事项插入到工作事项队列中,按工作事项队列进行动作的执行。
若机器人同时接收到的多个任务指示中,存在有具有多个主动工作事项的工作链模型,则可以先对各工作链模型进行融合,然后再依据事项类型来划分,如图8中,EVENT1和EVENT3为主动工作事项,EVENT2和EVENT4为从动工作事项,融合之后,EVENT1’为主动工作事项,EVENT2’和EVENT4’为从动工作事项,与融合前相同,并且任务执行过程同样是正确的。
在一些实施例中,若在工作事项队列中存在未完成的工作事项时接收到新的任务指示,则在工作链模型识别模块22识别出新的任务指示对应的新工作链模型之后,工作链模型融合模块对新工作链模型和未完成的工作事项对应的工作链模型按任务重要性或任务目标位置进行融合,以及动作序列生成模块23对融合后的工作链模型包含的工作事项进行实例化得到新动作序列,以及动作控制模块24依据当前正在执行的动作序列中的动作执行进度,并控制机器人从新动作序列中当前的待完成动作开始执行新动作序列。
请参阅图9,例如当前的工作事项队列中只包含工作事项EVENT1和EVENT2,EVENT1和EVENT2属于工作链模型MODEL1,EVENT1和EVENT2对应于用户早先下达的任务指示CMD3(去小区门口迎接父亲),并且机器人当前正在执行已经实例化后的工作事项EVENT1的动作序列AS3中的动作,例如机器人正在识别电梯按钮。此时用户向该机器人下达了任务指示CMD4(去小区广场拾取快递),则动作控制模块24可以先控制机器人立即暂停等电梯的相关动作的执行,或者动作控制模块24继续执行当前正在执行的动作,并在当前正在执行的动作执行完成后,暂停下一动作的执行。
在上述立即暂停后,或在继续执行当前正在执行的动作期间,工作链模型识别模块22从数据库中识别出任务指示CMD4对应的新工作链模型MODEL2,MODEL2包括工作事项EVENT3和EVENT4,EVENT3为:从当前位置移动到目标位置,EVENT4为:拾取目标对象。
在工作链模型识别模块22识别出MODEL2之后,工作链模型融合模块将MODEL1和MODEL2进行融合,其中,若按任务目标位置融合,则由于机器人当前位置与小区广场之间的距离近于与小区门口之间的距离,因此融合后的工作链模型MODEL”为:从当前位置移动到目标位置-拾取目标对象-迎接目标对象;若按任务重要性融合,则由于迎接父亲的优先级高于取快递,因此融合后的工作链模型为:从当前位置移动到目标位置-迎接目标对象-拾取目标对象。本实施例按任务目标位置融合,得到MODEL”。
得到MODEL”之后,动作序列生成模块23对MODEL”包含的工作事项进行实例化,得到动作序列AS4。由于机器人当前暂停在识别电梯按钮动作的过程中,或者刚执行完识别电梯按钮的动作并且暂时未执行下一动作(抬起手臂)。假设机器人刚完成识别电梯按钮的动作,并等待执行抬起手臂的动作,此时动作控制模块24从AS3中确定出所有的已完成动作序列ASc,也就是识别电梯按钮及其之前的所有动作,同时确定出执行AS3的动作执行进度为:完成识别电梯按钮的动作,待执行抬起手臂的动作。然后动作控制模块24将AS3中的已完成动作序列ASc与AS4的序列内容进行对比,从而确定出AS4中的已完成部分,也就是说,融合后得到的AS4中同样包含有ASc,并且对于机器人已经执行完成的动作不会重复进行执行,因此动作控制模块24控制机器人从新动作序列AS4中当前的待完成动作开始执行,也就是从控制机器人抬起手臂开始,执行AS4中的待完成动作序列ASn。
若机器人同时接收到多个任务指示,并且在机器人执行该多个任务指示的过程中再次接收到新的任务指示时,则机器人在接收到多个任务指示时,开始对该多个任务指示进行融合,若任务类型相同则进行第一次融合,并按融合后的工作链模型的工作事项执行任务,而在接收到新的任务指示时,若新任务指示的任务类型与未完成工作事项对应的任务指示的任务类型相同,则进行第二次融合,对第二次融合后的工作链模型实例化,并从机器人当前正在执行的任务节点开始改为执行第二次融合后的工作事项的动作序列。
需要说明的是,若接收到的新任务指示与未完成的工作事项所属任务的任务类型各不相同,则将新任务指示的相应工作事项插入至工作事项队列的队尾处,并衔接于未完成的工作事项末尾,之后按队列顺序执行工作事项的动作序列。
本实施例通过对任务执行过程中的机器人进行新接到任务的融合处理,使得机器人无需进行无意义的重复动作,提高了机器人具有多个待处理任务时的处理效率,使机器人更加智能化进行任务处理和执行。
在一些实施例中,若机器人接收到任务取消指示,则任务指示解析模块21响应于接收到的任务取消指示,对任务取消指示进行解析从而确定出待取消任务,并且动作序列生成模块23将与待取消任务相关的动作内容从动作序列中删除,动作控制模块24按照删除后的动作序列控制机器人执行相应动作。
具体的,若机器人接收到用户下达的任务取消指示,则在任务指示解析模块21从任务指示中确定出待取消的任务指示是哪个任务指示。若当前的工作事项队列中包含的工作事项均是未发生过融合的工作事项,并且当前工作事项队列中的工作事项只对应于同一任务指示,也就是机器人还未接收到第二个任务指示,则此时按照确定出的待取消任务指示,将当前工作事项队列清空,则机器人此时无任务动作可执行,但机器人由于可能已经处于任务执行过程中了,因此机器人可以对一个预设的工作事项进行实例化并执行实例化后的动作序列,该预设的工作事项可以是:从当前位置移动到目标位置,并且目标位置设定为家中,这样可以使机器人在接人、取物等外出任务的任务中途时由于任务取消而自动返回家中。
若当前的工作事项队列中包含的工作事项是发生过融合的工作事项,则动作序列生成模块23从动作序列中识别出与待取消的任务相关的动作内容,例如当前工作事项队列中包含图8中的EVENT1’、EVENT2’和EVENT4’,当前机器人正在执行EVENT1’的动作序列,用户下达了取消CMD1(去小区门口迎接父亲)的任务指示,则动作序列生成模块23将EVENT2’相关的动作内容删除,之后待执行的动作序列中就只包含EVENT1’的未完成动作和EVENT4’的动作内容,机器人在到达小区门口时就会直接去拾取快递而不会去迎接父亲。
在一些实施例中,若机器人接收到任务变更指示,则任务指示解析模块21响应于接收到的任务变更指示,对任务变更指示进行解析从而确定出待变更内容,以及动作控制模块24依据待变更内容对动作序列中相应动作的动作内容进行调整,并基于调整后的动作序列控制机器人执行相应动作。
具体的,假设用户之前下达了任务指示CMD2(去小区门口拾取快递),然后在动作控制模块24控制机器人向小区门口移动的过程中,用户下达了任务变更指示,任务变更指示表达了将被执行对象(即目标物品的取件码)从“12345678”变更为“22345678”,则动作控制模块24通过对实例化后的EVENT4中的“输入取件码”动作的取件码参数进行变更,使得机器人在执行“输入取件码”动作时,输入的是变更后的取件码,实现对机器人的任务内容进行修正和更新。
若下达的任务变更指示中,将任务目的地从“小区门口”变更为“小区广场”,则由于待变更内容已经被实例化并处于执行当中,例如机器人在等电梯或在出楼门时,此时机器人已经处于朝向“小区门口”移动的过程中了,因此在任务指示解析模块21确定出该待变更内容为任务目的地后,动作控制模块24控制机器人暂停当前动作的执行,并取消CMD2任务指示的执行,也就是从工作事项队列中删除CMD2的工作事项EVENT3和EVENT4,相当于从动作序列中删除了EVENT3和EVENT4的对应动作内容,然后任务指示解析模块21依据待变更内容对CMD2的任务内容进行变更,得到CMD2’,然后工作链模型识别模块22将CMD2’作为一个新的任务指示进行工作链模型识别,动作序列生成模块23进而对CMD2’对应的工作事项进行实例化,动作控制模块24进而生成CMD2’对应的动作序列,然后机器人从当前位置按新生成的CMD2’的动作序列重新开始执行任务,实现机器人的中途更改移动目标位置的功能。
另外,如图10所示,本申请实施例还提出了一种基于工作链的机器人控制方法,包括以下步骤100至步骤400。
步骤100,响应于接收到的任务指示,对任务指示进行解析得到任务内容,其中,任务内容包括任务类型。
步骤200,从数据库中识别出与任务类型相对应的工作链模型,其中,工作链模型包含机器人的多个工作事项,且多个工作事项在被执行时的执行顺序为链式顺序。
步骤300,获取机器人的场景信息,依据场景信息对工作事项进行实例化,得到对应于工作事项的动作序列。
步骤400,依据动作序列控制机器人执行相应动作。
本实施例机器人控制方法的具体实施方式及其拓展内容与上述基于工作链的机器人控制装置各实施例基本相同,在此不做赘述。
根据本申请实施例提出的基于工作链的机器人控制方法,能够使机器人自主适应不同任务场景的变化,以识别出的通用工作链模型作为宏观上的任务流程,并在微观层面上将机器人的场景信息和任务信息补充到工作链模型的工作事项中,完成任务流程的实例化和场景配置,由此能够仅通过改变任务的场景配置即可实现在任务流程上针对不同的任务而进行适应性改动,无需针对不同场景而设计不同的任务流程,使机器人适用于多种不同类型任务的执行,让机器人在家用、工业等多种场景下能够以通用化的方式执行多种任务,增加机器人的功能多样性和场景适应性;另外,工作链模型本身不对何种具体算法进行选定,只有实例化之后形成的动作序列才会利用到具体算法,实现了将执行任务流程时依赖的算法功能与任务流程本身进行了剥离,使得在算法功能本身被修改时不会导致用到该算法功能的任务流程发生不适用或不匹配的情况,进一步保证了工作链模型的通用性和稳定性。
在一些实施例中,机器人控制方法还可以包括:在从数据库中识别出与任务类型相对应的工作链模型之前,对任务指示进行命令有效性判断,并依据命令有效性判断的结果确定是否对工作链模型进行识别,其中,命令有效性判断的判断事项包括:任务指示的指示来源、指示目标、控制类型、控制对象中的至少一项。
在一些实施例中,机器人控制方法还可以包括:在从数据库中识别出与任务类型相对应的工作链模型之前,对任务指示进行权限有效性判断,并依据权限有效性判断的结果确定是否对工作链模型进行识别,其中,权限有效性判断的判断事项包括:发起任务指示的对象的发起权限。
在一些实施例中,生成工作链模型的方式包括:首先获取机器人支持的多种场景任务,其中,场景任务包含机器人的多个工作事项;然后对每种场景任务进行抽象处理,得到与场景无关的多个工作事项;最后将与场景无关的多个工作事项进行链式排序,形成工作链模型。
在一些实施例中,在对工作事项进行实例化之前,先依据预先配置的事项类型对工作链模型包含的工作事项进行划分,得到主动工作事项和从动工作事项。其中,触发对主动工作事项进行实例化的时机为:主动工作事项位于工作事项队列中所有未执行工作事项的首位时;触发对从动工作事项进行实例化的时机为:对工作事项队列的所有未执行工作事项中排位于本从动工作事项之前且与本从动工作事项之间排位距离最近的主动工作事项进行实例化时。
在一些实施例中,步骤300中可以通过以下步骤310至步骤330对工作事项进行实例化从而得到对应于工作事项的动作序列。步骤310,依据场景信息和任务内容对工作事项的实施进行规划,得到多个工作节点,其中,多个工作节点按链式拓扑进行排列。步骤320,依据预先配置的节点-动作对应关系,分别得到每个工作节点对应的动作指令。步骤330,将各动作指令按链式拓扑进行排列,形成工作事项的动作序列。
在一些实施例中,场景信息包括:机器人的状态信息和机器人所处环境的环境信息。
在一些实施例中,在工作事项为机器人从第一位置移动到第二位置时,步骤310可以通过以下步骤311和步骤312对工作事项的实施进行规划从而得到多个工作节点。步骤311,依据机器人的状态信息、机器人所处环境的环境信息以及任务内容中的任务目的地对工作事项的实施进行路径规划,得到移动路径。步骤312,从预先配置的位置节点集合中确定移动路径途径的位置节点,并将每个位置节点作为相应的工作节点。
在一些实施例中,在依据动作序列控制机器人执行相应动作之前,机器人控制方法还可以包括:基于任务内容生成任务指示的任务约束条件,并且在控制机器人执行相应动作时,还依据任务约束条件控制机器人执行相应动作。其中,所述任务内容还包括:任务执行时间、目标位置、被执行对象中的至少一项。
在一些实施例中,若接收到的任务指示有多个,则在识别出各任务指示对应工作链模型之后,先对各识别出的工作链模型按任务重要性或任务目标位置进行融合,并将融合后的工作链模型包含的工作事项作为待实例化的对象。
在一些实施例中,若在工作事项队列中存在未完成的工作事项时接收到新的任务指示,则在识别出新的任务指示对应的新工作链模型之后,对新工作链模型和未完成的工作事项对应的工作链模型按任务重要性或任务目标位置进行融合,以及对融合后的工作链模型包含的工作事项进行实例化得到新动作序列,以及依据当前正在执行的动作序列中的动作执行进度,并控制机器人从新动作序列中当前的待完成动作开始执行新动作序列。
在一些实施例中,若机器人接收到任务取消指示,则响应于接收到的任务取消指示,对任务取消指示进行解析从而确定出待取消任务,并且将与待取消任务相关的动作内容从动作序列中删除,并按照删除后的动作序列控制机器人执行相应动作。
在一些实施例中,若机器人接收到任务变更指示,则响应于接收到的任务变更指示,对任务变更指示进行解析从而确定出待变更内容,以及依据待变更内容对动作序列中相应动作的动作内容进行调整,并基于调整后的动作序列控制机器人执行相应动作。
另外,本申请的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于工作链的机器人控制程序,该基于工作链的机器人控制程序被处理器执行时实现如上述实施例中的基于工作链的机器人控制方法。
本实施例计算机可读存储介质的具体实施方式及其拓展内容与上述基于工作链的机器人控制方法各实施例基本相同,在此不做赘述。
根据本申请实施例提出的计算机可读存储介质,使得机器人能够自主适应不同任务场景的变化,以识别出的通用工作链模型作为宏观上的任务流程,并在微观层面上将机器人的场景信息和任务信息补充到工作链模型的工作事项中,完成任务流程的实例化和场景配置,由此能够仅通过改变任务的场景配置即可实现在任务流程上针对不同的任务而进行适应性改动,无需针对不同场景而设计不同的任务流程,使机器人适用于多种不同类型任务的执行,让机器人在家用、工业等多种场景下能够以通用化的方式执行多种任务,增加机器人的功能多样性和场景适应性;另外,工作链模型本身不对何种具体算法进行选定,只有实例化之后形成的动作序列才会利用到具体算法,实现了将执行任务流程时依赖的算法功能与任务流程本身进行了剥离,使得在算法功能本身被修改时不会导致用到该算法功能的任务流程发生不适用或不匹配的情况,进一步保证了工作链模型的通用性和稳定性。
另外,如图11所示,本申请实施例还提出了一种机器人10,包括存储器11、处理器12及存储在存储器11上并可在处理器12上运行的基于工作链的机器人控制程序,处理器12执行基于工作链的机器人控制程序时,实现如上述实施例中的基于工作链的机器人控制方法。
本实施例机器人的具体实施方式及其拓展内容与上述基于工作链的机器人控制方法各实施例基本相同,在此不做赘述。
根据本申请实施例提出的机器人,能够自主适应不同任务场景的变化,以识别出的通用工作链模型作为宏观上的任务流程,并在微观层面上将机器人的场景信息和任务信息补充到工作链模型的工作事项中,完成任务流程的实例化和场景配置,由此能够仅通过改变任务的场景配置即可实现在任务流程上针对不同的任务而进行适应性改动,无需针对不同场景而设计不同的任务流程,使机器人适用于多种不同类型任务的执行,让机器人在家用、工业等多种场景下能够以通用化的方式执行多种任务,增加机器人的功能多样性和场景适应性;另外,工作链模型本身不对何种具体算法进行选定,只有实例化之后形成的动作序列才会利用到具体算法,实现了将执行任务流程时依赖的算法功能与任务流程本身进行了剥离,使得在算法功能本身被修改时不会导致用到该算法功能的任务流程发生不适用或不匹配的情况,进一步保证了工作链模型的通用性和稳定性。
在一些实施例中,机器人10为多足机器人100。
请参阅图12,图12为本申请其中一个实施方式的多足机器人100的硬件结构示意图。在图12所示的实施方式中,多足机器人100包括机械单元101、通讯单元102、传感单元103、接口单元104、存储单元105、控制模块110、电源111。多足机器人100的各种部件可以以任何方式连接,包括有线或无线连接等。本领域技术人员可以理解,图12中示出的多足机器人100的具体结构并不构成对多足机器人100的限定,多足机器人100可以包括比图示更多或更少的部件,某些部件也并不属于多足机器人100的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略,或者组合某些部件。
下面结合图12对多足机器人100的各个部件进行具体的介绍:
机械单元101为多足机器人100的硬件。如图12所示,机械单元101可包括驱动板1011、电机1012、机械结构1013,如图13所示,机械结构1013可包括机身主体1014、可伸展的腿部1015、足部1016,在其他实施方式中,请参阅图13,机械结构1013还可包括可伸展的机械臂(图未示)、可转动的头部结构1017、可摇动的尾巴结构1018、载物结构1019、鞍座结构1020、摄像头结构1021等。需要说明的是,机械单元101的各个部件模块可以为一个也可以为多个,可根据具体情况设置,比如腿部1015可为4个,每个腿部1015可配置3个电机1012,对应的电机1012为12个。
通讯单元102可用于信号的接收和发送,还可以通过与网络和其他设备通信,比如,接收遥控器或其他多足机器人100发送的按照特定步态以特定速度值向特定方向移动的指令信息后,传输给控制模块110处理。通讯单元102包括如WiFi模块、4G模块、5G模块、蓝牙模块、红外模块等。
传感单元103用于获取多足机器人100周围环境的信息数据以及监控多足机器人100内部各部件的参数数据,并发送给控制模块110。传感单元103包括多种传感器,如获取周围环境信息的传感器:激光雷达(用于远程物体检测、距离确定和/或速度值确定)、毫米波雷达(用于短程物体检测、距离确定和/或速度值确定)、摄像头、红外摄像头、全球导航卫星系统(GNSS,Global Navigation Satellite System)等。如监控多足机器人100内部各部件的传感器:惯性测量单元(IMU,Inertial Measurement Unit)(用于测量速度值、加速度值和角速度值的值),足底传感器(用于监测足底着力点位置、足底姿态、触地力大小和方向)、温度传感器(用于检测部件温度)。至于多足机器人100还可配置的载荷传感器、触摸传感器、电机角度传感器、扭矩传感器等其他传感器,在此不再赘述。
接口单元104可以用于接收来自外部装置的输入(例如,数据信息、电力等)并且将接收到的输入传输到多足机器人100内的一个或多个部件,或者可以用于向外部装置输出(例如,数据信息、电力等)。接口单元104可包括电源端口、数据端口(如USB端口)、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口等。
存储单元105用于存储软件程序以及各种数据。存储单元105可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统程序、运动控制程序、应用程序(比如文本编辑器)等;数据存储区可存储多足机器人100在使用中所生成的数据(比如传感单元103获取的各种传感数据,日志文件数据)等。此外,存储单元105可以包括高速随机存取存储器,还可以包括非易失性存储器,例如磁盘存储器、闪存器、或其他易失性固态存储器。
显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1061。
输入单元107可用于接收输入的数字或字符信息。具体地,输入单元107可包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏,可收集用户的触摸操作(比如用户使用手掌、手指或适合的附件在触控面板1071上或在触控面板1071附近的操作),并根据预先设定的程式驱动相应的连接装置。触控面板1071可包括触摸检测装置1073和触摸控制器1074两个部分。其中,触摸检测装置1073检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器1074;触摸控制器1074从触摸检测装置1073上接收触摸信息,并将它转换成触点坐标,再送给控制模块110,并能接收控制模块110发来的命令并加以执行。除了触控面板1071,输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于遥控操作手柄等中的一种或多种,具体此处不做限定。
进一步的,触控面板1071可覆盖显示面板1061,当触控面板1071检测到在其上或附近的触摸操作后,传送给控制模块110以确定触摸事件的类型,随后控制模块110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图12中,触控面板1071与显示面板1061是作为两个独立的部件来分别实现输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现输入和输出功能,具体此处不做限定。
控制模块110是多足机器人100的控制中心,利用各种接口和线路连接整个多足机器人100的各个部件,通过运行或执行存储在存储单元105内的软件程序,以及调用存储在存储单元105内的数据,从而对多足机器人100进行整体控制。
电源111用于给各个部件供电,电源111可包括电池和电源控制板,电源控制板用于控制电池充电、放电、以及功耗管理等功能。在图12所示的实施方式中,电源111电连接控制模块110,在其它的实施方式中,电源111还可以分别与传感单元103(比如摄像头、雷达、音箱等)、电机1012电性连接。需要说明的是,各个部件可以各自连接到不同的电源111,或者由相同的电源111供电。
在上述实施方式的基础上,具体地,在一些实施方式中,可以通过终端设备来与多足机器人100进行通信连接,在终端设备与多足机器人100进行通信时,可以通过终端设备来向多足机器人100发送指令信息,多足机器人100可通过通讯单元102来接收指令信息,并可在接收到指令信息的情况下,将指令信息传输至控制模块110,使得控制模块110可根据指令信息来处理得到目标速度值。终端设备包括但不限于:具备图像拍摄功能的手机、平板电脑、服务器、个人计算机、可穿戴智能设备、其它电器设备。
指令信息可以根据预设条件来确定。在一个实施方式中,多足机器人100可以包括传感单元103,传感单元103可根据多足机器人100所在的当前环境可生成指令信息。控制模块110可根据指令信息来判断多足机器人100的当前速度值是否满足对应的预设条件。若满足,则会保持多足机器人100的当前速度值和当前步态移动;若不满足,则会根据对应的预设条件来确定目标速度值和相应的目标步态,从而可控制多足机器人100以目标速度值和相应的目标步态移动。环境传感器可以包括温度传感器、气压传感器、视觉传感器、声音传感器。指令信息可以包括温度信息、气压信息、图像信息、声音信息。环境传感器与控制模块110之间的通信方式可以为有线通信,也可以为无线通信。无线通信的方式包括但不限于:无线网络、移动通信网络(3G、4G、5G等)、蓝牙、红外。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (14)
1.一种基于工作链的机器人控制装置,其特征在于,包括:
任务指示解析模块,用于响应于接收到的任务指示,对所述任务指示进行解析得到任务内容,其中,所述任务内容包括任务类型;
工作链模型识别模块,用于从数据库中识别出与所述任务类型相对应的工作链模型,其中,所述工作链模型包含机器人的多个工作事项,且所述多个工作事项在被执行时的执行顺序为链式顺序;
动作序列生成模块,用于获取机器人的场景信息,依据所述场景信息对所述工作事项进行实例化,得到对应于所述工作事项的动作序列;
动作控制模块,用于依据所述动作序列控制机器人执行相应动作;
所述装置还包括:工作链模型融合模块;若接收到的任务指示有多个,则在所述工作链模型识别模块识别出各任务指示对应工作链模型之后,所述工作链模型融合模块先对各识别出的工作链模型按任务重要性或任务目标位置进行融合,并将融合后的工作链模型包含的工作事项作为待实例化的对象;
若在工作事项队列中存在未完成的工作事项时接收到新的任务指示,则在所述工作链模型识别模块识别出新的任务指示对应的新工作链模型之后,所述工作链模型融合模块对所述新工作链模型和未完成的工作事项对应的工作链模型按任务重要性或任务目标位置进行融合,以及所述动作序列生成模块对融合后的工作链模型包含的工作事项进行实例化得到新动作序列,以及所述动作控制模块依据当前正在执行的动作序列中的动作执行进度,控制机器人从所述新动作序列中当前的待完成动作开始执行所述新动作序列。
2.根据权利要求1所述的机器人控制装置,其特征在于,所述装置还包括:命令有效性判断模块,所述命令有效性判断模块用于在从数据库中识别出与所述任务类型相对应的工作链模型之前,对所述任务指示进行命令有效性判断,并依据所述命令有效性判断的结果确定是否对所述工作链模型进行识别,其中,所述命令有效性判断的判断事项包括:所述任务指示的指示来源、指示目标、控制类型、控制对象中的至少一项。
3.根据权利要求1或2所述的机器人控制装置,其特征在于,所述装置还包括:权限有效性判断模块,所述权限有效性判断模块用于在从数据库中识别出与所述任务类型相对应的工作链模型之前,对所述任务指示进行权限有效性判断,并依据所述权限有效性判断的结果确定是否对所述工作链模型进行识别,其中,所述权限有效性判断的判断事项包括:发起所述任务指示的对象的发起权限。
4.根据权利要求1所述的机器人控制装置,其特征在于,所述装置还包括:工作链模型生成模块,所述工作链模型生成模块用于生成所述工作链模型,所述工作链模型生成模块生成所述工作链模型的方式包括:
获取机器人支持的多种场景任务,其中,所述场景任务包含机器人的多个工作事项;
对每种场景任务进行抽象处理,得到与场景无关的多个工作事项;
将所述与场景无关的多个工作事项进行链式排序,形成所述工作链模型。
5.根据权利要求1所述的机器人控制装置,其特征在于,所述动作序列生成模块在对工作事项进行实例化之前,先依据预先配置的事项类型对所述工作链模型包含的工作事项进行划分,得到主动工作事项和从动工作事项;其中,
触发所述动作序列生成模块对所述主动工作事项进行实例化的时机为:所述主动工作事项位于工作事项队列中所有未执行工作事项的首位时;
触发所述动作序列生成模块对所述从动工作事项进行实例化的时机为:对所述工作事项队列的所有未执行工作事项中排位于本从动工作事项之前且与本从动工作事项之间排位距离最近的主动工作事项进行实例化时。
6.根据权利要求1所述的机器人控制装置,其特征在于,所述动作序列生成模块通过以下步骤对所述工作事项进行实例化从而得到对应于所述工作事项的动作序列:
依据所述场景信息和所述任务内容对所述工作事项的实施进行规划,得到多个工作节点,其中,所述多个工作节点按链式拓扑进行排列;
依据预先配置的节点-动作对应关系,分别得到每个所述工作节点对应的动作指令;
将各所述动作指令按所述链式拓扑进行排列,形成所述工作事项的动作序列。
7.根据权利要求6所述的机器人控制装置,其特征在于,所述场景信息包括:机器人的状态信息和机器人所处环境的环境信息。
8.根据权利要求7所述的机器人控制装置,其特征在于,在所述工作事项为机器人从第一位置移动到第二位置时,所述动作序列生成模块通过以下步骤对所述工作事项的实施进行规划从而得到多个工作节点,包括:
依据所述机器人的状态信息、机器人所处环境的环境信息以及所述任务内容中的任务目的地对所述工作事项的实施进行路径规划,得到移动路径;
从预先配置的位置节点集合中确定所述移动路径途径的位置节点,并将每个所述位置节点作为相应的工作节点。
9.根据权利要求1所述的机器人控制装置,其特征在于,若机器人接收到任务取消指示,则所述任务指示解析模块响应于接收到的任务取消指示,对所述任务取消指示进行解析从而确定出待取消任务,并且所述动作序列生成模块将与所述待取消任务相关的动作内容从所述动作序列中删除,所述动作控制模块按照删除后的动作序列控制机器人执行相应动作。
10.根据权利要求1所述的机器人控制装置,其特征在于,若机器人接收到任务变更指示,则所述任务指示解析模块响应于接收到的任务变更指示,对所述任务变更指示进行解析从而确定出待变更内容,以及所述动作控制模块依据所述待变更内容对所述动作序列中相应动作的动作内容进行调整,并基于调整后的动作序列控制机器人执行相应动作。
11.一种基于工作链的机器人控制方法,其特征在于,包括:
响应于接收到的任务指示,对所述任务指示进行解析得到任务内容,其中,所述任务内容包括任务类型;
从数据库中识别出与所述任务类型相对应的工作链模型,其中,所述工作链模型包含机器人的多个工作事项,且所述多个工作事项在被执行时的执行顺序为链式顺序;
获取机器人的场景信息,依据所述场景信息对所述工作事项进行实例化,得到对应于所述工作事项的动作序列;
依据所述动作序列控制机器人执行相应动作;
若接收到的任务指示有多个,则在识别出各任务指示对应工作链模型之后,先对各识别出的工作链模型按任务重要性或任务目标位置进行融合,并将融合后的工作链模型包含的工作事项作为待实例化的对象;
若在工作事项队列中存在未完成的工作事项时接收到新的任务指示,则在识别出新的任务指示对应的新工作链模型之后,对所述新工作链模型和未完成的工作事项对应的工作链模型按任务重要性或任务目标位置进行融合,以及对融合后的工作链模型包含的工作事项进行实例化得到新动作序列,以及依据当前正在执行的动作序列中的动作执行进度,控制机器人从所述新动作序列中当前的待完成动作开始执行所述新动作序列。
12.根据权利要求11所述的机器人控制方法,其特征在于,生成所述工作链模型的方式包括:
获取机器人支持的多种场景任务,其中,所述场景任务包含机器人的多个工作事项;
对每种场景任务进行抽象处理,得到与场景无关的多个工作事项;
将所述与场景无关的多个工作事项进行链式排序,形成所述工作链模型。
13.根据权利要求11所述的机器人控制方法,其特征在于,对所述工作事项进行实例化从而得到对应于所述工作事项的动作序列,包括:
依据所述场景信息和所述任务内容对所述工作事项的实施进行规划,得到多个工作节点,其中,所述多个工作节点按链式拓扑进行排列;
依据预先配置的节点-动作对应关系,分别得到每个所述工作节点对应的动作指令;
将各所述动作指令按所述链式拓扑进行排列,形成所述工作事项的动作序列。
14.一种机器人,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的基于工作链的机器人控制程序,所述处理器执行所述基于工作链的机器人控制程序时,实现如权利要求11-13中任一项所述的基于工作链的机器人控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210546093.2A CN114888804B (zh) | 2022-05-18 | 2022-05-18 | 基于工作链的机器人控制装置及方法、介质、机器人 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210546093.2A CN114888804B (zh) | 2022-05-18 | 2022-05-18 | 基于工作链的机器人控制装置及方法、介质、机器人 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114888804A CN114888804A (zh) | 2022-08-12 |
CN114888804B true CN114888804B (zh) | 2024-03-12 |
Family
ID=82724520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210546093.2A Active CN114888804B (zh) | 2022-05-18 | 2022-05-18 | 基于工作链的机器人控制装置及方法、介质、机器人 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114888804B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105874773A (zh) * | 2014-11-20 | 2016-08-17 | 华为技术有限公司 | 任务处理装置、智能设备、任务处理方法及基带处理器 |
CN109145100A (zh) * | 2018-08-24 | 2019-01-04 | 深圳追科技有限公司 | 一种可定制化流程的任务型客服机器人系统及其工作方法 |
CN109202882A (zh) * | 2017-06-29 | 2019-01-15 | 深圳模德宝科技有限公司 | 一种机器人的控制方法及其装置 |
CN111958584A (zh) * | 2019-06-28 | 2020-11-20 | 鲁班嫡系机器人(深圳)有限公司 | 轨迹规划方法、装置及系统 |
CN112518756A (zh) * | 2020-12-10 | 2021-03-19 | 深圳市优必选科技股份有限公司 | 机械臂的运动轨迹规划方法及装置、机械臂及存储介质 |
CN113256107A (zh) * | 2021-05-24 | 2021-08-13 | 上海钛米机器人股份有限公司 | 一种配送任务合并方法、装置、存储介质及电子设备 |
WO2021179619A1 (zh) * | 2020-03-13 | 2021-09-16 | 广东博智林机器人有限公司 | 机器人指令传输、处理方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9283675B2 (en) * | 2010-11-11 | 2016-03-15 | The Johns Hopkins University | Human-machine collaborative robotic systems |
CN110297697B (zh) * | 2018-03-21 | 2022-02-18 | 北京猎户星空科技有限公司 | 机器人动作序列生成方法和装置 |
-
2022
- 2022-05-18 CN CN202210546093.2A patent/CN114888804B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105874773A (zh) * | 2014-11-20 | 2016-08-17 | 华为技术有限公司 | 任务处理装置、智能设备、任务处理方法及基带处理器 |
CN109202882A (zh) * | 2017-06-29 | 2019-01-15 | 深圳模德宝科技有限公司 | 一种机器人的控制方法及其装置 |
CN109145100A (zh) * | 2018-08-24 | 2019-01-04 | 深圳追科技有限公司 | 一种可定制化流程的任务型客服机器人系统及其工作方法 |
CN111958584A (zh) * | 2019-06-28 | 2020-11-20 | 鲁班嫡系机器人(深圳)有限公司 | 轨迹规划方法、装置及系统 |
WO2021179619A1 (zh) * | 2020-03-13 | 2021-09-16 | 广东博智林机器人有限公司 | 机器人指令传输、处理方法、装置、电子设备及存储介质 |
CN112518756A (zh) * | 2020-12-10 | 2021-03-19 | 深圳市优必选科技股份有限公司 | 机械臂的运动轨迹规划方法及装置、机械臂及存储介质 |
CN113256107A (zh) * | 2021-05-24 | 2021-08-13 | 上海钛米机器人股份有限公司 | 一种配送任务合并方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114888804A (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7395229B2 (ja) | 状況認識のためのモバイル清掃ロボット人工知能 | |
JP7436103B2 (ja) | モバイル清掃ロボットの協同および永続マッピング | |
EP2068275B1 (en) | Communication robot | |
Herrero-Perez et al. | Modeling distributed transportation systems composed of flexible automated guided vehicles in flexible manufacturing systems | |
US20180311820A1 (en) | System and method for robotic delivery between moving targets | |
WO2021103987A1 (zh) | 扫地机器人控制方法、扫地机器人及存储介质 | |
TW202045324A (zh) | 多機器人協同服務方法、裝置、系統、機器人控制設備、機器人、電腦可讀存儲介質及電腦程式產品 | |
US20230039466A1 (en) | Method and a system for conveying a robot in an elevator | |
Yoshimi et al. | Development of a concept model of a robotic information home appliance, ApriAlpha | |
JP2019525342A (ja) | 自律移動ロボッを制御する方法 | |
JP7243110B2 (ja) | 情報処理装置及び情報処理方法、コンピュータプログラム、並びに荷物受け取り支援システム | |
US11654570B2 (en) | Self-driving robot and method of operating same | |
KR20190096849A (ko) | 빌딩 관리 로봇 및 그를 이용한 서비스 제공 방법 | |
US11372418B2 (en) | Robot and controlling method thereof | |
JP4886572B2 (ja) | ロボット | |
JP2004110802A (ja) | 環境同定装置、環境同定方法、プログラム及び記録媒体、並びにロボット装置 | |
CN112352207A (zh) | 自主移动机器人及其控制方法 | |
CN113657565A (zh) | 机器人跨楼层移动方法、装置、机器人及云端服务器 | |
US11511634B2 (en) | Charging system for robot and control method thereof | |
US20210208595A1 (en) | User recognition-based stroller robot and method for controlling the same | |
CN114888804B (zh) | 基于工作链的机器人控制装置及方法、介质、机器人 | |
KR20210026595A (ko) | 로봇이 관리자 모드로 이동하는 방법 및 이를 구현하는 로봇 | |
CN114550488A (zh) | 一种基于机器人的空车位巡逻方法及装置 | |
WO2020022122A1 (ja) | 情報処理装置、行動決定方法及びプログラム | |
KR20210037430A (ko) | 로봇과 연결되는 장치, 이의 제어 방법, 및 로봇 시스템 |
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 |