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
WindowsでGenesisに挑戦した話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Minoru Natsutani
May 16, 2025
Technology
450
0
Share
WindowsでGenesisに挑戦した話
第51回ロボティクス勉強会の発表資料です。
Minoru Natsutani
May 16, 2025
More Decks by Minoru Natsutani
See All by Minoru Natsutani
グラフの書き方勉強会
natsutan
0
83
Googleのロボット技術紹介。RT-1からGemini Robotics-ER 1.5 まで
natsutan
0
60
動き検出勉強会資料
natsutan
0
45
辛い仕事をプリキュアで乗り切りHack
natsutan
0
77
論文読み勉強会 RoboGen
natsutan
0
320
プログラミング写経のすすめ
natsutan
0
1.4k
ロボット模倣学習勉強会
natsutan
0
470
スモールデータ勉強会発表資料
natsutan
1
1.5k
Robotics勉強会資料
natsutan
0
100
Other Decks in Technology
See All in Technology
幾億の壁を超えて/Beyond Countless Walls(JP)
ikuodanaka
0
130
え!?初参加で 300冊以上 も頒布!? これは大成功!そのはずなのに わいの財布は 赤字 の件
hellohazime
0
140
GitHub Copilotを極める会 - 開発者のための活用術
findy_eventslides
7
4.2k
JEDAI in Osaka 2026イントロ
taka_aki
0
190
数案件を同時に進行するためのコンテキスト整理術
sutetotanuki
2
240
2026年、知っておくべき最新 サーバレスTips10選/serverless-10-tips
slsops
12
4.4k
🀄️ on swiftc
giginet
PRO
0
350
明日からドヤれる!超マニアックなAWSセキュリティTips10連発 / 10 Ultra-Niche AWS Security Tips
yuj1osm
0
400
2026年度新卒技術研修 サイバーエージェントのデータベース 活用事例とパフォーマンス調査入門
cyberagentdevelopers
PRO
8
8.3k
ストライクウィッチーズ2期6話のエイラの行動が許せないのでPjMの観点から何をすべきだったのかを考える
ichimichi
1
370
Azure Speech で音声対応してみよう
kosmosebi
0
100
2026年に相応しい 最先端プラグインホストの設計<del>と実装</del>
atsushieno
0
120
Featured
See All Featured
Building Applications with DynamoDB
mza
96
7k
RailsConf 2023
tenderlove
30
1.4k
How to train your dragon (web standard)
notwaldorf
97
6.6k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
520
How to make the Groovebox
asonas
2
2.1k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
320
For a Future-Friendly Web
brad_frost
183
10k
Visualization
eitanlees
150
17k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
120
The Mindset for Success: Future Career Progression
greggifford
PRO
0
310
Fireside Chat
paigeccino
42
3.9k
Transcript
WindowsでGenesisに挑戦した話 2025/05/16 @natsutan 1
2 自己紹介 名前:夏谷実 仕事:ピッキングロボットで動くAIの開発 X:@natsutan https://natsutan.hatenablog.com/
3 今日話す事 ・Genesisの紹介 ・ピッキングロボのSimulation ・Windowsで動かす時の技 ・ピッキングのSimulationで気になるところ
4 Genesisの紹介 https://github.com/Genesis-Embodied-AI/Genesis/blob/main/README_JA.md
5 Genesisの紹介 剛体 ソルバー 物理エンジン 流体 ソルバー 連続体 ソルバー 物理エンジンの機能
・Simulationの対象物の登録、管理 物理エンジンのループ ・時間を進める ・接触判定 ・接触後の状態を各種ソルバーで求める ・状態更新 物理エンジンとは
6 Genesisの紹介 剛体 ソルバー 物理エンジン 流体 ソルバー 連続体 ソルバー FK
IK OMPL (軌道生成ライブラリ) Pytorch PyRender (レンダリング) PD 制御 ロギ ング Gazeboと比べると、各種ソルバーが内蔵されており、Pytorchとの親和性が高い。 一方、ROS対応はこれから。
7 Windowsで動かす時の事前情報 Windows Native ・サンプルはすんなり動く ・OMPL(軌道生成)が動かない ・カメラ周りで動かないところがある。 WSL2 ・動く ・GPUをレンダリングに使ってくれない。CPU
でやるので描画させると死ぬほど遅い。 NGの箇所は、主にCUDAとOpenGL周り。 Dockerを使っても動かない。 動くタイミングがあるので、今日全部最新にしたら状況変わっている可能性がある。 今回はWindows+WSL2の組み合わせで動くようにした。
8 URロボット(ユニバーサルロボット)の配置 URDFをここからダウンロード https://github.com/culurciello/pybullet_ur5_gripper/blob/master/README.md ur = scene.add_entity( gs.morphs.URDF(file='D:/home/myproj/genesis/UR5/asset/ur5/ur5.urdf', fixed=True), )
URDFを読み込むときに、fixed=Trueが必要。 これが無いと、ロボットが自由に動いてしまう。 URDFで本体をworldに固定する方法は無効。 set_qpos()を使うことでロボットの姿勢を強制できる。 これは実質ワープなのでSimulationには使えない。
9 PD制御 PD制御に必要なパラメータを指定して、 set_dofs_force_rangeを設定すると、Genesisに組み込ま れているPD制御が使える。Genesis組込のIKの後に、 control_dofs_position()を使う。 for i in range(1000):
ur.control_dofs_position(qpos) scene.step() # from franka_cube.py kp = np.array([4500, 4500, 3500, 3500, 2000, 2000, 100, 100, 100, 100, 100, 100,]) kv = np.array([450, 450, 350, 350, 200, 200, 10, 10, 10, 10, 10, 10]) 動画では上手く取れるように、移動先を微調整してます。
10 Windows環境でやるときのOMPLの追加 OMPLは軌道(waypoint)を作ってくれる。 初期の姿勢とゴールの姿勢、時間を指定すると、上手く trajectoryを作ってくれます。ここからここまで2秒で移動し て、といった制御ができる。 Windows環境だとOMPLが動かない。GenesisがOMPLの Python Bindingを必要としているが、OMPL公式のインスト ール方法ではWindow環境のPython
Bindingが提供されてい ない。 WSL2環境ではOMPLが動くので、WSL2でOMPLだけ動かす。 (WSL2は描画が非常に遅いという課題がある)
11 Windowsで動いた様子 waypoints = ompl_waypoints(start_qpos, goal_qpos, 200) for qpos in
waypoints: ur.control_dofs_position(qpos[0:6], motors_dof) ur.control_dofs_position(finger_qpos, fingers_dof) scene.step() OMPLに初期姿勢、ゴールの姿勢、ステップ数を与える と軌道が返ってくる。その軌道を使ってPD制御を行う とスムーズに動く。 軌道生成はURロボット本体のみとし、ハンドは無視し ている。PD制御も、ロボット本体とハンドで別の制御 をしている。
12 その他 トピックはブログに書いてます。 https://natsutan.hatenablog.com/ ソフトロボティクスのSimulationをすると、物が 単色になってしまったので、色を付けて Simulationする方法。
13 ピッキングのSimulationで気になるところ 軌道生成時の衝突判定ってどう捌くのが良いの?
14 ピッキングのSimulationで気になるところ ・Genesisに組み込まれているinverse_kinematics()は、解を一つしか返さず衝突判定をしてくれな い。 ・OMPLの衝突判定にはIKの結果が必要 ・今はURDFでjointの可動範囲を制限して、衝突判定無しでそれっぽい範囲で動くようにしてます。
15 ピッキングのSimulationで気になるところ 軌道生成時に衝突判定を有効(衝突が発生する軌 道を作らない)にしたら、ピッキングロボットが ピッキングできないじゃ・・。 なんとかピックできたとして、その状態で軌道生 成をしようとすると開始の姿勢で衝突しているか ら、軌道生成できないんじゃ・・・
16 ピッキングのSimulationで気になるところ https://www.youtube.com/watch?v=1Mu6rPPzsFA 過去にやったときは、軌道の生成に衝突判定を入れてないケースだっ た。強化学習絡みだと、ぶつかったらぶつかったでNGにしてそう。 他のやり方 EEは軌道生成時の衝突判定から除外する。 EEがついている手首でIKと軌道生成をする。把持動作中は軌道生成し ない。ただし、ピッキング動作で最後にぶつかるのはグリッパーと壁 なので、EEがぶつかるかぶつからないかは結構大事。
対象物をつかんだ時点でロボットと対象物を合体させる。移動時につ かんだ物を落とすのがSimulationできないのでは。 もし、定番の手法をご存じの方がいらっしゃれば後で教えてください。
17 さいごに ご静聴ありがとうございました。 みんなで趣味のGenesisやりましょう。