基于多无人机自主协作任务规划的区域搜索与目标围捕问题研究
2022-09-09赵发綦秀利余晓晗张所娟李本凌
赵发 綦秀利 余晓晗 张所娟 李本凌
(陆军工程大学指挥控制工程学院 江苏省南京市 210000)
近年来无人机技术蓬勃发展,无论是在军事领域还是在民用领域,都有着更加广泛的应用。在军事上无人机成为执行枯燥、恶劣和危险任务的最佳选择,是未来智能化、无人化作战的重要手段之一。比如无人机应用于战场侦察监视、对地打击、城市反恐以及战场搜救等很多方面。在民用上,无人机技术的高速发展逐渐改变了人们的生活方式以及工作方式。除了传统的无人机电力巡检、植保等领域,无人机在抢险救灾、人员搜救等方面也表现出色。
不论是在军用还是民用领域,无人机能够执行的各种任务中,搜索任务是目前无人机系统最具有优势的任务选择。但是由于无人机的探测能力、机器载荷、续航时间等一些因素的限制,单架无人机难以完成复杂环境中的搜索、追踪等任务,越来越多的应用场景要求多无人机协同合作。为此本文针对未知区域搜索与目标围捕的复杂任务,提出一种基于“事件触发—事件处理”机制的模型来解决多无人机自主协作执行任务的难题。
1 问题描述
多无人机自主协作执行任务是无人机未来发展的一个重要方向,本文通过构建一个具体的“未知区域搜索与目标围捕”复杂任务来体现多无人机协作,并提出一种合理的解决方案、探索可行的多机自主协作实现方式。
假定如图1所示的不规则区域为待搜索区域,由于预先不知道未知区域内的目标数量和目标分布位置,所以需要让多无人机执行搜索任务时务必可以完全覆盖整个未知区域。多架无人机需要对该区域进行侦察搜索,确认区域内是否存在我们需要处理的目标。未知区域存在目标包括静止目标和移动目标两类,对静止目标的处理需要获取其信息(包括位置和性质),对于移动目标处理需要多架无人机对其进行围捕(围捕完成后目标消失无人机可以继续执行其他任务)。无人机完成对未知区域的侦察搜索以及对发现目标的正确处理,所有无人机返回出发点完成任务。本文主要的目标是实现多无人机自主协作执行任务,因此地形区域属于理想状态,不会涉及复杂区域。同时,也不涉及无人机的避障及路径规划算法。
图1:搜索、围捕问题示意图
2 构建模型
基于多无人机协作的要求,以具体的未知区域搜索和目标围捕任务为背景,提出一种可以复用的多机自主协作解决方案。构建基于“事件触发—事件处理”机制的多机自主协作模型如图2所示,提出这种模型框架的目的是为了简化无人机具体的执行动作代码实现难度,以及提高多机自主协作的扩展性、可以用于执行更多类型的任务。
图2:“事件触发—事件处理”机制
首先初始状态下,多无人机搜索和目标围捕任务触发“搜索”事件,事件处理后无人机进行未知区域搜索来发现目标,或者无人机执行其它任务时会有一个不同的“初始事件”。事件触发机制,简单来说就是在所有无人机进行动作时,动态获取全局态势,并且实时判断是否触发事件,如果触发了事件,激活事件处理环节对事件进行处理;如果没有触发事件,无人机就继续执行目前的动作。事件触发机制,重要的就是态势获取以及更新、触发事件判断条件的设置,这些保证了无人机需要执行什么动作来完成任务。
当有一个事件输入时,事件处理环节对该事件进行处理。任务分配是处理事件的第一步,根据提前制定的规则池,给无人机分配任务来应对这个事件;第二步是任务分解,基于SHOP 任务规划方法,对无人机分配的任务进行分解,达到简化执行函数的目的;最后一步是任务执行,每架无人机根据任务分解产生的原子任务序列,调用执行函数库中的执行函数,无人机进行相应的动作。
3 事件触发机制
事件触发机制是无人机处理特定情况的方法,而这些特定情况一般是由未知信息和不确定环境引起的,因此需要构建全局态势信息。基于处理不确定信息的这个大要求,态势的更新有可能会导致事件触发。因此设置合适的全局态势信息就会显得尤为重要,态势信息不仅仅是触发事件的前提条件,同时态势信息也是后续进行事件处理的必要前提条件。
在初始状态下,触发“搜索”事件,事件处理后无人机都进行动作。态势信息在无人机执行具体动作过程中不断进行更新,实时判断是否触发了一个事件。事件触发前提条件设置的要求就是出现一种特定的情况触发一个事件,否则不触发事件。例如,当有无人机发现移动目标时(也就是态势信息中发现目标信息变化时),触发一个“围捕”的事件;移动目标被围捕后,触发“搜索”事件。其余的几种事件触发情况如图3所示,事件触发机制的作用是保证无人机执行任务过程中触发事件就会重新进行一次规划,给无人机重新制定需要执行的具体动作,这种任务重规划就是“事件触发—事件处理”机制。这样就可以正确处理无人机发现的各种情况,同样可以实时处理随着态势不断变化的情况,用来实现自主协同。
图3:事件触发机制
同时事件触发机制还可以提供优秀的可扩展性,目前定义了可能出现的比较常见的情况以及会触发的事件,用来验证方法的可行性。如果有更加复杂的情况发生,可以添加相应的事件,后续写好事件处理的相关内容就可以了。由于模块相对比较独立,事件的触发以及处理对前面的内容是没有较大影响的,添加事件就会比较方便。
4 事件处理环节
当满足条件触发一个事件后,就需要对该事件进行处理,事件处理的目的是使无人机具备重新规划任务的能力,并且规划任务后可以继续正确进行行动来完成任务。事件处理的过程可以分为三步:首先是任务分配,目的是通过给几架无人机分配固定的一些任务,来处理引起态势变化触发事件的情况,消除这种情况,使其不能继续触发事件;第二步是任务分解,通过把每架无人机分配的任务进行分解,来减低无人机具体任务执行函数的编写复杂度,同时也是提高代码复用性;最后就是任务执行,无人机执行具体的动作的过程,通过对无人机动作执行函数库的调用来实现具体的无人机动作。
4.1 任务分配
任务分配本质上就是通过制定任务分配的规则,来实现对触发的事件处理。任务分配是事件处理最重要的一环,后续两步都是在任务分配的基础上进行的。针对触发的不同事件来制定任务分配规则,以“围捕”事件为例来说明如何制定规则池:
无人机搜索过程中发现移动目标触发“围捕”事件,需要多架无人机协作才能实现对移动目标的围捕,对无人机任务分配的原则是:发现移动目标的无人机负责对目标进行跟踪(track);判断目标距离其余无人机的距离,距离近的两架(假定围捕一个移动目标需要三架无人机配合才能实现)无人机来协助围捕(round);其余的无人机执行的任务不变。
总体来说,事件处理实质上就是输入一个事件,通过规则池中制定的任务分配规则给无人机分配任务,输出任务列表。对应触发的5 个事件,整体的框架和规则池如图4所示,因为任务分配规则的不一样,输出的任务列表任务数量也不一定,但为了使得任务分配的结果有序并且合理,最终分配给每架无人机的任务都只会有5 种,包括:搜索(search)、跟踪(track)、围捕(round)、等待(wait)、返回(return_land)。
图4:任务分配实现过程
当事件比较少、规则不太复杂的情况下,这种构建规则池进行任务分配的方法就会比较适用;但如果问题比较复杂、无人机数量增加,并且任务也不仅仅只有5 个的时候,使用规则池的方法就不适用了,需要用到更好的任务分配方法。目前有一些学者对该问题进行了研究,如文献中韩庆田提出的基于改进PSO 的多UAV 协同任务分配方案;文献中吴玲、张朱峰和吴威提出的基于分布式约束优化的多UAV 协同任务分配方式。
4.2 任务分解
事件处理的第二步就是任务分解,任务分配阶段给每架无人机分配的任务不仅有原子任务还会有复合任务。对于无人机动作执行来说,原子任务就对应一个无人机的简单动作,可以直接写无人机的动作执行函数,而复合任务就是比较复杂的、无法编写执行函数的任务,无人机不能直接执行这样的任务,对于这样的任务就需要通过智能规划方法进行任务分解。
图5:领域知识的内部关系示意图
SHOP(Simple Hierarchical Ordered Planner,简单层次顺序规划)是一种可用的HTN 智能规划方法,由于本文代码实现以Python 语言为主并且SHOP 也提供了基于Python 语言的Pyhop 版本,因此本文利用SHOP 规划方法来实现对每架无人机分配的任务进行规划分解。基于SHOP规划方法,根据原始任务和领域知识,可以生成一个由原子任务组成的计划序列。原始任务就是无人机需要执行的一个或一组任务(本文就是任务分配的结果)。领域知识是用来描述整个任务层次结构的,是原子任务、复合任务分解方法以及其他信息组成的集合,也是人对一个任务分解方式的理解的算法表达。
图6是本文构建的领域知识中原子任务和复合任务的内部结构关系示意图。其中包括6 个原子任务(矩形表示),另外单独还有原子任务等待;5 个复合任务(圆角矩形表示);椭圆代表复合任务分解使用的方法。其他各种信息,常用的如辅助函数的定义,用于推断世界状态中没有明确提到的条件,本文中主要用辅助函数推理无人机机动任务的目标点这些信息。任务分解实质上就是分别输入给每架无人机分配任务产生的任务列表,通过SHOP 规划方法将任务进行分解,输出原子任务序列。
图6:Gazebo 搭建的仿真环境
4.3 任务执行
任务的完成是在任务执行阶段实现的,事件处理的结果就是产生对应每架无人机的原子任务序列后,无人机执行相应的动作的过程。动作执行函数对应任务分解阶段领域知识中的原子任务,因此对应7 个原子任务,动作执行函数库就会包括解锁起飞(arm_takeoff)、降落(land_disarm)、移动(move)、搜索目标(search_target)、跟踪目标(track_target)、围捕目标(track_target)、等待(wait)这7 个无人机动作的动作执行函数。建立原子任务对应的通用动作执行函数库,动作执行函数对于每架无人机都是一样的,可以进行复用,调用过程中,获取对应的参数就可以实现不同无人机执行需要的具体动作。
动作执行函数实现的内容,简单来说就是在一定的前提条件下,无人机机载电脑通过ROS(Robot Operating System,机器人操作系统)发布话题信息,比如解锁起飞就是发布解锁的话题和起飞的话题,无人机飞行控制器订阅到该话题后,无人机就会执行相应的动作。每一个动作执行函数,都会有一个无人机的判断过程,满足条件后才会执行该函数。并且为保证无人机在执行任务过程中的安全,无人机判断不具备执行下一个动作的条件,会继续保持上一个动作的执行,并且在丢失信号的情况下执行返回的动作。
5 实验
5.1 实验环境搭建
采用用阿木实验室的无人机开源项目Prometheus作为多无人机的基础控制程序框架,通过Gazebo 搭建需要的仿真环境如图6所示,构建的实验模型包括四架带摄像头的无人机、无人机起飞点、未知区域等要素。为方便描述未知区域,假定未知区域为矩形区域开展实验,以无人机起飞点作为三维坐标原点,构建三维坐标系。用(Xmin,Xmax,Ymin,Ymax)表示矩形区域范围,则未知区域坐标为(10,50,10,50)。未知区域内存在1 个移动目标和3 个静止目标。由于本文的研究重点是多无人机自主协作执行任务模型的实现,但无人机动作的执行过程会影响测试结果,故简化动作执行函数。采用无人机识别二维码来代替目标识别,无人机识别到指定二维码就认为搜索到了特定目标。其中代表移动目标的二维码编号11,坐标为(13,22,0.01),移动二维码移动轨迹为圆形,并且添加了围捕成功后该移动二维码消失的设置;代表3个静止目标的二维码,编号1 坐标为(13,37,0.01)、编号2 坐标(37,28,0.01)、编号3 坐标(47,47,0.01)。
因此多无人机未知区域自主协作搜索和目标围捕任务,可以简化为四架无人机在未知区域内搜索识别11号二维码,无人机在搜索到区域内移动目标(即11 号二维码)后会有三架无人机协同执行围捕任务,并且无人机要快速搜索完成所有的未知区域,找到区域内所有静止目标,并回传静止目标的二维码编号和坐标位置。搜索完成未知区域后,就返回降落点,完成此次任务。
5.2 仿真结果
仿真实验环境下,任务执行过程中无人机能够正确发现移动目标并且三架无人机对其进行围捕直到移动目标消失;发现所有静止目标并且回传目标信息;并且能够实现快速搜索未知区域的目标(未知区域大于特定值时,先完成搜索的无人机帮助搜索)。下面展示无人机完成任务的结果,以及所有无人机动作和终端打印的信息:
搜索发现静止目标处理:无人机在搜索过程中,1 号、2号、4号无人机均搜索发现了1个静止目标并且回传了信息。图7是无人机1 号发现静止目标,终端打印二维码的具体信息。通过终端打印的消息可以看出,无人机1 号发现了静止目标,并且回传了二维码信息。对比仿真环境中静止目标的二维码编号和真实位置坐标(编号1 坐标为(13,37,0.01)),无人机正确识别并回传了静止目标二维码编号和坐标。同样,无人机2号、4号都可以正确发现目标二维码,在此不做展示。
图7:无人机1 号发现静止目标
搜索发现移动目标处理:无人机3 号在搜索过程中发现移动目标,事件处理结果是:发现移动目标的无人机3 号负责对目标进行跟踪(track);经过判断移动目标距离其余无人机的距离,无人机1 号、无人机2 号距离比较近,执行围捕(round)任务。动作执行过程中,三架无人机对移动二维码进行围捕,围捕成功后发现移动二维码消失。图8显示的是三架无人机正在围捕目标。
图8:无人机正在围捕目标
多机协作实现:多无人机的协作主要体现在空间域的多机协作和多实体之间的协作。空间域的多机协作,主要就是初始事件规划搜索路径以及搜索区域。图9展示的是给四架无人机规划的搜索区域。
图9:四架无人机正在搜索
对于多实体协作来说,移动目标可以正确发现处理;还有帮助搜索方面,无人机4 号首先完成区域搜索,进行等待。判断无人机1 号剩余搜索面积最大,并且大于8(需要帮助),无人机4 号飞到无人机1 号的搜索区域帮助搜索,搜索区域是1 号无人机剩余区域的后面一半。图10显示的是无人机4 号在无人机1 号的搜索区域进行搜索。
图10:无人机4 号帮助搜索
6 总结
随着无人机技术的不断成熟,无人机在军事侦察和打击,灾难搜救现场,地质勘探等领域都具有广泛的应用。采用多无人机对未知区域进行目标搜索是目前无人机发展的主要方向之一。因此,本文提出一种多无人机自主协同执行复杂任务的解决方案,主要工作包括:描述了未知区域搜索与目标围捕复杂任务的具体要求,进而根据无人机执行任务过程构建了基于“事件触发—事件处理”机制的模型框架;详细阐述了事件触发机制运行过程和事件处理环节的实现方式;通过在仿真环境中测试,验证了本文提出的“事件触发—事件处理”模型可以有效解决多无人机自主协作执行任务的问题。
同时利用本文方法实现多无人机自主协作执行任务也体现出了一定的优势,具体表现为:对比一架无人机执行任务,节省时间成本;利用事件触发机制,协作搜索节约资源和时间,不会出现一次规划一架无人机搜索完成浪费资源的情况发生;“事件触发—事件处理”机制提供了优秀的可扩展性,目前仅定义了可能出现的比较常见的情况以及会触发的事件,扩展性可以在后续应对更加复杂的情况。