>100 Views
January 17, 26
スライド概要
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
2026年度前期第4回 論文読会 Enabling Novel Mission Operations and Interactions with ROSA: The Robot Operating System Agent 自然言語でロボットを操作する ROSA:LLMを用いたROSエージェント 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 KaiRA社会人メンバー 柴田 たけお 0
目次 ■ ■ ■ ■ ■ ■ ■ ■ ■ 論文紹介の動機 研究概要 技術的背景 ROSAのアーキテクチャ ロボット実証実験 ヒューマンロボットインタラクション 実装とシステム設計 倫理的配慮と安全性 まとめと今後の展望
論文紹介の動機 ― なぜこの論文を選んだのか ― ●ロボット業界の背景と課題 2026年1月現在、ROS2はロボット操作・開発フレームワークとして事実上の主流となっている ROS2は多くのロボットやシミュレータにおいて、共通の構造・標準を提供している一方で、 実際の操作や運用には依然として専門的な知識やコマンド操作が求められる ●関心の出発点 ROS2が持つ既存の構造や標準を活かしたまま、自然言語でロボットを操作できる仕組みが実現できないか、 という点に強い関心を持った 特に、「自然言語を直接ロボット制御に用いる」のではなく、既存のROS機能を安全に呼び出す形でLLMを活用する という設計思想に注目した ●本論文を選んだ理由 ROSAは、ROS2の既存インタフェース(ノード・トピック・サービス)を前提としながら、 LLMを「運用エージェント」として組み込むアーキテクチャを提案している また、LLMについてもAPIベースのモデルとローカル推論モデルの両方を想定した柔軟な設計となっており、 実機・シミュレーションを問わず高い応用可能性があると考えた
研究概要 ●研究の背景 * ロボット技術は製造・医療・宇宙探査などで発展してきた一方、実運用には高度な専門知識が必要であり、 非専門家にとって参入障壁が高い * 比較的単純なロボットであっても、専門的訓練を受けたオペレータが必要となる場合が多い ●本研究の提案 * ROSA(Robot Operating System Agent)を提案 * ROS(ROS1 / ROS2)と自然言語を橋渡しするAIベースの運用エージェント * LLMを用いて、自然言語による指示をROSの明確に定義されたツール呼び出しへ変換 ●ROSAの特徴と意義 * ROSの既存インタフェース(ノード・トピック・サービス)を前提とした設計 * ReActエージェントとして状態理解と行動を統合、マルチモーダル・多言語対応により ロボット操作の民主化を目指す * 倫理的配慮を組み込み、安全性・透明性を重視 ●検証環境 * 実機(JPL Mars Yard、ラボ) * シミュレーション環境(複数ロボット)
技術的背景(ROS: Robot Operating System) ROSとロボット運用の課題 ●ロボット技術の現状 * ロボットは知覚・操作・自律性の面で高度化している * 一方で、人間がロボットを操作・運用する難しさは 依然として大きい ●ROSの役割 * ROSはロボット開発を支える オープンソースのソフトウェアフレームワーク (https://docs.ros.org/en/jazzy/index.html) * モジュール化・再利用性を重視し、 多様なロボットやシステムで共通基盤を提供している ●残る課題 * ROSは柔軟で強力である一方、 操作や運用には専門知識が必要 * CLIやプログラミング言語(C++/Python)への依存が高く、 非専門家には学習コストが高い
技術的背景(LLM: Large Language Model) LLMと自然言語ロボット操作の研究動向 ●LLMの可能性 * LLMは自然言語理解において飛躍的な進展を 遂げている * ロボット分野でも自然言語をタスク計画や操作に 用いる研究が進められている ●既存研究の課題 * LLMを直接ロボット制御に用いる場合、 自然言語の曖昧性や再現性の確保が課題となる * Prompt設計やOntology設計など、 新たな専門性を要求する場合も多い ●ROSAの立ち位置 * ROSAは、LLMを直接制御に使うのではなく、 ROSの既存機能を呼び出す 「運用インタフェース」として利用 * LLMの強み(意図理解)と ROSの強み(安定した実行)を分離して活用 ReAct(Reasoning–Action–Observation) 「推論 → 実行 → 観測」のループ構造例 ROSノードの一覧を教えてください ROSAはまず、ユーザの意図を解釈する。 • ユーザの目的は 「利用可能なROSノードの一覧を取得すること」 • そのためには、ROSのノード一覧を取得する • ツールを呼び出せばよい rosnode list() という ROSのツールを呼び出す 取得されたROSノード一覧: • /rosout • /talker • /listener • /parameter_server 以下が利用可能なROSノードの一覧です • /rosout • /talker • /listener • /parameter_server
ROSAのアーキテクチャ(1/3) ●ROSAの基本構成 *ROSAは以下の4要素から構成される - Action Space(ツール群) - Memory(記憶) - Logic(内部制御) - LLM(推論・計画) ●設計思想の特徴 * ROSAは Cognitive Language Agent に分類される * ロボットの計画・制御・移動を学習で置き換えるのではなく、既存のROS機能を人間の代わりに操作する役割を担う * そのため、ROSAはHuman-Robot Interaction(HRI)に特化した「身体性を持つエージェント」と位置づけられる
ROSAのアーキテクチャ(2/3) ●Action Spaceとは * Action Spaceとは、 ROSAが呼び出すことを許可されたツールの集合 * 標準的なROSツール (例:rosnode, ros2 topic など)に加え、 - ログ取得 - センサ情報取得 - 画像キャプチャ などのユーティリティツールを含む ●安全性の担保 * ROSAは 任意のコード実行を行わない * 呼び出せるツールは * 事前定義されたフォーマットを満たすもののみ * 不正・危険な操作を防ぐ制約が組み込まれている ●Single / Multi Tool 呼び出し * 単一ツール呼び出し→ 状態確認・情報取得 * 逐次実行→ 依存関係のある処理 (診断 → 校正など) * 並列実行→ 独立した複数の情報取得 (バッテリ・CPU等) ●結果に応じて再計画 *ツールの失敗や予期しない結果を受けて 計画を動的に修正可能
ROSAのアーキテクチャ(3/3) ●Memory(記憶) * ROSAは2種類の記憶を利用 - Chat History:ユーザとの対話履歴 - Scratchpad:短期的な計画や思考の保持 * 長期・個人特化の記憶は未対応 → 今後は Semantic / Episodic Memory を検討 ●Logic(内部制御) * LLMの Context Window 管理 - Robot System Prompts(RSP) - Tool仕様 - Scratchpad - Chat History を優先順位付きで統合 * Context超過時は古い対話から削除 * LLM出力は LangChain を用いて解析 ●Robot System Prompts(RSP) * ロボットの身体,環境,制約をLLMに伝えるためのプロンプト * 完全なルールではなく ヒューリスティック 曖昧・矛盾したPromptは挙動不安定の原因→ 今後の改善課題 ●Large Language Models * Tool Calling対応モデルなら利用可能 * API型・ローカル型の両方を想定 * 巨大モデルは計算資源が課題→ ROSA特化SLM が今後の方向性
ロボット実証実験(1/4) - 概要 ●デモの目的 ROSAが異なるロボット・環境でも一貫した自然言語インタフェースを提供できることを示す ●評価環境 * NeBula-Spot:屋外・実機(JPL Mars Yard) * EELS:屋内・実機(ラボ環境) * Carter:完全シミュレーション(NVIDIA IsaacSim) ●共通点 *ユーザ操作はすべて自然言語 * ROSAがLLMとROSツールを仲介 * 実際のロボット操作はすべて安全に完遂
ロボット実証実験(2/4) - NeBula-Spot(屋外実機) ●ロボットと環境 * Boston Dynamics Spot + JPL NeBula autonomy stack * JPL Mars Yard(屋外・不整地) * Visual Language Model(VLM)を搭載 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 ●できること * 立つ・歩く・回転などの基本動作 * カメラ映像の内容を自然言語で説明 * ROSツール操作はすべてROSAが 内部で処理 ●特徴的な点 動作前に確認を要求(安全確認) 操作は会話ベースで進行 ユーザ: 「ねえ Spot、立ち上がって。」 ROSA: 「立ち上がりました。次は何をしますか?」 ユーザ: 「1メートルほど前に進んで、左に15度回転して。」 ROSA: 「前に1メートル進み、左に15度回転します。安全を確認してください。」 ユーザ: 「うん、安全だから実行して。」 ROSA: 「前に1メートル進み、左に15度回転しました。次はどうしますか?」 ユーザ: 「カメラには何が見えている?」 ROSA: 「砂地の開けた場所が見えます。大きな岩が点在していて、左に20メートルほどのところに木々があり、右前方25メートルほどの位置に建物が見えます。」 ユーザ: 「なるほど。じゃあ、カメラ映像を見せて。」 ROSA: 「カメラ映像を表示しています。次は何をしますか?」
ロボット実証実験(3/4) – EELS(屋内実機) ●ロボットと環境 * EELS:蛇型・多関節ロボット * 屋内ラボ環境 * Waypoint移動・ヘッド制御などをサポート ●注目ポイント * ROSAはサポート外の命令を無理に実行しない * 曖昧な指示に対して代替案を自然言語で提示 ●例 「角の岩へ移動して」 「(x, y, θ)で指定してください」 ●効果 * ハルシネーションを回避 * 専門知識を「会話の中で補完」 ユーザ: 「部屋の隅にある岩のほうへ移動して。」 ROSA: 「申し訳ありませんが、特定の物体を指定して移動することはできません。 移動する場合は、(x, y, θ) 形式のウェイポイントで指定してください。」 ユーザ: 「じゃあ、(1, −0.2) の位置に、向きは −90度で移動して。」 ROSA: 「指定されたウェイポイントに移動しました。 ただし、向きが約0.3度ずれているようです。もう一度調整しますか?」 ユーザ: 「いいよ、そのままで。頭を持ち上げて。」 ROSA: 「了解しました。頭部を持ち上げました。スキャンを実行しますか?」 ユーザ: 「カメラには何が見えていますか?」 ROSA: 「天井が高く、蛍光灯で照らされた実験室の環境が見えます。 左側には電子機器が置かれた金属製の棚があり、 右側には机と椅子、コンピュータのモニタがあります。 机には人が1人座っており、近くにもう1人立っています。」
ロボット実証実験(4/4) – 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
ヒューマンロボットインタラクション ●背景:なぜHRIが問題になるのか * 高度なロボットシステムは複数分野の専門家によって開発されており、知識が分断されがち * 多数のセンサ・アクチュエータ・サブシステムが運用・トラブル対応の障壁となる * 日常運用でも 専門家(SME)への依存が大きい ●ROSAの役割 * ROSAは 人とロボットの間に立つ知的インタフェース * LLMを用いて、ドキュメント、要件・仕様、技術知識を 自然言語で横断的に統合 * 非専門家でも操作手順の案内、トラブルシュート、システム理解が可能 SMEは高付加価値業務に集中できる ●マルチモーダル・多言語対応 * テキスト:CLI / GUI(基本) * 音声:STT / TTS によるハンズフリー操作 → 現場・ウェアラブル環境で有効 * 視覚:VLMによる 環境説明、障害物・距離把握 * 多言語:英語以外でも操作可能 → 国際・多拠点運用に対応 ●限界と注意点 * LLMは計算資源を大量に消費、レイテンシも発生する可能性 * ハルシネーションのリスク→ 人間確認・ルール制約が不可欠 * 知識更新・運用には継続的な管理と検証が必要
実装とシステム設計(1/4) – 実装要点 実装の基本方針 ROSAは Python で実装 ROS1 / ROS2 両対応 モジュール化された設計により拡張が容易 ツールベース設計 ROS操作はすべて ツール(関数)として定義 LLMは「どのツールを使うか」だけを判断 新しいロボット機能は ツール追加だけで拡張可能 安全性と信頼性 パラメータ化(namespace / pattern / blacklist) 危険な操作を防ぐ 集中管理された制約 ツールの戻り値は 構造化データ → 推測や誤回答を抑制 LLMとフレームワーク LangChain + ReAct を利用 Tool Calling対応モデルなら利用可能 APIモデル/ローカルモデルの両方を想定
実装とシステム設計(2/4) – 実際に実装1 GPT-4o rosa tb3 demo 1 PC Ubuntu24.04 GazeboSim TB3 + ROSA ROS2+Gazebo Sim Langchain + ROSA Streamlit:デモ用のみ
実装とシステム設計(3/4) – 実際に実装2 GPT-4o -------------------------------------------------[STEP 1] PROMPT: You> 前進して ROSA> 前進しました。以下はエンコーダーのサンプルデータです: rosa tb3 demo 2 - 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> 左回転しました。以下はエンコーダーのサンプルデータです: Raspberry PI-5 ROS2 Langchain + ROSA Streamlit:デモ用のみ スライドは撮影用に コマンドラインで実行 - 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秒間の操作中に記録されたホイールの回転数を示しています。右のタイヤは動いていません。 製作配線の参考ブログ https://zenn.dev/takeofuture/articles/54388b1edda09a 参考図書 中村俊幸著 趣味のロボット制作: ROS2入門編
実装とシステム設計(4/4) – 実際に実装3 GPT-4o ROS2 Langchain + ROSA Streamlit:デモ用のみ /encoder_counts (std_msgs/msg/String) Raspberry PI5 ROS2 /camera/image/compressed (sensor_msgs/msg/CompressedImage) /cmd_vel (geometry_msgs/msg/Twist)
倫理的配慮と安全性 ●なぜ倫理が重要か * 身体性を持つロボットは人・環境に直接影響を与える * 自律性が高まるほど安全性・信頼性・責任の所在が重要になる ●基本原則:Asimovの三原則 * 人間に危害を加えない * 人間の命令に従う(ただし安全が最優先) * 自己を保護する(ただし1・2に反しない) >> ROSAはこれらを設計思想の指針として採用 ●ROSAにおける対応方針 ★第1原則(人間の安全): デフォルトでは「観測(downlink)」中心, E-Stop・人間による即時停止を前提 危険・不明確な状況では安全に停止 ★第2原則(人間の制御): 人間の命令が最優先。 判断・行動ログを公開 → 人間が介入・中断可能 ★第3原則(自己保護) : バッテリ・センサ・異常状態を監視。人間の安全を損なわない範囲で自己保全 ●限界と今後の課題 * ROSA単体では安全は保証できない → ハードウェア・低レイヤ安全機構が必須 *悪意ある命令や誤用の可能性 * 今後: >権限管理 >信頼されたツールの明確化 >オープンソースでのガバナンス強化
まとめと筆者が語る今後の展望 ●本研究のまとめ * 本研究では、ROSA という自然言語でロボットを操作するAIエージェントを提案した * LLMとオープンソース技術を活用し、複雑なロボット操作を日常言語で可能にした * ROS1 / ROS2 の両方に対応するモジュール化・拡張性の高い設計 * ツールベース設計と安全機構により、実運用を意識した信頼性を確保 ●意義と社会的価値 * ロボット操作を専門家だけのものから、より多くの人へ * 音声・視覚・多言語対応により人間–ロボット間のインタラクションを大きく改善 * 倫理・安全・透明性を設計段階から考慮したAIエージェント ●今後の展望 * 文脈理解・曖昧さ解消のさらなる改善 * 小規模言語モデル(SLM)によるプライバシー性・オフライン性能の向上 * Semantic / Episodic Memory の導入によるより高度な状況理解と学習 * 分野横断的な協力による責任あるロボティクスの発展
所感と読者が今後これをどう生かすか考察 ★所感 * 論文自体は最先端のLLM/VLMという方向ではなくどうLLM/VLMをロボティクスに 応用できるか示唆する内容 * インストールが止めても簡単(pipで一発) * コードもAPACH LICENSE 2.0で公開されているのでこれをこのまま使っていいし改修もできそう。 * あらためてLLMの拡張手法(特にTOOL-USE)の有用性を感じた! ★今後どうする * まずは整地地面を安定走行させる * APIでGPT-4oからローカルモデルで試す。(ソースの改修は必要かも) * ROSで動かすことを考えてもっと非力なIOTデバイスで情報収集か制御を試す * ロボットアームや4足歩行型ロボットにも応用してみたい * 衝突センサーと小型大容量バッテリーや軽量で長い電源配線を付けて狭いとこで直接強化学習させてみる * 電気電子工学やセンサーの勉強をしてさらに電子工作の練習経験して手先をもう少し器用にしよう