実装コードはこちら:
https://github.com/shuushoku5/scout-mulmochat
🧠 MulmoChat × Robotics UI
― 対話の中にUIが溶け込むロボット操作思想 ―
そのままブログに載せられる形で書きます。MulmoChat × Robotics UI
対話の中にUIが溶け込むロボット操作という考え方
ロボットの操作インタフェースは、これまで主に次のような形で設計されてきました。- 専用GUIアプリ
- Webダッシュボード
- ボタン主体の操作パネル
- コマンドライン
- テレオペ用UI
テキストチャット
+
別ウィンドウのステータス画面
ここに私は違和感を持ちました。
問題意識
ロボットの操作は、本来「状況認識」と「行動選択」が密接に結びついています。 しかしUIが分断されると、- 状態はダッシュボードを見る
- 指示はチャットに入力する
- エラーはログを見る
MulmoChatの思想
MulmoChatが目指しているのは、対話の中に、画像・状態・選択肢がインラインで出現する世界つまり:
ユーザー発話
↓
LLM応答
↓
UIパネル(画像・表・フォーム)
↓
次の発話
すべてが「対話の流れの中」に統合されます。
Robotics UIへの応用
ロボットに適用すると、こうなります。例:状態確認
ユーザー:状態を見せてアシスタント:
- カメラ画像
- オドメトリ情報
- 移動状態
- ナビゲーション状態
例:行動実行
ユーザー:少し前に進んでアシスタント:
- Before画像
- After画像
- 成功/失敗表示
行動の因果が視覚的に提示される構造です。
なぜこれは重要か?
ロボット操作は本質的に「逐次意思決定」です。 MulmoChat型では:- 状態 → 判断 → 行動 → フィードバック
- Explainable Robot Operation
- 人間との協調制御
- 記録ベースの改善
Function Callとの相性
MulmoChat型UIは、LLMの tool_use / function call と非常に相性が良いです。 LLMは:- どの機能を呼ぶか判断
- 結果をUIデータとして返す
- テキストとGUIを分離
LLM = 意思決定層
Function = 実行層
GUI = 可視化層
という三層構造になります。
既存研究との違い
従来のロボットUIは:- ダッシュボード中心
- ボタン中心
- 状態表示中心
- 対話中心
- 意図解釈中心
- 状態と行動の統合提示
今回のSCOUT実装
今回SCOUTに実装したものは:- Flaskベースの軽量UI
- tool_useループ
- GUIパネルのJSON構造化
- モックモード
「ロボット操作を対話プロトコル化する」基盤ができました。
今後の展望
- 音声入力統合
- 巡回経路の選択UI強化
- Teach & Repeatのfunction化
- VPR停滞検出の可視化
- マルチロボット対応
まとめ
MulmoChat × Robotics UI は、 単なるチャットロボットではありません。 それは、ロボット操作を“対話プロトコル”に変換する試みです。 GUIは消えません。 しかしGUIは「別画面」ではなく、「対話の中」に入っていきます。





