首页 / 一种基于知识图谱和行为树的行为规划方法及装置

一种基于知识图谱和行为树的行为规划方法及装置实质审查 发明

技术领域

[0001] 本申请涉及机器人及人工智能技术领域,尤其涉及一种基于知识图谱和行为树的行为规划方法及装置。

相关背景技术

[0002] 在当今科技迅猛发展的时代,机器人已经成为各行各业的重要一员,它们在工厂、医疗、家庭等领域都发挥着重要作用。然而,要使机器人真正成为智能化的助手,其中一个至关重要的挑战是如何实现机器人的自主行为规划。
[0003] 目前的技术主要依赖于示教学习或者模仿学习来训练模型,但这种方法存在一些严重问题,限制了机器人的应用范围和智能化水平。首先,传统的示教学习或者模仿学习方法要求机器人在遇到新环境时首先经历模型的训练过程,这意味着每当机器人面临新任务或新环境时,都需要耗费大量时间和资源来重新训练模型,从而大大增加了机器人的应用难度和成本。其次,目前的方法并不能很好地解决机器人在未知场景中自主行为规划的问题。机器人通常只能执行事先编程好的任务,而缺乏对未知环境的适应能力和灵活性,这就限制了机器人在复杂、动态的环境中的应用,使其难以胜任需要灵活应对的任务。此外,该种方法还无法有效解决知识迁移的问题,即使在两个相类似的场景中,比如炒青椒和炒土豆,虽然大部分步骤是相似的,但现有的方法仍然需要重新训练模型来适应每个场景,无法重复利用两个场景中通用的知识,导致了知识的重复浪费。
[0004] 基于此,亟需一种新的行为规划方法,以实现机器人的智能化行为规划。

具体实施方式

