Matlab多无人艇协同避碰情况下的仿真探索

作者是一名菜鸟研究生,目前的研究领域偏向于多机器人协同下的编队避碰及协同。近一年来开始探索在matlab上进行仿真。把目前的困难和瓶颈列出来,以供大家参考,少走弯路。

本文中有部分灵感来源于@RedGlass_lee 的大佬的 多机器人协同编队算法原理及实现 这篇文章。后续我对他文章里面的代码进行了调整。

目前多机器人方向上的研究包括多无人机(UAVs)、多无人车(UGVs)、及多无人艇(USVs).作者的研究领域主要集中于多无人艇的避碰和协同。

对于多无人艇的研究,面临的主要问题是无人艇在编队情况下:

1.如何保持无人艇的队形不变.

2.如果存在干扰的情况,如何在排除干扰后恢复编队的队形.

3.多无人艇的编队如何组织运动.

 针对上述问题,作者进行了一些探索。下面把仿真结果呈上,便于大家学习。

1.如何保持无人艇的队形不变这个问题,采用领导-跟随模型,设置一个领导者及四个跟随者,作者考虑计算跟随艇与其他艇之间的误差(领导艇不计算误差),利用误差的大小及x,y方向上的夹角进行计算速度v,使其跟随领导者前进。

2.这里作者假设,如果有一个攻击者进入编队内部,破坏编队的队形,编队在给攻击者让路的过程中,如何避开攻击者并且进行恢复队形的操作。作者这里提前设定了攻击者的进行路线,使其穿过编队。编队采用的人工势场法(Artificial Potenial Field)进行避障,即把攻击者看成移动障碍物进行避让。

如何进行让路之后的队形恢复,作者仍旧采用计算编队内队形的误差,调整编队内各个无人艇的速度值。使“掉队”的无人艇加速赶上自己应有的位置。

3.对于多无人艇的编队如何进行运动,作者以设定目标点的方式,使得目标点给领导者艇一个引力,领导者艇将引力转化为速度大小和方向进行运动。领导者避障采用的是人工势场法避障,不考虑编队中的艇的影响。

无人艇编队中的其他艇的速度由目标点给的引力+其他编队艇形成的障碍物阻力+存在的动态障碍物施加的阻力+静态障碍物的阻力合成的速度及方向。

该图为单艇人工势场跑出的结果。

该图为无人艇编队的行进路线(红色为领导者,其余为跟随者)

各个跟随者与无人艇之间的误差(效果显然不好)

由于局部最优问题没有解决好,导致规定时间内无法到达终点

该图为实时显示无人艇编队的行进轨迹及各个障碍物的位置

%%

下一步要解决的问题还有很多:

 1.靠人工势场得出的编队内部速度变化过大,算法原理有问题。
 2. 动态障碍物给定路线与无人艇编队进行对遇。
 3.实现编队被打散之后的快速恢复队形。


作者第一次发表blog,并且刚刚开始学习matlab,可能有一些表述不清的地方,请大家多多指正。另外作者的研究领域包括编队智能体的避碰及算法研究。如果有感兴趣的网友可以加作者qq:1131445521 进行交流。

后续解决上述问题后,会继续进行更新,就当一条探索的道路吧。

  • 16
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值