(57)【要約】【課題】人間の操作を学習した学習済モデルに基づいてロボットを動作させる場合に、学習のための操作者の負担を軽減しつつ、ロボットに高度な動作を行わせる。【解決手段】ロボット制御装置１５は、修正作業学習済モデル構築部４３を備える。修正作業学習済モデル構築部４３は、一連の作業を行うためのロボットアーム１０の暫定的な動作に介入するようにユーザの修正操作が行われたときの修正作業データを学習させることにより、修正作業学習済モデル４４を構築する。修正作業データは、ロボットアーム１０が動作しているときの当該ロボットアーム１０及びその周辺状態を入力データとし、それに応じたユーザの修正操作又は当該修正操作によるロボットアーム１０の修正操作分を出力データとしたものである。【選択図】図１
2020104216.tif 000002
【特許請求の範囲】
【請求項１】
人間がロボットを操作して一連の作業を行わせる場合の、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の操作又は当該操作による当該ロボットの動作を出力データとしたときに、機械学習を用いて前記入力データから前記出力データを推定した結果に基づいてロボットを制御するロボット制御装置であって、
前記一連の作業を行わせるために前記ロボットを暫定的に動作させるための暫定動作情報を出力する暫定動作情報出力部と、
前記暫定動作情報に基づいて制御することで前記ロボットに前記一連の作業を行わせるとともに、当該ロボットの暫定動作に介入するように人間に修正操作させる暫定制御部と、
前記暫定制御部による前記ロボットの暫定動作に介入するように人間が修正操作しているときの、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の修正操作又は当該修正操作による当該ロボットの修正動作を示すデータを出力データとする修正作業データを収集する修正作業データ収集部と、
前記修正作業データを学習させることにより学習済モデルを構築する学習済モデル構築部と、
前記暫定動作情報に基づいて前記ロボットを制御するとともに、当該ロボット及びその周辺の状態を前記入力データとして前記学習済モデルに入力したときに前記学習済モデルが出力する前記出力データを当該ロボットの制御に適用する修正後制御部と、
を備えることを特徴とするロボット制御装置。
【請求項２】
請求項１に記載のロボット制御装置であって、
前記学習済モデルの出力データが表す前記修正操作又は前記修正動作は、前記暫定動作情報が表す人間の操作又は前記ロボットの動作に対する差分量であることを特徴とするロボット制御装置。
【請求項３】
請求項１又は２に記載のロボット制御装置であって、
前記暫定動作情報出力部は、構築された学習モデルである暫定作業学習済モデルの出力を用いて、前記暫定動作情報を出力し、
前記暫定作業学習済モデルは、人間がロボットを操作して一連の作業を行わせる場合の、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の操作又は当該操作による当該ロボットの動作を出力データとする暫定作業データを学習することにより構築されることを特徴とするロボット制御装置。
【請求項４】
請求項３に記載のロボット制御装置であって、
前記暫定作業学習済モデルが学習した前記暫定作業データの前記入力データには、前記ロボットに発生する力覚的作用を検出した結果が含まれず、
前記学習済モデルが学習した前記修正作業データの前記入力データには、前記ロボットに発生する力覚的作用を検出した結果が含まれることを特徴とするロボット制御装置。
【請求項５】
請求項３又は４に記載のロボット制御装置であって、
前記学習済モデルは、前記修正作業データの特徴に基づいてクラスタリングした結果に基づいて、それぞれのクラスタが表す調整工程毎に前記修正作業データを学習したものであり、
前記暫定作業学習済モデルは、前記暫定作業データの特徴に基づいてクラスタリングした結果に基づいて、それぞれのクラスタが表す作業工程毎に前記暫定作業データを学習したものであることを特徴とするロボット制御装置。
【請求項６】
請求項１から５までの何れか一項に記載のロボット制御装置と、
前記ロボットと、
を備えることを特徴とするロボットシステム。
【請求項７】
人間がロボットを操作して一連の作業を行わせる場合の、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の操作又は当該操作による当該ロボットの動作を出力データとしたときに、機械学習を用いて前記入力データから前記出力データを推定した結果に基づいてロボットを制御するロボット制御方法であって、
前記一連の作業を行わせるために前記ロボットを暫定的に動作させるための暫定動作情報を出力する暫定動作情報出力工程と、
前記暫定動作情報に基づいて制御することで前記ロボットに前記一連の作業を行わせるとともに、当該ロボットの暫定動作に介入するように人間に修正操作させる暫定制御工程と、
前記暫定制御工程での前記ロボットの暫定動作に介入するように人間が修正操作しているときの、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の修正操作又は当該修正操作による当該ロボットの修正動作を示すデータを出力データとする学習モデルが学習する修正作業データを収集する修正作業データ収集工程と、
前記修正作業データを前記学習モデルに学習させることにより学習済モデルを構築する学習済モデル構築工程と、
前記暫定動作情報に基づいて前記ロボットを制御するとともに、当該ロボット及びその周辺の状態を前記入力データとして前記学習済モデルに入力したときに前記学習済モデルが出力する前記出力データを当該ロボットの制御に適用する修正後制御工程と、
を含むことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主として、機械学習により構築された学習済モデルに基づいてロボットに作業を行わせるロボット制御装置に関する。詳細には、学習済モデルの構築に関する。
【背景技術】
【０００２】
従来から、予め作成されたプログラムによって、ロボット等の制御対象物を制御し、所望の動きを行わせることが行われている。例えば、特許文献１には、ロボットの制御部が、ＣＰＵと、ロボットを制御するためのプログラムが格納されたＲＯＭと、ロボットが作業を実行するためのロボット言語で書かれたプログラムが格納されたＲＡＭと、を備える構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−１３４６０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の構成において、ロボット等を動かすためのプログラムは、人間が作業を理解して、動かし方をプログラミングすることで実現されている。しかしながら、このような手法は、プログラムの作成及びその調整に時間を要する場合が多かった。
【０００５】
近年、プログラムの代わりに、情報データから反復的に学習して法則やルールを自動的に見つけ出し、人間が自然に行っている学習能力と同様な機能を実現するための機械学習は、大きな注目を集めている。
【０００６】
このような機械学習を用いてロボットの動作を制御するシステムにおいては、一般に、学習のためのデータが大量に必要になる。従って、人間の操作を学習の対象とする場合、データ収集のための操作者の負担が大きくなる。このことから、操作者の負担を軽減しつつ、ロボットの高度な自律動作を実現できる構成が望まれていた。
【０００７】
本発明は以上の事情に鑑みてされたものであり、その目的は、人間の操作を学習した学習済モデルに基づいてロボットを動作させる場合に、学習のための操作者の負担を軽減しつつ、ロボットに高度な動作を行わせることが可能なロボット制御装置等を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【０００９】
本発明の第１の観点によれば、以下の構成のロボット制御装置が提供される。即ち、このロボット制御装置は、人間がロボットを操作して一連の作業を行わせる場合の、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の操作又は当該操作による当該ロボットの動作を出力データとしたときに、機械学習を用いて前記入力データから前記出力データを推定した結果に基づいてロボットを制御する。ロボット制御装置は、暫定動作情報出力部と、暫定制御部と、修正作業データ収集部と、学習済モデル構築部と、修正後制御部と、を備える。前記暫定動作情報出力部は、前記一連の作業を行わせるために前記ロボットを暫定的に動作させるための暫定動作情報を出力する。前記暫定制御部は、前記暫定動作情報に基づいて制御することで前記ロボットに前記一連の作業を行わせるとともに、当該ロボットの暫定動作に介入するように人間に修正操作させる。前記修正作業データ収集部は、前記暫定制御部による前記ロボットの暫定動作に介入するように人間が修正操作しているときの、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の修正操作又は当該修正操作による当該ロボットの修正動作を示すデータを出力データとする修正作業データを収集する。前記学習済モデル構築部は、前記修正作業データを学習させることにより学習済モデルを構築する。前記修正後制御部は、前記暫定動作情報に基づいて前記ロボットを制御するとともに、当該ロボット及びその周辺の状態を前記入力データとして前記学習済モデルに入力したときに前記学習済モデルが出力する前記出力データを当該ロボットの制御に適用する。
【００１０】
これにより、学習済モデルを構築する際に、人間は、ロボットが行う暫定的な動作を修正する操作に集中することができるので、操作の負担を軽減しつつ、学習のための高品質な作業データを得ることができる。従って、人間が操作に熟練していなくても、理想により近い制御を容易に実現することができる。
【００１１】
本発明の第２の観点によれば、以下のロボット制御方法が提供される。即ち、このロボット制御方法は、人間がロボットを操作して一連の作業を行わせる場合の、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の操作又は当該操作による当該ロボットの動作を出力データとしたときに、機械学習を用いて前記入力データから前記出力データを推定した結果に基づいてロボットを制御する。ロボット制御方法は、暫定動作情報出力工程と、暫定制御工程と、修正作業データ収集工程と、学習済モデル構築工程と、修正後制御工程と、を含む。前記暫定動作情報出力工程では、前記一連の作業を行わせるために前記ロボットを暫定的に動作させるための暫定動作情報を出力する。前記暫定制御工程では、前記暫定動作情報に基づいて制御することで前記ロボットに前記一連の作業を行わせるとともに、当該ロボットの暫定動作に介入するように人間に修正操作させる。前記修正作業データ収集工程では、学習モデルが学習する修正作業データを収集する。この学習モデルは、前記暫定制御工程での前記ロボットの暫定動作に介入するように人間が修正操作しているときの、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の修正操作又は当該修正操作による当該ロボットの修正動作を示すデータを出力データとする。前記学習済モデル構築工程では、前記修正作業データを前記学習モデルに学習させることにより学習済モデルを構築する。前記修正後制御工程では、前記暫定動作情報に基づいて前記ロボットを制御するとともに、当該ロボット及びその周辺の状態を前記入力データとして前記学習済モデルに入力したときに前記学習済モデルが出力する前記出力データを当該ロボットの制御に適用する。
【００１２】
これにより、学習済モデルを構築する際に、人間は、ロボットが行う暫定的な動作を修正する操作に集中することができるので、操作の負担を軽減しつつ、学習のための高品質な作業データを得ることができる。従って、ユーザが操作に熟練していなくても、ユーザの理想により近い制御を容易に実現することができる。
【発明の効果】
【００１３】
本発明によれば、人間の操作を学習した学習済モデルに基づいてロボットを動作させる場合に、学習のための操作者の負担を軽減しつつ、ロボットに高度な動作を行わせることができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態のロボットシステムの構成を示すブロック図。
【図２】ロボット制御装置の自律運転時に実現される一連の作業の例を示す模式図。
【図３】修正操作力と暫定操作力との関係を示す図。
【発明を実施するための形態】
【００１５】
次に、図面を参照して本発明の実施の形態を説明する。図１は、本実施形態のロボットシステム１００の構成を示すブロック図である。
【００１６】
図１に示す本実施形態のロボットシステム１００は、ロボットアーム（ロボット）１０に作業を自律的に行わせるシステムである。この作業としては、溶接、組立て、ハンドリング、塗装、洗浄、研磨等、様々なものが考えられる。
【００１７】
ロボットシステム１００は、ロボットアーム１０と、マスタアーム２０と、ロボット制御装置１５と、を備える。ロボットアーム１０、マスタアーム２０、及びロボット制御装置１５は、有線又は無線により互いに接続されており、信号のやり取りを行うことができる。
【００１８】
ロボット制御装置１５は、手動運転モード及び自律運転モードを切り替えながらロボットアーム１０を動かすことができる。手動運転モードでは、ユーザ（人間）がマスタアーム２０を手動で操作することで、ロボットアーム１０を動作させる。自律運転モードでは、手動操作によるロボットアーム１０の動作を事前に学習した結果に基づいて、ロボットアーム１０が自動的に動作する。
【００１９】
ロボットアーム１０は、例えば、動作自由度が６である垂直型の多関節ロボットとして構成することができる。ロボットアーム１０は、台座に取り付けられたアーム部を備える。アーム部は、複数の関節を有する。各関節には、当該関節を中心にしてアーム部を駆動するための図略のアクチュエータ（例えば、電動モータ）が設けられている。アーム部の先端には、作業内容に応じたエンドエフェクタが取り付けられている。エンドエフェクタは、ワーク５に直接的に接触して作用する。
【００２０】
ロボットアーム１０のアーム部及びエンドエフェクタは、ロボットアーム１０を動作させるための制御データである動作指令に基づいて動作する。
【００２１】
ロボットアーム１０には、動作センサ１１と、力センサ１２と、カメラ１３と、が取り付けられている。これらのセンサは、ロボットアーム１０及びその周辺の状態を検出することができる。
【００２２】
動作センサ１１は、ロボットアーム１０の動作を検出するために用いられる。動作センサ１１は、ロボットアーム１０のアーム部の関節毎に設けられており、各関節の回転角度又は角速度を検出する。
【００２３】
力センサ１２は、エンドエフェクタが外部環境（具体的には、ワーク５等）から受けた反力を検出することができる。ロボットアーム１０は、外部環境から加えられた反力と、ロボットアーム１０の各関節を駆動するための図略のアクチュエータが加える力と、の合力により運動する。
【００２４】
カメラ１３は、作業対象のワーク５の映像等を検出するために設けられる。カメラ１３で撮影した映像を画像処理することで、様々な情報を得ることができる。カメラ１３に基づいて得られる情報には、ワーク５を挿入する対象となる他の部材６の位置、ワーク５と部材６との相対位置等の情報が含まれる。また、カメラ１３に基づいて得られる情報には、ロボットアーム１０の位置及び姿勢、及び、ワーク５の位置及び移動速度等に関する情報が含まれる。
【００２５】
カメラ１３に代えて又は加えて、音を検出する音センサ、振動を検出する振動センサ等を必要に応じて設け、ロボットアーム１０の周辺の情報を得るように構成することもできる。
【００２６】
ロボットシステム１００は、ユーザが操作可能な操作部としてのマスタアーム２０を備える。マスタアーム２０は、ロボットアーム１０と物理的に離れた場所に配置されている。
【００２７】
手動運転モードにおいて、ロボットシステム１００は、ユーザが操作するマスタアーム２０の動きをトレースするように、スレーブアームとしてのロボットアーム１０を動作させる（マスタスレーブ式の遠隔操作）。これにより、ユーザは、マスタアーム２０の操作に基づいてロボットアーム１０を動作させ、各種の作業を行うことができる。
【００２８】
マスタアーム２０は、ロボットアーム１０と同様に、公知の多関節ロボットとして構成されている。マスタアーム２０の各関節には、当該関節を中心にしてアーム部を駆動するための図略のアクチュエータ（例えば、電動モータ）が設けられている。
【００２９】
マスタアーム２０には、図示しない操作力検出センサが設けられている。操作力検出センサは、マスタアーム２０にユーザが加えた操作力を検出することができる。なお、当該操作力は、力の向き及び大きさを含む値であって、例えばベクトルで表現することができる。マスタアーム２０は、ユーザにより加えられた操作力と、上述のアクチュエータが加える力と、の合力により動作する。これにより、ユーザはあたかも、ロボットアーム１０の実際の作業環境に接触しているような作業感覚を得ることができる。
【００３０】
ロボット制御装置１５は、公知のコンピュータにより構成されており、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ等の構成を備えている。ロボット制御装置１５が更にＧＰＵを備えると、後述のニューラルネットワークによる学習を短時間で行うことができ、好ましい。上記のＨＤＤ等には、各種のソフトウェアが、予めインストール作業を行うことにより記憶されている。このソフトウェアには、ロボットアーム１０及びマスタアーム２０を制御するための制御アプリケーション、及び、暫定作業学習済モデル３４及び修正作業学習済モデル４４を構築するための各種のデータを収集するデータ収集アプリケーションが含まれる。
【００３１】
手動運転モードとなっているとき、ロボット制御装置１５は、ユーザの操作力によるマスタアーム２０の動きをトレースするようにロボットアーム１０のアクチュエータを駆動する一方、ロボットアーム１０が受けた反力を伝達するようにマスタアーム２０のアクチュエータを駆動する。これにより相互作用的な操作が実現され、ユーザは、マスタアーム２０を通じて疑似的に提示される力覚を感じながら、当該マスタアーム２０を用いてロボットアーム１０をリアルタイムで遠隔制御することができる。
【００３２】
上述のカメラ１３が撮影した映像は、マスタアーム２０の近傍に設置された図略のディスプレイにリアルタイムで伝送される。ユーザは、ディスプレイの映像を見て状況を確認しながら、マスタアーム２０を操作することができる。
【００３３】
ロボット制御装置１５は、図１に示すように、暫定ＡＩ部（暫定動作情報出力部）３０と、修正ＡＩ部４０と、暫定制御部５０と、修正後制御部６０と、を備える。具体的には、ロボット制御装置１５が備えるＣＰＵ等のハードウェアと、上記の制御アプリケーション等のソフトウェアと、の協働により、ロボット制御装置１５を、暫定ＡＩ部３０、修正ＡＩ部４０、暫定制御部５０及び修正後制御部６０として動作させることができる。
【００３４】
暫定ＡＩ部３０は、ロボット制御方法の暫定動作情報出力工程を実現するものである。暫定ＡＩ部３０は、暫定作業データ収集部３１と、暫定作業データ分類部３２と、暫定作業学習済モデル構築部３３と、暫定作業学習済モデル３４と、を備える。
【００３５】
暫定作業データ収集部３１は、ユーザがマスタアーム２０を操作して、学習の対象となる一連の作業をロボットアーム１０に行わせるとき、当該作業に関するデータを収集する。
【００３６】
詳細は後述するが、暫定ＡＩ部３０が実現するロボットアーム１０の作業は、暫定的なものとして取り扱われる。従って、以下では、暫定作業データ収集部３１が収集するデータを暫定作業データと呼ぶことがある。
【００３７】
一連の作業は任意に定めることができるが、ある程度複雑な作業が想定される。一連の作業としては、例えば、図２に示すような、ワーク５を他の部材６の収容凹部７に挿入する作業が考えられる。なお、図２では、ワーク５を掴んでいるロボットアーム１０は省略されている。
【００３８】
暫定作業データには、動作センサ１１、力センサ１２、及びカメラ１３等によってロボットアーム１０及びその周辺の状態を検出した検出値が含まれる。以下では、これらの検出値をまとめて「センサ情報」と呼ぶことがある。センサ情報は、ロボットアーム１０及びその周辺の状態を示すものである。更に、暫定作業データには、マスタアーム２０にユーザが加えた操作力を操作力検出センサによって検出した検出値が含まれる。以下では、マスタアーム２０にユーザが加えた操作力を「ユーザ操作力」と呼ぶことがある。操作力検出センサによるユーザ操作力の検出値は、ユーザの操作を示すものである。
【００３９】
暫定作業データは、ロボットアーム１０及びその周辺の状態が変化するのに応じて変化する。ユーザがマスタアーム２０を操作して一連の作業をロボットアーム１０に行わせている過程で、暫定作業データは、所定の時間間隔（後述のサンプリング周波数に相当する時間間隔）をあけて反復して取得される。
【００４０】
暫定作業データ収集部３１は、暫定作業データが取得される毎に、例えばタイムスタンプを当該暫定作業データに付加する。これにより、暫定作業データの時系列順を表現することができる。
【００４１】
暫定作業データ収集部３１により収集された暫定作業データの集合は、暫定作業学習済モデル３４を構築するための学習データとして用いられる。詳細は後述する。
【００４２】
暫定作業データ分類部３２は、暫定作業データ収集部３１により収集された暫定作業データを対象として分類を行う。
【００４３】
暫定作業データ分類部３２は、例えば、公知のＮＮ法、Ｋ−Ｍｅａｎｓ法、自己組織化マップ等のクラスタリング手法を用いて、暫定作業データを分類する。クラスタリングは、多数のデータから分布の法則を学習して、互いに特徴が似ているデータのまとまりである複数のクラスタを自動的に取得する手法である。暫定作業データを幾つのクラスタに分類するかは、適宜定めることができる。暫定作業データの分類は、クラスタリング以外の自動分類手法を用いて行うこともできる。
【００４４】
ロボットアーム１０及びその周辺の状態と、それに応じてユーザがマスタアーム２０に対して行う操作と、を総合したもの（以下、局面と呼ぶことがある。）は、一連の作業を時系列で分解した場面毎に特徴があると考えられる。局面は上述の暫定作業データにより表現されているので、暫定作業データを対象として適宜のクラスタリングを行うことにより、ロボットアーム１０の局面を分類することができる。
【００４５】
以上により、収集された暫定作業データが示す一連の作業が、複数の作業工程に分類される。例えば、ワーク５を収容凹部７に挿入する一連の作業で取得した暫定作業データをクラスタリングした結果、図２に示す３つの作業工程に分類された場合を考える。以下では、３つの作業工程を、空中搬送工程、位置合わせ工程、及び挿入工程と呼ぶことがある。
【００４６】
空中搬送工程では、ロボットアーム１０がワーク５を保持して、収容凹部７の上方近傍に位置させる。空中搬送工程においては、ワーク５と、収容凹部７が形成された部材６とは、互いに接触していない。
【００４７】
位置合わせ工程では、ロボットアーム１０が保持しているワーク５を、収容凹部７が形成された部材６の面に接触させた状態で、当該ワーク５が収容凹部７に合う位置まで移動させる。
【００４８】
挿入工程では、ロボットアーム１０が、ワーク５を収容凹部７にスムーズに挿入できるように、ワーク５と収容凹部７との位置関係を調整して、ワーク５を収容凹部７に挿入する。
【００４９】
暫定作業学習済モデル構築部３３は、機械学習（教師あり学習）により、暫定作業学習済モデル３４を構築する。暫定作業学習済モデル３４は、上述の一連の作業が分類された作業工程と同じ数だけ備えられる。
【００５０】
複数のモデルのそれぞれは、対応する作業工程のクラスタに分類された暫定作業データだけを学習する。即ち、暫定ＡＩ部３０では、各作業工程に特化した暫定作業学習済モデル３４が構築される。これにより、それぞれのモデルの学習対象を限定できるので、短時間で学習を収束させ易くなる。
【００５１】
それぞれの暫定作業学習済モデル３４の形式は任意であるが、本実施形態では、暫定作業学習済モデル３４は、入力層と、隠れ層と、出力層と、を有する一般的な構成のニューラルネットワークである。それぞれの層には、脳細胞を模擬した複数のユニットが配置されている。入力層と出力層との間には隠れ層が配置され、この隠れ層は適宜の数の中間ユニットによって構成される。情報は、入力層、隠れ層、出力層の順に流れる。隠れ層の数は適宜定められる。
【００５２】
このモデルにおいて、入力層に入力されるデータ（入力データ）は、上述のセンサ情報である。上述のとおり、センサ情報は、ロボットアーム１０及びその周辺の状態を示すデータである。出力層が出力するデータ（出力データ）は、操作力検出センサの検出値の推定結果であり、これは、実質的に、推定されるユーザ操作力を意味する。従って、出力データは、モデルが推定した人間の操作を示す。
【００５３】
各入力ユニットと各中間ユニットとは、情報が流れる経路によって結合され、各中間ユニットと各出力ユニットとは、情報が流れる経路によって結合される。それぞれの経路において、上流側のユニットの情報が下流側のユニットの情報に与える影響（重み）が設定されている。
【００５４】
学習フェーズにおいて、暫定作業学習済モデル構築部３３は、モデルにセンサ情報を入力し、当該モデルから出力された操作力と、ユーザ操作力と、を比較する。暫定作業学習済モデル構築部３３は、上記の比較により求められる誤差が小さくなるように、公知のアルゴリズムである誤差逆伝播法によって上記の重みを更新する。以上の処理を継続的に行うことにより、学習を実現することができる。
【００５５】
暫定作業学習済モデル３４が学習を行うとき、暫定ＡＩ部３０は、暫定作業データ収集部３１が収集した暫定作業データに対して適宜の間引き処理を行い、サンプリング周波数が小さくなるように変換する。また、暫定ＡＩ部３０は、暫定作業データに含まれるセンサ情報から、力センサ１２の検出値に関する情報を除去する。このように、学習対象のデータが要約的ものとなり、かつ、データから力覚的な要素が除かれるので、機械学習に必要な時間を適切に削減することができる。
【００５６】
上記のように構築された暫定作業学習済モデル３４は、各作業工程における動作のそれぞれを大まかに反映するように、ロボットアーム１０の動作を制御するための操作力を出力することができる。
【００５７】
推定フェーズにおいて、暫定ＡＩ部３０は、入力されたセンサ情報が暫定作業データ分類部３２において何れのクラスタに分類されるかを、前述のクラスタリング結果に基づいて求める。これにより、センサ情報に対応する作業工程を得ることができる。その後、センサ情報が、複数の暫定作業学習済モデル３４のうち、得られた作業工程に対応する暫定作業学習済モデル３４に入力される。暫定作業学習済モデル３４は、これに応じて、ユーザ操作力を推定して出力する。以下では、暫定作業学習済モデル３４が推定して出力したユーザ操作力を、暫定操作力と呼ぶことがある。
【００５８】
これにより、暫定作業学習済モデル３４は、図２に示す作業を大体において行わせるように、ロボットアーム１０を制御するための暫定操作力を出力することができる。言い換えれば、暫定作業学習済モデル３４の出力により、ロボットアーム１０の先端の大まかな移動軌跡が定められる。従って、暫定操作力は、一連の作業を行わせるためにロボットアーム１０を暫定的に動作させるための情報（暫定動作情報）と捉えることができる。
【００５９】
上述のとおり、暫定作業学習済モデル３４は、力センサ１２の検出値を省いた形で暫定作業データを学習する。一方で、暫定作業データ分類部３２は、力センサ１２の検出値を特徴の一部に含めた形で、暫定作業データをクラスタリングする。これにより、作業の各場面を特徴づける重要な要素と考えられる力覚的要素を考慮して、作業工程の分類を良好に行うことができる。また、暫定ＡＩ部３０の推定フェーズでは、センサ情報に含まれる力センサ１２の検出値を考慮して、現在のセンサ情報に対応する作業工程が、上記のクラスタリング結果に基づいて求められる。従って、暫定ＡＩ部３０は、センサ情報に対応する作業工程を正確に取得して、暫定操作力を出力する暫定作業学習済モデル３４を適切に選択することができる。
【００６０】
本実施形態において、ユーザは、２つの段階でマスタアーム２０を操作する。暫定ＡＩ部３０の学習のためのマスタアーム２０の操作は、第１段階の操作に相当する。暫定ＡＩ部３０の暫定作業学習済モデル３４が大まかな動作を学習する性質上、第１段階では、マスタアーム２０の操作は図２の動作を精密に行うことを重視せず、多少ラフでも良い。第１段階での操作と後述の第２段階の操作で、マスタアーム２０を操作するユーザが別の人間であっても良い。
【００６１】
推定フェーズにおいて、暫定作業学習済モデル３４は、推定した暫定操作力を、暫定制御部５０及び修正後制御部６０に出力する。
【００６２】
暫定制御部５０は、ロボット制御方法の暫定制御工程を実現するものである。暫定制御部５０は、ロボットアーム１０の自律作業と、ユーザの操作によるロボットアーム１０の手動作業と、を組み合わせた制御を行う。具体的には、暫定制御部５０は、暫定作業学習済モデル３４が出力する暫定操作力に基づく動作と、ユーザがマスタアーム２０に対して行った操作に基づく動作と、を合成した動作をロボットアーム１０に行わせるための動作指令を生成する。暫定制御部５０は、生成した動作指令をロボットアーム１０に出力する。
【００６３】
この結果、ロボットアーム１０に一連の作業を自律的に行わせる制御が実現される。ただし、このときのロボットアーム１０の動作は、データを簡略化して学習した暫定作業学習済モデル３４の出力（暫定操作力）に基づくため、大掴み的なものである。ロボットアーム１０の当該動作は、修正を前提とするドラフト的な動作として位置付けられる。この作業の途中に、ユーザが必要に応じてマスタアーム２０を操作することで、上記の自律的な動作にリアルタイムで介入し、ロボットアーム１０の動作を手動で修正することができる。
【００６４】
一連の作業の中には、特に繊細な動作が要求される部分、又は、状況に応じた柔軟な動作が要求される部分がある。例えば、図２に示す一連の作業の例において、上から２〜４番目の状態では、ワーク５と他の部材６との位置関係によって、力の加減の調整、及び位置に対する微調整等が必要になる。そのような部分では、大掴み的なロボットアーム１０の動作では作業の失敗が頻発する。修正作業の例としては、そのような動作を、繊細又は柔軟な動作となるように修正することが考えられる。このときのマスタアーム２０の操作が、上述したマスタアーム２０の２段階の操作のうちの第２段階の操作に相当する。
【００６５】
暫定制御部５０が一連の作業をロボットアーム１０に行わせている間に、ロボットアーム１０の動作を修正するためにユーザがマスタアーム２０を操作した場合、当該操作が修正ＡＩ部４０によって学習される。この詳細は後述する。
【００６６】
修正ＡＩ部４０は、修正作業データ収集部４１と、修正作業データ分類部４２と、修正作業学習済モデル構築部（学習済モデル構築部）４３と、修正作業学習済モデル（学習済モデル）４４と、を備える。
【００６７】
修正作業データ収集部４１は、ロボット制御方法の修正作業データ収集工程を実現するものである。修正作業データ収集部４１は、ユーザがマスタアーム２０を操作してロボットアーム１０の動作を修正した場合の修正作業データを収集する。
【００６８】
修正作業データは、上述のセンサ情報を入力データとし、このときにユーザがマスタアーム２０に対して行う操作に係るデータ（具体的には、後述の操作力差分量）を出力データとするものである。修正作業データ収集部４１は、暫定作業データ収集部３１と同様に、時系列を表現できる形で一連の修正作業データを取得する。
【００６９】
修正作業データ収集部４１により収集された修正作業データの集合は、修正作業学習済モデル４４を構築するための学習データとして用いられる。詳細は後述する。
【００７０】
修正作業データ分類部４２は、修正作業データ収集部４１により収集された修正作業データを対象として分類を行う。この分類は、暫定作業データ分類部３２と同様に、適宜のクラスタリング手法を用いて行うことができる。修正作業データを幾つのクラスタに分類するかは、適宜定めることができる。
【００７１】
以上により、収集された修正作業データが示す動作が、適宜分類される。例えば、上記の修正作業データが、図２において破線で囲って示す２つの調整工程に分類された場合を考える。以下では、２つの調整工程を、凹部探り工程、及び挿入開始調節工程と呼ぶことがある。
【００７２】
凹部探り工程は、ロボットアーム１０が保持したワーク５を、収容凹部７が形成されている部材６の面に対して小さな力で押し付けながら面に沿って移動させ、反力の感覚等を頼りに、ワーク５が収容凹部７とぴったり合う位置を見つける工程である。このとき、ワーク５を部材６に沿って滑らせるときにワーク５等が傷付かないように、反力に応じて、ワーク５を部材６に押し付ける力が調節される。
【００７３】
挿入開始調節工程は、ワーク５を収容凹部７に差し込み始めるときに、引っ掛かり感があった場合に、ワーク５の姿勢及び位置を少しずつ変更しながら、引っ掛かり感が無くなる状態を探す工程である。
【００７４】
修正作業学習済モデル構築部４３は、ロボット制御方法の学習済モデル構築工程を実現するものである。修正作業学習済モデル構築部４３は、修正作業学習済モデル４４を構築する。修正作業学習済モデル４４は、上述の修正作業データが分類された調整工程と同じ数だけ備えられる。
【００７５】
複数のモデルのそれぞれは、対応する調整工程のクラスタに分類された修正作業データだけを学習する。これにより、各調整工程に特化した修正作業学習済モデル４４が構築される。学習の対象を限定することで、暫定作業学習済モデル３４と同様に、短時間で学習を収束させ易くなる。
【００７６】
修正作業学習済モデル４４の形式は任意であるが、本実施形態では、入力層と、隠れ層と、出力層と、を有するニューラルネットワークが用いられる。
【００７７】
このモデルにおいて、入力層に入力されるデータ（入力データ）は、上述のセンサ情報である。出力層が出力するデータ（出力データ）は、動作の修正のためにユーザが操作するユーザ操作力から、元の動作に相当する操作力（言い換えれば、暫定作業学習済モデル３４が出力する暫定操作力）を減算した差分量である。以下、この差分量を「操作力差分量」と呼ぶことがある。図３には、ユーザ操作力、暫定操作力、及び操作力差分量の関係が模式的に示されている。
【００７８】
修正作業学習済モデル４４の学習フェーズにおいて、修正作業学習済モデル構築部４３は、モデルにセンサ情報を入力し、当該モデルから出力された操作力差分量を、計算された操作力差分量と比較する（教師あり学習）。
【００７９】
この操作力差分量の計算のために、暫定ＡＩ部３０は推定フェーズで動作する。暫定ＡＩ部３０には、学習のために修正作業学習済モデル４４に入力されるセンサ情報と同一のセンサ情報が入力される。暫定作業学習済モデル３４は、当該センサ情報に対する暫定操作力を修正ＡＩ部４０に出力する。
【００８０】
修正ＡＩ部４０の修正作業学習済モデル構築部４３は、上記の計算により求められる誤差が小さくなるように、モデルにおいて上流側のユニットの情報が下流側のユニットの情報に与える重みを、誤差逆伝播法によって更新する。以上の処理を継続的に行うことにより、学習を実現することができる。
【００８１】
推定フェーズでは、先ず、修正ＡＩ部４０に入力されたセンサ情報が、修正作業データ分類部４２において何れのクラスタに分類されるかを求める。これにより、センサ情報に対応する調整工程を得ることができる。その後、センサ情報が、得られた調整工程に対応する修正作業学習済モデル４４に入力される。修正作業学習済モデル４４は、これに応じて、操作力差分量を推定して出力する。
【００８２】
暫定作業学習済モデル３４の場合と異なり、修正作業学習済モデル４４が学習を行うときは、修正ＡＩ部４０は、修正作業データのサンプリング周波数の変換を行わない。また、力センサ１２の検出値に関する情報も修正作業データから除去されない。従って、修正作業学習済モデル４４は、力覚的な要素も含んだ豊富な情報に基づいて、繊細で複雑な動作を適切に学習することができる。
【００８３】
上記のように構築された修正作業学習済モデル４４は、上述の調整工程の動作を再現するように、ロボットアーム１０の動作を制御するための操作力差分量を出力することができる。これにより、暫定作業学習済モデル３４による暫定操作力だけでは難しかった動作、例えば、ワーク５と収容凹部７の開口との位置関係、ワーク５と収容凹部７の内壁との位置関係等を考慮した動作の微調整を、適切に実現することができる。
【００８４】
修正後制御部６０は、ロボット制御方法の修正後制御工程を実現するものである。修正後制御部６０は、暫定作業学習済モデル３４の出力と修正作業学習済モデル４４の出力を総合して、ロボットアーム１０を制御する。言い換えれば、修正後制御部６０は、暫定作業学習済モデル３４により出力された暫定操作力に基づいてロボットアーム１０を制御するとともに、修正作業学習済モデル４４により出力された操作力差分量をロボットアーム１０の制御に適用する。修正後制御部６０は、暫定制御部５０と同様に、ロボットアーム１０を動作させるための動作指令を生成する。修正後制御部６０は、生成した動作指令をロボットアーム１０に出力する。
【００８５】
この結果、ロボットアーム１０は、暫定作業学習済モデル３４からの暫定操作力と、修正作業学習済モデル４４からの操作力差分量（操作力の修正分）と、を合成した操作力に基づいて動作する。従って、一連の作業の中に、繊細な動作又は柔軟な動作が要求される部分があっても、自律作業を良好に行うことができる。
【００８６】
本実施形態のロボット制御装置１５においては、大まかな動作と、繊細な動作と、を分けて機械学習し、それぞれの学習済モデル（暫定作業学習済モデル３４、及び、修正作業学習済モデル４４）を構築する。この振分けにより、重要でない部分に対して詳細に学習することを回避できるので、一連の作業を実現するための機械学習をより効率的に行うことができる。また、修正作業学習済モデル４４を構築する場合には（即ち、上述の第２段階でのマスタアーム２０の操作においては）、ユーザは、繊細な作業だけを集中的に行うことができる。この結果、質の高い修正作業データ（ユーザ操作力のデータ）を取得することができるとともに、ユーザの操作負担も低減することができる。
【００８７】
本実施形態では、マスタアーム２０の操作を２段階とすることで、相対的に高度な動作を実現するための調整工程を、一連の作業から部分的に取り出すことができる。また、本実施形態では、このように抽出した調整工程を分類して、それぞれの調整工程に特化した修正作業学習済モデル４４が構築される。しかも、それぞれの修正作業学習済モデル４４は、修正前の操作力に対する差分量の形で、推定する修正操作を出力する。
【００８８】
従って、例えば、２つのワークのうち、大きなワークを大きな凹部に挿入し、小さなワークを小さな凹部に挿入する一連の作業を考えると、その過程で互いに類似した局面が複数回現れるので、これらに共通の修正作業学習済モデル４４を適用することが可能と考えられる。この結果、修正作業学習済モデル４４の活用範囲を広げることができ、また、全体的な学習に必要な時間を大幅に減らすことができる。
【００８９】
修正作業学習済モデル４４は、それぞれの調整工程における操作力差分量を、例えば、検出した力の向きを基準とする相対的なものとして学習することが好ましい。これにより、例えば、図２に示す穴部探り工程及び挿入開始調節工程を、縦向きの収容凹部７だけでなく、横向きの収容凹部を対象として行わせることができる。これにより、修正作業学習済モデル４４を更に柔軟に活用することができる。
【００９０】
以上に説明したように、本実施形態のロボット制御装置１５は、ユーザがロボットアーム１０を操作して一連の作業を行わせる場合の、当該ロボットアーム１０及びその周辺の状態を入力データとし、それに応じたユーザの操作を出力データとしたときに、機械学習を用いて入力データから出力データを推定した結果に基づいてロボットアーム１０を制御する。ロボット制御装置１５は、暫定ＡＩ部３０と、暫定制御部５０と、修正作業データ収集部４１と、修正作業学習済モデル構築部４３と、修正後制御部６０と、を備える。暫定ＡＩ部３０は、一連の作業を行わせるためにロボットアーム１０を暫定的に動作させるためのデータである暫定操作力を出力する。暫定制御部５０は、暫定操作力に基づいて制御することでロボットアーム１０に一連の作業を行わせるとともに、当該ロボットアーム１０の暫定動作に介入するようにユーザに修正操作させる。修正作業データ収集部４１は、暫定制御部５０によるロボットアーム１０の暫定動作に介入するようにユーザが修正操作しているときの、当該ロボットアーム１０及びその周辺の状態を入力データとし、それに応じたユーザの修正操作を示す操作力差分量を出力データとする修正作業データを収集する。修正作業学習済モデル構築部４３は、修正作業データを学習させることにより修正作業学習済モデル４４を構築する。修正後制御部６０は、暫定操作力に基づいてロボットアーム１０を制御する。修正後制御部６０は、当該ロボットアーム１０及びその周辺の状態を入力データとして修正作業学習済モデル４４に入力したときに修正作業学習済モデル４４が出力する操作力差分量を、当該ロボットアーム１０の制御に適用する。
【００９１】
これにより、修正作業学習済モデル４４を構築する際に、ユーザは、ロボットアーム１０が行う暫定的な動作を修正する操作に集中することができるので、操作の負担を軽減しつつ、学習のための高品質な修正作業データを得ることができる。従って、ユーザが操作に熟練していなくても、ユーザの理想により近い制御を容易に実現することができる。
【００９２】
また、本実施形態のロボット制御装置１５において、修正作業学習済モデル４４の出力データが表す修正操作（操作力差分量）は、暫定動作情報が表すユーザの操作（言い換えれば、暫定操作力）に対する差分量である。
【００９３】
これにより、暫定動作に係るユーザの操作に対して、修正作業学習済モデル４４が出力する修正操作を容易に適用することができる。また、修正作業学習済モデル４４の再利用性を高めることができる。
【００９４】
また、本実施形態のロボット制御装置１５において、暫定ＡＩ部３０は、構築された暫定作業学習済モデル３４が出力する暫定操作力を出力する。暫定作業学習済モデル３４は、ユーザがロボットアーム１０を操作して一連の作業を行わせる場合の、当該ロボットアーム１０及びその周辺の状態を入力データとし、それに応じたユーザの操作を出力データとする暫定作業データを学習することにより構築される。
【００９５】
これにより、大まかなロボットアーム１０の動作と、それを修正する細かい動作と、に対してそれぞれ機械学習を利用することで、全体としてロボットアーム１０を的確に制御することができる。
【００９６】
また、本実施形態のロボット制御装置１５において、暫定作業学習済モデル３４が学習する暫定作業データの入力データには、ロボットアーム１０に発生する力覚的作用を力センサ１２により検出した結果が含まれない。一方、修正作業学習済モデル４４が学習した修正作業データの入力データには、ロボットアーム１０に発生する力覚的作用を力センサ１２により検出した結果が含まれる。
【００９７】
これにより、力覚的作用を考慮した学習を修正動作についてだけ行うことで、繊細な感覚が必要になる制御を、全体としての学習の手間をあまり増加させずに実現することができる。
【００９８】
また、本実施形態のロボット制御装置１５において、修正作業学習済モデル４４は、修正作業データの特徴に基づいてクラスタリングした結果に基づいて、それぞれのクラスタが表す調整工程毎に修正作業データを学習したものである。暫定作業学習済モデル３４は、暫定作業データの特徴に基づいてクラスタリングした結果に基づいて、それぞれのクラスタが表す作業工程毎に暫定作業データを学習したものである。
【００９９】
これにより、元の動作に対して修正作業学習済モデル４４が出力する修正（即ち、調整工程）を、互いに似た複数の場面に共通して適用することができる。従って、例えば、暫定的な動作において互いに類似する状態が複数現れる場合に、それぞれに対して同じ修正作業学習済モデル４４を適用できるので、学習の手間を減らすことができる。また、過去に学習したものとは異なる一連の作業を学習させる場合であって、過去に学習した一連の作業とこれから学習する一連の作業との間で一部の状態が互いに類似する場合に、過去に学習した修正作業学習済モデル４４に基づく修正を、今回の学習に適用することができる。このように、修正作業学習済モデル４４を柔軟に活用することができる。
【０１００】
また、本実施形態のロボットシステム１００は、ロボット制御装置１５と、ロボットアーム１０と、を備える。
【０１０１】
これにより、繊細又は柔軟な動作を考慮した一連の作業の学習を、全体として効率的に行うことができる。
【０１０２】
また、本実施形態では、以下に示す方法で、ロボットアーム１０の制御が行われている。このロボット制御方法は、暫定動作情報出力工程と、暫定制御工程と、修正作業データ収集工程と、学習済モデル構築工程と、修正後制御工程と、を含む。暫定動作情報出力工程では、一連の作業を行わせるためにロボットアーム１０を暫定的に動作させる暫定動作情報を出力する。暫定制御工程では、暫定動作情報に基づいて制御することでロボットアーム１０に一連の作業を行わせるとともに、ロボットアーム１０の暫定動作に介入するようにユーザに修正操作させる。修正作業データ収集工程では、暫定制御工程でのロボットアーム１０の暫定動作に介入するように人間が修正操作しているときの、当該ロボットアーム１０及びその周辺の状態を入力データとし、それに応じたユーザの修正操作を示す操作力差分量を出力データとする学習モデルが学習する修正作業データを収集する。学習済モデル構築工程では、修正作業データを学習することにより修正作業学習済モデル４４を構築する。修正後制御工程では、暫定動作情報に基づいてロボットアーム１０を制御する。修正後制御工程では、ロボットアーム１０及びその周辺の状態を入力データとして修正作業学習済モデル４４に入力したときに修正作業学習済モデル４４が出力する出力データを、ロボットアーム１０の制御に適用する。
【０１０３】
これにより、修正作業学習済モデル４４を構築する際に、ユーザは、ロボットアーム１０が行う暫定的な動作を修正する操作に集中することができるので、操作の負担を軽減しつつ、学習のための高品質な修正作業データを得ることができる。従って、ユーザが操作に熟練していなくても、ユーザの理想により近い制御を容易に実現することができる。
【０１０４】
以上に本発明の好適な実施の形態を説明したが、上記の構成は例えば以下のように変更することができる。
【０１０５】
操作力は、ユーザが加えた力に代えて、加速度で表現されても良い。また、操作力に、例えばモーメントを含めることもできる。
【０１０６】
暫定作業学習済モデル３４は、センサ情報と、暫定操作力と、の関係を学習するのに代えて、センサ情報と、ロボットアーム１０への暫定的な動作指令と、の関係を学習するように構成しても良い。この場合、動作指令が暫定動作情報になる。この動作指令は、実質的に、ロボットアーム１０の動作を示すものである。
【０１０７】
同様に、修正作業学習済モデル４４は、センサ情報と、操作力差分量と、の関係を学習するのに代えて、センサ情報と、動作指令の差分量と、の関係を学習するように構成しても良い。
【０１０８】
修正作業学習済モデル４４は、暫定ＡＩ部３０の出力との差分量の形でなく、修正のために行われたユーザ操作力そのもの、又はそれによる動作指令そのものを学習して、修正後制御部６０に出力しても良い。
【０１０９】
ロボット制御装置１５は、ワーク５を収容凹部７に挿入する作業以外に、他の作業を行うこともできる。
【０１１０】
暫定ＡＩ部３０に相当する部分は、ＡＩ以外の何らかの方法で暫定動作情報を出力するように変更することもできる。例えば、ロボット制御装置１５が、３Ｄモデルを用いるオフラインティーチング機能を有している場合、ユーザは、ワーク５を移動させる軌跡を、当該機能を使って指定する。暫定ＡＩ部３０の代わりに設けられるティーチング結果出力部は、上記の軌跡を実現するために必要なマスタアーム２０の操作力を計算し、これを暫定操作力として出力する。
【０１１１】
暫定ＡＩ部３０において暫定作業学習済モデル３４の学習に用いる暫定作業データの間引き、又は、力覚的作用のデータの除去は、省略することもできる。
【０１１２】
マスタアーム２０の代わりに、操作レバー又は足で操作するペダル等が用いられても良い。
【０１１３】
暫定作業データ及び修正作業データのうち、出力データ（ユーザの操作）に係る部分は、マスタアーム２０の操作以外によって取得されても良い。例えば、ユーザの手先や腕に計測センサ等を取り付け、ユーザの動作を直接計測して、位置及び姿勢等の情報を収集しても良い。また、ユーザを撮影可能なカメラ等をロボットシステム１００が備え、ユーザの動作を間接的に計測すること等によって得られた位置及び姿勢等を用いることもできる。
【０１１４】
また、ユーザが活動可能な仮想環境をシミュレーションで構成し、ユーザが、当該仮想環境と、適宜の操作装置を介して接触するように構成しても良い。ユーザは、操作装置がユーザに与える力及び位置情報等に応じて、操作装置を操作する。これにより、暫定作業データ及び修正作業データを収集することができる。
【符号の説明】
【０１１５】
１０  ロボットアーム（ロボット）
１５  ロボット制御装置
３０  暫定ＡＩ部（暫定動作情報出力部）
４１  修正作業データ収集部
４３  修正作業学習済モデル構築部（学習済モデル構築部）
４４  修正作業学習済モデル（学習済モデル）
５０  暫定制御部
６０  修正後制御部
【図１】
2020104216.tif 000003
【図２】
2020104216.tif 000004
【図３】
2020104216.tif 000005