多机器人编队人工势场法协同避障算法原理及实现

多机器人编队(二)多机器人编队人工势场法协同避障算法原理及实现


多机器人协同编队需要将理论和实践紧密地结合起来,其应用包括编队队形生成、保持、变换和路径规划与避障等等都是基于图论的理论基础完成的。

详细请参考多机器人编队(一)多机器人协同编队算法原理及实现

自主避障功能是机器人编队在各种环境中保持自身安全的重要功能,在编队的基础上加入避障的功能,机器人可扫描到一定范围内的障碍物(包括其他机器人),在即将与之发生冲突时提前规避冲突,以保证自身的安全性,同时需要在避障的同时尽可能地保持队形,选择最优的避障路线以使障碍物对编队稳定性的影响降至最低。

避障算法原理

机器人在实际运动过程中,会借助自身传感器(如激光雷达)对周围环境进行扫描检测,如下图所示
人工势场法算法原理
假设在k时刻机器人可扫描到一定范围内的障碍物坐标 x o b s x_{obs} xobs(包括其他机器人),障碍物会对机器人 j j j的速度产生一个斥力影响 R R R R R R满足:
R j ( k ) = ∑ l = 1 M α ( x j ( k ) − x o b s l ) R_j(k)=\sum^M_{l=1}\alpha(x_j(k)-x_{obs}^l) Rj(k)=l=1Mα(xj(k)xobsl)
其中 M M M为障碍物个数, α = 1 d j ( k ) − 1 d M δ ⋅ d \alpha=\frac{\frac{1}{d_j(k)}-\frac{1}{d_M}}{\delta\cdot d} α=δddj(k)1dM1, d j ( k ) = ∥ x R − x j ( k ) ∥ d_j(k)=\|x_R-x_j(k)\| dj(k)=xRxj(k) d M d_M dM为探测距离, δ \delta δ为一常数,在此时刻避障响应 R ( k ) R(k) R(k)会对机器人的速度控制产生一个影响,此时编队中领航者控制模型如下 u N ( k ) = m + k ⋅ D ( k ) + ∑ i ∈ N i a N i r N i ( k ) + β ⋅ R N ( k ) u_N(k)=m+k\cdot D(k)+\sum_{i\in N_i}a_{Ni}r_{Ni}(k)+\beta\cdot R_N(k) uN(k)=m+kD(k)+iNiaNirNi(k)+βRN(k)其中 β \beta β为一常数,而跟随者的控制算法为 u i ( k ) = ε ∑ j ∈ N i a i j ( x j ( k ) − x i ( k ) − r i j ( k ) ) + β ⋅ R i ( k ) u_i(k)=\varepsilon\sum_{j\in N_i}a_{ij}(x_j(k)-x_i(k)-r_{ij}(k))+\beta\cdot R_i(k) ui(k)=εjNiaij(xj(k)xi(k)rij(k))+βRi(k)这个影响使得机器人在最大限度保持原有编队的基础上能够有效躲避障碍物,并且会随着障碍物距离的变近而变大,从而保证机器人的安全。

避障算法仿真

在前文编队一致性算法的仿真上(ROS及SLAM进阶教程(八)多机器人协同编队算法原理及实现)加入上述避障算法,在编队的任务路径上设置障碍物,使障碍物干扰机器人的正常任务,观察机器人编队的运动结果,目的是使编队在躲避障碍物的同时尽可能保持编队稳定性。
MATLAB仿真结果如下所示
编队仿真
从上图可以看出,障碍物(即图中叉号所在)对编队产生了影响,可以看出编队在安全范围内检测到了障碍物后进行避障运算躲开了障碍物,但很快又恢复稳定,编队能继续保持稳定地执行任务。这种避障方法对于编队协同算法的效果受其实时恢复的影响。

MATLAB仿真源码详见多机器人编队及避障算法.zip
ROS下python源码详见
Ros-Formation-and-Obstacle-Avoidance

以上是关于多机器协同编队的人工势场法算法原理讲解。
码字不易,喜欢的话请点赞收藏关注哦,您的支持是博主最大的动力。

博主有两年多ROS的使用经验,目前仍在不停研究中。本系列多机器人编队将结合论文讲解多机器人编队的算法原理、稳定性分析等研究领域,持续不断更新中。如果大家有相关问题或发现作者漏洞欢迎私戳,同时欢迎关注收藏。
同时欢迎关注博主Git:
https://github.com/LiHongbo97

  • 24
    点赞
  • 231
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 26
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RedGlass_lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值