(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-01
(45)【発行日】2024-04-09
(54)【発明の名称】制御装置、学習装置、ロボットシステム、および方法
(51)【国際特許分類】
B25J 13/00 20060101AFI20240402BHJP
B25J 17/02 20060101ALI20240402BHJP
【FI】
B25J13/00 Z
B25J17/02 G
(21)【出願番号】P 2020044422
(22)【出願日】2020-03-13
【審査請求日】2023-01-11
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】井尻 善久
(72)【発明者】
【氏名】柴田 義也
(72)【発明者】
【氏名】▲濱▼屋 政志
(72)【発明者】
【氏名】田中 一敏
(72)【発明者】
【氏名】フェリクス フォン ドリガルスキ
(72)【発明者】
【氏名】中島 千智
【審査官】牧 初
(56)【参考文献】
【文献】特開2017-064910(JP,A)
【文献】国際公開第2019/225746(WO,A1)
【文献】特開平09-258814(JP,A)
【文献】米国特許出願公開第2019/0176326(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
対象物を把持するためのグリッパと、前記グリッパを移動させるためのアームとを備え、前記グリッパの途中、前記グリッパと前記アームとの間、および前記アームの途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部を有するロボットの制御装置であって、
前記柔軟部、前記柔軟部よりも対象物を把持する側の前記ロボットの部位、および把持された前記対象物の少なくともいずれかの状態についての観測データである柔軟関連観測データを含む状態観測データを取得する状態取得手段と、
前記状態観測データが入力されると、前記対象物に対する所定の作業を行うための前記ロボットの行動を出力するように、あらかじめ機械学習された学習モデルを含み、前記状態取得手段によって取得された状態観測データを前記学習モデルに入力して得られる出力に基づいて、前記ロボットを制御する制御手段と、
を備え
、
前記所定の作業は、
前記グリッパまたは前記グリッパに把持された前記対象物が環境に接触または近接している拘束状態を維持しながら動作するように前記ロボットを制御する拘束プリミティブ操作を少なくとも1つ含む複数のプリミティブ操作を含み、
前記制御手段は、前記複数のプリミティブ操作に対応した、複数の学習モデルを含み、
前記拘束プリミティブ操作に対応する学習モデルは、状態空間および行動空間の次元を削減した学習処理により学習される、
制御装置。
【請求項2】
前記学習モデルは、複数のプリミティブ操作に分割されない操作の全体または1つのプリミティブ操作において、前記グリッパまたは前記グリッパに把持された前記対象物が環境に接触または近接している拘束状態を維持しながら動作するような行動を含む行動を出力する、
請求項1に記載の制御装置。
【請求項3】
前記学習モデルは、前記拘束状態を維持しながら前記ロボットを制御することに関しては、状態空間および行動空間の次元を削減した学習処理により学習される、
請求項
2に記載の制御装置。
【請求項4】
対象物を把持するためのグリッパと、前記グリッパを移動させるためのアームとを備え、前記グリッパの途中、前記グリッパと前記アームとの間、および前記アームの途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部を有するロボットの制御装置であって、
前記柔軟部、前記柔軟部よりも対象物を把持する側の前記ロボットの部位、および把持された前記対象物の少なくともいずれかの状態についての観測データである柔軟関連観測データを含む状態観測データを取得する状態取得手段と、
前記状態観測データが入力されると、前記対象物に対する所定の作業を行うための前記ロボットの行動を出力するように、あらかじめ機械学習された学習モデルを含み、前記状態取得手段によって取得された状態観測データを前記学習モデルに入力して得られる出力に基づいて、前記ロボットを制御する制御手段と、
を備え、
前記学習モデルは、複数のプリミティブ操作に分割されない操作の全体または1つのプリミティブ操作において、前記グリッパまたは前記グリッパに把持された前記対象物が環境に接触または近接している拘束状態を維持しながら動作するような行動を含む行動を出力し、
前記学習モデルは、前記拘束状態を維持しながら前記ロボットを制御することに関しては、状態空間および行動空間の次元を削減した学習処理により学習される、
制御装置。
【請求項5】
前記柔軟部は、前記グリッパと前記アームとの間に設けられ、
前記柔軟関連観測データは、
前記グリッパが前記対象物から受ける力に関連する力関連センシングデータ、
前記グリッパの位置、速度、姿勢、および姿勢の変化についての角速度の少なくともいずれか、
前記グリッパと前記アームとの間の相対的な距離、および相対的な角度の少なくともいずれか、
前記柔軟部が受ける力に関連する力関連センシングデータ、
前記対象物、前記グリッパおよび前記柔軟部の少なくともいずれかを撮像した画像に基づくデータ、
の少なくともいずれかを含む、
請求項1から
4のいずれか1項に記載の制御装置。
【請求項6】
対象物を把持するためのグリッパと、前記グリッパを移動させるためのアームとを備え、前記グリッパの途中、前記グリッパと前記アームとの間、および前記アームの途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部を有するロボットと、
請求項1から
5のいずれか1項に記載の制御装置と、
を備える、ロボットシステム。
【請求項7】
対象物を把持するためのグリッパと、前記グリッパを移動させるためのアームとを備え、前記グリッパの途中、前記グリッパと前記アームとの間、および前記アームの途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部を有するロボットの前記柔軟部、前記柔軟部よりも対象物を把持する側の前記ロボットの部位、および把持された前記対象物の少なくともいずれかの状態についての観測データである柔軟関連観測データを含む状態観測データを取得する状態取得手段と、
前記状態観測データが入力されると、前記対象物に対する所定の作業を行うための前記ロボットの行動を出力する学習モデルを獲得する学習手段と、
を
備え、
前記所定の作業は、複数のプリミティブ操作を含み、
前記学習手段は、前記複数のプリミティブ操作に対応した、複数の学習モデルを獲得し、
前記学習手段は、前記複数のプリミティブ操作のうちの少なくともいずれかのプリミティブ操作においては、前記グリッパまたは前記グリッパに把持された前記対象物が環境に接触または近接している拘束状態を維持しながら動作するような行動を出力する前記学習モデルを獲得し、
前記学習手段は、前記拘束状態を維持するように前記ロボットを制御するプリミティブ操作においては、状態空間および行動空間の次元を削減して学習を行う、
学習装置。
【請求項8】
前記学習手段は、強化学習または深層学習により前記学習モデルを獲得する、
請求項
7に記載の学習装置。
【請求項9】
前記学習手段は、モデルベース強化学習またはモデルフリー強化学習により前記学習モデルを獲得する、
請求項
8に記載の学習装置。
【請求項10】
前記学習手段は、複数のプリミティブ操作に分割されない操作の全体または1つのプリミティブ操作において、前記グリッパまたは前記グリッパに把持された前記対象物が環境に接触または近接している拘束状態を維持しながら動作するような行動を含む行動を出力する前記学習モデルを獲得する、
請求項
7~
9のいずれか1項に記載の学習装置。
【請求項11】
前記学習手段は、前記拘束状態を維持するように前記ロボットを制御することに関しては、状態空間および行動空間の次元を削減して学習を行う、
請求項
10に記載の学習装置。
【請求項12】
対象物を把持するためのグリッパと、前記グリッパを移動させるためのアームとを備え、前記グリッパの途中、前記グリッパと前記アームとの間、および前記アームの途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部を有するロボットの前記柔軟部、前記柔軟部よりも対象物を把持する側の前記ロボットの部位、および把持された前記対象物の少なくともいずれかの状態についての観測データである柔軟関連観測データを含む状態観測データを取得する状態取得手段と、
前記状態観測データが入力されると、前記対象物に対する所定の作業を行うための前記ロボットの行動を出力する学習モデルを獲得する学習手段と、
を備え、
前記学習手段は、複数のプリミティブ操作に分割されない操作の全体または1つのプリミティブ操作において、前記グリッパまたは前記グリッパに把持された前記対象物が環境に接触または近接している拘束状態を維持しながら動作するような行動を含む行動を出力する前記学習モデルを獲得し、
前記学習手段は、前記拘束状態を維持するように前記ロボットを制御することに関しては、状態空間および行動空間の次元を削減して学習を行う、
学習装置。
【請求項13】
前記学習手段は、
人間が自身の身体で演技し、または前記ロボットもしくは模擬ロボットを操作して得られる状態観測データを用いて学習する第1学習手段と、
第1学習手段により得られるポリシに基づいて行動した結果として得られる状態観測データを用いて学習する第2学習手段と、
を含む、請求項
7~
12のいずれか1項に記載の学習装置。
【請求項14】
対象物を把持するためのグリッパと、前記グリッパを移動させるためのアームとを備え、前記グリッパの途中、前記グリッパと前記アームとの間、および前記アームの途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部を有するロボットの制御方法であって、
前記柔軟部、前記柔軟部よりも対象物を把持する側の前記ロボットの部位、および把持された前記対象物の少なくともいずれかの状態についての観測データである柔軟関連観測データを含む状態観測データを取得する状態取得ステップと、
前記状態観測データが入力されると、前記対象物に対する所定の作業を行うための前記ロボットの行動を出力するように、あらかじめ機械学習された学習モデルを用いて、前記状態取得ステップにおいて取得された状態観測データから得られる出力に基づいて、前記ロボットを制御する制御ステップと、
を含
み、
前記所定の作業は、前記グリッパまたは前記グリッパに把持された前記対象物が環境に接触または近接している拘束状態を維持しながら動作するように前記ロボットを制御する拘束プリミティブ操作を少なくとも1つ含む複数のプリミティブ操作を含み、
前記制御ステップでは、前記複数のプリミティブ操作に対応した、複数の学習モデルを用いて制御を行い、
前記拘束プリミティブ操作に対応する学習モデルは、状態空間および行動空間の次元を削減した学習処理により学習される、
制御方法。
【請求項15】
対象物を把持するためのグリッパと、前記グリッパを移動させるためのアームとを備え、前記グリッパの途中、前記グリッパと前記アームとの間、および前記アームの途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部を有するロボットの制御方法であって、
前記柔軟部、前記柔軟部よりも対象物を把持する側の前記ロボットの部位、および把持された前記対象物の少なくともいずれかの状態についての観測データである柔軟関連観測データを含む状態観測データを取得する状態取得ステップと、
前記状態観測データが入力されると、前記対象物に対する所定の作業を行うための前記ロボットの行動を出力するように、あらかじめ機械学習された学習モデルを用いて、前記状態取得ステップにおいて取得された状態観測データから得られる出力に基づいて、前記ロボットを制御する制御ステップと、
を含み、
前記学習モデルは、複数のプリミティブ操作に分割されない操作の全体または1つのプリミティブ操作において、前記グリッパまたは前記グリッパに把持された前記対象物が環境に接触または近接している拘束状態を維持しながら動作するような行動を含む行動を出力するものであり、
前記学習モデルは、前記拘束状態を維持しながら前記ロボットを制御することに関しては、状態空間および行動空間の次元を削減した学習処理により学習される、
制御方法。
【請求項16】
対象物を把持するためのグリッパと、前記グリッパを移動させるためのアームとを備え、前記グリッパの途中、前記グリッパと前記アームとの間、および前記アームの途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部を有するロボットの前記柔軟部、前記柔軟部よりも対象物を把持する側の前記ロボットの部位、および把持された前記対象物の少なくともいずれかの状態についての観測データである柔軟関連観測データを含む状態観測データを取得する状態取得ステップと、
前記ロボットの状態観測データが入力されると、前記対象物に対する所定の作業を行うための前記ロボットの行動を出力する学習モデルを獲得する学習ステップと、
前記所定の作業は、複数のプリミティブ操作を含み、
前記学習ステップでは、前記複数のプリミティブ操作に対応した、複数の学習モデルを獲得し、
前記学習ステップでは、前記複数のプリミティブ操作のうちの少なくともいずれかのプリミティブ操作においては、前記グリッパまたは前記グリッパに把持された前記対象物が環境に接触または近接している拘束状態を維持しながら動作するような行動を出力する前記学習モデルを獲得し、
前記学習ステップでは、前記拘束状態を維持するように前記ロボットを制御するプリミティブ操作においては、状態空間および行動空間の次元を削減して学習を行う、
を含む、学習方法。
【請求項17】
対象物を把持するためのグリッパと、前記グリッパを移動させるためのアームとを備え、前記グリッパの途中、前記グリッパと前記アームとの間、および前記アームの途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部を有するロボットの前記柔軟部、前記柔軟部よりも対象物を把持する側の前記ロボットの部位、および把持された前記対象物の少なくともいずれかの状態についての観測データである柔軟関連観測データを含む状態観測データを取得する状態取得ステップと、
前記ロボットの状態観測データが入力されると、前記対象物に対する所定の作業を行うための前記ロボットの行動を出力する学習モデルを獲得する学習ステップと、
を含み、
前記学習ステップでは、複数のプリミティブ操作に分割されない操作の全体または1つのプリミティブ操作において、前記グリッパまたは前記グリッパに把持された前記対象物が環境に接触または近接している拘束状態を維持しながら動作するような行動を含む行動を出力する前記学習モデルを獲得し、
前記学習ステップでは、前記拘束状態を維持するように前記ロボットを制御することに関しては、状態空間および行動空間の次元を削減して学習を行う、
学習方法。
【請求項18】
請求項
14~17のいずれか1項に記載の方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、柔軟部を備えるロボットの制御およびその学習に関する。
【背景技術】
【0002】
工場における製品組み立てなどの動作を考慮したとき、クリアランスの少ない嵌め込み等の接触動作は不可欠である。これを、人間が行うのと同じもしくはそれ以下の動作時間で実現したいという要望が大きい。このような動作の実現のために、従来は以下のアプローチが検討されていた。
【0003】
第1は、高精度の機械と、位置姿勢の不確定性を削減するための機構(治具、専用ハンド等)を用いる手法である。しかしながら、組み立てにおいて複数の部品が存在する場合に対象ごとの位置決め方法や治具を考案する必要があるため、この手法は設計変更に極めて弱い。
【0004】
第2は、対象の位置姿勢を奥行センサ等によって推定する手法である。しかしながら、この手法は十分な精度での推定が困難であるという問題がある。例えば、小型部品の組み立てにおいてはサブmmの精度が必要となるが、現状では十分な精度が得られない。さらに、対象を把持した際の持ち方の不確定性やロボットとカメラ間のキャリブレーションの誤差もあり、サブmmの認識精度が得られたとしても必ずしも組み立て作業は成功しない。また、視覚センサを用いて認識したロボットまたは対象物の位置に基づくビジュアルフィードバックはある程度の解決策となるが、高速なフィードバックサイクルが必要になるとともに、嵌め込み開始後は視覚的な認識が難しくなるので力のかけ具合を求められない。
【0005】
第3は、力制御を用いて力のかけ具合を制御する手法である(特許文献1)。この手法によれば、力のかけ具合を制御できる一方で、動作戦略は対象に応じて作り込む必要がある。また、高速な制御をしないと力を制御できないため、制御周期を短縮する必要があり、コストの増大を招く。
【0006】
第4は、誤差吸収できる受動動作機構を活用する手法である(特許文献2)。コンプライアンスユニットのような受動的な可動要素を用いることにより微少誤差を吸収可能である。しかしながら、吸収可能な誤差範囲に収めることができる程度の高い精度が必要となる。例えば、受動的な可動要素を持つアームを備えたロボットで、把持した対象物を穴の面取り部に案内されて穴に押し込むときには、面取り部に対象物を接触させることができるだけの精度を要する。さらに、動作は人が作り込む必要があるので、設定に時間および熟練者を要する。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2000-042962号公報
【文献】特開2015-083324号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は上記実情に鑑みなされたものであって、接触を伴う高速な動作を容易にロボットに行わせることができる技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために本発明は、以下の構成を採用する。
【0010】
本発明の第一態様は、対象物を把持するためのグリッパと、前記グリッパを移動させるためのアームを備え、前記グリッパの途中、前記グリッパと前記アームとの間、および前記アームの途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部を有するロボットの制御装置であって、
前記柔軟部、前記柔軟部よりも対象物を把持する側の前記ロボットの部位、および把持された前記対象物の少なくともいずれかの状態についての観測データである柔軟関連観測データを含む状態観測データを取得する状態取得手段と、
前記状態観測データが入力されると、前記対象物に対する所定の作業を行うための前記ロボットの行動を出力するように、あらかじめ機械学習された学習モデルを含み、前記状態取得手段によって取得された状態観測データを前記学習モデルに入力して得られる出力に基づいて、前記ロボットを制御する制御手段と、
を備える。
【0011】
「物理的に柔軟な柔軟部」は、変位に対して復元力が働く受動要素による機構を含む概念であり、典型的には、バネやゴムのような弾性体、ダンパ、空気圧または液圧のシリンダが含まれる。力制御を用いてあるいは力制御のみによって柔軟性を得る機構は「物理的に柔軟な柔軟部」から除外されてよい。
【0012】
学習モデルは、現在の状態観測データを入力として、作業達成のために適切な次の1ステップの行動を出力する。学習モデルは、制御モデル、制御ポリシなどとも称される。学習モデルは、どのような機械学習アルゴリズムによって獲得されてもよく、例えば、強化学習によって獲得される。データ効率を考慮するとモデルベース強化学習を採用するとよいが、モデルフリー強化学習であってもよい。また、深層学習、教師あり学習、半教師あり学習によって学習モデルを獲得してもよい。
【0013】
本態様において、前記所定の作業は、複数のプリミティブ操作を含み、前記制御手段は、前記複数のプリミティブ操作に対応した、複数の学習モデルを含んでもよい。プリミティブ操作は、動作区間、モーションプリミティブ、MPなどとも称される。プリミティブ操作は、それぞれ目標が定められた操作であり、注目する状態変数および実施する行動に独自の制約が課されていてもよい。
【0014】
本態様において、前記複数のプリミティブ操作は、前記グリッパまたは前記グリッパに把持された前記対象物が環境に接触または近接している状態を維持しながら動作するように前記ロボットを制御する拘束プリミティブ操作を1つまたは複数含んでもよい。そして、前記拘束プリミティブ操作に対応する学習モデルは、状態空間および行動空間の次元を削減した学習処理により学習されてもよい。
【0015】
本態様において、前記学習モデルは、複数のプリミティブ操作に分割されない操作の全体または1つのプリミティブ操作において、前記グリッパまたは前記グリッパに把持された前記対象物が環境に接触または近接している拘束状態を維持しながら動作するような行動を含む行動を出力するものであってもよい。前記学習モデルは、前記拘束状態を維持しながら前記ロボットを制御することに関しては、状態空間および行動空間の次元を削減した学習処理により学習されてもよい。
【0016】
本態様における前記柔軟部は、前記グリッパと前記アームとの間に設けられ、前記柔軟関連観測データは、前記グリッパが前記対象物から受ける力に関連する力関連センシングデータ、前記グリッパの位置、速度、姿勢、および姿勢の変化についての角速度の少なく
ともいずれか、前記グリッパと前記アームとの間の相対的な距離、および相対的な角度の少なくともいずれか、前記柔軟部が受ける力に関連する力関連センシングデータ、前記対象物、前記グリッパおよび前記柔軟部の少なくともいずれかを撮像した画像に基づくデータ、の少なくともいずれかを含んでもよい。
【0017】
本発明の第二の態様は、対象物を把持するためのグリッパと、前記グリッパを移動させるためのアームとを備え、前記グリッパの途中、前記グリッパと前記アームの間、および前記アームの途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部を有するロボットと、第一の態様の制御装置と、を備えるロボットシステムである。
【0018】
本発明の第三の態様は、
対象物を把持するためのグリッパと、
前記グリッパを移動させるためのアームと、
前記グリッパの途中、前記グリッパと前記アームとの間、および前記アームの途中のうちの少なくともいずれかの位置に設けられた物理的に柔軟な柔軟部と、
前記柔軟部、前記柔軟部よりも前記対象物を把持する側の前記ロボットの部位、および把持された対象物の少なくともいずれかの状態を検出するセンサと、
を備えるロボットである。
【0019】
本発明の第四の態様は、
対象物を把持するためのグリッパと、前記グリッパを移動させるためのアームとを備え、前記グリッパの途中、前記グリッパと前記アームの間、および前記アームの途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部を有するロボットの前記柔軟部、前記柔軟部よりも対象物を把持する側の前記ロボットの部位、および把持された前記対象物の少なくともいずれかの状態についての観測データである柔軟関連観測データを含む状態観測データを取得する状態取得手段と、
前記状態観測データが入力されると、前記対象物に対する所定の作業を行うための前記ロボットの行動を出力する学習モデルを獲得する学習手段と、
を含む、学習装置である。
【0020】
本発明は、ロボットを制御する制御方法と捉えることもできるし、ロボットの行動を出力する学習モデルを獲得する学習方法と捉えることもできる。また、本発明は、かかる方法を実現するためのプログラムやそのプログラムを非一時的に記録した記録媒体として捉えることもできる。なお、上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【0021】
本発明によれば、接触を伴う高速な動作を容易にロボットに行わせることができる。
【図面の簡単な説明】
【0022】
【
図1】
図1は、本発明を適用したロボットシステム(学習フェーズ)の概要を説明する図である。
【
図3】
図3は、ロボットの制御システムを獲得する学習装置のハードウェア構成を示すブロック図である。
【
図4】
図4は、ロボットの制御システムを獲得する学習装置の機能構成を示すブロック図である。
【
図5】
図5は、ペグの嵌め込み作業を構成する操作プリミティブ(MP)を説明する図である。
【
図6】
図6は、ペグの嵌め込み作業を構成する操作プリミティブ(MP)を説明する図である。
【
図8】
図8は、ロボットを制御する制御装置の機能構成を示すブロック図である。
【発明を実施するための形態】
【0023】
<適用例>
図1を参照して、本発明に係るロボットシステム1の適用例を説明する。ロボットシステム1は、柔軟部を備えるロボット10の制御を行うためのモデルを、機械学習(例えばモデルベース強化学習)を用いて獲得する。ロボット10は柔軟部を有しているため、把持した部品を環境に接触させても安全であり、また、制御周期が遅くても嵌め込み作業などを実現可能である。一方、柔軟部によってグリッパおよび部品の位置が不確定となるため、解析的な制御モデルを得ることは困難である。そこで、本発明では機械学習を用いて制御モデルを獲得する。
【0024】
制御モデルの機械学習を単純に行うと、非常に多くのデータ収集が必要となり、学習に時間がかかる。そこで、ロボットシステム1では、ロボットの柔軟性と環境との接触による拘束条件とを考慮して、状態空間および行動空間の次元を削減した学習を行う。例えば、ペグを穴に嵌め込む動作の学習において、全体の動作を複数の区間(プリミティブ操作;Motion Primitive (MP))に分割し、接触状態にある各MPでは自由度のある次元の状
態変数のみに着目する。また、ロボットが柔軟部を備えているため、接触により自由度がなくなっている次元については、力制御が不要なので、位置および速度のみを制御すればよく、さらに接触によって自由度がなくなっている次元が削減された行動空間における行動のみを取るように学習を行う。このように状態空間および行動空間の次元を削減することで、迅速な学習が可能となる。
【0025】
把持した部品が環境に接触している状態を維持しながら動作することに代えて、把持した部品が環境に近接している状態を維持しながら動作するようにしてもよい。ここで近接しているとは、部品と環境との間に微小な間隔、たとえば数mmの間隔があることをいう。この間隔の大きさは、静電容量や電磁誘導に基づく近接センサ、光学的変位センサ、視覚センサなどによって測定または推定される。間隔の大きさを測定せずに位置制御によって近接している状態を維持してもよい。この間隔は、外部からの力やロボットの運動などの影響により目標値から変動してもよい。近接している状態を維持している間に、部品が環境に対して一時的に接触することがあってもよい。接触した場合には柔軟部による衝撃吸収が働く。以下、接触している状態を維持しながら動作することについての説明は、技術的に可能である限り、近接している状態を維持しながら動作する場合に置き換えることができる。
【0026】
ロボット10の状態観測には、例えば、ロボット10の関節のエンコーダ、視覚センサ(カメラ)、モーションキャプチャ、力関連センサを利用できる。各関節の角度からアーム先端の位置・姿勢が特定でき、視覚センサおよび/または力関連センサから部品(作業対象物)の姿勢が推定できる。モーションキャプチャ用のマーカーがグリッパに取り付けられている場合にはグリッパの位置・姿勢が特定でき、グリッパの位置・姿勢から部品(作業対象物)の姿勢が推定できる。
【0027】
力関連センサとは、力覚センサおよびトルクセンサの総称であり、さらにセンサを部品と接触する部位に設ける場合には触覚センサも含む総称である。力関連センサは、ロボットのグリッパが部品から受ける力を検出するように、グリッパが部品を把持する部分の表
面や、グリッパ内の関節部分に設けてもよい。グリッパとアームとの間が柔軟部である場合、力関連センサは、グリッパとアームとの間に設けてグリッパとアームとの間に働く力を検出してもよい。力関連センサは、例えば、1要素または多要素の、1軸、3軸、または6軸の力を検出するセンサである。力関連センサを用いることで、グリッパが部品をどのように把持しているか、すなわち部品の姿勢をより精度良く把握でき、適切な制御が可能となる。力関連センサによって取得されるデータを、本開示では力関連センシングデータと称する。
【0028】
また、視覚センサによっても、グリッパ自体やグリッパが把持している部品の位置および姿勢を検出できる。グリッパとアームとの間が柔軟部である場合、アームに対するグリッパの変位を検出する変位センサによってもアームに対するグリッパの位置・姿勢を特定することができる。
【0029】
このように、各種のセンサによって、柔軟部、柔軟部よりも対象物を把持する側のロボットの部位、および把持されている部品の少なくともいずれかについての状態を検出することができる。センサの検出結果を状態観測データとして取得することができる。なお、柔軟部、柔軟部よりも対象物を把持する側のロボットの部位、および把持されている部品についての観測データを、本開示では柔軟関連観測データとも称する。状態観測データは、柔軟関連観測データのみを含んでもよいし、柔軟関連観測データに加えて、上記以外の状態についての観測データを含んでもよい。
【0030】
学習装置20は、機械学習を用いてロボット10の学習モデルを獲得する。学習アルゴリズムとして、機械学習、特に教師データなしで試行錯誤により学習が行える強化学習を用いるとよいが、教師あり学習を用いて学習モデルを獲得してもよい。強化学習を用いる場合には、特にデータ効率の高いモデルベース機械学習を用いるとよいが、モデルフリー強化学習を用いてもよい。また、強化学習を用いる場合に、学習初期においては、人がロボット10のアームおよびグリッパを動かした結果を用いて学習をしてもよい。学習初期のランダム制御では報酬獲得ができずに学習に時間を要する場合があるが、手動で動かすことによって学習時間を短縮できる。学習装置20は、深層学習によって学習モデルを獲得してもよい。
【0031】
学習装置20によって獲得された学習モデル(学習済みモデル)は、ロボット10を制御する制御装置に搭載されて、実作業に供される。この制御装置は、学習機能を有してしてもよく、その場合には追加の学習を行ってもよい。
【0032】
本適用例によれば、ロボット10が柔軟部を有しているため、複雑な力制御を行うことなく、グリッパまたは対象物を環境に接触させながら動作することが容易である。また、あまり減速せずにグリッパまたは対象物を環境に接触させることが可能であるので、高速な作業ができる。また、機械学習によって学習モデルを獲得するため、簡便にシステム構築が行える。
また機械学習の際に、拘束条件に基づく状態空間および行動空間の次元削減や、センサデータの次元削減を用いることで、データ量を削減して高速な学習(学習モデル獲得)が実現できる。この場合、作業に応じて学習を行って学習モデルを獲得することが少ない工数でできるので、特定の作業だけでなく多種の作業を行わせることが容易にできる。
【0033】
状態空間の次元削減を行う場合、削減後の次元に対応するセンサによって検出された状態観測データだけを用いればよい。状態観測データが複数の次元の成分を含むデータとなっている場合には、元の状態観測データから次元削減後に残される次元の成分を抽出して利用すればよい。あるいは、学習の過程で状態観測データの分析および次元圧縮を行い、結果的に運動が拘束されている次元に対応する状態観測データの次元を削減してもよい。
次元圧縮のための分析の手法としては、主成分分析、自己符号化器、スパースコーディング、深層学習などを利用することができる。状態空間において削減した次元に対応して、行動空間においても次元を削減してもよい。
【0034】
<第1実施形態>
図1は、本発明の第1実施形態に係るロボットシステムである。
図1は、ロボットシステムを制御するための学習モデルの学習フェーズに用いられる構成を示す。学習フェーズにおいては、ロボットシステム1は、ロボット10と学習装置20を有する。
【0035】
(ロボット)
図2A,
図2Bは、ロボット10の概略構成を示す図である。本実施形態におけるロボット10は、6軸垂直多関節ロボットであり、アーム11の先端に柔軟部13を介してグリッパ(ハンド)12が設けられる。ロボット10は、グリッパ12によって部品(例えばペグ)を把持して穴に嵌め込む嵌め込み作業を行う。
【0036】
図2Aに示すように、ロボット10は、関節J1~J6を備えた6自由度のアーム11を有する。各関節J1~J6は、図示しないモータによりリンク同士を矢印C1~C6の方向に回転可能に接続する。ここでは、垂直多関節ロボットを例に挙げたが、水平多関節ロボット(スカラーロボット)であってもよい。また、6軸ロボットを例に挙げたが、5軸や7軸などその他の自由度の多関節ロボットであってもよく、パラレルリンクロボットであってもよい。
【0037】
グリッパ12は、1組の挟持部12aを有し、挟持部12aを制御して部品を挟持する。グリッパ12は、柔軟部13を介してアーム11の先端11aと接続され、アーム11の移動に伴って移動する。本実施形態では、柔軟部13は各バネの基部が正三角形の各頂点になる位置関係に配置された3つのバネ13a~13cにより構成されるが、バネの数はいくつであってもよい。また、柔軟部13は、位置の変動に対して復元力を生じて、柔軟性が得られる機構であればその他の機構であってもよい。例えば、柔軟部13は、バネやゴムのような弾性体、ダンパ、空気圧または液圧シリンダなどであってもよい。柔軟部13は、受動要素によって構成されることが好ましく、力制御によって柔軟性を得る機構は除外する。柔軟部13により、アーム先端11aとグリッパ12は、水平方向および垂直方向に、5mm以上、好ましくは1cm以上、更に好ましくは2cm以上、相対移動可能に構成される。
【0038】
グリッパ12がアーム11に対して柔軟な状態と固定された状態とを切り替えられるような機構を設けてもよい。
【0039】
また、ここではアーム11の先端11aとグリッパ12の間に柔軟部13を設ける構成を例示したが、グリッパ12の途中(例えば、指関節の場所または指の柱状部分の途中)、アームの途中(例えば、関節J1~J6のいずれかの場所またはアームの柱状部分の途中)に設けられてもよい。また、柔軟部13は、これらのうちの複数の箇所に設けられてもよい。
【0040】
(学習装置)
次に、学習装置20について説明する。
【0041】
図3は、本実施形態に係る学習装置のハードウェア構成を示すブロック図である。
図3に示すように、学習装置20は、一般的なコンピュータ(情報処理装置)と同様の構成であり、CPU(Central Processing Unit)31、ROM(Read Only Memory)32、RAM(Random Access Memo
ry)33、ストレージ34、キーボード35、マウス36、モニタ37、及び通信インタフェース38を有する。各構成は、バス39を介して相互に通信可能に接続されている。
【0042】
本実施形態では、ROM32又はストレージ34には、学習モデルの学習処理を実行するための学習プログラムが格納されている。CPU31は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU31は、ROM32又はストレージ34からプログラムを読み出し、RAM33を作業領域としてプログラムを実行する。CPU31は、ROM32又はストレージ34に記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。ROM32は、各種プログラム及び各種データを格納する。RAM33は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ34は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又はフラッシュメモリにより構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。キーボード35及びマウス36は入力装置の一例であり、各種の入力を行うために使用される。モニタ37は、例えば、液晶ディスプレイであり、ユーザインタフェースを表示する。モニタ37は、タッチパネル方式を採用して、入力部として機能してもよい。通信インタフェース38は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi-Fi(登録商標)等の規格が用いられる。
【0043】
次に、学習装置20の機能構成について説明する。
【0044】
図4は、学習装置の機能構成の例を示すブロック図である。
図4に示すように、学習装置20は、その機能構成として、データ取得部21、成功判定部22、報酬決定部23、学習部24、制御指令送信部29を有する。各機能構成は、CPU31がROM32またはストレージ34に記憶された学習プログラムを読み出して、RAM33に展開して実行することにより実現される。なお、一部または全部の機能は専用のハードウェア装置によって実現されても構わない。
【0045】
データ取得部21は、ロボット10の状態を表すデータを取得する。ここでは、取得されるデータを状態観測データと称する。状態観測データは、グリッパ12あるいはグリッパ12によって把持される部品の位置および姿勢を特定可能なデータを含んでよい。詳細は後述するが、データ取得部21は、例えば、関節のエンコーダ、視覚センサ(カメラ)、モーションキャプチャ、力関連センサ(力覚センサ、トルクセンサ、触覚センサ)、変位センサから状態観測データを取得する。
【0046】
成功判定部22は、ロボット10による動作が所定の成功条件を満たしたか否かを判定する。後述するように、本実施形態では、例えばペグの嵌め込み作業という1つの作業(スキル)を、複数のプリミティブ操作(MP)に分割して学習する。成功判定部22は、各MPに定められた成功条件を満たすか否かを判定する。成功条件の例は、例えば、ペグが穴近傍(非接触)に位置する、ペグが穴付近の表面に接触する、ペグの先端が穴にかかる、ペグが穴にかかりかつ穴と平行である、ペグが穴に完全に嵌め込まれる、などである。成功判定部22は、状態観測データに基づいて判定を行ってもよいし、状態観測データとは異なるデータに基づいて判定を行ってもよい。
【0047】
報酬決定部23は、状態x(t)での行動u(t)に対する報酬r(t)を決定する。例えば、報酬決定部23は、成功判定部22によって成功判定されたときのみプラスの報酬を与えて、それ以外の報酬をゼロとする。成功条件を満たす状態に近づくとプラスの報酬を、遠ざかるとマイナスの報酬を与えるようにしてもよい。
【0048】
学習部24は、ロボット10を制御するためのポリシ28(学習モデル)を学習する。学習部24は、ロボット10の状態観測データが入力されると、ポリシ28に基づき所定の作業を行うために適切な次の1ステップの行動を出力する。
【0049】
本実施形態では学習部24は、モデルベース強化学習を用いてポリシ28を獲得する。すなわち、学習部24の状態遷移モデル更新部25はロボット10の状態遷移モデルを学習し、学習部24のポリシ更新部26は学習された状態遷移モデルを用いてロボット10のポリシ28を学習する。状態遷移モデルは、状態x(t)とそのときの行動u(t)を入力として、行動後の状態x(t+1)を出力するモデルである。ポリシ28は、状態x(t)を入力として、取るべき行動u(t)を出力するモデルである。ポリシ更新部26は、累積期待報酬が最大化されるようにポリシ28を学習する。動作決定部27(エージェント)は、ポリシ28を実行して行動u(t)を出力する。
【0050】
制御指令送信部29は、学習中のポリシ28に従って出力された行動u(t)に基づいて、ロボット10に対する指令を生成および送信する。
【0051】
(状態観測データの種類)
ここで、本実施形態において利用されうる状態観測データについて説明する。状態観測データの例は、グリッパ12の対象物に接触する部位における触覚分布(たとえば圧力分布)のデータ、グリッパ12の挟持部12aに設けられた力覚センサによって測定される力、ロボット10の関節のエンコーダから取得される各関節の角度および角速度、ロボット10の関節にかかるトルク、ロボット10のアームに取り付けられた視覚センサによって得られる画像、力覚センサによって測定されるロボット10の柔軟部13が受ける力、柔軟部13に設けた変位センサによって測定される柔軟部13を挟む部位の間の相対的な変位、モーションキャプチャによって測定されるグリッパ12の位置および姿勢が挙げられる。
【0052】
関節エンコーダからのデータから、アーム先端11aの位置、姿勢(角度)、速度、姿勢の変化についての角速度が求められる。なお、各時刻の位置および姿勢(角度)が取得できればその時間変化(速度、角速度)は取得できるので、以下では時間変化が取得可能であることの言及は省略することもある。視覚センサからのデータによって、アーム11に対するグリッパ12および把持対象物の位置および姿勢が求められる。力関連センサからのデータによっても、アーム11に対するグリッパ12の位置および姿勢、または、グリッパ12に対する把持対象物の位置および姿勢が求められる。
【0053】
また、グリッパ12にモーションキャプチャ用のマーカーが取り付けられている場合には、モーションキャプチャデータのみによってグリッパ12の位置および姿勢を取得できる。アームに対する把持対象物の位置および姿勢は視覚センサや力関連センサを用いて求めてもよい。また、把持対象物にもマーカーが取り付けられていれば、把持対象物の位置および姿勢も取得できる。
【0054】
以下の説明では簡単のために、状態変数(状態観測データ)が、デカルト座標系でのグリッパまたは把持対象物の位置および速度であるものとして説明することがある。しかしながら、状態変数は、上記で説明したデータの1つまたは複数の組み合わせとして表されてもよい。
【0055】
(モーションプリミティブ(MP)と次元削減)
モーションプリミティブについて説明する。本実施形態で学習するペグの嵌め込み作業は、複数の動作区間に分割され、それぞれの区間ごとに制御モデルの学習が行われる。この動作区間のそれぞれが、モーションプリミティブ(Motion Primitive)である。モーシ
ョンプリミティブは、MP、プリミティブ操作とも呼ばれる。
【0056】
図5,
図6を参照して、本実施形態におけるペグの嵌め込み作業を構成するMPについて説明する。
図5においては、51はアーム先端、52はグリッパ、53は柔軟部、54は把持対象物(ペグ)、55は穴を表す。
図5の、符号56および57はそれぞれ、各MPにおいて考慮する状態および行動を示す。
図6は、各MPの内容および各MPにおいて考慮する状態および行動を
図5よりも具体的に説明下図である。
【0057】
ペグ嵌め込み作業全体の目的は、ペグ54を穴55に挿入することである。ペグの嵌め込み作業は、次の5つのMPに分割され、各MPにおいて指定された目標値との誤差が閾値以下になると次のMPに遷移する。
n1:アプローチ
n2:コンタクト
n3:フィット
n4:アライン
n5:インサート
【0058】
「n1:アプローチ」は、グリッパ52を任意の初期位置から穴55付近まで接近させる動作である。「n2:コンタクト」は、ペグ54を穴55付近の表面に接触させる動作である。柔軟部53を固定モードと柔軟モードで切り替え可能な場合には、接触前に柔軟部53を柔軟モードに切り替える。「n3:フィット」は、ペグが表面に接触した状態を保ったままペグを移動させて、ペグの先端が穴の先端に嵌まるようにする動作である。「n4:アライン」は、ペグの先端が穴に嵌まって接触している状態を保ったまま、ペグの姿勢が穴に平行(この例では垂直)になるようにする動作である。「n5:インサート」は、ペグを穴の底まで挿入する動作である。
【0059】
「n1:アプローチ」および「n2:コンタクト」、すなわち、ペグが表面に接触していないMPでは位置制御によってペグを目標位置まで移動させればよい。「n3:フィット」「n4:アライン」「n5:インサート」、すなわち、ペグが環境に接触した状態を維持するMP(接触プリミティブ操作)では、機械学習に基づく速度制御によりグリッパおよびペグの位置を制御する。接触MPにおける機械学習では、状態空間および行動空間の次元を削減した学習処理によりポリシ(制御モデル)が学習される。
【0060】
ここでは、グリッパおよびペグの移動がyz平面内で行われるものとして説明する。「n1:アプローチ」MPでは、ペグのyz位置を入力として、yz面内での位置制御を行う。「n2:コンタクト」MPでは、ペグのz位置を入力として、z方向の位置制御を行う。
【0061】
「n3:フィット」MPでは、環境拘束とアームの柔軟部53によりz方向を陽に考慮しないモデルの表現が可能である。状態はy方向の位置・速度、行動はy方向の速度指令とすることができる(
図6のx
fitおよびu
fit)。ペグ54の先端が穴55に嵌まったときのグリッパの位置を目標値とする。
【0062】
「n4:アライン」MPでは、状態はグリッパの角度と角速度、行動はy方向の速度指令である(
図6のx
alignおよびu
align)。柔軟手首は6自由度(yz2次元平面上では3自由度)の変位が可能であるため、ペグの先端と穴が接触した状態下では、y方向の並進運動のみでペグの回転運動が可能である。ペグ54の姿勢が垂直になったときのグリッパの角度を目標値とする。
【0063】
「n5:インサート」MPでは、状態はz方向の位置と速度、行動はy方向とz方向の
速度指令位置である(
図6のx
insertionおよびu
insertion)。y方向の速度指令は、ペグ54のジャミング(挿入途中で動かなくなること)を回避するために導入されている。ペグ54が穴55の底に到達したときのグリッパの位置を目標位置とする。
【0064】
(学習処理)
図7は、機械学習を用いてポリシを獲得する学習処理の流れを示すフローチャートである。本実施形態では、「フィット」「アライン」「インサート」の3つのMPにおけるポリシを本処理により獲得する。
図7に示すフローチャートは1つのMPのポリシに対する学習処理であり、それぞれのMPについてこの学習処理が適用される。
【0065】
本実施形態では、ガウス過程を用いたモデルベース強化学習(Probabilistic Inference for Learning Control, PILCO)を利用する。本手法は、サンプル効率(データ効率)
が高い学習手法である。
【0066】
ステップS71において、学習装置20は、ロボット10の状態遷移モデルを獲得する。具体的には、制御指令送信部29は、アーム先端にランダムな速度制御入力を与えて、データ取得部21は、グリッパの位置、速度、角度、角速度のデータを収集する。
【0067】
ステップS72において、学習装置20は、ガウス過程を用いた状態遷移モデルの学習を行う。具体的には、状態遷移モデル更新部25は、ステップS71で取得されたデータに基づいて、ガウス過程回帰による状態遷移モデルの更新を行う。ガウス過程回帰は、データから関数の形を決定するノンパラメトリックな回帰であり、非線形な表現が可能である。ガウス過程回帰は、さらに、確率的な予測によりモデルの不確実性(ノイズやデータ不足による不確実性)を表現することができる。本手法では、モデルの入力は、ある時刻tにおける状態(グリッパの位置と速度、角度と角速度)と、行動(アーム先端の目標速度指令)であり、出力は次の時刻t+1における状態である。
【0068】
ステップS73において、学習装置20は、学習中の状態遷移モデルを用いて、ポリシ28の学習を行う。ポリシとは、ある状態xで次に取るべき行動uを決定する写像π(u|x)である。本実施形態では、非線形関数による決定的なポリシ(ガウス過程の予測平均のみを使用)を使用している。ポリシはポリシパラメータθ(ガウスカーネルの幅や基底)によって表現される。ポリシ更新部26は、所定の予測ホライズンt=0,・・・,Tにおいて累積期待報酬を最大化させるポリシパラメータθを決定する。累積期待報酬は、ある初期状態からTステップ分の状態遷移をモデルから予測することで計算される。PILCOでは累積期待報酬の勾配を解析的に求めることができ、ポリシパラメータθを一般的な勾配法(共役勾配法やL-BFGS)で求めることができる。
【0069】
ステップS74において、学習装置はポリシ28の学習が完了したか判断する。終了条件は、例えば、予め指定された繰り返し回数の終了、ポリシパラメータθの変化が閾値以下になるという条件である。終了条件を満たさない場合(S74-NO)はステップS75に進む。終了条件を満たす場合(S74-YES)は、学習を終了する。
【0070】
ステップS75において、動作決定部27は、学習中のポリシ28を適用して次の動作u(t+1)を決定し、データ取得部21はその結果の状態を観測する。その後は、ステップS72に戻って、ここで取得された状態観測データを用いた学習(状態遷移モデルの更新およびポリシの更新)が繰り返される。
【0071】
1つのMPにおける学習が終了した後は、次のMPについての学習が行われる。なお、ポリシパラメータθはMPごとに初期化する必要があるが、状態遷移モデルは前回のMPでの学習に使用したものを初期モデルとして利用する。
【0072】
以上の処理により、複数のMPに対応したポリシを獲得することができる。
【0073】
なお、学習初期のポリシにしたがって行動すると報酬に結びつく行動が選択できずに、学習が進まない場合がある。そこで、学習の初期段階においては、人間がロボット10を手動で操作して得られる状態観測データおよび行動に基づいて、モデルの更新を行ってもよい。あるいは、ロボット10を模擬した模擬ロボットを人間が手動で操作して得られる状態観測データ、または、人間が自身の身体で演技し、その演技をセンシングして得られる状態観測データに基づいて、モデルの更新を行ってもよい。このようにすれば報酬が得られる行動が早い段階で得られるので、より短い時間での学習が可能となる。
【0074】
(制御装置)
図8は、ロボットシステム1の運用フェーズにおける構成を示す。運用フェーズでは、ロボットシステム1は、ロボット10と制御装置80を有する。
【0075】
制御装置80のハードウェア構成は学習装置20と同様であるので繰り返しの説明は省略する。制御装置80は、その機能構成として、データ取得部81、成功判定部82、制御部84、制御指令送信部89を有する。制御部84は、動作決定部87と複数のポリシ(学習モデル)88を有する。各機能構成は、CPU31がROM32またはストレージ34に記憶された学習プログラムを読み出して、RAM33に展開して実行することにより実現される。なお、一部または全部の機能は専用のハードウェア装置によって実現されても構わない。
【0076】
データ取得部81は、ロボット10の状態を表すデータを取得する。データ取得部81が取得するデータは、学習装置20の場合と同様であるため繰り返しの説明は省略する。なお、学習時にセンサデータに対して次元削減を行う場合には、運用時においても同様の次元削減を行う。
【0077】
成功判定部82は、ロボット10による動作が所定の成功条件を満たしたか否かを判定する。成功判定部82は、学習時と同様にMPごとの成功条件を判断する。
【0078】
制御部84は、動作決定部87と複数のポリシ(学習モデル)88を有する。動作決定部87は、データ取得部81によって得られる状態観測データとポリシ88に基づいて、ロボット10に行わせる行動を決定する。なお、「アプローチ」および「コンタクト」のMPにおいては、制御部84は、グリッパ12またはペグの位置と穴の位置とに基づく位置制御を行う。一方、「フィット」「アライン」「インサート」のMPにおいては、機械学習により獲得されたポリシにしたがってロボットに行わせる行動を決定する。
【0079】
制御部84は、成功判定部82から現在のMPの成功条件が満たされたと判断されたら、次のMPに対応するポリシ88に切り替える。具体的には、「アプローチ」が成功したら「コンタクト」に対応するポリシに切り替え、「コンタクト」が成功したら「フィット」に対応するポリシに切り替え、「フィット」が成功したら「アライン」に対応するポリシに切り替え、「アライン」が成功したら「インサート」に対応するポリシに切り替える。「インサート」が成功したら、ペグの嵌め込み作業が完了したと判定する。
【0080】
制御指令送信部89は、ポリシ88に従って出力された行動に基づいて、ロボット10に対する指令を生成および送信する。
【0081】
なお、それぞれのMPにおいてあらかじめ定められたタイムステップ以内に終了条件を満たさない場合、ロボット10に過剰な力がかかった場合、指定領域外にロボットが到達
した場合、にはタスクを中断して初期状態に戻る。
【0082】
図8には示していないが、制御装置80は、学習装置20としての機能を備えて追加の機械学習ができるように構成されてもよい。
【0083】
(効果の検証)
まず、物理演算エンジンを用いたシミュレーションによって本手法の効果を確認した。シミュレーションでは、2次元の物理演算エンジン(Box2D)を用いた。
【0084】
図9Aはシミュレーションのセットアップを説明する図である。中央の四角91はロボットアーム先端11aを模した部分であり、枠92はグリッパ12を模した部分であり、凸部94はペグ(把持対象物)を模した部分である。アームとグリッパは、柔軟部13を模したバネ(弾性体)93によって接続されている。本シミュレーションにおいては、ペグはグリッパに対して固定されている。
【0085】
このような条件において「フィット」「アライン」「インサート」の3つMPについてのポリシを上述したモデルベース機械学習により獲得した。すなわち、状態空間および行動空間の次元削減(
図6参照)を施す学習処理を行った。比較として、次元削減を行わない学習処理も行った。次元削減を行わないと、状態は6次元(3自由度の位置および速度)、行動は2次元(水平および垂直方向の速度)である。
【0086】
図9B~9Dは、「フィット」「アライン」「インサート」の各MPについて、各試行回数での誤差を示すグラフである。横軸は試行回数を示し、縦軸は目標との誤差を示す。学習は30セッション行い、折れ線グラフは30セッションの平均値、エラーバーは標準偏差を示す。
【0087】
この結果から、次元削減の有無にかかわらず十分な精度でそれぞれの動作を学習できていることが把握できる。ただし、次元削減を行うことで短い試行回数で誤差の少ない学習が可能となることが分かる。
【0088】
次に実際のロボットを用いて実験を行った。ロボットは
図2A,
図2Bに示す構造を有する。また、グリッパ12にモーションキャプチャマーカーが取り付けられており、グリッパ12の位置および姿勢を測定可能としている。また、ペグはグリッパ12に固定しており、グリッパ12の位置からペグの位置を求められるようにしている。ここでは、次元削減ありの学習のみを行っている。
【0089】
図10A~
図10Cは、「フィット」「アライン」「インサート」の各MPについて、各試行回数での誤差を示すグラフである。横軸は試行回数を示し、縦軸は目標との誤差を示す。学習は10セッション行い、折れ線グラフは10セッションの平均値、エラーバーは標準偏差を示す。「フィット」「アライン」「インサート」のいずれのMPにおいても、5回以内の試行回数で誤差を十分に小さくできていることが分かる。
【0090】
<第2実施形態>
本実施形態は基本的に第1実施形態と同様であるが、状態観測データの一部として力関連センサの計測値を用いる。以下、本実施形態で用いる力関連センサおよび力関連センサによって得られるデータの具体例について説明する。
【0091】
一例として、グリッパが把持対象物から受ける力を測定するために触覚センサを用いることができる。
【0092】
図11A,
図11Bは、グリッパ12に設けられる触覚センサ12bを説明する図である。グリッパ12の1組の挟持部12aのそれぞれの表面に触覚センサ12bが設けられる。触覚センサ12bは、例えば、マイクロマシニング技術によって製作された3方向の力およびモーメントを同時に検出可能な6軸ひずみゲージ式の触覚センサである。このタイプのセンサは力覚センサとよばれることもある。もっとも、3軸あるいは1軸の触覚センサを用いてもよいし、静電容量式、圧電式、光学式などその他の検出原理の触覚センサを用いてもよい。触覚センサ12bは、8×8画素の多要素からなる分布触覚センサであるが、要素数はより多くても少なくてもよく、また、1要素のセンサであってもよい。
【0093】
触覚センサ12bを用いることで、グリッパ12が把持対象物(ペグ)をどのように把持しているかを把握できる。例えば、触覚センサ12bの測定値から、把持対象物を垂直に把持しているのか斜めに把持しているのかを把握できる。また、1対の挟持部12aのそれぞれの触覚センサ12bから得られる計測値の差から、グリッパ12が垂直であるのか斜めになっているのかを把握できる。さらに、触覚センサ12bの計測値から、ペグが対象表面に接触したこと、ペグが穴にかかったこと、ペグの向きを穴にと平行にできたこと、ペグを穴に挿入する際にジャミングが生じたこと、ペグを穴の底まで挿入したことなどを把握できる。
【0094】
他の例として、柔軟部13、すなわちグリッパ12とアーム11との間に働く力を測定するために変位センサを利用した力覚センサを用いることができる。
図11Cは、アーム先端11aとグリッパ12の間の距離(変位)を測定するための変位センサ15a,15bを示す。変位センサ15a,15bは両者の間の距離の変化を測定する。変位センサは、アーム先端11aとグリッパ12に複数組設けられてもよい。変位センサはレーザ式、超音波式など任意のタイプのものを利用可能である。アーム先端11aとグリッパ12の間の距離は、バネによって接続されているアーム先端11aとグリッパ12との間に働く力に相関するので、変位センサ15a,15bは、アーム先端11aに対するグリッパ12の位置および姿勢を検出するほかに、力覚センサとしての側面も有する。
【0095】
なお、グリッパ12とアーム11の間に働く力は、変位センサ以外にも、歪みゲージなどの力覚センサを用いて測定してもよい。
【0096】
さらに別の例として、柔軟部13とグリッパ12先端(把持対象物との接触部分)との間に働く力を測定するために力覚センサまたはトルクセンサを用いることもできる。例えば、グリッパ12の挟持部が1つまたは複数の関節を有するロボットハンドである場合に、指関節に働く力を力覚センサまたはトルクセンサによって測定してもよい。
【0097】
以上の説明において、グリッパ12とアーム11との間に働く力、あるいは、柔軟部13とグリッパ12先端との間に働く力には、力の測定箇所よりもグリッパ先端側のロボット自身の質量によって生じる力(重力による力、運動加速度による力)の成分が含まれてもよい。
【0098】
ロボットの関節にかかる力は、ロボットの関節を動かすモータに流れる電流値に基づくトルクとして測定することもできるが、歪ゲージ式などによる力覚センサによって測定した方が感度あるいは高速応答性に優れる場合が多い。
【0099】
学習処理の基本的なアルゴリズムは第1実施形態と同様であるため繰り返しの説明は省略する。本実施形態によれば、力関連センサを用いることで、柔軟部よりも先のグリッパおよび把持対象物の状態をより正確に把握できるので、より適切なポリシの学習が可能となる。
【0100】
<変形例>
上記実施形態は、本発明の構成例を例示的に説明するものに過ぎない。本発明は上記の具体的な形態には限定されることはなく、その技術的思想の範囲内で種々の変形が可能である。
【0101】
学習アルゴリズムとして、PILCOを利用する例を説明したが、PILCO以外のモデルベース強化学習を用いてもよいし、モデルフリー強化学習を用いてもよい。また、強化学習ではなく、教師あり学習によって学習モデルを獲得してもよい。教師あり学習を行うためには種々の状態における行動に正解ラベルが付された教師データを用意する必要がある。
【0102】
上記の例では、ペグの嵌め込み作業を例に説明したが、学習および制御対象の作業は任意の作業であってよい。ただし、本発明は、グリッパ自体もしくはグリッパが把持する部品が環境と接触するような動作を含む作業に好適である。また、上記の例では、把持対象物が環境に接触している動作区間(MP)のみで機械学習によるモデル獲得を行っているが、把持対象物またはグリッパが環境に接触していない動作区間(MP)においても機械学習によるモデル獲得を行ってもよい。また、作業が比較的単純である場合には、作業を複数の動作区間に分割することなく学習してモデル獲得を行ってもよい。
【0103】
<付記>
1.対象物を把持するためのグリッパ(12)と、前記グリッパ(12)を移動させるためのアーム(11)とを備え、前記グリッパ(12)の途中、前記グリッパ(12)と前記アーム(11)との間、および前記アーム(11)の途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部(13)を有するロボット(10)の制御装置(80)であって、
前記柔軟部、前記柔軟部よりも対象物を把持する側の前記ロボットの部位、および把持された前記対象物の少なくともいずれかの状態についての観測データである柔軟関連観測データを含む状態観測データを取得する状態取得手段(81)と、
前記状態観測データが入力されると、前記対象物に対する所定の作業を行うための前記ロボットの行動を出力するように、あらかじめ機械学習された学習モデル(86)を含み、前記状態取得手段(81)によって取得された状態観測データを前記学習モデル(86)に入力して得られる出力に基づいて、前記ロボットを制御する制御手段(84)と、
を備える、制御装置(80)。
【0104】
2.対象物を把持するためのグリッパ(12)と、
前記グリッパ(12)を移動させるためのアーム(11)と、
前記グリッパ(12)の途中、前記グリッパ(12)と前記アーム(11)との間、および前記アーム(11)の途中のうちの少なくともいずれかの位置に設けられた物理的に柔軟な柔軟部(13)と、
前記グリッパ(12)が前記対象物から受ける力、または前記グリッパ(12)と前記アーム(11)の間に働く力の少なくともいずれかを取得する力覚センサ(12b、15a,15b)と、
を備えるロボット(10)。
【0105】
3.対象物を把持するためのグリッパ(12)と、前記グリッパ(12)を移動させるためのアーム(11)とを備え、前記グリッパ(12)の途中、前記グリッパ(12)と前記アーム(11)との間、および前記アーム(11)の途中のうちの少なくともいずれかの位置に物理的に柔軟な柔軟部(13)を有するロボット(10)の前記柔軟部(13)、前記柔軟部(13)よりも対象物を把持する側の前記ロボットの部位、および把持された前記対象物の少なくともいずれかの状態についての観測データである柔軟関連観測デ
ータを含む状態観測データを取得する状態取得手段(21)と、
前記状態観測データが入力されると、前記対象物に対する所定の作業を行うための前記ロボット(10)の行動を出力する学習モデルを獲得する学習手段(24)と、
を含む、学習装置(20)。
【符号の説明】
【0106】
1:ロボットシステム
10:ロボット 11:アーム 12:グリッパ 13:柔軟部
20:学習装置 80:制御装置