Main Content

plan

RRT* パス プランナーを使用して車両パスを計画

説明

refPath = plan(planner,startPose,goalPose) は入力 pathPlannerRRT オブジェクトを使用して、startPose から goalPose への車両パスを計画します。このオブジェクトは、最適な RRT* (Rapidly Exploring Random Tree) パス プランナーを構成します。

[refPath,tree] = plan(planner,startPose,goalPose) は探索木 tree も返します。

すべて折りたたむ

RRT* アルゴリズムを使用して駐車スポットへの車両パスを計画します。

駐車場のコストマップを読み込みます。コストマップをプロットし、駐車場、および車両が回避するインフレート エリアを確認します。

data = load('parkingLotCostmapReducedInflation.mat');
costmap = data.parkingLotCostmapReducedInflation;
plot(costmap)

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 2 objects of type image, patch. This object represents Inflated Areas.

パス プランナーの開始姿勢とゴール姿勢を [x, y, Θ] ベクトルとして定義します。位置 (x,y) のワールド単位はメートルです。方向値 Θ のワールド単位は度です。

startPose = [11, 10, 0]; % [meters, meters, degrees]
goalPose  = [31.5, 17, 90];

RRT* パス プランナーを作成して、開始姿勢からゴール姿勢までのパスを計画します。

planner = pathPlannerRRT(costmap);
refPath = plan(planner,startPose,goalPose);

計画されたパスをプロットします。

plot(planner)

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 12 objects of type image, patch, scatter, line, polygon. These objects represent Inflated Areas, Planned Path, Desired Goal Pose.

入力引数

すべて折りたたむ

RRT* パス プランナー。pathPlannerRRT オブジェクトとして指定します。

車両の初期姿勢。[x, y, Θ] ベクトルとして指定します。x と y はメートルなどのワールド単位です。Θ の単位は度です。

車両のゴール姿勢。[x, y, Θ] ベクトルとして指定します。x と y はメートルなどのワールド単位です。Θ の単位は度です。

車両がゴール姿勢に到達するのは、パス内の最終姿勢が plannerGoalTolerance プロパティの範囲内であるときです。

出力引数

すべて折りたたむ

計画された車両パス。計画されたパスに沿った参照姿勢が含まれた driving.Path オブジェクトとして返されます。プランニングが失敗した場合、パスに姿勢は含まれません。コストマップの更新後もパスが有効かどうかを確認するには、関数 checkPathValidity を使用します。

探索木。digraph オブジェクトとして返されます。tree 内のノードは、探索された車両姿勢を表します。tree 内のエッジは、接続されたノード間の距離を表します。

拡張機能

バージョン履歴

R2018a で導入