Main Content

stateSpaceReedsShepp

Reeds-Shepp ビークルの状態空間

R2019b 以降

説明

stateSpaceReedsShepp オブジェクトには、Reeds-Shepp 状態空間のパラメーターと状態が格納されます。これは、[x, y, θ] で表される状態ベクトルで構成されます。x と y は直交座標で、θ は向きの角度です。Reeds-Shepp 状態空間では、状態間の移動に関して回転半径の下限 (オブジェクトの MinTurningRadius プロパティで指定) および前進と後退のコスト (オブジェクトの ForwardCost プロパティと ReverseCost プロパティで指定) があります。

作成

説明

space = stateSpaceReedsShepp は、x、y、および θ に既定の状態の範囲を使用して Reeds-Shepp 状態空間オブジェクトを作成します。

sapce = stateSpaceReedsShepp(bounds) は、x、y、および θ の bounds を指定します。範囲内に収まるように範囲外の状態値は切り捨てられます。入力 bounds は、StateBounds プロパティの値を設定します。

プロパティ

すべて展開する

状態空間の名前。string として指定します。

この プロパティ は読み取り専用です。

状態空間の次元。正の整数として指定します。

状態変数の範囲。3 行 2 列の実数値の行列として指定します。

  • 1 行目は x 状態 (メートル単位) の下限と上限を指定します。

  • 2 行目は y 状態 (メートル単位) の下限と上限を指定します。

  • 3 行目は θ 状態 (ラジアン単位) の下限と上限を指定します。

データ型: double

最小回転半径 (メートル単位)。正のスカラーとして指定します。最小回転半径は、ビークルが一方向に最大ステアリングで旋回できる最小の円の半径です。

前進運動のコスト乗数。正のスカラーとして指定します。前進運動にペナルティを設定するにはコストを増やします。

後退運動のコスト乗数。正のスカラーとして指定します。後退運動にペナルティを設定するにはコストを増やします。

オブジェクト関数

copyCreate deep copy of state space object
distanceDistance between two states
enforceStateBoundsReduce state to state bounds
interpolate状態間の内挿
sampleGaussianSample state using Gaussian distribution
sampleUniformSample state using uniform distribution

すべて折りたたむ

ReedsShepp 状態空間を作成します。

ss = stateSpaceReedsShepp;

作成された状態空間を使用して、occupanyMap ベースの状態バリデーターを作成します。

sv = validatorOccupancyMap(ss);

例のマップから占有マップを作成し、マップの分解能を 1 メートルあたり 10 セルとして設定します。

load exampleMaps
map = occupancyMap(simpleMap,10);
sv.Map = map;

バリデーターの検証距離を設定します。

sv.ValidationDistance = 0.01;

状態空間の範囲を更新してマップ制限と同じにします。

ss.StateBounds = [map.XWorldLimits;map.YWorldLimits; [-pi pi]];

パス プランナーを作成し、最大接続距離を増やします。

planner = plannerRRT(ss,sv);
planner.MaxConnectionDistance = 0.3;

開始状態とゴール状態を設定します。

start = [0.5,0.5,0];
goal = [2.5,0.2,0];

既定の設定を使用してパスを計画します。

rng(100,'twister'); % repeatable result
[pthObj,solnInfo] = planner.plan(start,goal);

結果を可視化します。

show(map); 
hold on;
plot(solnInfo.TreeData(:,1),solnInfo.TreeData(:,2),'.-'); % tree expansion
plot(pthObj.States(:,1), pthObj.States(:,2),'r-','LineWidth',2) % draw path

Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 3 objects of type image, line.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2019b で導入