?一、獲取代碼方式
獲取代碼方式1:
完整代碼已上傳我的資源:【三維路徑規(guī)劃】基于matlab人工勢場算法無人機(jī)三維路徑規(guī)劃【含Matlab源碼 168期】
獲取代碼方式2:
付費(fèi)專欄Matlab路徑規(guī)劃(初級版)
備注:
點(diǎn)擊上面藍(lán)色字體付費(fèi)專欄Matlab路徑規(guī)劃(初級版),掃描上面二維碼,付費(fèi)29.9元訂閱海神之光博客付費(fèi)專欄Matlab路徑規(guī)劃(初級版),憑支付憑證,私信博主,可免費(fèi)獲得1份本博客上傳CSDN資源代碼(有效期為訂閱日起,三天內(nèi)有效);
點(diǎn)擊CSDN資源下載鏈接:1份本博客上傳CSDN資源代碼
?二、無人機(jī)簡介
0 引言
隨著現(xiàn)代技術(shù)的發(fā)展,飛行器種類不斷變多,應(yīng)用也日趨專一化、完善化,如專門用作植保的大疆PS-X625無人機(jī),用作街景拍攝與監(jiān)控巡察的寶雞行翼航空科技的X8無人機(jī),以及用作水下救援的白鯊MIX水下無人機(jī)等,決定飛行器性能主要是內(nèi)部的飛控系統(tǒng)和外部的路徑規(guī)劃問題。就路徑問題而言,在具體實(shí)施任務(wù)時(shí)僅靠操作員手中的遙控器控制無人飛行器執(zhí)行相應(yīng)的工作,可能會(huì)對操作員心理以及技術(shù)提出極高的要求,為了避免個(gè)人操作失誤,進(jìn)而造成飛行器損壞的危險(xiǎn),一種解決問題的方法就是對飛行器進(jìn)行航跡規(guī)劃。
飛行器的測量精度,航跡路徑的合理規(guī)劃,飛行器工作時(shí)的穩(wěn)定性、安全性等這些變化對飛行器的綜合控制系統(tǒng)要求越來越高。無人機(jī)航路規(guī)劃是為了保證無人機(jī)完成特定的飛行任務(wù),并且能夠在完成任務(wù)的過程中躲避各種障礙、威脅區(qū)域而設(shè)計(jì)出最優(yōu)航跡路線的問題。
1 常見的航跡規(guī)劃算法
圖1 常見路徑規(guī)劃算法
文中主要對無人機(jī)巡航階段的航跡規(guī)劃進(jìn)行研究,假設(shè)無人機(jī)在飛行中維持高度與速度不變,那么航跡規(guī)劃成為一個(gè)二維平面的規(guī)劃問題。在航跡規(guī)劃算法中,A算法計(jì)算簡單,容易實(shí)現(xiàn)。在改進(jìn)A算法基礎(chǔ)上,提出一種新的、易于理解的改進(jìn)A算法的無人機(jī)航跡規(guī)劃方法。傳統(tǒng)A算法將規(guī)劃區(qū)域柵格化,節(jié)點(diǎn)擴(kuò)展只限于柵格線的交叉點(diǎn),在柵格線的交叉點(diǎn)與交叉點(diǎn)之間往往存在一定角度的兩個(gè)運(yùn)動(dòng)方向。將存在角度的兩段路徑無限放大、細(xì)化,然后分別用兩段上的相應(yīng)路徑規(guī)劃點(diǎn)作為切點(diǎn),找到相對應(yīng)的組成內(nèi)切圓的圓心,然后作弧,并求出相對應(yīng)的兩切點(diǎn)之間的弧所對應(yīng)的圓心角,根據(jù)下式計(jì)算出弧線的長度
式中:R———內(nèi)切圓的半徑;
α———切點(diǎn)之間弧線對應(yīng)的圓心角。
?三、人工勢場算法簡介
人工勢場算法之所以無法適應(yīng)復(fù)雜的環(huán)境, 是因?yàn)槌饬鱿禂?shù)、引力場系數(shù)在計(jì)算時(shí)是固定不變的。
1 人工勢場法基本原理
人工勢場法的實(shí)質(zhì)是對無人機(jī)的飛行區(qū)域人為地定義勢場[17], 該勢場為地圖中出現(xiàn)的障礙物斥力場和終點(diǎn)引力場的向量疊加。傳統(tǒng)人工勢場的定義如下:
假設(shè)無人機(jī)的位置為X= (x, y, z) , 則目標(biāo)點(diǎn)引力場與無人機(jī)電子之間的電勢場為
式中:Katt為勢場增益系數(shù);XG為目標(biāo)點(diǎn)的位置。
定義Fatt (X) 為引力勢場的引力,
定義障礙物的斥力勢場為
定義障礙物的斥力為
式中:Frep為障礙物對無人機(jī)的斥力勢場系數(shù);X-X0的單位是m, 表示移動(dòng)的無人機(jī)到各個(gè)障礙物的動(dòng)態(tài)距離;ρ0為障礙物的影響距離。所以移動(dòng)的無人機(jī)像一個(gè)電子一樣, 它的總勢場為無人機(jī)與障礙物各個(gè)勢場的和:
對無人機(jī)的作用力Ftotal為
由式 (6) 可以算出無人機(jī)的下一步運(yùn)動(dòng)軌跡。
雖然人工勢場法有很多優(yōu)點(diǎn), 但是在實(shí)際飛行中, 環(huán)境比較復(fù)雜的時(shí)候, 經(jīng)常出現(xiàn)障礙物在目標(biāo)位置附近的情況, 當(dāng)無人機(jī)向目標(biāo)點(diǎn)飛行時(shí), Fatt減小Frep增大, 此時(shí)會(huì)出現(xiàn)無人機(jī)在終點(diǎn)區(qū)域拐彎的情況;當(dāng)無人機(jī)處在障礙物運(yùn)動(dòng)時(shí), 可能出現(xiàn)無人機(jī)處在合力為零點(diǎn)的情況, 因而無人機(jī)不能到達(dá)目標(biāo)點(diǎn)。
?四、部分源代碼
close all
clear all
tic
%%
%==========================================================================
%初始化
%==========================================================================
P0 = [0;0;0];%起點(diǎn)位置
n = 7;%障礙個(gè)數(shù)
Tar = [10;10;10];%%目標(biāo)點(diǎn)坐標(biāo)
Obs = [10 10 10;1 1.2 1;3 2.5 3;4 4.5 4;3 6 3;6 2 6;6 6 6;8 8.5 8]';%目標(biāo)點(diǎn)與障礙位置 第一列是目標(biāo)點(diǎn)
%%
figure(1);
plot3(Obs(1,2:8),Obs(2,2:8),Obs(3,2:8),'o');hold on;
plot3(Obs(1,1),Obs(2,1),Obs(3,1),'O');
for i=1:5
po = i;%障礙影響距離
[P,K]=shi(po,Tar,n,P0,Obs);
%==========================================================================
%畫圖
%==========================================================================
switch i
case 1
plot3(P(1,1:K),P(2,1:K),P(3,1:K),'.b');
case 2
plot3(P(1,1:K),P(2,1:K),P(3,1:K),'.r');
case 3
plot3(P(1,1:K),P(2,1:K),P(3,1:K),'.g');
case 4
plot3(P(1,1:K),P(2,1:K),P(3,1:K),'.m');
otherwise
plot3(P(1,1:K),P(2,1:K),P(3,1:K),'.k');
end
end
toc
?五、運(yùn)行結(jié)果
?六、matlab版本及參考文獻(xiàn)
1 matlab版本
2014a
2 參考文獻(xiàn)
[1]焦陽.基于改進(jìn)蟻群算法的無人機(jī)三維路徑規(guī)劃研究[J].艦船電子工程. 2019,39(03)文章來源:http://www.zghlxwxcb.cn/news/detail-799896.html
3 備注
簡介此部分摘自互聯(lián)網(wǎng),僅供參考,若侵權(quán),聯(lián)系刪除文章來源地址http://www.zghlxwxcb.cn/news/detail-799896.html
到了這里,關(guān)于【APF三維路徑規(guī)劃】人工勢場算法無人機(jī)三維路徑規(guī)劃【含Matlab源碼 168期】的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!