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
Minoru Natsutani
May 16, 2025
Technology
0
420
WindowsでGenesisに挑戦した話
第51回ロボティクス勉強会の発表資料です。
Minoru Natsutani
May 16, 2025
Tweet
Share
More Decks by Minoru Natsutani
See All by Minoru Natsutani
グラフの書き方勉強会
natsutan
0
68
Googleのロボット技術紹介。RT-1からGemini Robotics-ER 1.5 まで
natsutan
0
53
動き検出勉強会資料
natsutan
0
38
辛い仕事をプリキュアで乗り切りHack
natsutan
0
69
論文読み勉強会 RoboGen
natsutan
0
280
プログラミング写経のすすめ
natsutan
0
1.3k
ロボット模倣学習勉強会
natsutan
0
440
スモールデータ勉強会発表資料
natsutan
1
1.4k
Robotics勉強会資料
natsutan
0
95
Other Decks in Technology
See All in Technology
OCI技術資料 : 外部接続 VPN接続 詳細
ocise
1
10k
大規模な組織におけるAI Agent活用の促進と課題
lycorptech_jp
PRO
4
5.1k
Amazon Bedrock AgentCoreでブラウザ拡張型AI調査エージェントを開発した話 (シングルエージェント編)
nasuvitz
2
110
ローカルでLLMを使ってみよう
kosmosebi
0
180
AITuberKit+Bedrock AgentCoreで作る 3Dキャラクターエージェント
yokomachi
2
1.5k
Kubernetes環境周りの責任範囲をいい機会なので考える / Taking the Opportunity to Clarify Kubernetes Responsibilities
kohbis
1
110
AWS Bedrock Guardrails / 機密情報の入力・出力をブロックする — Blocking Sensitive Information Input/Output
kazuhitonakayama
2
170
意志を実装するアーキテクチャモダナイゼーション
nwiizo
3
1.7k
AIで 浮いた時間で 何をする? 2026春 #devsumi
konifar
16
3.2k
Claude Codeと駆け抜ける 情報収集と実践録
sontixyou
1
810
opsmethod第1回_アラート調査の自動化にむけて
yamatook
0
280
AIで「ふとした疑問」を即座に検証する 〜定量で圧倒するN1理解〜
kakehashi
PRO
3
730
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
Done Done
chrislema
186
16k
Raft: Consensus for Rubyists
vanstee
141
7.3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Designing for humans not robots
tammielis
254
26k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
200
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
120
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
310
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Tell your own story through comics
letsgokoyo
1
820
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
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やりましょう。