0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MeshLabで3次元点群データからメッシュを作成する

Posted at

概要

目的:3D Lidarで取得した点群データをMeshLabでメッシュ化し、STL出力してシミュレーションに利用する

使用ツール

  • MeshLab

今回は以下のデータセットの中からmap_tc19_o085_f-04_t05.pcdを使用しました。
https://github.com/tsukubachallenge/tc-datasets
インストールやメッシュ化の方法については以下のサイトを参考にしました。
http://www.pointcloud.jp/blog_n07/
https://www.kkaneko.jp/tools/ubuntu/ubuntu_meshlab.html

インストール方法

sudo apt -y install meshlab

起動方法

meshlab

手順

  1. 点群データの取り込み
    「File」→「Import Mesh」
    データ容量が大きすぎるもしくはダウンロードした際にデータが文字化けすると読み込めない場合がある。その場合は、Cloud Compareなどでpcdデータを読み込み、plyの形式に変換することでMeshLabで読み込むことができる。
    image.png

1. 法線を計算

  • 法線とは各点において面に垂直な方向を示すベクトルである。
  • 点群データには座標(x, y, z)しかありませんが、メッシュ化するには「どちらが表面で、どちらが内側か」を把握する必要がある。
  • 「Filters」→「Pointset」→「Compute nomals for point seets」

image.png

  • 以下の画面から- Neighbour numを5に変更してApplyを押す
  • Neighbour num(近傍点数): 各点の周囲のk個の近傍点
    • 少ない(5-10) → 局所的な詳細を捉える、ノイズに敏感
    • 適切(16-32) → バランスが良い、一般的に推奨
    • 多い(64-128) → 滑らかだが細部が失われる
      image.png

2. サンプリング

  • 点群の点数を大幅に削減してメモリ負荷を下げる。
  • 「Filters」→「Sampling」→「clustered vertex subsampling」
    image.png
  • 以下の画面からCell Sizeを1.000→0.500に変更してApplyを押します。
  • Cell Size:間引き用グリッドのセルサイズ
    • Cell Sizeを小さくする(0.1-0.5%): より多くの点が残る、詳細保持、処理重い
    • Cell Sizeを大きくする(2-5%): 大幅に点数削減、処理軽い、詳細失われる

image.png

3. メッシュ化

点群データからメッシュファイルを生成します。この作業はファイルの重さによってかなり時間がかかるので辛抱が必要です。
「Filters」→「Remeshing simpleification and Reconstruction」→「Surface Reconstruction : Ball Pivoting」
image.png

  • 以下の画面は初期値のまま「Apply」を実行
  • Pivoting Ball radius (0.000): メッシュ生成に使うボールの半径(0は自動推定)
    • Ball radiusを大きくする: 離れた点も繋がりやすい、穴が埋まりやすい、過剰に繋がる可能性
    • Ball radiusを小さくする: より精密、穴が多く残る、断片化しやすい
  • Clustering radius (20%): ボール半径に対するクラスタリング半径の割合
    • Clustering radiusを下げる(10-15%): より精密な接続
  • Angle Threshold (90°): 面の角度しきい値
    • Angle Thresholdを小さくする(45-60°): 鋭角部分で分離、より詳細な形状
      image.png

4. フィルター

生成されたメッシュがガタガタでつかいものにならないこともあるので、フィルターをかけてきれいにします。
「Filters」→「Smooth ,Fairing and Deformation」→「Laplacian Smooth」
image.png

  • 以下の画面からフィルターの強度を設定
  • Smoothing steps : 平滑化の反復回数
    • Smoothing stepsを増やす(5-10): より滑らかになるが、形状の特徴が失われる
    • Smoothing stepsを減らす(1-2): 軽微な平滑化、ノイズ除去程度
      image.png

5. STLファイルの出力

  • メッシュ化したデータをSTLファイルとして出力します。
  • ここできをつけなければならないのが、図の右側に示すように「Cluster Samples」が選択されていることです。これが選択されていないとSTLファイルは出力されません。
    image.png

6. 可視化

BlenderでSTLファイルを表示を行うとこんな感じで仕上がります。
image.png

まとめ

生成したメッシュファイルをGazeboなどに表示してみようと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?