ヘルプ センターヘルプ センター
3 次元の点または点群の観測値をマップに挿入
R2019b 以降
insertPointCloud(map3D,pose,points,maxrange)
insertPointCloud(map3D,pose,ptcloud,maxrange)
insertPointCloud(___,invModel)
例
insertPointCloud(map3D,pose,points,maxrange) は、与えられた points における 1 つ以上のセンサー観測値を占有マップ map3D に挿入します。占有されている点は 0.7 の観測値で更新されます。センサー pose と points の間にある他のすべての点は障害物なしとして扱われ、0.4 の観測値で更新されます。maxrange の範囲外の点は更新されません。NaN 値は無視されます。
map3D
pose
points
maxrange
NaN
insertPointCloud(map3D,pose,ptcloud,maxrange) は、ptcloud オブジェクトをマップに挿入します。
ptcloud
insertPointCloud(___,invModel) は、障害物のない観測と占有された観測に対応する更新された確率 invModel をもつ点群を挿入します。前述の任意の構文を使用して点群を入力します。
invModel
すべて折りたたむ
occupancyMap3D オブジェクトは、センサーの観測値を使用して環境のマップを作成して、障害物を 3 次元空間に格納します。マップを作成し、点群から障害物を特定する点を追加します。次にマップ内の障害物をインフレートして、障害物の周囲の安全な動作空間を確保します。
occupancyMap3D
10 セル数/メートルのマップ解像度で occupancyMap3D オブジェクトを作成します。
map3D = occupancyMap3D(10);
一連の 3 次元の点を姿勢 [x y z qw qx qy qz] からの観測値として定義します。この姿勢はこれらの点を観測するセンサー用で、中心が原点上にあります。複数の観測値を挿入する 2 組の点を定義します。
[x y z qw qx qy qz]
pose = [ 0 0 0 1 0 0 0]; points = repmat((0:0.25:2)', 1, 3); points2 = [(0:0.25:2)' (2:-0.25:0)' (0:0.25:2)']; maxRange = 5;
insertPointCloud を使用して 1 組目の点を挿入します。この関数は、センサーの姿勢と指定された点を使用して、観測値をマップに挿入します。表示されている色は、わかりやすく説明する目的のためにのみ点の高さと関連します。
insertPointCloud
insertPointCloud(map3D,pose,points,maxRange) show(map3D)
2 組目の点を挿入します。センサーの姿勢 (原点) とこれらの点の間の光線は、前に挿入した点とオーバーラップします。したがって、センサーと新しい点の間の自由空間が更新されて、自由空間とマークされます。
insertPointCloud(map3D,pose,points2,maxRange) show(map3D)
マップをインフレートして、障害物の周囲の安全な動作のためにバッファー ゾーンを追加します。ビークル半径と安全距離を定義し、これらの値の合計を使ってマップのインフレーション半径を定義します。
vehicleRadius = 0.2; safetyRadius = 0.3; inflationRadius = vehicleRadius + safetyRadius; inflate(map3D, inflationRadius); show(map3D)
3 次元占有マップ。occupancyMap3D オブジェクトとして指定します。
センサー座標での点群の点。点 [x y z] の n 行 3 列の行列として指定します。ここで、n は点群に含まれる点の数です。
[x y z]
pointCloud
点群の読み取り値。pointCloud オブジェクトとして指定します。
メモ
pointCloud オブジェクトの使用には Computer Vision Toolbox™ が必要です。
ビークルの位置と向き。[x y z qw qx qy qz] ベクトルとして指定します。ビークルの姿勢は、xyz の位置ベクトルと [qw qx qy qz] として指定される四元数の方向ベクトルです。
[qw qx qy qz]
点群のセンサーの最大範囲。スカラーとして指定します。この範囲を外れる点は無視されます。
逆センサー モデル値。障害物がない確率と占有されている確率に対応する 2 要素ベクトルとして指定します。点群の点は、逆センサー モデルと指定された範囲の読み取り値に従って更新されます。NaN の範囲値は無視されます。maxrange を超える範囲値は更新されません。逆センサー モデルを参照してください。
"逆センサー モデル" は、センサーの読み取り値と障害物の値が点群でどのように設定されるかを決定します。引数 invModel で障害物がない位置と占有されている位置に対して異なる確率を指定することで、このモデルをカスタマイズできます。NaN の範囲値は無視されます。maxrange を超える範囲値は更新されません。
範囲の読み取り値を含むグリッド位置は、占有されている確率で更新されます。読み取り値の前の位置は、障害物がない確率で更新されます。読み取り値の後のすべての位置は更新されません。
insertPointCloud は、packType 引数を "flat" に設定した場合、関数 packNGo (MATLAB Coder) を使用したコード生成をサポートしません。
packType
"flat"
packNGo
すべて展開する
対応する障害物のない確率と占有されている確率の逆センサー モデル値を指定できるようになりました。逆センサー モデル値の指定の詳細については、引数 invModel を参照してください。
lidarSLAM
occupancyMap
inflate
setOccupancy
show
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office