(57)【要約】【課題】所定装置の動作に適した処理を行うこと。【解決手段】処理装置１０００は、ＣＰＵ５０１を備える。ＣＰＵ５０１は、入力軸エンコーダ２６１ｉを有するロボットアームから、ロボットアームの動作に対応して出力される入力軸エンコーダ２６１ｉのエンコーダ値θ１ｉを時系列で取得する。ＣＰＵ５０１は、入力軸エンコーダ２６１ｉのエンコーダ値θ１ｉを所定条件に基づいて区分けし、区分けした入力軸エンコーダ２６１ｉのエンコーダ値θ１ｉをクラスタリングする。【選択図】図３
2020019133.tif 000002
【特許請求の範囲】
【請求項１】
処理部を備え、
前記処理部は、
第１センサを有する所定装置から、前記所定装置の動作に対応して出力される前記第１センサのセンサ値を時系列で取得し、
前記第１センサのセンサ値を所定条件に基づいて区分けし、
区分けした前記第１センサのセンサ値をクラスタリングする、
ことを特徴とする処理装置。
【請求項２】
前記処理部は、前記第１センサのセンサ値を微分した値が第１閾値よりも大きい区間を、前記第１センサのセンサ値から抽出して、前記第１センサのセンサ値を区分けする、
ことを特徴とする請求項１に記載の処理装置。
【請求項３】
前記処理部は、区分けした前記第１センサのセンサ値を、クラスタリングにより、分散が第２閾値以下の第１クラスタ、又は分散が前記第２閾値よりも大きい第２クラスタに分類する、
ことを特徴とする請求項１又は２に記載の処理装置。
【請求項４】
前記処理部は、前記所定装置から更に所定区間の前記第１センサのセンサ値を取得し、前記所定区間の前記第１センサのセンサ値が、前記第１クラスタ及び前記第２クラスタのいずれに属するかを特定する、
ことを特徴とする請求項３に記載の処理装置。
【請求項５】
前記所定装置は、前記所定装置の動作に対応してセンサ値を出力する、前記第１センサとは異なる第２センサを有しており、
前記処理部は、
前記第１センサのセンサ値の時系列と同じ時系列で、前記第２センサのセンサ値を取得し、
前記第１クラスタに属すると特定した前記所定区間の前記第１センサのセンサ値に対応する前記第２センサのセンサ値と、第１基準値との差が、第１所定値を超える場合、所定データを出力する、
ことを特徴とする請求項４に記載の処理装置。
【請求項６】
前記処理部は、
前記第２クラスタに属すると特定した前記所定区間の前記第１センサのセンサ値に対応する前記第２センサのセンサ値と、第２基準値との差が、第２所定値を超える場合、前記所定データを出力する、
ことを特徴とする請求項５に記載の処理装置。
【請求項７】
前記処理部は、区分けした前記第１センサのセンサ値を点データに圧縮してクラスタリングする、
ことを特徴とする請求項１乃至６のいずれか１項に記載の処理装置。
【請求項８】
前記第１センサは、前記所定装置に含まれる所定部位の変位に応じた信号を出力するエンコーダであり、
前記第１センサのセンサ値は、前記エンコーダのエンコーダ値である、
ことを特徴とする請求項１に記載の処理装置。
【請求項９】
前記エンコーダが、前記所定部位を駆動するモータの回転子の回転角度に応じた信号を出力するロータリエンコーダである、
ことを特徴とする請求項８に記載の処理装置。
【請求項１０】
前記第２センサが、前記所定装置に含まれる所定部位を駆動するモータに供給する電流に応じた信号を出力する電流センサであり、
前記第２センサのセンサ値が、前記電流センサの電流値である、
ことを特徴とする請求項５又は６に記載の処理装置。
【請求項１１】
前記処理部は、前記エンコーダ値に基づき前記所定部位の変位速度を算出し、前記変位速度の値が、第１閾値よりも大きい区間を、前記エンコーダ値から抽出して、前記エンコーダ値を区分けする、
ことを特徴とする請求項８に記載の処理装置。
【請求項１２】
前記処理部は、
前記第１基準値を、前記第１クラスタに属する、区分けした前記第１センサのセンサ値に対応する前記第２センサのセンサ値から求める、
ことを特徴とする請求項５又は６に記載の処理装置。
【請求項１３】
前記処理部から前記所定データの入力を受けて警告を発する装置を更に備える、
ことを特徴とする請求項５又は６に記載の処理装置。
【請求項１４】
前記処理部は、
前記所定区間の前記第１センサのセンサ値が、前記第１クラスタ及び前記第２クラスタのいずれに属するかに応じて、前記所定装置が動作した動作の種類を特定する、
ことを特徴とする請求項４乃至６のいずれか１項に記載の処理装置。
【請求項１５】
請求項１乃至１４のいずれか１項に記載の処理装置と、前記所定装置と、を備え、
前記所定装置は、生産装置であることを特徴とする生産システム。
【請求項１６】
請求項１乃至１４のいずれか１項に記載の処理装置と、前記所定装置と、を備え、
前記所定装置は、ロボットアームであることを特徴とするロボット装置。
【請求項１７】
請求項１５に記載の生産システムを用いて物品を製造することを特徴とする物品の製造方法。
【請求項１８】
処理部の処理方法であって、
第１センサを有する所定装置から、前記所定装置の動作に対応して出力される前記第１センサのセンサ値を時系列で取得し、
前記第１センサのセンサ値を所定の条件に基づいて区分けし、
区分けした前記第１センサのセンサ値をクラスタリングする、
ことを特徴とする処理方法。
【請求項１９】
前記第１センサのセンサ値を微分した値が第１閾値よりも大きい区間を、前記第１センサのセンサ値から抽出して、前記第１センサのセンサ値を区分けする、
ことを特徴とする請求項１８に記載の処理方法。
【請求項２０】
請求項１８又は１９に記載の処理方法をコンピュータに行わせるプログラムが記録された、前記コンピュータで読み取り可能な非一時的な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理装置の技術に関する。
【背景技術】
【０００２】
多関節のロボットアームなど、動作を伴う装置においては、その保守の効率化が課題となっている。例えばロボットアームが備える減速機やベアリングが破損するなど、ロボットアームが故障した場合、生産ラインを止めてロボットアームの修理などを行うことになる。このため、装置が故障に至る前の定期的な点検時に装置の保全を行うことが望まれている。
【０００３】
特許文献１には、正常状態の装置を動作させて基準値を取得し、基準値と実測値との乖離に基づいて装置の故障を予知する方法が開示されている。特許文献２には、装置のシミュレーション結果を基準値とし、基準値と実測値との乖離に基づいて装置の故障を予知する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６３−１２３１０５号公報
【特許文献２】特開平５−７７１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
装置の動作には、複数の種類がある。ロボットアームを例に説明すると、２種類の動作が知られている。１つ目は、ティーチング・プレイバック制御など、毎回繰り返す同じ動作である。２つ目は、例えば視覚センサを用いたランダムピッキング制御、又は例えば力覚センサを用いた力制御など、毎回異なる動作である。これら２種類の動作を組み合わせることで、ロボットアームの一連の動作が実現される。
【０００６】
ところで、装置の故障を予知する方法は、対象とする装置の動作の種類により異ならせるのが好ましい。例えばロボットアームの場合、ティーチング・プレイバック制御においては、特許文献１に開示されている方法が好ましく、ランダムピッキング制御や力制御においては、特許文献２に開示されている方法が好ましい。しかし、装置の故障を予知するのに用いられる処理装置は、対象とする装置がどの種類の動作を行っているのかを示す情報を受け取ることができるとは限らない。
【０００７】
そこで、本発明は、所定装置の動作に適した処理を行うことを目的とする。
【課題を解決するための手段】
【０００８】
本発明の処理装置は、処理部を備え、前記処理部は、第１センサを有する所定装置から、前記所定装置の動作に対応して出力される前記第１センサのセンサ値を時系列で取得し、前記第１センサのセンサ値を所定条件に基づいて区分けし、区分けした前記第１センサのセンサ値をクラスタリングする、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、所定装置の動作に適した処理を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る生産システムの一例であるロボット装置を模式的に示す斜視図である。
【図２】実施形態に係るロボットアームの関節を示す断面模式図である。
【図３】実施形態に係るロボット装置の制御系を示すブロック図である。
【図４】実施形態におけるモータ制御装置のブロック図である。
【図５】実施形態に係る処理方法を実行する処理装置の機能ブロック図である。
【図６】（ａ）は、実施形態におけるエンコーダ値の例を示す図である。（ｂ）は、実施形態におけるトルク電流値の例を示す図である。
【図７】実施形態におけるクラスタの例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図１は、実施形態に係る生産システムの一例であるロボット装置１００を模式的に示す斜視図である。ロボット装置１００は、組み付け作業等を行う産業用ロボットであるロボット２５０と、教示ペンダント４００と、処理装置１０００と、視覚センサ８００と、を備える。処理装置１０００は、処理装置本体５００と、表示装置６００と、入力装置７００と、を備える。表示装置６００は、ユーザに音声、画像、文章などで警告を発する装置の一例である。
【００１２】
ロボット２５０は、マニピュレータである多関節のロボットアーム２００と、ロボットアーム２００を制御するロボットコントローラ３００と、を有する。ロボットアーム２００は、所定装置の一例であり、生産装置の一例である。ロボットコントローラ３００は、第１ワークであるワークＷ１を、第２ワークであるワークＷ２に組み付けて、物品Ｗ０を製造する作業をロボットアーム２００に行わせる。ロボットアーム２００は、アーム本体２０１と、アーム本体２０１の先端に設けられたエンドエフェクタの一例であるハンド２０２と、を有する。ロボットアーム２００の先端部がハンド２０２である。ハンド２０２は、物体、例えばワークＷ１、部品、ツール、治具、カメラ等を把持可能な把持部である。アーム本体２０１とハンド２０２との間には、力覚センサ２８０が設けられている。
【００１３】
ロボットコントローラ３００と、ロボットアーム２００、教示ペンダント４００及び処理装置本体５００とは、互いに通信可能に接続されている。処理装置本体５００とロボットコントローラ３００とは、例えば工場内のＬＡＮにより接続されている。ロボットアーム２００は、台座の上面１５０に固定されている。教示ペンダント４００は、作業者が操作するものであり、ロボットアーム２００やロボットコントローラ３００に指示するのに用いられる。
【００１４】
アーム本体２０１は、複数の関節Ｊ１〜Ｊ６で連結された複数のリンク２１００〜２１０６を有する。以下、アーム本体２０１の関節が回転関節である場合について説明するが、関節が直動関節であってもよい。各関節Ｊ１〜Ｊ６は、所定部位の一例である。
【００１５】
アーム本体２０１は、関節Ｊｉを回転駆動する駆動機構２３０ｉを有する。ｉは、１，２，３，４，５，６である。なお、図１では、ｉ＝２、即ち関節Ｊ２の駆動機構２３０２のみを図示し、他の駆動機構の図示は省略している。駆動機構２３０ｉが関節Ｊｉを回転駆動することで、ロボットアーム２００の姿勢を変更することができる。ロボットアーム２００の姿勢を変更することで、ロボットアーム２００の先端部であるハンド２０２を、任意の位置姿勢に移動させることができる。
【００１６】
警告を発する装置の一例である表示装置６００は、液晶や有機ＥＬなどのディスプレイであり、入力を受けた所定データの一例である画像データに応じた画像を表示する。入力装置７００は、例えばキーボード７０１やマウス７０２などである。なお、警告を発する装置は、表示装置６００に限定するものではなく、スピーカ、又は処理装置本体５００と通信可能な端末であってもよい。
【００１７】
各関節Ｊ１〜Ｊ６は、サイズ及び形状が異なるが、ほぼ同様の構成である。図２は、実施形態に係るロボットアーム２００の１つの関節Ｊｉを示す断面模式図である。図２に示すように、ロボットアーム２００の関節Ｊｉには、駆動機構２３０ｉ、入力軸エンコーダ２６１ｉ、出力軸エンコーダ２６２ｉ等が配置されている。
【００１８】
駆動機構２３０ｉは、駆動部の一例である電動のモータ２３１ｉと、モータ２３１ｉの回転軸２３２ｉの回転速度を減速して出力する減速機２３３ｉと、を有する。モータ２３１ｉの回転子から延びる回転軸２３２ｉは、減速機２３３ｉの入力軸に固定されている。減速機２３３ｉの出力軸は、リンク２１０ｉに固定されている。減速機２３３ｉを介したモータ２３１ｉの駆動力により、リンク２１０ｉがリンク２１０ｉ−１に対して相対的に回転する。
【００１９】
モータ２３１ｉは、例えばブラシレスＤＣモータやＡＣサーボモータであり、モータ制御装置３５０ｉによってサーボ制御される。なお、図２において、モータ制御装置３５０ｉは、ロボットアーム２００の内部に配置されている場合について図示しているが、ロボットアーム２００の外部に配置されていてもよく、例えばロボットコントローラ３００の筐体内部に配置されていてもよい。
【００２０】
減速機２３３ｉは、例えば波動歯車減速機であり、モータ２３１ｉの回転速度を減速して関節Ｊｉを動作させる。これにより、関節Ｊｉにおいてリンク２１０ｉがリンク２１０ｉ−１に対して相対的に回転する。減速機２３３ｉの出力軸の回転角度が、関節Ｊｉの回転角度となる。
【００２１】
エンコーダである入力軸エンコーダ２６１ｉ、及びエンコーダである出力軸エンコーダ２６２ｉは、ロータリエンコーダであり、光学式或いは磁気式のいずれであってもよく、またアブソリュート形或いはインクリメンタル形のいずれであってもよい。
【００２２】
入力軸エンコーダ２６１ｉは、減速機２３３ｉの入力側に設けられ、出力軸エンコーダ２６２ｉは、減速機２３３ｉの出力側に設けられている。入力軸エンコーダ２６１ｉは、関節Ｊｉの変位に応じた信号、具体的にはモータ２３１ｉの回転軸２３２ｉの回転角度に相当する信号を出力する。出力軸エンコーダ２６２ｉは、関節Ｊｉの変位に応じた信号、具体的にはリンク２１０ｉ−１に対するリンク２１０ｉの相対角度、即ち関節Ｊｉの回転角度に相当する信号を出力する。
【００２３】
なお、リンク２１０ｉ−１とリンク２１０ｉとは、クロスローラベアリング２３７ｉを介して回転自在に連結されている。
【００２４】
図３は、実施形態に係るロボット装置１００の制御系を示すブロック図である。ロボットコントローラ３００及び処理装置本体５００は、各々コンピュータで構成されている。
【００２５】
処理装置本体５００は、処理部の一例であるプロセッサとしてのＣＰＵ（Central  Processing  Unit）５０１を備えている。また、処理装置本体５００は、記憶部の一例として、ＲＯＭ（Read  Only  Memory）５０２、ＲＡＭ（Random  Access  Memory）５０３、及びＨＤＤ（Hard  Disk  Drive）５０４を備えている。また、処理装置本体５００は、記録ディスクドライブ５０５、及び入出力インタフェースであるＩ／Ｏ５１１を備えている。
【００２６】
ＣＰＵ５０１、ＲＯＭ５０２、ＲＡＭ５０３、ＨＤＤ５０４、記録ディスクドライブ５０５、及びＩ／Ｏ５１１は、互いに通信可能にバス５１０で接続されている。Ｉ／Ｏ５１１には、ロボットコントローラ３００、表示装置６００及び入力装置７００が接続される。
【００２７】
ロボットコントローラ３００は、プロセッサの一例であるＣＰＵ３０１を備えている。また、ロボットコントローラ３００は、記憶部の一例として、ＲＯＭ３０２、ＲＡＭ３０３、及びＨＤＤ３０４を備えている。また、ロボットコントローラ３００は、入出力インタフェースであるＩ／Ｏ３１１を備えている。
【００２８】
ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、及びＩ／Ｏ３１１は、互いに通信可能にバス３１０で接続されている。Ｉ／Ｏ３１１には、処理装置本体５００、モータ制御装置３５０ｉ、教示ペンダント４００、視覚センサ８００、及び力覚センサ２８０が接続される。
【００２９】
図３には、１つの関節分のモータ制御装置３５０ｉを図示しているが、本実施形態では６つの関節Ｊ１〜Ｊ６が存在するため、６つのモータ制御装置３５０１〜３５０６が存在する。モータ制御装置３５０ｉには、関節Ｊｉに対応するモータ２３１ｉ、電流センサ２７０ｉ、入力軸エンコーダ２６１ｉ及び出力軸エンコーダ２６２ｉが接続されている。図３には、１つの関節分のモータ２３１ｉ、電流センサ２７０ｉ、入力軸エンコーダ２６１ｉ及び出力軸エンコーダ２６２ｉを図示しているが、本実施形態では、６つの関節が存在する。したがって、関節Ｊ１〜Ｊ６に対応して、モータ２３１１〜２３１６、電流センサ２７０１〜２７０６、入力軸エンコーダ２６１１〜２６１６及び出力軸エンコーダ２６２１〜２６２６が存在する。
【００３０】
ＣＰＵ３０１は、ロボットアーム２００の関節Ｊｉを駆動するモータ２３１ｉを、モータ制御装置３５０ｉを介して制御することで、ロボットアーム２００の動作を制御する。また、ＣＰＵ３０１は、作業者の操作によって教示ペンダント４００から送信される指示を示す信号を受け付ける。
【００３１】
ＨＤＤ３０４には、タスクプログラム３２１が格納される。タスクプログラム３２１には、ロボットアーム２００に再現動作や適応動作を行わせる命令が記述される。再現動作は、ティーチング・プレイバック制御によるロボットアーム２００の動作、例えばロボットアーム２００に把持させた部品を所定の位置に置き、原点に戻るといった、同じ作業をロボットアーム２００に繰り返し行わせる第１動作である。適応動作は、視覚センサ８００を用いたランダムピッキング制御や、力覚センサ２８０を用いた力制御など、毎回異なる作業をロボットアーム２００に行わせる第２動作である。第２動作は、第１動作以外の動作である。本実施形態では、第１動作と第２動作の２種類の動作をロボットアーム２００に行わせる場合について説明する。
【００３２】
ＣＰＵ３０１は、タスクプログラム３２１を読み込み、ロボットアーム２００の関節Ｊｉの軌道データを生成する。軌道データは、所定時間毎に指令する、関節Ｊｉのモータ２３１ｉの角度指令値θ１ｉ＊の集合である。ＣＰＵ３０１は、関節Ｊｉのモータ２３１ｉに対する角度指令値θ１ｉ＊を、所定時間毎にモータ制御装置３５０ｉに出力する。モータ制御装置３５０ｉは、入力軸エンコーダ２６１ｉにより検出される角度値θ１ｉが角度指令値θ１ｉ＊に近づくようにモータ２３１ｉを制御する。
【００３３】
図４は、実施形態におけるモータ制御装置３５０ｉのブロック図である。本実施形態のモータ制御装置３５０ｉが行うフィードバック制御は、入力軸エンコーダ２６１ｉを用いたセミクローズドループ制御である。なお、モータ制御装置３５０ｉが行うフィードバック制御は、セミクローズドループ制御に限定するものではなく、出力軸エンコーダ２６２ｉを用いたフルクローズドループ制御であってもよい。また、モータ制御装置３５０ｉが、セミクローズドループ制御とフルクローズドループ制御のいずれかのフィードバック制御を選択的に実行するようにしてもよい。
【００３４】
モータ制御装置３５０ｉは、位置制御部３５１ｉ、ＰＩＤ演算部３５２ｑｉ，３５２ｄｉ、電圧演算部３５３ｉ、ドライバ３５４ｉ、ブリッジ回路３５５ｉ、Ａ／Ｄ変換部３５６ｉ、電流演算部３５７ｉ、変換部３５８ｉ及び変換部３５９ｉを有する。
【００３５】
電流センサ２７０ｉは、モータ２３１ｉの各相に流れる電流量を示す信号を、Ａ／Ｄ変換部３５６ｉに出力する。Ａ／Ｄ変換部３５６ｉは、電流量を示す信号を量子化して、数値データに変換し、その数値データを、３相の電流値として電流演算部３５７ｉに出力する。
【００３６】
入力軸エンコーダ２６１ｉは、モータ２３１ｉの回転子、即ち減速機２３３ｉの入力軸の回転角度に応じたパルス信号を変換部３５８ｉに出力する。変換部３５８ｉは、入力軸エンコーダ２６１ｉからのパルス信号を、角度を示す数値データであるセンサ値に変換し、このセンサ値であるエンコーダ値θ１ｉを、電圧演算部３５３ｉ、電流演算部３５７ｉ及び位置制御部３５１ｉにフィードバックする。更に、変換部３５８ｉは、入力軸エンコーダ２６１ｉのエンコーダ値θ１ｉを示すデータ信号を、外部機器、本実施形態ではロボットコントローラ３００に出力する。
【００３７】
電流演算部３５７ｉは、入力を受けた３相の電流値及びエンコーダ値θ１ｉに基づき、ｑ軸電流値であるトルク電流値Ｉｑｉ、及びｄ軸電流値である励磁電流値Ｉｄｉを求める。電流演算部３５７ｉは、トルク電流値Ｉｑｉを、ＰＩＤ演算部３５２ｑｉにフィードバックするとともに、励磁電流値Ｉｄｉを、ＰＩＤ演算部３５２ｄｉにフィードバックする。更に、電流演算部３５７ｉは、トルク電流値Ｉｑｉを示すデータ信号を、外部機器、本実施形態ではロボットコントローラ３００に出力する。
【００３８】
出力軸エンコーダ２６２ｉは、関節の角度、即ち減速機２３３ｉの出力軸の回転角度に応じたパルス信号を変換部３５９ｉに出力する。変換部３５９ｉは、出力軸エンコーダ２６２ｉからのパルス信号を、角度を示す数値データであるセンサ値に変換し、このセンサ値であるエンコーダ値θ２ｉを示すデータ信号を、外部機器、本実施形態ではロボットコントローラ３００に出力する。
【００３９】
一方、位置制御部３５１ｉは、角度指令値θ１ｉ＊とエンコーダ値θ１ｉとの差が小さくなるように、ｑ軸電流指令値であるトルク電流指令値Ｉｑｉ＊、及びｄ軸電流指令値である励磁電流指令値Ｉｄｉ＊を求める。
【００４０】
ＰＩＤ演算部３５２ｑｉは、トルク電流指令値Ｉｑｉ＊とトルク電流値Ｉｑｉとの差に基づくＰＩＤ制御によって電圧値ｖｑｉを求める。ＰＩＤ演算部３５２ｄｉは、励磁電流指令値Ｉｄｉ＊と励磁電流値Ｉｄｉとの差に基づくＰＩＤ制御によって電圧値ｖｄｉを求める。
【００４１】
電圧演算部３５３ｉは、電圧値ｖｄｉ，ｖｑｉを、モータ２３１ｉの各相に印加する電圧に応じたＰＷＭ信号Ｕｉ，Ｖｉ，Ｗｉに変換する。ドライバ３５４ｉは、ＰＷＭ信号Ｕｉ，Ｖｉ，Ｗｉに応じてブリッジ回路３５５ｉの各半導体スイッチング素子の制御ポートをＰＷＭ駆動する。制御ポートは、ゲート又はベースである。これにより、ブリッジ回路３５５ｉは、モータ２３１ｉに出力する電圧をオンオフ制御することで、トルク電流及び励磁電流を制御する。
【００４２】
ロボットコントローラ３００は、関節Ｊｉに対応するエンコーダ値θ１ｉ，θ２ｉ及びトルク電流値Ｉｑｉを示すデータ信号を受け、各種演算を行う。また、本実施形態では、ロボットコントローラ３００は、関節Ｊｉに対応するエンコーダ値θ１ｉを示すデータ信号、及びトルク電流値Ｉｑｉを示すデータ信号を、逐次、所定周期で処理装置本体５００に出力する。なお、関節Ｊｉに対応するモータ制御装置３５０ｉが、ロボットコントローラ３００を介さずに、直接、エンコーダ値θ１ｉを示すデータ信号、及びトルク電流値Ｉｑｉを示すデータ信号を、逐次、処理装置本体５００に出力するようにしてもよい。
【００４３】
生産ラインにおいて、物品の組み立て作業など、ロボット装置１００の自動運転中に、ロボットコントローラ３００がロボットアーム２００に行わせる一連の動作には、第１動作と第２動作とが混在する。ロボットコントローラ３００は、タスクプログラム３２１に従う自動運転中に、第１動作と第２動作とを切り替えて、物品Ｗ０の組み立て作業をロボットアーム２００に行わせる。ロボットコントローラ３００は、第１動作及び第２動作のうちのいずれの動作をロボットアーム２００に行わせているのかを、情報として外部機器に出力するような仕様とはなっていない。また、ロボットアーム２００が故障するかどうかの予知は、実測値と基準値との差に基づいて行うが、実測値と比較する基準値は、第１動作か第２動作かで異ならせた方がよい。
【００４４】
本実施形態では、処理装置本体５００は、所定周期でロボット２５０が出力するエンコーダ値θ１ｉ及びトルク電流値Ｉｑｉそれぞれの時系列データを取得して統計的処理を行い、ロボットアーム２００の故障を予知する。記憶部の一例であるＨＤＤ５０４には、処理部の一例であるＣＰＵ５０１に、後述する処理方法を実行させるプログラム５２１が格納されている。図５は、実施形態に係る処理方法を実行する処理装置本体５００の機能ブロック図である。図３に示すＣＰＵ５０１がプログラム５２１を実行することにより、図５に示す取得部５５１、区分け部５５２、分類モデル生成部５５４、特定部５５６、予知部５５７、及び出力部５５８として機能する。図３に示すＨＤＤ５０４が、データ記憶部５５３、及び分類モデル記憶部５５５として機能する。
【００４５】
なお、本実施形態では、コンピュータ読み取り可能な非一時的な記録媒体がＨＤＤ５０４であり、ＨＤＤ５０４にプログラム５２１が格納される場合について説明するが、これに限定するものではない。プログラム５２１は、コンピュータ読み取り可能な非一時的な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム５２１を供給するための記録媒体としては、図３に示すＲＯＭ５０２、記録ディスク５３０、不図示の外部記憶装置等を用いてもよい。具体的に例示すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。光ディスクは、例えばＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒである。不揮発性メモリは、例えばＵＳＢメモリ、メモリカード、ＲＯＭである。
【００４６】
図３に示すＣＰＵ５０１は、第１モードである学習モードＭ１と、第２モードである監視モードＭ２とを選択的に実行可能であり、ユーザによりモード選択可能となっている。学習モードＭ１が選択された場合について説明する。ＣＰＵ５０１は、ロボットアーム２００の動作が第１動作か第２動作かを特定するのに用いる指標を設定するとともに、第１動作時において用いる第１基準値Ａ１を設定する。第２動作時において用いる第２基準値Ａ２は、監視モードＭ２を行う前に設定しておく。学習モードＭ１は、例えばロボットアーム２００を生産ラインに設置したときなどの初期の段階で実際にロボットアーム２００を自動運転させて行う。
【００４７】
監視モードＭ２が選択された場合について説明する。ＣＰＵ５０１は、学習モードＭ１において設定された指標を用いて、ロボットアーム２００の自動運転中に、第１動作と第２動作のいずれであるかを特定し、動作に対応する基準値を用いて、ロボットアーム２００の故障を予知する。なお、ユーザがモードを選択する場合について説明したがこれに限定するものではない。ＣＰＵ５０１が、予め指定された期間に従って自動的にモードを選択するようにしてもよい。
【００４８】
まず、ＣＰＵ５０１が学習モードＭ１として機能する場合について詳細に説明する。ＣＰＵ５０１が学習モードＭ１として機能する場合、ＣＰＵ５０１は、図５において、取得部５５１、区分け部５５２及び分類モデル生成部５５４として機能する。
【００４９】
取得部５５１は、ロボット２５０から各データを時系列に取得する。具体的には、取得部５５１は、第１センサである入力軸エンコーダ２６１ｉが出力する信号に基づくセンサ値であるエンコーダ値θ１ｉを、ロボットコントローラ３００から時系列に取得する。取得部５５１は、第２センサである電流センサ２７０ｉが出力する信号に基づくセンサ値であるトルク電流値Ｉｑｉを、ロボット２５０のロボットコントローラ３００から時系列に取得する。各時系列データ、即ちエンコーダ値θ１ｉ及びトルク電流値Ｉｑｉは、モータ制御装置３５０ｉにおいて取得された時刻と対応付けされている。よって、これら時系列のデータは同期している。なお、取得部５５１であるＣＰＵ５０１に取得されたエンコーダ値θ１ｉの時系列データは、一旦、ＲＡＭ５０３に記憶される。
【００５０】
図６（ａ）は、実施形態におけるエンコーダ値θ１１〜θ１６の例を示す図である。図６（ｂ）は、実施形態におけるトルク電流値Ｉｑ１〜Ｉｑ６の例を示す図である。図５に示す区分け部５５２は、時系列に取得した各エンコーダ値θ１１〜θ１６を単位動作毎に区分けする。図６（ａ）及び図６（ｂ）の例では、区分け部５５２は、時系列に取得した各エンコーダ値θ１１〜θ１６を、所定条件に基づき複数の区間Ｃ１，Ｃ２，Ｃ３，…，ＣＮに区分けする。即ち、区分け部５５２は、入力された多次元の時系列データを、ロボットアーム２００の姿勢の変化である各関節Ｊ１〜Ｊ６のエンコーダ値θ１１〜θ１６の時系列データに基づいて単位動作に区分けする。単位動作とは、ロボットアーム２００の一連の動作を構成する小区間を指す。ロボットアーム２００の一連の動作は、単位動作の組み合わせで構成される。トレー上に載置された部品をロボットアーム２００がピッキングする場合を例に説明する。ロボットアーム２００の単位動作は、例えば「原点からトレー上空に移動」、「ピッキング対象部品の手前まで移動して撮像」、「ハンドの位置を補正しつつ把持」、「置き台に移動して把持を解除」、「原点に戻る」などである。しかし、これら単位動作の情報は、ロボットコントローラ３００からは出力されない。このため、ＣＰＵ５０１は、エンコーダ値θ１ｉからロボットアーム２００の単位動作を判断することになる。
【００５１】
本実施形態では、区分け部５５２は、ロボットアーム２００の関節Ｊ１〜Ｊ６のうち、いずれかの関節、好ましくは全ての関節Ｊ１〜Ｊ６の変位速度の値が、予め定められた第１閾値である速度閾値Ｖ１よりも小さくなる箇所で区分けする。図６（ａ）及び図６（ｂ）の例では、エンコーダ値θ１１〜θ１６の時系列データが、斜線部分で区分けされる。関節Ｊｉの変位速度は、本実施形態では角速度である。区分け部５５２は、エンコーダ値θ１ｉの単位時間当たりの変化量を求めることで、関節Ｊｉの変位速度を算出する。即ち、区分け部５５２は、エンコーダ値θ１ｉを時間で一階微分することで関節Ｊｉの変位速度を算出する。速度閾値Ｖ１は、ロボット２５０が停止している、即ち関節の変位速度がゼロとみなせる値であり、その情報は、図３に示すＨＤＤ５０４に記憶されている。図６（ａ）及び図６（ｂ）中の斜線部分は、全ての関節Ｊ１〜Ｊ６においてエンコーダ値θ１１〜θ１６の時間変化がゼロとみなせる区間、つまり、ロボットアーム２００の動作が停止する時間帯である。ロボットアーム２００の動作が停止する時間帯を除外した残りの区間Ｃ１，Ｃ２，Ｃ３，…，ＣＮが単位動作である。区間Ｃｉは、エンコーダ値θ１ｉの時系列データから抽出された、エンコーダ値θ１ｉを微分した値、即ち変位速度の値が速度閾値Ｖ１よりも大きい区間である。このように、ロボットアーム２００の一連の動作を、例えばロボットアーム２００が停止する箇所で単位動作に区分けするのが好ましい。これは、単位動作の継ぎ目においては、外部機器とのインターロック等のためにロボットアーム２００の停止を伴うケースが多くあるためである。所定条件として、ロボットアーム２００の停止を条件に、エンコーダ値θ１ｉの時系列データを区分けすることで、単位動作に分けられた各区間の時系列データを容易に得ることができる。区分け部５５２は、区分け処理を、時系列データがある程度蓄積してから行ってもよいが、エンコーダ値θ１ｉ及びトルク電流値Ｉｑｉのデータを取得する度に行ってもよい。
【００５２】
各区間Ｃ１，Ｃ２，Ｃ３，…，ＣＮに区分けされた時系列データは、データ記憶部５５３に記憶される。データ記憶部５５３には、区分け部５５２によって単位動作に区分けされた時系列データが記憶されるとともに、記憶された過去の時系列データを分類モデル生成部５５４によって参照可能とする。
【００５３】
分類モデル生成部５５４は、データ記憶部５５３に記憶された、過去の単位動作の時系列データを、ロボットアーム２００の姿勢の変化に基づいてクラスタリングし、分類モデルを生成する。クラスタリングの手法としては、ｋ−ｍｅａｎｓ等の既存の手法を用いることが可能である。本実施形態では、前提として、ロボットアーム２００の動作の種類、即ちクラスタ数は未知であるため、クラスタリングの手法は、エルボー法やＸ−ｍｅａｎｓといった、クラスタ数の推定手法と組み合わせて行うのが好ましい。
【００５４】
以下、分類モデル生成部５５４が行うクラスタリングの一例について具体的に説明する。図６（ａ）では、各区間Ｃ１，Ｃ２，Ｃ３，…，ＣＮに区分けされたエンコーダ値θ１１〜θ１６の時系列データがある。分類モデル生成部５５４は、一つ一つの区間の多次元の時系列データを、ＰＣＡ（principal  component  analysis）などの手法により点データ、例えば２次元の点データに圧縮する。このように求められる点データは、区間Ｃ１，Ｃ２，Ｃ３，…，ＣＮの数の分、即ちＮ個存在する。各点データは、１区間分のエンコーダ値θ１１〜θ１６の時系列データを示している。
【００５５】
図７は、実施形態におけるクラスタの例を示す図である。分類モデル生成部５５４は、区間Ｃ１〜ＣＮに区分けしたエンコーダ値θ１１〜θ１６、即ち複数の点データを、クラスタリングする。分類モデル生成部５５４は、複数の点データを、クラスタリングにより、分散が第２閾値である閾値ＴＨ以下の第１クラスタＤ１１，Ｄ１２と、分散が閾値ＴＨよりも大きい第２クラスタＤ２１と、に分類する。閾値ＴＨの情報は、図３に示すＨＤＤ５０４に予め記憶されている。区分けしたエンコーダ値θ１１〜θ１６の時系列データは、点データに変換されるので、図７中の二次元平面においては１つの点で表される。閾値ＴＨを例えば０．１とする。図７には、分散が閾値ＴＨよりも小さい０．００２である複数の点データからなる第１クラスタＤ１１と、分散が閾値ＴＨよりも小さい０．０４４である複数の点データからなる第１クラスタＤ１２が図示されている。また、図７には、分散が閾値ＴＨよりも大きい０．９２７である複数の点データからなる第２クラスタＤ２１が図示されている。
【００５６】
第１クラスタＤ１１，Ｄ１２に属する点データに対応する単位動作は、第１動作であり、第２クラスタＤ２１に属する点データに対応する単位動作は、第２動作である。つまり、第１動作では、ロボットアーム２００が同じ動作を繰り返すため、点データの分散が比較的小さい。第２動作では、ロボットアーム２００が毎回違う動作を行うため、点データの分散が比較的大きい。したがって、点データの分散が閾値ＴＨを上回るかどうかで、第１動作に対応する第１クラスタＤ１１，Ｄ１２と、第２動作に対応する第２クラスタＤ２１を定めることができる。
【００５７】
分類モデル生成部５５４は、区間Ｃ１〜ＣＮのエンコーダ値θ１ｉの時系列データをクラスタＤ１１，Ｄ１２，Ｄ２１に分類する作業を終えたら、点データをクラスタＤ１１，Ｄ１２，Ｄ２１に分類する分類モデルを、分類モデル記憶部５５５に記憶させる。分類モデル記憶部５５５は、分類モデル生成部５５４にて生成された分類モデルを記憶するとともに、特定部５５６により分類モデルを参照可能とするものである。以上、後の監視モードＭ２で用いる、第１動作か第２動作かの指標となる分類モデルが設定される。図７には、第１クラスタＤ１１に対応する分類モデルを領域Ｒ１１で模式的に図示している。また、図７には、第１クラスタＤ１２に対応する分類モデルを領域Ｒ１２で模式的に図示している。また、図７には、第２クラスタＤ２１に対応する分類モデルを領域Ｒ２１で模式的に図示している。
【００５８】
次に、後の監視モードＭ２でロボットアーム２００の動作が第１動作と特定された時に用いる、図３に示す第１基準値Ａ１について説明する。本実施形態では、ＣＰＵ５０１は、学習モードＭ１において、第１基準値Ａ１を、故障が生じていない正常時のロボットアーム２００の電流センサ２７０ｉの実測値であるトルク電流値Ｉｑｉから求める。即ち、ロボットアーム２００の故障としては、モータ２３１ｉ又は減速機２３３ｉの故障などの異常であることが多い。モータ２３１ｉ又は減速機２３３ｉの異常は、電流センサ２７０ｉの電流値の一例であるトルク電流値Ｉｑｉに現れやすい。つまり、モータ２３１ｉ又は減速機２３３ｉが劣化してくると、関節Ｊｉを駆動するためのトルク電流値Ｉｑｉが高くなる傾向にある。したがって、本実施形態では、トルク電流値Ｉｑｉを監視対象とする。また、ＣＰＵ５０１は、監視モードＭ２において、ロボットアーム２００の関節一つ一つを個別に監視してもよいが、本実施形態では、ロボットアーム２００全体を総合的に監視する。
【００５９】
ＣＰＵ５０１は、学習モードＭ１において、ロボット２５０から時系列に、エンコーダ値θ１ｉと共にトルク電流値Ｉｑｉを取得し、エンコーダ値θ１ｉと対応付けて区分けしている。即ち、ＣＰＵ５０１は、図６（ｂ）に示すように、エンコーダ値θ１ｉと同様、トルク電流値Ｉｑｉを区間Ｃ１，Ｃ２，Ｃ３，…，ＣＮに区分けする。ＣＰＵ５０１は、これら区間Ｃ１，Ｃ２，Ｃ３，…，ＣＮから、図７に示す第１クラスタＤ１１に属するエンコーダ値θ１ｉと同じ区間のトルク電流値Ｉｑｉの時系列データを抽出する。即ち、ＣＰＵ５０１は、第１動作に対応する区間のトルク電流値Ｉｑｉの時系列データを抽出する。そして、ＣＰＵ５０１は、抽出したデータを用いて第１基準値Ａ１を求める。例えば、ＣＰＵ５０１は、第１クラスタＤ１１に対応する一つ一つの区間のトルク電流値Ｉｑｉの時系列データを、所定手法により点データに圧縮する。所定手法としては、どのような手法であってもよく、上述のＰＣＡであってもよいが、以下、別の手法の一例について説明する。ＣＰＵ５０１は、第１クラスタＤ１１に対応する１区間の１関節分の時系列データに含まれる一つ一つのトルク電流値について絶対値を求め、１区間分の絶対値の平均値を求める。ＣＰＵ５０１は、この平均値を求める演算を６つの関節それぞれについて行うことで、６つの平均値をパラメータとした６次元の点データを得る。上述の所定手法により、ＣＰＵ５０１は、区間Ｃ１，Ｃ２，Ｃ３，…，ＣＮのうち、第１クラスタＤ１１に対応する区間について、トルク電流値Ｉｑｉを示す点データを求める。ＣＰＵ５０１は、第１クラスタＤ１１に対応して求めた複数の点データに基づいて、第１基準値Ａ１を求める。例えば、ＣＰＵ５０１は、求めた複数の点データの代表値、中央値又は平均値を、第１基準値Ａ１とする。求められた第１基準値Ａ１は、記憶部であるＨＤＤ５０４に記憶される。第１クラスタＤ１２に対しても同様に第１基準値Ａ１を設定する。即ち、第１クラスタが複数ある場合、複数の第１クラスタのそれぞれに対応して、個別に第１基準値Ａ１を設定するのが好ましい。
【００６０】
次に、監視モードＭ２でロボットアーム２００の動作が第２動作と特定された時に用いる、図３に示す第２基準値Ａ２について説明する。第２基準値Ａ２は、規格値又はシミュレーション値などの設計値を用いる。よって、第２基準値Ａ２を設定するのは、学習モードＭ１時に限らず、監視モードＭ２が実行される前であればいつでもよい。第２基準値Ａ２は、記憶部であるＨＤＤ５０４に記憶される。
【００６１】
次に、ＣＰＵ５０１が監視モードＭ２として機能する場合について説明する。ユーザによりモードが切り替えられ、ＣＰＵ５０１が監視モードＭ２として機能する場合、ＣＰＵ５０１は、図５において、取得部５５１、区分け部５５２、特定部５５６、予知部５５７、及び出力部５５８として機能する。
【００６２】
取得部５５１は、ロボットアーム２００の自動運転中、ロボットコントローラ３００から時系列にエンコーダ値θ１ｉ及びトルク電流値Ｉｑｉを取得する。なお、取得部５５１に取得されたエンコーダ値θ１ｉ及びトルク電流値Ｉｑｉそれぞれの時系列データは、一旦、ＲＡＭ５０３に記憶される。
【００６３】
そして、区分け部５５２は、所定区間として、区分けした１区間分の単位動作におけるエンコーダ値θ１ｉ及びトルク電流値Ｉｑｉを取得したときに、これら単位動作におけるデータを、特定部５５６に出力する。図６（ａ）及び図６（ｂ）の例では、所定区間の一例である区間ＣＮ＋１のデータを、特定部５５６に出力する。
【００６４】
特定部５５６は、分類モデル記憶部５５５に記憶された分類モデルに基づいて、入力された区間ＣＮ＋１のデータが、どのクラスタＤ１１，Ｄ１２，Ｄ２１に属するかを特定する。例えば、特定部５５６は、区間ＣＮ＋１のエンコーダ値θ１ｉを示す点データが、図７に示す領域Ｒ１１，Ｒ１２，Ｒ２１のいずれに含まれるかを特定する。各クラスタＤ１１，Ｄ１２，Ｄ２１即ち、各領域Ｒ１１，Ｒ１２，Ｒ２１は、ロボットアーム２００の動作が第１動作及び第２動作のいずれかに対応する。
【００６５】
特定部５５６は、特定した結果を区間ＣＮ＋１のトルク電流値Ｉｑｉの時系列データとともに予知部５５７に出力する。各クラスタＤ１１，Ｄ１２，Ｄ２１は、第１動作及び第２動作のいずれかに対応している。このため、特定部５５６は、入力を受けた区間ＣＮ＋１の時系列データが第１動作及び第２動作のいずれに対応しているかを、クラスタの特定と同時に特定していることになる。
【００６６】
予知部５５７は、入力を受けた区間ＣＮ＋１の時系列データと、そのクラスタの分類に応じて、適切なアルゴリズムを選択し、例えばホテリングのＴ２法により、異常度の計算を行い、故障を予知したかどうかの結果を出力部５５８に出力する。即ち、予知部５５７は、第１動作と特定していれば、第１基準値Ａ１と実測値であるトルク電流値Ｉｑｉとを比較し、ロボットアーム２００が故障するかどうかを予知する。予知部５５７は、第２動作と特定していれば、第２基準値Ａ２と実測値であるトルク電流値Ｉｑｉとを比較し、ロボットアーム２００が故障するかどうかを予知する。
【００６７】
以下、具体例を挙げて説明する。予知部５５７は、区間ＣＮ＋１のトルク電流値Ｉｑｉの時系列データから上述の所定手法と同様の手法により６次元の点データを求める。予知部５５７は、区間ＣＮ＋１のエンコーダ値θ１ｉの時系列データを示す点データが第１クラスタＤ１１又はＤ１２に属すると特定されている場合、区間ＣＮ＋１のトルク電流値Ｉｑｉの時系列データを示す点データと第１基準値Ａ１との差を求める。この差は、統計的距離である。予知部５５７は、求めた差が第１所定値Ｂ１を超える場合、異常を通知するための指令を出力部５５８に送る。なお、予知部５５７は、求めた差が第１所定値Ｂ１以下の場合はそのまま処理を終了する。
【００６８】
また、予知部５５７は、区間ＣＮ＋１のエンコーダ値θ１ｉの点データが第２クラスタＤ２１に属すると特定されている場合、区間ＣＮ＋１のトルク電流値Ｉｑｉを示す点データと第２基準値Ａ２との差を求める。この差は、統計的距離である。予知部５５７は、求めた差が第２所定値Ｂ２を超える場合、異常を通知するための指令を出力部５５８に送る。なお、予知部５５７は、求めた差が第２所定値Ｂ２以下の場合はそのまま処理を終了する。
【００６９】
第１所定値Ｂ１と第２所定値Ｂ２は、予めＨＤＤ５０４に記憶された値であって、ロボットアーム２００が故障に至る前の値である。差が所定値Ｂ１又はＢ２を上回れば、ＣＰＵ５０１においてロボットアーム２００の故障が予知されたことになる。
【００７０】
出力部５５８は、予知部５５７にて故障が予知された場合、即ち予知部５５７から異常を通知するための指令を受けた場合に、所定データ、本実施形態では画像データを、表示装置６００に出力する。表示装置６００は、取得した画像データに基づく画像を表示する。これにより、ロボットアーム２００が故障に至りそうな旨の警告がユーザに通知される。なお、このような警告が通知された段階では、ロボットアーム２００はまだ故障には至っていない。ユーザは、この通知を受けた場合、次に計画している定期メンテナンスのときに、ロボットアーム２００の修理などの保全を行えばよい。
【００７１】
以上、区間ＣＮ＋１について説明したが、ＣＰＵ５０１は、区間ＣＮ＋２以降も引き続き監視モードＭ２の処理を行う。また、学習モードＭ１の処理は、装置を立ち上げた初期に限らず、定期メンテナンスを行った後やタスクプログラム３２１を変更した時など、適宜のタイミングで行ってもよい。
【００７２】
本実施形態では、ＣＰＵ５０１は、ロボットアーム２００の動作に対応して出力される入力軸エンコーダ２６１ｉのエンコーダ値θ１ｉを時系列で取得する。そしてＣＰＵ５０１は、エンコーダ値θ１ｉの時系列データを、所定条件に基づいて区間Ｃ１〜ＣＮに区分けし、区間Ｃ１〜ＣＮに区分けしたエンコーダ値θ１ｉの時系列データを、クラスタリングする。これにより、各区間Ｃ１〜ＣＮのエンコーダ値θ１ｉの時系列データが、ロボットアーム２００の動作の種類に対応してクラスタＤ１１，Ｄ１２，Ｄ２１に分類されることになる。したがって、ＣＰＵ５０１は、ロボット２５０から第１動作か第２動作かを示す動作の種類の情報を受け取らなくても、動作に適した基準値を用いてロボットアーム２００の故障を予知することができるようになる。これにより、ＣＰＵ５０１は、ロボットアーム２００の動作に適した処理を行うことができる。
【００７３】
またＣＰＵ５０１は、所定条件として、エンコーダ値θ１ｉを微分した値、即ち関節Ｊｉの変位速度の値が、速度閾値Ｖ１よりも大きい区間を、エンコーダ値θ１ｉの時系列データから抽出することで、この時系列データを区間Ｃ１〜ＣＮに区分けする。これにより、ＣＰＵ５０１は、エンコーダ値θ１ｉの時系列データをロボットアーム２００の単位動作毎に区分けすることができ、ロボットアーム２００の動作に適した処理を行うことができる。
【００７４】
また、本実施形態では、ＣＰＵ５０１は、ロボットアーム２００が故障すると予知した結果として、表示装置６００に画像データを出力する。これにより、適正な時期に警告がユーザに通知されるようになり、計画外、即ち定期メンテナンス以外にロボット２５０を停止させて保全作業を行うことが減り、物品Ｗ０の生産性が向上する。
【００７５】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
【００７６】
上述の実施形態では、ロボットアーム２００が垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアームが、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。
【００７７】
上述の実施形態では、警告を発する装置が、表示装置６００である場合について説明したが、これに限定するものではない。ＣＰＵ５０１が出力する所定データが、音声データである場合には、警告を発する装置は、例えばスピーカであればよい。また、ＣＰＵ５０１が出力する所定データが、電子メールで用いられるようなテキストデータである場合には、警告を発する装置は、処理装置本体５００と通信可能な端末であればよい。
【００７８】
上述の実施形態では、第１センサが、入力軸エンコーダ２６１ｉである場合について説明したが、これに限定するものではない。第１センサが、例えば出力軸エンコーダ２６２ｉであってもよい。
【００７９】
また、上述の実施形態では、第２センサが、電流センサ２７０ｉである場合について説明したが、これに限定するものではない。第２センサが、例えば出力軸エンコーダ２６２ｉであってもよいし、モータ２３１ｉ又はモータ２３１ｉの近傍に設けられた不図示の温度センサであってもよい。また、第２センサのセンサ値を示す時系列の情報が、例えばロボット２５０と不図示の外部機器との間で通信されるデジタルＩ／Ｏ情報であってもよい。
【００８０】
また、上述の実施形態では、第１センサと第２センサとが異なる場合について説明したが、これに限定するものではない。即ち、第１センサと第２センサとが同じセンサであってもよい。このセンサとして、例えば出力軸エンコーダ２６２ｉを用いてもよい。即ち、学習モードＭ１においては、出力軸エンコーダ２６２ｉのエンコーダ値θ２ｉから分類モデルと第１基準値Ａ１とを求めればよい。監視モードＭ２においては、第１動作であるかどうかの判別に用いるデータ、及び第１基準値Ａ１又は第２基準値Ａ２と比較するデータを、１区間分のエンコーダ値θ２ｉとすればよい。
【００８１】
また、上述の実施形態では、モータ制御装置３５０ｉが電流センサ２７０ｉの信号に基づく３相の電流値からトルク電流値Ｉｑｉを求める場合について説明したが、ＣＰＵ５０１が３相の電流値からトルク電流値Ｉｑｉを求めるようにしてもよい。
【００８２】
また、上述の実施形態では、ＣＰＵ５０１が、ロボットアーム２００全体を総合的に監視する場合について説明したが、これに限定するものではない。ＣＰＵ５０１が、ロボットアーム２００の複数の関節Ｊ１〜Ｊ６のそれぞれを、個別に監視するようにしてもよい。この場合、基準値Ａ１，Ａ２は、各関節Ｊ１〜Ｊ６に個別に設定されることになる。
【００８３】
また、上述の実施形態では、エンコーダ値を時間で一階微分し、エンコーダ値の時間変化がゼロとみなせる区間をエンコーダ値の時系列データから除外することで、エンコーダ値の時系列データの区分けを行う場合について説明した。しかし、ロボットアーム２００の動作の数が少ない場合は、ロボットアーム２００の動作を教示する際に、第１動作を示す情報、または第２動作を示す情報を、ロボットアーム２００の動作に紐づけておいても良い。
【００８４】
例えば、「原点からトレー上空に移動」という動作には第１動作を示す情報を教示時に紐づけ、「ハンドの位置を補正しつつ把持」という動作には第２動作を示す情報を教示時に紐づけておく。これにより、ＣＰＵ５０１は各動作に紐づけられた、第１動作を示す情報、または第２動作を示す情報に基づき、ロボットアーム２００が各動作を行った際にロボットアーム２００から取得したエンコーダ値を区分けすることができる。よって、エンコーダ値を微分する処理を省くことができ、この処理に要する時間の分、ＣＰＵ５０１の負荷を低減することができる。
【００８５】
また、各動作に紐づけられた、第１動作を示す情報、または第２動作を示す情報に基づき、各動作を行った際に取得したトルク電流値の時系列データを直接区分けしても良い。これによりエンコーダ値の処理を省くことができるので、さらに、この処理に要する時間の分、ＣＰＵ５０１の処理負荷を低減することができる。
【００８６】
また教示時に、動作の種類を示す情報を、各動作に紐づけておき、動作の種類を示す情報を基に、各動作を行った際に取得したエンコーダ値、トルク電流値を区分けしてもよい。
【００８７】
また上述の実施形態では、所定装置が、ロボットアーム２００である場合を例に説明したが、これに限定するものではない。所定装置が、例えばワークを搬送するリニア機器、ビス締めを行う機器、表面粗さを検出するプローブ機器、又はレンズに膜を蒸着する蒸着装置など、種々の生産装置であってもよい。その場合、所定部位を駆動する駆動部に、エンコーダ又は電流センサなどのセンサが設けられていればよく、上述した実施形態と同様のプログラムをＣＰＵ５０１に入力することで、上述した実施形態と同様の処理方法をＣＰＵ５０１が実施可能となる。
【００８８】
また、所定装置は、生産装置に限定するものではなく、生産装置以外の装置であってもよい。例えば、所定装置が、介護用ロボット、コンシューマ向けのロボット、事務機器、又は光学装置などであってもよい。所定装置は、所定部位が動作することでユーザの目的を達成することができればよい。その場合も、動作する所定部位の駆動部に、エンコーダや電流センサといったセンサが設けられていればよく、上述した実施形態と同様のプログラムをＣＰＵ５０１に入力することで、上述した実施形態と同様の処理方法をＣＰＵ５０１が実施可能となる。
【００８９】
また、ロボットアーム２００の各関節を駆動する駆動部は、上述の実施形態の構成に限定されるものではない。各関節を駆動する駆動部は、例えば人工筋肉のようなデバイス等であってもよい。その場合、デバイスの変位を検出できるセンサを、エンコーダや電流センサの代わりとして適宜設ければよい。
【００９０】
また所定装置は、制御装置に設けられる記憶装置の情報に基づき、伸縮、屈伸、上下移動、左右移動もしくは旋回の各動作、またはこれらの複合動作を自動的に行うことができる機械であるのが好ましい。
【００９１】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９２】
１００…ロボット装置（生産システム）、２００…ロボットアーム（所定装置、生産装置）、２６１１〜２６１６…入力軸エンコーダ（第１センサ）、２７０１〜２７０６…電流センサ（第２センサ）、５０１…ＣＰＵ（処理部）、１０００…処理装置
【図１】
2020019133.tif 000003
【図２】
2020019133.tif 000004
【図３】
2020019133.tif 000005
【図４】
2020019133.tif 000006
【図５】
2020019133.tif 000007
【図６】
2020019133.tif 000008
【図７】
2020019133.tif 000009