← 一覧に戻る

AI Agentに手足が生まれる:Strands+LeRobotがロボットをつなぎ、自然言語で実機を直接駆動

itadol5j

AI Agentに手足が生まれる:Strands+LeRobotがロボットをつなぎ、自然言語で実機を直接駆動

この2年間のAI Agent最大の問題は何か?

チャットができないのでも、コードが書けないのでもない。その多くがまだ画面の中に閉じ込められていることだ。計画、検索、スクリプト作成、API呼び出しを任せれば強い。だが、実際にロボットアームを押し動かし、ロボットの実演を録画し、シミュレーションを回し、ポリシーを実機ハードウェアへデプロイせよと言うと、たちまち大量のエンジニアリングのグルーコードにぶつかる。

いま、この断絶が埋められ始めた。

AWSエコシステムのStrands Robots SDKがオープンソース化され、Hugging Face LeRobot、MuJoCoシミュレーション、ポリシー推論、Zenohマルチロボットメッシュといった能力をStrands AgentToolsとしてパッケージ化した。公式の説明は非常にストレートだ:strands-robots gives a Strands Agent hands。

平たく言えばこうだ。AI Agentに手足が生まれ始めたのだ。

今回、何がリリースされたのか

プロジェクト名はstrands-robots、コードはstrands-labs/robots、PyPIのパッケージ名もstrands-robotsだ。中核となるのはRobot()ファクトリで、シミュレータ上のロボットや実機ロボットを、Strands Agentが呼び出せるツールへと変換する。

最小の例が非常に象徴的だ:

from strands import Agent
from strands_robots import Robot

robot = Robot(“so100”)
agent = Agent(tools=[robot])
agent(“Pick up the red cube”)

デフォルトでは、Robot(“so100”)が起動するのはMuJoCoシミュレーションで、GPUも実機ハードウェアも不要だ。実機ロボットへ切り替えるには、mode=”real”を明示的に指定する必要がある:

robot = Robot(“so100″, mode=”real”, port=”/dev/ttyACM0″)

このデフォルト設計が重要だ。まずシミュレーション、その後に実機。自然言語の一言で、誤って実際のサーボを動かしてしまうことがない。

LeRobotとは何か:ロボットの世界におけるHugging Faceツールチェーン

Strands Robotsを理解するには、まずLeRobotを理解しなければならない。

LeRobotはHugging Faceが推出した実世界ロボット学習ライブラリで、ロボット分野のモデル、データセット、ツールをPyTorchエコシステムに統一し、ロボット学習のハードルを下げることを目指している。

公式の位置づけは明確だ:

  • 実世界ロボットのモデル、データセット、ツールを提供する
  • より多くの人がロボットのデータセットや事前学習モデルを共有できるようにする
  • 模倣学習、強化学習、VLAモデルをカバーする
  • 実機ハードウェアとシミュレーション環境の双方に対応する

LeRobotで最も重要なもののひとつが、LeRobotDataset形式だ。ロボットの視覚映像、状態、行動データを標準的な構造に整理する。通常はMP4や画像にParquetを組み合わせる。これにより、データはHugging Face Hubへアップロードできるだけでなく、学習・評価・デプロイのパイプラインでも再利用できる。

言い換えれば、LeRobotはロボット学習に「データとモデルの土台」を提供している。

だが、土台は完全なワークフローとは限らない。実際に動かすには、シミュレーション、ハードウェアポート、カメラ、キャリブレーション、ポリシー推論、マルチロボット協調、安全停止の処理も必要だ。Strands Robotsが補っているのはまさにこの層だ。

Strands Robotsがするのは置き換えではなく、ラップだ

AI Agentに手足が生まれる:Strands+LeRobotがロボットをつなぎ、自然言語で実機を直接駆動

Strands + LeRobotを見て、多くの人が最初に浮かべる反応は「また新しいロボットフレームワークか?」かもしれない。

違う。

これはむしろ、ロボット関連の処理をAgentから呼び出せるツール層へとラップしたものだ。LeRobotは引き続きロボットのデータ、ポリシー、ハードウェアインターフェースの大部分を担当する。MuJoCoは引き続きシミュレーションを担当する。GR00T、ACT、Pi0、SmolVLA、Diffusionなどは引き続きポリシーの供給源だ。Zenohはピアツーピアのメッシュを担当する。

Strands Robotsの価値は、これまで分散していたコンポーネントをひとつのAgentワークフローへとまとめたことだ:

  • 実演データの録画
  • LeRobotDatasetへの書き込み
  • Hugging Face Hubデータのアップロードまたは再利用
  • MuJoCoでのシミュレーション実行
  • ローカルまたはリモートポリシーの呼び出し
  • 実機ロボットへのデプロイ
  • 複数台のロボットをメッシュで協調させる
  • 必要に応じてE-STOP緊急停止をブロードキャストする

