Main Content

LIDAR スキャンおよび姿勢からの占有マップの作成

関数buildMapは、占有マップをlidarScanオブジェクトとして作成するために LIDAR スキャンの読み取り値と関連付けられている姿勢を受け取り、occupancyMapを作成するために関連付けられている姿勢 [x y theta] を受け取ります。

ある駐車場のロボットに搭載されたセンサーから収集したスキャンと姿勢の推定を読み込みます。収集されたデータはlidarSLAMアルゴリズムを使用して相互に関連付けられます。このアルゴリズムはスキャン マッチングを実行してスキャンを関連付け、ロボットの軌跡全体で姿勢を調整します。スキャンと姿勢の長さが同じであることを確認してください。

load scansAndPoses.mat
length(scans) == length(poses)
ans = logical
   1

マップを作成します。関数buildMapでスキャンと姿勢を指定し、目的のマップ分解能 (1 メートルあたり 10 セル) と LIDAR の最大範囲 (19.2 メートル) を含めます。各スキャンは関連付けられた姿勢に追加され、占有グリッドの確率値が更新されます。

occMap = buildMap(scans,poses,10,19.2);
figure
show(occMap)
title('Occupancy Map of Garage')

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