Self-Recovery Prompting  失敗を克服し、止まらない家庭内生活支援を実現したい。基盤モデルX4が生み出したロボットシステム

## はじめに
こんにちは！
松尾研究室ロボットチームTRAILで活動させていただいている、学部2年の[白坂翠萌](https://trail.t.u-tokyo.ac.jp/author/mimo-shirasaka/ "Mimo Shirasaka")です。

約１年間、入学と同時に始まったサークルTRAILで活動し、RoboCup@Home[^1] への出場を通してロボットの「現在地」、すなわち何ができて何が難しいのか？が少しわかってきました。人を笑顔にできるロボットシステムをつくれるようになりたいと思っている私にとり、これは大きな学びでした。

現在、私はTRAILで研究プロジェクトに携わらせていただいています。

昨年度の[アドカレ2022](https://qiita.com/advent-calendar/2022/robot-ai "AdventCalender2022")で[松嶋達也さんのCLIP](https://trail.t.u-tokyo.ac.jp/ja/blog/22-12-02-clip/ "AdventCalender2022_CLIP")、[池田悠也さんのCLIP-FIELDS](https://trail.t.u-tokyo.ac.jp/ja/blog/22-12-05-clip-fields/ "AdventCalender2023_CLIP-FIELDS")などを読み、とてもわかりやすくて勉強する際にありがたく思っていたところ、今年は私もアドカレを書かせていただくことになりました。
初めて記事を書く上、まだまだ基盤モデルや学習、ロボット制御などTRAILが扱う分野の知見が不足しており恐縮ですが、今回は2023年9月にArXiv投稿し、国際学会CoRL2023 Workshop (Towards Generalist Robots) にて発表した執筆論文「Self-Recovery Prompting」について、開発背景に遡りつつ、ご紹介できればと思います。


## 論文へのアクセス
- 論文（2023年11月19日時点最新版）：[Self-Recovery Prompting: Promptable General Purpose Service Robot System with Foundation Models and Self-Recovery](https://openreview.net/pdf?id=5VkeUTlnkt "SRGPSR CoRL2023 Paper")
- 論文ウェブサイト：[Self-Recovery Prompting Website](https://sites.google.com/view/srgpsr "SRGPSR Website")


## 紹介動画
まず、論文の紹介動画を下に貼ります。概要や雰囲気はざっくり伝わるかと思いますのでよろしければご覧ください！（見ずに下の日本語文にスキップしていただいても大丈夫です）
<iframe width="560" height="315" src="https://www.youtube.com/embed/_8UCdMLwwA8?si=nNcAqywLxAZKDeqd" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" loading="lazy" allowfullscreen></iframe>


## 論文の主張
この論文の主張を一言で言うと、
**「失敗を自律的に克服するサイクルを開発することで、家庭内で止まらずに生活支援サービスを行えるロボットシステムを実現した。」**
となります。

これだけではこの論文の面白さが伝わりづらいかと思いますので、ここからより詳しく書いていきます。

## 研究背景
様々なタスクや場面に柔軟に適応し、サービスを提供することができるロボットの理想的な状態を指す、GPSR (General Purpose Service Robot) という表現があります。

数年前までは、GPSR のコンセプトが実現するまでの道のりはとても長いと思われていたかもしれません。

しかし、ChatGPT で一役有名になったように、大規模言語モデルをはじめとする基盤モデル (詳しくは[アドカレ2022の小林聖人さんの投稿](https://trail.t.u-tokyo.ac.jp/ja/blog/22-12-01-foundation-model/ "Advent Calender2022_FoundationModels")をご覧下さい)が急速に発展を遂げたことで、GPSR の実現がそう遠い未来ではなくなってきているのではないでしょうか？

## 論文導入
今回ご紹介する、Self-Recovery Prompting システムでは4つの基盤モデル (Whisper, GPT, Detic, CLIP) を組み合わせて用いています。そしてこれらはプロンプダブルな(環境にあわせて簡単にモデルを調整できる)モデルであることから、構築したシステムはさまざまな家庭内環境、またオフィス環境などでも、

１）「〇〇をなくしてしまったので、探してきてくれますか？」
２）「テーブルにある飲み物を、＊＊さんの机に持っていって、ついでに様子を聞いてきてくれない？」

といったお願いに応じてくれるようになりました [^2]。

上記のお願いは私たち人間同士の会話ではごく普通にあり得そうですが、実はこれらは不確定要素を多く含むゆえ、ロボットにとってはタスク実行のハードルが高いものとなっています。

具体的には上の例だと
１）（なくしてしまったので当然ですが）ロボットが行くべき場所が指示されていない
２）「様子を聞いて」くるとは具体的に何を言えば良いのかが指示されていない
という点が不確定要素となっています。

刻々と食料品などの小さいものの配置が変化しうる家庭内環境においてロボットが上記のような不確定要素を含むタスクを遂行することができるのは、タスク遂行中にロボットの処理が止まりうる箇所を分析し、３種類に分類した上で、それを克服するサイクルシステムを実装したからです。

その３種類とは、
Mode 1: Insufficient Information (実行に必要な情報が不足している)
Mode 2: Incorrect Plan Generation （実行プランを生成できない）
Mode 3: Plan Execution Failure（タスク実行中に失敗する）
です。

ロボカップ世界大会出場時点の実装では上記に含まれるタスクが発生すると、そのタスクは諦めて次の指示を人間にお願いするようになっていました。スキップして次の指示を求める、というのは5分という厳しい制限時間下で実施するロボカップの大会においては有効な手段です。しかし、実際の生活の場面でお願いしたことがスキップされたら困りますよね、、？

他にも大会のルールに沿った実装ゆえ、実際の環境に導入するには複数の改善すべき点があると思います。

その中でも今回改善に挑戦したのが、「途中で止まらない」「挑戦し続ける」サービスロボットシステムをつくる、ということでした。ロボカップに向けた開発では効率化や確実性に主眼をおいた開発をしていたのに対し、今回の論文では実際に日常生活の場に役立つ生活支援ロボットという観点からロボカップのGPSRタスクシステムを改変する形で開発しました。

大規模言語モデル（LLM）や人間との会話（HRI: Human Robot Interaction）を通して自律的に失敗を克服し、止まらずにサービス提供に挑戦し続ける提案システムはウェブサイトの[フローチャート](https://sites.google.com/view/srgpsr#h.dfjh1sy3uxly "Recovery System") に集約されています。このチャートの説明は、この記事冒頭にある動画の 00:37 〜 01:24 をご覧ください。

## 実験
人間が作成した、従来システムでは達成が困難と思われる７つの家庭内支援タスクを言語で指示し、システムの有効性について検証を行いました。
その結果、７つ全ての指示について失敗を克服した上で指示を完了することができました。各動作動画はウェブサイトに掲載されています（７コマンドの実験動画は[ここをクリック](https://sites.google.com/view/srgpsr#h.tdkebypm7euq "Experiment Results")すると見られます）。

## おわりに
ですが、今日はせっかくご紹介する場をいただいたので、読んでいただいた皆さまに見ていただきたい動画があります。
全ての検証動画を撮り終わった後に、より実際にあり得そうな指示（長文・複数の部屋に行く必要性あり・複数の登場人物）を考え、「うまくいくかわからないけどHSRにお願いしてみて、うまくいったらウェブサイトに載せよう」ということで撮った動画です。

指示は、「購入したボトルのお茶を受け取り、Ashleyの机に持っていって彼女を励ましてきてください。そして、ソファでRobinが寝ていないか確認し、Red Bullを渡してきてください。できれば何か心配事がないか尋ねてきてください。」というものになっています。

お願いしてみた結果、ロボットは最終的に指示を全うすることができました。
うまくいったので、スペシャルコマンドとしてウェブサイトにも掲載しています。

スペシャルコマンド動画は[ここ](https://sites.google.com/view/srgpsr#h.is4242u9y782 "Extra Video")からご覧ください！


いかがでしたでしょうか？
スペシャルコマンド動画の掲載に際し、ウェブサイトの最後は次のように締めくくっています：

"We hope it brings people in various fields a better, concrete image of life with assistance robots, which may come soon."


私はまだまだこの分野について知らないことがたくさんありますし、世界中で日々面白い研究が発表されています。
来年もさらに学びを深め、「人を笑顔にできるロボット」に少しでも近づける研究や開発を目指したいと思っております。


今後ともどうぞよろしくお願いいたします。
それでは良いお年を！



[^1]: 日常生活でのロボットの利用を想定し、人間との暮らしに役立つ作業をいかに遂行できるかを競うロボット競技会。[RoboCup@Homeについての参考ページ](https://www.robocup.or.jp/robocup-athome/ "RoboCup@HomeJP")
[^2]: 必ずしも思い通りのパフォーマンスをするとは限りませんが、ハードウェアの大きなエラー（衝突するなど）がない限り、少なくとも改善を試み、人間からokをもらえるまで挑戦し続けます。