Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第42回ロボティクス勉強会:実環境を手軽にシミュレータ環境に持ってくるpointcloud2gazebo

atinfinity
November 27, 2023

 第42回ロボティクス勉強会:実環境を手軽にシミュレータ環境に持ってくるpointcloud2gazebo

atinfinity

November 27, 2023
Tweet

Other Decks in Programming

Transcript

  1. 実環境を手軽にシミュレータ環境に持ってくる pointcloud2gazebo
    @dandelion1124
    第42回ロボティクス勉強会

    View full-size slide

  2. 自己紹介
    ● @dandelion1124

    ○ 専門はコンピュータビジョン、ロボティクス、ソフトウェア高速化 


    ○ OpenCVコントリビューター 

    ■ OpenCV書籍執筆 https://gihyo.jp/book/2022/978-4-297-12775-6 


    ○ 2023年10月よりサイバーエージェント AI Labで人物行動理解に関する研究に従事 


    View full-size slide

  3. モチベーション
    ● 自律走行ロボット開発のため、実環境と同一スケールのシミュレータ環境を手早く作りたい


    ● 屋内環境をiPhoneでさっと撮影して、シミュレータ環境上に再現できると便利

    ○ 以下の機器が一式揃っている便利デバイスのiPhoneを活用

    ■ 計算資源

    ■ センサ(RGB-Dカメラ、IMU、LiDAR)

    ■ SLAMアプリケーション


    View full-size slide

  4. ● システム構成図

    今回作ったもの
    RTABMAP

    pointcloud2gaz
    ebo

    ply(点群)、

    データベース

    Gazebo

    World

    Gazebo

    RTABMAP:https://apps.apple.com/jp/app/rtab-map-3d-lidar-scanner/id1564774365 

    今回作ったもの


    View full-size slide

  5. デモ
    ● 実験データ

    ○ オフィスにある本棚付近で実験

    ○ iPhoneを持って本棚周辺をぐるっと周ってRTABMAPを実行


    View full-size slide

  6. デモ
    ● 今回作ったpointcloud2gazeboで生成したWorldは以下の通り 

    点群地図
 Worldファイル


    View full-size slide

  7. デモ
    ● 生成したWorld上でナビゲーション 


    View full-size slide

  8. 従来手法
    ● CADファイルでモデリングする 

    ● 点群データをRViz2で可視化する 

    ● MeshLabを使う

    ● map2gazeboを使う


    View full-size slide

  9. 従来手法
    ● 点群データをRViz2で可視化する 

    ○ SLAM等で作った点群地図をRViz2で可視化 

    ■ 点数によっては描画が重くなる 


    ○ シミュレータ環境にそのまま反映できない 

    ■ あくまで可視化用途 


    View full-size slide

  10. 従来手法
    ● CADファイルでモデリングする 

    ○ 実際のスケールを反映させるためには見取り図 or 実測が必要 

    ○ 見取り図がない場合、人手でモデルを作成し、配置する必要がある 

    ○ 見取り図があっても家具などの情報は含まれていないことがあり、実世界と一致しないことが
    ある

    ■ 環境にオブジェクトがたくさんあるとモデリングが大変 


    View full-size slide

  11. 従来手法
    ● MeshLabを使う

    ○ https://www.meshlab.net/ 

    ○ 点群地図を補正(ノイズ除去、間引き、メッシュ作成)し、モデルデータに変換 

    ○ 高度なアルゴリズムが実装されているが、人手による前処理、パラメータ調整などの試行錯
    誤が必要


    View full-size slide

  12. 従来手法
    ● map2gazeboを使う

    ○ https://github.com/shilohc/map2gazebo

    ○ 2D 占有格子地図からSTL or DAEを出力

    ■ 占有格子地図に対してOpenCVのfindContoursで輪郭抽出し、モデル生成

    ○ 2D 占有格子地図が入力のため、以下の課題がある

    ■ ノイズ除去が難しい

    ■ 高さ情報が失われているため、実際の場所との紐づけが難しい

    点群地図

    占有格子地図
 Worldファイル


    View full-size slide

  13. pointcloud2gazebo
    ● 処理構成






    ● 特徴

    ○ 依存ライブラリが少ない(Open3D、NumPyのみ)ため、環境構築が容易 

    オフセット

    処理

    ノイズ除去
 World生成

    点群地図

    Worldファイル


    View full-size slide

  14. pointcloud2gazebo
    ● オフセット処理

    ○ 点群地図の地図座標系は地図生成開始時のカメラ位置が原点となる座標系となる 

    ○ 地面の高さがゼロの方が使い勝手がよいのでオフセット処理を適用 

    地面の高さをゼロにする 


    View full-size slide

  15. pointcloud2gazebo
    ● ノイズ除去

    ○ 床面除去

    ■ 高さ方向のクロッピング 


    ○ 計測ノイズ除去

    ■ Voxel Grid Filter

    ■ Radius outlier remova l



    ○ 参考

    ■ http://www.open3d.org/docs/release/tutorial/geometry/pointcloud_outlier_removal.html 

    ■ https://tech-deliberate-jiro.com/radius-based-outlier-filter/ 

    赤い点がノイズとして判定された点群


    View full-size slide

  16. pointcloud2gazebo
    ● World生成

    ○ 点群からメッシュ作成 

    ■ create_from_point_cloud_alpha_shapeでメッシュ作成 

    ■ 参考:http://www.open3d.org/docs/latest/tutorial/Advanced/surface_reconstruction.html 

    Alpha shapes
 Ball pivoting


    View full-size slide

  17. pointcloud2gazebo
    ● World生成

    ○ World生成

    ■ メッシュからSTLにエクスポートし、Worldファイルを生成

    ■ 参考:https://zenn.dev/tasada038/articles/54f6111fb6e907 

    メッシュ
 Worldファイル


    View full-size slide

  18. World描画高速化
    ● Tips #1:陰影処理無効化 

    ○ 陰影処理を無効化することで描画処理を軽量化 

    ■ 参考:https://www.blackcoffeerobotics.com/blog/5-ways-to-speedup-gazebo-simulations 


    ○ Worldファイルに下記の内容を追記するだけ 




    ○ 変更前後のシミュレーション速度は以下の通り 

    ■ 変更前:7fps、変更後:22fps 


    0 


    View full-size slide

  19. World描画高速化
    ● Tips #2:NVIDIA GPUを使う
    ○ 利用例:NVIDIA GPUが使えるブラウザベース ROS 2デスクトップ環境(自作)
    ■ https://github.com/atinfinity/nvidia-egl-desktop-ros2
    ■ ホスト環境:Ubuntu 22.04、Windows 11+WSL2上で動作すること確認
    ○ 今回作成したWorldファイルでも60fps出る

    View full-size slide

  20. おまけ
    ● 表現方法の模索

    ○ ボクセル表現にすることで単純にメッシュを貼るよりも色情報が残せる 

    ○ ローポリゴンゲームのような表現になり、用途によっては有効かも 


    View full-size slide

  21. 今後の予定
    ● pointcloud2gazeboをOSSとして公開予定 

    ● メッシュファイル軽量化 

    ● 歩行者軌跡、注目箇所推定アルゴリズムと連携したツールキット公開 


    View full-size slide

  22. 会社紹介
    ● サイバーエージェントはインターネット広告やメディア・ゲームだけでなく、小売や行政などの現実世
    界を対象としたサービスも進めている 

    ○ 商品自らが動いて話す「自己推薦ロボット」のような取り組みも行っている 

    ■ プレスリリース:https://www.cyberagent.co.jp/news/detail/id=29494 


    ● よりよいサービス提供のため、実世界における人々の活動の 適切なセンシング技術 、適切な情報
    提示技術が不可欠であり、AI Labではロボティクス・コンピュータビジョン研究を中心に扱うチームを
    新設


    View full-size slide

  23. 会社紹介
    ● ロボットを社会実装する上で以下の強みがある 

    ○ 必要な要素技術(音声処理、自然言語処理、HCIなど)に関するリサーチャー、エンジニアが
    多数在籍

    ■ https://cyberagent.ai/ailab/people/ 

    ○ 自社でLLMを開発していることから技術連携、フィードバックしやすい 

    ■ https://www.cyberagent.co.jp/news/detail/id=29479 


    ● 東京、大阪、京都でリサーチサイエンティスト、リサーチエンジニア、インターンを募集中。興味ある
    方はご連絡ください。 


    View full-size slide