(57)【要約】【課題】作業の異常発生から判定までの時間遅れを抑制することができる作業判別装置を得ること。【解決手段】ロボット１の作業の状態を示すセンサデータを、ロボット１の動作を制御する制御周期の整数倍の出力間隔で出力するセンサデータ出力部３１と、センサデータ出力部３１から出力されるセンサデータに基づいて、リカレントニューラルネットワークによる推論によってロボット１の作業の良否を判別する判別部３２と、を備える。【選択図】図１
2020124760.tif 000002
【特許請求の範囲】
【請求項１】
産業機械の作業の状態を示す状態データを、前記産業機械の動作を制御する制御周期の整数倍の出力間隔で出力するセンサデータ出力部と、
前記センサデータ出力部から出力される前記状態データに基づいて、リカレントニューラルネットワークによる推論によって前記産業機械の作業の良否を判別する判別部と、
を備えることを特徴とする作業判別装置。
【請求項２】
前記判別部による判別結果に基づいて、前記産業機械の動作を修正させるよう制御する動作修正部、
を備えることを特徴とする請求項１に記載の作業判別装置。
【請求項３】
前記産業機械はロボットであり、前記作業は組立作業であり、
前記判別部は、さらに、前記作業における異常の種別を判別し、
前記動作修正部は、前記判別部により前記産業機械の位置ずれの異常と判別された場合には、前記産業機械を定められた位置に戻した後に再度作業を行わせるよう制御し、前記判別部により前記作業に用いる部品に関する異常であると判別された場合はロボットを停止させるよう制御することを特徴とする請求項２に記載の作業判別装置。
【請求項４】
前記産業機械はロボットであり、前記作業は組立作業であり、
前記判別部は、さらに、前記作業における異常の種別を判別し、前記産業機械の位置ずれの量を示す値を算出し、
前記動作修正部は、前記判別部により前記産業機械の位置ずれの異常と判別された場合には、前記位置ずれの量を示す値を用いて位置ずれを抑制するように前記産業機械の動作を修正して再度作業を行わせるよう制御し、前記判別部により前記作業に用いる部品に関する異常であると判別された場合はロボットを停止させるよう制御することを特徴とする請求項２に記載の作業判別装置。
【請求項５】
前記動作修正部は、前記位置ずれの量を示す値が規定値未満の場合、当該作業においては前記産業機械の動作の修正は行わず、次回の前記産業機械の作業において前記位置ずれの量を示す値を用いて位置ずれを抑制するように前記産業機械の動作を修正するよう制御することを特徴とする請求項４に記載の作業判別装置。
【請求項６】
前記出力間隔は、前記制御周期の１倍であることを特徴とする請求項１から５のいずれか１つに記載の作業判別装置。
【請求項７】
Ｌを２以上の整数とし、前記出力間隔は、前記制御周期のＬ倍であり、
前記センサデータ出力部には、前記産業機械の作業の状態の検出結果であるセンサデータが前記制御周期ごとに入力され、
前記センサデータ出力部は、最新のＬ個のセンサデータの平均値を前記状態データとして出力することを特徴とする請求項１から５のいずれか１つに記載の作業判別装置。
【請求項８】
前記出力間隔ごとの前記産業機械の移動量が一定となるよう前記出力間隔が決定されることを特徴とする請求項１から５のいずれか１つに記載の作業判別装置。
【請求項９】
前記産業機械の作業の状態を示す状態データは、前記産業機械に設けられた力覚センサにより検出された検出結果である力覚センサデータを含み、
前記センサデータ出力部は、前記産業機械が有するモータの位置の検出結果であるモータ位置データに基づいて、前記出力間隔ごとの前記産業機械の移動量が一定となるよう前記出力間隔を決定することを特徴とする請求項８に記載の作業判別装置。
【請求項１０】
前記センサデータ出力部は、前記産業機械の作業の状態を検出するセンサから出力されたセンサデータから所望の周波数帯成分を抽出し、抽出した結果を前記状態データとして出力することを特徴とする請求項１から６のいずれか１つに記載の作業判別装置。
【請求項１１】
前記センサデータ出力部には、前記産業機械の作業の状態を示す状態データは、前記産業機械が有するモータの位置の検出結果であるモータ位置データと前記産業機械に設けられた力覚センサにより検出された検出結果である力覚センサデータとが入力され、
前記センサデータ出力部は、前記モータ位置データに基づいて、前記力覚センサによる計測値に含まれる外乱成分を推定し、前記力覚センサデータから前記外乱成分を除去した結果を前記状態データとして出力することを特徴とする請求項１から６のいずれか１つに記載の作業判別装置。
【請求項１２】
前記センサデータ出力部には、前記産業機械の作業の状態を示す状態データは、前記産業機械が有するモータの位置の検出結果であるモータ位置データと前記モータを流れるモータ電流の検出結果であるモータ電流データとが入力され、
前記センサデータ出力部は、前記モータ位置データおよび前記モータ電流データに基づいて、前記産業機械における力覚値を推定し、推定した前記力覚値を前記状態データとして出力することを特徴とする請求項１から６のいずれか１つに記載の作業判別装置。
【請求項１３】
前記判別部による判別の開始と終了はロボットプログラムを用いて指定されることを特徴とする請求項１から１２のいずれか１つに記載の作業判別装置。
【請求項１４】
前記判別部による判別結果を記憶する判別結果記憶部、
を備えることを特徴とする請求項１から１３のいずれか１つに記載の作業判別装置。
【請求項１５】
作業判別装置が産業機械の作業の良否を判別する作業判別方法であって、
前記産業機械の作業の状態を示す状態データを、前記産業機械の動作を制御する制御周期の整数倍の出力間隔で出力するデータ出力ステップと、
前記データ出力ステップで出力される前記状態データに基づいて、リカレントニューラルネットワークによる推論によって前記産業機械の作業の良否を判別する判別ステップと、
を含むことを特徴とする作業判別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットをはじめとする産業機械が行った作業の良否を判別する作業判別装置および作業判別方法に関する。
【背景技術】
【０００２】
ロボットをはじめとする産業機械を用いた作業が行われる場合、産業機械に設置されたセンサにより取得された時系列データを用いて、作業の良否の判別が行われる。この際、作業の良否を判別する装置は、一般には、定められた時間幅毎に時系列データから振幅値などの特徴量を抽出し、特徴量を基準と比較することで作業の良否判別を行う。異常発生から判定までの時間遅れを抑制するには時間幅を短くすることが望ましいが、時間幅を短くすると判定精度が落ちる。
【０００３】
特許文献１には、異なる時間幅で複数の特徴量を抽出し、複数の特徴量が評価基準を満たすか否かによって作業の良否を判定することにより、異常発生から判定までの時間遅れの抑制と判定精度の両立を目指す判定装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−２７５７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、一定期間のデータを蓄積して蓄積したデータを用いて特徴量を算出しているため、依然として異常発生から判定までの時間遅れが生じる問題がある。
【０００６】
本発明は、上記に鑑みてなされたものであって、作業の異常発生から判定までの時間遅れを抑制することができる作業判別装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明にかかる作業判別装置は、産業機械の作業の状態を示す状態データを、産業機械の動作を制御する制御周期の整数倍の出力間隔で出力するセンサデータ出力部、を備える。また、この作業判別装置は、センサデータ出力部から出力される状態データに基づいて、リカレントニューラルネットワークによる推論によって産業機械の作業の良否を判別する判別部、を備える。
【発明の効果】
【０００８】
本発明によれば、作業の異常発生から判定までの時間遅れを抑制することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態１にかかる作業判別装置を含む機械システムの構成例を示す図
【図２】実施の形態１の判別部の構成例を示す図
【図３】実施の形態１のモデル部の中間層の構成例を示す図
【図４】実施の形態１の処理回路の構成例を示す図
【図５】実施の形態２にかかる機械システムの構成例を示す図
【図６】実施の形態３にかかるセンサデータ出力部の構成例を示す図
【図７】実施の形態５にかかるセンサデータ出力部の構成例を示す図
【図８】実施の形態６にかかるセンサデータ出力部の構成例を示す図
【図９】実施の形態７にかかるセンサデータ出力部の構成例を示す図
【図１０】実施の形態８の機械システムの構成例を示す図
【図１１】実施の形態９の機械システムの構成例を示す図
【図１２】実施の形態１０にかかるセンサデータ出力部の構成例を示す図
【図１３】実施の形態１１の作業の良否の判別方法の一例を示すフローチャート
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態にかかる作業判別装置および作業判別方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
図１は、本発明の実施の形態１にかかる作業判別装置を含む機械システムの構成例を示す図である。図１に示すように、機械システムは、ロボット１と、ロボット１に設置されたセンサ２と、制御装置３と、学習装置４と、表示器５とを備える。
【００１２】
以下、本実施の形態では、産業機械の一例として、カバー組み付け、コネクタ挿入、基板挿入、軸の嵌め合いなどの組立作業を行うロボット１を例に挙げて説明する。本実施の形態は、組立作業を行うロボット１に限定されず、組立作業以外の作業を行うロボット、切断などの加工を行う機械、包装機などの産業機械に適用可能である。
【００１３】
センサ２は、ロボット１に設置され、ロボット１の作業の状態、ロボットの周囲の状態、ロボットの内部の状態量などを検出する。本実施の形態では、センサ２は力覚センサを含む。力覚センサは、例えば、ロボット１の手首に設置される。力覚センサは、周期的に、ロボット１の３軸方向の力（Fx，Fy，Fz）と３軸周りのモーメント（Mx，My，Mz）とを検出して検出した結果をセンサデータとして制御装置３へ出力する。センサ２がロボット１の作業の状態、ロボットの周囲の状態、ロボットの内部の状態量などを検出する周期を、以下、サンプリング周期という。
【００１４】
制御装置３は、センサ２から出力されるセンサデータを用いて、ロボット１の動作を制御するためのロボットプログラムにしたがってロボット１を制御する。ロボット１が作業を行う際には、制御装置３はロボットプログラムに従って定められた作業が実施されるようロボット１の動作を制御する。ロボットプログラムでは、例えば、ロボット１の手先位置などが定められる。制御装置３は、制御周期ごとに、ロボット１を動作させるための動作指令を生成してロボット１を制御する。以下では、制御周期はサンプリング周期と同一であるとして説明するが、制御周期とサンプリング周期は異なっていてもよい。
【００１５】
制御装置３は、実施の形態１にかかる作業判別装置としての機能を有する。制御装置３は、センサ２から出力されるセンサデータを用いて、ロボット１の作業の良否、すなわち異常の有無を判別する。具体的には、例えば、作業の良否を示す作業のクラスを判別する。作業のクラスとは、作業の良否を示す値であり作業の正常さの程度もしくは異常の種類を示す値である。作業のクラスは、良か否かの２値に限らず、良と否の中間の状態を示すものを含んでいてもよい。また異常についても１つではなく、異常の種類として２つ以上の値の組み合わせでも構わない。以下では、作業のクラスを判別することも含めて作業の良否の判別と呼ぶ。なお、本実施の形態では、ロボット１を制御する制御装置が、作業判別装置としての機能を備える例を説明するが、ロボット１を制御する制御装置とは別に作業判別装置を設けるようにしてもよい。
【００１６】
学習装置４は、入力される作業結果と制御装置３から出力されるセンサデータとを用いて、制御装置３において実施される作業の良否の判別のための学習を行い、学習結果を制御装置３へ出力する。なお、ここでは、学習装置４が制御装置３と別に設けられる例を説明するが、学習装置４と制御装置３とが一体であってもよい。また、ロボット１を制御する制御装置とは別に作業判別装置が設けられ、作業判別装置と学習装置４とが一体であってもよい。
【００１７】
表示器５は、制御装置３からの指示に基づいて、ロボット１の作業の状態などを表示する。表示器５は、液晶モニタ、ディスプレイなどであってもよいし、回転灯などの表示灯であってもよい。また、表示器５はブザーなどの音声による報知も行ってもよい。本実施の形態では、表示器５が制御装置３とは別に設けられる例を説明するが、表示器５と制御装置３とが一体であってもよい。また、表示器５と学習装置４とが一体であってもよい。
【００１８】
次に、制御装置３の構成について説明する。制御装置３は、図１に示すように、センサデータ出力部３１、判別部３２、動作修正部３３および動作制御部３４を備える。センサデータ出力部３１は、ロボット１の作業の状態を示すデータを、ロボット１の動作を制御する制御周期の整数倍の出力間隔で出力する。本実施の形態では、出力間隔は制御周期の１倍である。詳細には、センサデータ出力部３１は、力覚センサから出力される３軸方向の力（Fx，Fy，Fz）と３軸周りのモーメント（Mx，My，Mz）とを含むセンサデータをサンプリング周期ごとすなわち制御周期ごとに受け取り、制御周期ごとに、３軸方向の力（Fx，Fy，Fz）を判別部３２へ出力する。すなわち、センサデータ出力部３１が出力する状態データは、本実施の形態では、センサ２から出力されるセンサデータのうちの少なくとも一部であり、この例では３軸方向の力（Fx，Fy，Fz）である。
【００１９】
判別部３２は、センサデータ出力部３１から出力されるデータに基づいて、ＲＮＮ（Recurrent  Neural  Network：リカレントニューラルネットワーク）による推論によってロボット１の作業における異常の有無を判別する。具体的には、判別部３２は、学習装置４によって生成されたＲＮＮの学習モデルを用いた推論により、ロボット１の作業の良否を判別する。例えば、判別部３２は、制御周期ごとに、センサデータ出力部３１から出力される３軸方向の力（Fx，Fy，Fz）を入力として学習モデルを用いてロボット１の作業の状態を示す出力データを求め、出力データをもとに、ロボット１の作業の良否すなわち作業の異常の有無を判別する。また、判別部３２は、作業が異常であると判別した場合、異常の種別も判別してもよい。ここでは、異常の種別として、位置ずれと部品異常の２種類を例に挙げて説明するが、異常の種類は１種類であってもよく３種類以上であってもよい。部品異常は、部品に一部欠損があったり部品に異物が付着したりといった部品に関する異常である。また、判別結果を示すデータの形式は、上述した例に限定されない。判別部３２は、判別結果を動作修正部３３へ出力する。ＲＮＮは、時系列データを入力とする機械学習の一例である。判別部３２の詳細については後述する。
【００２０】
動作修正部３３は、判別部３２による判別結果に基づいて、ロボット１の動作を修正させるよう制御する。動作修正部３３は、判別部３２から入力された判別結果が正常を示す値であった場合、特に動作はしない。動作修正部３３は、判別部３２から入力された判別結果が位置ずれの異常を示す値であった場合、表示器５に位置ずれの異常を表示するよう指示するとともに、位置ずれの異常用の動作を行うようロボット１の動作を修正する。具体的には、動作修正部３３は、例えば、一旦ロボット１を停止して予め定められた位置までロボット１を戻すとともに探索動作を行って作業を再開するための指令を動作修正指令として生成して、動作制御部３４へ出力する。探索動作では、ロボット１に取り付けた力覚センサ、触覚センサなどの値に基づいて正しい挿入作業の位置を探索する。例えばカバーのないピンへのコネクタ挿入作業の場合であれば、複数の方向からロボット１が把持したコネクタを低速で突き当ててピンの位置を導出し、導出した位置でコネクタ挿入作業を再度実施する。また、動作修正部３３は、判別部３２から入力された判別結果が部品異常を示す値であった場合、表示器５に部品異常を表示するよう指示するとともに、部品異常用の動作を行うようロボット１の動作を修正する。具体的には、動作修正部３３は、例えば、一旦ロボット１を停止したあと定められた位置までロボット１を戻して再度停止させるための指令を動作修正指令として生成して、動作制御部３４へ出力する。以上のように、動作修正部３３は、判別部３２によりロボット１の位置ずれの異常と判別された場合には、ロボット１を定められた位置に戻した後に再度作業を行わせるよう制御し、部品異常であると判別された場合はロボット１を停止させるよう制御する。
【００２１】
動作制御部３４は、センサデータ出力部３１から出力されるセンサデータを用いて、制御周期ごとに、ロボット１を動作させるための動作指令を生成してロボット１へ出力する。また、動作制御部３４は、動作修正部３３から動作修正指令を受け取った場合には、通常の動作指令の出力を停止して、動作修正部３３から受け取った動作修正指令をロボット１へ出力する。
【００２２】
学習装置４は、例えば、パーソナルコンピュータ（ＰＣ）などのコンピュータであり、学習部４１を備える。学習部４１は、ロボット１が実際の生産における組立作業を開始する前に、訓練データとも呼ばれる教師データを用いた機械学習を行う。機械学習としては、上述したように例えばＲＮＮを用いることができる。本実施の形態では、制御装置３の判別部３２は、学習部４１により教師データを用いて学習が行われた学習モデルを内蔵する。判別部３２は、上述したように、センサデータ出力部３１から出力される３軸方向の力（Fx，Fy，Fz）を入力としてこの学習モデルにより得られる結果を用いて、ロボット１の作業の良否を判別する。
【００２３】
次に、学習装置４の学習部４１における機械学習と、制御装置３の判別部３２について詳細に説明する。まず、学習部４１における機械学習について説明する。学習部４１は、ロボット１が実際の生産における組立作業を開始する前に、少なくとも以下の第１の状態、第２の状態および第３の状態を含むそれぞれの状態に対応する教師データを用いて、機械学習を行う。
【００２４】
第１の状態は、組み立て作業が正常に終了する状態である。運用者は、実際の生産における組立作業を開始する前に、ロボット１に組立作業を実施させる。学習装置４の学習部４１は、この組立作業中に、センサデータ出力部３１から出力される３軸方向の力（Fx，Fy，Fz）を、学習装置４に入力データとして記憶しておく。入力データは、この組立作業を行っている時間帯における時系列データとなる。運用者は、正常に組み立て作業が行われた場合、作業結果すなわち出力データの正解値として（１，０，０）を学習部４１へ入力する。詳細には、運用者は、学習装置４であるコンピュータの入力手段であるキーボード、マウス、タッチパネルなどを操作することにより、学習装置４に出力データの正解値を入力する。学習装置４は、入力手段が受け付けたデータを学習部４１に与える。学習部４１は、記憶している入力データのうち第１の状態に対応する入力データと出力データの正解値である（１，０，０）との組を教師データとして学習する。
【００２５】
第２の状態は、ロボット１の位置ずれが生じ組立作業に失敗する状態である。運用者は、実際の生産における組立作業を開始する前に、わざとロボット１に位置ずれを生じさせて組立作業を失敗させる。学習装置４の学習部４１は、この失敗する組立作業の作業中に、センサデータ出力部３１から出力される３軸方向の力（Fx，Fy，Fz）を、学習装置４に入力データとして記憶しておく。運用者は、わざとロボット１に位置ずれを生じさせて組立作業を失敗させた場合、出力データの正解値として（０，１，０）を学習部４１へ入力する。学習部４１は、記憶している入力データのうち第２の状態に対応する入力データと出力データの正解値である（０，１，０）との組を教師データとして学習する。
【００２６】
第３の状態は、部品に一部欠損があったり部品に異物が付着したりといった部品異常により組立作業に失敗する状態である。運用者は、実際の生産における組立作業を開始する前に、わざと部品異常を生じさせて組立作業を失敗させる。学習装置４の学習部４１は、この失敗する組立作業の作業中に、センサデータ出力部３１から出力される３軸方向の力（Fx，Fy，Fz）を、学習装置４に入力データとして記憶しておく。運用者は、わざと部品異常を生じさせて組立作業を失敗させた場合、出力データの正解値として（０，０，１）を学習部４１へ入力する。学習部４１は、記憶している入力データのうち第３の状態に対応する入力データと出力データの正解値である（０，０，１）との組を教師データとして学習する。なお、第３の状態で、部品異常だけでなくさらに位置ずれも生じさせて、学習装置４に、この期間に対応するセンサデータを取得させ、対応する作業結果として出力データの正解値である（０，１，１）を入力して、学習させてもよい。
【００２７】
なお、学習部４１の学習を行う際には、ロボット１に複数の速度で組立作業を行わせ、それぞれの速度に対応するデータを取得して学習を行う。このとき、ロボット１が動作可能な全ての速度について学習を行ってもよいし、想定される速度の範囲を代表する複数の速度で学習を行うことで、全ての速度について学習を行う場合に比べて、学習に要する時間を削減することができる。さらに最も使用される可能性の高い速度もしくは想定される速度範囲のなかで最も低い速度など、１つの速度で学習を行うことで立上調整の早期の段階から学習のためのデータを採取するとともに、学習に必要なデータの量を削減することで、学習に要する時間をさらに削減することができる。
【００２８】
なお、本実施の形態では、機械学習における出力データとして（１，０，０）といったように３つの要素を出力する例を説明するが、出力データの要素の数は３つに限定されない。また、ここでは、（１，０，０）が、組立作業が正常に行われたことを示し、（０，１，０）が位置ずれ異常を示し、（０，０，１）が部品異常を示す例を説明するが、出力データの具体的な値とその定義はこの例に限定されない。次元を増加し、部品の異常状態を部品の欠損と異物の付着に分けるなど、複数の異常モードに分けて学習させてもよい。本実施の形態では、各状態の時系列データであるセンサデータが入力データとなり、ＲＮＮによる機械学習が行われる。
【００２９】
次に、判別部３２について詳細に説明する。図２は、本実施の形態の判別部３２の構成例を示す図である。判別部３２は、学習部４１による学習済みの学習モデルを用いたデータ生成を行うモデル部３２１と、モデル部３２１により生成されたデータ、すなわち学習済みの学習モデルの出力データを用いて、作業の良否を判別する異常判別部３２２とを備える。なお、学習部４１は、図２のモデル部３２１と同様の構成のモデル部を有するとともに、モデル部により得られる出力データの誤差を評価して、誤差が小さくなるようにモデル部の各重みを決定する機能を有する。誤差が小さくなるように得られたものが学習済の学習モデルとなる。
【００３０】
モデル部３２１は、図２に示すように、入力層３５、中間層３６および出力層３７を備える。入力層３５は、入力データの要素の数、すなわち入力数に応じた数のノード３８を備える。図２では、一番上のノード３８にのみ符号を付しているが、入力層３５における符号を省略した丸もノード３８である。
【００３１】
中間層３６は、複数のノード３９を備える。図２では、一番上のノード３９にのみ符号を付しているが、中間層３６における符号を省略した二重丸もノード３９である。出力層３７は、出力データの要素の数、すなわち出力数に応じた数のノード４０を備える。図２では、一番上のノード４０にのみ符号を付しているが、出力層３７における符号を省略した丸もノード４０である。
【００３２】
入力層３５は、センサデータ出力部３１から出力されるセンサデータである入力データを、制御周期ごとに、中間層３６へ出力する。詳細には、各ノード３８は、入力されたデータを中間層３６の各ノード３９へ出力する。各ノード３８は、入力された値に重みを乗算してから中間層３６の各ノード３９へ出力してもよい。中間層３６の各ノード３９は、ＲＮＮの処理を行って処理結果を出力層３７の各ノード４０へ出力する。出力層３７の各ノード４０は、中間層３６の各ノード３９から出力されたデータを加算し、加算結果を出力する。出力層３７の各ノード４０は、中間層３６の各ノード３９から出力されたデータに重みを乗算し、重みを乗算した結果を加算してもよい。
【００３３】
図２では、中間層３６を１層としているが、中間層３６が２層以上であってもよい。また、図２では、入力数３、出力数３としているが、入力数、出力数はこれに限定されない。また、図２では、中間層３６におけるノード３９の数を５としているが、中間層３６におけるノード３９の数は５に限定されない。
【００３４】
図２では、時刻ｔにおける入力データを構成する３つの要素を、ｘ１ｔ，ｘ２ｔ，ｘ３ｔとしている。ｔは制御周期を単位として離散化された時刻である。すなわち、ｔは、何番目の制御周期であるかを示す整数である。ｈ１ｔ，ｈ２ｔ，ｈ３ｔ，ｈ４ｔ，ｈ５ｔは、時刻ｔにおける中間層３６の各ノード３９の出力を示す。ｙ１ｔ，ｙ２ｔ，ｙ３ｔは、時刻ｔにおける出力層３７の各ノード４０の出力を示す。
【００３５】
本実施の形態では、ＲＮＮを前提としている。このため、中間層３６は、前回の制御周期の中間層３６の出力結果を記憶しておき、前回の制御周期の出力結果と今回の制御周期で入力層３５から入力された値から算出した項との重み付け和を出力層３７へ出力する。ＲＮＮは、センサ出力などの時系列データの学習にしばしば用いられる。ＲＮＮでは、入力値（例えば、ｘ１ｔ，ｘ２ｔ，ｘ３ｔ）を要素とするベクトルをｘｔと示し、中間層３６の出力値を要素とするベクトルをｈｔとすると、ベクトルｈｔは以下の式（１）で表すことができる。ｔは、上述した通り、何番目の制御周期であるかを示す整数である。ベクトルｘｔの次元をＭ、ベクトルｈｔの次元をＮとするとき、ＷはＮ×Ｍの次元の線形変換行列であり、ＲはＮ×Ｎの次元の線形変換行列であり、ｂは、バイアスベクトルである。ｇ（・）は、活性化関数を示す。
【００３６】
【数１】
2020124760.tif 000003
【００３７】
ＲＮＮの例としては、Ｅｌｍａｎ／Ｊｏｒｄａｎ  ｎｅｔ、ＬＳＴＭ（Long  Short  Term  Memory）、ＧＲＵ（Gated  Recurrent  Unit）などがあり、いずれで構成してもよいが、本実施の形態ではＬＳＴＭを用いた場合を例に挙げて説明する。
【００３８】
図３は、本実施の形態のモデル部３２１の中間層３６の構成例を示す図である。図３では、ノード３９が１つの場合を例に記載している。図３に示した構成例では、中間層３６では、以下の式（２）−（７）に示す計算が行われる。
【００３９】
【数２】
2020124760.tif 000004
【００４０】
Ｗｆ，Ｗｉ，Ｗｚ，Ｗｏは、Ｎ×Ｍの次元の線形変換行列であり、Ｒｆ，Ｒｉ，Ｒｚ，Ｒｏは、Ｎ×Ｎの次元の線形変換行列であり、ｂｆ，ｂｉ，ｂｚ，ｂｏは、バイアスベクトルである。これらは、学習部４１による学習により決定される。σ（・）はシグモイド関数、tanh（・）はハイパボリックタンジェント関数を示す。
【００４１】
なお、モデル部３２１における各処理は、一般的なＲＮＮにおける処理を用いることができるため、詳細な説明は省略する。
【００４２】
出力層３７の各ノード４０から出力されるｙ１ｔ，ｙ２ｔ，ｙ３ｔは、モデル部３２１の出力データとして異常判別部３２２に入力される。本実施の形態では、ｙ１ｔ，ｙ２ｔ，ｙ３ｔは以下の値であるとする。第１要素であるｙ１ｔは、１に近いほど正常である可能性が高いことを示す。第２要素であるｙ２ｔは、１に近いほどロボット１の位置ずれの異常である可能性が高いことを示す。第３要素であるｙ３ｔは、１に近いほど部品に一部欠損があったり部品に異物が付着したりする部品異常である可能性が高いことを示す。異常判別部３２２は、モデル部３２１の出力データに基づいて、制御周期ごとに、ロボット１の作業の良否を判別する。
【００４３】
本実施の形態にかかる制御装置３は、ロボット１が、生産のために、カバー組み付け、コネクタ挿入、基板挿入、軸の嵌め合いなどの組立作業を開始するとともに、判別部３２による判別を開始し、ロボット１が上記組立作業を終了するとともに判別を終了する。
【００４４】
教師データにおいては、上述したように、出力データの正解値は（１，０，０）などの整数値で示されているが、モデル部３２１の出力データは、各値は整数値とは限らない。このため、作業の良否の判別は、各値が規定値と比較されることにより行われる。異常判別部３２２は、組立作業の開始から終了までの各制御周期で、第２要素が一度でも規定値以上となった場合に、位置ずれ異常と判別し、位置ずれ異常を示す値を判別結果として動作修正部３３へ出力する。また、異常判別部３２２は、組立作業の開始から終了までの各制御周期で、第３要素が一度でも規定値以上となった場合に、部品異常と判断し、部品異常を示す値を判別結果として動作修正部３３へ出力する。また、異常判別部３２２は、組立作業の開始から終了までの各制御周期で、第２要素が一度でも規定値以上となりかつ第３要素が一度でも規定値以上となった場合には、部品異常と判断し、部品異常を示す値を判別結果として動作修正部３３へ出力するようにしてもよい。
【００４５】
また、異常判別部３２２は、組立作業の開始から終了までの全制御周期で、第１要素が規定値以上でありかつ第２要素と第３要素がいずれも規定値未満の場合に、正常を示す値を判別結果として動作修正部３３へ出力する。または、異常判別部３２２は、組立作業の開始から終了までの全制御周期で、第２要素と第３要素がいずれも規定値未満の場合に、正常を示す値を判別結果として動作修正部３３へ出力するようにしてもよい。第１要素と第２要素と第３要素とのそれぞれの比較で用いられる規定値は、異なっていてもよいし同一であってもよい。また、上記の例では、各値が規定値以上であるか否かにより判別を行ったが、各値が規定値を超えるか否かにより判別が行われてもよい。
【００４６】
次に、本実施の形態の学習装置４および制御装置３のハードウェア構成について説明する。制御装置３のセンサデータ出力部３１、判別部３２、動作修正部３３および動作制御部３４は、処理回路により実現される。処理回路は、プロセッサを備える回路であってもよいし、専用ハードウェアであってもよい。
【００４７】
処理回路がプロセッサを備える回路である場合、処理回路は例えば図４に示した構成の処理回路である。図４は、本実施の形態の処理回路の構成例を示す図である。図４に示す処理回路１００は、プロセッサ１０１およびメモリ１０２を備える。センサデータ出力部３１、判別部３２、動作修正部３３および動作制御部３４が図４に示した処理回路１００によって実現される場合、プロセッサ１０１が、メモリ１０２に格納されたプログラムを読み出して実行することにより、これらが実現される。すなわち、センサデータ出力部３１、判別部３２、動作修正部３３および動作制御部３４が図４に示した処理回路１００によって実現される場合、これらの機能は、ソフトウェアであるプログラムを用いて実現される。メモリ１０２はプロセッサ１０１の作業領域としても使用される。プロセッサ１０１は、ＣＰＵ（Central  Processing  Unit）等である。メモリ１０２は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリー等の不揮発性または揮発性の半導体メモリ、磁気ディスク等が該当する。
【００４８】
センサデータ出力部３１、判別部３２、動作修正部３３および動作制御部３４が専用ハードウェアである場合、処理回路は、例えば、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）である。なお、センサデータ出力部３１は、プロセッサを備える処理回路および専用ハードウェアを組み合わせて実現されてもよい。センサデータ出力部３１、判別部３２、動作修正部３３および動作制御部３４は、複数の処理回路により実現されてもよい。
【００４９】
学習装置４は、上述したように、コンピュータである。学習装置４の学習部４１は、コンピュータにおける処理回路により実現される。この処理回路は、図４に示した処理回路１００と同様である。プロセッサ１０１が、メモリ１０２に格納されたプログラムを読み出して実行することにより、学習装置４が実現される。メモリ１０２はプロセッサ１０１の作業領域としても使用される。また、学習装置４を実現するコンピュータは、上述したように、キーボード、マウス、タッチパネルなどの入力手段を備えるとともに、ディスプレイ、モニタ等の表示手段を有する。学習装置４を使用する運用者は、表示手段に表示される表示画面にしたがって、上述したように、作業結果を、入力手段を用いて入力することができる。
【００５０】
学習装置４と制御装置３との間でデータの送受信を行うために、学習装置４および制御装置３はそれぞれ通信回路を備えていてもよい。この場合、学習装置４と制御装置３との間でデータの送受信は、これらの通信回路を介して行われる。
【００５１】
以上述べた例では、モデル部３２１における入力数を３とし、出力数を３とした例を説明したが、入力数、出力数は上述した例に限定されない。例えば、以下のように、入力数を６とし出力数を２としてもよい。入力データとして、３軸方向の力に加えて３軸のそれぞれの周りのモーメント（Mx，My，Mz）も用いる。ロボット１の生産の開始前に、運用者は、学習装置４に、正常な状態と、位置ずれおよび部品異常などの異常の状態と、の両方で３軸方向の力に加えて３軸のそれぞれの周りのモーメント（Mx，My，Mz）を取得し、正解の出力データである作業結果と対応付けて学習させておく。例えば、ロボット１の作業が正常な場合に出力データを（１，０）とし、異常の場合に出力データを（０，１）として学習させる。生産開始後のロボット１の組立作業では、異常判別部３２２は、第１要素、第２要素の２つの要素で構成される出力データに基づいて、作業の要否を判別する。
【００５２】
詳細には、異常判別部３２２は、第２要素が規定値以上の場合には、異常であることを示す値を判別結果として動作修正部３３に出力する。異常判別部３２２は、第２要素が規定値未満の場合には、正常であることを示す値を判別結果として動作修正部３３に出力する。動作修正部３３は、判別結果として正常であることを示す値が入力された場合は、そのままなにもしない。また、動作修正部３３は、判別結果として異常であることを示す値が入力された場合は、一旦ロボット１を停止したあと定められた位置までロボットを戻して再度停止するための動作指令を動作制御部３４へ出力するとともに異常であることを表示器５に表示する。
【００５３】
また、センサ２として、力覚センサおよびロボット１の各軸のモータ位置を検出する位置検出器を備えてもよい。この場合に、センサデータ出力部３１が、センサデータとして、３軸方向の力（Fx，Fy，Fz）、３軸周りのモーメント（Mx，My，Mz）および６軸の各モータ位置を判別部３２に出力するため、モデル部３２１における入力数は１２となる。また、センサ２としてさらにモータ電流を検出する電流検出器を加え、センサデータ出力部３１が、さらに、センサデータとしてモータ電流を判別部３２に出力するようにしてもよい。また、モータの位置指令を判別部３２へ入力してもよい。センサデータの内容と項目の数は、ロボット１の状態、ロボット１の作業の状態、ロボット１の周囲の状態を示すものであればよく、上述した例に限定されない。
【００５４】
また、出力数異常の要因として３種類以上の異常を判別する場合には、出力数は４以上となる。なお、出力数が上述した例と異なる場合には、これらに応じた学習が、学習装置４を用いて行われる。例えば、３種類以上の異常を判別する場合には、各異常の種類に応じた教師データを用いた学習が、実際の生産における組立作業を開始する前に学習装置４により行われる。
【００５５】
本実施の形態にかかる制御装置３では、判別部３２による判別は、上述したとおり、制御周期ごとに行われる。このため、一定期間のデータを蓄積して蓄積したデータを用いて特徴量を算出して作業の異常を判別する従来の技術に比べて、異常発生から判定までの時間遅れを抑制することができる。また本実施の形態では１つのリカレントニューラルネットワークで複数の異常モードの判別を行うため、複数の特徴量を算出して作業の良否を判別する従来に技術に比べて、作業の良否判定時の処理負荷を抑制することができる。また、本実施の形態では判別用の時間幅の設定が不要のため、作業の速度によらず同一の判別部で判別可能である。このため、作業の速度の変更による再学習が不要である。以上のとおり、本実施の形態にかかる制御装置３は、作業の良否判定時の作業の異常発生から判定までの時間遅れを抑制し、作業の良否判定時の処理負荷を抑制し、作業の速度の変更による再学習を不要とすることが可能である。
【００５６】
実施の形態２．
次に、本発明にかかる実施の形態２の作業判別方法について説明する。図５は、実施の形態２の機械システムの構成例を示す図である。図５に示すように、本実施の形態の機械システムは、実施の形態１の制御装置３の替わりに制御装置３ａを備える以外は、実施の形態１の機械システムと同様である。制御装置３ａは、実施の形態１の制御装置３に対して補正量記憶部６１が追加されている。実施の形態１と同様の構成要素には同一の符号を付して説明し、実施の形態１と重複する説明を省略する。以下、実施の形態１と異なる点を中心に説明する。
【００５７】
実施の形態１では、モデル部３２１の出力データ、すなわちＲＮＮの出力データを構成する各要素は、例えば、正常であるかどうかといったように、各要素が示す条件に当てはまるかどうかを示すフラグに相当するものであった。本実施の形態では、出力データに、フラグに相当するものだけでなく、なんらかの項目を定量的に示す値を含む例について説明する。
【００５８】
学習部４１は、ロボット１が実際の生産における組立作業を開始する前に、少なくとも以下の第１の状態、第２の状態および第３の状態を含むそれぞれの状態に対応する教師データを用いて、機械学習を行う。すなわち、第１の状態は、位置ずれがなくかつ組立作業が正常に終了した場合であり、第２の状態は、位置ずれにより組立作業に失敗したまたは位置ずれがあったものの組立作業に成功した場合である。第３の状態は、部品に一部欠損があったり部品に異物が付着したりする部品異常により作業に失敗した場合である。
【００５９】
運用者は、第１の状態に対応する作業結果として、（１，０，０，０，０）を学習装置４に入力する。学習装置４は、第１の状態に対応するセンサデータと作業結果とを対応付けて学習する。本実施の形態では、センサデータは、３軸方向の力（Fx，Fy，Fz）および３軸周りのモーメント（Mx，My，Mz）の時系列データであるとする。
【００６０】
また、運用者は、わざと位置ずれを生じさせることにより第２の状態を生じさせる。運用者は、第２の状態に対応する作業結果として、組立作業に失敗した場合には（０，ｒ１，ｒ２，ｒ３，０）を、組立作業に成功した場合には（１，ｒ１，ｒ２，ｒ３，０）を、学習装置４に入力する。ｒ１，ｒ２，ｒ３は、それぞれｘ軸方向の位置、ｙ軸方向の位置、垂直軸であるｚ軸まわりの回転θの、ずれ量の許容値と実際のずれ量の比を示す。ｒ１，ｒ２，ｒ３は、位置ずれの量を示す値の一例である。なお、ここでは、ｘｙ軸は水平方向の２軸であり、ｚ軸が垂直軸方向であるとする。例えば、ロボット１のｘ軸方向の位置のずれ量の許容値がΔｘｍａｘであったとする。運用者は実際のロボット１のｘ軸方向のずれ量を計測する。運用者が計測した計測結果をΔｘｒとする。このとき、運用者は、ｒ１＝Δｘｒ／Δｘｍａｘとしてｒ１を算出する。なお、ｒ１は、正負符号を含む値であるとする。例えば、実際のずれ量は正負符号を含む値として計測され、ずれ量の許容値は絶対値であるとする。同様に、運用者は、ｒ２，ｒ３を算出し、得られた算出結果をもとにした作業結果を学習装置４に入力する。学習装置４は、第２の状態に対応するセンサデータと作業結果とを対応付けて学習する。このとき、運用者は、発生させる位置ずれの量を変更し、変更したずれ量に応じた作業結果を入力することで、位置ずれ量の異なる複数のケースの学習を学習装置４にさせてもよい。
【００６１】
また、運用者は、わざと部品異常を生じさせることにより第３の状態を生じさせる。また、運用者は、第３の状態に対応する作業結果として、（０，ｒ１，ｒ２，ｒ３，１）を学習装置４に入力する。第３の状態では、位置ずれについては、生じさせてもよいし生じさせなくてもよい。位置ずれが生じていない場合には、ｒ１，ｒ２，ｒ３は、それぞれ０，０，０となる。学習装置４は、第３の状態に対応するセンサデータと作業結果とを対応付けて学習する。
【００６２】
上述した学習が行われると、学習装置４により学習済みの学習モデルが生成され、この学習モデルが判別部３２のモデル部３２１で用いられる。そして、実施の形態１と同様に、ロボット１が、生産のために、カバー組み付け、コネクタ挿入、基板挿入、軸の嵌め合いなどの組立作業を開始するとともに、判別部３２による判別を開始する。
【００６３】
本実施の形態では、モデル部３２１の入力数は６であり、出力数は５となる。モデル部３２１は、第１要素から第５要素までに５つの要素からなる出力データを異常判別部３２２へ入力する。異常判別部３２２は、組立作業の開始から終了までの各制御周期で、第５要素が一度でも規定値以上となった場合に、部品異常と判別し、部品異常を示す値を判別結果として動作修正部３３へ出力する。
【００６４】
また、異常判別部３２２は、組立作業の開始から終了までの各制御周期で、第２要素、第３要素および第４要素のうち１つ以上が一度でも規定値以上となった場合に、位置ずれ異常と判別し、位置ずれ異常を示す値を判別結果として動作修正部３３へ出力する。このとき、異常判別部３２２は、組立作業の開始から終了までの全制御周期で、第２要素、第３要素および第４要素が全て規定値未満であった場合、判定結果としては正常を示す値を動作修正部３３へ出力するとともにｒ１，ｒ２，ｒ３についても動作修正部３３へ出力する。第１要素から第５要素までのそれぞれとの比較に用いられる規定値は、異なっていてもよいし同一であってもよい。
【００６５】
また、異常判別部３２２は、組立作業の開始から終了までの全制御周期で、第１要素が規定値以上であり、かつ第２要素、第３要素、第４要素および第５要素が０であった場合、位置ずれもなくかつ作業が正常に行われたと判別し、正常を示す値を判別結果として動作修正部３３へ出力する。
【００６６】
動作修正部３３は、判別結果として部品異常を示す値が入力された場合、一旦ロボット１を停止させ、その後に定められた位置までロボット１を戻して再度停止するための動作修正指令を生成して動作制御部３４へ出力とともに、異常であることを表示器５に表示する。動作修正部３３は、判別結果として位置ずれ異常を示す値が入力された場合、一旦ロボット１を停止させ、その後定められた位置までロボット１を戻すとともに、ｒ１，ｒ２，ｒ３の値に応じてロボット１の位置ずれを修正するための動作修正指令を生成して動作制御部３４へ出力する。すなわち、動作修正部３３は、ｒ１，ｒ２，ｒ３の値を用いて位置ずれを抑制するように産業機械の動作を修正して再度作業を行わせるよう制御する。これにより、再度、位置ずれが修正された動作修正指令に基づいて組立作業が実施される。
【００６７】
また、動作修正部３３は、判別結果として正常が入力されたもののｒ１，ｒ２，ｒ３が入力された場合には、そのままなにもせずに当該作業は終了させるが、次回の作業開始時までｒ１，ｒ２，ｒ３の値を補正量記憶部６１に記憶しておき、次回の作業開始時に、補正量記憶部６１からｒ１，ｒ２，ｒ３を読み出し、ｒ１，ｒ２，ｒ３の値に応じてロボット１の位置ずれを修正するための動作指令を生成して動作制御部３４へ出力する。すなわち、位置ずれの量を示す値が規定値未満の場合、動作修正部３３は、当該作業においてはロボット１の動作の修正は行わず、次回のロボット１の作業において位置ずれの量を示す値を用いて位置ずれを抑制するようにロボット１の動作を修正するよう制御する。これにより、次回以降の作業では、位置ずれが修正された動作修正指令に基づいて組立作業が実施されるため、位置ずれが蓄積することによるロボット１の停止を抑制することができる。以上述べた以外の本実施の形態の動作は、実施の形態１と同様である。なお、補正量記憶部６１は、メモリにより実現される。
【００６８】
以上のように、本実施の形態では、異常判別部３２２は、位置ずれを判定した場合に、ロボット１の位置ずれを定量的に示す値を含む出力データを動作修正部３３へ出力するようにした。これにより、本実施の形態の制御装置３は、実施の形態１と同様の効果を奏するとともに、位置ずれが生じた場合に、ロボット１の位置ずれ量を補償するようにロボット１を動作させることでロボットに作業を継続させることが可能となる。また次回以降の指令を修正することで、作業時の位置ずれ発生を抑制する効果がある。
【００６９】
実施の形態３．
図６は、本発明の実施の形態３にかかるセンサデータ出力部の構成例を示す図である。実施の形態３のセンサデータ出力部３１ｂは、ハイパスフィルタ、バンドパスフィルタ、ローパスフィルタのいずれかで構成されるフィルタ３１１を備える。本発明にかかる制御装置３ｂは、センサデータ出力部３１に替えてセンサデータ出力部３１ｂを備える以外は、実施の形態１の制御装置３と同様である。本実施の形態の機械システムは、制御装置３に替えて制御装置３ｂを備える以外は、実施の形態１の機械システムと同様である。以下、実施の形態１と異なる部分を説明し、実施の形態１と重複する説明は省略する。
【００７０】
センサデータ出力部３１ｂには、実施の形態１のセンサデータ出力部３１と同様に、センサ２から出力されるセンサデータが入力される。ここでは、センサ２は力覚センサであるとし、センサデータは、ロボット１の３軸方向の力（Fx，Fy，Fz）と３軸周りのモーメント（Mx，My，Mz）とで構成される力覚センサデータであるとする。
【００７１】
センサデータ出力部３１ｂのフィルタ３１１は、力覚センサデータから所望の周波数帯の成分を抽出し、抽出した結果を状態データとして判別部３２へ出力する。このように、センサデータから所望の周波数帯の成分を抽出することにより、ノイズなどの影響を抑制することができるため、作業良否の判別精度を向上させることができる。また、作業に起因するセンサデータの変動が現れる周波数帯が分かっている場合には、当該周波数帯をフィルタ３１１により抽出することで、作業良否の判別精度を向上させることができる。なお、センサデータ出力部３１ｂはセンサデータ出力部３１と同様に処理回路により実現される。以上述べた以外の本実施の形態の動作は、実施の形態１と同様である。また、実施の形態２の機械システムに、本実施の形態のセンサデータ出力部３１ｂを適用してもよい。
【００７２】
実施の形態４．
次に、本発明にかかる実施の形態４の作業判別方法について説明する。実施の形態４の機械システムの構成、および機械システムを構成する各装置の構成は実施の形態１と同様である。実施の形態１と同様の構成要素には同一の符号を付して説明し、実施の形態１と重複する説明を省略する。以下、実施の形態１と異なる点を中心に説明する。
【００７３】
実施の形態１では、判別部３２による判別動作の実行周期は、動作制御部３４における通常の制御周期と同一であった。これに対して、本実施の形態では、センサデータ出力部３１からの出力間隔、すなわち判別部３２による判別動作の実行周期を、動作制御部３４における通常の制御周期の整数倍とする。Ｌを２以上の整数とするとき、本実施の形態では、センサデータ出力部３１からの出力間隔は、制御周期のＬ倍であり、センサデータ出力部３１は、最新のＬ個のセンサデータの平均値を状態データとして出力する。
【００７４】
例えば、判別部３２による判別動作の実行周期を、動作制御部３４における通常の制御周期の４倍とする。この場合、センサデータ出力部３１は、直近の４サンプリング周期分のセンサデータを用いて、３軸方向の力（Fx，Fy，Fz）などのそれぞれのデータごとに４サンプリング周期分の平均値を算出する。
【００７５】
このように、複数のサンプリング周期分のセンサデータの平均値を用いることにより、ノイズなどの影響を抑制することができる。なお、本実施の形態では、実施の形態１より異常が生じてから異常と判別するまでの時間が長くなる可能性があるが、判別部３２による判別動作の実行周期を、従来の特徴量の算出に用いられる一定期間より短くなるように設定すれば、従来に比べて、異常が生じてから異常と判別するまでの時間を抑制することができる。以上述べた以外の本実施の形態の動作は、実施の形態１と同様である。また、実施の形態２または実施の形態３の機械システムに、本実施の形態の動作を適用してもよい。
【００７６】
実施の形態５．
図７は、本発明の実施の形態５にかかるセンサデータ出力部の構成例を示す図である。実施の形態５のセンサデータ出力部３１ｃは、外乱予測部３１２と、減算部３１３とを備える。本発明にかかる制御装置３ｃは、センサデータ出力部３１に替えてセンサデータ出力部３１ｃを備える以外は、実施の形態１の制御装置３と同様である。本実施の形態の機械システムは、制御装置３に替えて制御装置３ｃを備える以外は、実施の形態１の機械システムと同様である。以下、実施の形態１と異なる部分を説明し、実施の形態１と重複する説明は省略する。
【００７７】
実施の形態５では、センサ２には、力覚センサだけでなく、ロボット１の各軸に対応するモータの位置を検出する位置検出器が含まれる。位置検出器は、ロボット１の各軸のモータの位置を示すモータ位置データを出力する。センサデータ出力部３１ｃには、力覚センサデータおよびモータ位置データが入力される。
【００７８】
外乱予測部３１２は、モータ位置データを用いて、力覚センサに作用する重力を計算し、計算した重力に基づいて、力覚センサの計測値に現れる、重力による外乱成分を予測し、予測結果を減算部３１３へ出力する。減算部３１３は、力覚センサデータから外乱予測部３１２から出力された予測結果を差し引き、差し引いた結果を判別部３２へ出力する。本実施の形態では、これにより、センサデータ出力部３１ｃは、力覚センサデータから重力による外乱成分を除去し、作業に起因する力覚センサデータの変動を用いて作業の良否の判別を行うことができる。したがって、作業良否の判別精度を向上させることができる。なお、センサデータ出力部３１ｃはセンサデータ出力部３１と同様に処理回路により実現される。以上述べた以外の本実施の形態の動作は、実施の形態１と同様である。
【００７９】
また、実施の形態２または実施の形態３の機械システムに、本実施の形態の動作を適用してもよい。また、本実施の形態と実施の形態４と組合せて、減算部３１３から出力されるデータをフィルタにより抽出するようにしてもよい。
【００８０】
なお、上述した例では、外乱予測部３１２は、重力による外乱成分を予測したが、これに限らず、慣性力、遠心力、コリオリ力などについても予測してもよい。例えば、外乱予測部３１２は、ロボット１の各軸のモータ位置データを用いて、各軸のモータ速度およびモータ加速度を算出する。次に、外乱予測部３１２は、ロボット各軸のモータ位置、速度および加速度を用いて力覚センサに作用する慣性力、遠心力、コリオリ力および重力の和により力覚センサの計測値に現れる外乱成分を予測し、予測結果を減算部３１３へ出力する。
【００８１】
実施の形態６．
図８は、本発明の実施の形態６にかかるセンサデータ出力部の構成例を示す図である。実施の形態６のセンサデータ出力部３１ｄは、規定値通過判定部３１４と、移動量算出部３１５とを備える。本発明にかかる制御装置３ｄは、センサデータ出力部３１に替えてセンサデータ出力部３１ｄを備える以外は、実施の形態１の制御装置３と同様である。ただし、判別部３２における判別の実行タイミングは実施の形態１と異なる。本実施の形態の機械システムは、制御装置３に替えて制御装置３ｄを備える以外は、実施の形態１の機械システムと同様である。以下、実施の形態１と異なる部分を説明し、実施の形態１と重複する説明は省略する。
【００８２】
本実施の形態では、センサデータ出力部３１ｄの出力間隔は、出力間隔ごとのロボット１の移動量が一定となるよう決定される。移動量算出部３１５には、ロボット１が有する各軸のモータの位置であるモータ位置を検出する位置検出器から、モータ位置の検出結果であるモータ位置データが、制御周期ごとに入力される。移動量算出部３１５は、制御周期ごとに、モータ位置データに基づいてロボット１の手先位置を算出し、作業開始からの手先位置の移動量を算出する。移動量算出部３１５は、算出した移動量を規定値通過判定部３１４に出力する。
【００８３】
規定値通過判定部３１４には、制御周期ごとに、力覚センサデータが入力される。また、上述したように、規定値通過判定部３１４には、制御周期ごとに、移動量算出部３１５により算出された移動量が入力される。規定値通過判定部３１４は、移動量算出部３１５から入力された移動量が規定値未満の場合には、当該制御周期の力覚センサデータを判別部３２へ出力しない。規定値通過判定部３１４は、移動量算出部３１５により算出された移動量が規定値以上となった場合に、当該制御周期の力覚センサデータを判別部３２へ出力する。その後は、規定値通過判定部３１４は、入力された移動量が「規定値×２」未満の場合に当該制御周期の力覚センサデータを判別部３２へ出力せず、入力された移動量が「規定値×２」以上となった場合に、当該制御周期の力覚センサデータを判別部３２へ出力する。以降、力覚センサデータを判別部３２へ出力するたびに、規定値通過判定部３１４は、規定値に乗ずる整数を１ずつ増加させて同様の動作を実施する。判別部３２は、力覚センサデータが入力されると実施の形態１で述べたように、作業の良否の判別を実施する。
【００８４】
すなわち、規定値通過判定部３１４は、入力された移動量が「規定値×ｋ」未満の場合に当該制御周期の力覚センサデータを判別部３２へ出力せず、入力された移動量が「規定値×ｋ」以上となった場合に、当該制御周期の力覚センサデータを判別部３２へ出力する。ｋの初期値は０であり、規定値通過判定部３１４は、力覚センサデータを判別部３２へ出力するたびにｋの値を１増加させる。すなわち、センサデータ出力部３１ｄは、モータ位置データに基づいて、出力間隔ごとのロボット１の移動量が一定となるよう出力間隔を決定する。このような動作を行うことにより、規定値分ロボット１の手先が移動するごとに、力覚センサデータが判別部３２へ出力され、判別部３２による判別が実施されることになる。なお、センサデータ出力部３１ｄはセンサデータ出力部３１と同様に処理回路により実現される。以上述べた以外の本実施の形態の動作は、実施の形態１と同様である。
【００８５】
ロボット１の作業中に移動量に応じて生じる現象がある場合、本実施の形態では移動量に対応した入力に基づいてため作業速度によらず入力の時系列データの同じ部分にその現象が現れるため、作業速度が学習後に変更されても判別の精度を高く維持できる効果がある。
【００８６】
なお、制御周期ごとに算出される移動量は規定値の整数倍になるとは限らないため、移動量が規定値×ｋとなる時刻は、力覚センサデータを判別部３２へ出力する制御周期における各センサの出力時刻とは一致するとは限らない。このため、移動量が規定値×ｋとなったときのロボット１の状態は、判別部３２へ出力される力覚センサデータが示している状態とは異なっていることがある。このため、規定値通過判定部３１４は、力覚センサデータをそのまま出力するのではなく、当該制御周期における力覚センサデータと前の制御周期における力覚センサデータとを用いて、移動量が規定値×ｋとなる時刻に対応する力覚センサデータを推定し、推定結果を判別部３２へ出力してもよい。例えば、規定値通過判定部３１４が、入力された力覚センサデータおよび移動量を少なくとも次の制御周期まで保持しておく。規定値通過判定部３１４は、ｔ番目の制御周期で入力された移動量ｄｔが規定値×ｋ以上となりかつ（ｔ−１）番目の制御周期で入力された移動量ｄｔ−１が規定値×ｋ未満であった場合に、（規定値×ｋ−ｄｔ−１）と（ｄｔ−規定値×ｋ）との比を求める。そして、規定値通過判定部３１４は、求めた比に応じて（ｔ−１）番目の制御周期で入力された力覚センサデータとｔ番目の制御周期で入力された力覚センサデータとの重み付け和を算出し、算出した重み付け和を判別部３２へ出力するようにしてもよい。
【００８７】
また、実施の形態２または実施の形態４の機械システムに、本実施の形態の構成および動作を適用してもよい。また、実施の形態３と本実施の形態を組み合わせて、例えば、規定値通過判定部３１４から出力されるデータを、フィルタ３１１を通過させて判別部３２に入力させてもよい。
【００８８】
実施の形態７．
図９は、本発明の実施の形態７にかかるセンサデータ出力部の構成例を示す図である。実施の形態７のセンサデータ出力部３１ｅは、力覚データ推定部３１６を備える。本発明にかかる制御装置３ｅは、センサデータ出力部３１に替えてセンサデータ出力部３１ｅを備える以外は、実施の形態１の制御装置３と同様である。本実施の形態の機械システムは、制御装置３に替えて制御装置３ｅを備える以外は、実施の形態１の機械システムと同様である。以下、実施の形態１と異なる部分を説明し、実施の形態１と重複する説明は省略する。
【００８９】
力覚データ推定部３１６には、センサデータとして、制御周期ごとに、モータ電流データとモータ位置データが入力される。力覚データ推定部３１６は、モータ位置データを用いて、モータ速度、モータ加速度を算出するとともにロボット１の運動方程式から各軸の駆動トルクを算出する。さらに、力覚データ推定部３１６は、モータ電流データが示すモータ電流とトルク定数から算出したトルクとの差を算出し、算出したトルクの差をモータ位置データから算出するヤコビ行列を用いて、ロボット１の手先に作用する力およびモーメントに変換する。力覚データ推定部３１６は、変換により得られた、ロボット１の手先に作用する力およびモーメントを、次の制御周期で、力覚推定値すなわち推定した力覚値として判別部３２へ出力する。判別部３２は、入力された力覚推定値を用いて実施の形態１と同様に、作業の良否の判別を実施する。センサデータ出力部３１ｅはセンサデータ出力部３１と同様に処理回路により実現される。以上述べた以外の本実施の形態の動作は、実施の形態１と同様である。
【００９０】
以上のように、本実施の形態では、モータ電流データとモータ位置データを用いて力覚値を推定し、推定した力覚値を用いて作業の良否の判別を実施するようにした。このため、力覚センサを用いずに、実施の形態１と同様の効果を奏することができる。
【００９１】
また、実施の形態２または実施の形態４の機械システムに、本実施の形態の構成および動作を適用してもよい。また、実施の形態３と本実施の形態を組み合わせて、例えば、フィルタ３１１を通過させたモータ電流データとモータ位置データを用いて力覚データ推定部３１６が処理を行ってもよい。
【００９２】
実施の形態８．
図１０は、本発明にかかる実施の形態８の機械システムの構成例を示す図である。図１０に示すように、本実施の形態の機械システムは、実施の形態２の制御装置３ａの替わりに制御装置３ｆを備える以外は、実施の形態２の機械システムと同様である。制御装置３ｆは、実施の形態２の制御装置３ａに対してプログラム解釈部６２が追加されている。実施の形態２と同様の構成要素には同一の符号を付して説明し、実施の形態２と重複する説明を省略する。以下、実施の形態２と異なる点を中心に説明する。
【００９３】
本実施の形態では、ロボットを動作させるためのロボットプログラム（ロボット言語で記載されているプログラム）に作業良否の判別開始のためのコマンド、作業良否の判別終了のためのコマンドを記載しておく。すなわち、本実施の形態では、判別部３２による判別の開始と終了はロボットプログラムを用いて指定される。ロボットプログラムは、機械システム内の装置または機械システム外の装置を用いて作業者が編集することが可能である。したがって、作業者は、作業良否の判別開始および判別終了を容易に指定することができる。プログラム解釈部６２は、ロボットプログラムに従って、作業良否の判別開始および判別終了をセンサデータ出力部３１へ指定する。具体的には、プログラム解釈部６２は、ロボットプログラムに従って作業良否の判別開始のためのコマンドを処理することにより、センサデータ出力部３１に判別部３２へのセンサデータの出力の開始を指示する。これにより、センサデータ出力部３１は、判別部３２へセンサデータの出力を開始する。また、プログラム解釈部６２が、作業良否の判別終了のためのコマンドを処理することにより、センサデータ出力部３１に判別部３２へのセンサデータの出力の終了を指示する。これにより、センサデータ出力部３１は、判別部３２へセンサデータの出力を終了する。判別部３２は、センサデータ出力部３１からのセンサデータの入力が開始されると、作業の良否の判別を開始し、センサデータ出力部３１からのセンサデータの入力が終了すると、作業の良否の判別を終了する。
【００９４】
以上述べた以外の本実施の形態の構成及び動作は、実施の形態２と同様であるため、説明を省略する。本実施の形態では、実施の形態２と同様の効果を奏するとともに、ロボットプログラムを編集することにより作業の良否判別を行う箇所をユーザが容易に指定できる。なお、以上の説明では、実施の形態２の制御装置３ａに対してプログラム解釈部６２を追加する例を説明したが、これに限らず、実施の形態１、３−７と本実施の形態の構成および動作を組み合わせてもよい。
【００９５】
実施の形態９．
図１１は、本発明にかかる実施の形態９の機械システムの構成例を示す図である。図１１に示すように、本実施の形態の機械システムは、実施の形態２の制御装置３ａの替わりに制御装置３ｇを備える以外は、実施の形態２の機械システムと同様である。制御装置３ｇは、実施の形態２の作業判別装置３０の替わりに作業判別装置３０ａを備える以外は実施の形態２の作業判別装置３０と同様である。作業判別装置３０ａは、実施の形態２の作業判別装置３０に対してデータ記憶部６３および判別結果記憶部６４が追加されている。実施の形態２と同様の構成要素には同一の符号を付して説明し、実施の形態２と重複する説明を省略する。以下、実施の形態２と異なる点を中心に説明する。
【００９６】
なお、図１１では、データ記憶部６３および判別結果記憶部６４を制御装置３ｇ内に備える例を示しているが、これに限らず、データ記憶部６３および判別結果記憶部６４を、ＰＬＣ（Programmable  Logic  Controller）といった制御装置３ｇの外部の制御装置、または制御装置３ｇの外部のパーソナルコンピュータ内に備えてもよい。
【００９７】
データ記憶部６３は、センサデータ出力部３１から出力されるセンサデータを、該センサデータの識別情報とともに、時系列データとして記憶する。識別情報は、例えばタイムスタンプであり、当該センサデータがいつ実行されたどの作業に対応するものであるかを識別するための情報である。
【００９８】
判別結果記憶部６４は、判別部３２から最終的に出力される判別結果を、該判別結果の識別情報とともに、記憶する。この識別情報は、上述した識別情報と同様に、例えばタイムスタンプであり、当該判別結果がいつ実行されたどの作業に対応するものであるかを識別するための情報である。
【００９９】
データ記憶部６３および判別結果記憶部６４に記憶されたデータは、例えば、学習装置４を実現するパーソナルコンピュータ、表示器５等に送信され、これらの装置に表示される。または、データ記憶部６３および判別結果記憶部６４に記憶されたデータは、他のパーソナルコンピュータまたはＰＬＣなど、制御装置３ｇとネットワークを介して接続される装置に送信されてもよい。
【０１００】
以上述べた以外の本実施の形態の構成及び動作は、実施の形態２と同様であるため、説明を省略する。本実施の形態では、制御装置３ｇは、実施の形態２と同様の効果を奏することができるとともに、過去のセンサデータおよび判別結果を記憶しておくことができる。過去の判別結果を記憶しておくことで、作業者は、後日、解析を行うことができる。また、記憶された一定期間のデータをまとめて表示することができる。なお、以上の説明では、実施の形態２の制御装置３ａにおいて、作業判別装置３０の替わりに作業判別装置３０ａを備える例を説明したが、これに限らず、実施の形態１、３−８と本実施の形態の構成および動作を組み合わせてもよい。
【０１０１】
実施の形態１０．
図１２は、本発明の実施の形態１０にかかるセンサデータ出力部の構成例を示す図である。実施の形態１０のセンサデータ出力部３１ｆは、実施の形態３で述べたフィルタ３１１と、ハイパスフィルタ、バンドパスフィルタ、ローパスフィルタのいずれかで構成されるフィルタ３１７を備える。本発明にかかる制御装置３ｈは、センサデータ出力部３１に替えてセンサデータ出力部３１ｆを備える以外は、実施の形態２の制御装置３ａと同様である。本実施の形態の機械システムは、制御装置３ａに替えて制御装置３ｆを備える以外は、実施の形態２の機械システムと同様である。以下、実施の形態２と異なる部分を説明し、実施の形態２と重複する説明は省略する。
【０１０２】
フィルタ３１１は、実施の形態３と同様に、力覚センサデータから所望の周波数帯の成分を抽出し、抽出した結果を状態データとして判別部３２へ出力する。フィルタ３１７は、モータ位置データから所望の周波数帯の成分を抽出し、抽出した結果を状態データとして判別部３２へ出力する。
【０１０３】
６軸の垂直多関節ロボットの場合、ロボット各軸のモータ位置は６次元となる。本実施の形態では、力覚センサの出力（６次元）とロボット各軸のモータ位置をそれぞれフィルタ３１１、フィルタ３１７を通過させて判別部３２へ入力する。これにより判別部３２への入力数は１２となる。
【０１０４】
以上のように、入力数が１２の場合にも、実施の形態３と同様にセンサデータをフィルタを通過させてから判別を行うことで、実施の形態３と同様の効果を奏することができる。なお、以上の説明では、実施の形態２の実施の形態２の制御装置３ａのセンサデータ出力部３１をセンサデータ出力部３１ｆに替える例を説明したが、これに限らず、実施の形態１，３−６，８，９と本実施の形態の構成および動作を組み合わせてもよい。
【０１０５】
実施の形態１１．
次に、本発明にかかる実施の形態１１の作業の良否の判別方法について説明する。本実施の形態の機械システムの構成は、実施の形態１と同様である。なお、実施の形態２−１０のいずれかの機械システムにおいて、本実施の形態の作業の良否の判別方法を適用してもよい。
【０１０６】
図１３は、実施の形態１１の作業の良否の判別方法の一例を示すフローチャートである。本実施の形態にかかる判別方法はロボット１がカバー組み付け、コネクタ挿入、基板挿入、軸の嵌め合いなどの組立作業を開始するとともに判別を開始し、該作業を終了するとともに判別を終了する。
【０１０７】
図１３に示すように、まず。センサデータ出力部３１が、センサデータを出力する（ステップＳ１）。センサデータ出力部３１は、制御周期ごとに、センサデータを出力する。センサデータは、ロボット１内部の状態量、ロボット１の手首部に取り付けた力覚センサの出力データなどである。ロボット内部の状態量はロボットの各軸のモータの位置、速度、電流、モータの位置指令などであり、力覚センサの出力データとしては３軸方向の力（Fx，Fy，Fz）と３軸周りのモーメント（Mx，My，Mz）などである。
【０１０８】
判別部３２は、センサデータ出力部３１からセンサデータを受け取ると、センサデータを入力としてＲＮＮ演算を行う（ステップＳ２）。詳細には、判別部３２の図２に示したモデル部３２１が、ＲＮＮ演算を行う。上述したように、センサデータは制御周期ごとに出力されるため、ＲＮＮ演算も制御周期ごとに行われる。ＲＮＮ演算では前回の制御周期の中間層の出力を記憶しておき、前回の制御周期における出力値と今回の周期の入力側の値（入力層の出力）から算出した項との重み付和を中間層の出力としている。出力層からは三次元の値を制御周期ごとに出力する。
【０１０９】
上述したように、実際の生産を開始する前に組立作業時の３軸方向の力（Fx，Fy，Fz）の時系列データ、その組立作業の作業結果をペアにして学習させた学習済モデルがモデル部３２１で用いられる。本実施の形態では、ロボット１を複数の動作速度で作業を実施し、データを採取しておく。具体的には、組立作業が正常に終了した場合は出力値（１，０，０）、位置ずれをわざと起して失敗した場合にデータの場合は出力値（０，１，０）、部品に一部欠損があったり部品に異物が付着して作業が失敗したりした場合は出力値（０，０，１）として学習させておく。なお次元を増加し、部品の異常状態を部品の欠損と異物の付着に分けるなど、複数の異常モードに分けて学習させてもよい。
【０１１０】
ステップＳ２の後、判別部３２の図２に示した異常判別部３２２は、モデル部３２１からの出力値の第２、３項のいずれかが規定値以上かどうか、すなわちモデル部３２１からの出力値の第２要素および第３要素うちの少なくともいずれか１つが規定値以上かどうかを判定する（ステップＳ３）。ステップＳ３でＮｏと判定されると、すなわち、第２要素および第３要素のいずれも規定値未満の場合、動作修正部３３はロボット１の動作を修正せずに動作を継続させる（ステップＳ７）。
【０１１１】
ステップＳ３でＹｅｓと判定されると、すなわちモデル部３２１からの出力値の第２要素および第３要素うちの少なくともいずれか１つが規定値以上の場合、異常判別部３２２は、第２項すなわち第２要素が、規定値以上がどうかを判定する（ステップＳ４）。第２要素が規定値以上の場合（ステップＳ４  Ｙｅｓ）、動作修正部３３は、一旦ロボット１を停止させて予め定められた位置までロボットを戻すとともに探索動作を行って作業を再開（リトライ）する（ステップＳ５）。探索動作では、ロボット１に取り付けた力覚センサや触覚センサの値に基づいて正しい挿入作業の位置を探索する。例えばカバーのないピンへのコネクタ挿入作業の場合であれば、複数の方向からロボットが把持したコネクタを低速で突き当ててピンの位置を導出し、導出した位置でコネクタ挿入作業を再度実施する。
【０１１２】
ステップＳ４でＮｏと判定されると、すなわち第３要素が規定値以上の場合、動作修正部３３は、ロボット１の動作をその場で停止させる（ステップＳ６）。
【０１１３】
以上の本発明にかかる作業の良否の判別方法の処理手順の一例を説明した。これにより、実施の形態１で述べた効果を奏することができる。
【０１１４】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０１１５】
１  ロボット、２  センサ、３，３ａ，３ｂ，３ｃ，３ｄ，３ｅ，３ｆ，３ｇ，３ｈ  制御装置、４  学習装置、５  表示器、３０，３０ａ  作業判別装置、３１，３１ｂ，３１ｃ，３１ｄ，３１ｅ，３１ｆ  センサデータ出力部、３２  判別部、３３  動作修正部、３４  動作制御部、４１  学習部、６１  補正量記憶部、６２  プログラム解釈部、６３  データ記憶部、３１１，３１７  フィルタ、３１２  外乱予測部、３１３  減算部、３１４  規定値通過判定部、３１５  移動量算出部、３１６  力覚データ推定部、３２１  モデル部、３２２  異常判別部。
【図１】
2020124760.tif 000005
【図２】
2020124760.tif 000006
【図３】
2020124760.tif 000007
【図４】
2020124760.tif 000008
【図５】
2020124760.tif 000009
【図６】
2020124760.tif 000010
【図７】
2020124760.tif 000011
【図８】
2020124760.tif 000012
【図９】
2020124760.tif 000013
【図１０】
2020124760.tif 000014
【図１１】
2020124760.tif 000015
【図１２】
2020124760.tif 000016
【図１３】
2020124760.tif 000017