认真学习新知识的小I又来啦,今天给大家带来的是张雨辰同学的技术论文。我们知道机器人的单一动作常常无法实现我们的目标,所以需要通过任务规划来排序动作。选择合适的任务规划系统可是一门大学问,让我们通过了解张雨辰的探索过程,具体了解一下吧!
张雨辰
东北大学秦皇岛分校,计算机与通信工程学院,电子信息类19级。SI战队哨兵上位机。
摘要: 机器人需要任务规划来排序动作,以实现单个动作不可能实现的目标。现成的任务规划器可以被智能机器人用来解决各种规划问题。然而,存在许多不同的规划器,每一个都有不同的长处和短处,并没有一个一般的规则决定哪种规划器最适合应用于给定的问题。在这次研究中,我主要探索了三种任务规划系统:基于ROS SMACH,规划领域描述语言(PDDL),答案集编程(ASP)的规划,并在处理哨兵的任务规划问题上进行比较。SAMCH被设计用于快速创建复杂的机器人行为。PDDL是为任务规划而设计的,被广泛应用于各种计划问题。ASP是为知识密集型推理而设计的,也可以用来解决任务规划问题。对于哨兵的任务规划,ROS SMACH系统高效快速。基于ASP系统理论上可以实现,效果需要进一步研究。基于PDDL系统不适合在这使用。
关键词: 任务规划,机器人,SAMCH状态机,规划领域描述语言,答案集编程
严格意义上讲,ROS SMACH与规划基于领域描述语言(PDDL)、基于答案集编程(ASP)不在一个领域。PDDL与ASP属于智能任务规划,而SMACH,是一种设计机器人行为的任务架构。但这三者都是以解决任务规划的问题为主题,且我认为SMACH基于python的实现过程符合算法的特征,所以在此暂时将SAMCH也视为一种任务规划算法,与基于另两者的算法放在一起进行比较。本次研究的目的,是为了给机器人如何实现在不同条件下执行特定行为的问题提供更多的思路,以及证实哪种方案更适合现在的哨兵机器人。由于水平有限,这里仅基于通过各文献的搜集整理得到的信息,进行理论上的比较。如有错误,还请指正,不胜感激。
1.1 什么是任务规划
任务规划是指,为保证任务高效圆满完成,综合约束条件,对执行动作进行排序的策略。举个形象一点的例子:我们都听说过那个有名的问题,如何把一头大象放进冰箱?其具体步骤就是:开冰箱门,放入大象,关上冰箱。而这一些开关门的步骤就是任务规划。如何开门,如何放入大象则是更为具体的运动规划。任务规划更偏向于高层决策,而非过程实现。而后文中讨论的几种任务规划,特指任务规划的算法,即任务规划的具体方案描述。
1.2 为什么需要机器人任务规划
对于简单任务,比如说把a抓起来,放到b上面。一般不需要严格区分出任务规划的过程。对于复杂的任务,机器人需要任务规划算法来排序动作,以实现单个动作不可能完成的目标。
2.1状态机
2.1.1有限状态机(Finite State Machine,FSM)
有限状态机,简称状态机。表示有限个状态以及在这些状态之间的转移和动作等行为的模型(图1)。其中,“状态”存储关于过去的信息,也就是说:它反映从系统开始到现在时刻的输入变化。转移表示状态的转换,用使转移发生的条件来描述。动作是在给定时刻要进行的活动的描述。
其优点是易于理解,能够快速实现基本功能。而其缺点有两方面,一是缺乏灵活性,无法实现流程不确定的任务;二是对于复杂的任务,组合情况很多时工作量巨大,需要穷举所有的过程。三是不易维护。如果执行流程中有变化,要修改的内容可能会非常大。
(图1展现FSM的执行流程)
(图2 展现了复杂的层次结构状态机)
2.1.2 ROS SMACH
SMACH即代表"状态机",它是一种基于python的强大的、可伸缩的分级状态机库。SMACH库不依赖于ROS,并且可以在任何Python项目中使用。
SMACH的一个简单状态机包括状态(State)和结果(outcome)。程序在不同状态间转换,根据返回结果决定下一个要过渡到的状态,并且仅在状态内执行该状态下设定的行为。
SMACH的一大优势在于它的可视化,增强了它的可读性,便于理清结构,直观监控程序运行到哪一状态,也减轻了维护压力。另一方面,如同有限状态机,不但可以快速简单的实现简单状态机的功能;与此同时,SMACH也允许使用者设计、维护和调试大型的、复杂的层次结构状态机(图2)。特别一提的是,运用并行结构,理论上可以规划多机器人协作。SMACH一定程度上弥补了状态机难以应对复杂任务,不易维护的缺点。此外,在机器人领域,基于ROS平台的原因,显然SMACH有着天然优势。
SAMCH也仍存在缺陷。在于难以应对非结构化任务。当任务的安排变得不那么结构化时,SMACH将会失效。另外,SMACH的特性不适合用作需要高效率的低级系统的状态机,SMACH是对复杂工作的任务规划。
2.2规划领域描述语言(Planning Domain Definition Language,PDDL)
规划领域定义语言(PDDL)是一种标准化人工智能(AI)规划语言的尝试。它最初是由Drew McDermott和他的同事为了1998/2000年的国际规划竞赛(IPC)而开发的。基于PDDL任务规划的基本元素包括对象(Objects)、谓语(Predicates)、初始状态(Initial state)、目标说明(Goal specification)和行动/操作(Actions/Operators)。其中,对象表示感兴趣的实体;谓语表示对象的属性;目标说明是我们想要成为现实的事情;行动/操作是改变主体状态的方法。
PDDL中指定的计划任务被分成两个文件: 用于属性和操作的域文件(domain file)和用于对象、初始状态和目标说明的问题文件(problem file)。
PDDL需要逻辑公式形式的公理,用于在一种情况下进行推理(而动作描述用于在连续的情况下进行推理)。()
2.3答案集编程(Answer Set Programming,ASP)
答案集编程(Answer Set Programming,ASP),一种最近流行的通用知识表示和推理(KRR)语言用于各种任务规划问题,包括机器人技术。ASP是为知识密集型推理而设计的,也可以用来解决任务规划问题。
ASP研究来源于逻辑程序和非单调推理两个领域的交叉融合。
一个简单的ASP程序包括三个部分:事实、规则、输出。事实和规则,用来描述问题;输出,用来查看结果。通过人为使用规则描述问题,让系统自动进行求解。
ASP运用了非单调推理中的重要规则:封闭世界假设(Closed World Assumption,CWA)和失败即否定(negation as failure,NAF)。凡是没有说明为真的命题都默认为假;如果A被判断推不出,则推出not A。因此ASP具有非单调逻辑。
(一个简单的ASP例子,该例表明ASP可以合理刻画常识推理)
总的来说,ASP优势在于拥有非单调逻辑,能使更多的前提加入,减少结论;以及可判定性,对于给定的问题,一定可以在有限时间内给出解答(也可能给出答案无解的解答)。
SMACH是在状态之间转换,执行对应状态的任务。ASP是非单调的逻辑,它允许在给出新信息的情况下删除先前获得的结论。对比ASP ,PDDL是单调的推理逻辑,当新的信息可用时,先前获得的结论仍然存在。
对于哨兵机器人,要执行的任务是,首先确保移动躲避敌方的攻击,其次攻击在范围内的敌人。将哨兵机器人的任务划分成几种状态,运用SMACH可以很好实行,且做过实验。哨兵的任务没有特定的最终目标,不适合PDDL。ASP适合于常识的推理,哨兵对于事实而做出符合规则的反应,理论上可以使用基于ASP的算法。ASP与SMACH的应用效果对比,还需要研究。从使用者角度考虑,SAMCH的可视化监控要优于ASP。
针对哨兵机器人的任务规划, 使用SMACH系统可以利用状态转换快速建立任务规划。基于PDDL的算法不适用于哨兵任务。基于ASP的算法可以用于规划哨兵任务,具体效果还有待进一步研究。
References
1. Jiang, Y., Zhang, S., Khandelwal, P. et al.Task planning in robotics: an empirical comparison of PDDL- and ASP-based systems. Frontiers Inf Technol Electronic Eng 20, 363–373, 2019。
2. Unknown,Robot task planning: from state machine to formal system, CSDN。 [Online],available: https://blog.csdn.net/u013528298/article/details/88952282,April 1,2019。
(佚名,机器人任务规划:从状态机到形式系统,CSDN。[Online],available: https://blog.csdn.net/u013528298/article/details/88952282,April 1,2019。)
3. Jonathan Bohren ,smach。[Online],available: http://wiki.ros.org/smach。
4. Kinsang ,Answer Set Programming,cnblogs。[Online],available: https://www.cnblogs.com/kinsang/p/6745163.html。
5. Malte Helmert,An Introduction to PDDL,AI Planning ,October 16th,。
今天的技术知识分享就到这里啦,假期也要充实自己哦。喂~就是说你呐!
下期见!