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 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 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 で導入