张浩杰, 梁荣敏, 张玉东
(1. 北京科技大学自动化学院工业过程知识自动化教育部重点实验室, 北京 100083; 2. 北京科技大学顺德研究生院, 广东 佛山 518054)
地面无人平台作为一种先进的自主无人系统,伴随着相关技术的不断发展与完善,正朝着人工干预度低、智能化更强的方向发展,可以替代人类士兵完成危险的任务。随着高新技术的突飞猛进,军事领域迎来了一系列重大的变革,未来作战体系日新月异,其中最重要的改变是逐渐从以人类士兵为作战主体到无人作战系统为主、人类士兵为辅。目前,美军地面无人平台已经具备了一定的作战能力,已将10多款地面无人平台投入到伊拉克及阿富汗战争中,大大减少了人员伤亡,有效提高了士兵的战场生存能力。因此,智能化无人战场装备已经成为未来战场上不可逆转的手段,拥有比普通士兵更加强大的作战能力。
地面无人平台的研究涉及多个学科和领域,而其实际应用场景复杂多变,构建真实环境进行算法测试成本高,且不易于在同一测试条件下复现问题。因此,搭建一个能够模拟真实场景的地面无人平台仿真系统能够加速相关研究成果的测试与验证。研究学者前期开展了大量关于无人机的仿真系统研究,比如提出了一个基于HLA/RTI的并行仿真架构、基于Unity集成、控制与交互仿真系统UTSim、多无人机局部规划实时仿真器机器人操作系统(robot operating system, ROS)UnitySim和多Agent的协同空战仿真系统等,以解决无人机编队协同任务规划的仿真问题,而对地面无人平台仿真系统的研究较少。然而,随着地面无人平台在复杂环境和极端工况等场景下的性能测试需求逐渐增加,涌现了部分用于智能车辆在城市结构化环境下进行算法测试的仿真系统,比如城市交通模拟软件SUMO和自动驾驶仿真平台Carla及CarSim等。美国陆军工程研究与发展中心开发的VANE自主导航仿真系统,可以提供非结构化环境下进行地面无人平台算法测试的高逼真场景,但其并不开源,难以进行二次开发。目前,大多数开源的三维物理引擎仿真系统仅能提供高逼真的环境模块,比如微软开发的机器人开发环境MRDS、Gazebo和高保真多机器人仿真平台USARSim等,其仿真模型和控制器只是部分可移植,需要单独处理,而在不同的硬件或平台上需要重新编译控制器,或需要仔细匹配仿真模型和控制器。
地面无人平台仿真系统为了实现逼真的三维可视化效果,通常需要将地面无人平台的控制系统架构和场景仿真器集成。通过构建ROS节点作为桥梁,实现USARSim和ROS之间以ROS消息/主题模式通信,对多地面无人平台协同编队控制进行测试验证。相似地,文献[23]提出了将USARSim和4D/RCS集成构建地面无人平台仿真系统。而在地面无人平台仿真系统中进行算法测试验证时,通常会设定一些假设条件或者需要其他功能模块协助测试,这种情况下完全依赖地面无人平台自身智能很难完成测试。通过引入人在回路的基本思想,可以更加智能、高效地完成算法测试。地面无人平台仿真系统操控员实质上是对场景中参与人员的模拟,是整个仿真系统的一个有机组成部分,对“人”的仿真可信度研究有助于增强仿真系统的智能性。因此,人在回路的混合增强智能是将操控员的感知、经验引入到地面无人平台仿真系统,以便于提高整个系统在进行算法测试时的可信度。
本文针对地面无人平台仿真系统存在人类智能融合度低、功能不完善和不便于进行算法测试等问题,提出了一种基于人在回路的地面无人平台仿真系统,通过引入人在回路的输入模型,增强仿真系统的智能性。同时,该仿真系统采用CoppeliaSim软件设计高逼真度的真实场景,兼容ROS系统架构,便于集成ROS系统中开源的功能模块,降低地面无人平台测试部署周期及成本,为地面无人平台算法测试提供了一个快速验证方法。
ROS作为目前主流的面向机器人开源的系统架构,虽非实时操作系统,但其集成了大量算法功能包,并提供异构计算集群,如硬件抽象、底层设备控制、进程之间的消息传递以及数据包管理等。因此,本文所提出的基于人在回路的地面无人平台仿真系统以ROS为基础进行系统设计,其结构组成模块如图1所示。
图1 基于人在回路的地面无人平台仿真系统结构Fig.1 Architecture of simulation system for unmanned ground vehicle based on human-in-the-loop
在图1中,ROS系统架构中提供了开源的地面无人平台自主系统功能模块,比如任务解析模块、路径规划模块、路径跟踪模块、传感器模块、定位模块和驱动控制模块等,而基于人在回路的人机交互界面和基于CoppeliaSim的仿真场景作为两个独立的ROS节点集成到ROS系统架构中。ROS系统架构中所有节点之间的通信采用的是消息/主题和服务模型。基于人在回路的人机交互界面作为该仿真系统与操控员之间进行信息交互的窗口,可施加操控员的意愿或者人工干预,比如操控员期望的待执行任务(任务类型、任务数据)、根据环境变化所做出的决策和紧急危险情况下的人工急停操作等。同时,基于人在回路的人机交互界面也将接收部分反馈数据,比如地面无人平台的位姿、传感器数据、地图数据和图像数据等,以向操控员实时呈现。当地面无人平台在运动过程中偏离了目标点或出现错误时,通过操控员及时干预,重新修正当前任务,以提高地面无人平台执行任务的效率和容错率。基于CoppeliaSim的仿真场景包括环境要素、地面无人平台模型和传感器模型等,以模拟真实场景。通过对仿真场景中的原始数据进行预处理,比如位姿数据、激光雷达数据和图像数据等,之后将这些数据以ROS消息的形式封装,并发布到相应的ROS主题上,而基于CoppeliaSim的仿真场景将接收控制数据,从而驱动场景中的地面无人平台模型运动。
人在回路简单定义描述了机器或计算机系统无法提供问题答案而需要人工干预的过程。当这种情况发生时,在决策过程中赋予的额外数据将添加到计算机的算法中,以在将来自动执行特定的操作。由于地面无人平台的应用环境复杂多变,仅依靠携带的传感器很难建立准确的环境模型,势必会存在感知盲区。在此基础上,地面无人平台在执行任务过程中难免会陷入局部极小值或者困境,这限制了在该仿真系统中进行相关算法的测试验证。为满足更加复杂的算法测试和个性化测试需求,需要引入人在回路的认知输入模型,构建基于人在回路的人机交互界面,使仿真系统能够更加智能、高效地完成相关算法测试验证。
图2为基于人在回路的人机交互机制的基本框架,通过引入操控员的作用,可以把操控员对模糊、不确定性问题的认知与仿真系统紧密耦合。操控员根据待测试算法设定任务,之后,通过人机交互界面将任务信息发送给ROS系统架构。在仿真测试过程中,操控员监测仿真场景实时反馈的数据,比如环境要素的动态变化、传感器模型数据和地面无人平台运动数据等,在紧急情况发生时采用远程遥控方式使地面无人平台脱离险境。在算法测试结束后,操控员需对测试结果进行评价,在低置信度时对算法进行调整,之后进行循环测试。
图2 基于人在回路的交互机制Fig.2 Interaction mechanism based on human-in-the-loop
任务处理主要包括远程操作运动控制和任务规划发送,远程操作运动控制支持地面无人平台平移速度和横摆角速度下发,如图3所示,其优先级最高,以实现在紧急情况发生时由操控员直接实施人工干预。
图3 远程操作运动控制Fig.3 Remote motion control
在该仿真系统中可以模拟多个地面无人平台,因此,在对地面无人平台进行远程控制时需先选择其编号,从而实现对某一指定地面无人平台进行前进、后退、左转和右转控制。同时,设定了停车按钮,以实现在紧急危险情况发生时控制地面无人平台停止运动。
任务规划发送主要支持任务类型选择、任务规划结果呈现、修正及发送,在该界面可设定编队和侦查两种任务,并选择相应的任务参数,如图4所示。该界面可扩展支持添加多个地面无人平台,对于每一项任务,其相应的任务信息包括领航者编号、跟随者编号、领航者与跟随者之间的间距和角度信息等,这些信息封装为自定义的ROS消息发布,便于ROS系统架构中其他节点订阅解析。
图4 任务发送界面Fig.4 Mission sending interface
状态显示模块是操控员监测仿真系统运行状态的窗口,主要有地面无人平台平移速度、横摆角速度、位姿、运动轨迹和任务执行状态等数据显示。图5是状态显示主界面,上部以数字仪表盘的形式呈现地面无人平台在运动过程中的平移速度和横摆角速度,左下侧为仿真系统运行过程中的调试信息,而右下侧为该仿真系统中所有的ROS消息主题名称,方便订阅查看。
图5 状态显示主界面Fig.5 Main interface for status display
为便于操控员实时监测地面无人平台运动过程中的环境信息,仿真场景中的每一个地面无人平台都搭载了一个摄像头,从而将周围环境数据回传至人机交互界面,以彩色图像显示。图6所示是仿真场景中5个地面无人平台传回的实时图像,该模块可扩展加载更多的地面无人平台的回传图像进行显示。
图6 环境图像显示Fig.6 Display of environment images
CoppeliaSim是一款支持机器人运动学及动力学仿真的软件,具有多个链接库,包括动态仿真引擎、运动学工具、机器人模型以及传感器模型等,能够高保真模拟复杂的机器人模型和环境模型。
非结构化仿真场景设计为一个模拟的军事训练基地,其大小为100 m×100 m,地面为砂石路。环境中包含树、训练爬梯、单杠、训练桩、营帐、石墩、桌子、椅子和办公楼等环境要素,以尽可能达到场景高逼真度。CoppeliaSim软件采用分布式控制架构,因此,场景中每个对象都可以通过嵌入式脚本、插件、ROS节点和应用程序界面(application programming interface, API)客户端进行控制。
非结构化仿真场景中的地面无人平台模型采用四轮独立驱动,如图7所示。假定地面无人平台工作环境为平坦路面,对其运动学模型进行简化,因此可以只考虑其沿、方向的平移及绕方向的横摆运动,忽略沿方向的平移、俯仰和侧倾运动。基于这一假设,所采用的地面无人平台运动学控制模型参考文献[29],以=[,,]表示状态矢量,=[,]表示控制矢量,可得其运动状态转移方程表达式:
(1)
图7 地面无人平台模型Fig.7 Model of unmanned ground vehicle
因此,通过控制地面无人平台的平移速度和横摆角速度,即可驱动地面无人平台运动。
对于仿真场景中的每一个地面无人平台模型,其上分别搭载一个单目摄像头和一台单线激光雷达Hokuyo_URG_04LX_UG01。单线激光雷达安装于地面无人平台正前方顶部,设定其测量角度为270°,有效测距范围为10 m。摄像头安装于地面无人平台正前方,以实时获取前方图像,并回传至人机交互界面显示。
基于CoppeliaSim的仿真场景以插件方式与ROS系统进行数据交互,同时,操作者在人机交互界面通过该接口插件向ROS系统订阅/发布主题消息。因此,通过ROS系统架构的分布式通信机制可以实现人机交互界面与基于CoppeliaSim的仿真场景之间的通信。当ROS系统中的固定消息类型无法满足测试需求时,该仿真场景允许修改或添加自定义的ROS消息类型。在CoppeliaSim安装包下的sim_ros_interface文件夹中3个文件CMakeLists.txt、package.xml和meta/messages.txt添加自定义的ROS消息,编译生成链接库,导入后即可识别自定义的消息类型。
本文所使用的仿真场景与ROS系统的接口协议如表1所示,其中为地面无人平台编号,=0,1,…,。
表1 仿真场景与ROS输入/输出数据
为了验证本文所提出的基于人在回路的地面无人平台仿真系统的可行性与有效性,本文基于第3节搭建的仿真场景,采用文献[30]中提出的领航者-跟随者编队控制策略,以距离和角度作为编队队形输入,对多地面无人平台三角编队和纵向编队进行实验验证。
在三角编队系统测试过程中,操控员根据环境态势,通过人机交互界面发送编队队形信息,地面无人平台解析操控员的任务,逐渐运动形成所期望的三角队形。而在纵向编队系统测试过程中,由于环境信息及任务需求变化,在5个地面无人平台已初步形成编队运动过程中,由操控员临时增加一辆地面无人平台参与纵向编队,以测试人在回路的应用及对系统性能的影响。
在多地面无人平台三角编队测试过程中,共设定5个地面无人平台参与,操控员通过人机交互界面设定发送给地面无人平台的编队队形信息为=2 m,=2 m,=4 m,=4 m,=5π3,=π3,=5π3,=π3。对于领航者地面无人平台而言,根据任务目标点规划生成最优路径,如图8(a)中绿色实线,从而计算出到达目标点的实时控制输入=[,]。跟随者地面无人平台UGV_1、UGV_2、UGV_3和UGV_4在保持三角编队跟随UGV_0运动过程中的控制量则按照文献[30]中提出的编队运动控制规律进行计算,其值分别为=[,]、=[,]、=[,]和=[,],从而实现对跟随者的实时控制,图8(b)表示地面无人平台在三角编队运动过程中某一时刻的队形。
图8 地面无人平台编队运动Fig.8 Formation for multiple unmanned ground vehicles
在5个地面无人平台编队运动至目标点过程中,其运动轨迹如图9(a)中不同颜色实线所示。地面无人平台由最初的杂乱位姿逐渐形成期望的编队队形,保持该队形运动至目标点后停止。由于集成测试环境中存在障碍物,领航者UGV_0为了实现避障,轨迹变化较为明显,而其余4个跟随者地面无人平台为了保持编队队形,其运动轨迹变化与UGV_0轨迹类似。在运动过程中5个地面无人平台的航向变化如图9(b)中不同颜色实线所示,尽管领航者UGV_0的航向变化剧烈,但是跟随者地面无人平台航向变化比较平缓,而在到达目标点后,5个地面无人平台的航向角达到期望航向值并保持稳定。
图9 地面无人平台三角编队运动过程中参数变化Fig.9 Parameters during triangle formation of multiple unmanned ground vehicles
在三角编队运动过程中5个地面无人平台的平移速度和横摆角速度变化分别如图9(c)和图9(d)所示。从这两幅图可以看出,在到达目标点之前领航者UGV_0的平移速度和横摆角速度调整较为剧烈,而其他跟随者地面无人平台的平移速度和横摆角速度调整较为平缓。在某一采样时刻UGV_0到达目标点,其平移速度和横摆角速度调整为0后,其他跟随者地面无人平台逐渐平稳调整位姿达到期望的编队队形,在调整过程中其平移速度和横摆角速度逐渐减小至0。
在地面无人平台纵向编队测试过程中,操控员初始设定5个地面无人平台参与编队,其通过人机交互界面设定地面无人平台的编队队形信息为=2 m,=4 m,=6 m,=8 m,=0,=0,=0,=0。在5个地面无人平台逐渐形成编队队形过程中,由于环境信息及任务需求变化,需要增加参与编队的地面无人平台数量。此时,操控员通过人机交互界面临时调配增加一辆地面无人平台UGV_5参与纵向编队,并实现保持纵向队形运动。
在6个地面无人平台编队运动至目标点过程中,其运动轨迹如图10(a)中不同颜色线条所示,从图中可以看出,参与编队的6个地面无人平台在运动过程中保持期望的队形到达了目标点。在编队运动过程中,6个地面无人平台的航向角、平移速度和横摆角速度变化如图10(b)、图10(c)和图10(d)所示。由于地面无人平台UGV_5在初始阶段并未参与编队,因此,在未收到操控员发送的参与编队指令之前UGV_5保持静止,即其航向角、平移速度和横摆角速度均为0,如图10(b)、图10(c)和图10(d)中浅蓝色虚线所示。之后,在收到参与编队指令后,UGV_5快速调整加入到其他5个地面无人平台已经形成的纵向队形中,如图10(c)中UGV_5的平移速度由0 m/s迅速调整到0.57 m/s,并随着编队队形的形成而缓慢减小其平移速度,直至运动到目标点。
图10 地面无人平台纵向编队运动过程中参数变化Fig.10 Parameters during vertical formation of multiple unmanned ground vehicles
针对现有的地面无人平台仿真系统存在人类智能融合度低、功能不完善和不便于进行算法测试等问题,本文引入人在回路的基本思想,提出了一种基于人在回路的地面无人平台仿真系统。该仿真系统以ROS为基础进行系统构建,具有较强的扩展性,可以根据测试算法需求进行高逼真仿真场景设计,可以大幅缩短算法的测试周期及开发成本。最后,通过5个地面无人平台三角协同编队仿真实验验证了该仿真系统的有效性,进一步说明了该仿真系统运行稳定可靠,可以作为地面无人平台进行功能算法测试与验证的一个工具。
该仿真系统具有模块化和开放接口特性,便于在后续开发过程中不断扩展与完善系统的功能。然而,该系统是以非实时系统ROS为基础构建的,而对实时性要求高的地面无人平台算法测试难以满足需求,后续还需针对实时性问题做出改进措施。