CN114326495B - 一种机器人控制系统架构及语音指令处理方法 - Google Patents
一种机器人控制系统架构及语音指令处理方法 Download PDFInfo
- Publication number
- CN114326495B CN114326495B CN202111597802.1A CN202111597802A CN114326495B CN 114326495 B CN114326495 B CN 114326495B CN 202111597802 A CN202111597802 A CN 202111597802A CN 114326495 B CN114326495 B CN 114326495B
- Authority
- CN
- China
- Prior art keywords
- task
- voice
- action
- node
- execution
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 35
- 230000009471 action Effects 0.000 claims description 182
- 230000006870 function Effects 0.000 claims description 137
- 230000000875 corresponding effect Effects 0.000 claims description 77
- 230000001276 controlling effect Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 11
- 230000003993 interaction Effects 0.000 abstract description 9
- 230000008878 coupling Effects 0.000 abstract description 3
- 238000010168 coupling process Methods 0.000 abstract description 3
- 238000005859 coupling reaction Methods 0.000 abstract description 3
- 238000004422 calculation algorithm Methods 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 9
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 8
- 238000011161 development Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- 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
- Manipulator (AREA)
Abstract
本发明公开了一种机器人控制系统架构及语音指令处理方法,其机器人控制系统架构功能模块划分清晰,模块间耦合度底,有效提升系统健壮性,稳定性,可维护性。并且基于机器人控制系统架构提供的语音指令处理方法,通过行为树数据结构保存当前语音对话上下文,通过独立语音服务模块管理语音交互状态,实现了基于场景上下文的语音指令执行功能,解决单条语音指令只能执行一种对应功能的问题;且通过此方法实现情景上下文中的语音指令处理功能对硬件性能要求低,不需要做复杂的算法计算,可以快速商业应用。
Description
技术领域
本申请属于机器人语音控制技术领域,具体涉及一种机器人控制系统架构及语音指令处理方法。
背景技术
随着计算机技术、人工智能的快速发展,智能设备产品越来越多,在机器人控制的相关技术中,一般是在控制器中预设多种运行状态,采用遥控器上的功能按键在预设运行状态中进行选择,或在机器人本体上设置控制面板,采用按压功能按钮、选择触摸屏上的预设功能等进行机器人的状态控制,但这两种控制方式都不够灵活,因此市面上还出现了语音控制机器人,用户发出预设语音指令,机器人按照预设语音指令对应的动作或状态来运行,此时,需要用户熟记每个预设语音指令及其对应的功能,若语音指令为错误指令,则机器人无法进行相应的操作,这种控制方式增加了记忆负担,用户体验不佳。并且如果机器人在某个指令执行的过程中有新的指令下达,则只能简单的将之前的任务停止而重新开始新的任务,在不同的任务场景下实现机器人对语音指令做针对性的处理暂未提出有效的解决方案。
目前,对机器人的语音控制中,单条语音指令只能实现单个动作控制,无法实现根据不同的场景对相同的语音指令做对应不同的动作。在移动服务机器人领域,机器人会面临各种复杂的场景,而目前的语音控制方式将会使机器人语音指令执行功能具有很大的限制,在机器人在执行动作的过程中,无法根据当前的情景状态对语音指令做出智能的处理,只可以直接执行语音指令对应的控制功能,难以在不同的场景中做出复杂的语音指令功能逻辑。
发明内容
本申请的目的在于提供一种机器人控制系统架构及语音指令处理方法,解决单个语音指令只能执行一种固定动作的限制,实现复杂场景的语音控制。
为实现上述目的,本申请所采取的技术方案为:
一种机器人控制系统架构,所述机器人控制系统架构包括语音服务模块、任务模块和动作模块,所述任务模块包括任务管理模块和任务功能模块,其中:
所述语音服务模块,用于接收外界输入的语音指令,并将所述语音指令转发至所述任务管理模块;
所述任务管理模块,用于接收所述语音服务模块发送的语音指令,若判断所述语音指令为任务指令,则根据语音指令启动对应的任务功能模块,若判断所述语音指令为非任务指令,则将语音指令发送至所有已启动的任务功能模块;
所述任务功能模块,用于在启动后执行预构建的行为树得到动作指令,并将动作指令发送至所述动作模块;或者用于在执行行为树时根据新接收的语音指令得到动作指令,并将动作指令发送至所述动作模块;
所述动作模块,用于接收任务功能模块发送的动作指令,并根据所述动作指令控制机器人执行相应动作。
以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
作为优选,所述根据语音任务启动对应的任务功能模块,执行如下操作:
在接收到新的语音任务时,若任务执行链表中不存在正在执行的语音任务,则将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块;
在接收到新的语音任务时,若任务执行链表中存在正在执行的语音任务,则判断新的语音任务与正在执行的语音任务是否为同类型任务,若为同类型任务,则根据任务优先级判断,如果新的语音任务优先级大于当前的语音任务,则将当前语音任务停止并从任务执行链表中删除,将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块;反之则继续执行当前的语音任务,不处理新的语音任务;
若不为同类型任务,则将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块。
作为优选,所述行为树包括一个根节点、一个或多个逻辑节点、一个或多个动作节点,所述逻辑节点包括selector逻辑节点和sequence逻辑节点;
所述根节点的子节点为逻辑节点,每个逻辑节点的子节点为逻辑节点或/和动作节点,行为树中的每一分支的首节点均为根节点、末节点均为动作节点;
其中所述selector逻辑节点的执行逻辑为:若selector逻辑节点的子节点中有一个子节点执行成功,则selector逻辑节点返回执行成功;否则返回执行失败;
所述sequence逻辑节点的执行逻辑为:若sequence逻辑节点的子节点全部执行成功,则sequence逻辑节点返回执行成功,否则返回执行失败。
作为优选,所述动作节点中设有set_cmd回调函数,且动作节点具有等待执行、执行中、执行完成三种状态;所述任务功能模块在执行行为树时根据新接收的语音指令得到动作指令,执行如下操作:
遍历行为树中所有动作节点的set_cmd回调函数,并向当前遍历的set_cmd回调函数传入新的语音指令对应的编号,set_cmd回调函数接收编号并判断若存在动作节点的状态为执行中且具备新的语音指令的处理功能,则在动作节点中处理新的语音指令;否则不处理新的语音指令。
本申请还提供一种语音指令处理方法,基于所述的机器人控制系统架构实现,所述语音指令处理方法,包括:
语音服务模块接收外界输入的语音指令,并将所述语音指令转发至任务管理模块;
任务管理模块判断所接收的语音指令,若判断所述语音指令为任务指令,则根据语音指令启动对应的任务功能模块,若判断所述语音指令为非任务指令,则将语音指令发送至所有已启动的任务功能模块;
任务功能模块在启动后执行预构建的行为树得到动作指令,并将动作指令发送至所述动作模块;或者任务功能模块在执行行为树时根据新接收的语音指令得到动作指令,并将动作指令发送至所述动作模块;
动作模块根据所述动作指令控制机器人执行相应动作,完成语音指令处理。
作为优选,所述根据语音任务启动对应的任务功能模块,包括:
在接收到新的语音任务时,若任务执行链表中不存在正在执行的语音任务,则将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块;
在接收到新的语音任务时,若任务执行链表中存在正在执行的语音任务,则判断新的语音任务与正在执行的语音任务是否为同类型任务,若为同类型任务,则根据任务优先级判断,如果新的语音任务优先级大于当前的语音任务,则将当前语音任务停止并从任务执行链表中删除,将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块;反之则继续执行当前的语音任务,不处理新的语音任务;
若不为同类型任务,则将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块。
作为优选,所述行为树包括一个根节点、一个或多个逻辑节点、一个或多个动作节点,所述逻辑节点包括selector逻辑节点和sequence逻辑节点;
所述根节点的子节点为逻辑节点,每个逻辑节点的子节点为逻辑节点或/和动作节点,行为树中的每一分支的首节点均为根节点、末节点均为动作节点;
其中所述selector逻辑节点的执行逻辑为:若selector逻辑节点的子节点中有一个子节点执行成功,则selector逻辑节点返回执行成功;否则返回执行失败;
所述sequence逻辑节点的执行逻辑为:若sequence逻辑节点的子节点全部执行成功,则sequence逻辑节点返回执行成功,否则返回执行失败。
作为优选,所述动作节点中设有set_cmd回调函数,且动作节点具有等待执行、执行中、执行完成三种状态;所述任务功能模块在执行行为树时根据新接收的语音指令得到动作指令,包括:
遍历行为树中所有动作节点的set_cmd回调函数,并向当前遍历的set_cmd回调函数传入新的语音指令对应的编号,set_cmd回调函数接收编号并判断若存在动作节点的状态为执行中且具备新的语音指令的处理功能,则在动作节点中处理新的语音指令;否则不处理新的语音指令。
本申请提供的机器人控制系统架构,功能模块划分清晰,模块间耦合度底,有效提升系统健壮性,稳定性,可维护性。并且基于机器人控制系统架构提供的语音指令处理方法,通过行为树数据结构保存当前语音对话上下文,通过独立语音服务模块管理语音交互状态,实现了基于场景上下文的语音指令执行功能,解决单条语音指令只能执行一种对应功能的问题;且通过此方法实现情景上下文中的语音指令处理功能对硬件性能要求低,不需要做复杂的算法计算,可以快速商业应用。
附图说明
图1为本申请的机器人控制系统架构的结构示意图;
图2为本申请行为树的结构示意图;
图3为本申请的机器人控制系统架构的拓展结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本申请。
其中一个实施例中,提供一种机器人控制系统架构,主要功能是接收控制端指令后,控制机器人执行对应的功能任务,以克服现有技术中单条语音指令只能实现单个动作控制的缺陷。
如图1所示,本实施例的机器人控制系统架构包括语音服务模块、任务模块和动作模块,并且任务模块包括任务管理模块和任务功能模块。
1)语音服务模块,用于接收外界输入的语音指令,作为机器人功能执行的触发条件,并将语音指令转发至任务管理模块。
2)任务管理模块,用于接收语音服务模块发送的语音指令,若判断语音指令为任务指令,则根据语音指令启动对应的任务功能模块,若判断语音指令为非任务指令,则将语音指令发送至所有已启动的任务功能模块。也就是非任务指令在当前无任务执行的情况下将不会执行。
容易理解的是,在信息传输中,通常为了保证数据传输的可靠性,会对数据进行封装或者按照预设的格式进行传输,并在接收数据后对其进行分析使用。也就是说本申请任务管理模块在使用语音指令之前还可以包括对语音指令的解析获取指令内容等常规的数据传输处理操作。
本申请中的任务管理模块实现对所有任务的管理,包括启动、暂停、停止等,实现对任务资源的控制,任务的中断,新任务插入,旧任务管理,任务资源管理。
为了便于对任务的管理,将不同的任务通过任务划分种类和优先级,同种类型任务互斥(如放电影,放音乐),不能同时执行,非同种类型任务(如放音乐和检查窗户)可以并行执行。
因此对于任务启动而言,即根据语音指令启动对应的任务功能模块时,执行如下操作:
在接收到新的语音任务时,若任务执行链表(即包含所有正在执行的任务的链表)中不存在正在执行的语音任务,则将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块。
在接收到新的语音任务时,若任务执行链表中存在正在执行的语音任务,则判断新的语音任务与正在执行的语音任务是否为同类型任务,若新的语音任务与正在执行的语音任务为同类型任务,则根据任务优先级判断,如果新的语音任务优先级大于当前的语音任务,则将当前语音任务停止并从任务执行链表中删除,将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块;反之则继续执行当前的语音任务,不处理新的语音任务;
若新的语音任务与正在执行的语音任务不为同类型任务,则将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块,通过遍历任务执行链表中的行为树,并行执行不同种类型的任务。
在对任务进行暂停/继续执行、停止的操作时,必然存在正在执行的任务,则将语音指令发送至所有已启动的任务功能模块进行执行。
3)任务功能模块(即图1中的任务1、任务2、任务3等),用于在启动后执行预构建的行为树得到动作指令,并将动作指令发送至所述动作模块;或者用于在执行行为树时根据新接收的语音指令得到动作指令,并将动作指令发送至所述动作模块。
任务功能模块通过行为树实现业务功能逻辑,方便管理,模块化开发,新增加任务功能模块时,只需要独立开发对应功能的类功能逻辑即可,即可以提前将所有可以支持的任务做成独立的软件任务功能模块,不涉及对其它模块的修改,降低模块间耦合度,实现模块化开发,提高开发效率;通过行为树实现业务功能时,主要需要做2件事:设计任务实现流程逻辑,设计具体的单个任务功能模块叶节点的实现。这种数据结构非常适合做机器人业务功能。
如图2所示,本实施例中的行为树包括一个根节点(对应于图2中的任务)、一个或多个逻辑节点、一个或多个动作节点(对应于图2中的动作1、2、3、4、5、6),并且逻辑节点包括selector逻辑节点和sequence逻辑节点。
在行为树中根节点的子节点为逻辑节点,每个逻辑节点的子节点为逻辑节点或/和动作节点,行为树中的每一分支的首节点均为根节点、末节点均为动作节点。
其中,selector逻辑节点的执行逻辑为:若selector逻辑节点的子节点中有一个子节点执行成功,则selector逻辑节点返回执行成功;否则返回执行失败。如图2,即如果动作1执行成功(检测主人是否在视野中,如果在返回true(成功),如果不在返回False(失败)),则动作1的父节点selector直接返回成功,否则继续执行与动作1平行的selector节点,然后再执行相同逻辑,先执行动作2,如果2成功,则返回成功,任务执行完成,如果2失败,则继续执行动作3,并返回动作3的执行结果。
sequence逻辑节点的执行逻辑为:若sequence逻辑节点的子节点全部执行成功,则sequence逻辑节点返回执行成功,否则返回执行失败。如图2,如sequence在执行动作4失败后,直接返回失败,如果动作4执行成功,则继续执行与动作4平行的selector,然后执行selector的逻辑,并返回执行结果。
执行失败,按照父节点的逻辑处理,如父节点为sequence则执行失败后,sequence父节点直接返回失败;如父节点为selector节点,则执行失败后继续执行下一个节点,如果所有子节点都执行失败,则父节点selector节点返回失败;如父节点为根节点,则根节点返回失败即任务执行失败,根节点返回成功任务执行成功,并上报任务执行结果。
在行为树的一个循环中,不断的遍历行为树的节点,直到有结果后行为树停止执行。其中根节点为行为树任务开始的地方,行为树最开始执行时,先遍历根节点的所有子节点,如果有一个子节点返回成功,则行为树执行成功,任务完成,如果所有子节点都执行失败,则行为树执行失败。
为了实现机器人在不同场景下针对相同语音指令具有不同的动作执行,本实施例中的动作节点中设有set_cmd回调函数,且动作节点具有等待执行、执行中、执行完成三种状态。则任务功能模块在执行行为树时根据新接收的语音指令得到动作指令,执行如下操作:
遍历行为树中所有动作节点的set_cmd回调函数,并向当前遍历的set_cmd回调函数传入新的语音指令对应的编号,set_cmd回调函数接收编号并判断若存在动作节点的状态为执行中且具备新的语音指令的处理功能(在功能设计实现时就已经确定是否具备语音任务处理功能,具体实现方式为在set_cmd回调函数中增加语音对应语音指令的处理逻辑,如果有逻辑则具备处理功能,没有逻辑则不具备处理功能),则在动作节点中处理新的语音指令;否则不处理新的语音指令,继续执行之前的语音指令。
即在任务执行行为树的过程中,如果有新的场景指令发送到任务管理模块,任务管理模块会将场景指令转发给当前所有在执行的任务,通过行为树节点的set_cmd回调函数实现,在所有的动作模块中都包含set_cmd回调函数,用于处理场景指令,由于行为树数据结构可以保存当前场景的具体执行状态,因此,在动作节点中,可以根据当前行为树的执行状态对指令做相应的处理,实现基于场景上下文状态下的语音指令处理功能。
例如,先给机器人发送指令,给我拿水,机器人遍历执行拿水行为树,先在桌子上找水(动作节点1),找不到再到冰箱找水(动作节点2),找不到再到厨房找水(动作节点3),如果在执行动作1拿水的过程中,收到“去厨房”指令后,则在动作节点1中的set_cmd回调函数中将动作节点1的目的地坐标修改为厨房的坐标,即可在动作节点1中直接去厨房拿水,实现在拿水的情景中,处理新语音指令的功能。在待机的场景下,收到“去厨房”指令则直接移动到厨房后任务就直接结束。
对应的,若行为树在待机状态下其所在的任务功能模块收到新的语音指令,则正常遍历行为树处理语音指令即可,也就是在启动后执行预构建的行为树得到动作指令。
为了便于任务管理模块对任务执行暂停、继续执行、停止等操作,在行为树的根节点中设置set_cmd回调函数,即在任务根节点中的set_cmd回调函数中实现:
当收到暂停指令后,通过set_cmd回调函数将当前任务配置为pause状态,则在任务执行的循环中,每次到根节点后,根据状态判断如果为pause状态,则直接返回pause,不再遍历执行子节点。
当接收到继续执行指令后,将当前任务配置为running状态,继续遍历执行所有子节点至任务执行完毕,正常执行时,任务状态为running状态。
当收到停止指令后,将当前任务配置为stop状态,则在任务执行的循环中,执行到根节点后,直接返回stop,任务停止结束,释放任务资源。
当任务执行结束(成功、失败、停止)后,根据任务根节点返回结果至任务管理模块,将任务资源从任务执行链表中删除,并释放对应资源如申请的内存等。4)动作模块,用于接收任务功能模块发送的动作指令,并根据所述动作指令控制机器人执行相应动作。如控制电机转动实现机器人移动功能。
本实施例将系统模块划分清晰,各模块间功能独立,将业务逻辑与独立的任务执行功能完全解耦,设计不同功能时,只需要关注对应模块的对应功能即可,简化开发难度。
本实施例的机器人控制系统架构中,语音服务模块在接收到语音指令后,将语音指令做封装然后转换为对应控制协议,并转发给任务管理模块,任务管理模块根据指令内容,启动对应任务功能模块,在任务功能模块初始化阶段,会先初始化任务行为树,然后启动线程不断执行行为树,任务执行完成后,向任务管理模块发送任务结束消息,任务管理模块根据任务结束状态,回收任务资源,实现机器人任务的管理。
如图3所示,本实施例的控制系统架构还可以包括语音交互模块,其中语音交互模块,用于将声音数据转换为指令数据如0/1/2/3;语音服务模块为根据功能需求以指定逻辑处理指令数据的软件模块。
在语音服务模块中,通过一个action功能,存储当前是出于正常等待语音输入状态还是机器人主动发起语音请求并等待答复的状态,来决定语音指令是发送给任务管理模块还是发送给行为树节点,比如在行为树节点中发送“请问主人在哪”的指令请求给语音服务模块后,语音服务模块切换为等待答复状态,则后一条语音恢复直接发送给通过action记录的请求节点。
即在语音服务模块中,默认为语音输入状态,在语音输入状态下语音指令会直接转发给任务管理模块,由任务管理模块对语音指令进行处理,根据指令类型管理具体的任务功能模块,当控制系统内部主动通过VoiceOutAcAction服务请求语音交互时,会将语音服务模块设置为语音输出状态,在这个状态下,下一条语音指令就会通过VoiceOutAcAction服务的feedBack函数直接回复给当前场景上下文中的动作节点,回复完成后,再将语音服务模块置位语音输入状态。
在动作模块执行的过程中,如果有需要主动发起的指令请求,则向语音服务模块发送指令请求,然后通过语音交互模块合成语音并发声提示,用户在收到语音交互声音后,做出对应语音回复,再通过语音交互模块和语音服务模块将主动请求语音的答复,直接发送给对应的行为树节点中,实现基于场景的语音指令主动交互功能。
为了便于本申请的控制系统架构的实现,本申请优选基于ros进行开发。ros:robot operating system提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。
在另一个实施例中,提供一种语音指令处理方法,基于所述的机器人控制系统架构实现,所述语音指令处理方法,包括:
语音服务模块接收外界输入的语音指令,并将所述语音指令转发至任务管理模块;
任务管理模块判断所接收的语音指令,若判断所述语音指令为任务指令,则根据语音指令启动对应的任务功能模块,若判断所述语音指令为非任务指令,则将语音指令发送至所有已启动的任务功能模块;
任务功能模块在启动后执行预构建的行为树得到动作指令,并将动作指令发送至所述动作模块;或者任务功能模块在执行行为树时根据新接收的语音指令得到动作指令,并将动作指令发送至所述动作模块;
动作模块根据所述动作指令控制机器人执行相应动作,完成语音指令处理。
在另一个实施例中,所述根据语音任务启动对应的任务功能模块,包括:
在接收到新的语音任务时,若任务执行链表中不存在正在执行的语音任务,则将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块;
在接收到新的语音任务时,若任务执行链表中存在正在执行的语音任务,则判断新的语音任务与正在执行的语音任务是否为同类型任务,若为同类型任务,则根据任务优先级判断,如果新的语音任务优先级大于当前的语音任务,则将当前语音任务停止并从任务执行链表中删除,将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块;反之则继续执行当前的语音任务,不处理新的语音任务;
若不为同类型任务,则将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块。
在另一个实施例中,所述行为树包括一个根节点、一个或多个逻辑节点、一个或多个动作节点,所述逻辑节点包括selector逻辑节点和sequence逻辑节点;
所述根节点的子节点为逻辑节点,每个逻辑节点的子节点为逻辑节点或/和动作节点,行为树中的每一分支的首节点均为根节点、末节点均为动作节点;
其中所述selector逻辑节点的执行逻辑为:若selector逻辑节点的子节点中有一个子节点执行成功,则selector逻辑节点返回执行成功;否则返回执行失败;
所述sequence逻辑节点的执行逻辑为:若sequence逻辑节点的子节点全部执行成功,则sequence逻辑节点返回执行成功,否则返回执行失败。
在另一个实施例中,所述动作节点中设有set_cmd回调函数,且动作节点具有等待执行、执行中、执行完成三种状态;所述任务功能模块在执行行为树时根据新接收的语音指令得到动作指令,包括:
遍历行为树中所有动作节点的set_cmd回调函数,并向当前遍历的set_cmd回调函数传入新的语音指令对应的编号,set_cmd回调函数接收编号并判断若存在动作节点的状态为执行中且具备新的语音指令的处理功能,则在动作节点中处理新的语音指令;否则不处理新的语音指令。
针对语音指令处理方法的进一步限制参见上述对于机器人控制系统架构的限制,这里就不再进行赘述。
基于本申请提供的机器人控制系统架构,经过机器人实机实验、gazebo软件模拟仿真,并在实际服务机器人中应用,得出可以实现相同的语音指令在不同的情境下执行不同的动作,机器人可以基于当前场景状态对语音指令做对应的处理的结论。比如:在机器人在执行靠近主人任务的时候,如果找不到主人,则主动发起语音请求“主人你在哪”,主人只需要回复“我在主卧”等位置信息,机器人就会执行移动到主卧的动作,而在平时待机时听到“我在主卧”的非任务指令时则不作对应处理,实现基于场景的语音指令处理功能。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种机器人控制系统架构,其特征在于,所述机器人控制系统架构包括语音服务模块、任务模块和动作模块,所述任务模块包括任务管理模块和任务功能模块,其中:
所述语音服务模块,用于接收外界输入的语音指令,并将所述语音指令转发至所述任务管理模块;
所述任务管理模块,用于接收所述语音服务模块发送的语音指令,若判断所述语音指令为任务指令,则根据语音指令启动对应的任务功能模块,若判断所述语音指令为非任务指令,则将语音指令发送至所有已启动的任务功能模块;
所述任务功能模块,用于在启动后执行预构建的行为树得到动作指令,并将动作指令发送至所述动作模块;或者用于在执行行为树时根据新接收的语音指令得到动作指令,并将动作指令发送至所述动作模块;
所述动作模块,用于接收任务功能模块发送的动作指令,并根据所述动作指令控制机器人执行相应动作;
其中,所述根据语音任务启动对应的任务功能模块,执行如下操作:
在接收到新的语音任务时,若任务执行链表中不存在正在执行的语音任务,则将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块;
在接收到新的语音任务时,若任务执行链表中存在正在执行的语音任务,则判断新的语音任务与正在执行的语音任务是否为同类型任务,若为同类型任务,则根据任务优先级判断,如果新的语音任务优先级大于当前的语音任务,则将当前语音任务停止并从任务执行链表中删除,将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块;反之则继续执行当前的语音任务,不处理新的语音任务;
若不为同类型任务,则将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块。
2.如权利要求1所述的机器人控制系统架构,其特征在于,所述行为树包括一个根节点、一个或多个逻辑节点、一个或多个动作节点,所述逻辑节点包括selector逻辑节点和sequence逻辑节点;
所述根节点的子节点为逻辑节点,每个逻辑节点的子节点为逻辑节点或/和动作节点,行为树中的每一分支的首节点均为根节点、末节点均为动作节点;
其中所述selector逻辑节点的执行逻辑为:若selector逻辑节点的子节点中有一个子节点执行成功,则selector逻辑节点返回执行成功;否则返回执行失败;
所述sequence逻辑节点的执行逻辑为:若sequence逻辑节点的子节点全部执行成功,则sequence逻辑节点返回执行成功,否则返回执行失败。
3.如权利要求2所述的机器人控制系统架构,其特征在于,所述动作节点中设有set_cmd回调函数,且动作节点具有等待执行、执行中、执行完成三种状态;所述任务功能模块在执行行为树时根据新接收的语音指令得到动作指令,执行如下操作:
遍历行为树中所有动作节点的set_cmd回调函数,并向当前遍历的set_cmd回调函数传入新的语音指令对应的编号,set_cmd回调函数接收编号并判断若存在动作节点的状态为执行中且具备新的语音指令的处理功能,则在动作节点中处理新的语音指令;否则不处理新的语音指令。
4.一种语音指令处理方法,基于权利要求1~3任一项所述的机器人控制系统架构实现,其特征在于,所述语音指令处理方法,包括:
语音服务模块接收外界输入的语音指令,并将所述语音指令转发至任务管理模块;
任务管理模块判断所接收的语音指令,若判断所述语音指令为任务指令,则根据语音指令启动对应的任务功能模块,若判断所述语音指令为非任务指令,则将语音指令发送至所有已启动的任务功能模块;
任务功能模块在启动后执行预构建的行为树得到动作指令,并将动作指令发送至所述动作模块;或者任务功能模块在执行行为树时根据新接收的语音指令得到动作指令,并将动作指令发送至所述动作模块;
动作模块根据所述动作指令控制机器人执行相应动作,完成语音指令处理;
其中,所述根据语音任务启动对应的任务功能模块,包括:
在接收到新的语音任务时,若任务执行链表中不存在正在执行的语音任务,则将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块;
在接收到新的语音任务时,若任务执行链表中存在正在执行的语音任务,则判断新的语音任务与正在执行的语音任务是否为同类型任务,若为同类型任务,则根据任务优先级判断,如果新的语音任务优先级大于当前的语音任务,则将当前语音任务停止并从任务执行链表中删除,将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块;反之则继续执行当前的语音任务,不处理新的语音任务;
若不为同类型任务,则将新的语音任务对应的行为树添加至任务执行链表中执行,即启动新的语音任务对应的任务功能模块。
5.如权利要求4所述的语音指令处理方法,其特征在于,所述行为树包括一个根节点、一个或多个逻辑节点、一个或多个动作节点,所述逻辑节点包括selector逻辑节点和sequence逻辑节点;
所述根节点的子节点为逻辑节点,每个逻辑节点的子节点为逻辑节点或/和动作节点,行为树中的每一分支的首节点均为根节点、末节点均为动作节点;
其中所述selector逻辑节点的执行逻辑为:若selector逻辑节点的子节点中有一个子节点执行成功,则selector逻辑节点返回执行成功;否则返回执行失败;
所述sequence逻辑节点的执行逻辑为:若sequence逻辑节点的子节点全部执行成功,则sequence逻辑节点返回执行成功,否则返回执行失败。
6.如权利要求5所述的语音指令处理方法,其特征在于,所述动作节点中设有set_cmd回调函数,且动作节点具有等待执行、执行中、执行完成三种状态;所述任务功能模块在执行行为树时根据新接收的语音指令得到动作指令,包括:
遍历行为树中所有动作节点的set_cmd回调函数,并向当前遍历的set_cmd回调函数传入新的语音指令对应的编号,set_cmd回调函数接收编号并判断若存在动作节点的状态为执行中且具备新的语音指令的处理功能,则在动作节点中处理新的语音指令;否则不处理新的语音指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111597802.1A CN114326495B (zh) | 2021-12-24 | 2021-12-24 | 一种机器人控制系统架构及语音指令处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111597802.1A CN114326495B (zh) | 2021-12-24 | 2021-12-24 | 一种机器人控制系统架构及语音指令处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114326495A CN114326495A (zh) | 2022-04-12 |
CN114326495B true CN114326495B (zh) | 2024-02-09 |
Family
ID=81013290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111597802.1A Active CN114326495B (zh) | 2021-12-24 | 2021-12-24 | 一种机器人控制系统架构及语音指令处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114326495B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016090655A (ja) * | 2014-10-30 | 2016-05-23 | シャープ株式会社 | 音声認識ロボットシステム、音声認識ロボット、音声認識ロボットの制御装置、音声認識ロボットを制御するための通信端末、およびプログラム |
CN106383521A (zh) * | 2016-11-05 | 2017-02-08 | 杭州畅动智能科技有限公司 | 一种基于机器人开发平台的运动处理模块 |
CN106647354A (zh) * | 2016-10-31 | 2017-05-10 | 遨博(北京)智能科技有限公司 | 一种控制方法、装置及系统 |
EP3214510A1 (en) * | 2016-03-03 | 2017-09-06 | Magazino GmbH | Controlling process of robots having a behavior tree architecture |
CN107632584A (zh) * | 2017-10-23 | 2018-01-26 | 上海木爷机器人技术有限公司 | 基于云端的机器人调度系统及方法 |
CN108732948A (zh) * | 2018-03-21 | 2018-11-02 | 北京猎户星空科技有限公司 | 智能设备控制方法、装置、智能设备及介质 |
CN108737933A (zh) * | 2018-05-30 | 2018-11-02 | 上海与德科技有限公司 | 一种基于智能音箱的对话方法、装置及电子设备 |
CN112549029A (zh) * | 2020-12-03 | 2021-03-26 | 天津(滨海)人工智能军民融合创新中心 | 一种基于行为树的机器人行为控制方法及装置 |
CN112947194A (zh) * | 2021-02-20 | 2021-06-11 | 大连理工大学 | 基于FreeRTOS嵌入式的网球机器人实时操作控制系统 |
WO2021253743A1 (zh) * | 2020-06-16 | 2021-12-23 | 特斯联科技集团有限公司 | 一种机器人场景功能切换方法、系统、存储介质及智能机器人 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070112462A1 (en) * | 2005-11-10 | 2007-05-17 | Jong-Myeong Kim | Method for detecting if command implementation was completed on robot common framework, method for transmitting and receiving signals and device thereof |
EP2266077A1 (en) * | 2008-04-02 | 2010-12-29 | iRobot Corporation | Robotics systems |
US11040441B2 (en) * | 2018-09-20 | 2021-06-22 | Sony Group Corporation | Situation-aware robot |
-
2021
- 2021-12-24 CN CN202111597802.1A patent/CN114326495B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016090655A (ja) * | 2014-10-30 | 2016-05-23 | シャープ株式会社 | 音声認識ロボットシステム、音声認識ロボット、音声認識ロボットの制御装置、音声認識ロボットを制御するための通信端末、およびプログラム |
EP3214510A1 (en) * | 2016-03-03 | 2017-09-06 | Magazino GmbH | Controlling process of robots having a behavior tree architecture |
CN106647354A (zh) * | 2016-10-31 | 2017-05-10 | 遨博(北京)智能科技有限公司 | 一种控制方法、装置及系统 |
CN106383521A (zh) * | 2016-11-05 | 2017-02-08 | 杭州畅动智能科技有限公司 | 一种基于机器人开发平台的运动处理模块 |
CN107632584A (zh) * | 2017-10-23 | 2018-01-26 | 上海木爷机器人技术有限公司 | 基于云端的机器人调度系统及方法 |
CN108732948A (zh) * | 2018-03-21 | 2018-11-02 | 北京猎户星空科技有限公司 | 智能设备控制方法、装置、智能设备及介质 |
CN108737933A (zh) * | 2018-05-30 | 2018-11-02 | 上海与德科技有限公司 | 一种基于智能音箱的对话方法、装置及电子设备 |
WO2021253743A1 (zh) * | 2020-06-16 | 2021-12-23 | 特斯联科技集团有限公司 | 一种机器人场景功能切换方法、系统、存储介质及智能机器人 |
CN112549029A (zh) * | 2020-12-03 | 2021-03-26 | 天津(滨海)人工智能军民融合创新中心 | 一种基于行为树的机器人行为控制方法及装置 |
CN112947194A (zh) * | 2021-02-20 | 2021-06-11 | 大连理工大学 | 基于FreeRTOS嵌入式的网球机器人实时操作控制系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114326495A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6961926B2 (en) | System and method for distributed debugging and recording medium on which control programs are recorded | |
US6317638B1 (en) | Multi-layer state machine for a hybrid real-time control system and method of operation thereof | |
JP4529767B2 (ja) | クラスタ構成コンピュータシステム及びその系リセット方法 | |
JP5214537B2 (ja) | マルチプロセッサシステム | |
WO2018192178A1 (zh) | 机器人点到点运动控制方法和系统 | |
JP2010105150A (ja) | ロボットコンポーネント管理装置及び方法 | |
US6263213B1 (en) | Component-based control structure for wireless communication | |
CN106945045B (zh) | 基于ros和orocos的机器人控制的通信方法和系统 | |
CN114326495B (zh) | 一种机器人控制系统架构及语音指令处理方法 | |
CN111818125A (zh) | 一种全厂商rpa机器人的控制方法 | |
CN113741273A (zh) | 一种多网关场景联动的控制方法及系统 | |
KR102166185B1 (ko) | 파이프라인 실행 가속을 위한 데이터 처리 장치 및 그 방법 | |
CN113656164B (zh) | 任务执行方法、系统、电子设备及计算机存储介质 | |
US6668205B1 (en) | Control method of factory automation system, recording medium recording a program therefor and central processor of factory automation system | |
US8689217B2 (en) | System and method for thread processing robot software components responsive to periodic, dedicated, and passive modes | |
CN113810402B (zh) | 多协议适配方法和系统,计算机设备,存储介质 | |
Hang et al. | Handling multiple mode switch scenarios in component-based multi-mode systems | |
CN113660120A (zh) | 一种数据平面动作可编程的软件定义网络系统 | |
US20040139205A1 (en) | Hot standby server system | |
CN106965181B (zh) | 基于ros和orocos的机器人控制方法和系统 | |
CN101135983B (zh) | 用于管理驱动程序的资源管理方法及资源管理器 | |
CN113965561B (zh) | 一种基于异步事件驱动的机载文件传输系统 | |
JP3655114B2 (ja) | シミュレーション方法およびシミュレーションシステム | |
Vieira et al. | Execution monitoring in adaptive mobile agents | |
WO2022150995A1 (zh) | 一种超级计算机架构实现方法 |
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 |