Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ROSAというLLM使ったROSエージェントをおもちゃに実装してみた話

 ROSAというLLM使ったROSエージェントをおもちゃに実装してみた話

Avatar for takeofuture

takeofuture

January 23, 2026
Tweet

More Decks by takeofuture

Other Decks in How-to & DIY

Transcript

  1. Enabling Novel Mission Operations and Interactions with ROSA: The Robot

    Operating System Agent 第55回ロボティクス勉強会 Authors: Rob Royce, Marcel Kaufmann, Jonathan Becktor, Sangwoo Moon, Kalind Carpenter,Kai Pak, Amanda Towler, Rohan Thakker, Shehryar Khattak Affiliation: NASA Jet Propulsion Laboratory California Institute of Technology https://arxiv.org/pdf/2410.06472 https://github.com/nasa-jpl/rosa 自然言語でロボットを操作する 電子工作、ロボティクスの初心者が ROSAというLLM使ったROSエージェントをおもちゃに実装してみた話
  2. 興味のある仕事 ▪ 先端技術と情報技術の融合と応用 ▪ データサイエンス ▪ AI(生成AI,分析AI,識別AI), 統計や機械学習 ▪ ロボット、AI支援型CADや部品設計製造

    ▪ 愛知県名古屋市生まれ豊田市育ち ▪ 大学,大学院では地球物理専攻 ▪ 本業ロサンゼルス商社のデータサイエンティスト 個人でAI関連含むプロジェクト多数やったつもり ▪ 愛知県豊田市の空家に年数回滞在(日米2拠点生活) 趣味 ▪ キャンプやハイキング ▪ 自転車旅行 ▪ 青春18切符でのんびり列車旅行 ▪ 食べること @takeofuture https://zenn.dev/takeofuture
  3. 論文の研究概要と技術的背景(ROS x LLM) 課題 •ロボット技術は高度化しているが、 実運用にはROSの専門知識(CLI / topic / service)が必要

    •非専門家にとって運用の参入障壁が高い 既存アプローチの限界 •LLMを直接ロボット制御に使うと 曖昧性・再現性・安全性が問題になる •Prompt設計やOntology設計が新たな負担になる 本研究の提案:ROSA •ROSA = 自然言語とROSをつなぐ運用エージェント •LLMは 直接制御しない •自然言語 → ROSの既存ツール呼び出し に変換 •ROSの強み(安定実行)と LLMの強み(意図理解)を分離して活用 検証 •実機(屋外・屋内)+シミュレーションで評価
  4. ROSAのアーキテクチャ ROSAの基本構成(4要素) •LLM:自然言語の意図理解・計画 •Logic:文脈管理・出力解釈・ツール選択 •Memory:対話履歴と短期計画 •Action Space:ROS操作を定義した安全なツール群 設計思想 •ROSAは Cognitive

    Language Agent •ロボットの制御や計画を学習で置き換えない •既存ROS機能を「人の代わりに操作」するエージェント •HRI(Human-Robot Interaction)に特化した 身体性を持つエージェント Action Space(安全の要) •rosnode / ros2 topic など既存ROSツール+運用ユーティリティ •任意コード実行なし/事前定義ツールのみ •単一・逐次・並列ツール呼び出し対応 •結果に応じて再計画 Memory & Logic •Memory:Chat History / Scratchpad(短期) •Logic:RSP・Tool仕様・履歴を優先順位付きで統合 •Tool Calling対応LLM(API / Local) •将来:ROSA特化の小規模モデル(SLM)
  5. 論文でのロボット実証実験(1/3) - NeBula-Spot(屋外実機) •ロボットと環境 * Boston Dynamics Spot + JPL

    NeBula autonomy stack * JPL Mars Yard(屋外・不整地) * Visual Language Model(VLM)を搭載 •できること * 立つ・歩く・回転などの基本動作 * カメラ映像の内容を自然言語で説明 * ROSツール操作はすべてROSAが 内部で処理 •特徴的な点 動作前に確認を要求(安全確認) 操作は会話ベースで進行 ユーザ: 「ねえ Spot、立ち上がって。」 ROSA: 「立ち上がりました。次は何をしますか?」 ユーザ: 「1メートルほど前に進んで、左に15度回転して。」 ROSA: 「前に1メートル進み、左に15度回転します。安全を確認してください。」 ユーザ: 「うん、安全だから実行して。」 ROSA: 「前に1メートル進み、左に15度回転しました。次はどうしますか?」 ユーザ: 「カメラには何が見えている?」 ROSA: 「砂地の開けた場所が見えます。大きな岩が点在していて、左に20メートルほどのところに木々があり、右前方25メートルほどの位置に建物が見えます。」 ユーザ: 「なるほど。じゃあ、カメラ映像を見せて。」 ROSA: 「カメラ映像を表示しています。次は何をしますか?」 ROSA Demo: NeBula-Spot in JPL's Mars Yard This video demonstrates basic command and control plus scene understanding using ROSA: The Robot Operating System Agent. ROSA was developed at NASA Jet Propulsion Laboratory to enable advanced human-robot interaction using natural language. Read the paper on arXiv: https://arxiv.org/abs/2410.06472v1 Check out ROSA on GitHub: https://github.com/nasa-jpl/rosa https://www.youtube.com/watch?v=mZTrSg7tEsA
  6. ロボット実証実験(2/3) – EELS(屋内実機) •ロボットと環境 * EELS:蛇型・多関節ロボット * 屋内ラボ環境 * Waypoint移動・ヘッド制御などをサポート

    •注目ポイント * ROSAはサポート外の命令を無理に実行しない * 曖昧な指示に対して代替案を自然言語で提示 •例 「角の岩へ移動して」 「(x, y, θ)で指定してください」 •効果 * ハルシネーションを回避 * 専門知識を「会話の中で補完」 ユーザ: 「部屋の隅にある岩のほうへ移動して。」 ROSA: 「申し訳ありませんが、特定の物体を指定して移動することはできません。 移動する場合は、(x, y, θ) 形式のウェイポイントで指定してください。」 ユーザ: 「じゃあ、(1, −0.2) の位置に、向きは −90度で移動して。」 ROSA: 「指定されたウェイポイントに移動しました。 ただし、向きが約0.3度ずれているようです。もう一度調整しますか?」 ユーザ: 「いいよ、そのままで。頭を持ち上げて。」 ROSA: 「了解しました。頭部を持ち上げました。スキャンを実行しますか?」 ユーザ: 「カメラには何が見えていますか?」 ROSA: 「天井が高く、蛍光灯で照らされた実験室の環境が見えます。 左側には電子機器が置かれた金属製の棚があり、 右側には机と椅子、コンピュータのモニタがあります。 机には人が1人座っており、近くにもう1人立っています。」
  7. ロボット実証実験(3/3) – Carter(Simulation)とデモから見えたこと •シミュレーション環境 * NVIDIA Carter(AMR) * IsaacSim 上の仮想火星地形

    * LiDAR・カメラ・移動を統合 •特徴 * 曖昧な命令を * ROSAが自律的に分解 * マルチステップ・マルチツール実行 * 初心者でも安全に試行可能 ★3つのデモから見えたこと。 自然言語を 有効なROS操作に変換 不可能な命令には 対話で誘導 ロボットの状態を 文脈付きで説明 専門知識の学習コストを大幅に削減 ユーザ: 「行けるところまで 前に進んで。」 ROSA: 「できるだけ 前進するためには、 障害物や危険がないか 確認する必要があります。 LiDARスキャンを 実行しますか?」 ユーザ: 「はい、お願いします。」 ROSA: 「LiDARスキャンを 実行しました。 約4メートル前方に 障害物を検知しました。 進んでもよろしいですか?」 ユーザ: 「はい、進んでください。」 ROSA: 「了解しました。 4メートル前進しました。」 ユーザ: 「周囲を360度見渡した 映像を見せて。」 ROSA: 「カメラを回転させて、 複数のスナップショットを 撮影できます。 何枚撮影しますか?」 ユーザ: 「カメラの視野角は 90度だと考えて。」 ROSA: 「視野角が90度の場合、 周囲360度をカバーするために 4枚の画像を撮影しました。」 ROSA Demo: Carter with Nvidia IsaacSim This video demonstrates the integration of ROSA with Nvidia IsaacSim. ROSA was developed at NASA Jet Propulsion Laboratory to enable advanced human-robot interaction using natural language. Read the paper on arXiv: https://arxiv.org/abs/2410.06472v1 Check out ROSA on GitHub: https://github.com/nasa-jpl/rosa https://www.youtube.com/watch?v=mm5525G_EfQ
  8. 自分の環境でに再現(1/3) – Gazebo Sim ROS2+Gazebo Sim Langchain + ROSA Streamlit:デモ用のみ

    API: GPT-4o ローカルマシン: Qwen2.5-14B-Instruct-AWQ OR 1) .2m前進して 2). 1m後進して 3). 左に45度旋回して 4). 前に1m進んで 5). 左に45度曲がって 6). 前に2mすすんで rosa gazebo demo 8x https://youtu.be/F0t5vOG_gMs
  9. 自分の環境でに再現(2/3) – RaspberryPi5と2RWおもちゃの車 Raspberry PI-5 ROS2 Langchain + ROSA Streamlit:デモ用のみ

    スライドは撮影用に コマンドラインで実行 API: GPT-4o -------------------------------------------------- [STEP 1] PROMPT: You> 前進して ROSA> 前進しました。以下はエンコーダーのサンプルデータです: - 0秒: 左ホイールカウント 0, 右ホイールカウント 0 - 1秒: 左ホイールカウント 39, 右ホイールカウント 38 - 2秒: 左ホイールカウント 83, 右ホイールカウント 81 このデータは、2秒間の前進中に記録されたホイールの回転数を示しています。 (waiting 2.0s for filming) -------------------------------------------------- [STEP 2] PROMPT: You> バックして ROSA> バックしました。以下はエンコーダーのサンプルデータです: - 0秒: 左ホイールカウント 88, 右ホイールカウント 86 - 1秒: 左ホイールカウント 127, 右ホイールカウント 124 - 2秒: 左ホイールカウント 170, 右ホイールカウント 167 このデータは、2秒間のバック中に記録されたホイールの回転数を示しています。 (waiting 2.0s for filming) -------------------------------------------------- [STEP 3] PROMPT: You> 左回転して ROSA> 左回転しました。以下はエンコーダーのサンプルデータです: - 0秒: 左ホイールカウント 176, 右ホイールカウント 172 - 1秒: 左ホイールカウント 214, 右ホイールカウント 211 - 2秒: 左ホイールカウント 258, 右ホイールカウント 256 このデータは、2秒間の左回転中に記録されたホイールの回転数を示しています。 (waiting 2.0s for filming) -------------------------------------------------- [STEP 4] PROMPT: You> 左のタイヤを後ろにまわして ROSA> 左のタイヤを後ろに回しました。以下はエンコーダーのサンプルデータです: - 0秒: 左ホイールカウント 263, 右ホイールカウント 261 - 1秒: 左ホイールカウント 305, 右ホイールカウント 261 - 2秒: 左ホイールカウント 351, 右ホイールカウント 261 このデータは、2秒間の操作中に記録されたホイールの回転数を示しています。右のタイヤは動いていません。 rosa tb3 demo 2 参考図書: 中村俊幸著 趣味のロボット制作: ROS2入門編 ローカルマシン: Qwen2.5-14B- Instruct-AWQ OR https://www.youtube.com/watch?v=ZO1lS3wsYEw
  10. 自分の環境でに再現(3/3) – 司令塔PCとRaspberryPi5 ROS通信 API: GPT-4o Raspberry PI5 ROS2 ROS2

    Langchain + ROSA Streamlit:デモ用のみ /cmd_vel (geometry_msgs/msg/Twist) /encoder_counts (std_msgs/msg/String) /camera/image/compressed (sensor_msgs/msg/CompressedImage) ローカルマシン: Qwen2.5-14B-Instruct-AWQ OR
  11. 所感と次に何をしようか考える ★所感 * 論文自体は最先端のLLM/VLMという方向ではなくどうLLM/VLMをロボティクスに 応用できるか示唆する内容 * インストールが止めても簡単(pipで一発) * コードもAPACH LICENSE

    2.0で公開されているのでこれをこのまま使っていいし改修もできそう。 * あらためてLLMの拡張手法(特にTOOL-USE)の有用性を感じた! ★今後どうする * まずは整地地面を安定走行させる * APIでGPO4oからローカルモデルで試す。( すでにQwen2.5-14Bでは一応動くこと検証) * ROSで動かすことを考えてもっと非力なIOTデバイスで情報収集か制御を試す * ロボットアームや4足歩行型ロボットにも応用してみたい * 衝突センサーと小型大容量バッテリーや軽量で長い電源配線を付けて狭いとこで直接強化学習させてみる * 電気電子工学やセンサーの勉強をしてさらに電子工作の練習経験して手先をもう少し器用にしよう GPU積んだ クラウドサーバで 目的達成のための 関数選択の 組み合わせを 強化学習 指令&情報収集 端末 ROS ネットワーク