fltech - 富士通研究所の技術ブログ

富士通研究所の研究員がさまざまなテーマで語る技術ブログ

仮想空間でロボットが修行!?シミュレーションと実世界のギャップを埋めるSim-to-Real技術

こんにちは、フィジカルAI研究所の苗村です。 フィジカルAI研究所では、AIを搭載して自ら考えて行動するロボット(フィジカルAI)の研究を、日本をはじめ、アメリカ、中国、インド、イギリスを含むグローバルなチームで進めています。

近頃、動画の中で、人型のロボットが陸上競技や家事をしたり、四足歩行のロボットが階段や斜面、でこぼこ道を軽快に歩く姿を目にした方も多いのではないでしょうか。 こうしたロボットに使用されるAIの訓練では、実機を何度も動かす代わりに、コンピューター上の仮想空間でのシミュレーションが広く使われています。しかし、シミュレーションの中で上手に歩けたからといって、そのAIを実機にそのまま使えば、すぐ同じように歩けるとは限りません。

本記事では、シミュレーションで訓練したAIを現実のロボットで動かすための技術「Sim-to-Real」について、私たちが取り組んだ「不安定な荷物を運ぶ四足歩行ロボット」の研究を例に紹介します。

富士通が訓練したフィジカルAIを搭載した手前のロボットは、積み上げられた荷物を落とさずに様々な地形を走破できる。

ロボットをシミュレーションで訓練する理由

ロボットに新しい動きを覚えさせるには、様々な状況を何度も経験させる必要があります。実機だけで学習しようとすると、長い時間がかかるだけでなく、転倒による故障や周囲との衝突も心配です。様々な地形を歩きたい場合には、床の凹凸や滑りやすさ、荷物の形、重さなどを毎回変える作業にも大きな手間がかかります。

シミュレーションなら、多数の仮想ロボットを同時に動かし、失敗を含む大量の経験を安全に集められます。地面や荷物の条件も数値を変えるだけで簡単に変更できます。そのため、AIに試行錯誤をさせる場として非常に有効です。

一方で、シミュレーションは現実を完全には再現できません。ここにSim-to-Realの難しさがあります。

「Sim-to-Realギャップ」とは

シミュレーションと現実の違いを「Sim-to-Realギャップ」と呼びます。

たとえば、シミュレーションでは床と足先の摩擦、モーターの出力、センサーの遅れを数値として設定します。しかし、実機には、足裏の摩耗、床材のばらつき、組み立て誤差、通信遅延などシミュレーションでは厳密に再現できない差異が無数に存在します。段ボール箱のような荷物を運ぶ場合には、箱のわずかな変形や、接触面ごとの滑りやすさの違いも生じます。

AIがシミュレーション内の一つの条件だけに慣れてしまうと、実機で少し条件が変わっただけで上手く歩けなくなってしまいます。Sim-to-Realで重要なのは、シミュレーションを現実と完全に同じにすることではありません。完全な再現は困難だからです。むしろ、現実で起こり得る違いを見込んだうえで、多少のずれがあっても対応できるようにAIを訓練します

現実の「ばらつき」を先に経験させるドメインランダム化

その代表的な方法がドメインランダム化です。

学習のたびに、床の摩擦、ロボットや荷物の形、モーターの強さ、制御の遅れなどを少しずつ変えます。でこぼこ道、斜面、階段といった地形も用意し、ときにはロボットや荷物に外から力が加わる状況も経験させます。こうすることで、AIは特定の一条件に依存しにくくなり、初めて見る現実の状態にも対応しやすくなります

ただし、条件を幅広く変えるだけでは十分でない場合があります。訓練中には把握できても、実機では直接測れない情報があるからです。

シミュレーションでは大量のロボットを使って様々な条件で訓練できる。荷物の形や重さ、地形や摩擦などをランダム化して、様々な状況で訓練することで適応力が増す。

訓練中だけ見える「特権情報」を活用する

シミュレーションの利点は、現実では測りにくい情報も正確に取得できることです。たとえば、地面の形、摩擦の値、荷物の正確な位置などです。このように、訓練中には利用できるものの、実機の運用時には利用できない情報を特権情報と呼びます。

特権情報を直接、実機の制御入力にしてしまうと、部屋にカメラを設置したり、高価なセンサーを搭載しないと実機を動かせません。そこで役立つのが、Teacher–Studentモデルを使ったAIの訓練です。

  • Teacher(教師)モデルは、シミュレーション内の特権情報を使って、状況に応じた効率的な動き方を学びます。
  • Student(生徒)モデルは、実機でも計測できるセンサー情報の時間履歴から特権情報を推測することで、Teacherモデルと同じ動き方を学びます。

