Scientific Journal of Control Engineering December 2014, Volume 4, Issue 6, PP.170-175
Task Planning Based on HTN for Home Service Robot Li Zhang 1, Wei Chen 1, Yihao Guo 1, Gengshu Ruan 1 College of Automation, Guangdong University of Technology, Guangzhou Guangdong 510006, China
Abstract Hierarchical Task Network, depending on the task level recursive decomposition high-level tasks, is a more efficient method of intelligent planning. Firstly, a daily life household task is decomposed by HTN method. Then, according to the feature of the RoboCup@home simulation which is solving the optimal action sequences under the given constrains, a new coding structure is designed. Finally, the improved genetic algorithm is applied to achieve the goal of the task decomposition and optimization. The effectiveness and superiority of this method are confirmed by experiments in the RoboCup@home simulation platform. Keywords: Task Planning; HTN; Genetic Algorithm; Home Service Robot
基于层次任务网络的服务机器人任务规化 张立,陈玮,郭逸豪,阮耕书 广东工业大学 自动化学院,广东 广州 510006 摘
要:层次任务网络(Hierarchical Task Network, HTN)根据任务层次递归分解高层任务,是一种规划效率较高的智能
规划方法。本文首先采用层次任务网络(HTN)规划对服务机器人的任务进行分解,然后针对其任务特点——在给定约 束条件下,服务机器人最优动作序列问题,采用一种新的结构对原子行动进行重新编码,最后利用遗传算法对规划结果 进行优化,使其达到任务分解与优化的目的。将该算法运用于家庭服务机器人大赛仿真平台上,证明了算法的有效性。 关键词:任务规划;分层任务网络;遗传算法;家庭服务机器人
0 引言 近年来,随着人工智能和机器人技术的发展,对于服务机器人智能化的研究也获得越来越多的关注。国 内外很多研究机构,如中国科学技术大学、中山大学、日本早稻田大学等也相继开展对家庭服务机器人的研 究[1]。中国服务机器人大赛从 2009 年开始,增加了家庭服务机器人仿真组的比赛,其目的在于通过仿真比赛, 推动智能机器人规划问题求解、特别是智能服务机器人高层功能(包括人机交互、自动推理和任务规划)的 研究,使得这种研究可以在一定程度上独立于服务机器人硬件系统而展开,从而来促进家庭服务机器人的发 展和完善,让机器人更好的服务于人们的日常生活[2]。 层次任务网络(Hierarchical Task Network, HTN)规划是一种将分层任务分解思想应用于规划求解的自动 规划方法,它与经典规划相同之处在于:环境信息由一系列原子状态表示;每个确定动作的执行会导致环境 状态发生转换。同时 HTN 规划与经典规划的求解方式存在明显不同:HTN 规划的首要目标是使高层任务分 解为可执行的原子行动,而不是以达到目标状态为直接目的。HTN 规划与人类思维解决规划问题的方式类似, 对于每一个层次上的任务,只用考虑如何分解为下一层次的任务和任务之间的约束关系,而不用考虑目标状 态。为解决规划问题提供一种十分便捷的方法。HTN 规划过程可以分为子任务的分解和操作算子的实例化两 部分,由于这两个过程的复杂性和不唯一性,因此,HTN 规划有巨大的搜索空间[3-5]。 本文充分利用了 HTN 规划的高效性与简洁性,针对服务器人任务规划特点——在给定约束条件下服务 - 170 http://www.sj-ce.org
机器人最优动作序列问题,在 HTN 规划的基础上,采用遗传算法的全局搜索能力对 HTN 规划结果进行优化, 从而得到最优的行动序列。
1 基本原理 1.1 层次任务网络 HTN 规划的基本原理是根据系统初始状态,对给定的高层任务进行层次分解,生成能够完成指定任务的 实例化原子行动序列。HTN 规划问题可描述为一个四元组[6],即 P M , D, I , GT
(1)
其中,M 为环境信息,包括物体编号、位置以及物体间的固有关系等; D Op, Me 为规划域,由操作集 (Op) 和任务分解方法 (Me) 组成;操作集 (Op) 中包含所有原子行动,
它们和能够直接完成简单任务一一对应。和 PDDL 的操作集类似,每一个操作由包含参数的操作名、执行条 件和效果组成。任务分解方法 (Me) 表示复合任务的分解方法,代表 HTN 在该规划领域内的描述能力,它一 般有如下三部分组成:(1)能够分解的任务名;(2)每个任务分解所需的前提条件;(3)分解后所得到的子任务 集。如图 1 所示,是一个简单的任务分解的例子,puton 任务最后被分解成 4 个简单的子任务。 (:method ;head (puton ?p1 ?p2) ; precondition (and (at ?p1 ?c1) (at ?p2 ?c2) (robot ?p) (different ?c1 ?c2)) ;subtasks (:ordered (move-robot ?p c1) (Pickup ?p1 ?p ?c1) (move-robot ?p ?c2) (putdown(?p1 ?p ?c2))) 图 1 任务分解方法示例
I 为初始状态信息; 高层任务
前提
...
前提
...
方法 子任务1 ... 子任务n
方法
子任务1 ... 子任务n
图 2 复合任务分解图
- 171 http://www.sj-ce.org
GT 为需要完成的任务,由一系列含有参数的任务列表组成。如果能够被直接执行,则称作简单任务, 否则就是复合任务,必须经过分解成简单任务后才能够被执行。 高层任务通过分解转化为若干子任务的过程如图 2 所示。 如果子任务中还存在不能直接执行的原子行动, 则继续对子任务进行分解。通过不断的递归分解,直到高层任务全部转化成机器人能够直接执行的原子行动 序列。
1.2 基于 HTN 的顺序任务分解算法 基于 HTN 的顺序任务分解的基本原理是按层次任务列表中子任务的先后顺序依次进行分解,通过根据 当前状态 s 绑定任务 U 的约束 C。当满足 C 时,若 U 为原子任务,则执行影响当前状态 s 的操作 O,若为复 合任务,则继续分解子任务网络 (U,C) ,添加到求解问题中。当不满足约束 C 时,则返回失败。这样每一个 任务的分解都是基于对当前系统状态的判断,因此能够为后续任务的分解和规划解的生成提供更准确的系统 描述信息,减少了大量求解过程中的不确定性,使求解效率得到极大提高[7]。任务分解的主要流程如下: 1. 2. 3. 4. 5.
Abstract-HTN(s, U, C, O,M) 被证明没有解决方案
if (U, C) return else if
failure
U 是原子任务
if (U, C) 有解决方案
6.
随机的给定一个解决方案 π
7.
return π
8. 9.
else return failure else
10.
选择一个复合任务节点 μ∈U
11.
active← {m∈M | task(m) 与 tu}
12.
if
active ≠0
then
13.
随机选择一个 m ∈ active
14.
σ←m 和 tu 的一个 mgu,mgu 重命名 m 中所有的变量
15.
(U',C') ←δ(σ(U, C),σ(u),σ(m))
16.
(U',C')←
17.
return
apply-critic(U', C') Abstract-HTN(s,U’,C’, O,M) 图 3 任务分解流程
其中,σ 是对任务列表中参数的实例化替换,mgu (most general unifier)是指随机的替换。δ 表示在替换 σ 下用方法 m 对任务 u 的分解。这是一个递归的定义,任务网络可以被分解为第一个任务和其余任务列表的组 合,直到所有任务都为原子任务为止。 根据 HTN 规划过程,可以看出在 HTN 规划结果中,任意的两个动作都有严格的先后顺序,是典型的全 序规划算法,无法为进行更广泛深入的方案对比和评估提供灵活、有效的支持。另外,任务列表中参数实例 化的替换的不同,也会产生不同规划结果,如何在这些结果中评选出最优的可行解,是一个需要解决的问题 [8]
。因此,本文引入遗传算法对 HTN 规划的求解过程进行进一步完善,从而达到更好的规划结果。
2 基于改进的 HTN 在服务机器人仿真平台中的应用 在家庭服务机器人仿真平台中,机器人、物品、环境信息等被模拟在一个二维平面上,并以一个文本文 件的形式提供给用户。平台要求服务机器人在规定的环境和时间内,使用尽可能少的动作来完成文件中所给 出的若干任务。由于机器人最多可以同时携带两个物体,并且环境中可能存在多个满足任务的物体,因此同 - 172 http://www.sj-ce.org
一个任务可能有多种解决方案,如何选择最佳物体和行动序列便是服务机器人仿真平台任务规划的关键所 在。最后仿真平台在规定的时间内(5s) ,根据对机器人的规划结果进行评分,按照得分的高低来评判规划结 果的优劣[9]。
2.1 遗传算法对 HTN 的优化 针对家庭服务机器人仿真平台任务规划的特点,即除给定的约束信息外,所有高层任务之间没有严格的 先后顺序,对任务完成的过程没有严格的规定,只关注执行结果。因此,为了方便快速的得到全局最优行动 序列,本文采用遗传算法,将智能规划问题转化为群优化问题,结合了两种算法的优点,对 HTN 顺序任务 分解算法所得的行动序列进行进一步优化,来达到筛选全局最优序列的目的[10]。 2.1.1 原子行动编码 根据服务机器人仿真平台中原子行动的特点,本文采用结构体的形式对原子行动重新编码,将每一个原 子行动转化成相应的结构体形式,以便于遗传算法的优化和表达。一个原子行动可以转化成如下一个六元组 的形式: Step i, getorputi , objnumi , placenumi , inornoti
(1)
其中:i 表示原子行动编号;getorput={-1,1}表示机器人的抓取或放下物体;objnum 表示小物体物体编号, placenum 表示目标物体的位置信息;inornot={0,1}分别表示小物体是否在容器里。例如: 原子行动 TakeOut (can, closet),can 的编号为 10,closet 的编号为 2,且 can 在 closet 内,则转化为数据结构形式即 step (i,1,10,2,1)。 按照上述方法,其他原子行动也可以转化为类似的结构。 2.1.2 初始种群的生成 传统进化算法的初始种群产生方法为在定义域内随机产生,但这样并不能保证全面性,特别是在家庭服 务机器人仿真平台中,物品的选择,动作的顺序都是优化的对象,为了尽量保持初始种群的全面性,本文基 于编码的基础上,在参数列表中,随机产生几个初始个体,然后随机组合结构在体内的元素,最后,经过筛 选剔除无效的序列,如:一个物体要先拿后放,机器人一次只能那两个物体等,把符合规则的序列作为遗传 算法的初始种群,避免了无效种子对算法收敛性能的影响。 2.1.3 交叉与变异 传统的遗传算法中采用异体交叉和随机变异的方式来进行种群的进化,它可能破坏特定种群结构模式, 产生完全无意义的种子。因此本文采用染色体自体交叉的方式,即基因内的染色体进行交叉换位,而不与其 它染色体进行交叉。其中, 交叉概率;μ 为交叉率,与进化速度和稳定性有关;s 为代价值;n 为基因个数。 变异概率;θ 为变异率,s 为代价值,n 为基因个数,k 为可改变物体的备选个数。 2.1.4 适应度函数 根据仿真平台的评分规则,本文采用与适应度负相关的行动代价函数来代替。行动代价越高,则适应度 越低;行动代价越低,则适应度越高。具体的代价计算公式如下: n
n
n
i 1
I 1
i 1
s mi ai c i x
(2)
其中,m、a、c 为权值,取值分别为 3、1、5; i =0 或 1,分别表示机器人是否移动,取值决定于机器 人所在位置和下一个操作地点的位置关系; i 为取放物品等基本操作数; i 为行动违反的约束个数; x 为调 节值。 - 173 http://www.sj-ce.org
2.2 仿真实验 2.2.1 实验环境 系统:Ubuntu12.04,32bit CUP:Intel E2160 Memory:2GB 2.2.2 实验结果 仿真平台采用 2013 年 RoboCup 中国公开赛(合肥)暨中国服务机器人大赛仿真项目的官方平台 Planner, 任务描述和环境描述也为官方提供,并选取 50 个任务来测试算法的求解性能。这 50 个任务分别包含不同的 环境信息和任务要求,能够很好的检验算法的性能。实验分别采用传统的 HTN 顺序任务分解算法和改进的 HTN 顺序任务分解算法对 50 项任务进行求解。从表 1 中可以看出,算法改进后,任务完成数和总得分两项 指标比改进前有了明显改善,分别提高了 12.19%和 9.17%,说明引入遗传算法后,服务机器人任务规划能力 得到了提升,达到了规划序列优化的目的。同时,改进后的算法在耗时方面比改进前增加了 80.82%,这也是 遗传算法在寻优过程中不可避免的时间消耗,但考虑到消耗时间远没有超过平台限定时间(5s) ,因此时间的 消耗还是在可接受范围内。综合求解质量与求解效率两个方面考虑,改进后的算法还是表现出了有效性和优 越性。 表 1 实验结果 总任务数(个)
完成任务数(个)
平均消耗时间(S/个)
总得分
改进前
50
41
0.73
6590
改进后
50
46
1.32
7194
3 小结 本文在层次任务网络顺序分解算法的基础上,采用遗传算法对家庭服务机器人的行动序列进行重新编码 和优化,将智能规划问题转化为群体优化问题,充分结合了分层任务网络的任务分解能力和遗传算法的优化 能力,克服了分层任务网络优化能力不足的缺点,使行动序列的执行效果得到了明显提升。同时,遗传算法 也带来了额外的时间消耗,对求解效率有一定的影响。如何进一步的提高规划效率还有待继续研究。
REFERENCES [1]
Luca Locchi. Domestic Service Robots in the Real World[J]. 2012, Journal of Intelligent & Robotic Systems, Volume 66,Issue 1-2, pp.183-186
[2]
JI Jianmin. Serveral ways of improve the ASP efficiency and application on service robot [D]. Hefei: University of Science and Technology of China, 2010(in Chinese) [吉建民. 提高 ASP 效率的若干途径及服务机器人上应用[D]. 合肥: 中国科学技术大 学, 2010]
[3]
J. Song, J. Cha, Y. LU, A Hierarchical System Modelling Mechanism for Planningin Transportation and Logistics.Proc. 2008 IEEE Internatinal Conference on Services Operations and Logistics and Informatics (IEEE/SOLI’08), 2008, pp.1329-1334
[4]
M. Ghallab, D. Nau, P. Traverso. Automated Planning: Theory and Practice[M]. Morgan Kaufmann, 2004
[5]
CHEN Ai-xiang, CHAI Xiao-long, HUGui-wu. HTN planning and its complexity. Computer Engineering and Applications, 2008, 44(16): 37-41(in Chinese) [陈蔼祥, 柴啸龙, 胡桂武. HTN 规划及其复杂度分析[J]. 计算机工程与应用, 2008, 44(16): 37-41]
[6]
ZHANG Li. Task Planning Based on HTN for Robots with Memory[D]. Harbin Institute of Technology, 2010 (in Chinese). [张丽. 基于 HTN 方法的记忆机器人任务规划研究[D]. 哈尔滨工业大学, 2010]
[7]
Nau D, Au T. SHOP2: An HTN Planning System [J]. Journal of Artificial Inte lligence Research, 2003, 20: 379- 404 - 174 http://www.sj-ce.org
[8]
SONG Jingge, CHA Jianzhong, LU Yiping. Multiple Plans Oriented OTD Algorithm for HTN Planning[J]. Journal of Beijing Jiaotong University, 2009, 33(4): 46-49 (in Chinese). [宋泾舸, 查建中, 陆一平. HTN 规划中面向多计划生成的顺序任务分解 算法[J]. 北京交通大学学报, 2009, 33(4): 46-49]
[9]
RoboCup@home simulation Rule 2013[Z].2013(in Chinese).[中国服务机器人大赛仿真比赛规则[Z].2013.]
[10] LI Jian-ping, CHEN Wei, CHEN Shu-bin, Application of improved evolutionary algorithm in RoboCup@home simulation [J]. Computer Engineering and Design, 2013, 32(4): 1432-1436(in Chinese)] [李剑平, 陈玮, 陈树斌. 改进的进化算法于服务机器 人仿真赛中的应用[J]. 计算机工程与设计, 2013, 32(4): 1432-1436]
【作者简介】 1
张立(1988-) ,男,汉族,湖北省天门
2
陈玮(1963-) ,女,浙江省温州市人,教授,博士,主要研
市人,硕士研究生,主要研究方向:智能
究方向:智能控制、离散事件动态系统。
规划。
3
郭逸豪(1989-) ,男,汉族,广东省揭阳市人,硕士研究生,
主要研究方向:人工智能,模式识别。 4
阮耕书(1993-) ,男,广东省潮州市人,本科,研究方向为
智能规划。
- 175 http://www.sj-ce.org