Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Unity-ROS連携を使ってみた話
Search
chikuta
May 05, 2021
Technology
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unity-ROS連携を使ってみた話
chikuta
May 05, 2021
More Decks by chikuta
See All by chikuta
20200217_プリメイドAIをROS対応させたお話.pdf
chikuta
0
1.5k
Gazeboの怖い話
chikuta
0
1.3k
Other Decks in Technology
See All in Technology
go-sqletch
moznion
0
140
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
6k
夫婦で子育てするための育児標準化
codmoninc
PRO
0
350
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
130
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
480
分析AIエージェントを育てる、動く環境を育てる
codatum
1
1.1k
QA4AI 2026-Oct 生成AI時代の品質保証
tokuty
1
860
Local CI × GitHub Actions
gogutan
2
200
フロントエンドカンファレンス関西2026 - 速すぎるUIに、待ち時間を
teamlab
PRO
0
130
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
190
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
160
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
Building Adaptive Systems
keathley
44
3.2k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
270
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
330
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
270
Transcript
Unity - ROS 連携 を試してみた話 2021/05/05 ROS Japan UG #42
LT大会 @chikuta
Who ? • 経歴 高専ロボコン → ロボカップSSL (KIKS) → ロボカップ社会人チーム
(OP-AmP) → 団体の活動は現在休止中 • JTC ロボット系研究開発職 • ROS、RTM チョットデキル @chikuta Twitter / github
2020/11 某日
https://unity.com/ja/solutions/automotive-transportation-manufacturing/robotics
https://unity.com/ja/solutions/automotive-transportation-manufacturing/robotics 🤔 自由度が少ないのでは? 🤔 本当に使えるの? ロボティクス系エンジニアならヒューマノイドで試してみるしかないですよね!
https://gitlab.com/nasa-jsc-robotics/val_description ※ モデルを修正する必要あり。素のままはエラーがでます。 80 link 手軽に使えるヒューマノイドロボットモデルでお馴染みの valkyrie 先生を利用 NASA Valkyrie
Unity にモデルを読み込む チュートリアル通りにやればできる! やっぱりUnityは初心者にも優しい!! 基本はチュートリアルを参考 1. xacro コマンドを使って valkyrie_description の
統合されたモデルを作成 2. Unity Project の Assets フォルダにコピー 3. Unity URDF Importer で読み込み
って思うじゃないですか?
実行してみな、飛ぶぞ。 Error Message: The maximum limit of ArticulationBody hierarchy size
is reached: hierarchy of articulations can't have more than 64 ArticulationBody nodes! 物理演算に使用されている ArticulationBody は64個以下の node tree しか対応していない
原因と対策 原因 • 2020年に Unity の Forum でも報告されている問題 ◦ PhysX
4 は ArticulationBody node tree 数 64 (2^6) が最大数 ◦ Valkyrie は 80 ArticulationBody あるモデル。→ 途中で物理演算がされなくなる。 対策 • Rigidbody を間に挟んで node tree を分割する
修正方針 とにかくLINK数の多い右左のハンドを切り離して別 node tree 化
node tree 分割 物理演算の特性が変わるので注意が必要(根本的な対応方法は存在しない) ② 別 node 化する link を
root link 外に移動 ③ connector を作成して Rigidbody を追加 このとき、mass は小さめに程度にする ④ FixedJoint を2つ使って移動したリンクを接続 ① 接続するための dummy link を作成 (ここでは、rightWristConector)
物理演算の高精度化 Edit > Project Settings > Physics • Default Solver
Iterations 6 → 100 • Default Velocity Solver Iterations 1 → 50
修正結果
外部からの制御対応 • それっぽい位置制御用の UnityScriptを作成 • ROS-TCP-Connector と ROS-TCP-Endpoint を用いてROSとUnityを接続
所感 -ロボット開発でUnityを使う旨味- • 多リンク(64 ArticulationBody以上)のロボットを使用する場合、モデル更新毎に UnityProjectを修正しな いといけないため、メンテナンスコストが非常に高い • ROS-Unity接続を提供するUtility(ROS-TCP-Connector &
ROS-TCP-Endpoint)の 破壊的変更が定期的に発生するため、アップデートには注意が必要 • 物理演算に特化するなら Bullet / MuJoCo、ROSとの結合に特化するなら gazebo / Ignition という競合 があるので使いどころが非常に難しい。外界認識センサを使うシミュレーション用途かソフトウェアの結合 試験用途が最適?
発表したサンプル置き場 READMEが整備されていません。整備しますので少々お待ちください。 • Unity Project (valkyrie_unity) ◦ https://github.com/chikuta/valkyrie_unity • ROS-Unity-Connector
(val_ros_unity_demo) ◦ https://github.com/chikuta/val_ros_unity_demo • unity docker 連携 ◦ https://github.com/chikuta/chikuta-dockerfile ◦