Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第42回ロボティクス勉強会:実環境を手軽にシミュレータ環境に持ってくるpointcloud2g...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
atinfinity
November 27, 2023
Programming
3.6k
0
Share
第42回ロボティクス勉強会:実環境を手軽にシミュレータ環境に持ってくるpointcloud2gazebo
https://robosemi.connpass.com/event/295332/
の発表資料です。
atinfinity
November 27, 2023
Other Decks in Programming
See All in Programming
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
240
存在論的プログラミング: 時間と存在を記述する
koriym
5
850
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
580
KagglerがMixSeekを触ってみた
morim
0
370
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
240
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
250
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
760
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
260
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
330
安いハードウェアでVulkan
fadis
1
940
飯MCP
yusukebe
0
490
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
3
150
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
200
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
430
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
ラッコキーワード サービス紹介資料
rakko
1
3M
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.6k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
160
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.3k
We Have a Design System, Now What?
morganepeng
55
8.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Transcript
実環境を手軽にシミュレータ環境に持ってくる pointcloud2gazebo @dandelion1124 第42回ロボティクス勉強会
自己紹介 • @dandelion1124 ◦ 専門はコンピュータビジョン、ロボティクス、ソフトウェア高速化 ◦ OpenCVコントリビューター
▪ OpenCV書籍執筆 https://gihyo.jp/book/2022/978-4-297-12775-6 ◦ 2023年10月よりサイバーエージェント AI Labで人物行動理解に関する研究に従事
モチベーション • 自律走行ロボット開発のため、実環境と同一スケールのシミュレータ環境を手早く作りたい • 屋内環境をiPhoneでさっと撮影して、シミュレータ環境上に再現できると便利 ◦ 以下の機器が一式揃っている便利デバイスのiPhoneを活用
▪ 計算資源 ▪ センサ(RGB-Dカメラ、IMU、LiDAR) ▪ SLAMアプリケーション
• システム構成図 今回作ったもの RTABMAP pointcloud2gaz ebo ply(点群)、 データベース Gazebo World
Gazebo RTABMAP:https://apps.apple.com/jp/app/rtab-map-3d-lidar-scanner/id1564774365 今回作ったもの
デモ • 実験データ ◦ オフィスにある本棚付近で実験 ◦ iPhoneを持って本棚周辺をぐるっと周ってRTABMAPを実行
デモ • 今回作ったpointcloud2gazeboで生成したWorldは以下の通り 点群地図 Worldファイル
デモ • 生成したWorld上でナビゲーション
従来手法 • CADファイルでモデリングする • 点群データをRViz2で可視化する • MeshLabを使う •
map2gazeboを使う
従来手法 • 点群データをRViz2で可視化する ◦ SLAM等で作った点群地図をRViz2で可視化 ▪ 点数によっては描画が重くなる
◦ シミュレータ環境にそのまま反映できない ▪ あくまで可視化用途
従来手法 • CADファイルでモデリングする ◦ 実際のスケールを反映させるためには見取り図 or 実測が必要 ◦
見取り図がない場合、人手でモデルを作成し、配置する必要がある ◦ 見取り図があっても家具などの情報は含まれていないことがあり、実世界と一致しないことが ある ▪ 環境にオブジェクトがたくさんあるとモデリングが大変
従来手法 • MeshLabを使う ◦ https://www.meshlab.net/ ◦ 点群地図を補正(ノイズ除去、間引き、メッシュ作成)し、モデルデータに変換 ◦
高度なアルゴリズムが実装されているが、人手による前処理、パラメータ調整などの試行錯 誤が必要
従来手法 • map2gazeboを使う ◦ https://github.com/shilohc/map2gazebo ◦ 2D 占有格子地図からSTL or
DAEを出力 ▪ 占有格子地図に対してOpenCVのfindContoursで輪郭抽出し、モデル生成 ◦ 2D 占有格子地図が入力のため、以下の課題がある ▪ ノイズ除去が難しい ▪ 高さ情報が失われているため、実際の場所との紐づけが難しい 点群地図 占有格子地図 Worldファイル
pointcloud2gazebo • 処理構成 • 特徴
◦ 依存ライブラリが少ない(Open3D、NumPyのみ)ため、環境構築が容易 オフセット 処理 ノイズ除去 World生成 点群地図 Worldファイル
pointcloud2gazebo • オフセット処理 ◦ 点群地図の地図座標系は地図生成開始時のカメラ位置が原点となる座標系となる ◦ 地面の高さがゼロの方が使い勝手がよいのでオフセット処理を適用 地面の高さをゼロにする
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/ 赤い点がノイズとして判定された点群
pointcloud2gazebo • World生成 ◦ 点群からメッシュ作成 ▪ create_from_point_cloud_alpha_shapeでメッシュ作成 ▪
参考:http://www.open3d.org/docs/latest/tutorial/Advanced/surface_reconstruction.html Alpha shapes Ball pivoting
pointcloud2gazebo • World生成 ◦ World生成 ▪ メッシュからSTLにエクスポートし、Worldファイルを生成 ▪ 参考:https://zenn.dev/tasada038/articles/54f6111fb6e907
メッシュ Worldファイル
World描画高速化 • Tips #1:陰影処理無効化 ◦ 陰影処理を無効化することで描画処理を軽量化 ▪ 参考:https://www.blackcoffeerobotics.com/blog/5-ways-to-speedup-gazebo-simulations
◦ Worldファイルに下記の内容を追記するだけ ◦ 変更前後のシミュレーション速度は以下の通り ▪ 変更前:7fps、変更後:22fps <scene> <shadows>0</shadows> </scene>
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出る
おまけ • 表現方法の模索 ◦ ボクセル表現にすることで単純にメッシュを貼るよりも色情報が残せる ◦ ローポリゴンゲームのような表現になり、用途によっては有効かも
今後の予定 • pointcloud2gazeboをOSSとして公開予定 • メッシュファイル軽量化 • 歩行者軌跡、注目箇所推定アルゴリズムと連携したツールキット公開
会社紹介 • サイバーエージェントはインターネット広告やメディア・ゲームだけでなく、小売や行政などの現実世 界を対象としたサービスも進めている ◦ 商品自らが動いて話す「自己推薦ロボット」のような取り組みも行っている ▪ プレスリリース:https://www.cyberagent.co.jp/news/detail/id=29494
• よりよいサービス提供のため、実世界における人々の活動の 適切なセンシング技術 、適切な情報 提示技術が不可欠であり、AI Labではロボティクス・コンピュータビジョン研究を中心に扱うチームを 新設
会社紹介 • ロボットを社会実装する上で以下の強みがある ◦ 必要な要素技術(音声処理、自然言語処理、HCIなど)に関するリサーチャー、エンジニアが 多数在籍 ▪ https://cyberagent.ai/ailab/people/
◦ 自社でLLMを開発していることから技術連携、フィードバックしやすい ▪ https://www.cyberagent.co.jp/news/detail/id=29479 • 東京、大阪、京都でリサーチサイエンティスト、リサーチエンジニア、インターンを募集中。興味ある 方はご連絡ください。