基于多智能体强化学习的月面极端区域协同探测方法
2023-03-13谢旭东白成超
张 杨 颜 鹏 谢旭东 白成超
(1.中国空间技术研究院, 北京 100094; 2.哈尔滨工业大学航天学院, 哈尔滨 150001)
1 引言
月球探测能够促进通信、控制、能源、材料等技术的快速发展,同时能够助力月球资源的开发利用[1-3]。 为取得更为直观和充分的探测数据,使用巡视器进行月面探测是当前极为有效的方式[4]。 目前,巡视器执行的月面探测任务主要集中在月球正面,月背也仅在2019 年实现了首次探测,探测资源富集的极区已成为未来探测任务的趋势。 然而,极端区域由于复杂的地理条件约束导致探测任务难度极大。
现有的月面巡视器多为单个月球车独立行动,对此已有大量的月面探测路径规划相关研究[5-7],但其受制于自身能力及环境约束,无法满足对复杂未知的月面极端区域的探测需求,因此,仅利用单个月球车进行月面探测在未来不是一种高效的探测方式。 利用多个月球车进行协同探测则能够有效提升探测能力,极大提高探测效率和探测任务设计上限[8]。 此外,考虑极端区域存在坡度、光照、月壤特性差异等复杂因素,单一工种巡视器可能无法完成预设的探测任务,因此,研究多巡视器协同探测具有较大的工程意义[9-10]。
目前还未有过在月球上实际应用的多巡视器协同探测任务,但已有相关学者对协同探测区域覆盖算法进行了研究。 覆盖路径规划通过将环境分割成细粒度的区域,然后生成路径完成探测。Laine 等[11]基于近视感知信息实现了有限传感下多月球车的区域覆盖路径规划;罗汝斌等[12]使用深度强化学习方法实现了多行星车的自适应协同探测,提高了行星车应对高度不确定性未知环境探测任务的能力。 此外,在地面其他领域也有区域覆盖协同探测的相关研究:向庭立等[13]将改进灰狼算法应用到无人机协同探测,实现了资源优化分配决策;Hazon 等[14]通过两步法将生成树覆盖算法应用到多机器人的协同探测上;Kapoutsis等[15]提出了DARP 算法,将探测区域平均划分,使多机器人问题转化为多个单机器人问题,能够降低问题求解的组合复杂性;Ivi'c 等[16]采用基于势场的遍历覆盖算法实现了多智能体的避碰与协同覆盖探索。
针对具有高度不确定性的未知区域,基于规则的协同探测策略由于缺乏智能自主的策略调整机制,无法动态调整探测策略以适应新的环境,需要赋予月球车一定的智能自主性,使其可根据环境状态自主调整策略。 传统的强化学习方法虽然可以通过自主训练的方式使得智能体学习到智能自主的策略,但很难应用到多智能体环境中。 在多智能体环境中,每个智能体都在不断学习,策略也在不断变化,其所处的环境是动态变化的,因而无法学习到稳定的策略。 多智能体深度确定性策略梯度方法[17](Multi-agent Deep Deterministic Policy Gradient,MADDPG)作为一种广泛应用的多智能体强化学习方法,能够有效解决多智能体的环境不稳定问题,并且具备集中式训练分布式执行的优势,在各种领域都有广泛的应用。 张立雄等[18]使用多智能体强化学习实现了多无人车探索多个目标位置的分布式路径规划;Qie 等[19]对MADDPG 算法进行改进,能够有效实时处理动态环境,实现了多无人机的目标分配与路径规划。
针对月面极端区域探测问题,本文采用MADDPG 方法,通过自主学习的方式建立月球车的协同探测策略,并且在协同探测策略的学习过程中,重点考虑探测效率及探测区域起伏度对月球车安全性的影响。
2 月面极端区域协同探测问题建模
2.1 月球车模型
考虑月球车的运动学模型。 月球车在月面进行移动探测时,不仅要考虑本身的速度控制指令,还需考虑月球车所在的地形起伏信息,它将影响月球车的安全稳定行驶。 因此,构建月球车的运动学模型,如式(1)所示。
式中,t表示当前时刻, (xt,yt) 为月球车在月面二维平面地图的位置坐标,zt为月球车当前的地形高度,vt是月球车的运动线速度,θt、γt、ψt分别为月球车的俯仰角、滚转角及偏航角,ωt为月球车的转动角速度,ft(·) 表示月面地形起伏信息的函数,即月球车所处的高度、俯仰角以及滚转角由当前的地形信息决定。 月球车俯仰角与滚转角的最大幅值为θmax和γmax,当月球车的俯仰角与滚转角大于最大幅值时,月球车将发生倾倒。
月球车搭载的探测传感器有视觉相机和激光雷达,如图1 所示。 激光雷达探测距离为dscan,探测角度范围为αscan; 视觉相机探测距离为dcam,探测角度范围为αcam。 此外,月球车之间的最大通信距离为dcom,即月球车的相对距离超过dcom时,相互之间无法进行通信,如图2 所示。
图1 月球车模型Fig.1 Model of the lunar rover
图2 多月球车协同探测未知区域Fig.2 Multi-lunar-rover cooperative exploration of unknown areas
2.2 协同探测问题
在给定的月面区域内,使用N个月球车同时执行探测任务,每个月球车设定有固定的探测范围以及通信距离,在通信距离内的月球车能够互相传递已探测的地图信息、当前时刻通信范围内其他月球车以及自身在地图中的位置信息,要求各月球车能够避开月面环境障碍物以及其他月球车。 在给定区域均被探测完成后任务结束。 将以上协同探测问题建模为一个优化问题,通过规划每个月球车的探测指令使探测效率最大化,探测任务耗时最少,并满足月球车的安全性约束,该问题建模如式(2)所示。
3 基于MADDPG 的协同探测方法
3.1 状态空间
3.2 动作空间
月球车的控制指令包括线速度vt和角速度ωt,由于月球车在实际运行时其速度是连续的,因此本文使用连续的速度值组成探测策略的动作空间,如式(4)所示。
3.3 网络结构
针对以上设计的月球车的状态空间与动作空间,本文设计的协同探测策略的网络结构如图 3所示。 针对视觉相机观测到的图像状态oCt,设计了两层二维卷积网络以及一层全连接网络对其进行编码处理。 其中,第一层卷积神经网络共有4个二维卷积核,且卷积核大小为(4,4),卷积滑动步长为2;第二层卷积神经网络共有8 个二维卷积核,卷积核大小为(3,3),卷积滑动步长为2;全连接网络具有128 个非线性处理单元。 针对激光雷达的测量信息,设计了两层一维卷积网络以及一层全连接网络对其进行编码处理。 其中,第一层卷积神经网络共有32 个卷积核大小为5 的一维卷积核,其卷积滑动步长为1;第二层卷积神经网络共有32 个卷积核大小为3 的一维卷积核,其卷积滑动步长为1;全连接网络具有32 个非线性处理单元。 针对栅格地图信息,设计了两层二维卷积网络以及一层全连接网络对其进行编码处理。 其中,第一层卷积神经网络共有4 个卷积核大小为(4,4)的二维卷积核,其卷积滑动步长为2;第二层卷积神经网络共有5 个卷积核大小为(3,3)的二维卷积核,其卷积滑动步长为2;全连接网络具有64 个非线性处理单元。 在月球车的观测状态通过以上3 组网络结构分别编码之后,将各自的编码状态进行拼接,然后由3层全连接网络进行进一步处理,最后得到月球车的控制指令。 在以上网络结构中,除了最后一层网络结构,其他网络层的非线性处理单元的激活函数均为ReLU,最后一层网络结构的激活函数为Tanh,其目的是将输出值限制在(-1,1)之间。
图3 协同探测策略网络结构Fig.3 Network structure of cooperative exploration strategy
3.4 奖励函数
由2.2 节建立的协同探测问题可知,本文解决的问题是建立月球车的协同探测策略使得月球车对指定区域的探测时间最短并且满足月球车的安全性约束。 因此,对应的奖励函数设计为式(5):
式中,μt表示在t时刻对指定区域的探测率,μt <0.95 表示对指定区域没有探测完成(μt≥0.95 表示完成了对指定区域的探测,由于实际情况下很难对具有障碍物以及坑洼区域的月面环境实现完全探测,因此本文假设当探测率超过0.95时已完成对指定区域的探测)。 上式表示在没有完成探测时在每个时间步长上接收到的奖励值与区域探测率的增加率成正比,当完成区域探测时则给一个较大的奖励值。 式中常值-0.001 的目的是为了加快对区域的探测时间。
3.5 基于MADDPG 的训练流程
图4 基于MADDPG 的月面协同探测策略训练流程Fig.4 Training process of lunar surface cooperation detection strategy based on MADDPG
4 仿真校验
4.1 仿真环境设置
本文在Gazebo 仿真软件中搭建了月面极端区域协同探测的仿真环境,如图5 所示。 其中探测区域面积为100 m×100 m,且环境区域中随机分布着起伏度不平整的沟壑坑洼地带,用于模拟月面极端区域的地形环境。 同时,构建的仿真环境中有2 个月球车,用于协同探测模拟的月面区域。 月球车使用开源的Jackal 无人车模型,其携带的传感器如图5 所示。 在仿真过程中,将月球车的性能参数设置如表1 所示。 Gazebo 的底层仿真周期设置为0.01 s,月球车的指令解算与观测频率设置为1 s,即每隔1 s 根据观测到的状态解算一次月球车的控制指令。
图5 协同探测仿真环境Fig.5 Simulation environment for collaborative exploration
表1 月球车性能参数Table 1 Performance parameters of the lunar rover
4.2 训练过程
使用以上搭建的仿真环境训练月面协同探测策略,其中深度神经网络使用Pytorch 框架搭建。算法1 中涉及的参数取值如表 2 所示。 在每个训练周期开始时,随机重置2 个月球车的位置,同时保证2 个月球车的距离在其通信范围之内。 在每个训练周期中,当达到最大时间步数(以1 s 为步长)或者探测区域被探测完之后,此次训练周期结束。 图6 所示为训练过程中每个训练周期的累积奖励值变化曲线,其中R=∑trt表示一个训练周期中月球车接收到的累积奖励值。 由图可知,随着训练周期的增加,每个训练周期的累积奖励值逐步提高,表明月球车在探测过程中可以获得更多的奖励值,同时对月面极端区域的探测效率逐步提高。 当训练周期大于6000 之后,每个训练周期的累积奖励值在5.5 附近震荡,表明月球车在每个训练周期都能接收到探测完成的奖励值10,这说明在每个训练周期月球车均能完成对环境的探测。 同时注意到在此之后每个训练周期的累积奖励值没有明显的增加趋势,累积奖励值稳定在5.1~5.7,表明月球车的探测策略已经基本固定,策略训练过程逐步稳定,月球车逐步学习到有效的协同探测策略。 在以下仿真中,均使用图6 所示经过10 000 个训练周期训练的协同探测网络。
表2 算法1 中的参数取值Table 2 Values of parameters in Algorithm 1
图6 训练过程中每个训练周期累积奖励值变化曲线Fig.6 Curve of the cumulative reward value of each training cycle during the training process
4.3 协同探测性能对比分析
本节对所提的基于MADDPG 的协同探测方法的协同探测性能进行仿真分析并与其他方法进行对比。 对比的方法包括基于势场的协同探测方法以及基于Qmix[20]的协同探测方法。 基于势场的协同探测方法将探测区域以及各月球车之间的关系采用势场进行建模,各月球车的移动指令由势场的梯度决定。 基于Qmix 的协同探测方法是一种基于多智能体强化学习的探测方法,每个月球车的移动指令经过离散化处理,其中线速度指令离散化为{0, 0.5, 1, 1.5, 2.0}m/s,角速度指令离散化为{-60, -30, 0, 30, 60}°/s,月球车的指令为线速度指令与角速度指令的组合,因此共有25 组指令。
此外,为了充分对月球车的协同探测性能进行分析,本文提出以下4 种性能指标:
1)探测时间Tdect。 指月球车探测完给定的探测区域所用的时间,探测时间越短,表明协同探测效率越高,协同探测性能越好。
2)平均俯仰角θ-。 指月球车在区域探测过程中俯仰角的平均值。 平均俯仰角用于衡量探测过程的安全性,其值越小表明月球车的探测路径越平稳,探测过程越安全。
3)平均滚转角γ-。 同平均俯仰角一样也用于衡量探测过程的安全性。 平均滚转角是指月球车在区域探测过程中其滚转角的平均值,其值越小表明月球车的探测路径越平稳,探测过程越安全。
4)相对障碍物的最小值dmin。 指在一次探测过程中,月球车距离障碍物的最小距离,同样用于衡量探测过程的安全性,其值越大表明探测过程越安全。
在4.1 节所述的仿真场景中,对以上3 种方法在相同的随机种子下进行50 次随机协同探测仿真测试,对于以上4 种性能指标,计算50 次随机测试的平均值,结果如表 3 所示。 由表中结果可知,基于MADDPG 的协同探测方法在所有4 种性能指标上都优于其他2 种方法。 相比于基于Qmix 的协同探测方法,在基于MADDPG 的协同探测方法中,月球车的指令为连续值,使得月球车可以更加充分探索可能的动作空间,并具有更加灵活的探测方式,因此具有更好的探测性能。 由于基于势场法的协同探测方法是一种基于规则的方法,无法充分探索可能的策略空间,只能根据规则设计可行的协同探测策略,无法通过自主学习的方式探索更优的策略,因此相对于MADDPG 与Qmix 这2 种基于学习的协同探测方法来说,具有较低的探测性能。
表3 协同探测性能对比结果Table 3 Comparison of collaborative exploration performance
此外,对月球车自身能力对协同探测性能的影响进行了测试。 图7 为月球车最大俯仰角(即月球车的爬坡能力)变化时各方法探测性能指标的变化曲线。 由图可知,随着月球车最大俯仰角的增加,对探测区域的探测时间从40 s 左右降低到15 s 左右,这是由于月球车自身爬坡能力的增加使得月球车可以直接经过具有较大起伏度的区域,降低了绕路探测的次数,从而具有更短的探测时间。 由于月球车在具有较大起伏度区域的时间增加,月球车在整个探测过程中的平均俯仰角与平均滚转角也随之增加,平均俯仰角增加了1.5°左右,平均滚转角增加了1°左右。 同时由于具有较大起伏度的区域分布的障碍物也越多(与障碍物之间的距离是由月球车携带的激光雷达测量出的,当月球车经过区域的起伏度较大时,激光雷达的测量值也随之变小,因此这里也将起伏度较大的区域视为障碍物),整个探测过程中距离障碍物的最小距离随之降低,当最大俯仰角等于30°时,其值在3.5 m 以下。
图8 为月球车最大滚转角变化时各方法探测性能指标的变化曲线。 由图可知,当月球车的最大滚转角增加时,探测时间并没有显著降低,仅从19 s 左右降低到了17 s 左右。 相比于图7(a)可知,月球车最大滚转角的变化并不会显著影响月球车的探测效率,月球车的探测效率主要由其爬坡能力(即最大俯仰角)决定。 由图8(b)与(d)可知,月球车最大滚转角的变化同样不会显著影响平均俯仰角以及月球车相对障碍物的最小距离。 因为月球车最大滚转角的增加并不会有效提升月球车经过起伏区域的能力,仅是降低了月球车侧翻的可能性。 显然,随着月球车最大滚转角的增加,其平均滚转角也将随之增大,如图8(c)所示,其平均滚转角从2°左右增加到了3°左右。
图7 最大俯仰角对协同探测性能的影响Fig.7 Influence of maximum pitch angle on cooperative exploration performance
图8 最大滚转角对协同探测性能的影响Fig.8 Influence of maximum roll angle on cooperative exploration performance
图9 为月球车通信距离变化时各方法探测性能指标的变化曲线。 由图可知,随着月球车通信距离的增加,各方法的探测性能逐步提高,探测时间从35 s 左右降低到了15 s 左右,平均俯仰角与平均滚转角分别降低了1.5°与1°左右,月球车相对障碍物的最小距离增加了1 m 左右。 月球车通信距离的增加导致月球车相互之间协同的范围增大,这样在整个协同探测过程中减少了月球车之间通信间断的次数,因而避免了月球车对同一块区域进行重复探测的次数,故其协同探测性能随之增加。 其次,从图9 中结果可以看到,随着通信距离的线性增加,各方法协同探测性能的提高趋势逐步变缓,这说明通信距离只是影响协同探测性能的一个因素,不能仅通过增加通信距离的方式来提高协同探测性能。 结合图7 与图8 中的结果可知,协同探测性能的提高需结合月球车的自身性能以及影响协同能力的其他因素综合考虑。
图9 通信距离对协同探测结果的影响Fig.9 Influence of communication distance on cooperative detection results
5 结论
本文针对月面极端区域协同探测问题,提出了一种基于多智能体强化学习的协同探测方法,通过利用集中式训练分布式执行的学习架构,使得月球车可以通过与探测环境的充分交互学习到鲁棒高效的协同探测策略。 由仿真结果可知,本文所提方法在所有4 种性能指标上都优于其他2种方法,具有更好的探测性能。 此外,提升月球车自身爬坡与通信能力均能提高协同探测性能,但提升效果并非线性增加,协同探测性能的提升需综合考虑月球车的自身性能以及影响协同能力的其他因素。