(57)【要約】【課題】外力の検出精度を向上させることができる人協調ロボットシステムの提供を図る。【解決手段】人協調ロボット１を含み、力を検出する機能を有する人協調ロボットシステム１００であって、前記力を算出するためのデータに基づいて得られる計算データを入力とし、前記人協調ロボットに外部から加えられる第１力成分、前記人協調ロボットの動作によって生じる第２力成分、および、ノイズに分類される第３力成分を出力とし、予め取得した前記入力と正解ラベルを組にした教師ありデータを用いて学習を行う学習部３１を備え、前記教師ありデータの正解ラベルを、前記人協調ロボットに外部から力を作用させること、前記人協調ロボットに複数の経路で動作を行わせること、および、前記人協調ロボットにノイズを作用させることによって取得し、前記学習部が出力する、前記第１力成分に基づいて、前記人協調ロボットの動作を制御する。【選択図】図１
2018065221.tif 000002
【特許請求の範囲】
【請求項１】
人とロボットが協調して作業を行う人協調ロボットを含み、力を検出する機能を有する人協調ロボットシステムであって、
前記力を算出するためのセンシングデータ、前記人協調ロボットを制御する制御ソフトウェアの内部データ、並びに、前記センシングデータおよび前記内部データの一方のデータに基づいて得られる計算データを入力とし、
前記人協調ロボットに外部から加えられる第１力成分、前記人協調ロボットの動作によって生じる第２力成分、および、ノイズに分類される第３力成分を出力とし、
予め取得した前記入力と正解ラベルを組にした教師ありデータを用いて学習を行う学習部を備え、
前記教師ありデータの正解ラベルを、前記人協調ロボットに外部から力を作用させること、前記人協調ロボットに複数の経路で動作を行わせること、および、前記人協調ロボットにノイズを作用させることによって取得し、
前記学習部が出力する、前記第１力成分に基づいて、前記人協調ロボットの動作を制御する、
ことを特徴とする人協調ロボットシステム。
【請求項２】
前記第１力成分の教師ありデータは、複数の姿勢において停止した前記人協調ロボットに対して、複数の大きさと複数の方向の力を前記人協調ロボットの複数の部位に対して作用させ、前記作用させた力と前記学習部への入力とを組にして収集する、
ことを特徴とする請求項１に記載の人協調ロボットシステム。
【請求項３】
前記第２力成分の教師ありデータは、前記人協調ロボットに複数種類のワークを把持させると共に、前記人協調ロボットに複数経路の動作を行わせることにより生じる力成分と前記学習部への入力を組にして収集する、
ことを特徴とする請求項１または請求項２に記載の人協調ロボットシステム。
【請求項４】
前記第３力成分の教師ありデータは、複数の姿勢において停止した前記人協調ロボットに対してノイズ源を作用させ、該ノイズ源によって生じる第４力成分と前記学習部への入力を組にして収集する、
ことを特徴とする請求項１乃至請求項３のいずれか１項に記載の人協調ロボットシステム。
【請求項５】
前記第１力成分および前記第２力成分の少なくとも一方を教示することができるモードが用意されている、
ことを特徴とする請求項２乃至請求項４のいずれか１項に記載の人協調ロボットシステム。
【請求項６】
前記人協調ロボットは、
収集された前記教師ありデータのモデル集合の中から前記学習部に学習させるモデル要素を選択する機能、或いは、
記録された力のモデル集合の中から、アプリケーションに応じて使用する力のモデル要素を推奨する機能を有する、
ことを特徴とする請求項２乃至請求項５のいずれか１項に記載の人協調ロボットシステム。
【請求項７】
前記学習部は、前記検出した力の特徴量を抽出するためにオンライン学習を行い、抽出された前記特徴量に基づいて、前記第１力成分、前記第２力成分および前記第３力成分に分離する、
ことを特徴とする請求項１乃至請求項６のいずれか１項に記載の人協調ロボットシステム。
【請求項８】
前記人協調ロボットは、前記人と作業領域を共有しない非協調動作モードに設定することができ、前記非協調動作モードにおいて、前記学習部は、前記第１力成分の正解ラベルを『０』に設定してオンライン学習を行う、
ことを特徴とする請求項１乃至請求項７のいずれか１項に記載の人協調ロボットシステム。
【請求項９】
前記人協調ロボットの制御装置は、
分離された前記第１力成分が所定の閾値を超えた場合に、前記人協調ロボットを停止する機能を有し、
前記人協調ロボットの停止後、前記第１力成分を前記学習部が誤検出して停止したことを示す第１入力信号が入力された場合には、前記人協調ロボットが停止する直前の入力データと、前記所定の閾値より小さい所定の値に設定した外力の正解ラベルとを組にして、前記学習部のオンライン学習を行う、
ことを特徴とする請求項１乃至請求項８のいずれか１項に記載の人協調ロボットシステム。
【請求項１０】
前記人協調ロボットの制御装置は、
分離した前記第１力成分が所定の閾値を超えた場合に、前記人協調ロボットを停止する機能を有し、
前記人協調ロボットの停止後、前記第１力成分を前記学習部が正しく検出して停止したことを示す第２入力信号が入力された場合には、前記人協調ロボットが停止する直前の前記学習部への入力信号と出力信号を教師ありデータとしてメモリに格納し、以降のオンライン学習に、前記メモリに格納した前記教師ありデータを使用する、
ことを特徴とする請求項１乃至請求項９のいずれか１項に記載の人協調ロボットシステム。
【請求項１１】
前記第１入力信号および前記第２入力信号は、前記人協調ロボットの動作再開信号を兼ねている、
ことを特徴とする請求項１０に記載の人協調ロボットシステム。
【請求項１２】
前記第２入力信号は、前記人により、或いは、前記人協調ロボットを撮影可能なカメラによる画像認識結果または近接センサの信号を使用して生成される、
ことを特徴とする請求項１０または請求項１１に記載の人協調ロボットシステム。
【請求項１３】
前記人協調ロボットシステムは、
分離した前記第１力成分が所定の閾値を超えた場合に、前記人協調ロボットを停止する機能、並びに、前記人が前記人協調ロボットに外力を加えて止める際に緊急度の大きい力のパターンを検出する機能を有し、
前記緊急度の大きい力のパターンが検出された場合には、前記緊急度の大きい力のパターンが検出される直前の入力データと、前記所定の閾値より大きい所定の値に設定した外力の正解ラベルとを組にして、前記学習部のオンライン学習を行う、
ことを特徴とする請求項１乃至請求項１２のいずれか１項に記載の人協調ロボットシステム。
【請求項１４】
前記人協調ロボットは、複数台設けられ、
複数台の前記人協調ロボットのそれぞれが個別に学習を行い、
それぞれの前記人協調ロボットにより個別に行われた複数の学習結果を、複数台の前記人協調ロボットがネットワークを介して相互に交換または共有する、
ことを特徴とする請求項１乃至請求項１３のいずれか１項に記載の人協調ロボットシステム。
【請求項１５】
前記第１力成分は、前記人が前記人協調ロボットに加える外力であり、
前記第２力成分は、前記人協調ロボットの動作によって生じる内力であり、
前記第３力成分は、前記人協調ロボットに対するノイズであり、若しくは、
前記人協調ロボットは、
教示された動作プログラムの１サイクル間に、前記人協調ロボットの検出した力のログを保存し、
さらに、複数回の前記サイクルについて検出した力のログを保存し、
複数回の前記サイクルにおいて検出した力のログを合成、或いは、信号処理することで、前記人協調ロボットの動作によって生じる力成分を抽出し、
抽出された前記人協調ロボットの動作によって生じる力成分を正解ラベルとして設定して、前記学習部のオンライン学習を行う、
ことを特徴とする請求項１乃至請求項１４のいずれか１項に記載の人協調ロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習により外力の検出精度を向上させた人協調ロボットシステムに関する。
【背景技術】
【０００２】
従来、ロボットシステムでは、ロボットが動作している期間中、人の安全を確保するために、人がロボットの作業領域に入れないように安全対策が講じられていた。例えば、ロボットの周りには安全柵が設置され、ロボットの動作期間中には安全柵の内部に人が入ることが禁じられていた。
【０００３】
近年では、人とロボットが協働(協調)して作業を行うロボット(人協調ロボット)が研究および開発され、実用化に至っている。このような人協調ロボット(人協調ロボットシステム)では、例えば、ロボットの周りに安全柵を設けない状態で、ロボットと人(作業者，ユーザ)が１つの作業を協調して行うようになっている。
【０００４】
ところで、人協調ロボットにおいて重要なことは、ロボットが人(人間)と接触した際に、予め定められた力以上の力を人間に与えることなく、停止や回避および退避を行うことである。また、人間と協調(協働)作業を行う場合にも、人間が作用する力を正確に知ることで、より精度の高い作業を行うことができるようになる。すなわち、外力の検出精度(検出能力)が向上することは、人協調ロボットの能力が向上することにつながる。
【０００５】
一方、外力以外の力を、外力と誤って認識した場合、例えば、外来ノイズや周囲の振動などを外力と誤って認識した場合には、ロボットの誤停止や誤動作が生じる虞がある。従って、内力やノイズから外力を正確に分離することが、外力の検出精度を向上させてロボットの能力を向上させることにもなる。
【０００６】
ここで、検出する力としては、主として、外力，内力およびノイズの３つの成分に分けることができる。まず、外力は、外部からロボットに与えられる力であり、主に、人がロボットに作用する力である。また、内力は、ロボットの動作によって発生する力であり、自らの動作による振動成分も含まれる。そして、ノイズは、電気的ノイズや周囲の振動によって発生する検出する必要のない外力成分である。
【０００７】
外力の算出方法としては、例えば、力センサが検出した力から、ロボットの動作指令値などから算出した理論的な内力を差し引いて求めることができる。しかしながら、この場合、外力には、ノイズが含まれる。また、ロボット自身の動作による振動によって発生する力が力センサで検出されるため、算出した外力には、ロボットの振動によって発生する力が含まれることになる。
【０００８】
ここで、ロボットは、例えば、外力が所定の閾値を超えると停止するようになっている。そして、上述したように、算出した外力には、ノイズやロボットの振動によって発生する力が含まれるため、例えば、ロボットの誤停止が発生する虞がある。
【０００９】
ところで、従来、Ｊ１ベース(Ｊ１軸の基部)に設置した力センサにより、ＸＹＺ方向の力とモーメントを検出し、その検出されたＸＹＺ方向の力とモーメントを利用してロボット(人協調ロボット)を制御するシステムが提案されている(例えば、特許文献１参照)。また、従来、音声における機械学習による信号の分離方法を適用し、音響信号をシーン毎に分類する分類精度を向上させることが可能な信号分類装置も提案されている(例えば、特許文献２参照)。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】欧州特許出願公開第２３２４９６７号明細書
【特許文献２】特許第５３５６５２７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述したように、従来、Ｊ１ベースに設置した力センサにより検出されたＸＹＺ方向の力とモーメントを利用してロボットを制御するシステム、並びに、機械学習を適用して音響信号の分類精度を向上させた信号分類装置が提案されている。
【００１２】
また、人協調ロボットシステムにおいて、算出した外力には、ノイズやロボットの振動によって発生する力が含まれるため、外力の検出精度が低下することになり、例えば、ロボットの誤停止を招く虞があった。
【００１３】
本発明の目的は、上述した課題に鑑み、外力の検出精度を向上させることができる人協調ロボットシステムの提供にある。
【課題を解決するための手段】
【００１４】
本発明に係る第１実施形態によれば、人とロボットが協調して作業を行う人協調ロボットを含み、力を検出する機能を有する人協調ロボットシステムであって、前記力を算出するためのセンシングデータ、前記人協調ロボットを制御する制御ソフトウェアの内部データ、並びに、前記センシングデータおよび前記内部データの一方のデータに基づいて得られる計算データを入力とし、前記人協調ロボットに外部から加えられる第１力成分、前記人協調ロボットの動作によって生じる第２力成分、および、ノイズに分類される第３力成分を出力とし、予め取得した前記入力と正解ラベルを組にした教師ありデータを用いて学習を行う学習部を備え、前記教師ありデータの正解ラベルを、前記人協調ロボットに外部から力を作用させること、前記人協調ロボットに複数の経路で動作を行わせること、および、前記人協調ロボットにノイズを作用させることによって取得し、前記学習部が出力する、前記第１力成分に基づいて、前記人協調ロボットの動作を制御する人協調ロボットシステムが提供される。
【００１５】
前記第１力成分の教師ありデータは、複数の姿勢において停止した前記人協調ロボットに対して、複数の大きさと複数の方向の力を前記人協調ロボットの複数の部位に対して作用させ、前記作用させた力と前記学習部への入力とを組にして収集することができる。前記第２力成分の教師ありデータは、前記人協調ロボットに複数種類のワークを把持させると共に、前記人協調ロボットに複数経路の動作を行わせることにより生じる力成分と前記学習部への入力を組にして収集することができる。前記第３力成分の教師ありデータは、複数の姿勢において停止した前記人協調ロボットに対してノイズ源を作用させ、該ノイズ源によって生じる第４力成分と前記学習部への入力を組にして収集することができる。
【００１６】
前記第１力成分および前記第２力成分の少なくとも一方を教示することができるモードが用意されていてもよい。前記人協調ロボットは、収集された前記教師ありデータのモデル集合の中から前記学習部に学習させるモデル要素を選択する機能、或いは、記録された力のモデル集合の中から、アプリケーションに応じて使用する力のモデル要素を推奨する機能を有することができる。前記学習部は、前記検出した力の特徴量を抽出するためにオンライン学習を行い、抽出された前記特徴量に基づいて、前記第１力成分、前記第２力成分および前記第３力成分に分離することができる。前記人協調ロボットは、前記人と作業領域を共有しない非協調動作モードに設定することができ、前記非協調動作モードにおいて、前記学習部は、前記第１力成分の正解ラベルを『０』に設定してオンライン学習を行ってもよい。
【００１７】
前記人協調ロボットの制御装置は、分離された前記第１力成分が所定の閾値を超えた場合に、前記人協調ロボットを停止する機能を有し、前記人協調ロボットの停止後、前記第１力成分を前記学習部が誤検出して停止したことを示す第１入力信号が入力された場合には、前記人協調ロボットが停止する直前の入力データと、前記所定の閾値より小さい所定の値に設定した外力の正解ラベルとを組にして、前記学習部のオンライン学習を行うことができる。前記人協調ロボットの制御装置は、分離した前記第１力成分が所定の閾値を超えた場合に、前記人協調ロボットを停止する機能を有し、前記人協調ロボットの停止後、前記第１力成分を前記学習部が正しく検出して停止したことを示す第２入力信号が入力された場合には、前記人協調ロボットが停止する直前の前記学習部への入力信号と出力信号を教師ありデータとしてメモリに格納し、以降のオンライン学習に、前記メモリに格納した前記教師ありデータを使用することもできる。前記第１入力信号および前記第２入力信号は、前記人協調ロボットの動作再開信号を兼ねてもよい。前記第２入力信号は、前記人により、或いは、前記人協調ロボットを撮影可能なカメラによる画像認識結果または近接センサの信号を使用して生成されてもよい。
【００１８】
前記人協調ロボットシステムは、分離した前記第１力成分が所定の閾値を超えた場合に、前記人協調ロボットを停止する機能、並びに、前記人が前記人協調ロボットに外力を加えて止める際に緊急度の大きい力のパターンを検出する機能を有し、前記緊急度の大きい力のパターンが検出された場合には、前記緊急度の大きい力のパターンが検出される直前の入力データと、前記所定の閾値より大きい所定の値に設定した外力の正解ラベルとを組にして、前記学習部のオンライン学習を行うことができる。前記人協調ロボットは、複数台設けられ、複数台の前記人協調ロボットのそれぞれが個別に学習を行い、それぞれの前記人協調ロボットにより個別に行われた複数の学習結果を、複数台の前記人協調ロボットがネットワークを介して相互に交換または共有することができる。前記第１力成分は、前記人が前記人協調ロボットに加える外力であり、前記第２力成分は、前記人協調ロボットの動作によって生じる内力であり、前記第３力成分は、前記人協調ロボットに対するノイズであり、若しくは、前記人協調ロボットは、教示された動作プログラムの１サイクル間に、前記人協調ロボットの検出した力のログを保存し、さらに、複数回の前記サイクルについて検出した力のログを保存し、複数回の前記サイクルにおいて検出した力のログを合成、或いは、信号処理することで、前記人協調ロボットの動作によって生じる力成分を抽出し、抽出された前記人協調ロボットの動作によって生じる力成分を正解ラベルとして設定して、前記学習部のオンライン学習を行うことができる。
【発明の効果】
【００１９】
本発明に係る人協調ロボットシステムによれば、外力の検出精度を向上させることができるという効果を奏する。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明の一実施形態に係るロボットシステムを示すブロック図である。
【図２】図２は、図１に示すロボットシステムにおける機械学習装置により分離された力の各成分を概念的に示す図である。
【図３】図３は、各力成分と入力信号の特徴量との関係の例を示す図である。
【図４】図４は、各種力のモデル集合を説明するための図(その１)である。
【図５】図５は、各種力のモデル集合を説明するための図(その２)である。
【図６】図６は、各種力のモデル集合を説明するための図(その３)である。
【図７】図７は、力モデルの選択機能の一例を説明するための図である。
【図８】図８は、特徴量を抽出するために教師なし学習用のニューラルネットワークを利用する一例を説明するための図である。
【図９】図９は、ロボットの非協調動作モードの一例を説明するための図である。
【図１０】図１０は、図１に示すロボットシステムの変形例を示すブロック図である。
【図１１】図１１は、図１０に示すロボットシステムにおいてロボットが停止した後の処理を説明するための図(その１)である。
【図１２】図１２は、図１０に示すロボットシステムにおいてロボットが停止した後の処理を説明するための図(その２)である。
【図１３】図１３は、図１に示すロボットシステムのさらなる変形例を示すブロック図である。
【図１４】図１４は、図１３に示すロボットシステムにおいてロボットを緊急停止した後の処理を説明するための図である。
【図１５】図１５は、本発明の一実施形態に係るロボットシステムにおいて正解ラベルの求め方の一例を説明するための図(その１)である。
【図１６】図１６は、本発明の一実施形態に係るロボットシステムにおいて正解ラベルの求め方の一例を説明するための図(その２)である。
【図１７】図１７は、関連技術としてのロボットシステムの一例を示すブロック図である。
【発明を実施するための形態】
【００２１】
まず、ロボットシステムの実施例を詳述する前に、人協調ロボットシステムの一例およびその課題を、図１７を参照して説明する。図１７は、関連技術としての人協調ロボットシステムの一例を示すブロック図である。図１７において、参照符号２００は人協調ロボットシステムを示し、２０１は人協調ロボット(ロボット)を示し、そして、２００は制御装置を示す。
【００２２】
図１７に示されるように、人協調ロボットシステム２００は、例えば、人(作業者，ユーザ：図示しない)とロボットが協調(協働)して作業を行うロボット２０１、および、ロボット２０１を制御する制御装置２０２を含む。制御装置２０２は、サーボ制御部２２１，力制御部２２２，閾値設定部２２３，力(合力)変換部２２４，力(内力)変換部２２５および加算部２２６を含む。
【００２３】
サーボ制御部２２１は、ロボット２０１の複数のモータを制御するもので、各モータに対してモータ動力を与えてサーボ制御を行う。サーボ制御部２２１には、例えば、ロボット２０１のエンコーダ出力，力制御部２２２の出力信号および閾値設定部からの停止指令なども入力される。合力変換部２２４は、例えば、ロボット２０１のＪ１ベースに設置した力センサからの信号を合力に変換して加算部２２６に出力し、内力変換部２２５は、ロボット２０１のエンコーダ出力を内力に変換して加算部２２６に出力する。
【００２４】
ここで、外力は、外部からロボットに与えられる力であり、主に、人がロボットに作用する力である。また、内力は、ロボットの動作によって発生する力であり、ロボット２０１自身の動作による振動成分も含まれる。合力は、外力，内力およびノイズが合算された力である。なお、ノイズは、電気的ノイズや周囲の振動によって発生する検出する必要のない外力成分と考えることができる。また、合力変換部２２４の入力信号は、ロボット２０１のＪ１ベースに設置した力センサからの信号に限定されず、ロボット２０１の各軸または所定個所に設けられた力を算出するためのセンシングデータ(例えば、歪みゲージデータなど)であってもよい。
【００２５】
加算(減算)部２２６は、合力変換部２２４の出力(合力)から、内力変換部２２５の出力(内力)を減算して外力を求め、その外力を力制御部２２２および閾値設定部２２３に出力する。力制御部２２２は、加算部２２６から供給された外力に基づいて、フィードバック制御を行うための信号をサーボ制御部２２１に出力し、サーボ制御部２２１は、上述した他の信号も受け取って、ロボット２０１の各モータに動力を与える。ここで、閾値設定部２２３には、所定の閾値が設定され、例えば、加算部２２６からの外力がその所定の閾値を超えた場合に、サーボ制御部２２１に停止指令を出力して、ロボット２０１を停止させるようになっている。
【００２６】
図１７に示すロボットシステム(人協調ロボットシステム)２００において、外力は、例えば、力センサが検出した力(合力)から、ロボットの動作指令値などから算出した理論的な内力を差し引いて求めるようになっている。しかしながら、この場合、外力には、ノイズが含まれ、また、合力(外力)には、例えば、ロボットの振動によって発生する力が含まれることになる。
【００２７】
すなわち、人協調ロボットシステム２００において、加算部２２６から出力される外力には、ノイズやロボット２０１の振動などによって発生する力が含まれるため、外力の検出精度が低下することになる。また、閾値設定部２２３は、加算部２２６から出力される外力が所定の閾値を超えると、ロボット２０１を停止する指令を出力するため、ロボットの誤停止を招く虞もある。
以下、本発明に係る人協調ロボットシステムの実施例を、添付図面を参照して詳述する。図１は、本発明の一実施形態に係るロボットシステムを示すブロック図である。図１において、参照符号１００は人協調ロボットシステムを示し、１は人協調ロボット(ロボット)を示し、２は制御装置を示し、そして、３は機械学習装置を示す。
【００２８】
図１に示されるように、本実施形態の人協調ロボットシステム１００は、例えば、人(作業者，ユーザ：図示しない)とロボットが協調(協働)して作業を行うロボット１、ロボット１を制御する制御装置２、および、制御装置２に対して機械学習を適用して分離した外力を与える機械学習装置３を含む。制御装置２は、サーボ制御部２１，力制御部２２および閾値設定部２３を含む。サーボ制御部２１は、ロボット１の複数のモータを制御するもので、各モータに対してモータ動力を与えてサーボ制御を行う。サーボ制御部２１には、例えば、ロボット１のエンコーダ出力，力制御部２２の出力信号および閾値設定部からの停止指令なども入力される。
【００２９】
機械学習装置３は、学習部３１，表示部３２，各種力(外力，ロボットの振動を含んだ内力およびノイズ)の集合モデル３３，力(合力)変換部３４および論理内力算出部３５を含む。なお、図１において、機械学習装置３には、学習部３１の他に、表示部３２，各種力の集合モデル３３，合力変換部３４および論理内力算出部３５が設けられているが、機械学習装置３の外部に設けてもよく、また、各種力の集合モデル３３も外部から与えるように構成することもできる。さらに、機械学習装置３は、制御装置２に内蔵することも可能であり、或いは、通信回線を介して、フォグサーバまたはクラウドサーに設けることもできる。
【００３０】
論理内力算出部３５は、サーボ制御部２１から、例えば、教示プログラム，動作指令値，エンコーダ出力値(位置情報)，速度，ワークの形状およびワークの重さなどの各種情報(データ)を受け取り、ロボットの動作によって発生する内力を算出して学習部３１に出力する。合力変換部３４は、ロボット１から、力を算出するためのセンシングデータ(例えば、歪みゲージデータなど)を受け取り、合力を算出して学習部３１に出力する。なお、学習部３１には、例えば、サーボ制御部２１からの教示プログラム，動作指令値，エンコーダ出力値(位置情報)，速度，ワークの形状およびワークの重さなどの各種データ、並びに、ロボット１からのセンシングデータも入力されている。
【００３１】
ここで、合力変換部３４に入力されるセンシングデータとしては、ロボット１のＪ１ベースに設置した力センサからの信号、或いは、ロボット１の各軸または所定個所に設けられた力を算出するためのセンサからのデータであってもよい。また、合力は、例えば、［合力］＝［外力］＋［内力(ロボットの振動を含んだ内力)］＋［ノイズ］として表すことができる。
【００３２】
学習部３１は、例えば、教師あり学習を実行するもので、外部から教師ありデータを受け取って学習を行う。ここで、教師ありデータとしては、例えば、各種力(外力，ロボットの振動を含んだ内力およびノイズ)のモデル集合３３が対応する。なお、モデルについては、後に詳述する。
【００３３】
学習部３１により分離された外力は、制御装置２における力制御部２２および閾値設定部２３に出力される。さらに、図１に示す例では、学習部３１により分離された外力，内力およびノイズが表示部３２に出力され、表示部３２において所定の表示が行われるようになっている。なお、表示部３２における外力，内力およびノイズの表示は、様々な表示手法が適用可能であるが、例えば、アラームを発するなどの表示以外の手法を適用してもよい。なお、表示部３２は、必ずしも設けなくてもよいが、前述したように、機械学習装置３の外部、或いは、制御装置２に設けることもできる。
【００３４】
力制御部２２は、学習部３１(機械学習装置３)から出力される、分離した外力を受け取り、その分離した外力基づいてフィードバック制御を行うための信号をサーボ制御部２１に出力する。また、閾値設定部２３には、所定の閾値が設定され、例えば、機械学習装置３から出力される、分離した外力がその所定の閾値を超えた場合に、サーボ制御部２１に停止指令を出力して、ロボット２０１を停止させるようになっている。
【００３５】
図２は、図１に示すロボットシステムにおける機械学習装置により分離された力の各成分を概念的に示す図である。ここで、図２(a)は、検出した力成分(合力：合力変換部３４の出力)Ｌ１を示す図であり、図２(b)は、分離した外力(学習部３１から力制御部２２，閾値設定部２３および表示部３２に出力される外力)Ｌ１をＬ０と共に示す図である。また、図２(c)は、分離した内力(学習部３１から表示部３２に出力される内力)Ｌ２をＬ０と共に示す図であり、図２(d)は、分離したノイズ(学習部３１からから表示部３２に出力されるノイズ)Ｌ３をＬ０と共に示す図である。
【００３６】
図２(a)〜図２(d)に示されるように、図１に示すロボットシステム１００の機械学習装置３により、図２(a)に示すような合力Ｌ１は、図２(b)に示すような外力Ｌ１，図２(c)に示すような内力Ｌ２および図２(d)に示すようなノイズＬ３に分離することが可能なのが分かる。
【００３７】
上述した人協調ロボットシステム１００において、機械学習装置３は、例えば、汎用の計算機若しくはプロセッサを用いてもよいが、ＧＰＧＰＵ(General-Purpose computing on Graphics Processing Units)や大規模ＰＣクラスターなどを適用すると、より高速に処理することが可能である。また、機械学習装置３は、前述したように、ロボット制御装置(制御装置２)に組み込むことも可能であり、さらに、イーサネット（登録商標）などの通信回線を介したネットワーク上のサーバに設けることもできる。
【００３８】
また、学習部３１は、一例としてニューラルネットワークを使用して構築することができる。さらに、例えば、入力と外力の分離結果を予め実験によって収集しておく。そして、その入力と結果のデータの組を大量に準備しておき、学習部３１に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、すなわち、その関係性を帰納的に獲得する教師なし学習を行うこともできる。なお、本実施形態においては、例えば、時間的相関がある時系列データをモデル化するために、リカレント型と呼ばれるニューラルネットワークを適用するのも有用である。
【００３９】
さらに、例えば、センサデータは、学習部３１に入力する前に、或いは、学習部３１の１つ機能として、信号処理による前処理を行ってもよい。特に、力成分を分離する上で有用な方法として、ＦＦＴ(Fast Fourier Transform)などによる周波数領域への変換が挙げられる。そのようなデータの特徴量を、機械学習装置の設計者が、機械学習装置３に組み込んでもよい。また、教示プログラムや動作指令値は、ロボット１の理論的な内力を求めるだけなく、力の特徴量とロボット１の姿勢の相関関係を学習するためにも用いることができる。
【００４０】
このように、本実施形態のロボットシステム(人協調ロボットシステム)１００は、人とロボットが協調して作業を行う人協調ロボット１を含み、力を検出する機能を有する。機械学習装置３の学習部３１は、力を算出するためのセンシングデータ、人協調ロボットを制御する制御ソフトウェアの内部データ、並びに、センシングデータおよび内部データの一方のデータに基づいて得られる計算データを入力とし、人協調ロボットに外部から加えられる第１力成分、人協調ロボットの動作によって生じる第２力成分、および、ノイズに分類される第３力成分を出力とし、予め取得した入力と正解ラベルを組にした教師ありデータを用いて学習を行う。ここで、教師ありデータの正解ラベルを、人協調ロボットに外部から力を作用させること、人協調ロボットに複数の経路で動作を行わせること、および、人協調ロボットにノイズを作用させることによって取得し、学習部３１が出力する。そして、人協調ロボット１に対する第１力成分(人が人協調ロボットに加える外力)に基づいて、人協調ロボットの動作を制御する。これにより、例えば、ロボットの振動を含んだ内力とノイズとを分離した外力を精度よく検出することが可能になる。
【００４１】
図３は、各力成分と入力信号の特徴量との関係の例を示す図である。一般的に、各力成分と入力信号の特徴量との間には、図３に示すような関係がある。すなわち、外力に関して、周波数は相対的に低く、ロボットの姿勢や速度との相関性は小さく、一定時間ごとには発生しない。また、ロボットの振動を含んだ内力に関して、周波数は相対的に中程度で、ロボットの姿勢や速度との相関性は大きく、一定時間ごとには発生しない。さらに、ノイズに関して、周波数は相対的に高く、ロボットの姿勢や速度との相関性は中程度で、一定時間ごとに発する場合がある。このような、関係性については、学習部３１が学習によって自動的に獲得してもよいが、例えば、機械学習装置３の設計者によって関係を明示的に組み込むことも可能である。
【００４２】
学習部３１からの出力信号(分離した外力，内力およびノイズ：分離結果)の後処理について、本実施形態の説明では、力の分離結果は、直接ニューラルネットワークの出力結果として説明する。ただし、他の実施例として、学習部３１の出力結果は、数種類の周波数と強度の組で与えられ、その結果に基づいた適応ノッチフィルタを、センサの検出した合力に作用させることにより外力を分離することも可能である。
【００４３】
次に、学習部３１に与える各種力(外力，ロボットの振動を含んだ内力およびノイズ)のモデル集合３３について、外力モデル，ロボットの振動を含んだ内力モデルおよびノイズモデルを説明する。図４〜図６は、各種力のモデル集合を説明するための図であり、図４は、外力モデルを説明するためのものである。また、図５は、ロボットの振動を含んだ内力モデル(内力モデル)を説明するためのものであり、図６は、ノイズモデルを説明するためのものである。
【００４４】
まず、外力モデルについては、図４に示されるように、ニューラルネットワークの入力Ｘとして、例えば、センサデータ，動作指令(なし)，ロボット姿勢，ワーク(なし)および力計算値を与え、出力Ｙ(５)として、外力を得る。ここで、ロボットに作用させた力＝外力、かつ、ロボットの振動を含んだ内力＝０、ノイズ＝０として、正解ラベルを作成する。入力Ｘと正解ラベルの組を教師ありデータとして複数準備する。
【００４５】
Ａ．外力モデル
特に、人間がロボットに力を作用させる状況を場合分けし、それぞれのパターンの力を予め力のモデルとしてモデル化しておく。
・機械や壁と衝突する際の力のモデル
・人が作業をしているときに、ロボットが近づいてきて、不意にぶつかるときの力のモデル
・人がロボットと周辺の装置に挟み込まれた時の力のモデル
・ワークを車のボディにねじ止めする際に加わるドライバの押しつけや振動などの力のモデル
・細長いワークをロボットと作業者が支える時に作用する力のモデル
【００４６】
次に、モデル化した外力を発生させることのできる治具などを作成し、停止したロボットに作用させる。力のモデルに応じて、ロボットの姿勢は複数のパターンとし、かつ、ロボットの複数の部位に力を作用させる。このとき、例えば、ロボット２０１の各軸または所定個所に力センサを設け、力が作用された部位を認識可能とするのが好ましい。さらに、センサデータ，計算された合力およびロボット姿勢を入力とし、作用させた力を外力とし、ロボットの振動を含んだ内力とノイズは『０』として、正解ラベルを作成する。そして、入力と正解ラベルの組を教師ありデータとして複数準備して、機械学習を行う。なお、「作用させた力」は、入力の力計算値を使用してもよい。
【００４７】
また、内力モデルについては、図５に示されるように、ニューラルネットワークの入力Ｘとして、例えば、センサデータ，動作指令，位置・速度，ワーク種類および力計算値を与え、出力Ｙ(５)として、ロボットの振動を含んだ内力を得る。ここで、ロボットの振動を含んだ内力＝「力計算値」、外力＝０、ノイズ＝０として、正解ラベルを作成する。入力Ｘと正解ラベルの組を教師ありデータとして複数準備する。
【００４８】
Ｂ．内力モデル
ロボットの動作によって生じる力は、ロボットが持つワークの重さや重心位置が正確にわかっていれば、ロボットの動作指令値からロボット自身の加速度を算出することができ、そこから動作指令値に基づく理論的な内力を算出することができる。しかしながら、ロボットの動作がロボット自身(特に、ハンド部)を揺らすことにより、振動が発生することがある。このロボットの振動による力についても、力センサが検出することになるため、振動による力成分を動作指令値から算出することは、困難なものとなっている。
【００４９】
そこで、本実施形態では、ロボットの振動を含んだ内力についても、外力モデルと同様に、前もって様々な動作を行わせ、ロボットの振動を含んだ内力モデルを作成する。また、複数のワークを持たせて動作を行わせることで、ワークを持った状態でのロボットの振動を含んだ内力モデルを作成することができる。なお、ロボットの振動を含む内力のモデルはロボットの機種ごとに異なる。
【００５０】
上述したロボットの振動を含む内力の測定時の問題としては、内力をロードセルなどのロボットシステムの外部機器で力を測定することが難しい点があげられる。その代わりに、学習部の前処理部で、算出された理論的な合力を、ロボットの振動を含む内力の正解ラベルとして学習を行う。すなわち、算出された理論的な合力＝ロボットの振動を含む内力、外力＝０、ノイズ＝０として、正解ラベルを作成する。入力と正解ラベルの組を教師ありデータとして複数準備して、機械学習を行う。
【００５１】
さらに、ノイズモデルについては、図６に示されるように、ニューラルネットワークの入力Ｘとして、例えば、センサデータ，動作指令(なし)，ロボット姿勢，ワーク種類および力計算値を与え、出力Ｙ(５)として、ノイズを得る。ここで、ノイズ＝「力計算値」、外力＝０、ロボットの振動を含んだ内力＝０として、正解ラベルを作成する。入力Ｘと正解ラベルの組を教師ありデータとして複数準備する。
【００５２】
Ｃ．ノイズモデル
ノイズは様々な種類に分類される。
・外部振動によるもののうち、周期的なノイズ／非周期的なノイズ
・電気的なノイズによるもののうち、周期的なノイズ／非周期的なノイズ
モデル例
・フォークリフトが近くを通る際の振動
・インパルス的に加わる周辺機器の瞬間的な振動
・ロボットに風が加わる場合の力の誤検出
【００５３】
ノイズについても、上述した外力モデルおよびロボットの振動を含んだ内力モデルと同様に、前もってロボットに様々なノイズを作用させて、モデルを作成する。停止したロボットに対して、ノイズを作用させる。また、複数のロボット姿勢において、ノイズを作用させる。ノイズによる力成分の測定時の問題として、ノイズによる力成分をロードセルなどのロボットシステムの外部機器で力を測定することが難しい点があげられる。その代わりに、学習部の前処理部で、算出された理論的な合力を、ノイズの正解ラベルとして学習を行う。すなわち、算出された合力＝ノイズ、外力＝０、ロボットの振動を含む内力＝０として、正解ラベルを作成する。入力と正解ラベルの組を教師ありデータとして複数準備して、機械学習を行う。
【００５４】
なお、前述したニューラルネットワークを示す図４〜図６における出力Ｙ(５)は、外力，ロボットの振動を含んだ内力およびノイズごとに分割して記載しているが、それらを結合したものが実際のニューラックネットワークになる。ここで、ニューラルネットワークに入力される力と、出力する各力成分には、以下の制約がある。
[算出された合力(入力部)]＝[外力]＋[ロボットの振動を含んだ内力]＋[ノイズ]
【００５５】
なお、ノイズ(第３力成分)の教師ありデータは、例えば、複数の姿勢において停止したロボット１に対してノイズ源(図示しない)を作用させ、そのノイズ源によって生じる力の成分(第４力成分)と学習部３１への入力を組にして収集する。また、ノイズの教師ありデータは、他の様々な手法を適用して収集することもできるのはいうまでもない。
【００５６】
次に、外力，ノイズのユーザ(人，作業者)による教示モードについて説明する。外力とノイズに関しては、ユーザによって教示することができる教示モードを設けることができる。この教示モードでは、例えば、どのような種類の力であるかを示す名前を教示前に設定し、ロボットを停止した状態で、教示を開始する。ロボットの姿勢は、できるだけ多い方が、学習結果が良好になると考えられるので、姿勢を変えて同じ力を与えるといった教示を繰り返す。この作業はインタラクティブなガイダンス機能によって行われてもよい。このように、例えば、ロボット１に外部から加えられる外力(人がロボットに加える外力：第１力成分)、および、ロボット１の動作によって生じる内力(第２力成分)の少なくとも一方を教示することができるモードを用意することによって、ユーザの環境に応じた力のモデルによる学習が可能になる。
【００５７】
図７は、力モデルの選択機能の一例を説明するための図であり、ユーザ(人)が人協調ロボット１と協調して、タイヤ搬送，ソファー取付，溶接，バリ取りおよびネジ締めといった作業(アプリケーション)を行う場合において、タイヤ搬送に注目して力モデルの選択機能を説明するためのものである。まず、力モデルを大別すると、上述した「外力」，「内力(ロボットの振動を含んだ内力)」および「ノイズ」に分けられる。「外力」は、小分類として、例えば、「人の衝突」，「人の挟まれ」および「人がワークの取付作業」に分けられる。「内力」は、小分類として、例えば、「動作速度」，「動作範囲」および「ワーク種類」に分けられ、「ノイズ」は、小分類として、例えば、「フォークリフトの振動」，「周辺機器の周期的振動」および「電気的ノイズ」に分けられる。
【００５８】
このとき、アプリケーションとしてタイヤ搬送を行う場合、例えば、「外力」の小分類として「人の衝突」および「人の挟まれ」を選択し、「内力」の小分類として「動作速度」，「動作範囲」および「ワーク種類」を選択し、そして、「ノイズ」の小分類として「フォークリフトの振動」および「電気的ノイズ」を選択する。ここで、協調(協働)ロボット１(人協調ロボットシステム１００)は、登録した力のモデルの中から、使用するモデルをユーザが選択することができ、さらに、アプリケーションに応じて、力モデルの外力／内力／ノイズの各推奨モデルを、ロボット教示者(ユーザ，人)にリコメンドする機能を有することができる。
【００５９】
すなわち、ロボット１(ロボットシステム１００)に対して、収集された教師ありデータのモデル集合の中から学習部３１に学習させるモデル要素を選択する機能、或いは、記録された力のモデル集合の中から、アプリケーションに応じて使用する力のモデル要素を推奨する機能を持たせる。これにより、ユーザのアプリケーションに応じた力のモデルによる学習が可能になり、さらに、ユーザのアプリケーションに応じた力のモデルが容易に選択することが可能になる。
【００６０】
図８は、特徴量を抽出するために教師なし学習用のニューラルネットワークを利用する一例を説明するための図である。図８に示されるように、本実施例の機械学習装置３は、特徴量抽出用ニューラルネットワーク(教師なし学習／オンライン学習)３ａおよび力分離用ニューラルネットワーク(教師あり学習)３ｂを含み、特徴量抽出用ニューラルネットワーク３ａにより得られた特徴量を、力分離用ニューラルネットワーク３ｂに与えるようになっている。
【００６１】
図８に示されるように、本実施例では、特徴量の抽出のために、教師なし学習用のニューラルネットワーク３ａを準備する。教師なし学習とは、入力データのみを大量に学習部に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮・分類・整形などを行う学習手法である。それらのデータセットにある特徴の似た者同士をクラスタリングすることなどができる。
【００６２】
ここで、教師なし学習は、教師出力データがなくてもよいので、ロボットの実稼働時に、常時リアルタイムに学習することができる。学習用データとして、次々に新しいサンプルが与えられ、新しい学習用データサンプルが与えられる度に、学習の更新を行うことができる。この学習手法はオンライン学習と呼ばれ、学習を継続しながら、学習結果を利用することができる。すなわち、学習部３１は、検出した力の特徴量を抽出するためにオンライン学習を行い、抽出された特徴量に基づいて、外力(第１力成分)、内力(第２力成分)およびノイズ(第３力成分)に分離することができる。
【００６３】
また、他の実施例としては、教師なし学習と教師あり学習との中間的な問題設定として、半教師あり学習と呼ばれるものがあり、これを学習に用いてもよい。ここで、半教師あり学習とは、一部のみ入力と出力のデータの組が存在し、それ以外は、入力のみのデータである場合に使われる学習手法である。
【００６４】
図９は、ロボットの非協調動作モードの一例を説明するための図である。図９に示されるように、ニューラルネットワークの入力Ｘとして、例えば、センサデータ，動作指令値，位置・速度，ワーク種類および力計算値を与え、出力Ｙ(５)として、外力を得る。ここで、非協調動作モード(非協調動作モード時)は、例えば、常に、出力Ｙ(５)＝０という正解ラベルを用いてオンライン学習を行うことができる。
【００６５】
すなわち、人協調ロボット１は、作業者(人)と作業領域を共有しない非協調動作モードに設定することができるようになっている。具体的には、ロボット１が動作を行う安全柵内から作業者が出たことを示す信号や、スキャナセンサによって人がロボット１の近くにいないことを信号として制御装置(ロボット制御装置)２に入力することで、非協調動作モードに設定することができる。
【００６６】
この非協調動作モードには、例えば、ニューラルネットワークで構成された学習部３１は、ロボットの外部から加えられる力成分の正解ラベルを『０』に設定してオンライン学習を行う。すなわち、ロボット１は、人と作業領域を共有しない非協調動作モードに設定することができ、非協調動作モードにおいて、学習部３１は、外力(第１力成分)の正解ラベルを『０』に設定してオンライン学習を行う。これにより、ニューラルネットワークの重みづけＷを逐次更新することができ、その結果として、外力を分離する精度を高めることが可能になる。
【００６７】
図１０は、図１に示すロボットシステムの変形例を示すブロック図であり、図１１および図１２は、図１０に示すロボットシステムにおいてロボットが停止した後の処理を説明するための図である。ここで、図１１は、ロボットが停止した後の処理を説明するためのフローチャートであり、図１２は、そのときのニューラルネットワークのオンライン学習を説明するための図である。
【００６８】
図１０と、前述した図１の比較から明らかなように、本変形例のロボットシステムでは、ロボットが停止した後の復帰処理を行うための２つのスイッチ(動作再開ボタン)ＳＷ１およびＳＷ２が設けられている。ここで、動作再開ボタンＳＷ１は、ロボットが誤停止した後の動作再開ボタンであり、動作再開ボタンＳＷ２は、ロボットが正常停止した後の動作再開ボタンである。なお、これら２つの動作再開ボタンＳＷ１およびＳＷ２の出力は、サーボ制御部２１および学習部３１に入力されている。
【００６９】
図１１に示されるように、ステップＳＴ１において、外力が閾値を超えたためにロボットが停止したとき、ロボットが正常停止したと判定した場合には、ステップＳＴ２に進んで、「正常に外力を検知できて止まった」ことを示すボタンを押して動作を再開、すなわち、ロボット正常停止後の動作再開ボタンＳＷ２をＯＮする。次に、ステップＳＴ３に進んで、ロボット停止直前の学習部の入力データと出力データの組を、将来の教示データとしてメモリに格納して、ステップＳＴ６に進んで、ロボット動作を再開する。
【００７０】
また、ステップＳＴ１において、外力が閾値を超えたためにロボットが停止したとき、ロボットが誤停止したと判定した場合には、ステップＳＴ４に進んで、「外力が加わらないのに止まった」ことを示すボタンを押して動作再開、すなわち、ロボット誤停止後の動作再開ボタンＳＷ１をＯＮする。次に、ステップＳＴ５に進んで、ロボット停止直前の学習部の入力データに対して、閾値から所定の値を差し引いた外力を正解ラベルとして設定し、オンライン学習を行う。そして、新たに設定された正解ラベルによるオンライン学習の結果に基づいて、ステップＳＴ６に進んで、ロボット動作を再開する。
【００７１】
このように、ロボット１の制御装置２は、分離された外力(第１力成分)が所定の閾値を超えた場合に、ロボット１を停止する機能を有し、そのロボットの停止後、外力を学習部３１が誤検出して停止したことを示す信号(第１入力信号)が入力された場合には、ロボットが停止する直前の入力データと、閾値より小さい所定の値に設定した外力の正解ラベルとを組にして、学習部のオンライン学習を行う。これにより、外力の分離に誤りがあって、誤停止した際には、例えば、誤停止したことをユーザが入力することで、オンラインの教師あり学習を行って、外力分離能力の改善を図ることができる。
【００７２】
また、ロボット１の制御装置２は、分離された外力(第１力成分)が所定の閾値を超えた場合に、ロボット１を停止する機能を有し、そのロボットの停止後、外力を学習部３１が正しく検出して停止したことを示す信号(第２入力信号)が入力された場合には、ロボットが停止する直前の学習部３１への入力信号と出力信号を教師ありデータとしてメモリ(図示しないが、例えば、学習部３１に内蔵したメモリ、または、制御装置２に設けられたメモリなど)に格納し、以降のオンライン学習に、そのメモリに格納した教師ありデータを使用する。これにより、例えば、外力の分離が正常に停止したことをユーザが入力した場合、その時のデータを教師ありデータとして格納し、将来、このデータを用いて教師あり学習を行うことにより、外力分離能力の改善を図ることができる。
【００７３】
ここで、第１入力信号および第２入力信号は、ロボット１の動作再開信号を兼ねるように構成してもよい。これにより、人間(ユーザ)による判断と、ロボット再開を同時に行うことができ、ユーザの負担を減らすことが可能になる。なお、ロボットが正常停止したか誤停止したかの判定は、ユーザ(人)が行うこともできるが、例えば、所定の条件に基づいて、機械学習装置３または制御装置２が自動的に行うこともできる。すなわち、第２入力信号は、例えば、ロボットを撮影可能なカメラ(図示しない)による画像認識結果、または、近接センサ(図示しない)の信号などを使用して生成することもできる。これにより、人間による判断を自動化することが可能になる。
【００７４】
図１２に示されるように、ニューラルネットワークの入力Ｘとして、例えば、センサデータ，動作指令値，位置・速度，ワーク種類および力計算値を与え、出力Ｙ(５)として、外力を得る。ここで、ロボットが停止する直前の入力Ｘに対して、正解ラベルＹ(５)＝Ｎ−αを設定して、オンライン学習を行う。なお、Ｎは、閾値を示し、αは、システムが定める正の値を示す。すなわち、上述したように、閾値Ｎから所定の値αを差し引いた外力を正解ラベルとして設定し、オンライン学習を行う。
【００７５】
図１３は、図１に示すロボットシステムのさらなる変形例を示すブロック図である。図１４は、図１３に示すロボットシステムにおいてロボットを緊急停止した後の処理を説明するための図であり、そのときのニューラルネットワークのオンライン学習を説明するための図である。
【００７６】
図１３と、前述した図１の比較から明らかなように、本さらなる変形例のロボットシステムでは、機械学習装置３に対して、緊急度の大きい力のパターン検出部３６を設け、緊急度の大きい力のパターンを検出したときに、その緊急度の大きい力のパターン検出信号をサーボ制御部２１に入力して、ロボット１を緊急停止するようになっている。
【００７７】
図１４に示されるように、ニューラルネットワークの入力Ｘとして、例えば、センサデータ，動作指令値，位置・速度，ワーク種類および力計算値を与え、出力Ｙ(５)として、外力を得る。ここで、緊急度の大きい力のパターンが検出された場合、その直前の入力データＸに対して、正解ラベルＹ(５)＝Ｎ＋βを設定して、オンライン学習を行う。なお、Ｎは、閾値を示し、βは、システムが定める正の値を示す。すなわち、閾値Ｎから所定の値βを加えた外力を正解ラベルとして設定し、オンライン学習を行う。
【００７８】
ところで、図１３および図１４を参照して説明したロボットシステムにおいて、例えば、外力が正常に検出されず、期待したロボット停止が発生しない場合に対する作業者の反応(ロボットを強く引っ張るなど)を、特徴的な「緊急度の大きい」力パターンとして、力の波形を機械学習装置３に記憶させておくのが好ましい。このパターンの検出のために、理論的な内力を差し引く、或いは、周波数成分の算出をするなど数値演算を行ってもよい。若しくは、検出した力から外力を分離する学習部と、他の学習部に予め学習させておくこともできる。
【００７９】
この「緊急度の大きい」力のパターンが検出された場合には、外力の分離がうまくいっていないと解釈できるため、「緊急度の大きい」力のパターンが検出される直前の入力データに対して、上述したように、外力の正解ラベルを閾値＋β(βはシステムが定める正の値)に設定して、オンライン学習を行う。この学習によって、これ以降、同様の状況がロボットシステムで発生した場合には、「緊急度の大きい」力のパターンが発生する前に、外力検出の閾値によって、ロボットが停止できる可能性を向上させることができる。
【００８０】
すなわち、ロボットシステム１００は、分離した外力(第１力成分)が所定の閾値を超えた場合に、ロボット１を停止する機能、並びに、ユーザがロボット１に外力を加えて止める際に緊急度の大きい力のパターンを検出する機能を有し、緊急度の大きい力のパターンが検出された場合には、その急度の大きい力のパターンが検出される直前の入力データと、閾値より大きい所定の値に設定した外力の正解ラベルとを組にして、学習部３１のオンライン学習を行う。これにより、外力の分離に誤りがあり、外力を加えても停止しない場合の対策として、緊急度の大きい力のパターンを検出する機能を備えておき、緊急度の大きい力のパターンが検出された場合には、オンラインの教師あり学習を行って、外力分離能力の改善を図ることが可能になる。
【００８１】
ここで、例えば、ロボット１を複数台設け、その複数台のロボット１のそれぞれが個別に学習を行い、それぞれのロボット１により個別に行われた複数の学習結果を、複数台のロボット１がネットワーク(通信回線)を介して相互に交換または共有するように構成してもよい。
【００８２】
図１５および図１６は、本発明の一実施形態に係るロボットシステムにおいて正解ラベルの求め方の一例を説明するための図である。ここで、図１５は、正解ラベルの求め方の一例を説明するためのフローチャートであり、図１６は、そのときのニューラルネットワークのオンライン学習を説明するための図である。
【００８３】
図１５に示されるように、テップＳＴ１１において、動作プログラムの１サイクルについて、力を測定してログを保存し、ステップＳＴ１２に進み、複数回のサイクルについてログを保存する。さらに、ステップＳＴ１３に進んで、合成或いは信号処理を行う。次に、ステップＳＴ１４において、ロボットの振動を含んだ内力を抽出し、さらに、ステップＳＴ１５に進んで、正解ラベルとして使用する。
【００８４】
図１６に示されるように、ニューラルネットワークの入力Ｘとして、例えば、センサデータ，動作指令値，位置・速度，ワーク種類および力計算値を与え、出力Ｙ(５)として、ロボットの振動を含んだ内力を得る。ここで、複数回サイクルから抽出したロボットの振動を含んだ内力の値を、出力Ｙ(５)の正解ラベルに設定して、オンライン学習を行う。
【００８５】
ここで、図１５および図１６を参照して説明したロボットシステムにおいて、例えば、外力による停止やノイズの影響は、複数回のサイクルをログして平均化などの処理をすることで、影響を低減することができる。そのようにして得られたロボットの振動を含んだ内力データを正解ラベルに設定することで、ロボットの振動を含んだ内力についてオンライン学習を行うことが可能になる。ただし、ワーク種類が変わったり、ワークの把持位置が変わり重心位置が変わったりする場合には、１サイクルでの平均処理が意味をなさないため、そのような変更があった場合には、それまでの正解ラベルを破棄して、改めて複数回のサイクルをログする必要がある。
【００８６】
すなわち、ロボット１は、教示された動作プログラムの１サイクル間に、ロボット１の検出した力のログを保存し、さらに、複数回のサイクルについて検出した力のログを保存し、その複数回のサイクルにおいて検出した力のログを合成、或いは、信号処理することで、ロボット１の動作によって生じる力成分を抽出し、その抽出された人協調ロボットの動作によって生じる力成分を正解ラベルとして設定して、学習部３１のオンライン学習を行う。これにより、ロボットが検出する力からロボットの振動を含んだ内力を分離する能力を高めることができ、それに伴って、外力を分離する精度も向上させることが可能になる。
【００８７】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００８８】
１，２０１    人協調ロボット(ロボット)
２，２０２    制御装置
３    機械学習装置
２１，２２１    サーボ制御部
２２，２２２    力制御部
２３，２２３    閾値設定部
３１    学習部
３２    表示部
３３    各種力(外力)のモデル集合
３４，２２４    力(合力)変換部
３５    論理内力算出部
３６    緊急度の大きい力のパターン検出部
２２５    力(内力)変換部
２２６    加算器(減算器)
１００，２００    人協調ロボットシステム(ロボットシステム)
【図１】
2018065221.tif 000003
【図２】
2018065221.tif 000004
【図３】
2018065221.tif 000005
【図４】
2018065221.tif 000006
【図５】
2018065221.tif 000007
【図６】
2018065221.tif 000008
【図７】
2018065221.tif 000009
【図８】
2018065221.tif 000010
【図９】
2018065221.tif 000011
【図１０】
2018065221.tif 000012
【図１１】
2018065221.tif 000013
【図１２】
2018065221.tif 000014
【図１３】
2018065221.tif 000015
【図１４】
2018065221.tif 000016
【図１５】
2018065221.tif 000017
【図１６】
2018065221.tif 000018
【図１７】
2018065221.tif 000019
【手続補正書】
【提出日】平成29年9月1日(2017.9.1)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
まず、ロボットシステムの実施例を詳述する前に、人協調ロボットシステムの一例およびその課題を、図１７を参照して説明する。図１７は、関連技術としての人協調ロボットシステムの一例を示すブロック図である。図１７において、参照符号２００は人協調ロボットシステムを示し、２０１は人協調ロボット(ロボット)を示し、そして、２０２は制御装置を示す。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
力制御部２２は、学習部３１(機械学習装置３)から出力される、分離した外力を受け取り、その分離した外力基づいてフィードバック制御を行うための信号をサーボ制御部２１に出力する。また、閾値設定部２３には、所定の閾値が設定され、例えば、機械学習装置３から出力される、分離した外力がその所定の閾値を超えた場合に、サーボ制御部２１に停止指令を出力して、ロボット１を停止させるようになっている。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
図２は、図１に示すロボットシステムにおける機械学習装置により分離された力の各成分を概念的に示す図である。ここで、図２(a)は、検出した力成分(合力：合力変換部３４の出力)Ｌ０を示す図であり、図２(b)は、分離した外力(学習部３１から力制御部２２，閾値設定部２３および表示部３２に出力される外力)Ｌ１をＬ０と共に示す図である。また、図２(c)は、分離した内力(学習部３１から表示部３２に出力される内力)Ｌ２をＬ０と共に示す図であり、図２(d)は、分離したノイズ(学習部３１からから表示部３２に出力されるノイズ)Ｌ３をＬ０と共に示す図である。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
図２(a)〜図２(d)に示されるように、図１に示すロボットシステム１００の機械学習装置３により、図２(a)に示すような合力Ｌ０は、図２(b)に示すような外力Ｌ１，図２(c)に示すような内力Ｌ２および図２(d)に示すようなノイズＬ３に分離することが可能なのが分かる。
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2018065221.tif 000020