以前はこれらのステップに大量のグルーコードが必要だった。今ではそれらをAgentToolsにして、同一のStrands Agentにスケジューリングさせられる。

ひとことでまとめたパイプライン:自然言語から機械の動作へ

公式が示すパイプラインは直感的だ:

自然言語の指示 → Strands Agent → Robotツール → Policy Provider → Action Chunk → MuJoCoシミュレーションまたは実機ハードウェア → observationの還流

このパイプラインの要点は、Agentがモーターを直接制御するのではなく、policy providerを通じてaction chunkを生成し、それをシミュレーションまたはハードウェアへ実行させる点だ。

対応するポリシーの供給源には以下が含まれる:

  • NVIDIA GR00T
  • LeRobot ACT
  • Pi0 / Pi0.5
  • SmolVLA
  • Diffusion Policy
  • 古典的なmotion planner
  • MPC
  • scripted controller
  • mock policy

つまりStrands Robotsは単一のモデルに賭けたのではなく、さまざまなポリシーを同一の抽象インターフェースの背後に置いたのだ。今日はmock policyでフローを検証し、明日はローカルのLeRobotモデルへ差し替え、明後日はGR00T推論サービスへ接続する、といったことができる。

50以上のロボット、8大カテゴリ

Strands Robotsは公式に50以上のロボットを挙げており、8つのカテゴリをカバーしている:

  • ロボットアーム:SO100、SO101、Koch、OMX、Panda、UR5e、xArm7など
  • ヒューマノイド:Unitree G1、Unitree H1、Reachy2、Talos、Cassieなど
  • 移動ロボット:Spot、Unitree Go2、Stretch、LeKiwi、EarthRoverなど
  • ハンド:Shadow Hand、Allegro Hand、Leap Hand、Robotiq 2F85など
  • 双腕システム:ALOHA、bi_openarm、Trossen WXAI
  • 飛行体:Crazyflie、Skydio X2
  • 表現/インタラクションロボット:Reachy Mini
  • 移動操作ロボット:Google Robot

このうち一部のロボットは、LeRobot経由で実機を駆動できる。たとえばSO100、SO101、Koch、OMX、HopeJR、ALOHA、bi_openarm、Reachy2、Unitree G1、LeKiwi、EarthRoverだ。

さらに重要なのは、すべてのロボットでシミュレーションが可能なことだ。開発者にとってこれは、低コストのシミュレーションでまずフローを通してから、ハードウェアを購入するかどうかを判断できることを意味する。

メッシュによるマルチロボット協調 + 緊急停止

AI Agentに手足が生まれる:Strands+LeRobotがロボットをつなぎ、自然言語で実機を直接駆動

マルチロボットと安全制御は、Agentを物理世界につなぐうえで避けて通れない課題だ。

Strands RobotsにはZenohメッシュネットワークが組み込まれている。各ロボットは自動的にピアとなり、tell()で別のロボットとやり取りし、broadcast()で指示をブロードキャストし、E-STOPで緊急停止できる。

メッシュはAWS IoT Coreへブリッジできるほか、device-connectプラグインでより高度なデバイス感知ネットワークを構築することもできる。

安全設計も明確だ:

  • デフォルトはシミュレーション。モード切り替えにはmode=”real”の明示的宣言が必須
  • 状態、実行、停止の3つのツール動作を分離
  • E-STOPは通常の制御フローから独立
  • 実機動作の前に人間による承認割り込みを挟む

産業の現場では、これらはオプション設定ではない。ひとつ欠けるだけで事故につながり得る。

用語の整理:誰がこれをやったのか

この統合ソリューションはAWSがオープンソース化し(Apache 2.0)、hugggingface.coのブログで発表された。Strands自体はAWSがオープンソース化したAgent SDK(Apache 2.0)で、PythonとTypeScriptに対応し、完全なAgentフレームワークを備える。LeRobotはHugging Faceのプロジェクトだ。両者の交点こそがstrands-robotsである。

始め方

シミュレーションを試すだけなら、まずMuJoCo extraから始めるのがおすすめだ:

uv pip install “strands-robots[sim-mujoco]”

実機ハードウェアとローカルのLeRobotポリシーに接続するなら:

uv pip install “strands-robots[sim-mujoco,lerobot]”

すべてをまとめて入れるなら:

uv pip install “strands-robots[all]”

基本インストールは軽量で、numpy、opencv-headless、Pillowなどだけを含む。異なる能力はextraごとに分けてインストールする仕組みだ。sim-mujocoはシミュレーション用、lerobotは実機とローカルポリシー用、groot-serviceはNVIDIA GR00T推論用、meshはZenohマルチロボットネットワーク用、mesh-iotはAWS IoT Coreのフリート向けだ。

この分割方法はかなり実用的で、最初からすべての依存関係を押し込むようなことはしない。

誤読しないでほしい:「ワンクリックで具現化する知能」ではない

