(57)【要約】【課題】人に対して適切な補助を行うロボットの制御方法を設定することができる機械学習装置の提供を図る。【解決手段】人とロボット１が協働して作業を行うロボットの機械学習装置５であって、前記人と前記ロボット１が協働して作業を行う期間中に、前記ロボット１の状態を示す状態変数を観測する状態観測部５１と、前記人の負担度および作業効率のうち少なくとも一方に関する判定データを取得する判定データ取得部５２と、前記状態変数および前記判定データに基づいて、前記ロボット１の行動を設定するための訓練データセットを学習する学習部５４と、を備える。【選択図】図２
2017030137.tif 000002
【特許請求の範囲】
【請求項１】
人とロボットが協働して作業を行うロボットの機械学習装置であって、
前記人と前記ロボットが協働して作業を行う期間中に、前記ロボットの状態を示す状態変数を観測する状態観測部と、
前記人の負担度および作業効率のうち少なくとも一方に関する判定データを取得する判定データ取得部と、
前記状態変数および前記判定データに基づいて、前記ロボットの行動を設定するための訓練データセットを学習する学習部と、を備える、
ことを特徴とする機械学習装置。
【請求項２】
前記状態変数は、前記ロボットの位置、姿勢、速度、および加速度のうち少なくとも一つを含む、
ことを特徴とする請求項１に記載の機械学習装置。
【請求項３】
前記判定データは、前記ロボットが感知する負荷の大きさや方向、前記ロボットの周囲が感知する負荷の大きさや方向、前記ロボットの周囲の負担度、および前記ロボットの移動時間のうち少なくとも一つを含む、
ことを特徴とする請求項１または請求項２に記載の機械学習装置。
【請求項４】
前記訓練データセットは、前記ロボットの状態および前記ロボットの行動ごとに設定された前記ロボットの行動の価値を示す行動価値変数を含み、
前記学習部は、前記判定データおよび前記状態変数に基づいて報酬を設定する報酬計算部と、
前記報酬および前記状態変数に基づいて、前記行動価値変数を更新する関数更新部と、を含む、
ことを特徴とする請求項１乃至請求項３のいずれか一項に記載の機械学習装置。
【請求項５】
前記報酬計算部は、前記ロボットの加速度の絶対値が小さいほど大きな報酬を設定し、前記ロボットの移動時間が短いほど大きな報酬を設定する、
ことを特徴とする請求項４に記載の機械学習装置。
【請求項６】
前記訓練データセットは、前記ロボットの状態および前記ロボットの行動ごとに設定された前記ロボットの学習モデルを含み、
前記学習部は、前記判定データ、前記状態変数および入力された教師データに基づいて前記学習モデルの誤差を計算する誤差計算部と、
前記誤差および前記状態変数に基づいて、前記学習モデルを更新する学習モデル更新部と、を含む、
ことを特徴とする請求項１乃至請求項３のいずれか一項に記載の機械学習装置。
【請求項７】
さらに、
前記ロボットと協働で作業する人を判別する人判別部を備え、
前記訓練データセットは、人ごとに作成されており、
前記学習部は、判別された人の前記訓練データセットを学習する、
ことを特徴とする請求項１乃至請求項６のいずれか一項に記載の機械学習装置。
【請求項８】
前記機械学習装置は、ニューラルネットワークを備える、
ことを特徴とする請求項１乃至請求項７のいずれか一項に記載の機械学習装置。
【請求項９】
前記ロボットは、産業用ロボット、フィールドロボット、またはサービスロボットである、
ことを特徴とする請求項１乃至請求項８のいずれか一項に記載の機械学習装置。
【請求項１０】
請求項１乃至請求項９のいずれか一項に記載の機械学習装置と、
前記ロボットの行動を制御する行動制御部と、を備え、
前記機械学習装置は、前記訓練データセットに基づいて前記ロボットの行動を設定する意思決定部を含み、
前記行動制御部は、前記意思決定部からの指令に基づいて前記ロボットの行動を制御する、
ことを特徴とするロボット制御装置。
【請求項１１】
請求項１０に記載のロボット制御装置と、
人の作業を補助するロボットと、
前記ロボットに取り付けられたエンドエフェクタと、を備える、
ことを特徴とするロボットシステム。
【請求項１２】
前記ロボットは、前記人からの力に対応した信号を出力する力検出器と、
前記ロボットの位置および姿勢を検出する状態検出器と、を含み、
前記判定データ取得部は、前記力検出器の出力に基づいて前記判定データを取得し、
前記状態観測部は、前記状態検出器の出力に基づいて前記状態変数を取得する、
ことを特徴とする請求項１１に記載のロボットシステム。
【請求項１３】
前記状態検出器は、人感センサ、圧力センサ、モータのトルクセンサ、および接触センサの少なくとも一つを含む、
ことを特徴とする請求項１２に記載のロボットシステム。
【請求項１４】
複数のロボットと、
複数のロボット制御装置と、
複数の前記ロボット制御装置を互いに接続する通信線と、を備え、
複数の前記ロボット制御装置のそれぞれは、制御を行うロボットの前記訓練データセットを個別に学習し、学習した情報を通信線を介して送信することにより共有する、
ことを特徴とする請求項１２または請求項１３に記載のロボットシステム。
【請求項１５】
人とロボットが協働して作業を行うロボットの機械学習方法であって、
前記人と前記ロボットが協働して作業を行う期間中に、前記ロボットの状態を示す状態変数を観測する工程と、
前記人の負担度および作業効率のうち少なくとも一方に関する判定データを取得する工程と、
前記状態変数および前記判定データに基づいて、前記ロボットの行動を設定するための訓練データセットを学習する工程と、を含む、
ことを特徴とする機械学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人の行動パターンを学習する機械学習装置、ロボット制御装置、ロボットシステム、および機械学習方法に関する。
【背景技術】
【０００２】
従来の技術では、人の安全を確保する為に、ロボットが駆動している期間中には人がロボットの作業領域に入れないように安全対策が講じられていた。例えば、ロボットの周りには安全柵が設置されており、ロボットの駆動期間中には安全柵の内部に人が入ることが禁じられていた。近年では、人がロボットと協働して作業を行うロボットシステムが知られている。このロボットシステムでは、ロボットの周りに安全柵を設けない状態にて、ロボットおよび人が一つの作業を同時に行うことができる。
【０００３】
特開２０１５−１２３５０５号公報には、人と協働作業を行う産業用ロボットが開示されている。このロボットは、基部に支持された可動部と、可動部よりも剛性が低い材質から形成され、可動部の周囲を覆う保護部材と、可動部に設けられ、保護部材を介して入力された外力を検出する検出器とを備えることが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１２３５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般的な産業用のロボットは、予め作成された動作プログラムに従って駆動される。または、ティーチングペンダントなどにより予め教示された教示点を通るようにロボットが駆動される。すなわち、ロボットは、予め定められた軌道に沿って駆動する。
【０００６】
人がロボットと協働して作業を行うロボットシステムにおいても、予めロボットの軌道を設定しておいて、作成した軌道に沿ってロボットを駆動することができる。しかしながら、人がロボットと協働して作業を行う場合に、作業方法が一通りでない場合がある。例えば、製品を製造する工場等では、ワークを初期位置から目標位置まで搬送する場合がある。ワークを搬送するために、人とロボットが協働してワークを持ち上げて目標位置まで搬送する場合がある。ロボットは、搬送物を持ち上げて搬送することができる。この場合に、ワークを持ち上げる向きや速度等は数多くの選択肢が存在する。
【０００７】
ワークに対するロボットの制御方法に依存して、人の負担度は変化する。例えば、同一の作業を行った場合でも人の疲れ度合は変化し、人からの距離や速度によって負担度も変化する。従って、ロボットの制御方法は適切に設定することが好ましい。ところが、ロボットの制御方法は数多く存在する。また、作業の内容により人の行動パターンが異なる場合が有る。このために、作業内容に応じて最適なロボットの制御方法を設定することが難しいという問題がある。
【課題を解決するための手段】
【０００８】
本発明に係る第１実施形態によれば、人とロボットが協働して作業を行うロボットの機械学習装置であって、前記人と前記ロボットが協働して作業を行う期間中に、前記ロボットの状態を示す状態変数を観測する状態観測部と、前記人の負担度および作業効率のうち少なくとも一方に関する判定データを取得する判定データ取得部と、前記状態変数および前記判定データに基づいて、前記ロボットの行動を設定するための訓練データセットを学習する学習部と、を備える機械学習装置が提供される。
【０００９】
前記状態変数は、前記ロボットの位置、姿勢、速度、および加速度のうち少なくとも一つを含むのが好ましい。前記判定データは、前記ロボットが感知する負荷の大きさや方向、前記ロボットの周囲が感知する負荷の大きさや方向、前記ロボットの周囲の負担度、および前記ロボットの移動時間のうち少なくとも一つを含むのが好ましい。
【００１０】
前記訓練データセットは、前記ロボットの状態および前記ロボットの行動ごとに設定された前記ロボットの行動の価値を示す行動価値変数を含み、前記学習部は、前記判定データおよび前記状態変数に基づいて報酬を設定する報酬計算部と、前記報酬および前記状態変数に基づいて、前記行動価値変数を更新する関数更新部と、を含むことができる。前記報酬計算部は、前記ロボットの加速度の絶対値が小さいほど大きな報酬を設定し、前記ロボットの移動時間が短いほど大きな報酬を設定するのが好ましい。
【００１１】
前記訓練データセットは、前記ロボットの状態および前記ロボットの行動ごとに設定された前記ロボットの学習モデルを含み、前記学習部は、前記判定データ、前記状態変数および入力された教師データに基づいて前記学習モデルの誤差を計算する誤差計算部と、前記誤差および前記状態変数に基づいて、前記学習モデルを更新する学習モデル更新部と、を含むことができる。前記機械学習装置は、さらに、前記ロボットと協働で作業する人を判別する人判別部を備え、前記訓練データセットは、人ごとに作成されており、前記学習部は、判別された人の前記訓練データセットを学習し、あるいは、前記機械学習装置は、ニューラルネットワークを備えるのが好ましい。前記ロボットは、産業用ロボット、フィールドロボット、またはサービスロボットであるのが好ましい。
【００１２】
本発明に係る第２実施形態によれば、上述した機械学習装置と、前記ロボットの行動を制御する行動制御部と、を備え、前記機械学習装置は、前記訓練データセットに基づいて前記ロボットの行動を設定する意思決定部を含み、前記行動制御部は、前記意思決定部からの指令に基づいて前記ロボットの行動を制御するロボット制御装置が提供される。
【００１３】
本発明に係る第３実施形態によれば、上述したロボット制御装置と、人の作業を補助するロボットと、前記ロボットに取り付けられたエンドエフェクタと、を備えるロボットシステムが提供される。前記ロボットは、前記人からの力に対応した信号を出力する力検出器と、ロボットの位置および姿勢を検出する状態検出器と、を含み、前記判定データ取得部は、前記力検出器の出力に基づいて前記判定データを取得し、前記状態観測部は、前記状態検出器の出力に基づいて前記状態変数を取得するのが好ましい。前記状態検出器は、カメラ、人感センサ、圧力センサ、モータのトルクセンサ、および接触センサの少なくとも一つを含むことができる。複数のロボットと、複数のロボット制御装置と、複数の前記ロボット制御装置を互いに接続する通信線と、を備え、複数の前記ロボット制御装置のそれぞれは、制御を行うロボットの前記訓練データセットを個別に学習し、学習した情報を通信線を介して送信することにより共有するように構成してもよい。
【００１４】
本発明に係る第４実施形態によれば、人とロボットが協働して作業を行うロボットの機械学習方法であって、前記人と前記ロボットが協働して作業を行う期間中に、前記ロボットの状態を示す状態変数を観測する工程と、前記人の負担度および作業効率のうち少なくとも一方に関する判定データを取得する工程と、前記状態変数および前記判定データに基づいて、前記ロボットの行動を設定するための訓練データセットを学習する工程と、を含む機械学習方法が提供される。
【発明の効果】
【００１５】
本発明によれば、人の行動パターンを学習し、人に対して適切な補助を行うロボットの制御方法を設定することができる機械学習装置、ロボット制御装置、ロボットシステム、および機械学習方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施の形態におけるロボットと人が協働作業を行う様子を概略的に示す図である。
【図２】図２は、実施の形態における一例のロボットシステムのブロック図である。
【図３】図３は、ニューロンのモデルを模式的に示す図である。
【図４】図４は、図３に示すニューロンを組み合わせて構成した三層のニューラルネットワークを模式的に示す図である。
【図５】図５は、ワークを搬送する経路を説明する概略図である。
【図６】図６は、ロボット先端点の移動点を説明する図である。
【図７】図７は、ロボット先端点の移動点を説明する拡大図である。
【図８】図８は、実施の形態における他の例のロボットシステムのブロック図である。
【図９】図９は、図２に示すロボットシステムの変形例のブロック図である。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照して、実施の形態における機械学習装置、ロボット制御装置、ロボットシステム、および機械学習方法について説明する。ロボットシステムは、人とロボットが協働して予め定められた作業を行う。本実施の形態では、人とロボットが協働してワークを搬送する例を示して説明する。
【００１８】
図１に、本実施の形態におけるロボットシステムの概略図を示す。図２に、本実施の形態における一例のロボットシステムのブロック図を示す。図１および図２を参照して、ロボットシステム３は、ワークＷの搬送を補助するロボット１と、ロボット１を制御するロボット制御装置２とを備える。本実施の形態のロボット１は、アーム１２と複数の関節部１３とを含む多関節ロボットである。ロボットシステム３は、ロボット１に取り付けられたエンドエフェクタとしてのハンド６を備える。ハンド６は、ワークＷを把持したり解放したりする機能を有する。エンドエフェクタはハンドに限られず、作業の内容に応じたエンドエフェクタを用いることができる。
【００１９】
ロボット１は、それぞれの関節部１３を駆動するアーム駆動装置４４を含む。アーム駆動装置４４は、関節部１３の内部に配置されているアーム駆動モータ１４を含む。アーム駆動モータ１４が駆動することにより、アーム１２を関節部１３にて所望の角度に曲げることができる。また、本実施の形態のロボット１は、アーム１２の全体が鉛直方向に延びる回転軸の周りを回転可能に形成されている。アーム駆動モータ１４には、アーム１２を回転させるモータが含まれる。
【００２０】
ロボット１は、ハンド６を閉じたり開いたりするハンド駆動装置４５を備える。本実施の形態のハンド駆動装置４５は、ハンド６を駆動するハンド駆動シリンダ１８と、ハンド駆動シリンダ１８に圧縮空気を供給するための空気ポンプおよび電磁弁を含む。
【００２１】
ロボット１は、アーム１２を支持するベース部１１を備える。本実施の形態におけるロボット１は、ベース部１１に作用する力を検出する力検出器１９を備える。ベース部１１に作用する力は、ロボット１に作用する力に相当する。力検出器１９は、人からの力に対応した信号を出力する。本実施の形態の力検出器１９は、床面２０に固定されている。
【００２２】
力検出器１９としては、ロボット１に作用する力の大きさおよび力の方向を検出可能な任意の検出器を採用することができる。本実施の形態の力検出器１９は、ベース部１１に連結されている金属の基材と基材の表面に取り付けられた歪みセンサとを含む。そして、力検出器１９は、歪みセンサによって検出した変形量に基づいて、ロボット１に作用する力を算出することができる。
【００２３】
本実施の形態におけるロボット１は、ロボットの位置および姿勢を検出する状態検出器を含む。状態検出器は、ロボット先端点の位置およびロボット１の姿勢を検出する。本実施の形態における状態検出器は、それぞれのアーム駆動モータ１４に取り付けられた回転角検出器１５を含む。回転角検出器１５は、アーム駆動モータ１４が駆動するときの回転角を検出する。それぞれのアーム駆動モータ１４の回転角に基づいて、ロボット１の位置、姿勢、速度、および加速度を検出することができる。
【００２４】
なお、状態検出器としては、回転角検出器１５だけでなく、例えば、カメラ、人感センサ、圧力センサ、モータのトルクセンサ、および接触センサなどを使用することができる。すなわち、状態観測部５１が観測する状態変数としては、回転角検出器１５の出力だけでなく、カメラ、人感センサ、圧力センサ、モータのトルクセンサ、および接触センサなどから得られたデータ(状態量)であってもよい。これらのカメラ、人感センサ、圧力センサ、モータのトルクセンサ、および接触センサなどは、例えば、ロボット１(ハンド６)の所定個所に直接設け、あるいは、ロボット１の周辺の適切な個所に対して取り付けることができるのはいうまでもない。
【００２５】
ロボット１は、ロボット制御装置２の動作指令に基づいて駆動する。ロボット制御装置２は、バスを介して互いに接続されたＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、およびＲＯＭ（Read Only Memory）等を有する演算処理装置を含む。ロボット制御装置２は、様々な情報を記憶する記憶部５９を含む。ロボット制御装置２は、アーム駆動装置４４およびハンド駆動装置４５を制御する行動制御部４３を含む。行動制御部４３からの動作指令により、アーム駆動装置４４およびハンド駆動装置４５が駆動する。
【００２６】
本実施の形態のロボット制御装置２には、ロボット１の外側からロボット１に加えられる外力を推定する外力算出部４６を含む。力検出器１９にて検出される力には、ロボット１の質量およびロボットの動作により生じる内力と、ロボット１の外側からロボット１に加えられる外力とが含まれる。
【００２７】
外力算出部４６は、ロボット１の外側から力が加えられていない状態で、ロボット１が動作した時に自重によりロボット１に作用する内力を算出する。内力は、回転角検出器１５の出力により検出したロボットの位置、姿勢に加えて、ロボットの質量等に基づいて算出することができる。ロボット１の質量等は、予め記憶部５９に記憶させておくことができる。外力算出部４６は、力検出器１９により検出された力から内力を減算することにより外力を算出する。外力は、人８５がワークに加えた力に相当する。
【００２８】
ロボット制御装置２は、入力部４１および表示部４２を含む。表示部４２は、ロボット１の運転に関する情報を表示可能に形成されている。表示部４２としては、液晶表示装置を例示することができる。入力部４１は、人がロボット制御装置２に所望の指令を入力可能に形成されている。入力部４１としては、キーボード等を例示することができる。
【００２９】
図５は、本実施の形態におけるロボットシステムにおいて、ワークを搬送する経路を説明する概略図である。図１および図５を参照して、本実施の形態においては、床面２０に配置されているワークＷを作業台８１の上面まで搬送する作業を行う。ワークＷは、例えば、重量が大きいワークである。このようなワークを人８５が搬送しようとすると、非常に疲れたり、搬送することが困難だったりする。本実施の形態におけるワークＷは、自動車のタイヤである。
【００３０】
ワークＷを搬送する場合には、矢印９１〜９３に示すように、ワークＷを搬送する多くの経路が存在する。また、人８５は大きな力を要する区間、または、小さな力で足りる区間等が存在する。また、ワークＷの位置が同じでもロボット１の様々な姿勢が存在する。
【００３１】
図２を参照して、本実施の形態におけるロボット制御装置２は、人の行動パターンを学習し、人に対して適切な補助を行うようにロボットの制御方法を学習する機械学習装置５を備える。本実施の形態の機械学習装置５は、ロボット１が駆動している期間中の予め定められた移動点において、最適と判断されるロボット１の行動を選択する。すなわち、機械学習装置５は、最適と判断される駆動パターンでロボット１を駆動する指令を送出する。
【００３２】
機械学習装置５は、人８５とロボット１が協働して作業を行う期間中に、ロボット１の状態を示す状態変数を取得する状態観測部５１を備える。本実施の形態における状態変数は、ロボット１の位置、姿勢、速度、および加速度である。例えば、ロボット先端点における位置、速度、加速度を状態変数として用いることができる。ロボット１の位置、姿勢、速度、および加速度は、回転角検出器１５の出力に基づいて検出することができる。回転角検出器１５の出力信号は、状態観測部５１に入力される。
【００３３】
状態変数としては、この形態に限られず、ロボットの状態を示す任意の変数を用いることができる。例えば、状態観測部５１は、ロボット１の位置、姿勢、速度、加速度のうち少なくとも一つの変数を取得することができる。
【００３４】
機械学習装置５は、人８５の負担に関する判定データを取得する判定データ取得部５２を備える。本実施の形態における判定データは、ワークＷを搬送するときに人８５が加える力の大きさ、および人８５が加える力の方向を含む。また、本実施の形態の判定データは、ワークＷを移動するときの移動時間を含む。
【００３５】
本実施の形態の判定データ取得部５２は、力検出器１９の出力に基づいて判定データを取得する。外力算出部４６にて算出した外力の大きさは、人８５の力の大きさに相当する。外力算出部４６にて算出した外力の方向は、人８５がワークＷに加えた力の方向に相当する。判定データ取得部５２は、外力算出部４６から人の力の大きさおよび人の力の方向を受信する。
【００３６】
ロボット制御装置２は、作業時間を測定する移動時間測定部４７を備える。本実施の形態の移動時間測定部４７は、後述する移動点同士の間を移動したときの移動時間を算出する。本実施の形態の移動時間測定部４７は、行動制御部４３の指令に基づいて移動時間を算出している。移動時間測定部４７にて測定した移動時間は、判定データ取得部５２に送出される。
【００３７】
判定データとしては、上記の形態に限られず、人の負担度および作業効率のうち少なくとも一方に関する任意のデータを採用することができる。例えば、判定データとしては、ロボットが感知する負荷の大きさやその方向、周囲の人や物が感知する負荷の大きさやその方向、周囲の人や物の負担度、および移動時間などのほか、カメラ、人感センサ、圧力センサなどからの情報も利用することが可能である。なお、本明細書において、人とは、実際にロボットと協働して処理(作業)を行う作業者だけでなく、例えば、ロボットを直接操作しないが、ロボットの周辺で処理を観察する人、あるいは、たまたまロボットの近くを通りすぎる人といった様々な人を含む。
【００３８】
本実施の形態における機械学習装置５は、状態変数および判定データに基づいて、ロボットの行動を設定するための訓練データセットを学習する学習部５４を備える。学習部５４は、状態観測部５１から状態変数を取得する。また、学習部５４は、判定データ取得部５２から判定データを取得する。訓練データセットは、状態変数および判定データに基づいて定められた行動の価値情報の集合である。機械学習装置５は、訓練データセットの状態および行動に関する値を比べることにより、ロボットの駆動方法を設定することができる。なお、本実施の形態の適用は、産業用ロボットに限定されるものではなく、例えば、フィールドロボットやサービスロボットに対しても適用することが可能なのはいうまでもない。
【００３９】
ここで、機械学習装置について、説明する。機械学習装置は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習(機械学習)を行う機能を有する。機械学習の手法は様々であるが、大別すれば、例えば、「教師あり学習」、「教師なし学習」、および「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習(ディープラーニング：Deep Learning)」と呼ばれる手法がある。
【００４０】
なお、図２に示す機械学習装置５は、「強化学習」を適用したものであり、また、図９を参照して後述する機械学習装置７は、「教師あり学習」を適用したものである。これらの機械学習(機械学習装置５，７)は、汎用の計算機若しくはプロセッサを用いることもできるが、例えば、ＧＰＧＰＵ(General-Purpose computing on Graphics Processing Units)や大規模ＰＣクラスター等を適用すると、より高速処理が可能になる。
【００４１】
まず、教師あり学習とは、教師データ、すなわち、ある入力と結果(ラベル)のデータの組を大量に機械学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル(学習モデル)、すなわち、その関係性を帰納的に獲得するものである。例えば、後述のニューラルネットワークなどのアルゴリズムを用いて実現することが可能である。
【００４２】
また、教師なし学習とは、入力データのみを大量に学習装置に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮・分類・整形などを行う装置で学習する手法である。例えば、それらのデータセットにある特徴を、似た者どうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適化するような出力の割り当てを行うことにより、出力の予測を実現することできる。
【００４３】
なお、教師なし学習と教師あり学習との中間的な問題設定として、半教師あり学習と呼ばれるものもあり、これは、例えば、一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合が対応する。本実施形態においては、実際にロボットを動かさなくても取得することができるデータ(画像データやシミュレーションのデータ等)を教師なし学習で利用することにより、学習を効率的に行うことが可能になる。
【００４４】
次に、強化学習について、説明する。まず、強化学習の問題設定として、次のように考える。
・ロボットは、環境の状態を観測し、行動を決定する。
・環境は、何らかの規則に従って変化し、さらに、自分の行動が、環境に変化を与えることもある。
・行動するたびに、報酬信号が帰ってくる。
・最大化したいのは、将来にわたっての(割引)報酬の合計である。
・行動が引き起こす結果を全く知らない、または、不完全にしか知らない状態から学習はスタートする。すなわち、ロボットは、実際に行動して初めて、その結果をデータとして得ることができる。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように、事前学習(前述の教師あり学習や、逆強化学習といった手法)した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
【００４５】
ここで、強化学習とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち、将来的に得られる報酬を最大にするための学習する方法を学ぶものである。以下に、例として、Ｑ学習の場合で説明を続けるが、Ｑ学習に限定されるものではない。
【００４６】
Ｑ学習は、或る環境状態ｓの下で、行動ａを選択する価値Ｑ(ｓ，ａ)を学習する方法である。つまり、或る状態ｓのとき、価値Ｑ(ｓ，ａ)の最も高い行動ａを最適な行動として選択すればよい。しかし、最初は、状態ｓと行動ａとの組合せについて、価値Ｑ(ｓ，ａ)の正しい値は全く分かっていない。そこで、エージェント(行動主体)は、或る状態ｓの下で様々な行動ａを選択し、その時の行動ａに対して、報酬が与えられる。それにより、エージェントは、より良い行動の選択、すなわち、正しい価値Ｑ(ｓ，ａ)を学習していく。
【００４７】
さらに、行動の結果、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ(ｓ，ａ)＝Ｅ［Σ(γt)ｒt］となるようにすることを目指す。ここでＥ［］は期待値を表し、ｔは時刻、γは後述する割引率と呼ばれるパラメータ、ｒtは時刻ｔにおける報酬、Σは時刻ｔによる合計である。この式における期待値は、最適な行動に従って状態変化したときについてとるものとし、それは、分かっていないので、探索しながら学習することになる。このような価値Ｑ(ｓ，ａ)の更新式は、例えば、次の式(１)により表すことができる。
【００４８】
【数１】
2017030137.tif 000003
上記の式(１)において、ｓtは、時刻ｔにおける環境の状態を表し、ａtは、時刻ｔにおける行動を表す。行動ａtにより、状態はｓt+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、ｍａｘの付いた項は、状態ｓt+1の下で、その時に分かっている最もＱ値の高い行動ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータで、割引率と呼ばれる。また、αは、学習係数で、０＜α≦１の範囲とする。
【００４９】
上述した式(１)は、試行ａtの結果、帰ってきた報酬ｒt+1を元に、状態ｓtにおける行動ａtの評価値Ｑ(ｓt，ａt)を更新する方法を表している。すなわち、状態ｓにおける行動ａの評価値Ｑ(ｓt，ａt)よりも、報酬ｒt+1と行動ａによる次の状態における最良の行動ｍａｘ ａの評価値Ｑ(ｓt+1，ｍａｘ ａt+1)の合計の方が大きければ、Ｑ(ｓt，ａt)を大きくし、反対に小さければ、Ｑ(ｓt，ａt)を小さくすることを示している。つまり、或る状態における或る行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近付けるようにしている。
【００５０】
ここで、Ｑ(ｓ，ａ)の計算機上での表現方法は、すべての状態行動ペア(ｓ，ａ)に対して、その値をテーブルとして保持しておく方法と、Ｑ(ｓ，ａ)を近似するような関数を用意する方法がある。後者の方法では、前述の式(１)は、確率勾配降下法などの手法で近似関数のパラメータを調整していくことにより、実現することができる。なお、近似関数としては、後述のニューラルネットワークを用いることができる。
【００５１】
また、教師あり学習、教師なし学習の学習モデル、あるいは、強化学習での価値関数の近似アルゴリズムとして、ニューラルネットワークを用いることができる。図３は、ニューロンのモデルを模式的に示す図であり、図４は、図３に示すニューロンを組み合わせて構成した三層のニューラルネットワークを模式的に示す図である。すなわち、ニューラルネットワークは、例えば、図３に示すようなニューロンのモデルを模した演算装置およびメモリ等で構成される。
【００５２】
図３に示されるように、ニューロンは、複数の入力ｘ(図３では、一例として入力ｘ1〜入力ｘ3)に対する出力(結果)ｙを出力するものである。各入力ｘ(ｘ1，ｘ2，ｘ3)には、この入力ｘに対応する重みｗ(ｗ1，ｗ2，ｗ3)が掛けられる。これにより、ニューロンは、次の式(２)により表現される結果ｙを出力する。なお、入力ｘ、結果ｙ、および重みｗは、すべてベクトルである。また、下記の式(２)において、θは、バイアスであり、ｆkは、活性化関数である。
【数２】
2017030137.tif 000004
【００５３】
図４を参照して、図３に示すニューロンを組み合わせて構成した三層のニューラルネットワークを説明する。図４に示されるように、ニューラルネットワークの左側から複数の入力ｘ(ここでは、一例として、入力ｘ1〜入力ｘ3)が入力され、右側から結果ｙ(ここでは、一例として、結果ｙ1〜入力ｙ3)が出力される。具体的に、入力ｘ1，ｘ2， ｘ3は、３つのニューロンＮ11〜Ｎ13の各々に対して、対応する重みが掛けられて入力される。これらの入力に掛けられる重みは、まとめてＷ１と表記されている。
【００５４】
ニューロンＮ11〜Ｎ13は、それぞれ、ｚ11〜ｚ13を出力する。図４において、これらｚ11〜ｚ13は、まとめて特徴ベクトルＺ１と表記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルＺ１は、重みＷ１と重みＷ２との間の特徴ベクトルである。ｚ11〜ｚ13は、２つのニューロンＮ21およびＮ22の各々に対して、対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ２と表記されている。
【００５５】
ニューロンＮ21，Ｎ22は、それぞれｚ21，ｚ22を出力する。図４において、これらｚ21，ｚ22は、まとめて特徴ベクトルＺ２と表記されている。この特徴ベクトルＺ２は、重みＷ２と重みＷ３との間の特徴ベクトルである。ｚ21，ｚ22は、３つのニューロンＮ31〜Ｎ33の各々に対して、対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ３と表記されている。
【００５６】
最後に、ニューロンＮ31〜Ｎ33は、それぞれ、結果ｙ１〜結果ｙ３を出力する。ニューラルネットワークの動作には、学習モードと価値予測モードとがある。例えば、学習モードにおいて、学習データセットを用いて重みＷを学習し、そのパラメータを用いて予測モードにおいて、ロボットの行動判断を行う。なお、便宜上、予測と書いたが、検出・分類・推論など多様なタスクが可能なのはいうまでもない。
【００５７】
ここで、予測モードで実際にロボットを動かして得られたデータを即時学習し、次の行動に反映させる(オンライン学習)ことも、予め収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う(バッチ学習)こともできる。あるいは、その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００５８】
また、重みＷ１〜Ｗ３は、誤差逆伝搬法(誤差逆転伝播法：バックプロパゲーション：Backpropagation)により学習可能なものである。なお、誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ(教師)との差分を小さくするように、それぞれの重みを調整(学習)する手法である。
【００５９】
このようなニューラルネットワークは、三層以上に、さらに層を増やすことも可能である(深層学習と称される)。また、入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することも可能である。そこで、一実施形態の機械学習装置５は、上述のＱ学習(強化学習)を実施すべく、図２に示されるように、例えば、状態観測部５１、学習部５４、および意思決定部５８を備えている。ただし、本発明に適用される機械学習方法は、Ｑ学習に限定されないのは前述した通りである。すなわち、機械学習装置で用いることができる手法である「教師あり学習」、「教師なし学習」、「半教師あり学習」、および「強化学習(Ｑ学習以外の強化学習)」等の様々な手法が適用可能である。
【００６０】
図６は、本実施の形態における移動点を説明する概略図を示す。図６では、説明を簡略化するために２次元の平面上をロボット先端点が移動する例を示している。ワークＷは、初期位置８８から目標位置８９まで搬送される。ロボット先端点が移動する可能性のある領域には、格子状に移動点Ｐが設定されている。移動点Ｐは、ロボット先端点が通過する点になる。ロボット先端点は、初期位置８８に対応する移動点Ｐ00から目標位置８９に対応する移動点Ｐnmまで移動する。
【００６１】
図７は、ロボット先端点の移動を説明する概略図を示す。本実施の形態では、それぞれの移動点Ｐにおいて、ロボット先端点の移動方向が予め定められている。矢印９４〜９７に示す方向は、ロボット先端点の移動方向になる。ロボット先端点が一つの移動点Ｐに位置していたときに、次の行動では隣接する他の移動点Ｐにロボット先端点が移動する。図７に示す例では、ロボット先端点が移動点Ｐ11に配置されていたときに、ロボット先端点は、移動点Ｐ12，Ｐ21，Ｐ10，Ｐ01のいずれかの点に移動する。
【００６２】
本実施の形態においては、様々な機械学習方法うち、上述したＱ学習を採用した強化学習を行う。また、本実施の形態の訓練データセットは、複数の行動価値変数Ｑを含む。なお、本実施形態は、「教師あり学習」、「教師なし学習」、「半教師あり学習」および「強化学習(Ｑ学習を含む)」等の様々な手法が適用可能なのは、前述した通りである。
【００６３】
本実施の形態では、状態ｓtは、ロボット１の状態変数に対応する。すなわち、状態ｓtには、ロボット１の位置、姿勢、速度、および加速度等が含まれる。行動ａtは、ロボット先端点の移動に関して、例えば、矢印９４〜９７に示す方向の移動が相当する。行動ａtには、例えば、矢印９４〜９７に示す方向の移動に関するロボット１の位置、姿勢、速度、および加速度等が含まれる。
【００６４】
本実施の形態の学習部５４は、ワークＷの搬送を行う毎に行動価値変数Ｑを更新する。学習部５４は、報酬を設定する報酬計算部５５と、行動価値変数Ｑを更新する関数更新部５６とを含む。報酬計算部５５は、判定データ取得部５２が取得した判定データに基づいて報酬ｒtを設定する。また、報酬計算部５５は、状態観測部５１にて取得した状態変数に基づいて報酬ｒtを設定しても構わない。
【００６５】
報酬計算部５５は、人の負担(負担度)が小さく、作業効率が良いほど大きな報酬ｒtを設定することができる。例えば、ワークＷが大きく減速した場合や大きく加速した場合には、人への負担が大きくなり、作業効率が悪くなる。すなわち、ロボット１の加速度の絶対値（加速度の大きさ）が小さいほど人の負担が小さく、作業効率が良いと考えることができる。または、加速度の絶対値が大きいと、ロボット１が急激に動作しているために、好ましくない状態と判別することができる。このために、報酬計算部５５は、ロボット１の加速度の絶対値が小さいほど大きな報酬を設定することができる。また、人が加える力の大きさは、小さいほど好ましい。そこで、報酬計算部５５は、人が加える力の大きさ（ロボットに加わる外力の大きさ）が小さいほど大きな報酬を設定することができる。
【００６６】
更に、ワークＷを初期位置８８から目標位置８９まで搬送する作業時間が短い方が人の負担は小さく、作業効率は良い。そこで、報酬計算部５５は、移動点Ｐ同士の移動時間が短いほど大きな報酬を設定する。また、図５の形態では、ワークＷが下向きに移動すると搬送経路が長くなる。このために、ロボット先端点の位置が下側に移動したり、人の加える力の方向が下側だったりした場合に、報酬計算部５５は小さな報酬を設定する。ここで、人の負担度としては、人に対する負担の度合いを意味するだけでなく、様々な要因に基づく負荷、例えば、人に対する予期しない接触や押圧等も含み、さらに、人だけでなく、例えば、周囲の物に対する負担度も含まれ得る。
【００６７】
その他に、報酬計算部５５は、任意の人の行動に基づいて、報酬を設定することができる。例えば、ワークＷが作業台８１に衝突した場合に、報酬計算部５５は、小さな正の報酬または負の報酬を設定することができる。
【００６８】
報酬の設定においては、例えば、人が力の大きさ等の変数に対する報酬の値を予め定めておいて、記憶部５９に記憶させておくことができる。報酬計算部５５は、記憶部５９に記憶された報酬を読み込んで設定することができる。または、人が報酬を算出するための計算式を予め記憶部５９に記憶させておいて、報酬計算部５５が計算式に基づいて報酬を算出しても構わない。
【００６９】
次に、関数更新部５６は、上記の式（１）または式（２）を用いて、行動価値変数Ｑを更新する。すなわち、実際のロボットの行動および人が加えた力に基づいて、予め定められた移動点におけるロボットの行動の価値を更新する。
【００７０】
なお、それぞれの移動点Ｐにおける行動価値変数Ｑの初期値は、人が予め設定しておくことができる。または、人がランダムな初期値を予め設定しておいても構わない。
【００７１】
機械学習装置５は、訓練データセットに基づいてロボット１の行動を設定する意思決定部５８を含む。本実施の形態の意思決定部５８は、学習部５４にて更新された行動価値変数Ｑに基づいてロボット１の行動を設定する。例えば、意思決定部５８は、行動価値変数Ｑが最も大きな行動を選択することができる。本実施の形態の強化学習においては、ε−greedy法を用いている。ε−greedy法では、意思決定部５８は、予め定められた確率εにてランダムな行動を設定する。また、意思決定部５８は、確率（１−ε）にて行動価値変数Ｑが最大になる行動を設定する。すなわち、意思決定部５８は、確率εの割合で最適と考えられる行動とは異なる行動を選択する。この方法により、最適と判定されていたロボットの行動よりも優れたロボットの行動を発見できる場合がある。
【００７２】
意思決定部５８にて設定されたロボット１の行動の指令は、行動制御部４３に送出される。行動制御部４３は、意思決定部５８からの指令に基づいてロボット１およびハンド６を制御する。
【００７３】
このように、本実施の形態の機械学習方法は、人とロボットが協働して作業を行う期間中にロボットの状態を示す状態変数を取得する工程と、人の負担度および作業効率のうち少なくとも一方に関する判定データを取得する工程とを含む。機械学習方法は、状態変数および判定データに基づいて、ロボットの行動を定めるための訓練データセットを学習する工程を含む。
【００７４】
本実施の形態の機械学習装置および機械学習方法は、ワークＷの搬送を繰り返すことにより、人の行動パターンに基づいて、ロボットの制御方法を学習することができる。そして、人の負担が小さく、作業効率が良く、更に作業時間が短い最適なロボットの制御方法を設定することができる。
【００７５】
なお、機械学習装置および機械学習方法にて行う機械学習としては、上記の形態に限られず、任意の機械学習を行うことができる。例えば、機械学習装置は、深層学習（ディープラーニング）によりニューラルネットワークを用いて多層化して最適な行動を設定しても構わない。複数の行動および複数の状態を関数にする行動価値変数の表を用いる代わりに、所定の状態を与えたときのそれぞれの行動に対する行動価値変数を出力するニューラルネットワークを用いることができる。
【００７６】
上記の実施の形態では、移動点は格子状に配置されているが、この形態に限られず、任意の形態で移動点を設定することができる。また、移動点同士の間隔を小さくすることにより、ロボットの動作を滑らかにすることができる。上記の実施の形態では、平面上に移動点が設定されているためにロボットの移動は平面状になっているが、移動点を３次元の空間に配置することにより、ロボットを３次元にて移動させることができる。
【００７７】
ところで、図５を参照して、本実施の形態における機械学習装置５は、人を判別する人判別部５７を含む。人ごとの訓練データセットが予め作成されている。記憶部５９は、人ごとの訓練データセットを記憶している。本実施の形態においては、人８５が入力部４１に人ごとの番号を入力する。人判別部５７は、入力された番号に基づいて人に対応をする訓練データセットを記憶部５９から読み込む。そして、学習部５４は、人に対応した訓練データセットを学習する。この制御を行うことにより、人の行動パターンに基づいたロボットの制御方法を、人ごとに設定することができる。すなわち、人ごとに最適なロボットの制御を実施することができる。例えば、人には、身長の高い人、身長の低い人、足腰が強い人、腕の力が強い人などの様々な人が存在する。それぞれの人に合わせて、最適なロボットの制御を実現することができる。
【００７８】
なお、人を判別する制御としては、上記の形態に限られず、任意の方法を採用することができる。例えば、機械学習装置に番号読取り装置を配置することができる。人が個別の番号が記載された札を持参する。そして、番号読取り装置は、番号を読取って結果を人判別部に送出する。人判別部は、読み取った番号に基づいて人を判別することができる。
【００７９】
図８は、本実施の形態における他のロボットシステムのブロック図を示す。他のロボットシステム(製造システム)４においては、分散学習を行う。図８に示されるように、他のロボットシステム４は、複数のロボットと複数のロボット制御装置とを備える。ロボットシステム４は、第１のロボット１ａと第２のロボット１ｂとを備える。ロボットシステム４は、第１のロボット１ａに取り付けられた第１のハンド６ａと、第２のロボット１ｂに取り付けられた第２のハンド６ｂとを備える。このように、他のロボットシステム４は、２つのロボット１ａ，１ｂと２つのハンド６ａ，６ｂを備える。
【００８０】
ロボットシステム４は、第１のロボット１ａを制御する第１のロボット制御装置２ａと、第２のロボット１ｂを制御する第２のロボット制御装置２ｂとを備える。第１のロボット制御装置２ａの構成および第２のロボット制御装置２ｂの構成は、前述のロボット制御装置２の構成と同様である。複数のロボット制御装置２ａ，２ｂは、通信線２１を含む通信装置により互いに接続されている。通信装置は、例えばイーサネット（登録商標）にて通信を実施することができる。ロボット制御装置２ａ，２ｂは、通信により互いの情報を交換できるように形成されている。
【００８１】
ロボットシステム４においては、複数のロボット１ａ，１ｂおよび人が協働して作業を行う。図８に示す例では、２台のロボットで人の作業を補助する。第１のロボット制御装置２ａは、第１のロボット１ａの制御について個別に学習する。また、第２のロボット制御装置２ｂは、第２のロボット１ｂの制御について個別に学習する。そして、それぞれのロボット制御装置にて学習した情報は、通信線２１を介して互いに送信する。
【００８２】
このように、それぞれのロボット制御装置２ａ，２ｂにて学習した情報を第１のロボット制御装置２ａおよび第２のロボット制御装置２ｂで共有することができる。この制御を実施することにより、学習のための行動パターン等を共有して、学習の回数を増やすことができる。この結果、学習の精度を高めることができる。
【００８３】
上記の実施の形態においては、ワークＷを搬送する協働作業について例示しているが、協働作業としては、この形態に限られず、任意の協働作業を採用することができる。例えば、ロボットと人が協働して、１つの部品を所定の装置に組み付ける作業などを例示することができる。
【００８４】
図９は、図２に示すロボットシステムの変形例のブロック図であり、教師あり学習を適用したロボットシステム３’を示すものである。図９に示されるように、ロボットシステム３’は、例えば、ロボット１、ハンド６、およびロボット制御装置２’を含む。ロボット制御装置２’は、機械学習装置７、入力部４１、表示部４２、行動制御部４３、外力算出部４６、および移動時間測定部４７を含む。機械学習装置７は、態観測部７１、判定データ取得部７２、学習部７４、人判別部７７、意思決定部７８、および記憶部７９を含む。学習部７４は、報酬計算部５５および関数更新部５６を含む。
【００８５】
すなわち、図９と、前述した図２の比較から明らかなように、図９に示す変形例のロボットシステム３’の学習部７４において、図２の学習部５４における報酬計算部５５および関数更新部５６は、誤差計算部７５および学習モデル更新部７６に置き換わっている。なお、他の構成は、実質的に、図２に示す機械学習装置５におけるものと同様であり、その説明は省略する。誤差計算部７５には、外部から教師データが入力され、例えば、それまでの学習により得られたものとの誤差が小さくなるような計算が行われ、学習モデル更新部７６により、学習モデル(誤差モデル)の更新が行われる。すなわち、誤差計算部７５は、状態観測部７１の出力および教師データ等を受け取って、例えば、結果(ラベル)付きデータと学習部７４に実装されている学習モデルの出力との誤差を計算する。ここで、教師データは、例えば、ロボット制御装置２’に入力するプログラム(ロボットシステム３’が処理する動作)が同一の場合、ロボットシステム３’に処理を行わせる所定日の前日までに得られた結果(ラベル)付きデータを保持し、その所定日に、結果(ラベル)付きデータを誤差計算部７５に提供することができる。
【００８６】
あるいは、ロボットシステム３’の外部で行われたシミュレーションなどにより得られたデータ、または、他のロボットシステムの結果(ラベル)付きデータを、メモリカードや通信回線により、そのロボットシステム３’の誤差計算部７５に教師データとして提供することも可能である。さらに、結果(ラベル)付きデータを、例えば、学習部７４に内蔵したフラッシュメモリ(Flash Memory)などの不揮発性メモリに保持し、その不揮発性メモリに保持された結果(ラベル)付きデータを、そのまま学習部７４で使用することもできる。
【００８７】
以上において、ロボットシステム３’(３)を複数備えた製造システム(製造設備)を考えた場合、例えば、機械学習装置７(５)は、ロボットシステム３’(３)毎にそれぞれ設けられ、複数のロボットシステム３’(３)に設けられた複数の機械学習装置７(５)は、例えば、通信媒体を介して相互にデータを共有または交換することが可能である。また、機械学習装置７(５)は、例えば、クラウドサーバ上に存在させることも可能である。
【００８８】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００８９】
１，１ａ，１ｂ    ロボット
２，２’，２ａ，２ｂ    ロボット制御装置
３，３’，４    ロボットシステム
５，７    機械学習装置
１５    回転角検出器
１９    力検出器
４３    行動制御部
４６    外力算出部
４７    移動時間測定部
５１，７１    状態観測部
５２，７２    判定データ取得部
５４，７４    学習部
５５    報酬計算部
５６    関数更新部
５７，７７    人判別部
５８，７８    意思決定部
５９，７９    記憶部
７５    誤差計算部
７６    学習モデル更新部
８５    人
Ｗ    ワーク
【図１】
2017030137.tif 000005
【図２】
2017030137.tif 000006
【図３】
2017030137.tif 000007
【図４】
2017030137.tif 000008
【図５】
2017030137.tif 000009
【図６】
2017030137.tif 000010
【図７】
2017030137.tif 000011
【図８】
2017030137.tif 000012
【図９】
2017030137.tif 000013