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