AI Agentに手足が生まれる:Strands+LeRobotがロボットをつなぎ、自然言語で実機を直接駆動

ここでひとつ、冷水を浴びせておきたい。

Strands Robotsは確かにクールだが、AIをワンクリックでロボットの専門家に変えるものではない。

実機では依然として次のような課題に直面する:

  • ポートの認識
  • サーボとの通信
  • カメラの設定
  • ロボットアームのキャリブレーション
  • データスキーマの整合
  • checkpointの可用性
  • GPU / Docker / 推論サービス
  • シミュレーションから現実へのsim2realギャップ
  • マルチロボットの安全境界

たとえばGR00Tのローカル推論には、NVIDIA GPU、Docker、checkpoint、正しいデータ設定が必要かもしれない。実機SO-101も、mode=”real”と書くだけで自動的に赤いキューブを掴めるわけではなく、カメラ、キャリブレーション、ポリシー、安全な環境が依然として必要だ。

本当の価値:グルーコードを少なく書くこと

今回最も注目すべきは、モデルの能力が突然跳ね上がったことではなく、エンジニアリングのパイプラインがつながったことだ。

ロボット開発で最もつらいのは、大抵アルゴリズムの論文ではなく、システム同士が互いに会話しないことだ:

  • データセット形式がひとつ
  • シミュレーションスクリプトがまたひとつ
  • 実機制御もひとつ
  • ポリシー推論もひとつ
  • マルチロボット通信もひとつ
  • 安全停止もまた別

Strands RobotsはこれらをAgentToolsへと収斂させた。

これは研究チームにもスタートアップにも現実的な話だ。まずローカルのノートPCでSO100のシミュレーションを動かし、ハードウェアを買わず、GPUも使わず、Hubの権限も申請せずに済む。フローを確認した後、段階的に実機SO101、GR00T、Hugging Face checkpoint、マルチロボットメッシュを導入すればよい。

予算とリスクを段階的に投入でき、初日からハードウェア、データ、学習、デプロイをすべて背負い込む必要はない。

なぜAgentにとって重要なのか

かつてAgentのツールのほとんどはデジタル世界のものだった。ファイル、ブラウザ、データベース、API、ターミナル、コードインタープリタ。

Strands Robotsは、ツールの境界を物理世界へ押し広げた。ロボット、カメラ、サーボ、シミュレーション環境、行動ポリシー、マルチロボット通信だ。

これは、Agentの能力範囲が「情報処理」から「物理的な実行」へ拡大し始めたことを意味する。

もちろん、物理的な実行にはより慎重さが求められる。現実世界には取り消しキーがない。ロボットアームが机にぶつかり、物を壊し、人に当たっても、スクリプトの再実行では解決しない。だからこそ、デフォルトのシミュレーション、明示的な実機モード、E-STOP、承認割り込みといった安全設計こそが、このプロジェクトの成熟の証なのだ。

ROSとの関係

AI Agentに手足が生まれる:Strands+LeRobotがロボットをつなぎ、自然言語で実機を直接駆動

これはROSを置き換えるのか、と問う人もいるだろう。

短期的には違う。ROSはロボットシステムエンジニアリングの長年の基盤であり、ノード、トピック、サービス、launch、ドライバのエコシステムは非常に深い。Strands RobotsはむしろAgentオーケストレーション層で、「大規模モデルがツールインターフェースを通じてロボットタスクを編成できるようにする」ことに焦点を当てている。

今後は、低レイヤーのハードウェアと複雑なロボットシステムにはROSやベンダーSDK、コントローラが残り、Agent層はStrands Robotsのようなツールでタスク計画、ポリシー呼び出し、データ記録、シミュレーション検証、マルチロボット協調をつなぐ、という形が現れやすいだろう。

つまり、これはシャーシを奪うのではなく、上層のワークフローの入口を奪うものだ。

まとめ

Strands + LeRobotによる今回のロボットパイプライン接続の本当の意義は、一言でロボットアームを即座に賢くすることではなく、AI Agentが物理世界へ通じる標準的なツールインターフェースを手に入れ始めたことにある。

LeRobotはロボット学習のデータ、モデル、ハードウェアインターフェースを提供する。MuJoCoは安全なシミュレーションを提供する。GR00T、ACT、Pi0、SmolVLA、Diffusionなどがポリシーを提供する。Zenohメッシュがマルチロボット通信を提供する。Strands RobotsはこれらをAgentToolsとしてラップする。

これがその価値だ。ワンクリック革命ではなく、大量のグルーコードを書かずに済むこと。

AI Agentはこれまで脳と口を持っていた。今、手足を生やし始めた。

だが、本当に現実世界に足を踏み入れる前には、ブレーキ、ガードレール、承認、シミュレーション、そして大量のエンジニアリングの細部が依然として必要だ。

これこそが、エンボディッドAIをPPTから実験台へと進める、最もリアルな一歩だ。