メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

stateSpaceSE2

R2026a

説明

stateSpaceSE2 オブジェクトには、SE(2) 状態空間のパラメーターと状態が格納されます。これは、[x, y, θ] で表される状態ベクトルで構成されます。x と y は直交座標で、θ は向きの角度です。このオブジェクトでは、距離の計算にはユークリッド距離が使用され、状態の並進と回転の計算には線形内挿が使用されます。

作成

説明

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

例

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

プロパティ

すべて展開する

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

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

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

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

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

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

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

データ型: double

x と y の距離の計算に適用される重み。非負の実数のスカラーとして指定します。

このオブジェクトでは、次のように距離が計算されます。

d=(wxy(dx2+dy2))+wθdθ2

wxy は x 座標と y 座標に適用される重み、wθ は θ 座標に適用される重みです。dx、dy、dθ は、それぞれ x、y、θ の方向の距離です。

データ型: double

θ の距離の計算に適用される重み。非負の実数のスカラーとして指定します。

このオブジェクトでは、次のように距離が計算されます。

d=(wxy(dx2+dy2))+wθdθ2

wxy は x 座標と y 座標に適用される重み、wθ は θ 座標に適用される重みです。dx、dy、dθ は、それぞれ x、y、θ の方向の距離です。

データ型: 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

例

すべて折りたたむ

SE(2) 状態空間を作成します。

ss = stateSpaceSE2;

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

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'); % for repeatable result
[pthObj,solnInfo] = planner.plan(start,goal);

結果を可視化します。

map.show; 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 で導入

すべて展開する