Skip to content

yosh617/URDF_kitchen

 
 

Repository files navigation

URDF_kitchen beta

urdf_kitchen_beta

URDF_kitchenは、URDFの組み立てをサポートするPythonツールです。
STLファイルにジョイントポイントを設定し、ノードで接続していくことで組み立て、URDFとしてエクスポートします。
重量入力やイナーシャ計算、パーツごとの着色などにも対応しています。

Tools

STEP 1 - 仕込み - "StlSourcer"

urdf_kitchen_beta

Stlの中心点や座標軸の入れ替えを行うツールです。 この工程は不要な場合がほとんどです。

STEP 2 - 調理 - "PartsEditor"

urdf_kitchen_beta

stlファイルに次のパーツを接続するジョイントポイントを設定するツールです。 ジョイントポイントは8つまで設定でき、回転軸や色なども設定できます。 左右対称のロボットの場合、左側のパーツさえ設定すれば右側は自動で出力できます。 設定ファイルはパーツと対になるxmlとして保存します。

STEP 3 - 盛り付け - "Assembler"

urdf_kitchen_beta

urdfをプラモデルのように最後の組み立てられるツールです。 設定ファイルをまとめて読み込み、パーツ同士をノードでポチポチと接続していきます。 作業途中のファイルを保存する機能や、回転軸を確認する機能などもあります。

完成したURDFのチェックは、Garrett Johnsonが作成したブラウザツールで可能です。 ツール内にもリンクのボタンを設置しています。

https://gkjohnson.github.io/urdf-loaders/javascript/example/bundle/

Install

python 3.9, python 3.11などで動作します。(3.10はライブラリの都合で素直に動かないかもしれません)

libraryとpip

pip install numpy  
pip install PySide6  
pip install vtk  
pip install NodeGraphQt  
起動できない場合

Windows11+python3.12で起動できないという報告がありました。
python3.12から消えたdistutilsが原因とのことで、
NodeGraphQtのmenu.py,viewer.pyについて、
from distutils.version import LooseVersion
から
from packaging.version import Version as LooseVersion
に修正することで起動したとのことです。

実行方法

ターミナルにて、DLしたファイルがある場所にcdで移動し、
python urdf_kitchen_StlSourcer.py
python urdf_kitchen_PartsEditor.py
python urdf_kitchen_Assembler.py
と入力して実行します。初回起動は少し時間がかかります。

バグレポート

絶賛バグフィックス中です。
特にパラメータの計算や反映について検算や検証が必要です。

  • urdf_kitchen_StlSourcer.py で回転を繰り返すと誤差が蓄積するようです。回転前に一度Rでリセットし、最小の回転回数で保存を行うとズレを抑えられる可能性があります。(20241214)
  • AssemblerでRotationをFixedにしたとき、Rotation Testボタンで本来は動かないべきだが、Z軸で回転する (20250103修正済)
  • AssemblerのノードにMassless Decolationを指定したい際、その要素のjointやlinkを作らず親ノードのvisualとして処理するように修正済(20250103)
  • PartsEditor.pyのBatch convet...ボタンを押した際、既存のr_.stl, r_.xmlがある場合は上書きしないよう修正済(20250103)

Tutorial

作業のフローをとりいそぎ下記の記事にまとめました。
公式のチュートリアルやガイドも別途製作中です。

https://qiita.com/Ninagawa123/items/c4643ca92e57c3a45efb

URDF Kitchenロゴ

About

URDF build helper tools

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%