IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 川崎重工業株式会社の特許一覧

特許7117237ロボット制御装置、ロボットシステム及びロボット制御方法
<>
  • 特許-ロボット制御装置、ロボットシステム及びロボット制御方法 図1
  • 特許-ロボット制御装置、ロボットシステム及びロボット制御方法 図2
  • 特許-ロボット制御装置、ロボットシステム及びロボット制御方法 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-03
(45)【発行日】2022-08-12
(54)【発明の名称】ロボット制御装置、ロボットシステム及びロボット制御方法
(51)【国際特許分類】
   B25J 13/00 20060101AFI20220804BHJP
【FI】
B25J13/00 Z
【請求項の数】 7
(21)【出願番号】P 2018245481
(22)【出願日】2018-12-27
(65)【公開番号】P2020104216
(43)【公開日】2020-07-09
【審査請求日】2021-10-29
(73)【特許権者】
【識別番号】000000974
【氏名又は名称】川崎重工業株式会社
(74)【代理人】
【識別番号】100118784
【弁理士】
【氏名又は名称】桂川 直己
(72)【発明者】
【氏名】蓮沼 仁志
(72)【発明者】
【氏名】山本 武司
(72)【発明者】
【氏名】倉島 一輝
【審査官】木原 裕二
(56)【参考文献】
【文献】特開2018-12185(JP,A)
【文献】国際公開第2018/225862(WO,A1)
【文献】国際公開第2019/225747(WO,A1)
【文献】国際公開第2019/225746(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 13/00
(57)【特許請求の範囲】
【請求項1】
人間がロボットを操作して一連の作業を行わせる場合の、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の操作又は当該操作による当該ロボットの動作を出力データとしたときに、機械学習を用いて前記入力データから前記出力データを推定した結果に基づいてロボットを制御するロボット制御装置であって、
前記一連の作業を行わせるために前記ロボットを暫定的に動作させるための暫定動作情報を出力する暫定動作情報出力部と、
前記暫定動作情報に基づいて制御することで前記ロボットに前記一連の作業を行わせるとともに、当該ロボットの暫定動作に介入するように人間に修正操作させる暫定制御部と、
前記暫定制御部による前記ロボットの暫定動作に介入するように人間が修正操作しているときの、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の修正操作又は当該修正操作による当該ロボットの修正動作を示すデータを出力データとする修正作業データを収集する修正作業データ収集部と、
前記修正作業データを学習させることにより学習済モデルを構築する学習済モデル構築部と、
前記暫定動作情報に基づいて前記ロボットを制御するとともに、当該ロボット及びその周辺の状態を前記入力データとして前記学習済モデルに入力したときに前記学習済モデルが出力する前記出力データを当該ロボットの制御に適用する修正後制御部と、
を備えることを特徴とするロボット制御装置。
【請求項2】
請求項1に記載のロボット制御装置であって、
前記学習済モデルの出力データが表す前記修正操作又は前記修正動作は、前記暫定動作情報が表す人間の操作又は前記ロボットの動作に対する差分量であることを特徴とするロボット制御装置。
【請求項3】
請求項1又は2に記載のロボット制御装置であって、
前記暫定動作情報出力部は、構築された学習モデルである暫定作業学習済モデルの出力を用いて、前記暫定動作情報を出力し、
前記暫定作業学習済モデルは、人間がロボットを操作して一連の作業を行わせる場合の、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の操作又は当該操作による当該ロボットの動作を出力データとする暫定作業データを学習することにより構築されることを特徴とするロボット制御装置。
【請求項4】
請求項3に記載のロボット制御装置であって、
前記暫定作業学習済モデルが学習した前記暫定作業データの前記入力データには、前記ロボットに発生する力覚的作用を検出した結果が含まれず、
前記学習済モデルが学習した前記修正作業データの前記入力データには、前記ロボットに発生する力覚的作用を検出した結果が含まれることを特徴とするロボット制御装置。
【請求項5】
請求項3又は4に記載のロボット制御装置であって、
前記学習済モデルは、前記修正作業データの特徴に基づいてクラスタリングした結果に基づいて、それぞれのクラスタが表す調整工程毎に前記修正作業データを学習したものであり、
前記暫定作業学習済モデルは、前記暫定作業データの特徴に基づいてクラスタリングした結果に基づいて、それぞれのクラスタが表す作業工程毎に前記暫定作業データを学習したものであることを特徴とするロボット制御装置。
【請求項6】
請求項1から5までの何れか一項に記載のロボット制御装置と、
前記ロボットと、
を備えることを特徴とするロボットシステム。
【請求項7】
人間がロボットを操作して一連の作業を行わせる場合の、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の操作又は当該操作による当該ロボットの動作を出力データとしたときに、機械学習を用いて前記入力データから前記出力データを推定した結果に基づいてロボットを制御するロボット制御方法であって、
前記一連の作業を行わせるために前記ロボットを暫定的に動作させるための暫定動作情報を出力する暫定動作情報出力工程と、
前記暫定動作情報に基づいて制御することで前記ロボットに前記一連の作業を行わせるとともに、当該ロボットの暫定動作に介入するように人間に修正操作させる暫定制御工程と、
前記暫定制御工程での前記ロボットの暫定動作に介入するように人間が修正操作しているときの、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の修正操作又は当該修正操作による当該ロボットの修正動作を示すデータを出力データとする学習モデルが学習する修正作業データを収集する修正作業データ収集工程と、
前記修正作業データを前記学習モデルに学習させることにより学習済モデルを構築する学習済モデル構築工程と、
前記暫定動作情報に基づいて前記ロボットを制御するとともに、当該ロボット及びその周辺の状態を前記入力データとして前記学習済モデルに入力したときに前記学習済モデルが出力する前記出力データを当該ロボットの制御に適用する修正後制御工程と、
を含むことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、主として、機械学習により構築された学習済モデルに基づいてロボットに作業を行わせるロボット制御装置に関する。詳細には、学習済モデルの構築に関する。
【背景技術】
【0002】
従来から、予め作成されたプログラムによって、ロボット等の制御対象物を制御し、所望の動きを行わせることが行われている。例えば、特許文献1には、ロボットの制御部が、CPUと、ロボットを制御するためのプログラムが格納されたROMと、ロボットが作業を実行するためのロボット言語で書かれたプログラムが格納されたRAMと、を備える構成が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平7-134605号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来の構成において、ロボット等を動かすためのプログラムは、人間が作業を理解して、動かし方をプログラミングすることで実現されている。しかしながら、このような手法は、プログラムの作成及びその調整に時間を要する場合が多かった。
【0005】
近年、プログラムの代わりに、情報データから反復的に学習して法則やルールを自動的に見つけ出し、人間が自然に行っている学習能力と同様な機能を実現するための機械学習は、大きな注目を集めている。
【0006】
このような機械学習を用いてロボットの動作を制御するシステムにおいては、一般に、学習のためのデータが大量に必要になる。従って、人間の操作を学習の対象とする場合、データ収集のための操作者の負担が大きくなる。このことから、操作者の負担を軽減しつつ、ロボットの高度な自律動作を実現できる構成が望まれていた。
【0007】
本発明は以上の事情に鑑みてされたものであり、その目的は、人間の操作を学習した学習済モデルに基づいてロボットを動作させる場合に、学習のための操作者の負担を軽減しつつ、ロボットに高度な動作を行わせることが可能なロボット制御装置等を提供することにある。
【課題を解決するための手段】
【0008】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【0009】
本発明の第1の観点によれば、以下の構成のロボット制御装置が提供される。即ち、このロボット制御装置は、人間がロボットを操作して一連の作業を行わせる場合の、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の操作又は当該操作による当該ロボットの動作を出力データとしたときに、機械学習を用いて前記入力データから前記出力データを推定した結果に基づいてロボットを制御する。ロボット制御装置は、暫定動作情報出力部と、暫定制御部と、修正作業データ収集部と、学習済モデル構築部と、修正後制御部と、を備える。前記暫定動作情報出力部は、前記一連の作業を行わせるために前記ロボットを暫定的に動作させるための暫定動作情報を出力する。前記暫定制御部は、前記暫定動作情報に基づいて制御することで前記ロボットに前記一連の作業を行わせるとともに、当該ロボットの暫定動作に介入するように人間に修正操作させる。前記修正作業データ収集部は、前記暫定制御部による前記ロボットの暫定動作に介入するように人間が修正操作しているときの、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の修正操作又は当該修正操作による当該ロボットの修正動作を示すデータを出力データとする修正作業データを収集する。前記学習済モデル構築部は、前記修正作業データを学習させることにより学習済モデルを構築する。前記修正後制御部は、前記暫定動作情報に基づいて前記ロボットを制御するとともに、当該ロボット及びその周辺の状態を前記入力データとして前記学習済モデルに入力したときに前記学習済モデルが出力する前記出力データを当該ロボットの制御に適用する。
【0010】
これにより、学習済モデルを構築する際に、人間は、ロボットが行う暫定的な動作を修正する操作に集中することができるので、操作の負担を軽減しつつ、学習のための高品質な作業データを得ることができる。従って、人間が操作に熟練していなくても、理想により近い制御を容易に実現することができる。
【0011】
本発明の第2の観点によれば、以下のロボット制御方法が提供される。即ち、このロボット制御方法は、人間がロボットを操作して一連の作業を行わせる場合の、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の操作又は当該操作による当該ロボットの動作を出力データとしたときに、機械学習を用いて前記入力データから前記出力データを推定した結果に基づいてロボットを制御する。ロボット制御方法は、暫定動作情報出力工程と、暫定制御工程と、修正作業データ収集工程と、学習済モデル構築工程と、修正後制御工程と、を含む。前記暫定動作情報出力工程では、前記一連の作業を行わせるために前記ロボットを暫定的に動作させるための暫定動作情報を出力する。前記暫定制御工程では、前記暫定動作情報に基づいて制御することで前記ロボットに前記一連の作業を行わせるとともに、当該ロボットの暫定動作に介入するように人間に修正操作させる。前記修正作業データ収集工程では、学習モデルが学習する修正作業データを収集する。この学習モデルは、前記暫定制御工程での前記ロボットの暫定動作に介入するように人間が修正操作しているときの、当該ロボット及びその周辺の状態を入力データとし、それに応じた人間の修正操作又は当該修正操作による当該ロボットの修正動作を示すデータを出力データとする。前記学習済モデル構築工程では、前記修正作業データを前記学習モデルに学習させることにより学習済モデルを構築する。前記修正後制御工程では、前記暫定動作情報に基づいて前記ロボットを制御するとともに、当該ロボット及びその周辺の状態を前記入力データとして前記学習済モデルに入力したときに前記学習済モデルが出力する前記出力データを当該ロボットの制御に適用する。
【0012】
これにより、学習済モデルを構築する際に、人間は、ロボットが行う暫定的な動作を修正する操作に集中することができるので、操作の負担を軽減しつつ、学習のための高品質な作業データを得ることができる。従って、ユーザが操作に熟練していなくても、ユーザの理想により近い制御を容易に実現することができる。
【発明の効果】
【0013】
本発明によれば、人間の操作を学習した学習済モデルに基づいてロボットを動作させる場合に、学習のための操作者の負担を軽減しつつ、ロボットに高度な動作を行わせることができる。
【図面の簡単な説明】
【0014】
図1】本実施形態のロボットシステムの構成を示すブロック図。
図2】ロボット制御装置の自律運転時に実現される一連の作業の例を示す模式図。
図3】修正操作力と暫定操作力との関係を示す図。
【発明を実施するための形態】
【0015】
次に、図面を参照して本発明の実施の形態を説明する。図1は、本実施形態のロボットシステム100の構成を示すブロック図である。
【0016】
図1に示す本実施形態のロボットシステム100は、ロボットアーム(ロボット)10に作業を自律的に行わせるシステムである。この作業としては、溶接、組立て、ハンドリング、塗装、洗浄、研磨等、様々なものが考えられる。
【0017】
ロボットシステム100は、ロボットアーム10と、マスタアーム20と、ロボット制御装置15と、を備える。ロボットアーム10、マスタアーム20、及びロボット制御装置15は、有線又は無線により互いに接続されており、信号のやり取りを行うことができる。
【0018】
ロボット制御装置15は、手動運転モード及び自律運転モードを切り替えながらロボットアーム10を動かすことができる。手動運転モードでは、ユーザ(人間)がマスタアーム20を手動で操作することで、ロボットアーム10を動作させる。自律運転モードでは、手動操作によるロボットアーム10の動作を事前に学習した結果に基づいて、ロボットアーム10が自動的に動作する。
【0019】
ロボットアーム10は、例えば、動作自由度が6である垂直型の多関節ロボットとして構成することができる。ロボットアーム10は、台座に取り付けられたアーム部を備える。アーム部は、複数の関節を有する。各関節には、当該関節を中心にしてアーム部を駆動するための図略のアクチュエータ(例えば、電動モータ)が設けられている。アーム部の先端には、作業内容に応じたエンドエフェクタが取り付けられている。エンドエフェクタは、ワーク5に直接的に接触して作用する。
【0020】
ロボットアーム10のアーム部及びエンドエフェクタは、ロボットアーム10を動作させるための制御データである動作指令に基づいて動作する。
【0021】
ロボットアーム10には、動作センサ11と、力センサ12と、カメラ13と、が取り付けられている。これらのセンサは、ロボットアーム10及びその周辺の状態を検出することができる。
【0022】
動作センサ11は、ロボットアーム10の動作を検出するために用いられる。動作センサ11は、ロボットアーム10のアーム部の関節毎に設けられており、各関節の回転角度又は角速度を検出する。
【0023】
力センサ12は、エンドエフェクタが外部環境(具体的には、ワーク5等)から受けた反力を検出することができる。ロボットアーム10は、外部環境から加えられた反力と、ロボットアーム10の各関節を駆動するための図略のアクチュエータが加える力と、の合力により運動する。
【0024】
カメラ13は、作業対象のワーク5の映像等を検出するために設けられる。カメラ13で撮影した映像を画像処理することで、様々な情報を得ることができる。カメラ13に基づいて得られる情報には、ワーク5を挿入する対象となる他の部材6の位置、ワーク5と部材6との相対位置等の情報が含まれる。また、カメラ13に基づいて得られる情報には、ロボットアーム10の位置及び姿勢、及び、ワーク5の位置及び移動速度等に関する情報が含まれる。
【0025】
カメラ13に代えて又は加えて、音を検出する音センサ、振動を検出する振動センサ等を必要に応じて設け、ロボットアーム10の周辺の情報を得るように構成することもできる。
【0026】
ロボットシステム100は、ユーザが操作可能な操作部としてのマスタアーム20を備える。マスタアーム20は、ロボットアーム10と物理的に離れた場所に配置されている。
【0027】
手動運転モードにおいて、ロボットシステム100は、ユーザが操作するマスタアーム20の動きをトレースするように、スレーブアームとしてのロボットアーム10を動作させる(マスタスレーブ式の遠隔操作)。これにより、ユーザは、マスタアーム20の操作に基づいてロボットアーム10を動作させ、各種の作業を行うことができる。
【0028】
マスタアーム20は、ロボットアーム10と同様に、公知の多関節ロボットとして構成されている。マスタアーム20の各関節には、当該関節を中心にしてアーム部を駆動するための図略のアクチュエータ(例えば、電動モータ)が設けられている。
【0029】
マスタアーム20には、図示しない操作力検出センサが設けられている。操作力検出センサは、マスタアーム20にユーザが加えた操作力を検出することができる。なお、当該操作力は、力の向き及び大きさを含む値であって、例えばベクトルで表現することができる。マスタアーム20は、ユーザにより加えられた操作力と、上述のアクチュエータが加える力と、の合力により動作する。これにより、ユーザはあたかも、ロボットアーム10の実際の作業環境に接触しているような作業感覚を得ることができる。
【0030】
ロボット制御装置15は、公知のコンピュータにより構成されており、CPU、ROM、RAM、HDD等の構成を備えている。ロボット制御装置15が更にGPUを備えると、後述のニューラルネットワークによる学習を短時間で行うことができ、好ましい。上記のHDD等には、各種のソフトウェアが、予めインストール作業を行うことにより記憶されている。このソフトウェアには、ロボットアーム10及びマスタアーム20を制御するための制御アプリケーション、及び、暫定作業学習済モデル34及び修正作業学習済モデル44を構築するための各種のデータを収集するデータ収集アプリケーションが含まれる。
【0031】
手動運転モードとなっているとき、ロボット制御装置15は、ユーザの操作力によるマスタアーム20の動きをトレースするようにロボットアーム10のアクチュエータを駆動する一方、ロボットアーム10が受けた反力を伝達するようにマスタアーム20のアクチュエータを駆動する。これにより相互作用的な操作が実現され、ユーザは、マスタアーム20を通じて疑似的に提示される力覚を感じながら、当該マスタアーム20を用いてロボットアーム10をリアルタイムで遠隔制御することができる。
【0032】
上述のカメラ13が撮影した映像は、マスタアーム20の近傍に設置された図略のディスプレイにリアルタイムで伝送される。ユーザは、ディスプレイの映像を見て状況を確認しながら、マスタアーム20を操作することができる。
【0033】
ロボット制御装置15は、図1に示すように、暫定AI部(暫定動作情報出力部)30と、修正AI部40と、暫定制御部50と、修正後制御部60と、を備える。具体的には、ロボット制御装置15が備えるCPU等のハードウェアと、上記の制御アプリケーション等のソフトウェアと、の協働により、ロボット制御装置15を、暫定AI部30、修正AI部40、暫定制御部50及び修正後制御部60として動作させることができる。
【0034】
暫定AI部30は、ロボット制御方法の暫定動作情報出力工程を実現するものである。暫定AI部30は、暫定作業データ収集部31と、暫定作業データ分類部32と、暫定作業学習済モデル構築部33と、暫定作業学習済モデル34と、を備える。
【0035】
暫定作業データ収集部31は、ユーザがマスタアーム20を操作して、学習の対象となる一連の作業をロボットアーム10に行わせるとき、当該作業に関するデータを収集する。
【0036】
詳細は後述するが、暫定AI部30が実現するロボットアーム10の作業は、暫定的なものとして取り扱われる。従って、以下では、暫定作業データ収集部31が収集するデータを暫定作業データと呼ぶことがある。
【0037】
一連の作業は任意に定めることができるが、ある程度複雑な作業が想定される。一連の作業としては、例えば、図2に示すような、ワーク5を他の部材6の収容凹部7に挿入する作業が考えられる。なお、図2では、ワーク5を掴んでいるロボットアーム10は省略されている。
【0038】
暫定作業データには、動作センサ11、力センサ12、及びカメラ13等によってロボットアーム10及びその周辺の状態を検出した検出値が含まれる。以下では、これらの検出値をまとめて「センサ情報」と呼ぶことがある。センサ情報は、ロボットアーム10及びその周辺の状態を示すものである。更に、暫定作業データには、マスタアーム20にユーザが加えた操作力を操作力検出センサによって検出した検出値が含まれる。以下では、マスタアーム20にユーザが加えた操作力を「ユーザ操作力」と呼ぶことがある。操作力検出センサによるユーザ操作力の検出値は、ユーザの操作を示すものである。
【0039】
暫定作業データは、ロボットアーム10及びその周辺の状態が変化するのに応じて変化する。ユーザがマスタアーム20を操作して一連の作業をロボットアーム10に行わせている過程で、暫定作業データは、所定の時間間隔(後述のサンプリング周波数に相当する時間間隔)をあけて反復して取得される。
【0040】
暫定作業データ収集部31は、暫定作業データが取得される毎に、例えばタイムスタンプを当該暫定作業データに付加する。これにより、暫定作業データの時系列順を表現することができる。
【0041】
暫定作業データ収集部31により収集された暫定作業データの集合は、暫定作業学習済モデル34を構築するための学習データとして用いられる。詳細は後述する。
【0042】
暫定作業データ分類部32は、暫定作業データ収集部31により収集された暫定作業データを対象として分類を行う。
【0043】
暫定作業データ分類部32は、例えば、公知のNN法、K-Means法、自己組織化マップ等のクラスタリング手法を用いて、暫定作業データを分類する。クラスタリングは、多数のデータから分布の法則を学習して、互いに特徴が似ているデータのまとまりである複数のクラスタを自動的に取得する手法である。暫定作業データを幾つのクラスタに分類するかは、適宜定めることができる。暫定作業データの分類は、クラスタリング以外の自動分類手法を用いて行うこともできる。
【0044】
ロボットアーム10及びその周辺の状態と、それに応じてユーザがマスタアーム20に対して行う操作と、を総合したもの(以下、局面と呼ぶことがある。)は、一連の作業を時系列で分解した場面毎に特徴があると考えられる。局面は上述の暫定作業データにより表現されているので、暫定作業データを対象として適宜のクラスタリングを行うことにより、ロボットアーム10の局面を分類することができる。
【0045】
以上により、収集された暫定作業データが示す一連の作業が、複数の作業工程に分類される。例えば、ワーク5を収容凹部7に挿入する一連の作業で取得した暫定作業データをクラスタリングした結果、図2に示す3つの作業工程に分類された場合を考える。以下では、3つの作業工程を、空中搬送工程、位置合わせ工程、及び挿入工程と呼ぶことがある。
【0046】
空中搬送工程では、ロボットアーム10がワーク5を保持して、収容凹部7の上方近傍に位置させる。空中搬送工程においては、ワーク5と、収容凹部7が形成された部材6とは、互いに接触していない。
【0047】
位置合わせ工程では、ロボットアーム10が保持しているワーク5を、収容凹部7が形成された部材6の面に接触させた状態で、当該ワーク5が収容凹部7に合う位置まで移動させる。
【0048】
挿入工程では、ロボットアーム10が、ワーク5を収容凹部7にスムーズに挿入できるように、ワーク5と収容凹部7との位置関係を調整して、ワーク5を収容凹部7に挿入する。
【0049】
暫定作業学習済モデル構築部33は、機械学習(教師あり学習)により、暫定作業学習済モデル34を構築する。暫定作業学習済モデル34は、上述の一連の作業が分類された作業工程と同じ数だけ備えられる。
【0050】
複数のモデルのそれぞれは、対応する作業工程のクラスタに分類された暫定作業データだけを学習する。即ち、暫定AI部30では、各作業工程に特化した暫定作業学習済モデル34が構築される。これにより、それぞれのモデルの学習対象を限定できるので、短時間で学習を収束させ易くなる。
【0051】
それぞれの暫定作業学習済モデル34の形式は任意であるが、本実施形態では、暫定作業学習済モデル34は、入力層と、隠れ層と、出力層と、を有する一般的な構成のニューラルネットワークである。それぞれの層には、脳細胞を模擬した複数のユニットが配置されている。入力層と出力層との間には隠れ層が配置され、この隠れ層は適宜の数の中間ユニットによって構成される。情報は、入力層、隠れ層、出力層の順に流れる。隠れ層の数は適宜定められる。
【0052】
このモデルにおいて、入力層に入力されるデータ(入力データ)は、上述のセンサ情報である。上述のとおり、センサ情報は、ロボットアーム10及びその周辺の状態を示すデータである。出力層が出力するデータ(出力データ)は、操作力検出センサの検出値の推定結果であり、これは、実質的に、推定されるユーザ操作力を意味する。従って、出力データは、モデルが推定した人間の操作を示す。
【0053】
各入力ユニットと各中間ユニットとは、情報が流れる経路によって結合され、各中間ユニットと各出力ユニットとは、情報が流れる経路によって結合される。それぞれの経路において、上流側のユニットの情報が下流側のユニットの情報に与える影響(重み)が設定されている。
【0054】
学習フェーズにおいて、暫定作業学習済モデル構築部33は、モデルにセンサ情報を入力し、当該モデルから出力された操作力と、ユーザ操作力と、を比較する。暫定作業学習済モデル構築部33は、上記の比較により求められる誤差が小さくなるように、公知のアルゴリズムである誤差逆伝播法によって上記の重みを更新する。以上の処理を継続的に行うことにより、学習を実現することができる。
【0055】
暫定作業学習済モデル34が学習を行うとき、暫定AI部30は、暫定作業データ収集部31が収集した暫定作業データに対して適宜の間引き処理を行い、サンプリング周波数が小さくなるように変換する。また、暫定AI部30は、暫定作業データに含まれるセンサ情報から、力センサ12の検出値に関する情報を除去する。このように、学習対象のデータが要約的ものとなり、かつ、データから力覚的な要素が除かれるので、機械学習に必要な時間を適切に削減することができる。
【0056】
上記のように構築された暫定作業学習済モデル34は、各作業工程における動作のそれぞれを大まかに反映するように、ロボットアーム10の動作を制御するための操作力を出力することができる。
【0057】
推定フェーズにおいて、暫定AI部30は、入力されたセンサ情報が暫定作業データ分類部32において何れのクラスタに分類されるかを、前述のクラスタリング結果に基づいて求める。これにより、センサ情報に対応する作業工程を得ることができる。その後、センサ情報が、複数の暫定作業学習済モデル34のうち、得られた作業工程に対応する暫定作業学習済モデル34に入力される。暫定作業学習済モデル34は、これに応じて、ユーザ操作力を推定して出力する。以下では、暫定作業学習済モデル34が推定して出力したユーザ操作力を、暫定操作力と呼ぶことがある。
【0058】
これにより、暫定作業学習済モデル34は、図2に示す作業を大体において行わせるように、ロボットアーム10を制御するための暫定操作力を出力することができる。言い換えれば、暫定作業学習済モデル34の出力により、ロボットアーム10の先端の大まかな移動軌跡が定められる。従って、暫定操作力は、一連の作業を行わせるためにロボットアーム10を暫定的に動作させるための情報(暫定動作情報)と捉えることができる。
【0059】
上述のとおり、暫定作業学習済モデル34は、力センサ12の検出値を省いた形で暫定作業データを学習する。一方で、暫定作業データ分類部32は、力センサ12の検出値を特徴の一部に含めた形で、暫定作業データをクラスタリングする。これにより、作業の各場面を特徴づける重要な要素と考えられる力覚的要素を考慮して、作業工程の分類を良好に行うことができる。また、暫定AI部30の推定フェーズでは、センサ情報に含まれる力センサ12の検出値を考慮して、現在のセンサ情報に対応する作業工程が、上記のクラスタリング結果に基づいて求められる。従って、暫定AI部30は、センサ情報に対応する作業工程を正確に取得して、暫定操作力を出力する暫定作業学習済モデル34を適切に選択することができる。
【0060】
本実施形態において、ユーザは、2つの段階でマスタアーム20を操作する。暫定AI部30の学習のためのマスタアーム20の操作は、第1段階の操作に相当する。暫定AI部30の暫定作業学習済モデル34が大まかな動作を学習する性質上、第1段階では、マスタアーム20の操作は図2の動作を精密に行うことを重視せず、多少ラフでも良い。第1段階での操作と後述の第2段階の操作で、マスタアーム20を操作するユーザが別の人間であっても良い。
【0061】
推定フェーズにおいて、暫定作業学習済モデル34は、推定した暫定操作力を、暫定制御部50及び修正後制御部60に出力する。
【0062】
暫定制御部50は、ロボット制御方法の暫定制御工程を実現するものである。暫定制御部50は、ロボットアーム10の自律作業と、ユーザの操作によるロボットアーム10の手動作業と、を組み合わせた制御を行う。具体的には、暫定制御部50は、暫定作業学習済モデル34が出力する暫定操作力に基づく動作と、ユーザがマスタアーム20に対して行った操作に基づく動作と、を合成した動作をロボットアーム10に行わせるための動作指令を生成する。暫定制御部50は、生成した動作指令をロボットアーム10に出力する。
【0063】
この結果、ロボットアーム10に一連の作業を自律的に行わせる制御が実現される。ただし、このときのロボットアーム10の動作は、データを簡略化して学習した暫定作業学習済モデル34の出力(暫定操作力)に基づくため、大掴み的なものである。ロボットアーム10の当該動作は、修正を前提とするドラフト的な動作として位置付けられる。この作業の途中に、ユーザが必要に応じてマスタアーム20を操作することで、上記の自律的な動作にリアルタイムで介入し、ロボットアーム10の動作を手動で修正することができる。
【0064】
一連の作業の中には、特に繊細な動作が要求される部分、又は、状況に応じた柔軟な動作が要求される部分がある。例えば、図2に示す一連の作業の例において、上から2~4番目の状態では、ワーク5と他の部材6との位置関係によって、力の加減の調整、及び位置に対する微調整等が必要になる。そのような部分では、大掴み的なロボットアーム10の動作では作業の失敗が頻発する。修正作業の例としては、そのような動作を、繊細又は柔軟な動作となるように修正することが考えられる。このときのマスタアーム20の操作が、上述したマスタアーム20の2段階の操作のうちの第2段階の操作に相当する。
【0065】
暫定制御部50が一連の作業をロボットアーム10に行わせている間に、ロボットアーム10の動作を修正するためにユーザがマスタアーム20を操作した場合、当該操作が修正AI部40によって学習される。この詳細は後述する。
【0066】
修正AI部40は、修正作業データ収集部41と、修正作業データ分類部42と、修正作業学習済モデル構築部(学習済モデル構築部)43と、修正作業学習済モデル(学習済モデル)44と、を備える。
【0067】
修正作業データ収集部41は、ロボット制御方法の修正作業データ収集工程を実現するものである。修正作業データ収集部41は、ユーザがマスタアーム20を操作してロボットアーム10の動作を修正した場合の修正作業データを収集する。
【0068】
修正作業データは、上述のセンサ情報を入力データとし、このときにユーザがマスタアーム20に対して行う操作に係るデータ(具体的には、後述の操作力差分量)を出力データとするものである。修正作業データ収集部41は、暫定作業データ収集部31と同様に、時系列を表現できる形で一連の修正作業データを取得する。
【0069】
修正作業データ収集部41により収集された修正作業データの集合は、修正作業学習済モデル44を構築するための学習データとして用いられる。詳細は後述する。
【0070】
修正作業データ分類部42は、修正作業データ収集部41により収集された修正作業データを対象として分類を行う。この分類は、暫定作業データ分類部32と同様に、適宜のクラスタリング手法を用いて行うことができる。修正作業データを幾つのクラスタに分類するかは、適宜定めることができる。
【0071】
以上により、収集された修正作業データが示す動作が、適宜分類される。例えば、上記の修正作業データが、図2において破線で囲って示す2つの調整工程に分類された場合を考える。以下では、2つの調整工程を、凹部探り工程、及び挿入開始調節工程と呼ぶことがある。
【0072】
凹部探り工程は、ロボットアーム10が保持したワーク5を、収容凹部7が形成されている部材6の面に対して小さな力で押し付けながら面に沿って移動させ、反力の感覚等を頼りに、ワーク5が収容凹部7とぴったり合う位置を見つける工程である。このとき、ワーク5を部材6に沿って滑らせるときにワーク5等が傷付かないように、反力に応じて、ワーク5を部材6に押し付ける力が調節される。
【0073】
挿入開始調節工程は、ワーク5を収容凹部7に差し込み始めるときに、引っ掛かり感があった場合に、ワーク5の姿勢及び位置を少しずつ変更しながら、引っ掛かり感が無くなる状態を探す工程である。
【0074】
修正作業学習済モデル構築部43は、ロボット制御方法の学習済モデル構築工程を実現するものである。修正作業学習済モデル構築部43は、修正作業学習済モデル44を構築する。修正作業学習済モデル44は、上述の修正作業データが分類された調整工程と同じ数だけ備えられる。
【0075】
複数のモデルのそれぞれは、対応する調整工程のクラスタに分類された修正作業データだけを学習する。これにより、各調整工程に特化した修正作業学習済モデル44が構築される。学習の対象を限定することで、暫定作業学習済モデル34と同様に、短時間で学習を収束させ易くなる。
【0076】
修正作業学習済モデル44の形式は任意であるが、本実施形態では、入力層と、隠れ層と、出力層と、を有するニューラルネットワークが用いられる。
【0077】
このモデルにおいて、入力層に入力されるデータ(入力データ)は、上述のセンサ情報である。出力層が出力するデータ(出力データ)は、動作の修正のためにユーザが操作するユーザ操作力から、元の動作に相当する操作力(言い換えれば、暫定作業学習済モデル34が出力する暫定操作力)を減算した差分量である。以下、この差分量を「操作力差分量」と呼ぶことがある。図3には、ユーザ操作力、暫定操作力、及び操作力差分量の関係が模式的に示されている。
【0078】
修正作業学習済モデル44の学習フェーズにおいて、修正作業学習済モデル構築部43は、モデルにセンサ情報を入力し、当該モデルから出力された操作力差分量を、計算された操作力差分量と比較する(教師あり学習)。
【0079】
この操作力差分量の計算のために、暫定AI部30は推定フェーズで動作する。暫定AI部30には、学習のために修正作業学習済モデル44に入力されるセンサ情報と同一のセンサ情報が入力される。暫定作業学習済モデル34は、当該センサ情報に対する暫定操作力を修正AI部40に出力する。
【0080】
修正AI部40の修正作業学習済モデル構築部43は、上記の計算により求められる誤差が小さくなるように、モデルにおいて上流側のユニットの情報が下流側のユニットの情報に与える重みを、誤差逆伝播法によって更新する。以上の処理を継続的に行うことにより、学習を実現することができる。
【0081】
推定フェーズでは、先ず、修正AI部40に入力されたセンサ情報が、修正作業データ分類部42において何れのクラスタに分類されるかを求める。これにより、センサ情報に対応する調整工程を得ることができる。その後、センサ情報が、得られた調整工程に対応する修正作業学習済モデル44に入力される。修正作業学習済モデル44は、これに応じて、操作力差分量を推定して出力する。
【0082】
暫定作業学習済モデル34の場合と異なり、修正作業学習済モデル44が学習を行うときは、修正AI部40は、修正作業データのサンプリング周波数の変換を行わない。また、力センサ12の検出値に関する情報も修正作業データから除去されない。従って、修正作業学習済モデル44は、力覚的な要素も含んだ豊富な情報に基づいて、繊細で複雑な動作を適切に学習することができる。
【0083】
上記のように構築された修正作業学習済モデル44は、上述の調整工程の動作を再現するように、ロボットアーム10の動作を制御するための操作力差分量を出力することができる。これにより、暫定作業学習済モデル34による暫定操作力だけでは難しかった動作、例えば、ワーク5と収容凹部7の開口との位置関係、ワーク5と収容凹部7の内壁との位置関係等を考慮した動作の微調整を、適切に実現することができる。
【0084】
修正後制御部60は、ロボット制御方法の修正後制御工程を実現するものである。修正後制御部60は、暫定作業学習済モデル34の出力と修正作業学習済モデル44の出力を総合して、ロボットアーム10を制御する。言い換えれば、修正後制御部60は、暫定作業学習済モデル34により出力された暫定操作力に基づいてロボットアーム10を制御するとともに、修正作業学習済モデル44により出力された操作力差分量をロボットアーム10の制御に適用する。修正後制御部60は、暫定制御部50と同様に、ロボットアーム10を動作させるための動作指令を生成する。修正後制御部60は、生成した動作指令をロボットアーム10に出力する。
【0085】
この結果、ロボットアーム10は、暫定作業学習済モデル34からの暫定操作力と、修正作業学習済モデル44からの操作力差分量(操作力の修正分)と、を合成した操作力に基づいて動作する。従って、一連の作業の中に、繊細な動作又は柔軟な動作が要求される部分があっても、自律作業を良好に行うことができる。
【0086】
本実施形態のロボット制御装置15においては、大まかな動作と、繊細な動作と、を分けて機械学習し、それぞれの学習済モデル(暫定作業学習済モデル34、及び、修正作業学習済モデル44)を構築する。この振分けにより、重要でない部分に対して詳細に学習することを回避できるので、一連の作業を実現するための機械学習をより効率的に行うことができる。また、修正作業学習済モデル44を構築する場合には(即ち、上述の第2段階でのマスタアーム20の操作においては)、ユーザは、繊細な作業だけを集中的に行うことができる。この結果、質の高い修正作業データ(ユーザ操作力のデータ)を取得することができるとともに、ユーザの操作負担も低減することができる。
【0087】
本実施形態では、マスタアーム20の操作を2段階とすることで、相対的に高度な動作を実現するための調整工程を、一連の作業から部分的に取り出すことができる。また、本実施形態では、このように抽出した調整工程を分類して、それぞれの調整工程に特化した修正作業学習済モデル44が構築される。しかも、それぞれの修正作業学習済モデル44は、修正前の操作力に対する差分量の形で、推定する修正操作を出力する。
【0088】
従って、例えば、2つのワークのうち、大きなワークを大きな凹部に挿入し、小さなワークを小さな凹部に挿入する一連の作業を考えると、その過程で互いに類似した局面が複数回現れるので、これらに共通の修正作業学習済モデル44を適用することが可能と考えられる。この結果、修正作業学習済モデル44の活用範囲を広げることができ、また、全体的な学習に必要な時間を大幅に減らすことができる。
【0089】
修正作業学習済モデル44は、それぞれの調整工程における操作力差分量を、例えば、検出した力の向きを基準とする相対的なものとして学習することが好ましい。これにより、例えば、図2に示す穴部探り工程及び挿入開始調節工程を、縦向きの収容凹部7だけでなく、横向きの収容凹部を対象として行わせることができる。これにより、修正作業学習済モデル44を更に柔軟に活用することができる。
【0090】
以上に説明したように、本実施形態のロボット制御装置15は、ユーザがロボットアーム10を操作して一連の作業を行わせる場合の、当該ロボットアーム10及びその周辺の状態を入力データとし、それに応じたユーザの操作を出力データとしたときに、機械学習を用いて入力データから出力データを推定した結果に基づいてロボットアーム10を制御する。ロボット制御装置15は、暫定AI部30と、暫定制御部50と、修正作業データ収集部41と、修正作業学習済モデル構築部43と、修正後制御部60と、を備える。暫定AI部30は、一連の作業を行わせるためにロボットアーム10を暫定的に動作させるためのデータである暫定操作力を出力する。暫定制御部50は、暫定操作力に基づいて制御することでロボットアーム10に一連の作業を行わせるとともに、当該ロボットアーム10の暫定動作に介入するようにユーザに修正操作させる。修正作業データ収集部41は、暫定制御部50によるロボットアーム10の暫定動作に介入するようにユーザが修正操作しているときの、当該ロボットアーム10及びその周辺の状態を入力データとし、それに応じたユーザの修正操作を示す操作力差分量を出力データとする修正作業データを収集する。修正作業学習済モデル構築部43は、修正作業データを学習させることにより修正作業学習済モデル44を構築する。修正後制御部60は、暫定操作力に基づいてロボットアーム10を制御する。修正後制御部60は、当該ロボットアーム10及びその周辺の状態を入力データとして修正作業学習済モデル44に入力したときに修正作業学習済モデル44が出力する操作力差分量を、当該ロボットアーム10の制御に適用する。
【0091】
これにより、修正作業学習済モデル44を構築する際に、ユーザは、ロボットアーム10が行う暫定的な動作を修正する操作に集中することができるので、操作の負担を軽減しつつ、学習のための高品質な修正作業データを得ることができる。従って、ユーザが操作に熟練していなくても、ユーザの理想により近い制御を容易に実現することができる。
【0092】
また、本実施形態のロボット制御装置15において、修正作業学習済モデル44の出力データが表す修正操作(操作力差分量)は、暫定動作情報が表すユーザの操作(言い換えれば、暫定操作力)に対する差分量である。
【0093】
これにより、暫定動作に係るユーザの操作に対して、修正作業学習済モデル44が出力する修正操作を容易に適用することができる。また、修正作業学習済モデル44の再利用性を高めることができる。
【0094】
また、本実施形態のロボット制御装置15において、暫定AI部30は、構築された暫定作業学習済モデル34が出力する暫定操作力を出力する。暫定作業学習済モデル34は、ユーザがロボットアーム10を操作して一連の作業を行わせる場合の、当該ロボットアーム10及びその周辺の状態を入力データとし、それに応じたユーザの操作を出力データとする暫定作業データを学習することにより構築される。
【0095】
これにより、大まかなロボットアーム10の動作と、それを修正する細かい動作と、に対してそれぞれ機械学習を利用することで、全体としてロボットアーム10を的確に制御することができる。
【0096】
また、本実施形態のロボット制御装置15において、暫定作業学習済モデル34が学習する暫定作業データの入力データには、ロボットアーム10に発生する力覚的作用を力センサ12により検出した結果が含まれない。一方、修正作業学習済モデル44が学習した修正作業データの入力データには、ロボットアーム10に発生する力覚的作用を力センサ12により検出した結果が含まれる。
【0097】
これにより、力覚的作用を考慮した学習を修正動作についてだけ行うことで、繊細な感覚が必要になる制御を、全体としての学習の手間をあまり増加させずに実現することができる。
【0098】
また、本実施形態のロボット制御装置15において、修正作業学習済モデル44は、修正作業データの特徴に基づいてクラスタリングした結果に基づいて、それぞれのクラスタが表す調整工程毎に修正作業データを学習したものである。暫定作業学習済モデル34は、暫定作業データの特徴に基づいてクラスタリングした結果に基づいて、それぞれのクラスタが表す作業工程毎に暫定作業データを学習したものである。
【0099】
これにより、元の動作に対して修正作業学習済モデル44が出力する修正(即ち、調整工程)を、互いに似た複数の場面に共通して適用することができる。従って、例えば、暫定的な動作において互いに類似する状態が複数現れる場合に、それぞれに対して同じ修正作業学習済モデル44を適用できるので、学習の手間を減らすことができる。また、過去に学習したものとは異なる一連の作業を学習させる場合であって、過去に学習した一連の作業とこれから学習する一連の作業との間で一部の状態が互いに類似する場合に、過去に学習した修正作業学習済モデル44に基づく修正を、今回の学習に適用することができる。このように、修正作業学習済モデル44を柔軟に活用することができる。
【0100】
また、本実施形態のロボットシステム100は、ロボット制御装置15と、ロボットアーム10と、を備える。
【0101】
これにより、繊細又は柔軟な動作を考慮した一連の作業の学習を、全体として効率的に行うことができる。
【0102】
また、本実施形態では、以下に示す方法で、ロボットアーム10の制御が行われている。このロボット制御方法は、暫定動作情報出力工程と、暫定制御工程と、修正作業データ収集工程と、学習済モデル構築工程と、修正後制御工程と、を含む。暫定動作情報出力工程では、一連の作業を行わせるためにロボットアーム10を暫定的に動作させる暫定動作情報を出力する。暫定制御工程では、暫定動作情報に基づいて制御することでロボットアーム10に一連の作業を行わせるとともに、ロボットアーム10の暫定動作に介入するようにユーザに修正操作させる。修正作業データ収集工程では、暫定制御工程でのロボットアーム10の暫定動作に介入するように人間が修正操作しているときの、当該ロボットアーム10及びその周辺の状態を入力データとし、それに応じたユーザの修正操作を示す操作力差分量を出力データとする学習モデルが学習する修正作業データを収集する。学習済モデル構築工程では、修正作業データを学習することにより修正作業学習済モデル44を構築する。修正後制御工程では、暫定動作情報に基づいてロボットアーム10を制御する。修正後制御工程では、ロボットアーム10及びその周辺の状態を入力データとして修正作業学習済モデル44に入力したときに修正作業学習済モデル44が出力する出力データを、ロボットアーム10の制御に適用する。
【0103】
これにより、修正作業学習済モデル44を構築する際に、ユーザは、ロボットアーム10が行う暫定的な動作を修正する操作に集中することができるので、操作の負担を軽減しつつ、学習のための高品質な修正作業データを得ることができる。従って、ユーザが操作に熟練していなくても、ユーザの理想により近い制御を容易に実現することができる。
【0104】
以上に本発明の好適な実施の形態を説明したが、上記の構成は例えば以下のように変更することができる。
【0105】
操作力は、ユーザが加えた力に代えて、加速度で表現されても良い。また、操作力に、例えばモーメントを含めることもできる。
【0106】
暫定作業学習済モデル34は、センサ情報と、暫定操作力と、の関係を学習するのに代えて、センサ情報と、ロボットアーム10への暫定的な動作指令と、の関係を学習するように構成しても良い。この場合、動作指令が暫定動作情報になる。この動作指令は、実質的に、ロボットアーム10の動作を示すものである。
【0107】
同様に、修正作業学習済モデル44は、センサ情報と、操作力差分量と、の関係を学習するのに代えて、センサ情報と、動作指令の差分量と、の関係を学習するように構成しても良い。
【0108】
修正作業学習済モデル44は、暫定AI部30の出力との差分量の形でなく、修正のために行われたユーザ操作力そのもの、又はそれによる動作指令そのものを学習して、修正後制御部60に出力しても良い。
【0109】
ロボット制御装置15は、ワーク5を収容凹部7に挿入する作業以外に、他の作業を行うこともできる。
【0110】
暫定AI部30に相当する部分は、AI以外の何らかの方法で暫定動作情報を出力するように変更することもできる。例えば、ロボット制御装置15が、3Dモデルを用いるオフラインティーチング機能を有している場合、ユーザは、ワーク5を移動させる軌跡を、当該機能を使って指定する。暫定AI部30の代わりに設けられるティーチング結果出力部は、上記の軌跡を実現するために必要なマスタアーム20の操作力を計算し、これを暫定操作力として出力する。
【0111】
暫定AI部30において暫定作業学習済モデル34の学習に用いる暫定作業データの間引き、又は、力覚的作用のデータの除去は、省略することもできる。
【0112】
マスタアーム20の代わりに、操作レバー又は足で操作するペダル等が用いられても良い。
【0113】
暫定作業データ及び修正作業データのうち、出力データ(ユーザの操作)に係る部分は、マスタアーム20の操作以外によって取得されても良い。例えば、ユーザの手先や腕に計測センサ等を取り付け、ユーザの動作を直接計測して、位置及び姿勢等の情報を収集しても良い。また、ユーザを撮影可能なカメラ等をロボットシステム100が備え、ユーザの動作を間接的に計測すること等によって得られた位置及び姿勢等を用いることもできる。
【0114】
また、ユーザが活動可能な仮想環境をシミュレーションで構成し、ユーザが、当該仮想環境と、適宜の操作装置を介して接触するように構成しても良い。ユーザは、操作装置がユーザに与える力及び位置情報等に応じて、操作装置を操作する。これにより、暫定作業データ及び修正作業データを収集することができる。
【符号の説明】
【0115】
10 ロボットアーム(ロボット)
15 ロボット制御装置
30 暫定AI部(暫定動作情報出力部)
41 修正作業データ収集部
43 修正作業学習済モデル構築部(学習済モデル構築部)
44 修正作業学習済モデル(学習済モデル)
50 暫定制御部
60 修正後制御部
図1
図2
図3