10. LeRobot と reBot アームのシステムアーキテクチャ
Seeed Physical AI Beginner's Course の第10章では、LeRobot とは何か、 リーダー/フォロワーアームの役割分担、Robot と Teleoperator のプラグインアーキテクチャ、 カメラ/CAN/アームのデータフロー、そして DM と RS の設定の違いについて学びます。
10.1 LeRobot とは何か、なぜ必要なのか?
10.1 LeRobot とは何か、なぜ必要なのか?
第9章では、模倣学習の概念的なフレームワーク(デモンストレーション、データ、モデル、クローズドループ)を整理しました。しかし実際にこのパイプラインを動かそうとすると、すぐに些細だが具体的な多くの問題に直面します:
- カメラフレームと関節角度のタイムスタンプをどのように揃えるか?
- 何十もの Episode の画像・状態・行動を保存するには、どのようなフォーマットを使うべきか?
- 学習済みモデルを Hugging Face Hub でどのように共有・ダウンロードするか?
- データ収集・学習・推論という 3 つのコードベースが、どのように同じアーム制御ロジックを共有するか?

もし皆が毎回「車輪を再発明」していたら、ロボット学習はごく少数の研究室だけの遊びのままでしょう。LeRobot は、これを解決するために Hugging Face が構築したオープンソースフレームワークです。PyTorch で実績のある模倣学習アルゴリズム(ACT、smolVLA、GR00T など)を実装し、標準的なロボットデータセット形式を定義し、テレオペレーションとデータ収集から学習、実機デプロイまでをカバーする完全なコマンドラインツールチェーンを提供します。
10.2 リーダーアームとフォロワーアーム
10.2 リーダーアームとフォロワーアーム
- 模倣学習の第一歩は「人間がロボットに実演して見せる」ことです。問題はこうです:人間は 750 mm リーチのアームに、どのように精密な把持動作を「教える」のでしょうか?物理的に手で押して動かすのは危険なうえ、滑らかでないデータになってしまいます。
- その答えがマスタースレーブ型テレオペレーションです。構造的に類似した軽量で柔軟なデモ用アームを「入力デバイス」として使い、人間がリーダーを動かし、フォロワーがリアルタイムで追従します。

- リーダーアーム(leader/教示アーム): 人間が手で持って動かすアームです。これは位置を読むだけで、自身の関節角度をリアルタイムに読み取り、コンピュータへ送信します。力を出力する必要がないため、軽量で低コストなサーボ構成を採用できます。
- フォロワーアーム(follower/実行アーム): 実際に作業を行うアームです。リーダーから関節角度を受け取り、高出力の関節モータを駆動して追従し、実際の把持を完了します。
これは、クレーン運転席の操作レバーとクレーンアーム本体の関係に似ています。オペレータは軽いレバー(リーダー)を動かし、実際の重量物の吊り上げは外のアーム(フォロワー)が行います。レバーのあらゆる動きが、クレーンアームの動きへリアルタイムに「翻訳」されます。
10.3 プラグインアーキテクチャ
10.3 プラグインアーキテクチャ:Robot プラグインと Teleoperator プラグイン
LeRobot の第一の設計原則は、「フレームワークは特定のハードウェアを知らず、インターフェースだけを定義する」ということです。ハードウェアはプラグインとして接続されます。
| Robot プラグイン | Teleoperator プラグイン | |
|---|---|---|
| 役割 | 実行者:行動を受け取り、状態を報告 | 入力:人間の動作意図を読み取るだけ |
| データ方向 | 双方向(読み取り + 書き込み) | 単方向(読み取り専用) |
| コアメソッド | get_observation(), send_action() | get_action() |
| reBot システムでの対応 | B601 フォロワー(スレーブアーム) | reBot 102 リーダー(マスターアーム) |
一言で区別すると:Robot は「実行」を担当し、Teleoperator は「読み取り」を担当します。

10.4 データフロー概要:カメラ、CAN、アーム
10.4 データフロー概要:カメラ、CAN、アーム
1 回の制御サイクルの中で、どのようなデータが、どのフォーマットで、どの経路を通って流れるのでしょうか?1 台のコンピュータに 3 種類の周辺機器が接続されており、それぞれ 3 本のデータパスに対応します:

10.5 4 つのワークフロー:同一システムの 4 つの使い方
10.5 4 つのワークフロー:同一システムの 4 つの使い方
ハードウェアとデータフローを理解したうえで、このステージの後半の章に出てくる 4 つのワークフローを見ると、同じプラグインと同じ設定を使い、呼び出す LeRobot ツールだけが異なることが分かります:
| ワークフロー | LeRobot ツール |
|---|---|
| テレオペレーション | lerobot-teleoperate |
| データ収集 | lerobot-record |
| 学習 | lerobot-train |
| 推論とデプロイ | lerobot-record(ポリシー付き)または推論スクリプト |
- テレオペレーションとデータ収集は同じハードウェアチェーンを使用し、違いはデータを記録するかどうかだけです。
- 推論デプロイとデータ収集は構造的に鏡像関係です: 収集中は行動がリーダー(人間)から来ますが、推論時はモデル(チェックポイント)から来ます。それ以外(カメラの読み取り、State フィードバック、CAN コマンド、安全制限)はすべて同一です。これがプラグインアーキテクチャの利点であり、「意思決定者」を変えてもシステムを変える必要がありません。
- テレオペレーションと推論デプロイ: どちらもすべてのハードウェアが動作し、オンラインでアームを制御しますが、「誰が意思決定するか」が異なります。テレオペレーションでは意思決定者は人間であり、推論ではモデルです。
10.6 DM と RS の設定の違い
10.6 DM と RS の設定の違い
| 比較項目 | B601-DM | B601-RS |
|---|---|---|
| PC 接続方法 | Damiao USB2CAN シリアルブリッジ | SocketCAN 互換 USB-CAN アダプタ |
| デバイス名 | /dev/ttyACM*(シリアルブリッジ) | can0(SocketCAN ネットワークインターフェース) |
--robot.type | seeed_b601_dm_follower | seeed_b601_rs_follower |
--robot.port | /dev/ttyACM0(実際の列挙結果に依存) | can0(実際の列挙結果に依存) |
--robot.can_adapter | damiao | socketcan |
2 つのバージョンの関係を一言でまとめると、同じ骨格に、2 組の「心臓と神経」が載っているということです。機械構造、関節の命名、上位ソフトウェアのワークフローは同一で、違いはすべてモータと CAN 通信チェーンにあります — そしてここが、すべての LeRobot コマンドの中で最も設定ミスが起こりやすいパラメータでもあります。
これは、後続のテレオペレーション、データ収集、学習、評価のコマンドが両方のアームでまったく同じであることを意味し、対応するアーム名だけを置き換えればよいということです。