Main Content

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

setOccupancy

位置の占有確率を設定

R2019b 以降

説明

setOccupancy(map,xy,occval) は、xy で指定された各座標に占有値を割り当てます。occval は、xy と同じサイズの列ベクトル、またはすべての座標に適用されるスカラーにすることができます。

setOccupancy(map,xy,occval,'local') は、ローカル座標の入力配列 xy に占有値 occval をローカル座標として割り当てます。

setOccupancy(map,ij,occval,'grid') は、グリッド インデックスの入力配列 ij に占有値 occval[rows cols] として割り当てます。

validPts = setOccupancy(___) は、入力座標がマップの範囲に収まるかどうかを示す logical 値の n 要素ベクトルを出力します。

setOccupancy(map,bottomLeft,inputMatrix) は、ワールド座標の左下隅の位置を指定して占有値の行列を割り当てます。

setOccupancy(map,bottomLeft,inputMatrix,'local') は、ローカル座標の左下隅の位置を指定して占有値の行列を割り当てます。

setOccupancy(map,topLeft,inputMatrix,'grid') は、グリッド インデックスの左上のセルのインデックスと行列のサイズを指定して占有値の行列を割り当てます。

すべて折りたたむ

サイズが 10×10 メートルの空のマップを作成します。

map = occupancyMap(10,10,10);

新しい確率値を使用して特定のワールド位置の占有状態を更新し、マップを表示します。

x = [1.2; 2.3; 3.4; 4.5; 5.6];
y = [5.0; 4.0; 3.0; 2.0; 1.0];

pvalues = [0.2; 0.4; 0.6; 0.8; 1];

updateOccupancy(map,[x y],pvalues)
figure
show(map)

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

半径 0.5 m で占有領域をインフレートします。より大きな占有値が、より小さな値を上書きします。

inflate(map,0.5)
figure
show(map)

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

ワールド位置からグリッド位置を取得します。

ij = world2grid(map,[x y]);

グリッド位置の占有値を設定します。

setOccupancy(map,ij,ones(5,1),'grid')
figure
show(map)

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

入力引数

すべて折りたたむ

地図表現。occupancyMap オブジェクトとして指定します。このオブジェクトはビークルの環境を表現します。オブジェクトには、セルの占有確率を表す値をもつ行列グリッドが含まれています。1 に近い値は、セルに障害物の含まれる確率が高いことを表します。0 に近い値は、セルが占有されておらず障害物のない確率が高いことを表します。

ワールド座標。[x y] ペアの n 行 2 列の行列として指定します。ここで、n はワールド座標の数です。

データ型: double

グリッド位置。[rows cols] の形式で、[i j] ペアからなる n 行 2 列の行列として指定します。ここで、n はグリッド位置の数です。

データ型: double

確率占有値。xy または ij と同じサイズのスカラーまたは列ベクトルとして指定します。スカラー入力は xy または ij のすべての座標に適用されます。

0 に近い値は、セルが占有されておらず障害物のない確率が高いことを表します。

占有値。行列として指定します。値は 0 以上 1 以下で与えられます。

ワールド座標またはローカル座標での出力行列の左下隅の位置。2 要素ベクトル [xCoord yCoord] として指定します。位置は、構文に基づいてワールド座標かローカル座標のいずれかになります。

データ型: double

グリッドの左上隅の位置。2 要素ベクトル [iCoord jCoord] として指定します。

データ型: double

出力引数

すべて折りたたむ

有効なマップ位置。xy または ij と等しい長さの n 行 1 列の列ベクトルとして返されます。位置がマップの中であれば値 1 を返します。位置がマップの範囲の外であれば値 0 を返します。

制限

占有値は、制限された分解能 ±0.001 をもちます。値は対数オッズ表現を使用する int16 として格納されます。このデータ型では分解能が制限されますが、MATLAB® で大規模マップを格納するときにメモリを節約できます。setOccupancygetOccupancy の順に呼び出すと、戻り値が設定値と等しくない場合があります。詳細については、占有グリッドの対数オッズ表現の節を参照してください。

拡張機能

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

バージョン履歴

R2019b で導入