[0035] 为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0036] 首先,对本申请涉及相关术语进行相应的解释,以便于本领域技术人员理解。
[0037] 1、行为规划:根据特定任务和环境条件,设计和生成一系列行为的过程。这些行为包括移动、操作、交互等,旨在实现在给定环境中的目标。
[0038] 2、知识图谱:一种基于图形结构的知识表示方法,用于组织和表达现实世界中的信息和关系。它由一系列实体(entities)和它们之间的关系(relationships)组成,这些实体和关系以图的形式进行了建模,其中实体通常表示具体的事物或概念,而关系描述了这些实体之间的连接和关联。
[0039] 3、行为树(Behavior Tree):一种用于描述和管理智能体(如机器人、游戏角色等)行为的图形化结构。它是一种树状结构,其中包含了一系列节点,这些节点代表了不同的行为或行为组合。行为树可以帮助智能体在复杂的环境中做出合适的决策和行动。
[0040] 为了降低行为规划的难度,拓宽行为规划的应用场景,以及在不同应用场景下充分利用通用知识,本申请提供了一种基于知识图谱和行为树的行为规划方法及装置。
[0041] 实施例1:
[0042] 本申请提供了一种基于知识图谱和行为树的行为规划方法,图1为本申请实施例提供的一种基于知识图谱和行为树的行为规划的过程示意图,该过程包括:
[0043] S101:获取环境状态信息、以及至少一个目标状态及所述至少一个目标状态之间的顺序关系。
[0044] 在本申请中,该基于知识图谱和行为树的行为规划方法应用于电子设备,该电子设备可以是智能终端,比如,电脑、机器人等,也可以是服务器,比如,应用服务器,业务服务器等。
[0045] 在一种可能的应用场景下,当需要智能设备(如机器人等)执行某一复杂任务时,可以获取实现该复杂任务所需的至少一个目标状态。其中,该至少一个目标状态是实现复杂任务所需的基本要素,例如,将桌子上的牛奶放进冰箱这一任务所需的至少一个目标状态包括趋近桌子、抓起牛奶、趋近冰箱、打开冰箱、将牛奶放入冰箱、关闭冰箱等。这些目标状态之间存在一定的逻辑顺序,例如,需要先打开冰箱,再将牛奶放入冰箱,获取目标状态之间的顺序关系可以帮助智能设备正确地安排执行顺序,确保任务能够按照预期顺利完成。
[0046] 在一种可能的实施方式中,可以通过人工输入的方式获取目标状态。
[0047] 在另一种可能的实施方式中,还可以基于行为规划模型输出的行为引导结果,例如,多模态大语言模型,深度学习模型等,确定该至少一个目标状态。例如,可以对该行为引导结果进行分解,获取该至少一个目标状态,也可以直接将该行为引导结果确定为该至少一个目标状态。
[0048] 同时,该智能设备还要采集当前场景下的环境信息。该环境信息可以是指智能设备通过传感器、摄像头、激光雷达等感知设备获取周围环境的各种信息。这些信息可以包括但不限于:1、物体位置与姿态:智能设备可以获取环境中各个物体的位置和姿态信息,以便进行导航、物体抓取等任务;2、物体识别与分类:通过图像处理和机器学习算法,智能设备可以识别环境中的不同物体,并对其进行分类;3、环境地图:智能设备可以构建环境地图,包括墙壁、障碍物、家具等信息,以便进行路径规划和避障;4、温度、湿度、光照等环境参数:这些参数可以帮助智能设备感知环境的状态,从而做出相应的行动。
[0049] 若进行行为规划的设备为该智能设备,则该智能设备可以对获取到的环境信息进行处理,例如,图像处理算法、自然语言理解处理等,获取环境状态信息。其中,该环境状态信息可以包括当前场景下的各物体、各物体的状态以及各物体之间的空间关系,比如,环境状态信息可以包括智能设备的当前位置、周围的障碍物、目标位置、资源供应等。示例性的,若获取到的是图片形式的环境信息,则智能设备通过图像处理算法,如图像分类、目标检测、图像描述生成算法等,对该环境信息进行处理,获取环境状态信息。智能设备可以基于该环境状态信息、以及至少一个目标状态及其顺序关系,进行相应地处理,获取行为树。
[0050] 若进行行为规划的设备为服务器,则该智能设备可以将获取到的环境状态信息、以及至少一个目标状态及其顺序关系上传到服务器,由该服务器对获取到的环境信息进行处理,例如,图像处理算法、自然语言理解处理等,获取环境状态信息。然后该服务器基于该环境状态信息、以及至少一个目标状态及其顺序关系,进行相应地处理,获取行为树。
[0051] 例如,真实环境的信息以及信息的变化由智能设备的感知系统感知以后,将信息同步到环境状态信息(env)中。环境状态信息(env)是对真实世界各个物体状态以及物体之间空间关系的描述,支持对物体属性或状态的查询,以及物体之间空间关系的查询。例如,env.is_empty_on(pos)表示查询真实环境中在pos上是否没有物体了。
[0052] S102:构建行为树;其中,所述行为树中的根节点是根据所述至少一个目标状态及所述顺序关系确定的。
[0053] 在明确了目标状态和顺序关系之后,可以开始设计行为树的结构。行为树由节点、分支和叶子节点组成,它们代表了任务执行过程中的各个步骤和决策。行为树的根节点通常是一个顺序节点,代表着整个行为树的开始,顺序节点会按照一定的顺序执行其子节点的行为。基于此,在本申请中,可以基于获取到的至少一个目标状态以及至少一个目标状态之间的顺序关系确定该行为树的根节点。通过该行为树将复杂任务的执行流程以层次化的方式进行组织和表示,使得整个任务执行过程更加清晰和系统化,有利于后续根据该行为树执行任务。
[0054] S103:根据行为树中节点间的顺序关系扩展各节点,且所述各节点均通过以下方式进行扩展:
[0055] 若该节点为行为节点,则从预先构建的知识图谱中,确定与该节点匹配的目标行为概念,根据所述环境状态信息以及所述目标行为概念的各前置条件,对该节点的子节点进行扩展;其中,所述知识图谱中包括不同行为概念和不同命题概念、概念逻辑关系、所述不同行为概念分别对应的知识记录以及所述不同命题概念分别对应的知识记录,任一行为概念的知识记录包括执行行为所需的前置条件以及执行结果,任一命题概念的知识记录包括命题成立目标;若该节点为命题节点,则从所述知识图谱中,确定与该节点匹配的目标命题概念,根据所述环境状态信息以及所述目标命题概念的命题成立目标,对该节点的子节点进行扩展。
[0056] 为了保证后续可以基于行为树,有序且准确地执行各个行为,在本申请中,基于上述实施例获取到了行为树后,可以对该行为树中的节点进行扩展和细化,从而将比较上位且笼统的行为细化为具体的动作。示例性的,可以根据行为树中节点间的顺序关系扩展各节点。
[0057] 在一种可能的实施方式中,在对行为树中的各节点进行扩展的过程中,可以通过预先构建的知识图谱对各节点进行扩展,通过利用知识图谱,可以充分利用知识图谱中丰富的知识资源,帮助智能设备更好地理解任务和环境,并且知识图谱中包含了各种不同情境下的概念逻辑关系和知识记录,根据当前环境和任务需求,在知识图谱中查询相应的知识记录,并将其应用于行为树的扩展过程中,从而实现知识的重复利用和知识迁移,提高行为规划的应用效率和灵活性。
[0058] 在一种可能的实施方式中,知识图谱中可以记录系统或个体可能采取的各种行为概念和命题概念。对于命题概念,命题概念表示环境中的某种状态或条件是否成立,如“客厅地板是否清洁”、“冰箱门是否关闭”等。每个命题概念可以被认为是一个真假命题,其结果可以是真(成立)或假(不成立)。在该知识图谱中,任一命题概念的知识记录包括命题成立目标。可选的,该命题概念的知识记录还可以包括命题名称、推理类型、命题参数。该命题名称表示了命题的具体名称或标识,以便于在系统中进行引用和识别。该命题参数描述了命题的具体条件或属性,用于进一步说明命题概念的特征和范围,命题参数可以是命题的属性、限制条件、相关因素等。命题参数可以帮助智能系统更准确地理解和评估命题的成立情况,从而进行更加精确的行为规划和决策。例如,在命题“客厅地板是否清洁”中,可能的命题参数包括“清洁程度”、“清洁时间”、“清洁方式”等,这些参数可以进一步说明地板的清洁情况。命题成立目标描述了命题所表示的状态或条件在环境中是否成立的期望状态。命题成立目标有助于指导智能系统进行相关行为的执行和决策,以使得命题成立目标尽可能达成,该命题成立目标可以通过子条件、环境交互等信息进行表示。例如,“上面没有物体”的命题成立目标可能是“某一位置是空的”。对于行为概念,该行为概念描述了行为的抽象特征和属性,帮助理解和归纳不同行为之间的关系,这些行为概念可以是基于领域知识和经验确定的,也可以是从数据中学习得到的。这些行为概念涵盖了系统或个体在特定任务或环境下可能采取的各种行动、操作、决策等,例如移动、交互、探索、观察等。在该知识图谱中,任一行为概念的知识记录包括执行该行为所需的前置条件以及执行结果。可选的,该行为概念的知识记录还可以包括行为名称、行为参数。该行为名称表示了行为的具体名称或标识,以便于在系统中进行引用和识别。该行为参数描述了行为执行过程中可能涉及的参数和变量,帮助确定行为的具体实现方式和执行方式。该前置条件描述了执行该行为所需满足的条件或约束条件,包括环境状态、先决行动等。该执行结果描述了执行该行为后可能产生的结果或影响,包括任务完成情况、环境状态改变等。通过记录不同行为之间的逻辑关系和不同行为分别对应的知识记录,可以更准确地理解和规划行为,从而提高行为规划结果的准确性和智能性。这样的知识图谱可以为行为规划决策提供重要支持,使本申请提供的行为规划方法能够在复杂的任务和环境中做出合适的决策和行动。
[0059] 该知识图谱中还包括概念逻辑关系,该概念逻辑关系指的是在知识图谱中,不同概念(包括行为概念和命题概念)之间的逻辑联系或关联。这些关系描述了概念之间的各种属性、行为、依赖以及其他类型的关系,从而形成了一个更为完整和复杂的知识网络。
[0060] 示例性的,通过预先构建的知识图谱,根据行为树中节点间的顺序关系扩展各节点,且各节点均通过以下方式进行扩展:
[0061] 对于任一节点,例如,根节点、叶子节点等,先对该节点进行分析,确定该节点的类型,确定该节点代表的行为还是命题,然后基于同类型概念所需要的特征、属性、关联信息等信息,在知识图谱中查找与该节点匹配的概念。例如,节点B on C为命题节点,节点put A on P为行为节点。
[0062] 下面针对不同类型的节点进行说明:
[0063] A、行为节点。
[0064] 若该节点为行为节点,可以遍历知识图谱中的所有行为概念,确定与该行为节点匹配的行为概念。
[0065] 示例性的,可以将行为名称与该行为节点一致的行为概念,确定为与该行为节点匹配的目标行为概念。
[0066] 又一示例性的,所述从预先构建的知识图谱中,确定与该节点匹配的目标行为概念,包括:
[0067] 对于所述知识图谱中的不同行为概念,若该行为概念的执行结果包含的参数的数量与该节点包含的参数的数量相同,且该执行结果包含的参数的参数类型与该节点包含的参数的参数类型相同,则将该行为概念确定为与该节点匹配的目标行为概念。
[0068] 为了准确地获取与该行为节点匹配的目标行为概念,可以基于行为概念的执行结果,确定与该行为节点匹配的目标行为概念。示例性的,遍历知识图谱中的所有行为概念,检查每一个行为概念的执行结果属性值表达式,看这个表达式是否蕴含该节点所表达的状态。对于该知识图谱中的不同行为概念,若该行为概念的执行结果包含的参数的数量与该节点包含的参数的数量相同,且该执行结果包含的参数的参数类型与该节点包含的参数的参数类型相同,则将该行为概念确定为与该节点匹配的目标行为概念。
[0069] 例如,在知识图谱上寻找执行结果能满足“C在P上”,即“位于(C,P)”的行为概念,匹配到“放置”这个行为概念。“放置”是一种“行为”,该行为概念的知识记录可表示如下:
[0070] {
[0071] "名称":"放置",
[0072] "英文名称":"put_obj_at_pos",
[0073] "类型":"概念",
[0074] "是一种":"行为",
[0075] "参数":{"obj":"物体","pos":"位置"},
[0076] "前置条件":"上面没有物体(pos)and持有(obj)",
[0077] "执行结果":"位于(obj,pos)",
[0078] "解释":"表示把物体obj放到位置pos上。"
[0079] }
[0080] 执行结果是“位于(obj,pos)”,该执行结果包含的参数的数量与该节点包含的参数的数量均为2,且该执行结果包含的参数的参数类型与该节点包含的参数的参数类型也相同,确定该“放置”的行为概念与该行为节点匹配,将C和P传入“放置”概念后,就会生成位于(C,P)这样的状态。
[0081] 基于上述的实施例确定了目标行为概念后,可以获取该目标行为概念的执行结果,然后根据获取到的环境状态信息以及该执行结果,对该行为节点进行扩展。
[0082] 在一种可能的实施方式中,若该节点为行为节点,根据所述环境状态信息以及所述目标行为概念的各前置条件,对该节点的子节点进行扩展,包括:
[0083] 若所述环境状态信息不满足所述目标行为概念的各前置条件,则根据所述目标行为概念的各前置条件,对该节点的子节点进行扩展;
[0084] 若所述环境状态信息满足所述目标行为概念的各前置条件,则根据所述目标行为概念的各前置条件,确定该节点下的终端节点。
[0085] 在本申请中,行为的执行需要一定的条件,即前置条件,但当前场景中并不一定可以完全符合某一行为所需的前置条件,导致该行为在当前场景下无法执行。基于此,在本申请中,需要对环境进行改变,使得环境可以满足某一行为所需的所有前置条件,进而可以执行该行为。示例性的,若基于上述实施例获取到的环境状态信息不满足该目标行为概念的各前置条件,说明需要对环境进行改变以满足该目标行为概念的各前置条件,则可以根据该目标行为概念的各前置条件,对该节点的子节点进行扩展。例如,可以将各前置条件确定为子节点,并加入到该节点下。
[0086] 同样的,如果当前场景满足了某一行为所需的各前置条件,则可以在当前场景执行该行为。示例性的,若基于上述实施例获取到的环境状态信息满足该目标行为概念的各前置条件,则可以根据该目标行为概念的各前置条件,确定该节点下的终端节点。例如,可以将该目标行为概念的各前置条件确定为该节点下的终端节点,并不继续对该目标行为概念的各前置条件分别对应的节点进行扩展。
[0087] B、命题节点。
[0088] 若该节点为命题节点,可以遍历知识图谱中的所有命题概念,确定与该命题节点匹配的命题概念。
[0089] 示例性的,可以将命题名称与该命题节点一致的命题概念确定为与该命题节点匹配的目标命题概念。
[0090] 又一示例性的,可以将命题成立目标与该命题节点一致的命题概念确定为与该命题节点匹配的目标命题概念。
[0091] 基于上述的实施例确定了目标命题概念后,可以获取该目标命题概念的命题成立目标,然后根据获取到的环境状态信息以及该命题成立目标,对该命题节点进行扩展。
[0092] 在一种可能的实施方式中,若该节点为命题节点,根据所述环境状态信息以及所述目标命题概念的命题成立目标,对该节点的子节点进行扩展,包括:
[0093] 若所述环境状态信息不满足所述目标命题概念的命题成立目标,则从所述知识图谱中,获取用于实现所述目标命题概念的命题成立目标的行为概念;将所述目标命题概念的命题成立目标,以及确定的行为概念确定为该节点的子节点;
[0094] 若所述环境状态信息满足所述目标命题概念的命题成立目标,则根据所述命题成立目标,确定该节点下的终端节点。
[0095] 在本申请中,命题的成立是与当前环境相关联的,即当前环境满足该命题成立目标,则该命题在当前环境下可以成立,当前环境不满足该命题成立目标,则该命题在当前环境下不成立。基于此,在本申请中,需要对环境进行改变,使得环境可以满足某一命题的命题成立目标。示例性的,若基于上述实施例获取到的环境状态信息不满足该目标命题概念的命题成立目标,说明需要对环境进行改变以满足该目标命题概念的命题成立目标,则可以获取用于实现该目标命题概念的命题成立目标的行为概念,然后根据该目标命题概念的命题成立目标以及确定的行为概念,对该节点的子节点进行扩展。例如,可以将该目标命题概念的命题成立目标以及确定的行为概念确定为子节点,并加入到该节点下。
[0096] 同样的,若基于上述实施例获取到的环境状态信息满足该目标命题概念的命题成立目标,则可以根据该目标命题概念的命题成立目标,确定该节点下的终端节点。例如,可以将该目标命题概念的命题成立目标确定为该节点下的终端节点,并不继续对该目标命题概念的命题成立目标对应的节点进行扩展了。
[0097] S104:基于扩展后的行为树中各节点的执行顺序,从所述扩展后的行为树中的终端节点开始,执行行为,以实现所述至少一个目标状态。
[0098] 通过知识图谱,可以根据行为的前置条件将行为树逐层展开,直到动作可执行为止,即逐步检查并满足每个前置条件,确保执行该行为是可执行的。一旦所有的前置条件都满足,将从最底层的行为开始执行。这些底层行为通常是具体的操作或动作,例如“抓取物体”。执行这些底层行为会改变环境状态,例如夹爪不再为空、持有了目标物体等。随着底层行为的执行和环境状态的改变,系统会逐步满足上层行为的前置条件。这些上层行为依次执行,直到最后最上层的行为执行完毕。示例性的,基于上述实施例获取到了扩展后的行为树后,可以基于该扩展后的行为树中各节点的执行顺序,从该扩展后的行为树的终端节点开始,执行行为,以使该至少一个目标状态。
[0099] 本申请的有益效果如下:
[0100] 1、由于知识图谱中包含了丰富的行为概念和命题概念,不同行为概念之间的行为逻辑、不同行为概念分别对应的知识记录以及不同命题概念分别对应的知识记录,基于该知识图谱扩展行为树的方式,可以为进行行为规划的设备提供丰富的任务执行选择,既可以很容易得表达常识知识,又容易被机器所理解,进行行为规划的设备能够根据不同的环境和任务要求灵活地进行行为规划,通过行为树实现动态推理,避免训练模型进行行为规划的难度。
[0101] 2、由于知识图谱中包含了丰富的行为概念和命题概念,不同行为概念之间的行为逻辑、不同行为概念分别对应的知识记录以及不同命题概念分别对应的知识记录,具有一定的通用性,基于该知识图谱扩展行为树的方式,可以将知识图谱中的通用知识重复多次利用,提高知识利用率。
[0102] 3、由于在基于知识图谱对该行为树进行扩展的过程中,侧重于行为概念和命题概念的匹配,对于执行行为概念以及实现命题概念的具体对象和具体场景并不限定,使得该知识图谱可以应用到不同场景中,并在不同场景下均可以通过该知识图谱对行为树进行扩展,从而实现行为规划,拓宽了该行为规划方法的应用场景以及提高了该行为规划方法在未知场景下的能力。
[0103] 实施例2:
[0104] 下面以堆积木的例子来说明如何用知识图谱生成行为树并进行行为规划,图2为本申请实施例提供的一种将积木从初始状态改变到目标状态的示意图。如图2所示,初始状态是3个积木块叠加摆放在位置P,即初始状态是环境中有三个积木块A,B,C,A位于位置P上,C在A上面,B在C上面,用符号表示为on(B,C)and on(C,A)and on(A,P)。而目标状态是要求调整3个积木块的顺位为A在B上面,B在C上面,C在位置P,即目标状态是环境中有三个积木块A,B,C,C位于P,B在C上面,A在B上面,用符号表示为on(C,P)and on(B,C)and on(A,B)。
[0105] 通过知识图谱构建行为树进行推理过程如下:
[0106] 1、根据目标状态构建行为树的根节点。
[0107] 目标状态包括是C位于P,B在C上面,A在B上面,用行为树表达如图3。依据行为树的原理,图3中目标状态是一个序列节点,展开以后需要从左往右依次执行“C在P上”、“B在C上”和“A在B上”三个节点,并且每个节点执行成功以后,才能执行下一个节点。这种方式正好满足我们的期望:如果依次实现“C在P上”、“B在C上”和“A在B上”这三个步骤,相当于目标状态就实现了。
[0108] 为方便说明,将节点“C在P上”标为灰色,表示按照行为树推理原理,这个节点下一步需要激活。
[0109] 2、根据知识图谱扩展节点“C在P上”。
[0110] 紧接上一步,如果要实现“C在P上”这个目标状态,对于机器人,需要遍历知识图谱中的所有行为概念,检查每一个行为概念的执行结果属性值表达式,看这个表达式是否蕴含C在P上这样的状态,从而实现从知识图谱中获得实现该目标状态的知识。
[0111] 示例性的,在知识图谱上寻找执行结果能满足“C在P上”,即“位于(C,P)”的行为概念,匹配到“放置”这个行为概念。“放置”是一种“行为”,该行为概念的知识记录可表示如下:
[0112] {
[0113] "名称":"放置",
[0114] "英文名称":"put_obj_at_pos",
[0115] "类型":"概念",
[0116] "是一种":"行为",
[0117] "参数":{"obj":"物体","pos":"位置"},
[0118] "前置条件":"上面没有物体(pos)and持有(obj)",
[0119] "执行结果":"位于(obj,pos)",
[0120] "解释":"表示把物体obj放到位置pos上。"
[0121] }
[0122] 执行放置(C,P)这个行为概念首先要保证该行为概念的前置条件满足,根据上述对“放置”这个行为概念定义,前置条件如下:
[0123] 上面没有物体(P)and持有(C)。
[0124] 其中,上面没有物体(P)表示位置P上面没有物体,持有(C)表示机器人拿有C。根据该行为概念的前置条件,扩展节点“C在P上”,行为树如图4所示。图4中节点“?C在P上”表示它是一个选择节点。根据行为树的理论,选择节点的左子节点如果为真,就返回真;如果左子节点不为真,则执行右子节点。节点“?C在P上”实现了让条件C在P上为真。因为如果C在P上,就直接返回真;如果C不在P上,那么就将C放到P上,执行成功后还是实现了C在P上。因为左子节点当前不为真,所以执行右子节点。右子节点是标为灰色的节点“放置(C,P)”,它是一个行为节点,表示将C放在P上。它有两个子节点,分别是“上面没有物体(P)”和“持有(C)”。“放置(C,P)”节点上面标有“‑‑>”表示它是一序列节点。序列节点要求其子节点都返回真,才能执行本节点。也就是说,这个扩展实现了这样的逻辑,当所有前置条件为真时,才执行本节点。因为“上面没有物体(P)”是一个条件,需要满足这个条件,就要对其进一步展开。
[0125] 3、根据知识图谱扩展节点“上面没有物体(P)”。
[0126] 首先,遍历知识图谱,得到“上面没有物体(P)”对应的目标命题概念是:
[0127] {
[0128] "名称":"上面没有物体",
[0129] "英文名称":"is_empty_on",
[0130] "类型":"概念",
[0131] “推理类型”:“原子命题”,
[0132] "环境交互":"return env.is_empty_on(pos)",
[0133] "参数":{"pos":"位置"},
[0134] "解释":"表示pos上没有物体,可以放置其他物体。"
[0135] }
[0136] “上面没有物体”这个概念是一个命题,一般命题都需要跟环境交互,以确定命题是否成立。根据“环境交互”,即命题成立目标,可以知道如何调用环境对象“env”来获取信息。因为传入的参数值是位置P,env.is_empty_on(P)返回P上面是不是为空。显然根据图2中的初始状态,P上面不为空,也就是说P上面有物体,所以“上面没有物体(P)”这个条件不满足,需要进一步扩展。
[0137] 继续在知识图谱中寻找执行结果属性值包含该“上面没有物体”的行为,发现行为“清空位置”的执行结果里包含“上面没有物体(start_pos)”。
[0138] {
[0139] "名称":"清空位置",
[0140] "英文名称":"clear_pos",
[0141] "类型":"概念",
[0142] "是一种":"行为",
[0143] "参数":{"pos":"位置"},
[0144] "环境交互":"obj=env.get_object_on(pos);end_pos=env.get_free_pos()",[0145] "前置条件":"end_pos!=null(表示有空闲位置)and物体可被抓取(obj)",[0146] "执行结果":"上面没有物体(pos)and位于(obj,end_pos)",
[0147] "解释":"表示把物体obj从位置pos上移走。移动的目标位置是通过环境对象获取的空闲位置。"
[0148] }
[0149] 所以,执行“清空位置”这个行为,行为树扩展如图5所示,其中有空闲位置根据环境状态信息判断可知满足条件,需要进一步扩展节点“位置P上面的物体A可被抓取”。
[0150] 4、根据知识图谱扩展节点“物体A可被抓取”。
[0151] 遍历知识图谱,发现“可被抓取(A)”的概念表示如下:
[0152] {
[0153] "名称":"可被抓取",
[0154] "英文名称":"obj_is_capturable",
[0155] "类型":"概念",
[0156] “推理类型”:“复合命题”,
[0157] "参数":{"obj":"物体"},
[0158] "子条件":"obj.is_grabable=True and near_pos(obj.position)and is_empty_on(obj)",
[0159] "解释":"手能够抓取物体obj,需要满足的命题成立目标包括3个子条件:1)物体是可以被抓取的;2)机械手能够到obj.postion;3)在obj上面没有其他物体。"[0160] }
[0161] 这是一个命题概念,而且是复合命题。对于这种情况,可以将该命题概念的子条件扩展到行为树中,如图6所示。其子条件经变量代入后如下:
[0162] A.is_grabable=True and near_pos(A.position)and is_empty_on(A)[0163] A.is_grabable=True表示A可以被机器人夹爪夹,near_pos(A.position)表示A在机器人操作范围内,is_empty_on(A)表示A上面为空,扩展行为树得到如图6。其中,根据初始状态可知物体A可以被夹爪夹,A在操作范围内,这两个子条件都为真,所以行为树会执行“上面没有物体(A)”这个节点,需要说明的是“上面没有物体(A)”表示A位置上面没有物体。执行这个节点与之前的执行节点“上面没有物体(P)”类同,就不展开说了。
[0164] 通过上述步骤,将行为树逐层展开,直到动作可执行为止,即逐步检查并满足每个前置条件,确保执行该行为是可执行的。一旦所有的前置条件都满足,将从最底层的行为开始执行。这些底层行为通常是具体的操作或动作,例如“抓取物体”。执行这些底层行为会改变环境状态,例如夹爪不再为空、持有了目标物体等。随着底层行为的执行和环境状态的改变,系统会逐步满足上层行为的前置条件。这些上层行为依次执行,直到最后最上层的行为执行完毕。
[0165] 实施例3:
[0166] 下面通过具体的实施例对本申请提供的基于知识图谱和行为树的行为规划方法进行说明,图7为本申请实施例提供的具体的基于知识图谱和行为树的行为规划系统的结构示意图,在该系统中,可以通过感知系统感知到真实环境的环境信息,并将该环境信息同步到环境状态信息(env)中。行为推理模块可以获取环境状态信息(env)、以及至少一个目标状态及至少一个目标状态之间的顺序关系,然后构建行为树。其中,该行为树的根节点是根据该至少一个目标状态及至少一个目标状态之间的顺序关系确定的。然后行为推理模块通过预先构建的知识图谱,基于行为树中节点间的顺序关系,对该行为树中的各节点进行扩展,从而获取扩展后的行为树。
[0167] 在对行为树中的各节点进行扩展的过程中,对各节点均通过以下方式进行扩展:
[0168] 在该节点为行为节点的情况下,从预先构建的知识图谱中,确定与该节点匹配的目标行为概念;若环境状态信息(env)(env)不满足目标行为概念的各前置条件,则根据目标行为概念的各前置条件,对该节点的子节点进行扩展;若环境状态信息(env)满足目标行为概念的各前置条件,则根据目标行为概念的各前置条件,确定该节点下的终端节点。
[0169] 在该节点为命题节点的情况下,从知识图谱中,确定与该节点匹配的目标命题概念,若环境状态信息(env)不满足目标命题概念的命题成立目标,则从知识图谱中,获取用于实现目标命题概念的命题成立目标的行为概念;将目标命题概念的命题成立目标,以及确定的行为概念确定为该节点的子节点;若环境状态信息(env)满足目标命题概念的命题成立目标,则根据命题成立目标,确定该节点下的终端节点。
[0170] 图8为本申请实施例提供的一种行为推理模块的结构示意图,如图8所示,该行为推理模块可以基于环境状态信息(env)和行为树进行行为规划,该行为树的生成依赖于知识图谱和环境状态信息(env),而该知识图谱也需要引入并依赖环境状态信息(env)。
[0171] 通过上述步骤,将行为树逐层展开,直到动作可执行为止,即逐步检查并满足每个前置条件,确保执行该行为是可执行的。一旦所有的前置条件都满足,将从最底层的行为开始执行。这些底层行为通常是具体的操作或动作,例如“抓取物体”。执行这些底层行为会改变环境状态,例如夹爪不再为空、持有了目标物体等。随着底层行为的执行和环境状态的改变,系统会逐步满足上层行为的前置条件。这些上层行为依次执行,直到最后最上层的行为执行完毕。
[0172] 实施例4:
[0173] 基于同样的发明构思,本申请还提供了一种基于知识图谱和行为树的行为规划装置,图9为本申请实施例提供的一种基于知识图谱和行为树的行为规划装置的结构示意图,所述装置包括:
[0174] 获取单元91,用于获取环境状态信息、以及至少一个目标状态及所述至少一个目标状态之间的顺序关系;
[0175] 第一处理单元92,用于构建行为树;其中,所述行为树中的根节点是根据所述至少一个目标状态及所述顺序关系确定的;
[0176] 第二处理单元93,用于根据行为树中节点间的顺序关系扩展各节点,且所述各节点均通过以下方式进行扩展:
[0177] 若该节点为行为节点,则从预先构建的知识图谱中,确定与该节点匹配的目标行为概念,根据所述环境状态信息以及所述目标行为概念的各前置条件,对该节点的子节点进行扩展;其中,所述知识图谱中包括不同行为概念和不同命题概念、概念逻辑关系、所述不同行为概念分别对应的知识记录以及所述不同命题概念分别对应的知识记录,任一行为概念的知识记录包括执行行为所需的前置条件以及执行结果,任一命题概念的知识记录包括命题成立目标;若该节点为命题节点,则从所述知识图谱中,确定与该节点匹配的目标命题概念,根据所述环境状态信息以及所述目标命题概念的命题成立目标,对该节点的子节点进行扩展;
[0178] 执行单元94,用于基于扩展后的行为树中各节点的执行顺序,从所述扩展后的行为树中的终端节点开始,执行行为,以实现所述至少一个目标状态。
[0179] 在某些可能的实施方式中,所述获取单元91通过如下方式获取所述至少一个目标状态:
[0180] 基于行为规划模型输出的行为引导结果,确定所述至少一个目标状态。
[0181] 在某些可能的实施方式中,所述第二处理单元93,具体用于对于所述知识图谱中的不同行为概念,若该行为概念的执行结果包含的参数的数量与该节点包含的参数的数量相同,且该执行结果包含的参数的参数类型与该节点包含的参数的参数类型相同,则将该行为概念确定为与该节点匹配的目标行为概念。
[0182] 在某些可能的实施方式中,所述第二处理单元93,具体用于若所述环境状态信息不满足所述目标行为概念的各前置条件,则根据所述目标行为概念的各前置条件,对该节点的子节点进行扩展;若所述环境状态信息满足所述目标行为概念的各前置条件,则根据所述目标行为概念的各前置条件,确定该节点下的终端节点。
[0183] 在某些可能的实施方式中,所述第二处理单元93,具体用于若所述环境状态信息不满足所述目标命题概念的命题成立目标,则从所述知识图谱中,获取用于实现所述目标命题概念的命题成立目标的行为概念;将所述目标命题概念的命题成立目标,以及确定的行为概念确定为该节点的子节点;若所述环境状态信息满足所述目标命题概念的命题成立目标,则根据所述命题成立目标,确定该节点下的终端节点。
[0184] 本实施例中的基于知识图谱和行为树的行为规划装置是以功能模块的形式来呈现,这里的模块是指专用集成电路(Application Specific Integrated Circuit,简称ASIC),执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
[0185] 上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
[0186] 本申请的有益效果如下:
[0187] 1、由于知识图谱中包含了丰富的行为概念和命题概念,不同行为概念之间的行为逻辑、不同行为概念分别对应的知识记录以及不同命题概念分别对应的知识记录,基于该知识图谱扩展行为树的方式,可以为进行行为规划的设备提供丰富的任务执行选择,既可以很容易得表达常识知识,又容易被机器所理解,进行行为规划的设备能够根据不同的环境和任务要求灵活地进行行为规划,通过行为树实现动态推理,避免训练模型进行行为规划的难度。
[0188] 2、由于知识图谱中包含了丰富的行为概念和命题概念,不同行为概念之间的行为逻辑、不同行为概念分别对应的知识记录以及不同命题概念分别对应的知识记录,具有一定的通用性,基于该知识图谱扩展行为树的方式,可以将知识图谱中的通用知识重复多次利用,提高知识利用率。
[0189] 3、由于在基于知识图谱对该行为树进行扩展的过程中,侧重于行为概念和命题概念的匹配,对于执行行为概念以及实现命题概念的具体对象和具体场景并不限定,使得该知识图谱可以应用到不同场景中,并在不同场景下均可以通过该知识图谱对行为树进行扩展,从而实现行为规划,拓宽了该行为规划方法的应用场景以及提高了该行为规划方法在未知场景下的能力。
[0190] 实施例5:
[0191] 请参阅图10,图10是本申请可选实施例提供的一种计算机设备的结构示意图,如图10所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器10为例。
[0192] 处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
[0193] 其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
[0194] 存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0195] 存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
[0196] 该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图10中以通过总线连接为例。
[0197] 输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
[0198] 实施例6:
[0199] 在上述各实施例的基础上,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有可由处理器执行的计算机程序,当程序在处理器上运行时,使得处理器执行时实现如下步骤:
[0200] 获取环境状态信息、以及至少一个目标状态及所述至少一个目标状态之间的顺序关系;
[0201] 构建行为树;其中,所述行为树中的根节点是根据所述至少一个目标状态及所述顺序关系确定的;
[0202] 根据行为树中节点间的顺序关系扩展各节点,且所述各节点均通过以下方式进行扩展:
[0203] 若该节点为行为节点,则从预先构建的知识图谱中,确定与该节点匹配的目标行为概念,根据所述环境状态信息以及所述目标行为概念的各前置条件,对该节点的子节点进行扩展;其中,所述知识图谱中包括不同行为概念和不同命题概念、概念逻辑关系、所述不同行为概念分别对应的知识记录以及所述不同命题概念分别对应的知识记录,任一行为概念的知识记录包括执行行为所需的前置条件以及执行结果,任一命题概念的知识记录包括命题成立目标;若该节点为命题节点,则从所述知识图谱中,确定与该节点匹配的目标命题概念,根据所述环境状态信息以及所述目标命题概念的命题成立目标,对该节点的子节点进行扩展;
[0204] 基于扩展后的行为树中各节点的执行顺序,从所述扩展后的行为树中的终端节点开始,执行行为,以实现所述至少一个目标状态。
[0205] 由于上述计算机可读存储介质解决问题的原理与基于知识图谱和行为树的行为规划方法相似,因此上述计算机可读存储介质的实施可以参见方法的实施例,重复之处不再赘述。
[0206] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页 第1页 第2页 第3页