文章目录
个人总结
- vicsek团队,science-robotics文章,室外30架无人机swarm实现
- 实例化无人机模型,包括现实中存在的很多不确定性因素(通信时延、惯性、传感器更新频率、通信距离、传感器噪声、外部噪声)
- 使用类似于人工势场的算法,受力场来做的,包含:排斥力、速度一致、与障碍物的作用等,最后给出的是期望速度
- 定义了6个评价函数,加权相加得出最终的评价函数。用进化算法去优化参数。进化算法为:协方差矩阵自适应进化策略(CMA-ES)
- 仿真环境是一个正方形区域,可以添加静态障碍物。避开静态障碍物的方法是在障碍物边缘虚拟出一些欺骗无人机,他们以一定的速度向中心运动。
摘要
很少有协同算法在真实的硬件上测试,因为算法忽略了很多四旋翼重要的特点:运动约束、通信性能、时延和噪声、障碍物的明确表示。解决这些问题,会增加模型的复杂度,这需要合适的优化算法。
本文,我们提出一个应用于真正无人机的flocking算法,我们小心地选择各种参数和合适的函数,并且用进化算法来优化这些参数。
我们的算法可以在真实环境下稳定,甚至无人机有较高的速度。而且在有障碍物的环境下也是稳定的。最后的实验包含30架自组织的无人机。
Introduction
自然界的协同:
- 在有限时间内形成有序的结构,而且相互之间不碰撞
- 能够快速对外部的天敌或者障碍物做出反应
- 虽然这个系统是非常复杂的,但是却是完美优化的,而且是优雅的
人工模拟的三个原则:短距离排斥;中等距离速度一致;远距离相互吸引。
在现实中,有以下几点需要克服的:
- Reality gap. 在仿真环境下稳定的模型,放到现实中,可能就会出现震荡,因为存在时延、不确定性和动力学限制等因素。
- Adaptivity. 在开放空间中设计的算法,不适用于有限空间,或者有障碍物存在的情况。
- Scalability. 以特定的速度或者集群数量设计的模型,会不稳定,当用在更高的速度或者更大规模的集群时。
- High dimensionality. 在现实中运行稳定的模型,一定包含大量的参数和非线性特性,这些都需要去调整的,而且需要在一定的时间内调整好。
在科学文献中存在的swarm有三种:
- 基于室内运动捕捉系统
- 基于GPS的室外
- 基于视觉导航的
我们的模型中
- 速度一致项的相互影响距离或者量级是动态变化的,根据相对距离和相对速度来变化的。
- 最大速度差需要由相对距离来决定,距离近的必须有很小的速度差,距离远的可以有较大的的速度差。速度差的上界,我们使用的是一个acceleration-limited braking curve
我们的贡献有很大一部分是在实例模型上,也就是有特殊固定参数的飞机模型。有了模型并不够,还需要实例化它的参数值。我们将优化无人机的参数看做一个非常重要的构建模型的步骤。
根据达尔文的进化理论,自然界的系统已经将它可以调整的参数都调整到最佳了。随着人工智能的复杂度越来越高,我们可能需要将越来越多的参数优化过程加入到模型的构建过程中。
我们使用进化算法、population-based stochastic search methods 来优化参数。包括:遗传算法、进化策略、differential evolution、partical swarm optimization。进化策略中的**协方差矩阵自适应进化策略(CMA-ES)**是一个非常好的连续参数空间中的优化器。
本文的主要贡献有:
- a flocking model that explicitly treats motion constraints by maintaining an improved balance between distance and velocity difference;
- a method to design individual drone controllers by optimizing self-organized group-level behavior in a complex, noisy, real-world system
- simulation of this system for presenting its scalability for wide velocity ranges and group sizes
- the demonstration of the framework with a fleet of 30 quadcopters, performing fully autonomous, synchronized outdoor flughts with collective collision and obstacle avoidance in a confined space.
Flocking model instantiation through evolutionary optimization
我们的模型包含合适的进化矩阵(顺序参数和适应函数)。进化算法用来优化参数,使得flock coherence最大、速度最大和碰撞最小。
首先,方形无障碍区域,边长250m,flocking speed: 4,6,8m/s, 相应的最大速度:4,6,8m/s。放置100个无人机。参数向量构成总体的进化算法,参数向量是由10分钟长的仿真定义的。最终计算进化了150代,15000个适应进化是充分的。单次进化需要2~6天的计算,在超级计算机上。
进化的评价标准有六个,每个量的评分都是0~1:
- minimized collision risk;
- minimized collision with walls
- maximized velocity correlation
- velocity magnitude as close as possible to flocking speed
- maximized cluster size
- minimized number of disconnected agents
为了验证稳定性,对每个速度优化出来的参数又进行了100次随机试验,最后的得分比最高值略低,而且存在偶尔的碰撞现象。对于碰撞的评价函数必须是连续的或者不能是步长太大的函数,否则优化器就无法找到梯度方向。也就是说优化器不会将碰撞作为优先考虑,所以最后会出现偶尔碰撞的现象。对于这个问题有两种解决办法,我们最后选择的第二种。因为现实中,我们需要一个能够确保安全的系统,虽然可能会降低灵活性的。
- running the optimizer with a larger radius of collision or a larger communication delay to optimize to a solution where minimum interagent distances become larger
- increasing interagent distance (repulsion) manually after optimization with the harmless compromise of reducing overall velocity correlation in the enlarged flock.
Scalability in velocity
有加速度限制的速度一致项的最重要的特征是它的可扩展性。后面的实验,将速度提升:
速度 | 通信距离 | 边长 |
---|---|---|
16 | 160 | 500 |
32 | 320 | 1000 |
最后的评分照样很高。
Scalability in agent number with collective obstacle avoidance
因为是分布式的,所以数量是没有限制的,但是随着数量的增加,压力也会增加,比如大量的机群撞上墙的时候。类比到自然界,人群中出现慌乱的时候,很容易出事故。
Experimental results with outdoor flying robots
在实际中飞了30架无人机,对仿真优化的参数做了几处修改:
- 排斥力的权值加大了,为了防止碰撞
- 速