MulmoChatの思想「LLMはUXオーケストレーター」をSCOUT運用に適用。
LLMは判断・演出のみ。ロボット制御は公式APIに委譲。表示はGUI Chat Protocolで拡張。
LLMが呼べるツール群。各ツールは「LLM返却データ」+「UI提示データ」を同時に返す。
SCOUTの現在状態を取得。nav_get_status + odom + battery + カメラ画像をまとめて返す。
UI提示: 状態パネル(画像+位置+バッテリー+Nav状態)
LLM返却: JSON(status, position, battery_pct, error_flags)
指定ルート(Teachデータ)で巡回開始。nav_path_start を実行。
UI提示: ルートマップ+進行状況バー
LLM返却: "patrol started, route: B, ETA: 3min"
巡回を安全に停止。nav_cancel を実行。
UI提示: 停止確認+現在位置表示
LLM返却: "patrol stopped at waypoint 7/12"
前後補正。algo_move(yDistance, speed) を実行。
UI提示: 補正量の図示+Before/Afterカメラ画像
LLM返却: "moved +0.2m forward, ret: 0"
姿勢補正。algo_roll(angle, speed) を実行。
UI提示: 回転角の図示+Before/Afterカメラ画像
LLM返却: "rotated +15 degrees, ret: 0"
異常発生時の診断情報をリッチに提示。カメラ画像+Teach画像対比+信頼度+推奨行動をパネル化。
UI提示: 診断ドキュメント(画像比較+根拠+選択肢)
LLM返却: "failure_type: localization_drift, confidence: 0.32"
オペレータに判断を求める選択式UI。停止/後退/再試行/別ルート/遠隔操作など。
UI提示: 選択肢フォーム(putQuestions相当)
LLM返却: "operator chose: retry_from_waypoint_5"
登録済みTeachルート一覧を表示。ルート名・距離・最終実行日・成功率。
UI提示: ルートリスト(presentDocument相当)
LLM返却: "3 routes available: A(120m), B(85m), C(200m)"
Bridge層のイベント判定が nav_status + VPR信頼度の低下を検知 → SCOUTを一時停止(nav_cancel)
現在カメラ画像・Teach時の対応画像・VPR一致度・odometry偏差をJSONで送信
状況を分析し、画像比較パネル+信頼度+「なぜ止まったか」の自然言語説明を生成
オペレータは画像を見比べ、状況を「理解」できる(従来のログ読みと決定的に違う)
選択肢を提示:「① 再試行」「② 0.3m後退して再試行」「③ 次のwaypointへスキップ」「④ 巡回中止」
例:「② 0.3m後退して再試行」を選択
algo_move(yDistance: -0.3) 実行後、nav_path_start で巡回再開
失敗種別・診断内容・オペレータ選択・復帰結果 → 評価用データセットになる
| 比較軸 | 従来(rqt / Webダッシュボード) | LLMテキストのみ | SCOUT × MulmoChat |
|---|---|---|---|
| 異常時の状況把握 | ログを読む・画面を探す | LLMが文章で説明 | 画像比較+根拠+説明がチャット内に出現 |
| オペレータ介入 | 手順書→手動操作 | テキストで「後退して」→曖昧 | 構造化された選択肢→APIに直結 |
| 対話と操作の関係 | 別ウィンドウ | テキストのみ | 対話の流れの中にUIが溶ける |
| 非エンジニアの運用 | 困難 | 可能だがUI貧弱 | 自然言語+GUI選択で誰でも可能 |
| ログ・記録 | rosbag(巨大・検索困難) | テキストログ | 構造化インタラクションログ(評価に直結) |
| 拡張性 | UIの再開発が必要 | プロンプト変更のみ | ツール+Viewer追加で無限拡張 |