オープンソースのロボットエコシステム
大手メーカー以外のオープンなライブラリとハードウェア。実機アームでの学習にはLeRobot、モデリングと計画にはDrakeとOMPL、手早いシミュレーションにはPyBullet、そしてオープンなアームSO-101を紹介します。
| 組織 | 単一のメーカーではない:Hugging Face, Inc.(LeRobot)、Toyota Research InstituteとMIT CSAIL(Drake)、ライス大学のKavraki Lab(OMPL)、The Robot StudioとHugging Face(SO-101)、Bullet Physicsプロジェクト(PyBullet) |
|---|---|
| ウェブサイト | huggingface.co/docs/lerobot/index |
| ライセンス | LeRobotはApache-2.0、SO-ARM100/SO-101の設計データはApache-2.0、DrakeはBSD-3-Clause、OMPLはBSD-3-Clause、BulletとPyBulletはzlib(サードパーティのフォルダを除く) |
| 価格 | ソフトウェアは無料。プロジェクトの部品表では、SO-101のフォロワーアーム1台分の部品が約USD 122、リーダー・フォロワーの1組で約USD 230。別途3Dプリンタまたはプリント済み部品が必要 |
| 更新 | 2026年11月14日 |
製品と提供内容 #
| 名称 | 種類 | 位置づけ |
|---|---|---|
| LeRobot | フレームワーク | 低コストロボットや研究用ロボットで、テレオペレーション、データセットの記録、方策の学習とデプロイを行うPythonライブラリ |
| SO-101 | アーム | STS3215サーボ6個(関節5つとグリッパ)で動く、3Dプリント製のオープンなアーム。メーカーは可搬重量とリーチを公表していない |
| Drake | ライブラリ | マルチボディ動力学、最適化ベースの計画、制御のためのC++およびPythonのツールボックス |
| OMPL | ライブラリ | サンプリングベースの動作計画器。衝突判定は利用者が用意する状態妥当性チェッカーか同梱のVAMPで行う。MoveItのデフォルトの計画器ライブラリ |
| PyBullet | シミュレータ | 手早い剛体シミュレーションのための、Bullet物理エンジンのPythonバインディング |
どんな組織か
このハブは、ベンダーとの契約なしに学習、プロトタイピング、成果の公開を行いたい人向けです。他のハブが依存しているオープンなプロジェクトをまとめています。いずれもロボット企業ではありません。それぞれが独自のメンテナ、ライセンス、開発ペースを持つライブラリや設計データです。そのため、まずプロジェクトが活発に保守されているか、ライセンスが用途に合うかを確認してください。
中心となるのは5つのプロジェクトです。LeRobotは、実機での学習のためのHugging Faceのライブラリです。Hugging Face, Inc.はデラウェア州の法人で、モデルとデータセットのためのHugging Face Hubを運営しています。SO-101アームは、The Robot StudioがHugging Faceと共同で設計しました。DrakeはMIT CSAILのRobot Locomotion Groupが始めたもので、現在はToyota Research Instituteがコア開発を主導しています。OMPLはライス大学のKavraki Labによるものです。PyBulletはBullet物理エンジンのPythonモジュールで、推奨される引用文献にはErwin CoumansとYunfei Baiの名前が挙がっています。
ツールとAPI
LeRobot(Apache-2.0)はPythonパッケージで、本稿執筆時点のバージョンはv0.7.0、Python 3.12以降が必要です。基本の流れは、テレオペレーション、記録、学習、デプロイです。デモンストレーションはLeRobotDataset形式のファイル(同期したカメラ映像と状態・行動データ)として記録し、Hugging Face Hubからストリーミングできます。方策は、ACTからπ₀やSmolVLAといったVision-Language-Actionモデル(VLA)まで同梱しています。LIBEROやMeta-Worldといったシミュレーションのベンチマークも含みます。対応ハードウェアにはSO-101、LeKiwi移動ベース、Koch v1.1アームがあります。ROSなしで動作します。学習手法の背景はロボット学習のトピックとAI/ML Field Guideで解説しています。
SO-101は、LeRobotの利用者の多くが最初に使うアームです。SO-ARM100リポジトリ(Apache-2.0)には、プリント用の部品データ、部品表、キット販売業者へのリンクがあります。LeRobotのSO-101ガイドによれば、フォロワーアームはギア比1/345のFeetech STS3215サーボを6個使います。リーダーアームは手で動かせるよう、3種類のギア比を組み合わせています。6個のモータは、肩の旋回(shoulder pan)、肩の上下(shoulder lift)、肘の屈曲(elbow flex)、手首の屈曲(wrist flex)、手首の回転(wrist roll)、グリッパを駆動します。メーカーは可搬重量とリーチを公表していません。ロボットリファレンスに掲載しています。
Drake(BSD-3-Clause)は、マルチボディ動力学、最適化、計画のための、Pythonバインディング付きC++ツールボックスです。pipまたはaptでインストールできます。軌道最適化やモデル予測制御(MPC)のように、勾配、接触モデル、最適化を一か所で扱いたい作業に向いています。
OMPL(BSD-3-Clause)は、RRTやPRMなどのサンプリングベースの計画器のライブラリです。通常は、衝突判定を行う状態妥当性チェッカーを利用者が用意します。OMPLのREADMEによれば、最近のリリースにはSIMDで高速化した衝突判定のためのVAMPも同梱されており、デフォルトで有効です。MoveItのデフォルトの計画器ライブラリであり、ROSから使う場合はMoveIt経由が推奨されます。アルゴリズムは動作計画のトピックで解説しています。
PyBullet(zlib)はURDFを読み込み、接触を含む剛体をシミュレーションし、p.connect(p.DIRECT)でヘッドレス実行できます。当サイトのピックアンドプレースのプロジェクトで使っています。
移行メモ
- LeRobotからROS 2へ。 LeRobotはシリアルバス経由でモータを直接駆動します。学習済みの方策をROS 2システムで使うには、推論をノードで包みます。このノードはカメラと関節のトピックをサブスクライブし、指令をパブリッシュします。関節の順序と単位は学習データと同一にしてください。
- LeRobotデータセットの単位。 関節値は、キャリブレーション後にロボットクラスが記録する値そのものです。異なるアームのデータセットを混ぜる前に、記録された単位と範囲を確認してください。
- PyBulletからMuJoCoへ。 どちらもURDFを読み込めますが、接触モデル、デフォルトの摩擦、関節のダンピングが異なります。ゲインはコピーせず再調整してください。MJCFの慣例はMuJoCoのハブを参照してください。
- OMPLをMoveIt内で使うか単体で使うか。 単体のOMPLには状態妥当性チェッカーが必要です。Drakeのジオメトリクエリなどを使った独自の衝突判定か、同梱のVAMPを使います。MoveIt内では、MoveItのプランニングシーンを使います。
注意点
- PyBulletの保守状況。 PyPIでの最終リリースは2025年1月30日の3.2.7で、GitHubでタグ付けされた最終リリースは2022年のものです。READMEにはissueトラッカーを閉鎖したと書かれています。教育や手早いテストにはまだ使えます。長く使う新規プロジェクトでは、MuJoCoやDrakeを検討してください。
- 低コストのサーボ。 部品表では、7.4 V版STS3215のストールトルクを6 Vで16.5 kg·cm(約1.6 N·m)としています。より大きなトルクが必要な場合に向けて、30 kg·cmの12 V版も挙げています。剛性と精度は産業用アームよりはるかに低いと考えてください。SO-101は学習用のプラットフォームなので、安全ガードのないハードウェアとして扱ってください。
- 変化の速いAPI。 LeRobotは2026年に複数回リリースされ、データセット形式はバージョン3になっています。各データセットの記録に使ったLeRobotのバージョンを固定してください。
- データとモデルのライセンス。 LeRobotのコードはApache-2.0ですが、Hub上のデータセットや事前学習済み方策にはそれぞれ独自のライセンスがあります。商用利用の前に確認してください。
訂正
- 2026年11月14日:OMPLには衝突判定が含まれていないと記載していました。OMPLのREADMEには、衝突判定用としてVAMPが挙げられており、デフォルトで有効です。