荷物運びの場合、たとえば荷物が右へずれれば、ロボット本体の傾き、関節の動き、足にかかる負担などにも小さな変化が現れます。Studentモデルは、このような時間的な変化から、荷物や路面の状態を間接的に読み取ります。人が手に持った紙袋の傾きや腕に伝わる重さから、中身の偏りを感じ取ることに似ています。実機ではStudentモデルのみを使用するため、特権情報なしでの動作が可能となります。

Teacher–Studentモデルをシミュレーションで訓練し、Studentモデルだけを実機で使用する。

不安定な荷物を運ぶロボットへの応用

私たちの研究では、四足歩行ロボットの背中に縁のない平らな板を取り付け、その上に固定していない箱を積み重ねました。ロボットは箱を落とさないようにしながら、斜面や段差、屋外のでこぼこした地面を歩きます。 このように荷物のバランスを取りながら凹凸のある地面を歩くという動きは、引っ越し現場などでの段ボール箱の搬入出や、屋外のレストランでお盆に載せた料理・飲み物の運搬など、様々な場面で発生します。

ロボットに固定した箱に荷物を入れて運んだり、車輪のついたロボットが平地で荷物を運ぶ場面は、近年身近なものになってきましたが、凹凸のある地面で不安定な荷物を落とさずに運ぶというのは、より難しいタスクになります。 ロボット自身が転ばなくても、加減速や旋回、地面から受ける衝撃によって箱だけが滑ったり、上下の箱がずれたりするためです。AIは「ロボットが安定して歩くこと」と「荷物を板の中央付近に保つこと」を同時に考えなければなりません。

学習時には、箱の位置や地面の形状などを特権情報として利用します。一方、実機では箱を直接計測する専用センサーやカメラを使わず、ロボット自身の姿勢や関節の動きといった情報の時間履歴から状況を推測します。

シミュレーションだけで訓練したAIを実機に適用した結果、ロボットは段差や斜面、起伏のある屋外の芝生や砂地でも、積み重ねた箱を落とさずに歩くことができました。

もちろん、あらゆる形や重さの荷物、あらゆる地形に対応できるわけではありません。ドメインランダム化で想定した範囲を大きく外れる条件や、ロボットの感覚だけでは区別できない状況では、上手くいかないこともあります。それでも、荷物専用のセンサーを取り付けることなく、不安定な荷物の状態へ適応できるフィジカルAIの可能性を示すことができました

シミュレーションだけで訓練したフィジカルAIを搭載することで、ロボットが様々な地形で荷物を落とさずに運べるようになった。

もう一つのSim-to-Realギャップ

実際のロボットを扱う研究では、ロボットや部品の破損、故障がつきものです。シミュレーションではロボットが転んでもすぐにリスタートできますが、実機ではそうはいきません。転倒で部品が破損したり、取り付け角度がずれると、スペアに交換したり、部品を正しい位置につけ直すだけでも手間がかかることがあります。

荷運びロボットでも、最初は荷台とロボットをボルトで固定していましたが、転倒のたびにずれが発生したり、派手な転倒があると荷台の板が割れたりすることがありました。最終的には、荷台とロボットを強力な磁石で固定して着脱を容易にするとともに、大きな負荷がかかると自動的に外れるようにすることで、調整がほとんど必要なくなりました。

このように実機を使った実験や実運用を円滑に進めるために、実機のみに必要な対策を施してSim-to-Realギャップを克服することも必要かもしれません。

ロボットの背中に8つの磁石を取り付けて、荷台の金属板と着脱可能にすることで実験を効率化した。

まとめ

Sim-to-Realは、シミュレーションで学んだAIを、そのまま現実へコピーするだけの技術ではありません。シミュレーションと現実の差を前提に、現実のばらつきへ耐えられる学習方法を設計する取り組みです。

今回紹介したポイントは、次の三つです。

  1. ドメインランダム化で、摩擦、重さ、遅れ、地形などの違いを学習中に経験させる
  2. Teacher–Studentモデルで、特権情報から得た知識を、実機で取得できる情報へ引き継ぐ
  3. シミュレーションでは不要だが、実機でのみ必要となる機能が存在する

ロボットが研究室の整った環境を離れ、物流、点検、災害対応などの実現場で働くためには、未知の路面や荷物、予期しない外乱へ対応する必要があります。Sim-to-Realは、仮想空間での大規模な学習と、実世界で役立つロボットをつなぐ重要な橋渡しの技術です。

関連情報