人工势场python_ROS及SLAM进阶教程(十一)多机器人编队人工势场法协同避障算法原理及实现...
多機器人協同編隊需要將理論和實踐緊密地結合起來,其應用包括編隊隊形生成、保持、變換和路徑規劃與避障等等都是基于圖論的理論基礎完成的。
自主避障功能是機器人編隊在各種環境中保持自身安全的重要功能,在編隊的基礎上加入避障的功能,機器人可掃描到一定范圍內的障礙物(包括其他機器人),在即將與之發生沖突時提前規避沖突,以保證自身的安全性,同時需要在避障的同時盡可能地保持隊形,選擇最優的避障路線以使障礙物對編隊穩定性的影響降至最低。
避障算法原理
機器人在實際運動過程中,會借助自身傳感器(如激光雷達)對周圍環境進行掃描檢測,如下圖所示
假設在k時刻機器人可掃描到一定范圍內的障礙物坐標x_{obs}(包括其他機器人),障礙物會對機器人jj的速度產生一個斥力影響RR,RR滿足:
其中M為障礙物個數,α=\frac{\frac{1}{d_j(k)}-\frac{1}{d_M}}{\delta?d},d_j(k)=\Vert x_R–x_j(k) \Vert,d_M為探測距離,\delta為一常數,在此時刻避障響應R(k)R(k)會對機器人的速度控制產生一個影響,此時編隊中領航者控制模型如下:
其中\delta為一常數,而跟隨者的控制算法為:
這個影響使得機器人在最大限度保持原有編隊的基礎上能夠有效躲避障礙物,并且會隨著障礙物距離的變近而變大,從而保證機器人的安全。
避障算法仿真
在前文編隊一致性算法的仿真上《ROS及SLAM進階教程(八)多機器人協同編隊算法原理及實現》加入上述避障算法,在編隊的任務路徑上設置障礙物,使障礙物干擾機器人的正常任務,觀察機器人編隊的運動結果,目的是使編隊在躲避障礙物的同時盡可能保持編隊穩定性。
MATLAB仿真結果如下所示:
從上圖可以看出,障礙物(即圖中叉號所在)對編隊產生了影響,可以看出編隊在安全范圍內檢測到了障礙物后進行避障運算躲開了障礙物,但很快又恢復穩定,編隊能繼續保持穩定地執行任務。這種避障方法對于編隊協同算法的效果受其實時恢復的影響。
以上是關于多機器協同編隊的人工勢場法算法原理講解。
碼字不易,喜歡的話請點贊收藏關注哦,您的支持是博主最大的動力。
本文轉載自CSDN,原文鏈接:https://blog.csdn.net/qq_33742147/article/details/106249387
總結
以上是生活随笔為你收集整理的人工势场python_ROS及SLAM进阶教程(十一)多机器人编队人工势场法协同避障算法原理及实现...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv学习十二(车牌识别)
- 下一篇: 【Python实现杨辉三角】