実装コードはこちら: https://github.com/shuushoku5/scout-mulmochat

🧠 MulmoChat × Robotics UI

― 対話の中にUIが溶け込むロボット操作思想 ―

そのままブログに載せられる形で書きます。

MulmoChat × Robotics UI

対話の中にUIが溶け込むロボット操作という考え方

ロボットの操作インタフェースは、これまで主に次のような形で設計されてきました。
  • 専用GUIアプリ
  • Webダッシュボード
  • ボタン主体の操作パネル
  • コマンドライン
  • テレオペ用UI
一方で近年は、LLMを用いた「チャット型操作」が登場し始めています。 しかし、多くの事例では依然として次のような構造です。
テキストチャット
+
別ウィンドウのステータス画面
ここに私は違和感を持ちました。

問題意識

ロボットの操作は、本来「状況認識」と「行動選択」が密接に結びついています。 しかしUIが分断されると、
  • 状態はダッシュボードを見る
  • 指示はチャットに入力する
  • エラーはログを見る
というように、認知が分断されます。

MulmoChatの思想

MulmoChatが目指しているのは、
対話の中に、画像・状態・選択肢がインラインで出現する世界
つまり:
ユーザー発話
↓
LLM応答
↓
UIパネル(画像・表・フォーム)
↓
次の発話
すべてが「対話の流れの中」に統合されます。

Robotics UIへの応用

ロボットに適用すると、こうなります。

例:状態確認

ユーザー:
状態を見せて
アシスタント:
  • カメラ画像
  • オドメトリ情報
  • 移動状態
  • ナビゲーション状態
を1つのGUIパネルとして提示。 これにより、 状況把握が対話内で完結する

例:行動実行

ユーザー:
少し前に進んで
アシスタント:
  • Before画像
  • After画像
  • 成功/失敗表示
が対話中に出る。 これは単なるログではなく、
行動の因果が視覚的に提示される構造
です。

なぜこれは重要か?

ロボット操作は本質的に「逐次意思決定」です。 MulmoChat型では:
  • 状態 → 判断 → 行動 → フィードバック
が1本の時系列として残ります。 これは将来的に:
  • Explainable Robot Operation
  • 人間との協調制御
  • 記録ベースの改善
にもつながります。

Function Callとの相性

MulmoChat型UIは、LLMの tool_use / function call と非常に相性が良いです。 LLMは:
  • どの機能を呼ぶか判断
  • 結果をUIデータとして返す
  • テキストとGUIを分離
できる。 つまり:
LLM = 意思決定層
Function = 実行層
GUI = 可視化層
という三層構造になります。

既存研究との違い

従来のロボットUIは:
  • ダッシュボード中心
  • ボタン中心
  • 状態表示中心
MulmoChat型は:
  • 対話中心
  • 意図解釈中心
  • 状態と行動の統合提示
という違いがあります。

今回のSCOUT実装

今回SCOUTに実装したものは:
  • Flaskベースの軽量UI
  • tool_useループ
  • GUIパネルのJSON構造化
  • モックモード
これにより、
「ロボット操作を対話プロトコル化する」
基盤ができました。

今後の展望

  • 音声入力統合
  • 巡回経路の選択UI強化
  • Teach & Repeatのfunction化
  • VPR停滞検出の可視化
  • マルチロボット対応

まとめ

MulmoChat × Robotics UI は、 単なるチャットロボットではありません。 それは、
ロボット操作を“対話プロトコル”に変換する試み
です。 GUIは消えません。 しかしGUIは「別画面」ではなく、「対話の中」に入っていきます。

 

あわせて読みたい