このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
occupancyMap
説明
occupancyMap
は、2 次元占有グリッド マップ オブジェクトを作成します。占有グリッドの各セルは、セルの占有確率を表す値をもちます。1 に近い値は、セルに障害物の含まれる確率が高いことを表します。0 に近い値は、セルが占有されておらず障害物のない確率が高いことを表します。
占有マップは、パス計画などのナビゲーション アルゴリズムで使用されます (plannerRRT
を参照)。また、衝突のないパスの検出、衝突回避、位置推定の計算を行う地図作成アプリケーションでも使用されます (monteCarloLocalization
を参照)。特定の用途に合わせて占有マップを修正できます。
occupancyMap
オブジェクトは、ローカル座標、ワールド座標およびグリッド インデックスをサポートします。インデックス (1,1)
をもつ最初のグリッド位置は、グリッドの左上隅で開始します。
occupancyMap
クラスを使用して、実世界のさまざまな障害物を表す確率値をもつ 2 次元の環境マップを作成します。セルの正確な確率値を指定するか、レーザー スキャナーなどのセンサーからの観測値を含めることができます。
各グリッド セルの占有状態を推定するために、バイナリ ベイズ フィルターを使用して確率値が格納されます。対数オッズ表現が使用され、値が int16
として格納されます。これにより、マップのストレージ サイズが削減され、リアルタイム アプリケーションが可能になります。
作成
構文
説明
は、指定されたグリッド分解能 (1 メートルあたりのセル数) で占有マップを作成します。map
= occupancyMap(width
,height
,resolution
)resolution
は、Resolutionプロパティを設定します。
は、指定された行数と列数、および分解能 (1 メートルあたりのセル数) で占有マップを作成します。map
= occupancyMap(rows
,cols
,resolution
,'grid')rows
と cols
の値は、GridSizeプロパティを設定します。
は、行列 map
= occupancyMap(p
)p
の値から占有マップを作成します。グリッド サイズは行列のサイズと一致し、各セルの確率値は行列の位置から解釈されます。
は、指定した行列と分解能 (1 メートルあたりのセル数) から占有マップを作成します。map
= occupancyMap(p
,resolution
)
map = occupancyMap(
は、別の sourcemap
)occupancyMap
オブジェクトの値を使用してオブジェクトを作成します。
map = occupancyMap(
は、別の sourcemap
,resolution
)occupancyMap
オブジェクトの値を使用してオブジェクトを作成しますが、指定された分解能をもつように行列をリサンプリングします。
入力引数
プロパティ
オブジェクト関数
checkOccupancy | Check if locations are free or occupied |
copy | Create copy of 2-D occupancy map |
getOccupancy | Get occupancy probability of locations |
grid2local | グリッド インデックスをローカル座標に変換 |
grid2world | グリッド インデックスをワールド座標に変換 |
inflate | Inflate each occupied location |
insertRay | Insert ray from laser scan observation |
local2grid | ローカル座標をグリッド インデックスに変換 |
local2world | ローカル座標をワールド座標に変換 |
move | Move map in world frame |
occupancyMatrix | 占有マップを行列に変換 |
raycast | Compute cell indices along a ray |
rayIntersection | Find intersection points of rays and occupied map cells |
setOccupancy | Set occupancy probability of locations |
show | Display 2-D occupancy map |
syncWith | Sync map with overlapping map |
updateOccupancy | Update occupancy probability at locations |
world2grid | Convert world coordinates to grid indices |
world2local | ワールド座標をローカル座標に変換 |
例
制限
占有値は、制限された分解能 ±0.001 をもちます。値は対数オッズ表現を使用する int16
として格納されます。このデータ型では分解能が制限されますが、MATLAB® で大規模マップを格納するときにメモリを節約できます。setOccupancy
、getOccupancy
の順に呼び出すと、戻り値が設定値と等しくない場合があります。詳細については、占有グリッドの対数オッズ表現の節を参照してください。
メモリ サイズによる制限がある場合は、代わりに binaryOccupancyMap
の使用を検討してください。バイナリ占有マップは、バイナリ値でより少ないメモリを使用しますが、それでも Navigation Toolbox™ のアルゴリズムとその他のアプリケーションで機能します。
拡張機能
バージョン履歴
R2019b で導入
参考
binaryOccupancyMap
| mobileRobotPRM
(Robotics System Toolbox) | controllerPurePursuit
(Robotics System Toolbox) | rosReadOccupancyGrid
(ROS Toolbox) | rosWriteOccupancyGrid
(ROS Toolbox)