ロボットがハイキングコースの走破に成功
3つの要点
✔️ 特権情報を利用した教師方策と生徒方策による二段階の方策学習
✔️ センサの不確かさも考慮した外部情報の組み込み
✔️ ハイキングコースを人間と同等の速度で走破
Learning robust perceptive locomotion for quadrupedal robots in the wild
written by Takahiro Miki, Joonho Lee, Jemin Hwangbo, Lorenz Wellhausen, Vladlen Koltun, Marco Hutter
(Submitted on 20 Jan 2022)
Comments: Science Robotics, 19 Jan 2022, Vol 7, Issue 62.
Subjects: Robotics (cs.RO)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
本記事ではセンサーから取得した外部情報と各関節位置などの内部情報を組み合わせることで、人間と同程度のペースでハイキングコースの走破に成功するほど安定かつ素早い動きが可能な4脚ロボットの作成に成功した論文を紹介します。以前こちらの記事で紹介した論文の続編的位置づけの論文になっています。前回論文との大きな違いは、外部情報を利用することでより地形に適応した動作を実現していることです。
こちらの元論文の著者らのサイトには、実際にロボットが動いている動画があるので是非こちらも確認していただけるとより理解が深まるかと思います。
結果
まず、作成したコントローラの性能について見ていきます。実際の論文では室内実験や地下での実験など多様な観点からみた性能について記載されていますが、ここでは最も特徴的なアルプスでのハイキングの結果について紹介します。
スイスのEtzel山のハイキングコースを一周する実験を行いました。一周は2.2km、高低差は120mにもなります。完走するためには、急な坂、高い段差、岩の表面、滑りやすい地面、木の根などを越えて行くことが求められる険しいコースとなっています。実際、ハイキングプランナーによる運動強度を考慮した難易度指標は3段階中最も難しいレベルに設定されています。
この困難なコースを、提案手法を実装したロボットは一度も転倒せず78分で走破しました。ハイキングプランナーが人間に提示している一周の時間は76分であり、人間と同等レベルの速度であることがわかります。さらに上りに関しては、人間の想定タイムよりも4分早い31分で中間地点に到達しています。
手法
ここではコントローラを構成した手法について説明します。これは次の3つのステージから構成されます。
- 教師方策の学習
- 生徒方策の学習
- 実世界でのデプロイ
このそれぞれについて、次から詳しく見ていきます。
教師方策の学習
後に生徒方策学習時に参照するために、特権情報を利用し最適な行動を選ぶ教師方策を学習させていきます。ランダムに生成された地形の上で、一定の速度に追従できるように学習します。アルゴリズムはPPOで、方策は各行動の平均・分散を出力するよう学習した多層パーセプトロン(MLP)で表現されます。
観測状態と行動
内部観測状態、外部観測状態、特権情報の3つ組で観測状態は構成されます。内部観測状態は胴体や各関節の位置・速度などを含み、外部観測状態は各脚に対して5つの異なる半径でサンプリングした空間の高さを含みます。特権情報は床の摩擦係数など、実世界において観測はできないものの歩行に有用な情報を含んでいます。
行動空間の構成には central pattern generators(CPGs) を採用しています。まず、ベースとなる周期的な歩行動作を実現するための脚先軌道を用意します。これは脚とその位相を指定すれば、その脚先位置が定まるという事です。その後、位置に関する逆運動学を解析的に解くことで各関節位置を計算します。この時点で平面は歩行可能ですが、より困難な地形に対応するための柔軟性を得るために、各脚の位相と関節位置の微調整を行えるようにします。つまり、行動空間は4つの脚に対して位相の修正をする分の4次元と12個の関節に対して修正を加えるための12次元で計16次元という事になります。
方策のアーキテクチャ
方策は3つのMLPで構成されます。外部観測状態エンコーダ、特権情報エンコーダ、そしてメインネットワークです。まずそれぞれのエンコーダによって外部観測状態・特権情報をよりコンパクトな潜在表現に変換し、その後内部観測状態と合わせてMLPに入力します。エンコーダは生徒方策の学習時にも使用されるため、教師方策が獲得した知識の移転にも役立ちます。
報酬
目標速度への追従による正の報酬と制約違反による負の報酬を用意します。まず正の報酬に関しては、機体の速度を目標速度に射影したものが目標速度を上回っていた場合は+1、下回る場合はその分だけ指数的に減衰した報酬を与えます。次に負の報酬に関しては、より滑らかな動きを実現するために導入され、体の向きに制約を加えるものや、各関節の速度や転倒にペナルティを加えるもの等があります。
カリキュラム
徐々に方策の性能を向上させるため、2つのカリキュラムを使用します。地形を適応的に生成するものと、学習時のノイズや報酬を変化させるものです。1つ目については、パーティクルフィルタを用いて最もエージェントの学習効率が高い地形を生成するテクニックです。こちらは冒頭で説明した前回論文でも使用されていた手法ですので詳しくはそちらを参照してください。2つ目に関してはノイズや報酬のペナルティ項の重要度を決める係数をイテレーションに応じて変化させていくものです。こちらは適応的に地形を生成する場合とは異なり、イテレーションの回数によって単純に値が決定されます。
生徒方策の学習
特権情報を用いて多様な地形を走破できる教師方策が作成できたら、実世界でも利用可能な情報のみを利用して行動する生徒方策にその知識を蒸留していきます。教師方策の学習時と同様の環境を使用しますが、外部観測状態にノイズを加えています。このノイズは実世界で遭遇が想定される外部観測状態の様々なエラーをシミュレートするものになっています。
また、もちろん特権情報を直接観測できるセンサーは存在しないため、外部観測状態・内部観測状態の系列を用いて、信念状態として観測できない情報を取り込む手法を採用しています。
生徒方策は再帰的信念状態エンコーダとMLPから構成されます。信念状態エンコーダは内部観測状態・ノイズ付き外部観測状態の潜在表現・再帰ネットワークの隠れ状態を受け取り、信念状態を返します。この信念状態と内部観測状態を方策に入力することで行動を決定します。信念状態を外部観測状態・特権情報の潜在表現に一致させるよう学習を行います。これによって、信念状態が歩行の助けとなるような環境の情報を持つようになります。
なお、MLPのアーキテクチャは教師方策と同様であり、教師方策の学習済みネットワークをそのまま利用することが可能です。これは学習初期の高速化に役立ちます。
学習は振る舞いロス・再構成ロスの2つのロスを最小化する教師あり学習で行われます。振る舞いロスは教師方策・生徒方策の行動の二乗誤差によって与えられ、生徒が教師同様の行動をするよう矯正するためのものです。再構成ロスはノイズのない高さサンプル・特権情報と信念状態をデコーダーにかけたものとの二乗誤差で計算されます。
高さサンプルのランダム化 (height sample randomization)
生徒方策の訓練中、パラメタライズされたノイズモデルを用いて外部観測状態であるサンプリングされた高さの情報にランダムノイズを注入します。次の二種類の測定誤差をモデリングします。
- 水平方向への測定点のずれ
- 高さのずれ
これらは正規分布からのサンプル値によって決定されます。また、分散は後で述べるマッピングの信頼性によって決定されます。
2つのノイズはそれぞれ分散の異なる3つのスコープに適用されます。各スキャンポイント・各脚・各エピソードです。スキャンポイント・脚のノイズは毎時リサンプリングされるのに対し、エピソードのノイズはエピソード間で固定となっています。
加えて、実世界での様々な状態に対応するため、マッピングの信頼性をエピソードの開始時に決定しそれに応じたノイズを使用します。ノイズがほとんどない場合、オフセットが大きい場合、ノイズが大きい場合の三種類が用意され、割合は60%、30%、10%となります。
最後に、異なる地形間でのスムーズな遷移を学習させるために、シミュレータ上で地形を格子状に分割し、セルごとに設定された異なるオフセットを高さのスキャン時に加えています。
信念状態エンコーダ
内部と外部の情報を統合するために、ゲートエンコーダを導入します。これは gated RNNや multimodal information fusion に影響を受けたアイデアです。
外部情報の通過割合を制御するための adaptive gating factor であるαをエンコーダは学習します。
初めに、内部観測状態・ノイズ付き外部観測状態の潜在表現・隠れ状態がRNNでエンコードされ、即自信念状態を得ます。その後、即自信念状態によって注意ベクトルαが計算され、これによってどれほど外部情報を信念状態に組み込むのかを決定します。
同様のゲートがデコーダーでも使用されており、特権情報と外部観測状態を再構成します。RNNのアーキテクチャには Gated Recurrent Unit(GRU) を使用します。
実装
最後に実世界での実装について述べます。機体には ANYmal C を採用しました。二つの異なるセンサ設定を用意しており、dome Lidar sensor と Intel Real Sense D435 深度センサを使用できます。PyTorch を用いて方策を学習し、ファインチューニングなしのゼロショットでデプロイを行っています。elevation map は20Hzで更新され、50Hzで方策を動かします。
GPUを使った並列処理による高速マッピングを実現しています。これが安定した高速な処理と素早い歩行速度の維持において重要な役割を果たしています。
まとめ
外部知覚によって、地形予測による素早く優雅な動きを可能にし、接触が起きる前に歩行を修正することができるようになりました。また外部知覚が不完全で間違っている場合、コントローラはスムーズに内部知覚のみに頼った制御に移行します。外部知覚・内部知覚の統合の学習は一貫して行われるため、ヒューリスティックやハンドメイドの規則が存在せず扱いやすい手法となっています。
今後の拡張としては、論文中で3点言及されています。まず、明示的に情報の不確かさを活用するという事についてです。現在は情報がないときは内部情報だけを用い、平面だと仮定して進むようなイメージになっています。そこで、情報が不確かな場合は脚を一本だけ前に出して床の状態を確かめるというように、探索的に情報を得るような行動を取れるように拡張することで、より実用的なコントローラが作成できることが期待されます。次に2点目は外部データの扱いについてです。現在はセンサーから得られたデータを直接扱うのではなく、elevation map という層をはさむことでセンサーの種類に依存しないモデルを構築しています。しかし、elevation map を作成する過程で抜け落ちてしまう情報も存在するため、センサーから得られた生の情報を直接制御に利用した方がより効率的な動作に繋がると思われます。最後に、別の課題として普通の歩行とかけ離れた動作の実現不可能性が指摘されています。例えば脚が狭い穴にはまった場合の復帰や高い段差を超えることは現状実現できていません。
この記事に関するカテゴリー