robot-descriptions/robot_descriptions.py
Access 190+ robot descriptions from the main Python robotics frameworks
robot-descriptions – ロボットモデル資産用のPythonライブラリ
何であるか – オープンソースのロボット記述ファイル(URDF、MJCFなど)を通常のPythonモジュールとしてインポートできる純Pythonパッケージです。初めてロボットを要求すると、ライブラリはカスタマイズされた「Awesome Robot Descriptions」コレクションから自動的に記述をダウンロードし、ローカルにキャッシュしてから、シミュレーションや解析ツール向けに即座に使用可能なオブジェクトを提供します。
なぜ重要か – ロボット工学の研究開発では、同じロボットモデル(例:KUKA iiwa、Franka Panda、Boston Dynamics Spot)を頻繁に必要とします。プロジェクト間でこれらのファイルを同期するのは面倒です。robot_descriptionsは、GitHubでバージョン管理された単一の信頼できるソースを提供し、小さなPython APIでアクセス可能にすることで、この問題を解決します。最も一般的なロボットソフトウェアスタックと互換性があるため、MuJoCo、Pinocchio、PyBullet、iDynTree、RoboMeshCat、またはyourdfpyに簡単に切り替えることができます。手動でファイルを扱う必要がありません。
インストール
# conda-forge(科学的Pythonスタック向け推奨)
conda install -c conda-forge robot_descriptions
# またはpipで
pip install robot_descriptions
基本的な使い方(Python)
from robot_descriptions.loaders.pinocchio import load_robot_description
# Pinocchioモデルを返す(運動学・ダイナミクス呼び出し可能)
robot = load_robot_description("upkie_description")
このライブラリは、各対応バックエンド用のローダーを提供しています:
| バックエンド | ローダーモジュール |
|---|---|
| iDynTree | robot_descriptions.loaders.idyntree |
| MuJoCo | robot_descriptions.loaders.mujoco |
| Pinocchio | robot_descriptions.loaders.pinocchio |
| PyBullet | robot_descriptions.loaders.pybullet |
| RoboMeshCat | robot_descriptions.loaders.robomeshcat |
| yourdfpy | robot_descriptions.loaders.yourdfpy |
各ローダーは、要求された記述を(キャッシュされていなければ)ダウンロードし、そのフレームワークに特有のオブジェクトを返します。
コマンドラインインターフェース
このパッケージは、小さなCLI(robot_descriptionsエントリポイントまたはuvx robot_descriptions経由で利用可能)も提供しています。例:
# モデルを事前にダウンロード
uvx robot_descriptions pull iiwa14_description
# MuJoCoで可視化(オプションの mujoco-python-viewer が必要)
uvx --with mujoco-python-viewer robot_descriptions show_in_mujoco go2_mj_description
# MeshCatで可視化
uvx --with meshcat robot_descriptions show_in_meshcat go2_description
CLIはPython APIと一致しています:pullはキャッシュを取得し、show_in_*は選択されたバックエンド用のビューアを起動します。
記述をサブモジュールとしてインポート
ロボット記述を通常のPythonサブモジュールのように扱うことができます:
from robot_descriptions import panda_description
print(panda_description.URDF_PATH) # 主なURDFファイルへのパス
print(panda_description.PACKAGE_PATH) # 記述パッケージのルート
print(panda_description.REPOSITORY_PATH) # クローンされたGitリポジトリの場所
一部のパッケージは追加の定数(例:高精度の衝突メッシュ用のURDF_PATH_POLYTOPE_COLLISION)やXacro処理(XACRO_PATH + オプションのXACRO_ARGS)を公開しています。
利用可能なロボットモデルは?
このライブラリは「Awesome Robot Descriptions」ギャラリーをインデックス化しています。モデルはタイプ(アーム、二足歩行、四足歩行、ドローンなど)ごとにグループ化され、利用可能な場合、URDFとMJCFの両方のバリアントを含みます。いくつかの例:
panda_description/panda_mj_description(Franka Emika Panda)iiwa14_description/iiwa14_mj_description(KUKA iiwa-14)go2_description(Unitree Go2四足歩行ロボット)omx_f_description(ROBOTIS OpenManipulator-F)low_cost_robot_arm_mj_description(DeepMindのメンジャリーから得られるシンプルなMJCFアーム)
各エントリには、元のメンテナーやファイル形式、ライセンス(BSD-3、Apache-2.0、MIT、GPL-3など)が記載されています。
例のスクリプト(リポジトリ内)
リポジトリには、各対応バックエンドでモデルを読み込む方法と可視化する方法を示す実行可能な例が含まれています:
examples/load_in_pinocchio.pyexamples/show_in_meshcat.pyexamples/show_in_mujoco.py…およびiDynTree、PyBullet、RoboMeshCat、yourdfpy用の同等のスクリプト。
誰が使うべきか?
- 研究者:多数のロボットモデルを必要とするシミュレーションパイプラインを構築する人。
- ロボット工学教育者:学生がさまざまなアームや移動プラットフォームで実験できるようにしたい人。ファイルを手探りで探す必要がありません。
- シミュレーションから現実へのパイプライン開発者:トレーニング時に使用された正確なURDF/MJCFを取得する信頼できる方法が必要な人。
ライセンスと貢献
このライブラリ自体はMITライセンスでリリースされています(PyPIバッジを参照)。ロボット記述ファイルは元のアップストリームライセンスを保持しており、生成されたテーブルに表示されます。貢献は歓迎です – 詳細はCONTRIBUTING.mdバッジを参照してください。
結論 – robot_descriptionsは、オープンソースのロボットモデルリポジトリとPython中心のロボット工学エコシステムの間を軽量かつ信頼性の高い橋渡しをし、ダウンロード、キャッシュ、フォーマット変換を自動で処理します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト