1K Views
January 17, 25
スライド概要
robosemi 20250117
URDFの記述をサポートするGUIツールについて 解説記事:https://qiita.com/Ninagawa123/items/c4643ca92e57c3a45efb Github: https://github.com/Ninagawa123/URDF_kitchen Ninagawa Izumi 2024.01.17
自己紹介
当開発のモチベーション 廉価な自作ロボットをデジタルツイン化したい。 ↓ (Meridian計画) ↓ 自作ロボットのURDF作成をラクにしたい。
<?xml version="1.0"?> <robot name=”banzaihumanoid"> そもそもURDFとは? <!--base link--> <link name="base_link"> </link> <!--base to waist --> <joint name="base_to_waist" type="fixed"> <parent link="base_link"/> <child link="waist"/> <origin xyz="0 0 0.277936"/> </joint> <link name="waist"> <visual> <geometry> <box size="0.03 0.03 0.03"/> </geometry> <origin xyz="0 0 0"/> <material name="red"> <color rgba="1.0 0.0 0.0 1"/> </material> </visual> </link> <!--waist to chest -> <joint name="waist_to_chest_cy" type="revolute"> <parent link="waist"/> <child link="chest"/> <axis xyz="0 0 1"/> <origin xyz="0 0 0.065192"/> <limit lower="-1.5" upper="1.5" effort="0" velocity="0"/> </joint> ロボットのモデルを記述するための書式。 リンクとジョイントに分け、 その関係をツリー状に記述していくxmlファイル。 <link name="chest"> <visual> <geometry> <box size="0.03 0.03 0.03"/> </geometry> <origin xyz="0 0 0"/> <material name="blue"> <color rgba="0.1 0.1 1.0 1"/> </material> </visual> </link> ...
URDFの悩まし ・Fusion360などで、一発でURDFを出力できる人がいるらしい。 → うらやましい。 ・CADソフトから一発で出力できない場合、修正したり、イチから書く必要がある。 → つらい。
URDFの記述をサポートするツールをつくってみよう ・GUIで直感的に操作したい ・ロボット開発の初心者向け、URDF難民向けにしたい ・もちろんオープンソースのフリーソフトにしたい ・そのための学習コストは減らしたい ・結果、pythonで作成( pythonぐらい起動できてよいでしょう。機械学習でも使いそうだし、ROSでも使うし。) ・ライブラリとしてvtk、PySide6、NodeGraphQtを使用 ・Claudeに助けてもらいながら作成
URDF kitchenの使い方の概要 STEP 1 : 仕入れ・仕込み → パーツごとにCADからSTLを書き出す作業。 STEP 2 : 調理 → パーツにジョイント座標を設定設定する作業。 STEP 3 : 盛り付け → パーツをサクサクと組み立てていく作業。 できあがり!
STEP 1: 仕入れ・仕込み ・お手持ちのCADなどで、 パーツごとにSTLを書き出す。 ・回転軸の中心を原点とする。 ・親パーツとの接点を原点とする。 ・書き出しファイル名は、 ” l_upper_arm.stl ”のように冒頭に l_をつける。 ・右半身のパーツは不要。
STEP 1: 仕入れ・仕込み ・おまけツール “urdf_kitchen_StlSourcer.py” ・座標軸や原点を再設定できる。
STEP 1: 仕入れ・仕込み ・パーツの保存ディレクトリは、 右図の通り。 ・URDFで一般的なディレクトリ構成
STEP 2: 調理 ・“urdf_kitchen_PartsEditor.py” ・子パーツが接続される座標を GUIでプロット。 ・イナーシャなどの計算もできる。 ・stlに対応した.xmlファイルが 生成される。 ・左半身だけ設定すれば、 右半身は一発書き出し。
STEP 2: 調理 ・“urdf_kitchen_PartsEditor.py” ・子パーツが接続される座標を GUIでプロット。 ・イナーシャなどの計算もできる。 ・stlに対応した.xmlファイルが 生成される。 ・左半身だけ設定すれば、 右半身は一発書き出し。
STEP 3: 盛り付け ・“urdf_kitchen_Assembler.py” ・.xmlファイルを読み込むと、 ノードとして表示される。 ・ノードをラインで結んでいく。 ・すべて結べば完成。 ・urdfに書き出してすぐ使える!
できあがり: 簡易チェック ・open urdf-loadersというボタンで Garrett Johnson氏が開発した URDFを表示できる強力な ブラウザツールが開く。 ・*-descriptionフォルダを 画面にドロップ。
Genesisに投入した事例 ・出力されたURDFについて、 若干の修正を加え、 Genesisにて機械学習。 ・実機のパラメータが未調整のため まだ機械学習の通りに歩かないかも。
開発仲間募集中 ご清聴ありがとうございました。 オープンソースプロジェクトのMeridian計画では 共同開発者を随時募集しています。 「二名川」で検索&DMください!
ご利用は「URDF kitchen」で検索どうぞ (バグレポートなどもお待ちしています。)
EOF