(57)【要約】  異常原因を精度良く分析するため、原因分析部３４は、ロボット２２のテストデータを取得し、異常を検知する際に用いる閾値に基づいて、テストデータから異常に関連するデータを抽出する（スパース化する）。そして、原因分析部３４は、スパース化したセンサデータを、複数のセンサ間の類似関係に着目したグラフ構造の構造データに変換し、変換後の構造データを用いて、最尤推定法で計算できないような複雑なモデル（ノンパラメトリックなモデル）にも適用できる異常原因識別器を生成する。
2018220813.tif 000002
【特許請求の範囲】
【請求項１】
装置の動作に関するセンサデータを取得する取得部と、
取得した前記センサデータを用いて異常を検知する際に用いる閾値に基づいて、前記センサデータから異常に関連するデータを抽出する抽出部と、
抽出した前記異常に関連するデータを、複数のセンサ間の類似関係に着目したグラフ構造の構造データに変換する変換部と、
変換後の前記構造データを用いて、異常原因を識別する識別器を生成する生成部と、を備える判定装置。
【請求項２】
前記抽出部は、前記センサデータのうち、前記閾値により規定される正常範囲に含まれるセンサデータの値を０にすることを特徴とする請求項１に記載の判定装置。
【請求項３】
前記構造データは、Ｇｒａｍ行列であることを特徴とする請求項１又は２に記載の判定装置。
【請求項４】
前記生成部は、前記構造データを次元圧縮することを特徴とする請求項３に記載の判定装置。
【請求項５】
前記閾値を用いた異常検知を実行する異常検知実行部と、
前記識別器を用いた異常原因の識別を実行する異常原因識別部と、
前記異常検知の結果と前記異常原因の識別結果とに基づく出力を行う出力部と、
を更に備える請求項１〜４のいずれか一項に記載の判定装置。
【請求項６】
装置の動作に関するセンサデータを取得し、
取得した前記センサデータを用いて異常を検知する際に用いる閾値に基づいて、前記センサデータから異常に関連するデータを抽出し、
抽出した前記異常に関連するデータを、複数のセンサ間の類似関係に着目したグラフ構造の構造データに変換し、
変換後の前記構造データを用いて、異常原因を識別する識別器を生成する、
処理をコンピュータが実行することを特徴とする判定方法。
【請求項７】
前記抽出する処理では、前記センサデータのうち、前記閾値により規定される正常範囲に含まれるセンサデータの値を０にすることを特徴とする請求項６に記載の判定方法。
【請求項８】
前記構造データは、Ｇｒａｍ行列であることを特徴とする請求項６又は７に記載の判定方法。
【請求項９】
前記生成する処理では、前記構造データを次元圧縮することを特徴とする請求項８に記載の判定方法。
【請求項１０】
前記閾値を用いた異常検知を実行し、
前記識別器を用いた異常原因の識別を実行し、
前記異常検知の結果と前記異常原因の識別結果とに基づく出力を行う処理を前記コンピュータが更に実行することを特徴とする請求項６〜９のいずれか一項に記載の判定方法。
【請求項１１】
装置の動作に関するセンサデータを取得し、
取得した前記センサデータを用いて異常を検知する際に用いる閾値に基づいて、前記センサデータから異常に関連するデータを抽出し、
抽出した前記異常に関連するデータを、複数のセンサ間の類似関係に着目したグラフ構造の構造データに変換し、
変換後の前記構造データを用いて、異常原因を識別する識別器を生成する、
処理をコンピュータに実行させるための判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、判定装置、判定方法及び判定プログラムに関する。
【背景技術】
【０００２】
世界各国の生産現場では、主に産業用ロボットを導入することで自動化及び省人化を図っており、これによりコスト削減や生産効率の向上を図っている。産業用ロボット自体は数十年前から生産現場に導入されていたが、教示した動作を単純に繰り返すのみであったため、製品の変化には柔軟に対応することができなかった。また、変化に対応できず、不良品を大量に作り出す可能性があったため、作業員がロボットを逐一調整する必要があった。【０００３】
近年においては、人工知能の１分野である機械学習技術を利用して、ロボット自身に自律的に判断・対応させる知能化された自動化ラインの研究開発が積極的に行われている。また、生産設備の自律判断を実現するために、作業異常を精度よく検知するための技術が知られている（例えば、特許文献１等参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−７８４６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
生産ロボットの自律判断を実現するためには、作業異常を検知した場合に、部品等の破損が発生する前に早急に生産ロボットを停止することが求められる。一方、作業異常の原因を解析し、推定するためには詳細なセンサデータが得られることが好ましいが、異常検知後に早急に生産ロボットを停止してしまうと、それ以降はセンサデータを取得できないため、異常原因を推定することが難しくなる。【０００６】
なお、生産ロボットに限らず、他のロボットや装置においても同様の課題がある。【０００７】
１つの側面では、本発明は、異常原因を精度良く分析することが可能な判定装置、判定方法及び判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
一つの態様では、判定装置は、装置の動作に関するセンサデータを取得する取得部と、取得した前記センサデータを用いて異常を検知する際に用いる閾値に基づいて、前記センサデータから異常に関連するデータを抽出する抽出部と、抽出した前記異常に関連するデータを、複数のセンサ間の類似関係に着目したグラフ構造の構造データに変換する変換部と、変換後の前記構造データを用いて、異常原因を識別する識別器を生成する生成部と、を備えている。
【発明の効果】
【０００９】
異常原因を精度良く分析することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る作業装置の全体構成を説明するための図である。
【図２】センサの出力値の変化の一例を示す図である。
【図３】処理装置のハードウェア構成を示す図である。
【図４】処理装置の機能ブロック図である。
【図５】事前準備段階における処理装置の処理を示すフローチャートである。
【図６】運用段階における処理装置の処理を示すフローチャートである。
【図７】図７（ａ）〜図７（ｃ）は、図５、図６の処理を説明するための図である。
【図８】図８（ａ）は、スパース化したセンサデータの一例を示す図であり、図８（ｂ）は、異常モードごとに生成された大量のデータの一例を示す図である。
【図９】図９（ａ）は、第１の実施形態と比較例との正解率を比較するためのグラフであり、図９（ｂ）は、比較例においてスパース化モデルから生成された大量のデータの一例を示す図である。
【図１０】第２の実施形態の運用段階における処理装置の処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
《第１の実施形態》
以下、第１の実施形態について、図１〜図９に基づいて詳細に説明する。
【００１２】
図１は、第１の実施形態に係る作業装置１００の全体構成を説明するための図である。図１に示すように、作業装置１００は、ロボット２２、コントローラ１４、カメラ１２、処理装置１０などを備える。
【００１３】
ロボット２２は、例えば産業用ロボットである。ロボット２２は、例えば、ステージ２５と、マニピュレータ２６と、を有する。マニピュレータ２６は、作用部２８を用いて作業を行う。マニピュレータ２６が実行する作業は、例えば、プリント基板に搭載する部品をピックアップし、部品をプリント基板上に搬送し、プリント基板に部品を搭載する作業などである。作用部２８は、例えばハンド機構などである。ステージ２５は、マニピュレータ２６を支持する。ロボット２２は、コントローラ１４により制御される。コントローラ１４は、一連の作業の時系列の教示データ列に基づいて、ロボット２２を動作させる。ここで、教示データ列は、例えば、図３に示す入出力インタフェース９７を介して外部から取得してもよいし、予めＨＤＤ９６等に格納されていてもよい。
【００１４】
センサ２４は、マニピュレータ２６に設けられ、ロボット２２が行う作業の状況を検出する。センサ２４としては、例えばマニピュレータ２６の歪みを検出する歪みセンサや、３軸または６軸力覚センサ、荷重センサ、圧力センサ、加速度センサ、マイクロフォン等を用いることができる。センサ２４は、マニピュレータ２６に対して複数設けられているものとする。なお、センサ２４として３軸または６軸力覚センサを用いる場合、作用点の力ベクトルおよび／またはトルクを検出することができる。図２には、センサ２４の出力値の変化の一例が示されている。なお、図２において、横軸はロボット２２の作業開始からの時間（時刻）を表し、縦軸はセンサ２４の出力値（センサ値）を表す。図２に示すように、ロボット２２が一連の動作を行っている間に、センサ２４の出力値（実線で示す波形）は変化する。なお、図２において、破線で上下挟まれた範囲は、後述する異常判断において利用する閾値を示している。
【００１５】
図１に戻り、カメラ１２は、例えば、ＣＣＤ（Charge Coupled Device）センサまたはＣＭＯＳ（Complimentary Metal Oxide Semiconductor）センサ等の２次元画像センサであるものとする。ただし、これに限られるものではなく、カメラ１２は、１次元画像センサであってもよい。
【００１６】
処理装置１０は、カメラ１２が取得した画像データ、センサ２４が検出するデータ、作用部２８の座標位置などに基づいて、ロボット２２の作業状況の良否（正常か異常か）を判定する。また、処理装置１０は、異常と判定した場合に、異常の原因を特定する。なお、以下においては、説明の便宜上、カメラ１２が取得した画像データ、センサ２４が検出するデータ、作用部２８の座標位置などの各種データを「センサデータ」と呼ぶものとする。
【００１７】
図３には、処理装置１０のハードウェア構成が示されている。図３に示すように、処理装置１０は、ＣＰＵ（Central Processing Unit）９０、ＲＯＭ（Read Only Memory）９２、ＲＡＭ（Random Access Memory）９４、記憶部（ここではＨＤＤ（Hard Disk Drive））９６、入出力インタフェース９７、表示部９３、入力部９５、及び可搬型記憶媒体用ドライブ９９等を備えている。これら処理装置１０の構成各部は、バス９８に接続されている。表示部９３は、液晶ディスプレイ等を含み、入力部９５は、キーボードやマウス、入力ボタン等を含む。処理装置１０では、ＲＯＭ９２あるいはＨＤＤ９６に格納されているプログラム（判定プログラムを含む）、或いは可搬型記憶媒体用ドライブ９９が可搬型記憶媒体９１から読み取ったプログラム（判定プログラムを含む）をＣＰＵ９０が実行することにより、図４に示す、各部の機能が実現される。
【００１８】
図４は、処理装置１０の機能ブロック図である。処理装置１０は、ＣＰＵ９０がプログラムを実行することで、センサデータ取得部３０、異常検知実行部としての異常判断部３２、異常原因識別部としての原因分析部３４、及び動作補正部３６として機能する。なお、図４に示す学習データ格納部４０は、ＨＤＤ９６等により実現されている。学習データ格納部４０には、後述する各種データが格納されている。
【００１９】
センサデータ取得部３０は、センサデータ（カメラ１２が取得した画像データ、センサ２４が検出するデータ、作用部２８の座標位置など）を取得し、異常判断部３２に送信する。
【００２０】
異常判断部３２は、センサデータ取得部３０から受信したセンサデータを用いて、異常の発生有無を判断する。具体的には、異常判断部３２は、学習データ格納部４０に格納されている異常検知識別器情報から得られる異常検知識別器を用いて、異常の発生有無を判断する。なお、異常判断部３２は、事前に、学習データ格納部４０に格納されている学習データの一部（訓練データと呼ぶ）を用いて、異常検知識別器情報を作成し、学習データ格納部４０に格納する。
【００２１】
原因分析部３４は、異常判断部３２において異常と判断されたときのセンサデータに基づいて、異常の原因を分析する。具体的には、原因分析部３４は、学習データ格納部４０に格納されている異常原因識別器情報から得られる異常原因識別器を用いて、原因分析を行う。なお、原因分析部３４は、事前に、学習データ格納部４０に格納されている学習データの一部（テストデータと呼ぶ）を用いて、異常原因識別器情報を作成し、学習データ格納部４０に格納する。ここで、異常原因には、嵌合位置ズレｘ方向異常や、ピン破損異常などが含まれる。嵌合位置ズレｘ方向異常は、プリント基板に形成されている孔と、部品に設けられたピンとのｘ方向の位置ズレにより発生する異常を意味する。また、ピン破損異常は、部品に設けられたピンの破損（曲がり等）による異常を意味する。これら各異常は、異常を解消するために必要な手段や措置によって分類されるものとする。本実施形態では、各異常は、ロボット２２を停止する必要のある異常、ロボット２２に再度動作を実行させる（リトライする）必要のある異常、ロボット２２の動作を補正する必要のある異常、に分類されるものとする。
【００２２】
動作補正部３６は、原因分析部３４による分析の結果、異常の原因が、補正により対応可能な原因であった場合に、ロボット２２の動作を補正する。
【００２３】
学習データ格納部４０は、異常判断部３２が異常判断に用いるデータや原因分析部３４が原因分析に用いるデータを格納する。例えば、学習データ格納部４０は、異常判断部３２が用いる訓練データや原因分析部３４が用いるテストデータを格納する。また、異常判断部３２が用いる異常検知識別器情報や、原因分析部３４が用いる異常原因識別器情報を格納する。
【００２４】
次に、処理装置１０の処理について、図５、図６のフローチャートに沿って詳細に説明する。
【００２５】
（事前準備段階）
図５には、事前準備段階における処理装置１０の処理がフローチャートにて示されている。
【００２６】
ここで、本実施形態では、前述したように、学習データ格納部４０に、学習データとして、２種類のデータ（訓練データとテストデータ）が格納されている。訓練データは、異常検知識別器情報を生成するために用いるデータであり、テストデータは異常原因識別器情報を生成するために用いるデータである。
【００２７】
図５のステップＳ１０において、異常判断部３２は、学習データ格納部４０から訓練データを取得する。
【００２８】
次いで、ステップＳ１２では、異常判断部３２が、訓練データから異常検知のための異常検知識別器を作成する。具体的には、異常判断部３２は、訓練データに基づいて、図２において破線で示すような異常検知のための閾値を求める。なお、閾値は、センサごと又はセンサ群ごとに求めるものとする。異常判断部３２は、閾値の情報に基づいて異常検知識別器を作成する。なお、異常判断部３２は、求めた閾値の情報を、異常検知識別器情報として学習データ格納部４０に格納しておく。なお、異常検知アルゴリズムとしては、様々なアルゴリズムを用いることができるが、異常検知アルゴリズムの閾値を用いることで、各センサの異常スコア値（または異常値）が得られるものとする。
【００２９】
次いで、ステップＳ１４では、原因分析部３４が、学習データ格納部４０からテストデータを取得する。例えば、図７（ａ）に示すようなテストデータｘ1…ｘ6等を取得する。なお、ｉはセンサの番号を意味し、ｘiは、センサｉのテストデータを意味する。
【００３０】
次いで、ステップＳ１６では、原因分析部３４が、テストデータを異常検知の閾値を用いてスパース化する。スパース化により、異常に関連するデータのみを抽出することができる。具体的には、原因分析部３４は、テストデータを、異常検知識別器に順次入力し、異常スコア値を取得する。そして、原因分析部３４は、取得した異常スコア値を異常検知で用いられた閾値でスパース化する。ここで、最も自然なセンサデータのスパース化は、スパース化後の異常スコアをｓi、閾値をｔｈiとすると、次式（１）にて表すことができる。
【００３１】
【数１】
2018220813.tif 000003
【００３２】
ここで、ａi（ｘi）は、異常スコア値を意味し、Ｄをセンサｉにおける学習データとすると、次式（２）にて表すことができる。
【００３３】
【数２】
2018220813.tif 000004
【００３４】
図７（ｂ）の上段には、スパース化されたセンサデータｓiの一例が示されている。スパース化されたセンサデータは、元データ（図７（ａ）のデータ）と同様に時系列データである。したがって、スパース化されたセンサデータは何らかの代表値に変えておく必要がある。ここではある窓幅（図７（ｂ）の上段の破線枠参照）を設定し、その平均値を代表値とする。これらを全センサ、および全テストデータに対して実施して、異常原因識別器を作るためのデータセットを用意する。なお、図８（ａ）には、スパース化したセンサデータ（異常に関連するデータ）の一例が示されている。図８（ａ）は、一例としてセンサ１〜３のスパース化されたセンサデータの関係を３次元座標にて示したものである。図８（ａ）において同一の形状で表されている各点は、同一の原因の異常が発生しているときに得られたデータ（スパース化後）を意味している。
【００３５】
次いで、ステップＳ１８では、原因分析部３４が、異常スコア間の類似関係を辺、センサを点とするグラフ構造を作成する。図７（ｂ）の下段には、グラフ構造の一例が示されている。
【００３６】
ここでは、Ｌ１正則化（ラッソ：Lasso）といったテクニックを用いず、最尤推定法で計算できないような複雑なモデルも適用できるようにするために、分散共分散行列（精度行列）の一般表現であるＧｒａｍ行列を構造化に用いる。Ｇｒａｍ行列Ｋは次式（３）で表現される。なお、ｋは定数である。
【００３７】
【数３】
2018220813.tif 000005
【００３８】
なお、Ｋは、異常モードｐごとに作成される。
【００３９】
ここで、行列要素は式（４）のように表される。＜＞は内積の記号であり、Ｈｉｌｂｅｒｔ空間となる。
【００４０】
【数４】
2018220813.tif 000006
【００４１】
このＧｒａｍ行列の行列要素のことを半正定値カーネルという。この半正定値カーネルはＨｉｌｂｅｒｔ空間を前提とするために、下記（５）に示す３つの条件（内積の公理）を満たす。
【００４２】
【数５】
2018220813.tif 000007
【００４３】
本技術で重要なのは性質（ａ）、（ｂ）である。性質（ａ）からＧｒａｍ行列は対称行列であり、性質（ｂ）からＧｒａｍ行列は半正定値性を有している。対称行列は有用だが、半正定値性はＧｒａｍ行列を用いて確率モデルを作成する際には問題となる。つまり固有値が０の場合も想定され、その場合にはＧｒａｍ行列は特異行列となり、確率モデルが原点に収束してしまう。したがって、固有値分解を実施し、固有値が０より大きい固有値と、固有ベクトルのみを抽出し、固有値が０より大きなものを行列化した対角化行列と、選択した固有値に対応する固有ベクトルを並べた直交行列を再構成する（次元圧縮する）。
【００４４】
したがって、次のステップＳ２０では、原因分析部３４が、正定値Ｇｒａｍ行列を導出する。この場合、原因分析部３４は、以下の式（６）でスペクトル分解することでＧｒａｍ行列を正定値化する。このときカーネルとしては、ガウスカーネルを用いることができる。
【００４５】
【数６】
2018220813.tif 000008
【００４６】
次いで、ステップＳ２２では、原因分析部３４が、正定値Ｇｒａｍ行列から確率分布を推定する。ここで、正定値Ｇｒａｍ行列から得られる確率モデルの一つとしてカーネル密度推定が考えられ、次式（７）にて表される。
【００４７】
【数７】
2018220813.tif 000009
【００４８】
カーネル密度推定はノンパラメトリックな確率密度推定アプローチであり、ヒストグラム密度推定の不連続性を克服した拡張とみなされる。正規分布などのパラメトリックモデルとは異なり、データ分布からモデルを推定するために表現能力は非常に高いことが利点に挙げられ、正規分布とは異なる母集団分布にも対応可能である（もちろん、母集団が正規分布でも用いることが出来る）。
【００４９】
次いで、ステップＳ２４では、原因分析部３４が、確率分布を用いてデータを多数生成する。この場合、上式（７）で表されるカーネル密度推定を用いて、異常モードごとにデータを大量に生成する。図８（ｂ）には、カーネル密度推定を用いて、異常モードごとに生成された大量のデータの一例が示されている。なお、同一の形状のプロットは、同一の異常モードのカーネル密度推定から得られた大量のデータを意味する。また、図８（ｂ）の各軸は、第１主成分〜第３主成分（３つのセンサから得られたセンサデータをスパース化したもの）である。
【００５０】
次いで、ステップＳ２６では、原因分析部３４が、生成したデータから異常原因識別器を作成する。ここでは、原因分析部３４は、異常原因毎に生成された大量のデータから異常原因識別器ｐ（Ｃp｜ｘ）を作成し、原因を分類する。なお、Ｃpは異常のクラスを表し、ｐは異常モードのラベルを表す（例えば、嵌合位置ズレx方向異常をｐ＝１、ピン破損異常をｐ＝２などとする）。異常原因識別器のアルゴリズムは分類に用いることができればよい。例えば、サポートベクタ―マシーン（Support Vector Machine：SVM）を用いることができる。この場合、カーネルとしてはガウスカーネルを用いることができる。
【００５１】
以上のように、ステップＳ２６までの処理が終了すると、図５の処理が終了する。本実施形態では、図５の処理を行うことで、異常に関連するデータに基づいて、非正規分布にも対応可能な構造化モデルを作成し、作成した構造化モデルから生成した大量のデータから異常モードを推定する異常原因識別器を作成する。これにより、非正規分布に対応可能であり、高精度に異常モードを推定することが可能な異常原因識別器を作成することができる。
【００５２】
（運用段階）
図６には、運用段階における処理装置１０の処理がフローチャートにて示されている。
【００５３】
図６の処理が行われる前提として、図５の処理がすでに実行されているものとする。図６の処理では、まず、ステップＳ５０において、異常判断部３２が、作業開始からの時間ｔを０に設定する。なお、作業開始からの時間ｔは、図６の処理が開始されると、時間経過に応じて更新される。
【００５４】
次いで、ステップＳ５２では、異常判断部３２が、ｔが作業終了時間Ｔより小さいか否かを判断する。このステップＳ５２の判断が否定された場合、すなわち、作業開始からの時間ｔが作業終了時間Ｔ以上となった場合（作業が終了した場合）には、図６の全処理を終了する。一方、ステップＳ５２の判断が肯定された場合には、ステップＳ５４に移行する。
【００５５】
次いで、ステップＳ５４では、異常判断部３２が、センサデータｘjtを取得する。なお、ｊはセンサ番号を意味する。次いで、ステップＳ５６では、異常判断部３２が、上式（１）を用いて異常スコアｓjtを計算する。前述のように、本実施形態では、異常スコアを出力する異常検知アルゴリズムが前提となっているため、センサ毎、あるいはセンサ群ごとに異常スコアｓjtを計算することができる。
【００５６】
次いで、ステップＳ５８では、異常判断部３２が、異常検知識別器を用いて、異常か否かを判断する。この場合、異常判断部３２は、図５のステップＳ１２で作成された異常検知識別器を用い、センサデータが閾値の範囲（図２の破線で挟まれた範囲）から外れた場合に、異常と判断する。ステップＳ５８の判断が否定された場合、すなわち、正常である場合には、ステップＳ５２に戻るが、肯定された場合には、ステップＳ６０に移行する。
【００５７】
ステップＳ６０に移行すると、異常判断部３２は、ロボット２２を一時停止する。
【００５８】
次いで、ステップＳ６２では、原因分析部３４が、異常原因識別器を用いて原因判定を行う。この場合、原因分析部３４は、異常判断前後の異常スコアｓjtを異常原因識別器に代入し、どの異常であるかを判定する。図７（ｃ）には、本ステップＳ６２の処理内容が模式的に示されている。なお、本実施形態では、前述したように、各異常が、ロボット２２の停止が必要な異常である「異常１」と、ロボット２２のリトライが必要な異常である「異常２」と、ロボット２２の動作の補正が必要な異常である「異常３」と、に分類されている。したがって、原因分析部３４は、判定結果（異常の原因）に基づいて、異常が異常１〜３のいずれに該当するかを判定する。
【００５９】
ここで、本実施形態においては、原因分析部３４が用いる異常原因識別器は、スパース化したセンサデータ、すなわち異常に関連する重要なデータに基づいて生成された異常原因識別器である。また、原因分析部３４が用いる異常原因識別器は、最尤推定法で計算できないような複雑なモデルにも適用できるような異常原因識別器である。このため、原因分析部３４は、異常を検知したタイミング又は直後のタイミングで得られたセンサデータを用いて、異常原因の分析を精度よく行うことが可能である。
【００６０】
次いで、ステップＳ６４では、原因分析部３４が、ステップＳ６２の判定結果が異常１か否かを判断する。このステップＳ６４の判断が肯定された場合には、ステップＳ６６に移行し、ロボット２２を停止させた後、図６の全処理を終了する。
【００６１】
一方、ステップＳ６４の判断が否定され、ステップＳ６８に移行すると、原因分析部３４は、異常２か否かを判断する。このステップＳ６８の判断が肯定された場合には、ステップＳ７０に移行し、原因分析部３４は、リトライの実行をロボット２２に対して指示する。
【００６２】
これに対し、ステップＳ６８の判断が否定された場合には、異常３であるため、原因分析部３４は、ステップＳ７２に移行して、動作補正部３６に対して補正を実行するよう指示を出す。動作補正部３６は、異常原因に対応する補正方法で、ロボット２２の動作を補正する。
【００６３】
なお、ステップＳ７０又はステップＳ７２の処理が行われた後は、ステップＳ５２に戻り、ステップＳ５２以降の処理を繰り返し実行する。これにより、ロボット２２に異常が発生した場合に即座にロボット２２を停止させたとしても、異常原因を精度よく判定し、判定した異常原因に適した対応（停止、リトライ、補正等）を行うことができる。
【００６４】
これまでの説明からわかるように、原因分析部３４により、テストデータを取得する取得部、テストデータをスパース化して異常に関するデータを抽出する抽出部、スパース化したテストデータを複数のセンサ間の類似関係に着目したグラフ構造の構造データに変換する変換部、異常原因識別器を生成する生成部、としての機能が実現されている。
【００６５】
以上、詳細に説明したように、本第１の実施形態によると、原因分析部３４は、ロボット２２のセンサデータ（テストデータ）を取得し、異常を検知する際に用いる閾値に基づいて、テストデータから異常に関連するデータ（スパース化したセンサデータ）を抽出する。そして、原因分析部３４は、スパース化したセンサデータを、複数のセンサ間の類似関係に着目したグラフ構造の構造データに変換し、変換後の構造データを用いて、異常原因識別器を生成する。これにより、本実施形態では、原因分析部３４が用いる異常原因識別器が、スパース化したセンサデータを用いて生成され、最尤推定法で計算できないような複雑なモデル（ノンパラメトリックなモデル）にも適用できるような異常原因識別器となっている。このため、原因分析部３４は、異常を検知したタイミング又は直後のタイミングで得られたセンサデータを用いて、異常原因の分析を精度よく行うことが可能である。これにより、ロボット２２が製造している製品の一部（部品等）が破壊される前にロボット２２を停止することができる。
【００６６】
例えば、異常判断後から４００ｍｓｅｃ程度経過すると、製品の一部が破壊されてしまうが、本実施形態では、異常判断から短時間（例えば１００ｍｓｅｃ程度）で原因分析ができるため、製品の一部を破壊することなく、精度よく原因分析を行うことができる。例えば、異常判断直後で部品が破損していない段階のセンサデータ（異常判断から１００ｍｓｅｃ後のデータ）を用いても、本実施形態によれば、９７％という高い正解率を得ることができた（図９（ａ）参照）。なお、本発明者が、ガウシアングラフィカルモデルを用いてセンサ群の依存関係を構造化する技術を用いた異常分析（比較例）を行ったところ、スパース化されたセンサデータに基づくモデルから大量に生成されたデータは、図９（ｂ）のようになった。図９（ｂ）と図８（ｂ）を比較するとわかるように、比較例（図９（ｂ））では各異常モードのデータが入り混じっているが、本発明（図８（ｂ））では、各異常モードのデータが比較的分離された状態となっている。この比較例の場合には、異常判断直後で部品が破損していない段階のセンサデータ（異常判断から１００ｍｓｅｃ後のデータ）を用いると、正解率は７２％程度であった（図９（ａ）参照）。なお、図９（ａ）の例では、テストデータとして１６２個のデータを用いた。テストデータの内訳は、正常データが１７個、ピン曲がりが５個、＋ｘ方向、−ｘ方向、＋ｙ方向、−ｙ方向のズレがそれぞれ３５個であった。
【００６７】
また、本実施形態では、原因分析部３４は、テストデータのうち、閾値により規定される範囲（正常範囲）に含まれるセンサデータの値を０にすることでスパース化を行うこととしている。これにより、簡易かつ適切にスパース化を行い、異常に関連するデータのみを取得することが可能である。
【００６８】
また、本実施形態では、原因分析部３４は、Ｇｒａｍ行列を次元圧縮することとしている。これにより、固有値を０よりも大きい固有値のみにすることができるため、余分な計算が不要となり、モデル化しやすくなり、ひいては異常原因の特定性能を向上することができる。
【００６９】
《第２の実施形態》
次に、第２の実施形態について、図１０のフローチャートに沿って説明する。本第２の実施形態では、第１の実施形態の図６の処理の一部を変更し、異常検知識別器の精度を向上することとしている。なお、図１０の処理において、図６の処理と異なる箇所は太線にて示している。
【００７０】
本第２の実施形態では、ステップＳ５０〜Ｓ７０までの処理は、第１の実施形態と同様に実行するが、ステップＳ５８の判断が否定された場合に、ステップＳ１７４に移行する点が異なる。また、ステップＳ６８の後のステップＳ１７１において、「異常３」であるか否かを判断し、判断が肯定された場合にステップＳ７２に移行し、判断が否定された場合（正常と判定された場合）に、ステップＳ１７８に移行する点が異なる。
【００７１】
図１０の処理では、異常判断部３２が異常検知識別器を用いて正常と判断したが（Ｓ５８：Ｎｏ）、原因分析部３４が異常原因識別器を用いて何らかの異常があると判断した場合（Ｓ１７４：Ｙｅｓ）で、かつ異常１又は３のように補正又は停止が必要な異常と判断した場合（Ｓ１７６）に、ロボット２２を一旦停止する（Ｓ１７８）。そして、原因分析部３４は、作業者に正常か異常かを判断させるための出力（表示等）を行い、作業者に正常か異常かを判断させ、その結果に基づいて（作業者が異常と判断した場合に）、各識別器を更新する（再学習する）処理を実行する（Ｓ１８０）。
【００７２】
また、異常判断部３２が異常検知識別器を用いて異常と判断したが（Ｓ５８：Ｙｅｓ）、原因分析部３４が異常原因識別器を用いた原因判定（Ｓ６２）の結果、正常と判定した場合（Ｓ１７１：否定）にも、同様に、ロボット２２を一旦停止する（Ｓ１７８）。そして、原因分析部３４は、作業者に正常か異常かを判断させるための出力（表示等）を行い、作業者に正常か異常かを判断させ、その結果に基づいて、各識別器を更新する（再学習する）処理を実行する（Ｓ１８０）。
【００７３】
なお、ステップＳ１８０の後は、ステップＳ５０に戻る。
【００７４】
なお、本実施形態では、原因分析部３４が、異常検知識別器を用いた判断結果と異常原因識別器を用いた判断結果とに基づく出力を行う出力部として機能している。
【００７５】
以上説明したように、本第２の実施形態によると、処理装置１０が図１０の処理を実行することにより、異常検知の結果と異常原因分析との結果が一致しているか否かを確認し、矛盾がある場合に作業者に正常か異常かを判断させる。そして、異常判断部３２は、作業者が異常と判断した場合に各識別器を再学習する。これにより、再学習後の識別器を用いることで、異常原因の特定精度を向上することが可能となる。
【００７６】
なお、上記第１、第２の実施形態では、生産ロボット（産業用ロボット）の異常検知及び異常原因判定に、本発明を適用する場合について説明したが、これに限られるものではない。例えば生産ロボット以外のロボットの異常検知及び異常原因判定に本発明を適用してもよいし、ロボット以外の装置の異常検知及び異常原因判定に本発明を適用してもよい。
【００７７】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【００７８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００８０】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【００８１】
１０  処理装置（判定装置）
２２  ロボット（装置）
２４  センサ
３２  異常判断部（異常検知実行部）
３４  原因分析部（取得部、抽出部、変換部、生成部、異常原因識別部、出力部）
【図１】
2018220813.tif 000010
【図２】
2018220813.tif 000011
【図３】
2018220813.tif 000012
【図４】
2018220813.tif 000013
【図５】
2018220813.tif 000014
【図６】
2018220813.tif 000015
【図７】
2018220813.tif 000016
【図８】
2018220813.tif 000017
【図９】
2018220813.tif 000018
【図１０】
2018220813.tif 000019
【手続補正書】
【提出日】令和1年11月12日(2019.11.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
装置の動作に関するセンサデータを取得する取得部と、
取得した前記センサデータを用いて異常を検知する際に用いる閾値に基づいて、前記センサデータから異常に関連するデータを抽出する抽出部と、
抽出した前記異常に関連するデータを、複数のセンサ間の類似関係に着目したグラフ構造の構造データに変換する変換部と、
変換後の前記構造データを用いて、異常原因を識別する識別器を生成する生成部と、を備える判定装置。
【請求項２】
前記抽出部は、前記センサデータのうち、前記閾値により規定される正常範囲に含まれるセンサデータの値を０にすることを特徴とする請求項１に記載の判定装置。
【請求項３】
前記構造データは、Ｇｒａｍ行列であることを特徴とする請求項１又は２に記載の判定装置。
【請求項４】
前記生成部は、前記構造データを次元圧縮することを特徴とする請求項３に記載の判定装置。
【請求項５】
前記閾値を用いた異常検知を実行する異常検知実行部と、
前記識別器を用いた異常原因の識別を実行する異常原因識別部と、
前記異常検知の結果と前記異常原因の識別結果とに基づく出力を行う出力部と、
を更に備える請求項１〜４のいずれか一項に記載の判定装置。
【請求項６】
装置の動作に関するセンサデータを取得し、
取得した前記センサデータを用いて異常を検知する際に用いる閾値に基づいて、前記センサデータから異常に関連するデータを抽出し、
抽出した前記異常に関連するデータを、複数のセンサ間の類似関係に着目したグラフ構造の構造データに変換し、
変換後の前記構造データを用いて、異常原因を識別する識別器を生成する、
処理をコンピュータが実行することを特徴とする判定方法。
【請求項７】
装置の動作に関するセンサデータを取得し、
取得した前記センサデータを用いて異常を検知する際に用いる閾値に基づいて、前記センサデータから異常に関連するデータを抽出し、
抽出した前記異常に関連するデータを、複数のセンサ間の類似関係に着目したグラフ構造の構造データに変換し、
変換後の前記構造データを用いて、異常原因を識別する識別器を生成する、
処理をコンピュータに実行させるための判定プログラム。
【国際調査報告】
2018220813.tif 000020
2018220813.tif 000021
2018220813.tif 000022
2018220813.tif 000023