Main Content

likelihoodFieldSensorModel

距離センサー用の尤度フィールド センサー モデルの作成

R2019b 以降

説明

likelihoodFieldSensor オブジェクトは、距離センサー用の尤度フィールド センサー モデル オブジェクトを作成します。このオブジェクトには、特定のセンサー モデル パラメーターが含まれます。このオブジェクトを使用して、monteCarloLocalization オブジェクトにモデル パラメーターを指定できます。

作成

説明

lf = likelihoodFieldSensorModel は、距離センサー用の尤度フィールド センサー モデル オブジェクトを作成します。

プロパティ

すべて展開する

マップを表す占有グリッド。binaryOccupancyMap オブジェクトとして指定します。このオブジェクトは、ビークルの環境を、障害物を true (1)、フリー位置を false (0) として示すバイナリ値のグリッドとして表します。

ビークルの座標系を基準とした距離センサーの姿勢。3 要素ベクトル [x y theta] として指定します。

センサーの距離の下限と上限。メートル単位で、2 要素ベクトルとして指定します。

尤度計算に使用するビーム数。スカラーとして指定します。センサーから実際に取得できるビーム数より少ない数を指定すると、計算効率を向上できます。

測定ノイズの標準偏差。スカラーとして指定します。

ランダム測定値の確率の重み。スカラーとして指定します。このスカラーは、ランダムな干渉により測定値が正確でない確率です。

想定される測定値の確率の重み。スカラーとして指定します。重みは、MeasurementNoise プロパティで指定されたノイズの範囲内の正確な範囲測定値を取得できる確率です。

最も近い障害物を検出できる最大距離。メートル単位で、スカラーとして指定します。

すべて折りたたむ

monteCarloLocalizationオブジェクトを作成します。UseLidarScan プロパティを true に設定します。

mcl = monteCarloLocalization;
mcl.UseLidarScan = true;

距離センサー用のlikelihoodFieldSensorModelオブジェクトを作成します。占有グリッド マップをもつセンサー モデルを monteCarloLocalization オブジェクトに割り当てます。

sm = likelihoodFieldSensorModel;
p = zeros(200,200);
sm.Map = occupancyMap(p,20);
mcl.SensorModel = sm;

レーザー スキャン データのサンプルを作成する。

ranges = 10*ones(1,300);
ranges(1,130:170) = 1.0;
angles = linspace(-pi/2,pi/2,300);
odometryPose = [0 0 0];

距離と角度を指定することにより、lidarScanオブジェクトを作成します。

scan = lidarScan(ranges,angles);

ビークルの姿勢と共分散を推定します。

[isUpdated,estimatedPose,covariance] = mcl(odometryPose,scan)
isUpdated = logical
   1

estimatedPose = 1×3

    0.0350   -0.0126    0.0280

covariance = 3×3

    0.9946   -0.0012         0
   -0.0012    0.9677         0
         0         0    0.9548

制限

センサー モデルを monteCarloLocalization オブジェクトで使用した後に変更する場合は、あらかじめそのオブジェクトで関数 release を呼び出します。次に例を示します。

mcl = monteCarloLocalization; 
[isUpdated,pose,covariance] = mcl(ranges,angles); 
release(mcl) 
mcl.SensorModel.NumBeams = 120;

バージョン履歴

R2019b で導入