无人机集群编队控制算法,二维,三维空间MATALB仿真

引言

本人研究生期间,主要研究无人机集群编队,目标追踪,避障,路径规划等,参考了大量论文,也走了不少弯路,今天将一些心得写出来,希望能够帮到师弟师妹们,早发论文,早日毕业。

无人机集群编队

什么叫编队?就是几架无人机保持一个特定的队形移动而已。

什么叫集群?就是很多无人机协调一致的运动,这里面用到了一致性思想。

代码中如何体现?管它什么无人机,无人艇,无人飞船,全部都是质点。
如果考虑到通信,划分通信范围;如果考虑到避障,划分防碰撞范围。本质来说都是以无人机质点为中心得一个圆(二维)或者一个球(三维)。

很多论文中会提出一些算法的背景,比如受到生物集群迁徙等行为的影响,牛群,羊群,蜜蜂等等,论文中这么写可以,代码实现要抓住本质!

另外,我这里着重介绍集群,或许有很多同学研究的只是少量的几个无人机编队,我也希望你们能够看下去,因为多的无人机都能编队了,少的当然更可以了。

---------------- 介绍两个人,或者说是两种算法 ----------------

Reynlod和Olfati-Saber,搞过集群,看过相关论文的都知道他俩,也很熟悉下面这两图吧,图2是我代码跑出来的,标准三维集群。

请添加图片描述
Biods模型
请添加图片描述
三维集群模型

1.首先介绍Biods模型的思想:分离,内聚,对齐

通俗的来说,就是靠的太近的无人机彼此分离,以免碰撞;靠的太远的无人机彼此吸引,以免分散;速度对齐,保持一致,这就是一致性的思想。

这是一种局部的算法,每一架无人机通过其通信范围内的邻居无人机的运动状态,适时调整自身的状态。

其代码实现的本质为:向量
注意,下面的位置和速度都是向量

位置更新,根据当前时刻无人机i的位置向量和当前时刻无人机邻居j的位置向量,求得下一时刻无人机i的位置

Pi(t+1) = Pi_(t) + (Pi_(t)-Pj_(t))/f(||Pi_(t)-Pj_(t)||)
Vi_(t+1) = Vi_(t) + (Vi_(t)-Vj_(t))/g(||Vi_(t)-Vj_(t)||)

速度一样,只是要调参。

Vi_(t+1) = Vi_(t) + (Vi_(t)-Vj_(t))/g(||Vi_(t)-Vj_(t)||)

至于无人机之间怎么避碰,是同样的原理。注意,无人机j是无人机i的邻居,什么叫邻居?通信范围内的;那么避碰的时候呢?对,就是防碰撞范围内的。

2.介绍Olfati-Saber模型的思想

另外,介绍一个重要的概念,什么叫势能?在代码中,无人机是怎么运动起来的呢?

所谓的势能,其实就是距离。MTALB仿真,不论是二维还是三维,首先生成一些随机散乱的点,

N = 20%数量
p = 2*rand(2,N);  %位置

那么计算各个点之间的距离,然后自己设置一个势能函数f,就可以求得势能。

F = f(||p(i)-p(j)||)

然后用一个方法就去降低势能,比如常用的梯度下降算法等,就可以不断地迭代,求得无人机每一次的位置。
然后,画出这些位置,无人机就运动起来了。

人工势场法也就是这个意思

看到这里,同学们肯定觉得我说了一些废话,既不给你们看代码,也不给你们看具体的公式。我只是想先让你们理解,树立一个意识,因为论文是需要创新的,创新点在哪里,就是在这些公式里面,很多论文换一个势能函数,换几个公式就是创新了!!!

别着急,后面我会把代码和公式给大家。

动力学方程:
在这里插入图片描述
无人机邻居集合:
在这里插入图片描述
无人机稳定时状态:
在这里插入图片描述
控制方程:
在这里插入图片描述
势能函数:
在这里插入图片描述
平滑函数:
在这里插入图片描述
总势能:
在这里插入图片描述
后面还有很多公式,我就不一一粘贴了,因为我的本意不是将论文的一些公式摆出来,大家自己去找论文看就好了,我是想要讲解一下我的心得。

至于大家最关心的代码问题,如果需要,我会给大家。

无人机避障

避障的本质:就是障碍物给无人机一个反向的作用力。

就像我之前写的,在代码中一切都是质点,只是有些具有范围。
障碍物就是有范围的质点,我们可以获取到它的坐标,怎么获取?感知范围。怎么避障?一个反向的作用力,更新位置。

看到这,还是一脸懵逼么。MATLAB操作的都是矩阵,这个是核心,我们做的研究,只涉及到位置矩阵,速度矩阵,这也是核心。

至于公式,代码,我后期会更新。

无人机目标追踪

目标追踪的本质:就是目标给无人机一个正向的作用力。

和避障相反,无人机感知到目标之后会给其一个正向吸引的作用力。

动态目标怎么办?
要有预测。

此时需要用到的算法有,kalman滤波算法及其衍生算法KF-kalman,UKF-kalman,DKF-kalman。如果是做无人机集群,建议用DKF-kalman。

一致性思想的本质:就是降低差异性,通过邻居的动作调整自身,最后所有无人机协调一致运动。
这一思想在无人机协同控制方程中有体现,在分布式卡尔曼滤波算法中也有体现。

最后,给大家看一下我做的无人机集群的仿真结果吧。

在这里插入图片描述
关于目标追踪,有单目标追踪和多目标追踪。这部分我下次再介绍。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