深層強化学習によって学習されたロボットは組み立てタスクにおいて工場で利用できるのか?
3つの要点
✔️ RL algorithmをNIST assembly benchmarkにおいて大規模な評価を行い13Kの試行のうち99.8%の成功率を示した
✔️ DDPGfDに変更を加えたSHIELDというフレームワークを提案
✔️ 2つのより難しいタスクにおいて人間とのパフォーマンスを比較しRLの有用性を示した
Robust Multi-Modal Policies for Industrial Assembly via Reinforcement Learning and Demonstrations: A Large-Scale Study
written by Jianlan Luo, Oleg Sushkov, Rugile Pevceviciute, Wenzhao Lian, Chang Su, Mel Vecerik, Ning Ye, Stefan Schaal, Jon Scholz
(Submitted on 21 Mar 2021 (v1), last revised 31 Jul 2021 (this version, v4))
Comments: RSS 2021
Subjects: Artificial Intelligence (cs.AI); Robotics (cs.RO)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
現在、工場での製品の部品挿入タスクにおいて、ロボットが利用されていますが、これは制約がかかった環境において、予めロボットのスキルをプログラムしておくことにより解くことが可能になっています。しかし、このプログラムにかかる時間やコストがとてもかかり、大規模生産に対してのロボットの利用はまだしも、少量生産を行う製品に対するロボットの応用が難しいのが問題となっています。
それに対し、深層強化学習は、タスクを解くのに必要なスキルを少ないエンジニアリングの元で学習することが可能になってきているので、近年注目を浴びています。しかし、様々な研究がされているにも関わらず、産業において実際使えるレベルでないとされ、また産業で使えることが出来るレベルかどうかを測るベンチマークがないのが現状です。そこで、最近注目を浴びているのが、下図のNIST assembly benchmarkというもので、これは産業組み立てタスクの代表的なタスクを提供しそしてその評価指標も提供しています。
そもそも、DRLが産業組み立てタスクを解く際において、何が重要になるのでしょうか。本論文では以下の3つの事を上げています。
1) Efficient: 前提としてoff-policy RLである必要があり、タスクに関する事前情報を与えることにより、素早くRLがタスクを解くことが可能であるアルゴリズムである必要がある。本論文では事前情報としてDemonstrationを与えています。
2) Economical: 既存の手法では解けない問題に対する解決方法が実際にデプロイ可能であるかどうか。
3) Evaluated: 提案手法はindustrial benchmarksにおいて実際の産業に関連する指標、例えば信頼性(reliability)やcycle timeを用いて評価されなければならない。
本論文ではこれらを考慮して、DRL (深層強化学習)がこのNIST Benchmarkにおいて、どの程度有効かどうかを、SHIELDという新たな手法を提案し、評価をしました。
手法
手法の全体像は以下の図のとおりになります。流れとしては以下の順になります。
- Human demonstrationsを集め、replay bufferに保存する。
- (任意) 画像がRLの入力に含まれている場合、画像の特徴量をdemonstrationを利用して事前学習をする。
- 現在のpolicyを環境において実行して、データを集める
- 必要であれば、人間がロボットの動作ミスを修正するOn-policy correctionを行う。
- (任意) Curriculum Learningを行う
- ActortとCriticをデータ収集に対して非同期で学習する
Reinforcement learning from demonstration
RL agentを学習するには、報酬を定義する必要があり、特に細かく報酬関数の定義を行うshaped reward functionは設定するのにとても時間がかかります。その一方で、sparse rewardの場合は定義は簡単ですが探索が困難という問題があります。そこで、demonstrationを与えるというのが、探索に関する問題を解決する方法として様々な研究で用いられています。本論文では、このdemonstrationを利用するために、Deterministic Policy Gradient from Demonstration (DDPGfD)という手法を、主に以下のアルゴリズムの赤文字の部分を本来のDDPGfDに対して変更して利用しました。
より詳細な変更点は以下のようになります。
- actor networkに足されるGaussian noiseを無くし、deterministic policyとしました。これはstochastic policyであると、insertion taskのような狭い経路を通らなければならない場合、noiseにより効率的に通ることが出来なくなる場合があるからです。
- Prioritized replay bufferを利用せず、replay buffer内のすべてのsampleの重要度を同じにしました。
- 少しずつtaskとaction spaceを難しくすることによるcurriculum learningを導入。
- ロボットがタスクを解く動作から大きく離れそうになった場合などに、人間がロボットをコントローラーを用いて動かしてpolicyのactionを上書きするon-policy correctionを行う
Relative Coordinates and Goal Randomization
特定の絶対座標に対してpolicyが過学習をしてしまうことを防ぐために、本論文ではロボットのベースフレームにおけるロボットのpose informationをpolicyの入力として与えるのではなく、ロボットのリセットしたときのposeを原点として、それに対する相対的なposeの情報を入力として与えました。これはロボットから見ると、タスクのゴール、つまり本論文におけるソケットの位置を動かしたものとみなすことができ、ゴールの位置を毎度動かすことなく多様なゴールに対して学習することが出来るようになるというメリットがあります。
Pre-train visual features
過去の論文で、USBのinsertion taskを画像からpolicyを学習して解くことに成功した研究がありますが、成功率80%を達成するために、約8時間かかるという問題点がありました。よって、本研究ではあらかじめ集めたdemonstrationと追加で集めたデータを用いてVAEを学習し、画像の特徴量を事前学習します。そして得た事前学習済みencoderのweightを固定して、policyの学習に利用します。これによりより効率よくpolicyを学習することが出来ます。
Multi-modal policies
最後に、policyの入力に関してです。本論文では以下の4つのパターンを試しました
(a) ロボットのposeのinformationのみ
(b) Pose information + wrist force/torque
(c) pose information + wrist force/torque + wrist camera image
(d) wrist force/torque + wrist camera imge になります。
実験
本論文では、手法を3つのタスク; NIST board insertion tasks、moving target HDMI insertion、key-lock insertion、において評価しました。
NIST board insertion
このタスクは以下の図のようなセットアップになっており、3種類の異なる入力; (1) proprioceptive information (pose information)、(2) proprioceptive information + wrist force/torque、(3) proprioceptive information + wrist force/torque + vision、を用いてpolicyを学習し評価します。
学習されたpolicyは学習時と同様のロボットの位置に対してnoiseを加えた上で成功率を評価しました。また、ロボットのTool center point (TCP)を元のorientationに対してz-axisに沿って45度離した場合においても評価しました。さらに、学習された画像を入力とするpolicyの汎用性を評価するために、評価時にNIST boardを手動で動かした際にどの程度解くことが出来るかを評価しました。
この実験ではKuka iiwa armを用いて実験を行い、impedance controllerを用いたend-effector Cartesian velocityによってコントロールされました。比較手法としては、予めロボットの動作をプログラムした下図におけるVendors' approachというものになります。Vendor's appraochの詳しい手法に興味がある方は是非論文を御覧ください。
このあらかじめプログラムを行ったvendor's approachであっても基本的にタスクを解くことが出来ます。しかし、ここで重要なのはvendor's approachの汎化性能が高いか、つまりperturbationなどに対してロバストであるかなどです。下のグラフは、提案手法とVendor's approachにおいて、成功率をほぼ100%に保ったままどの程度のperturbationを許容できるかを表しており、提案手法であるRLを用いた手法のほうがより汎化性能が高いことが伺えます。
下図は、各connector (Waterproof, USB, DSUB)に関して、各modalityの手法がどの程度の成功率を達成したかを表しており、合計で13096試行中、13069回成功(99.8%)という高い成功率を達成することが出来たことを表しています。
Dynamic Insertion
この実験では画像を入力とする場合において、下図のように人間の手でNIST assebmly baordを動かした際、提案手法がNIST assembly boardの動きに素早く適応してタスクを解くことが出来るかの実験を行いました。その結果、50試行中、95%の成功率を達成することが出来ました。失敗した際の主な原因は手によって動かしたNIST assebmly boardの動きが早すぎたために、ロボットがその動きに対応することが出来なかったことが挙げられます。
Moving HDMI Insertion
今までの実験では提案手法がロバストであるかどうかを確かめましたが、実際の工場ではサイクルタイム(生産スピード)が重要になります。本実験では、2台のロボットを使ってHDMI insertion taskを行う場合と、人間がHDMI connectorを使ってロボットが持っているソケットに挿入する場合でのcycle timeを比較しました(下図参照)。このタスクではIIWAロボットがHDMIのコネクターを持っており、Sawyer arm (下図左)がHDMIのソケットを持っています。そしてこのSaywer armは挿入方向と垂直な平面においてランダムに円運動を行い、IIWAロボットがそれに対して挿入することがタスクになります。
しかしこのタスクを一から学習するのはとても困難なので、task space curriculumとaction space curriculumの2つを用いてcurriculum learningを行いました。
Task space curriculumでは、初めにSawyerの初期位置と動きを固定することから初め、徐々に初期位置にperturbationを加えることや円運動の動きの速さを上げていくことでタスクの難易度を上げて行きました。最終的に、ソケットの初期位置の範囲は-+6cm、そしてスピードは2.5cm/sまで上げました。
Action space curriculumでは、policyのaction spaceを初めから大きくすると、ロボットと衝突してしまい壊れてしまうなどのリスクがあるために、初めにaction spaceを小さくした状態で学習を開始し、指数関数的にaction spaceの大きさを大きくしていきました。それによりpolicyの信頼性を上げることが出来るようになりました。
その結果、agentは1637試行のうち100%の成功率を達成することが出来、平均のinsertion timeは1093msでした。それに対して人間がHDMIを持ってタスクを解いた場合の平均のcycle timeは1041msであったことから提案手法のcycle timeが人間の場合と同程度であることを確かめることが出来ました。
Key-lock insertion
今までの実験ではある程度大きさや素材などに決まったものなどが使われましたが、本実験では実際に家庭などでありふれている鍵を使ったinsertionの実験を行いました(下図)。この実験では挿入部分の表面が小さく、かつperturbationを大きくすることで長めの距離をpolicyが探索しなければならない場合にinsertion taskを解くことが出来るかの確認の為に行いました。この実験では、初期位置は必ず鍵から5cm離れたところから始まり(z-axis)、x,y-axisはランダムにサンプリングされて決定されます。この実験で学習されるpolicyの入力としてはproprioceptive informationとwrist force/torqueが利用されました。
この実験でも前実験と同様にcurriculum learningを行い、X/Y軸に関して$-b$から$b$の間でランダムにサンプリングするとした時に、最初は$b=0$から初め、最終的に$b=0.5$になるまで徐々に上げていくことでタスクの難易度を上げました。
最終的な実験結果は以下の通りになります。下図の結果から鍵のような小さな物体を対象としても比較的高い成功率を達成することが分かりました。
まとめ
本研究では、RLがどの程度industrial insertion taskを解くことが出来るかをNIST assembly benchmarkを利用し、試行回数を多くすることでより正確に評価することが出来ており、良いベンチマークとなる論文だと思っています。しかし現状connectorをロボットに固定しなければならない、また各connectorごとにそれぞれpolicyを学習しなければならないと様々な問題があるので、今後もより研究を進めていかなければならない問題だと考えています。
原著者指摘
まとめの内容で指摘した問題点について→しかし現状connectorをロボットに固定しなければならない、また各connectorごとにそれぞれpolicyを学習しなければならないと様々な問題があるので、今後もより研究を進めていかなければならない問題だと考えています。
下記の論文にて,すでに著者たちは取り組んでいるそうなので,こちらも読むことをおすすめします!
Offline Meta-Reinforcement Learning for Industrial Insertion
written by Tony Z. Zhao, Jianlan Luo, Oleg Sushkov, Rugile Pevceviciute, Nicolas Heess, Jon Scholz, Stefan Schaal, Sergey Levine
(Submitted on 8 Oct 2021 (v1), last revised 12 Oct 2021 (this version, v2))
Subjects: Robotics (cs.RO)
code:
宣伝
cvpaper.challenge主催でComputer Visionの分野動向調査,国際発展に関して議論を行うシンポジウム(CCCW2021)を開催します.世界で活躍している研究者の講演や天才に勝つためのチームづくりについて議論を行う貴重な機会が無料なので,是非ご参加ください!!
この記事に関するカテゴリー