Main Content

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

updateOccupancy

特定位置の占有確率を更新

R2019b 以降

説明

updateOccupancy(map3D,xyz,obs) は、occupancyMap3D オブジェクト map3D で指定した各 xyz 座標に観測値 obs を確率的に統合します。

すべて折りたたむ

occupancyMap3D オブジェクトを作成します。

map3D = occupancyMap3D;

地面を作成して占有値を 0 に設定します。

[xGround,yGround,zGround] = meshgrid(0:100,0:100,0);
xyzGround = [xGround(:) yGround(:) zGround(:)];
occval = 0;
setOccupancy(map3D,xyzGround,occval)

マップの特定のワールド位置に障害物を作成します。

[xBuilding1,yBuilding1,zBuilding1] = meshgrid(20:30,50:60,0:30);
[xBuilding2,yBuilding2,zBuilding2] = meshgrid(50:60,10:30,0:40);
[xBuilding3,yBuilding3,zBuilding3] = meshgrid(40:60,50:60,0:50);
[xBuilding4,yBuilding4,zBuilding4] = meshgrid(70:80,35:45,0:60);

xyzBuildings = [xBuilding1(:) yBuilding1(:) zBuilding1(:);...
                xBuilding2(:) yBuilding2(:) zBuilding2(:);...
                xBuilding3(:) yBuilding3(:) zBuilding3(:);...
                xBuilding4(:) yBuilding4(:) zBuilding4(:)];

新しい確率値を使用して障害物を更新し、マップを表示します。

obs = 0.65;
updateOccupancy(map3D,xyzBuildings,obs)
show(map3D)

マップ ファイルを作成する前に、citymap.ot という名前のマップ ファイルが現在のディレクトリに既に存在するか確認し、このファイルを削除します。

if exist("citymap.ot",'file')
    delete("citymap.ot")
end

マップを八分木ファイルとしてエクスポートします。

filePath = fullfile(pwd,"citymap.ot");
exportOccupancyMap3D(map3D,filePath)

入力引数

すべて折りたたむ

3 次元占有マップ。occupancyMap3D オブジェクトとして指定します。

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

確率観測値。数値スカラーまたは logical スカラーとして、あるいは xyz と同じサイズの n 行 1 列の列ベクトルとして指定します。

obs には 0 ~ 1 の値を指定できますが、obs が logical 配列の場合、関数は既定の観測値 0.7 (true) および 0.4 (false) を使用します。obs が数値スカラーまたは logical スカラーの場合、値は xyz のすべての座標に適用されます。

拡張機能

バージョン履歴

R2019b で導入