[経路計画] matlab A_star アルゴリズム (アイランド マップ) に基づく UAV の 2 次元障害物回避最短経路計画 [Matlab ソース コード 2774 を含む]

⛄1. A_star アルゴリズムの概要

1 スターアルゴリズムとその適用状況
探索作業中に抽出され、探索プロセスを簡略化するために役立つ情報をヒューリスティック情報と呼びます。ヒューリスティック情報は、洗練され、定式化された後、ヒューリスティック関数に変換されます。ターゲット頂点間の距離は、開始頂点からターゲット頂点までの推定時間を表すこともできます。さまざまな状況を記述し、さまざまな問題を解決するために使用されるヒューリスティック関数は異なります。デフォルトでは、H ( n) という名前のヒューリスティック関数がサポートされています。ヒューリスティック機能による探索はヒューリスティック探索アルゴリズムと呼ばれ、救助ロボットの経路計画において、A Star アルゴリズムは探索タスクの環境条件を組み合わせて探索範囲を狭め、探索効率を向上させることができます。探索プロセスはより指向性があります。かつインテリジェントであるため、A Star アルゴリズムはロボットの経路計画に関連する分野により適切に適用できます。

2 A Star アルゴリズムの流れ
2.1 節に引き続き、A Star アルゴリズムのヒューリスティック機能を使用して、始点から目標点までの距離を推定し、探索範囲を狭め、探索効率を向上させます。 A Star アルゴリズムは次のとおりです: F (n) =G (n) +H (n) 、ここで F (n) は開始点からノード n を介して目標点までの推定関数、G (n) は実際の移動を表します開始点から n マス目までの移動コスト、H (n) は n マス目からゴール点まで移動する推定移動コストを表します。

図 2 に示すように、探索対象エリアを正方形のグリッドに分割し、各グリッドの状態を歩行可能と歩行不可能に分け、通行可能な各マス目のコスト値を 1 として、対角線に沿って移動できます (斜め移動は
ここに画像の説明を挿入
図 2 スター アルゴリズムのパス プランニングステップ
1: オープンとクローズという名前の 2 つのリストを定義します。オープン リストは、パスのブロックを検索するために考慮されるすべてのリストを保存するために使用されます。閉じたリストは、考慮されなくなったブロックを保存するために使用されます。
ステップ 2: A は開始点、B はターゲット点、開始点 A から開始し、開始点 A を開いたリストに追加します。閉じたリストは空に初期化されます;
ステップ 3: A に隣接する正方形 n (n は A の子点と呼ばれ、A は n の親点と呼ばれます) を表示し、通行可能な正方形が開いたリストに追加され、そのF、G、H の値が計算されます。A を入力してオープンから削除し、クローズド リストに追加します。
ステップ 4: オープン リストが空かどうかを判断し、空の場合は検索が失敗しました。そうでない場合は、次のステップに進みます。
ステップ 5:開いたリストから n を削除し、閉じたリストに追加し、n がターゲット頂点 B であるかどうかを判断し、はいの場合、検索は成功し、アルゴリズムは終了します; ステップ 6: そうでない場合、n のサブ頂点の検索を拡張します
。 :
a. サブ頂点が通過可能でない場合、または閉じたリストにある場合は、無視します。
b. 子頂点が開いたリストにない場合、それは開いたリストに追加され、現在の正方形は次のように設定されます。親、および正方形の F、G、H 値が記録されます。ステップ 7: ステップ 4 にジャンプします。ステップ 8: ループの終了、パスを
保存
します。終点から開始して、各正方形は親ノードに沿って移動します。 A Star
ここに画像の説明を挿入
アルゴリズムのフローチャートを図 3 に示します。

⛄ 2. ソースコードの一部

clc;
クリア
すべて閉じる

チック

%% マップを描画します

% グリッド マップの行数と列数を定義します
m = 150;
n = 150;
% m 行 n 列をマップします

start = [10, 20]; % 開始ノード
target = [130, 80]; % 終了ノード
% obs = [6, 1; 6, 2; 6, 3; 6, 4; 6, 5; 6, 6 ; 6, 7; 5, 5; 4, 5; 3, 5]; 障害物面積%

obs = TrunToGridMap(m, n);

% 画格子
for i = 0 : 5 : m
Lot([0, n], [i, i], 'k', 'handlevisibility', 'off');
持続する;
終わり

for j = 0 : 5 : n
Lot([j, j], [0, m], 'k', 'handlevisibility', 'off');
終わり

⛄3. 走行結果

ここに画像の説明を挿入

⛄4. Matlab のバージョンとリファレンス

1 MATLAB バージョン
2014a

2 参考文献
[1] Qian Cheng、Xu Yingqiu、Tan Yingzi. Application of A Star Algorithm in Path Planning in RoboCup Rescue Simulation [J]. Journal of Command and Control. 2017,3(03)

3 備考 はじめ
に この部分はインターネットから取得したものであり、参照のみを目的としています。侵害がある場合は、連絡して削除してください。

おすすめ

転載: blog.csdn.net/TIQCmatlab/article/details/131503684