JP2021091022A - ロボット制御装置、学習済みモデル、ロボット制御方法およびプログラム - Google Patents
ロボット制御装置、学習済みモデル、ロボット制御方法およびプログラム Download PDFInfo
- Publication number
- JP2021091022A JP2021091022A JP2019222170A JP2019222170A JP2021091022A JP 2021091022 A JP2021091022 A JP 2021091022A JP 2019222170 A JP2019222170 A JP 2019222170A JP 2019222170 A JP2019222170 A JP 2019222170A JP 2021091022 A JP2021091022 A JP 2021091022A
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- robot
- control device
- robot control
- environment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 29
- 238000013528 artificial neural network Methods 0.000 claims abstract description 22
- 238000003384 imaging method Methods 0.000 claims abstract 2
- 230000008569 process Effects 0.000 claims description 16
- 230000009471 action Effects 0.000 claims description 11
- 238000013527 convolutional neural network Methods 0.000 claims description 8
- 239000007788 liquid Substances 0.000 claims description 7
- 230000007613 environmental effect Effects 0.000 claims description 6
- 239000004744 fabric Substances 0.000 claims description 5
- 230000000306 recurrent effect Effects 0.000 claims description 3
- 230000036544 posture Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 9
- 230000002787 reinforcement Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4155—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39271—Ann artificial neural network, ffw-nn, feedforward neural network
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39284—NSC neural servo controller
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40604—Two camera, global vision camera, end effector neighbourhood vision camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Abstract
【課題】広範なロボットを好適に制御できる制御器を自動的に得てロボットを制御することを目的とする。【解決手段】ロボットの制御を行うロボット制御装置は、ロボットを含む環境を撮影する撮像装置から画像を取得する取得手段と、画像をニューラルネットワークに入力して得られる出力結果に基づいてロボットを駆動する駆動手段と、を含む。ニューラルネットワークは、環境を仮想化した仮想環境の環境条件および仮想ロボットの状態を変更させながら撮影した複数の仮想画像を入力として、出力される仮想ロボットの方策が所定の条件を満たした場合に発生させる報酬に応じて更新される。【選択図】図1
Description
本発明は、ロボットの制御を行うロボット制御装置、学習済みモデル、ロボット制御方法およびプログラムに関する。
ロボットの利用シーンの一例として、工場がある。ロボットは、工場という保証された環境の下で制御器により制御される。制御器は、専門知識を有するロボットエンジニアにより作成される。一方、近年、ロボットの利用シーンは多様化している。例えば、店舗での接客や家庭における掃除等に、ロボットが利用される。このような利用シーンでは、ロボットの利用環境を保証することが難しく、また専門知識を有するロボットエンジニアを用意することは難しい。関連する技術として、非特許文献1の技術が提案されている。非特許文献1の技術では、カメラを用いて、ロボットのアームによりワークをピックするタスクを取り扱っている。また、非特許文献1の技術は、カメラの撮影画像からワークの位置および姿勢を算出する変換器を、仮想環境における深層学習で生成する。仮想環境には、実空間のロボットを含む環境を仮想化した仮想アームや仮想ワーク、仮想カメラ、仮想照明等が配置される。そして、人工ニューラルネットワークおよび大量の教師データを用いて学習を行う。また、CNNおよびLSTMを用いた技術が非特許文献2に提案されている。
OpenAI、[Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World]、2017年3月20日、[Online]、[2019年4月15日検索]、インターネット<https://arxiv.org/pdf/1703.06907.pdf>
DeepMind、[Reinforcement Learning with Unsupervised Auxiliary Tasks]、2016年11月16日、[Online]、[2019年4月15日検索]、インターネット<https://arxiv.org/abs/1611.05397.pdf>
非特許文献1では、深層学習により生成される3層以上の人工ニューラルネットワーク(モデル)を用いて、カメラの撮影画像からワークの位置および姿勢が算出される。よって、非特許文献1は、布や液体等、位置および姿勢を定義できないワークをピックするロボットの制御器には適さない。また、非特許文献1では、ワークの位置および姿勢を算出した後のアームの駆動は、逆運動学および動作計画に基づいて行われる。逆運動学では、ロボットのアームの各部の寸法および先端の位置および姿勢に基づいて、アームの各駆動軸の位相が推定される。また、動作計画は、ロボットのアームが自身や障害物等に接触することなく、望ましい姿勢に至るために逆運動学の解を順次選択する手法である。
ここで、逆運動学の解は唯一ではなく、また逆運動学および動作計画に基づくアームの駆動には誤差が生じる。例えば、アームの寸法誤差が場合やアームの剛性が低い場合、駆動軸の位相の計測誤差が大きい場合等においては、逆運動学による推定の誤差が大きくなる。このため、小さなワークのピックアップ等の高精度の駆動が要求されるタスクには、非特許文献1の技術は適さない。このため、非特許文献1の技術は、ワークやロボットの種類によっては、好適にロボットを制御できないことがある。
本発明は、広範なロボットを好適に制御できる制御器を自動的に得てロボットを制御することを目的とする。
上記目的を達成するために、本発明のロボット制御装置は、ロボットの制御を行うロボット制御装置であって、前記ロボットを含む環境を撮影する撮像装置から画像を取得する取得手段と、前記画像をニューラルネットワークに入力して得られる出力結果に基づいて前記ロボットを駆動する駆動手段と、を備え、前記ニューラルネットワークは、前記環境を仮想化した仮想環境の環境条件および仮想ロボットの状態を変更させながら撮影した複数の仮想画像を入力として、出力される前記仮想ロボットの方策が所定の条件を満たした場合に発生させる報酬に応じて更新されることを特徴とする。
本発明によれば、広範なロボットを好適に制御できる制御器を自動的に得てロボットを制御することができる。
以下、本発明の各実施の形態について図面を参照しながら詳細に説明する。しかしながら、以下の各実施の形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は各実施の形態に記載されている構成によって限定されることはない。
以下、図面を参照して、本実施形態について説明する。本実施形態は、ロボットを制御する制御器の生成に適用される。以下、制御器は、カメラが撮影した画像を用いて、ロボットのアームがワークをピックするというタスクを行うものとして説明する。ただし、本実施形態は、ワークのピック以外の任意のタスクに適用可能であり、様々なロボットに適用可能である。
図1は、本実施形態に係るロボット制御装置の概要を示す図である。図1(a)は、ロボットの制御器を生成する際の環境およびデータの流れを示す図である。図1(a)では、実環境R、仮想環境V、モデルMおよびスクリプトSが示されている。図1(a)の実環境Rには、アームA、ワークW、グローバルカメラC1およびオンハンドカメラC2が含まれる。また、実環境Rには、照明や暗室等が含まれる。実環境Rは、現実の空間である。アームAは、後述するロボット11のアームであり、アームAの先端にグリッパーGが取り付けられている。アームAは、例えば、多関節構造を有する。グリッパーGは、ワークWを把持することができる把持部である。グリッパーGがワークWを把持した状態でアームAが動作すると、ワークWは持ち上げられる。グリッパーGは、例えば、液体を掬う部位を有していてもよい。グリッパーGは、アームAと一体的に構成されていてもよい。また、アームAとロボット11とは一体的に構成されたロボットアームであってもよいし、それぞれ個別に設けられてもよい。
グローバルカメラC1は、アームAの略全身およびワークWを含む全体の風景を撮影できる。オンハンドカメラC2は、アームAのグリッパーGの近傍に取り付けられ、グリッパーGの略全身およびグリッパーGの周囲を撮影できる。グローバルカメラC1は、ほぼ常にワークWを撮影できるが、アームAがワークWを隠すと、ワークWを撮影できなくなる。オンハンドカメラC2は、ワークWを撮影できる状態が限られるが、グリッパーGがワークWを向いており、且つ両者の距離が近い状態では、ワークWを大きく撮影することができる。従って、グローバルカメラC1とオンハンドカメラC2とは、互いの死角を補う。また、オンハンドカメラC2が撮影した画像に基づいて、アームAは、ワークWが把持を行う前後の駆動を精密に行うことができる。グローバルカメラC1およびオンハンドカメラC2は、撮像装置である。撮像装置は、1台のカメラであってもよい。
仮想環境Vは、実環境Rを仮想化した物理シミュレータである。仮想環境Vには、実環境Rに対応して、仮想アームVA、仮想ワークVW、仮想グローバルカメラVC1および仮想オンハンドカメラVC2が含まれる。また、仮想環境Vには、仮想照明等が含まれる。仮想アームVAはアームAに、仮想ワークVWはワークWに、仮想グローバルカメラVC1はグローバルカメラC1に、仮想オンハンドカメラVC2はオンハンドカメラC2にそれぞれ対応する。仮想グローバルカメラVC1および仮想オンハンドカメラVC2は、仮想撮像装置であり、仮想撮像装置が撮影する画像は仮想画像である。仮想環境Vの外観を含む仕様は、できる限り実環境Rと類似させることが望ましい。物理シミュレータに実装された物理現象の範囲内で、仮想アームVA等の各オブジェクト同士は相互に作用できる。例えば、仮想環境Vにおいて、仮想アームVAは仮想ワークVWを把持し、持ち上げることができる。
モデルMは、ニューロンとシナプスとからなり、3層以上の層構造を有する人工ニューラルネットワーク(以下、単にニューラルネットワークとする)である。モデルMの詳細については後述する。モデルMは、深層強化学習により得られる学習済みモデルであり、現実のロボット11のアームAの制御に適した制御器に対応する。
スクリプトSは、スクリプト言語で書かれたスクリプトである。スクリプトSに、学習フレームワークを用いたモデルMの実装が記述される。また、スクリプトSには、グローバルカメラC1およびオンハンドカメラC2に対する撮影指示や、撮影した画像を連結する処理も記述される。さらに、スクリプトSには、アームAに対する駆動指示やアームAの各駆動軸およびグリッパーGの状態を取得する処理も記述される。同様に、スクリプトSには、仮想アームVA、仮想グローバルカメラVC1、仮想オンハンドカメラVC2に対する処理も記述される。スクリプトSは、学習フレームワークや仮想環境、実環境等の複数のシステム間の連結を担うプログラムである。このようなスクリプトSの記述に適したプログラミング言語としては、グルー言語が好適である。
次に、仮想環境Vにおいて強化学習が行われる際のデータの流れを説明する。強化学習は、ある環境に置かれたエージェントが試行を繰り返し、試行の結果得られる報酬を最大化する行動選択基準(方策)を生成する機械学習の手法である。仮想環境Vにおいて、仮想グローバルカメラVC1および仮想オンハンドカメラVC2による撮影画像は、連結されて1枚の画像として、スクリプトSに送られる。スクリプトSは、モデルMに画像を入力し、出力として方策を得る。方策は、複数の行動と各行動の選択確率との組である。選択確率の合計は「1」になるように調整される。スクリプトSは、得られた方策に基づき、仮想アームVAの制御量を決定する。スクリプトSは、決定した制御量を、仮想アームVAに送る。仮想アームVAは、制御量に従い、仮想ロボットの仮想アームVAの姿勢を変更する。仮想アームVAの姿勢変更により、仮想環境Vでは、報酬が発生することがある。スクリプトSは、報酬の発生を検知すると、モデルMを更新する。報酬の発生に基づくモデルMの更新を、学習Lと称する。本実施形態では、学習Lとしては、深層強化学習が適用される。以上が仮想環境Vにおける学習処理である。
次に、実環境Rにおいて推論が行われる際のデータの流れを説明する。グローバルカメラC1およびオンハンドカメラC2が撮影した画像は、連結されてスクリプトSに送られる。スクリプトSは、モデルMに画像を入力し、出力として方策を得る。実環境Rにおいて撮影された画像をモデルMに入力して、方策を得る処理をモデルMの推論Iと呼ぶ。スクリプトSは、得られた方策に基づき、アームAの制御量を決定する。スクリプトSは、決定された制御量を、アームAに送る。アームAは、制御量に従い、姿勢を変更する。以上が実環境Rにおける推論処理である。
図1(b)は、本実施形態のシステムの構成を示す図である。本実施形態のシステムの構成は、図1(b)の例には限定されない。ロボット制御装置10は、アームAが取り付けられたロボット11を駆動制御する。また、ロボット制御装置10には、グローバルカメラC1およびオンハンドカメラC2が接続されている。ロボット制御装置10は、CPU15、GPU16およびメモリ17を有する。CPU15は、本実施形態の処理を行うプロセッサであり、取得手段および駆動手段に対応する。GPU16は、主に、モデルMの演算を行う際に使用されるグラフィックスプロセッシングユニットである。GPU16の代わりに、機械学習の処理に特化した半導体回路が用いられてもよい。メモリ17は、CPU15が実行するプログラムを記憶するメモリである。スクリプトSは、メモリ17に記憶される。CPU15が、スクリプトSの記述内容を実行することで、本実施形態の処理が実現される。ロボット制御装置10は、単体の装置であってもよいし、ロボット11に内蔵されてもよい。
以下、CPU15が物理シミュレータを実行するものとして説明するが、物理シミュレータは、ロボット制御装置10と異なるシミュレータ装置により実現されてもよい。この場合、シミュレータ装置とロボット制御装置10とは通信可能に接続される。また、モデルMの演算および更新は、ロボット制御装置10のGPU16ではなく、所定の処理装置が行ってもよい。例えば、エッジコンピュータやクラウドサーバ等がモデルMの演算および更新を行ってもよい。この場合、所定の処理装置とロボット制御装置10とは通信可能に接続される。
図2は、モデルMを表す図である。モデルMに対する入力は、画像21である。仮想環境Vにおける強化学習が行われるとき、画像21は、仮想グローバルカメラVC1の撮影画像と仮想オンハンドカメラVC2の撮影画像とが連結された画像となり、ノイズが印可される。実環境Rにおける推論が行われるとき、画像21は、グローバルカメラC1の撮影画像とオンハンドカメラC2の撮影画像とが連結された画像となる。モデルMは、2つのCNN22、23を有する。CNNは、畳み込みニューラルネットワークであり、画像処理器の生成に適する。CNN22とCNN23とは結合されており、CNN23の出力先に全結合層FCが結合されている。全結合層FCの出力先にLSTM24が結合されている。
LSTMは、リカレントニューラルネットワーク(再帰型ニューラルネットワーク)の一種であり、系列処理器の生成に適する。系列処理は、時系列データや文字列を所望の単位に分割し、意味を抽出する処理である。LSTMは、音声認識や文字列認識等に好適である。画像21がCNN22に入力されると、CNN23、FCおよびLSTMを経て、方策25が出力される。図2では、方策25は「Action Policy」と表記される。図2のその他の要素および入出力は、入力の変化の認識や学習の促進、望ましくない方策の獲得の回避に作用する。図2のその他の要素および入出力に関する定義や機能は、非特許文献2に基づくものであってよい。モデルMは、図2の例には限定されない。
図3は、仮想環境Vにおける学習の処理の流れを示すフローチャートである。図3の各処理は、例えば、CPU15がメモリ17に記憶されているスクリプトSを実行することにより実現される。CPU15は、モデルMの初期化を行う(S301)。S301では、学習フレームワークを用いて、モデルMが生成される。このとき、モデルMの多数のパラメータが全て初期値に設定される。該初期値は、ランダムな値であってもよいし、以降の学習が可能か否か、或いは学習の速度に応じて、試行錯誤的に決定されてもよい。
次に、CPU15は、仮想環境Vの初期化を行う(S302)。S302では、物理シミュレータの立ち上げが行われる。CPU15は、スクリプトSの内容に基づいて、物理シミュレータ内に、仮想アームVA、仮想グローバルカメラVC1、仮想オンハンドカメラVC2および仮想ワークVWを配置する。また、CPU15は、必要に応じて、仮想アームVA等を照らす仮想照明やその他のオブジェクトも物理シミュレータ内に配置する。S302では、全てのオブジェクトの位置、姿勢、テクスチャおよび仮想照明についての明るさと色味とが初期値に設定される。該初期値は、ランダムな値であってもよいし、以降の学習が可能か否か、或いは学習の速度に応じて、試行錯誤的に決定されてもよい。ただし、S302において、重力等の現実の法則を逸脱する初期状態、或いはタスクの達成が容易過ぎる初期状態に設定されることは、望ましくない。
CPU15は、物理シミュレータ内で、仮想カメラが撮影した画像を取得する(S303)。S303では、仮想グローバルカメラVC1および仮想オンハンドカメラVC2が撮影した画像の縮小および連結が行われる。CPU15は、S303で取得された画像に対して、意図的にノイズを印可する処理を行う(S304)。ノイズの印可は常に行われてもよい。S304の処理は、仮想環境Vにおける学習時の条件をランダム化する処理の一種である。詳細については、後述する。CPU15は、S304の処理が施された画像を、モデルMに入力する(S305)。
CPU15は、GPU16に対して、モデルMに対する画像を入力として、ニューラルネットワークの順伝搬の演算を行うように制御する。これにより、GPU16は、順伝搬の演算結果として方策35を出力する(S306)。本実施形態の方策35は、仮想アームVAの全ての可動軸を、それぞれ正または負に一定量駆動する行動と選択確率との組である。CPU15は、物理シミュレータ内で、S306で出力された方策35に基づいて、仮想アームVAの姿勢を変更する処理を行う(S307)。姿勢の変更、すなわち、仮想アームVAの何れかの可動軸の正または負の駆動は、選択確率に比例して選択される。CPU15は、仮想アームVAの姿勢を変更したことで、報酬が発生したかを判定する(S308)。報酬の発生条件についての詳細は、後述する。報酬が発生した場合、S208でYESと判定される。この場合、CPU15は、モデルMを更新する(S309)。S309では、報酬が得られた行動の選択確率が高まるように、画像を方策51に変換するようにモデルMが更新される。具体的には、モデルMのパラメータの調整が行われる。例えば、確率的勾配降下法等の最適化計算を、誤差逆伝搬法等で効率的に適用することで、S309の処理が行われる。
S308でNOと判定された場合、またはS309の処理が行われた場合、CPU15は、学習を終了するかを判定する(S310)。CPU15は、一定時間が経過したかに基づいて、または報酬の発生頻度が一定値以上になったかに基づいて、S310の判定を行ってもよい。例えば、一定時間が経過した場合、または報酬の発生頻度が一定値以上になった場合に、CPU15は、学習を終了すると判定してもよい。また、CPU15は、実行しているスクリプトSや物理シミュレータに例外が発生したかに基づいて、またはユーザの終了指示の有無に基づいて、S310の判定を行ってもよい。例えば、例外が発生した場合、またはユーザの終了指示があった場合、CPU15は、学習を終了すると判定してもよい。S310でYESと判定された場合、CPU15は、モデルMを保存する(S315)。そして、学習は終了する。
S310でNOと判定された場合、学習は終了しない。この場合、CPU15は、エピソードを終了するかを判定する(S311)。エピソードは、報酬が発生する状態に行き当たるための複数回の試行のまとまりである。CPU15は、仮想アームVAが仮想ワークVWに作用するタスクが完了したときに、エピソードが終了したと判定してもよい。また、CPU15は、試行の回数が一定回数に達したときに、エピソードが終了したと判定してもよい。
S311でNOと判定された場合、フローは、S303に戻る。S311でYESと判定された場合、CPU15は、仮想アームVAの姿勢を初期化する(S312)。S312では、仮想アームVAの姿勢が、S302が実行されたときと同様の姿勢に初期化される。そして、CPU15は、仮想ワーク位置および姿勢をランダムに変更する(S313)。さらに、CPU15は、仮想照明の明るさと色味との何れか一方または両方をランダムに変更する(S314)。仮想照明の明るさの変更および色味の変更は、環境条件の変更の一例である。S313およびS314は、仮想環境Vにおける学習時の条件のランダム化の一種であり、仮想ロボットの状態の変更である。詳細については、後述する。仮想環境Vにおける強化学習は、多様な画像から報酬が発生しやすい方策が得られるまで、モデルMのパラメータを調整する処理でもある。
図4は、仮想環境Vにおける学習が行われる際の複数の報酬の発生条件を表す図である。図4の例では、仮想環境Vの状態は、状態41から状態48まで変遷している。状態41は、エピソードの開始状態である。状態41では、仮想アームVAが初期状態になっており、仮想ワークVWが床に置かれている。仮想ターゲットVTは、仮想アームVAが仮想ワークVWを持ち上げて、仮想ワークVWを持ち運び、最後に仮想ワークVWを置く領域である。仮想ターゲットVTは、例えば、ユーザにより指定される。状態42は、第1の報酬の発生条件を満たす状態である。状態42に遷移したときに、CPU15は、報酬を発生させる制御を行う。状態42は、仮想カメラの画像とモデルMとを用いた複数回の行動選択(仮想ワークVWを駆動させる選択)が行われて、仮想グリッパーVGと仮想ワークVWとが、状態41から少し近接した状態である。この場合、CPU15は、仮想グリッパーVGと仮想ワークVWとの間の距離が所定距離以下となったときに報酬を発生させる制御を行う。仮想グリッパーVGは、仮想アームVAの先端に取り付けられた仮想的なグリッパーであり、仮想環境VMにおいて仮想ワークVWを把持して持ち上げ、所定の領域に置くことができる。仮想グリッパーVGは、仮想把持部に対応する。仮想グリッパーVGは、仮想アームVAと一体的に構成されていてもよい。
本実施形態では、CPU15は、仮想グリッパーVGと仮想ワークVWとの間の距離を利用して、報酬を発生させる制御を行う。CPU15は、仮想アームVAと仮想ワークVWとの間の距離を利用して、報酬を発生させてもよい。例えば、CPU15は、報酬の発生に応じて、点数を1点ずつ加算してもよい。仮想環境Vは、実環境Rと異なり、物理シミュレータで実現されるため、各オブジェクトの位置および姿勢を容易に取得できる。このため、CPU15は、仮想グリッパーVGと仮想ワークVWとの間の距離も、容易に算出できる。状態43は、第2の報酬の発生条件を満たす状態である。状態43は、仮想グリッパーVGと仮想ワークVWとが、状態42よりもさらに近接した状態である。状態43に遷移したときに、報酬が発生する。状態44は、第3の報酬の発生条件を満たす状態である。状態44は、仮想グリッパーVGを閉じれば、仮想ワークVWが把持できるまで、仮想グリッパーVGと仮想ワークVWとが近接した状態である。状態44に遷移したときに、報酬が発生する。
状態45は、第4の報酬の発生条件を満たす状態である。図4のうち状態45は、仮想オンハンドカメラVC2が撮影した撮影画像である。該撮影画像には、仮想グリッパーVGと仮想ワークVWとが含まれている。状態45は、仮想アームVAが、仮想グリッパーVGを閉じ、仮想ワークVWを把持した状態である。仮想グリッパーVGを閉じる駆動(行動)も、モデルMが出力する方策に含まれる。状態45に遷移したときに、報酬が発生する。状態46は、第5の報酬の発生条件を満たす状態である。状態46は、仮想グリッパーVGに把持された仮想ワークVWが、仮想アームVAの駆動により、床から一定以上、持ち上げられた状態である。この状態を、アームによるワークのピック達成とする。状態46に遷移したときに、報酬が発生する。
状態47は、第6の報酬の発生条件である。仮想アームVAの駆動により、仮想ワークVWと仮想ターゲットVTとの間の距離が、一定距離以下に近づいた状態である。状態46に遷移したときに、報酬が発生する。状態48は、第7の報酬の発生条件である。仮想グリッパーVGが開かれ、床の仮想ターゲットVT内に、仮想ワークVWが置かれた状態である。仮想グリッパーVGを開く駆動(行動)も、モデルMが出力する方策に含まれる。この状態を、アームによるワークのプレース達成とする。状態48に遷移したときに、報酬が発生する。以上の第1の報酬の発生条件乃至第7の報酬の発生条件は、所定の条件に対応する。
状態41から状態48に遷移すると、仮想アームVAの仮想グリッパーVGによる仮想ワークVWのピック・アンド・プレースが達成される。この場合、ピック・アンド・プレースという1つのタスクが完了する。ピック・アンド・プレースのタスクが完了すると、図3のS311でYESと判定される。報酬が発生するごとに、モデルMは更新される。これにより、更新されたモデルMは、入力した画像から、さらに報酬が発生しやすい方策を出力するようになる。以上の例では、第1の報酬の発生条件乃至第7の報酬の発生条件(所定の条件)が満たされた場合に一定の報酬が発生するが、条件によって、発生させる報酬の値を異ならせるように制御がされてもよい。例えば、ピックが完了したときに発生させる報酬およびプレースが完了したときに発生させる報酬を、他の状態のときに発生させる報酬より大きくしてもよい。
仮想ワークVWは、位置および姿勢を定義し易い仮想物体でなく、位置および姿勢を定義できない仮想的な布や液体等であってもよい。以上の図3および図4の各処理は、物理シミュレータで実行される。よって、仮想ワークVWの位置および姿勢を利用しない条件下でも、CPU15は、仮想環境Vの状態を変化させて、布や液体等のピックを行う場合に報酬を与え、モデルMを更新することができる。従って、本実施形態は、位置および姿勢を定義できないワーク(布や液体等)にも適用できる。
図5は、仮想環境Vにおいて学習が行われるときの各種条件のランダム化を表す図である。図5(a)は、仮想ワークVWの位置および姿勢のランダム化を表す図である。3つのエピソード5a1、5a2および5a3は開始状態を示し、それぞれ異なる位置および姿勢で仮想ワークVWが置かれている。仮想ワークVWの位置および姿勢は、エピソードごとに、ランダムに変更される。仮想環境Vにおける学習は、仮想ワークVWの位置および姿勢が、エピソードごとに、ランダムに変更しながら行われる。これにより、モデルMは、仮想ワークVWの位置および姿勢によらず、報酬が発生しやすい方策を出力できるようになる。すなわち、様々な仮想ワークVWの位置および姿勢に対応して、ピック・アンド・プレースを達成できるようなモデルMが得られる。
図5(b)は、仮想照明の明るさと色味とのランダム化を表す図である。4つのエピソード5b1、5b2、5b3および5b4は全景を示す。エピソード5b1では、全景は、暗く、且つ赤く照らされている。エピソード5b2では、全景は、暗く、且つ青く照らされている。エピソード5b3では、全景は、明るく、且つ緑に照らされている。エピソード5b4では、全景は、中間的な明るさで、且つ白く照らされている。仮想グローバルカメラVC1および仮想オンハンドカメラVC2が撮影する画像の明るさと色味とは、それぞれの試行で異なる。仮想環境Vにおける学習は、仮想照明の明るさと色味とを、エピソードごとに、ランダムに変更しながら行われる。これにより、モデルMは、全景の明るさや色味によらず、報酬が発生しやすい方策を出力できるようになる。すなわち、様々な全景の明るさと色味とに対応した、ピック・アンド・プレースを達成できるようなモデルMが得られる。
図5(c)は、モデルMに対する入力画像のランダム化を表す図である。入力画像は、仮想グローバルカメラVC1および仮想オンハンドカメラVC2が撮影した画像を、連結し、さらにノイズを印加した画像である。例えば、CPU15は、入力画像の全域に対して、画素値の上下限の差の「30%」程度を標準偏差とするホワイトノイズを印可する。そして、CPU15は、入力画像が生成されるごとに、異なるホワイトノイズを印加する。仮想環境Vにおける学習は、入力画像に印可するノイズを、エピソードごとに、ランダムに変更しながら行われる。これにより、モデルMは、カメラのノイズによらず、報酬が発生しやすい方策を出力できるようになる。すなわち、カメラに対する様々なノイズに対応した、ピック・アンド・プレースを達成できるようなモデルMが得られる。
仮想環境Vにおいて学習が行われるときの、各種条件のランダム化は、上述した例には限定されない。例えば、CPU15は、仮想アームVA、仮想グローバルカメラVC1および仮想オンハンドカメラVC2の位置および姿勢を微小にランダム化してもよい。また、CPU15は、入力画像に含まれる全てのオブジェクトのテクスチャをランダム化してもよい。この場合、CPU15は、各オブジェクトのテクスチャの色および質感をランダムに変更する。CPU15は、各種条件のランダム化を、仮想環境Vにおける学習時に施すことで、モデルMの汎化性能が高まる。汎化性能は、学習時に経験しなかった、未知の入力に対しても、報酬が発生しやすい条件を出力できるかを示す指標である。以上の汎化性能の高いモデルMを用いることで、実環境Rにおいても、仮想環境Vにおける学習と同様のタスクを達成できる。
図6は、実環境Rにおける推論の処理の流れを示すフローチャートである。CPU15は、学習フレームワークを用いて、モデルMを読み込む(S601)。モデルMは、仮想環境Vにおける学習によって獲得されたものである。そして、CPU15は、アームAの姿勢を初期化する(S602)。これにより、実環境RにおけるアームAは、仮想アームVAと略同一の初期状態(初期姿勢)になる。そして、CPU15は、グローバルカメラC1およびオンハンドカメラC2が撮影した画像を縮小および連結することで、カメラが撮影した画像を取得する(S603)。CPU15は、S603で生成された画像をモデルMに入力する(S604)。これにより、例えば、CPU15は、GPU16に、画像を入力としたニューラルネットワークの順伝搬の演算を実行させる。そして、GPU16は、画像を入力としたモデルMの演算結果として方策を出力する(S605)。該方策は、仮想環境Vにおける学習時の方策と同種である。
CPU15は、モデルMが出力した出力結果である方策に基づき、アームAを駆動して、アームAの姿勢を変更する制御を行う(S606)。CPU15は、アームAの姿勢の変更、すなわち、アームAの各可動軸のうち何れかの可動軸の正または負の駆動を、方策に示される選択確率に比例して、選択する。CPU15は、エピソードが終了したかを判定する(S607)。CPU15は、アームAがワークWに対して行うタスクが完了したかに基づいてエピソードが終了したかを判定してもよいし、エピソードが所定回数行われたかに基づいて、エピソードが終了したかを判定してもよい。S607でNOと判定された場合、フローは、S603に戻る。S607でYESと判定された場合、処理は終了する。
上述したように、モデルMは、実環境Rでも利用可能な汎化性能を有する。つまり、モデルMは、仮想環境Vにおいて、実環境Rでも適用可能なように学習がされている。従って、ロボット制御装置10は、実環境RにおけるワークWの位置および姿勢を利用することなく、また逆運動学や動作計画を利用することなく、モデルMを用いて、ロボット11のアームAを制御することができる。よって、本実施形態では、逆運動学や動作計画に基づくアームAの駆動誤差が発生することがない。また、本実施形態は、小さなワークのピック等の高精度な駆動が要求されるタスクにも容易に適用でき、また位置および姿勢の中間値を定義できない布や液体等がワークである場合にも適用できる。従って、本実施形態によれば、ロボットエンジニアのような専門家を要することなく、広範なロボットを好適に制御できる制御器を自動的に得てロボットを制御することができるようになる。
以上、本発明の好ましい実施の形態について説明したが、本発明は上述した各実施の形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。本発明は、上述の各実施の形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの1つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
10 ロボット制御装置
11 ロボット
15 CPU
16 GPU
22、23 CNN
24 LSTM
A アーム
G グリッパー
R 実環境
V 仮想環境
C1 グローバルカメラ
C2 オンハンドカメラ
VA 仮想アーム
VG 仮想グリッパー
VC1 仮想グローバルカメラ
VC2 仮想オンハンドカメラ
11 ロボット
15 CPU
16 GPU
22、23 CNN
24 LSTM
A アーム
G グリッパー
R 実環境
V 仮想環境
C1 グローバルカメラ
C2 オンハンドカメラ
VA 仮想アーム
VG 仮想グリッパー
VC1 仮想グローバルカメラ
VC2 仮想オンハンドカメラ
Claims (18)
- ロボットの制御を行うロボット制御装置であって、
前記ロボットを含む環境を撮影する撮像装置から画像を取得する取得手段と、
前記画像をニューラルネットワークに入力して得られる出力結果に基づいて前記ロボットを駆動する駆動手段と、を備え、
前記ニューラルネットワークは、前記環境を仮想化した仮想環境の環境条件および仮想ロボットの状態を変更させながら撮影した複数の仮想画像を入力として、出力される前記仮想ロボットの方策が所定の条件を満たした場合に発生させる報酬に応じて更新されることを特徴とするロボット制御装置。 - 前記ニューラルネットワークは、畳み込みニューラルネットワークと再帰型ニューラルネットワークとを含むことを特徴とする請求項1に記載のロボット制御装置。
- 前記方策は、前記仮想ロボットの複数の行動と該複数の行動のそれぞれの選択確率であることを特徴とする請求項1または2に記載のロボット制御装置。
- 前記ニューラルネットワークは、前記報酬が得られた行動の選択確率が高まるように更新されることを特徴とする請求項3に記載のロボット制御装置。
- 前記所定の条件に応じて、前記報酬が異なることを特徴とする請求項1乃至4のうち何れか1項に記載のロボット制御装置。
- 前記仮想画像にノイズが印可されることを特徴とする請求項1乃至5のうち何れか1項に記載のロボット制御装置。
- 前記ノイズは、エピソードごとにランダムに変更されることを特徴とする請求項6に記載のロボット制御装置。
- 前記環境条件は、前記仮想環境における仮想照明の明るさと色味とのうち何れか一方または両方であることを特徴とする請求項1乃至7のうち何れか1項に記載のロボット制御装置。
- 前記明るさまたは前記色味は、エピソードごとにランダムに変更されることを特徴とする請求項8に記載のロボット制御装置。
- 前記環境条件は、前記仮想環境に含まれる複数のオブジェクトのテクスチャであることを特徴とする請求項1乃至7のうち何れか1項に記載のロボット制御装置。
- 前記ロボットはワークを把持するアームを有しており、前記仮想ロボットは仮想ワークを把持する仮想アームを有することを特徴とする請求項1乃至9のうち何れか1項に記載のロボット制御装置。
- 前記ワークと前記仮想アームに取り付けられた仮想把持部との間の距離に応じて、前記報酬が発生することを特徴とする請求項11に記載のロボット制御装置。
- 前記仮想環境において前記仮想ロボットは前記仮想ワークを持ち上げ、所定の領域に置くことができることを特徴とする請求項11または12に記載のロボット制御装置。
- 前記仮想ワークの位置および姿勢は、エピソードごとにランダムに変更されることを特徴とする請求項11乃至13のうち何れか1項に記載のロボット制御装置。
- 前記ワークは、布または液体であることを特徴とする請求項11乃至14のうち何れか1項に記載のロボット制御装置。
- ロボットを含む環境を仮想化した仮想環境の環境条件および仮想ロボットの状態を変更させながら撮影した複数の仮想画像を入力として、出力される前記仮想ロボットの方策が所定の条件を満たした場合に発生させる報酬に応じてニューラルネットワークを更新することにより取得されることを特徴とする学習済みモデル。
- ロボットの制御を行うロボット制御方法であって、
前記ロボットを含む環境を撮影する撮像装置から画像を取得する工程と、
前記画像をニューラルネットワークに入力して得られる出力結果に基づいて前記ロボットを駆動する工程と、を備え、
前記ニューラルネットワークは、前記環境を仮想化した仮想環境の環境条件および仮想ロボットの状態を変更して撮影した仮想画像を入力として、出力される前記仮想ロボットの方策が所定の条件を満たした場合に発生させる報酬に応じて更新されることを特徴とするロボット制御方法。 - 請求項1乃至15のうち何れか1項に記載のロボット制御装置の各手段をコンピュータに実行させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019222170A JP2021091022A (ja) | 2019-12-09 | 2019-12-09 | ロボット制御装置、学習済みモデル、ロボット制御方法およびプログラム |
US17/106,785 US11679496B2 (en) | 2019-12-09 | 2020-11-30 | Robot controller that controls robot, learned model, method of controlling robot, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019222170A JP2021091022A (ja) | 2019-12-09 | 2019-12-09 | ロボット制御装置、学習済みモデル、ロボット制御方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021091022A true JP2021091022A (ja) | 2021-06-17 |
Family
ID=76209411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019222170A Pending JP2021091022A (ja) | 2019-12-09 | 2019-12-09 | ロボット制御装置、学習済みモデル、ロボット制御方法およびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US11679496B2 (ja) |
JP (1) | JP2021091022A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113771983A (zh) * | 2021-08-30 | 2021-12-10 | 北京工业大学 | 一种基于智能演进运动技能学习的仿生四足机器人 |
CN113787501B (zh) * | 2021-09-28 | 2023-02-07 | 千翼蓝犀智能制造科技(广州)有限公司 | 一种基于梯度下降的轮式移动机器人状态调整方法 |
CN114872042A (zh) * | 2022-04-29 | 2022-08-09 | 中国科学院自动化研究所 | 基于临界状态循环网络的肌肉骨骼机器人控制方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997046929A2 (en) * | 1996-06-04 | 1997-12-11 | Werbos Paul J | 3-brain architecture for an intelligent decision and control system |
US7590589B2 (en) * | 2004-09-10 | 2009-09-15 | Hoffberg Steven M | Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference |
US8775341B1 (en) * | 2010-10-26 | 2014-07-08 | Michael Lamport Commons | Intelligent control with hierarchical stacked neural networks |
US8873813B2 (en) * | 2012-09-17 | 2014-10-28 | Z Advanced Computing, Inc. | Application of Z-webs and Z-factors to analytics, search engine, learning, recognition, natural language, and other utilities |
US20170337682A1 (en) * | 2016-05-18 | 2017-11-23 | Siemens Healthcare Gmbh | Method and System for Image Registration Using an Intelligent Artificial Agent |
US11515030B2 (en) * | 2016-06-23 | 2022-11-29 | Siemens Healthcare Gmbh | System and method for artificial agent based cognitive operating rooms |
US11745351B2 (en) * | 2019-01-03 | 2023-09-05 | Lucomm Technologies, Inc. | Robotic devices |
-
2019
- 2019-12-09 JP JP2019222170A patent/JP2021091022A/ja active Pending
-
2020
- 2020-11-30 US US17/106,785 patent/US11679496B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11679496B2 (en) | 2023-06-20 |
US20210170579A1 (en) | 2021-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200361082A1 (en) | Machine learning methods and apparatus for robotic manipulation and that utilize multi-task domain adaptation | |
Dasari et al. | Robonet: Large-scale multi-robot learning | |
Zhu et al. | Reinforcement and imitation learning for diverse visuomotor skills | |
JP6721785B2 (ja) | ロボット操作のための深層強化学習 | |
Zhang et al. | Towards vision-based deep reinforcement learning for robotic motion control | |
JP2021091022A (ja) | ロボット制御装置、学習済みモデル、ロボット制御方法およびプログラム | |
JP7458741B2 (ja) | ロボット制御装置及びその制御方法及びプログラム | |
Van Baar et al. | Sim-to-real transfer learning using robustified controllers in robotic tasks involving complex dynamics | |
US8571714B2 (en) | Robot with automatic selection of task-specific representations for imitation learning | |
WO2019113067A2 (en) | Viewpoint invariant visual servoing of robot end effector using recurrent neural network | |
Breyer et al. | Comparing task simplifications to learn closed-loop object picking using deep reinforcement learning | |
US20210205988A1 (en) | Task embedding for device control | |
CN108229678B (zh) | 网络训练方法、操作控制方法、装置、存储介质和设备 | |
CN113076615B (zh) | 基于对抗式深度强化学习的高鲁棒性机械臂操作方法及系统 | |
CN115917564A (zh) | 用于学习可重用选项以在任务之间传递知识的系统和方法 | |
Iqbal et al. | Toward sim-to-real directional semantic grasping | |
Huang et al. | Grasping novel objects with a dexterous robotic hand through neuroevolution | |
Tsurumine et al. | Generative adversarial imitation learning with deep p-network for robotic cloth manipulation | |
Inoue et al. | Transfer learning from synthetic to real images using variational autoencoders for robotic applications | |
Kalashnikov et al. | Scaling up multi-task robotic reinforcement learning | |
Zhan et al. | Learning visual robotic control efficiently with contrastive pre-training and data augmentation | |
Mosbach et al. | Efficient representations of object geometry for reinforcement learning of interactive grasping policies | |
Grigorescu et al. | ROVIS: Robust machine vision for service robotic system FRIEND | |
CN111015676A (zh) | 基于无手眼标定的抓取学习控制方法、系统、机器人及介质 | |
Duan et al. | Recognising known configurations of garments for dual-arm robotic flattening |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240206 |