(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-05
(45)【発行日】2024-07-16
(54)【発明の名称】処理装置、生産システム、ロボット装置、物品の製造方法、処理方法、プログラム及び記録媒体
(51)【国際特許分類】
B25J 19/06 20060101AFI20240708BHJP
【FI】
B25J19/06
(21)【出願番号】P 2019109202
(22)【出願日】2019-06-12
【審査請求日】2022-06-10
(31)【優先権主張番号】P 2018138894
(32)【優先日】2018-07-24
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003133
【氏名又は名称】弁理士法人近島国際特許事務所
(72)【発明者】
【氏名】浅見 浩司
【審査官】神山 貴行
(56)【参考文献】
【文献】特開2017-192990(JP,A)
【文献】特許第5684941(JP,B1)
【文献】特開2018-105782(JP,A)
【文献】特開2015-009308(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
所定部位の変位に応じた第1センサ値を出力する第1センサを有する所定装置から情報を取得する処理装置であって、
処理部を備え、
前記処理部は、
前記第1センサに基づき前記第1センサ値を取得し、
前記第1センサ値に基づき前記所定部位の前記変位における変化度を取得し、前記変化度が第1閾値から外れている区間と、前記第1閾値に収まっている区間と、に区分けし、
前記変化度が前記第1閾値から外れている区間の前記第1センサ値を、クラスタリングにより、分散が第2閾値以下の第1クラスタ、又は分散が前記第2閾値よりも大きい第2クラスタに分類し、
前記所定装置から更に所定区間の前記第1センサ値を取得し、前記所定区間の前記第1センサ値が、前記第1クラスタまたは前記第2クラスタのいずれに属するかを特定し、
前記所定区間の前記第1センサのセンサ値が、前記第1クラスタまたは前記第2クラスタのいずれに属するかに応じて、前記所定装置が動作した動作の種類が、前記所定装置に作業を繰り返し再現させる第1動作、または前記所定装置に異なる作業を実行させる第2動作、のいずれであるか特定する、
ことを特徴とする処理装置。
【請求項2】
前記第2動作は適応動作であることを特徴とする請求項1に記載の処理装置。
【請求項3】
前記第1動作は、ユーザによってティーチングされた動作を繰り返し再現する動作であることを特徴とする請求項1又は2に記載の処理装置。
【請求項4】
前記第1動作における前記第1センサ値の分散は、前記第2動作における前記第1センサ値の分散より小さいことを特徴とする請求項1乃至3のいずれか1項に記載の処理装置。
【請求項5】
前記処理部は、前記第1閾値に収まっている区間の前記第1センサ値を、クラスタリングの対象から除外する、
ことを特徴とする請求項1乃至4のいずれか1項に記載の処理装置。
【請求項6】
前記所定装置は、前記所定部位の変位に対応して
前記第1センサ値の物理量とは異なる物理量の第2センサ値を出力する
、第2センサを有しており、
前記処理部は、
前記第1センサ値の時系列と同じ時系列で、前記第2センサ値を取得し、
前記第1クラスタに属すると特定した前記所定区間の前記第1センサ値に対応する前記第2センサ値と、第1基準値との差が、第1所定値を超える場合、所定データを出力する、
ことを特徴とする請求項1乃至5のいずれか1項に記載の処理装置。
【請求項7】
前記処理部は、
前記第2クラスタに属すると特定した前記所定区間の前記第1センサ値に対応する前記第2センサ値と、第2基準値との差が、第2所定値を超える場合、前記所定データを出力する、
ことを特徴とする請求項6に記載の処理装置。
【請求項8】
前記第2基準値は、前記所定装置の動作における規格値、シミュレーション値、の少なくとも1つに基づき設定される、
ことを特徴とする請求項7に記載の処理装置。
【請求項9】
前記処理部は、区分けした前記第1センサのセンサ値を点データに圧縮してクラスタリングする、
ことを特徴とする請求項1乃至8のいずれか1項に記載の処理装置。
【請求項10】
前記第1センサは、前記所定部位の前記変位に応じた信号を出力するエンコーダであり、
前記第1センサ値は、前記エンコーダのエンコーダ値である、
ことを特徴とする請求項1乃至9のいずれか1項に記載の処理装置。
【請求項11】
前記エンコーダが、前記所定部位を変位させるモータの回転子の回転角度に応じた信号を出力するロータリエンコーダである、
ことを特徴とする請求項10に記載の処理装置。
【請求項12】
前記第2センサが、前記所定部位を変位させるモータに供給する電流に応じた信号を出力する電流センサであり、
前記第2センサ値が、前記電流センサの電流値である、
ことを特徴とする請求項6又は7に記載の処理装置。
【請求項13】
前記処理部は、前記エンコーダ値に基づき前記所定部位の変位速度を取得し、前記変位速度の値が、第1閾値から外れている区間を、前記エンコーダ値から抽出して、前記エンコーダ値を区分けする、
ことを特徴とする請求項10又は11に記載の処理装置。
【請求項14】
前記処理部は、前記第1基準値を、前記第1クラスタに属する、区分けした前記第1センサ値に対応する前記第2センサ値における、代表値、中央値、平均値、の少なくとも1つに基づき取得する、
ことを特徴とする請求項
6乃至8のいずれか1項に記載の処理装置。
【請求項15】
前記処理部から前記所定データの入力を受けて警告を発する装置を更に備える、
ことを特徴とする請求項6又は7に記載の処理装置。
【請求項16】
前記第2動作は、ランダムに実行される動作である、
ことを特徴とする請求項1乃至1
5のいずれか1項に記載の処理装置。
【請求項17】
前記変化度は、前記変位の時間的な変化である、
ことを特徴とする請求項1乃至1
6のいずれか1項に記載の処理装置。
【請求項18】
前記処理部は、区分けされた前記第1センサ値に基づき学習を行い、前記所定装置の状態を判定する、
ことを特徴とする請求項1乃至1
7のいずれか1項に記載の処理装置。
【請求項19】
請求項1乃至1
8のいずれか1項に記載の処理装置と、前記所定装置と、を備え、
前記所定装置は、生産装置であることを特徴とする生産システム。
【請求項20】
請求項1乃至1
8のいずれか1項に記載の処理装置と、前記所定装置と、を備え、
前記所定装置は、前記所定部位として関節を備えるロボットアームであることを特徴とするロボット装置。
【請求項21】
請求項
19に記載の生産システム、または請求項
20に記載のロボット装置を用いて物品を製造することを特徴とする物品の製造方法。
【請求項22】
所定部位の変位に応じた第1センサ値を出力する第1センサを有する所定装置から情報を取得する処理装置の処理方法であって、
所定部位の変位に応じた第1センサ値を出力する第1センサを有する所定装置から前記第1センサ値を取得し、
前記第1センサ値に基づき前記所定部位の前記変位における変化度を取得し、前記変化度が第1閾値から外れている区間と、前記第1閾値に収まっている区間と、に区分けし、
前記変化度が第1閾値から外れている区間の前記第1センサ値を、クラスタリングにより、分散が第2閾値以下の第1クラスタ、または分散が前記第2閾値よりも大きい第2クラスタに分類し、
前記所定装置から更に所定区間の前記第1センサ値を取得し、前記所定区間の前記第1センサ値が、前記第1クラスタまたは前記第2クラスタのいずれに属するかを特定し、
前記所定区間の前記第1センサのセンサ値が、前記第1クラスタまたは前記第2クラスタのいずれに属するかに応じて、前記所定装置が動作した動作の種類が、前記所定装置に作業を繰り返し再現させる第1動作、または前記所定装置に異なる作業を実行させる第2動作、のいずれであるか特定する、
ことを特徴とする処理方法。
【請求項23】
請求項2
2に記載の処理方法をコンピュータによって実行可能なプログラム。
【請求項24】
請求項2
3に記載のプログラムを格納した、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理装置の技術に関する。
【背景技術】
【0002】
多関節のロボットアームなど、動作を伴う装置においては、その保守の効率化が課題となっている。例えばロボットアームが備える減速機やベアリングが破損するなど、ロボットアームが故障した場合、生産ラインを止めてロボットアームの修理などを行うことになる。このため、装置が故障に至る前の定期的な点検時に装置の保全を行うことが望まれている。
【0003】
特許文献1には、正常状態の装置を動作させて基準値を取得し、基準値と実測値との乖離に基づいて装置の故障を予知する方法が開示されている。特許文献2には、装置のシミュレーション結果を基準値とし、基準値と実測値との乖離に基づいて装置の故障を予知する方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開昭63-123105号公報
【文献】特開平5-77143号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
装置の動作には、複数の種類がある。ロボットアームを例に説明すると、2種類の動作が知られている。1つ目は、ティーチング・プレイバック制御など、毎回繰り返す同じ動作である。2つ目は、例えば視覚センサを用いたランダムピッキング制御、又は例えば力覚センサを用いた力制御など、毎回異なる動作である。これら2種類の動作を組み合わせることで、ロボットアームの一連の動作が実現される。
【0006】
ところで、装置の故障を予知する方法は、対象とする装置の動作の種類により異ならせるのが好ましい。例えばロボットアームの場合、ティーチング・プレイバック制御においては、特許文献1に開示されている方法が好ましく、ランダムピッキング制御や力制御においては、特許文献2に開示されている方法が好ましい。しかし、装置の故障を予知するのに用いられる処理装置は、対象とする装置がどの種類の動作を行っているのかを示す情報を受け取ることができるとは限らない。
【0007】
そこで、本発明は、所定装置の動作に適した処理を行うことを目的とする。
【課題を解決するための手段】
【0008】
本開示の第1態様は、所定部位の変位に応じた第1センサ値を出力する第1センサを有する所定装置から情報を取得する処理装置であって、処理部を備え、前記処理部は、前記第1センサに基づき前記第1センサ値を取得し、前記第1センサ値に基づき前記所定部位の前記変位における変化度を取得し、前記変化度が第1閾値から外れている区間と、前記第1閾値に収まっている区間と、に区分けし、前記変化度が前記第1閾値から外れている区間の前記第1センサ値を、クラスタリングにより、分散が第2閾値以下の第1クラスタ、又は分散が前記第2閾値よりも大きい第2クラスタに分類し、前記所定装置から更に所定区間の前記第1センサ値を取得し、前記所定区間の前記第1センサ値が、前記第1クラスタまたは前記第2クラスタのいずれに属するかを特定し、前記所定区間の前記第1センサのセンサ値が、前記第1クラスタまたは前記第2クラスタのいずれに属するかに応じて、前記所定装置が動作した動作の種類が、前記所定装置に作業を繰り返し再現させる第1動作、または前記所定装置に異なる作業を実行させる第2動作、のいずれであるか特定する、ことを特徴とする処理装置である。
本開示の第2態様は、所定部位の変位に応じた第1センサ値を出力する第1センサを有する所定装置から情報を取得する処理装置の処理方法であって、所定部位の変位に応じた第1センサ値を出力する第1センサを有する所定装置から前記第1センサ値を取得し、前記第1センサ値に基づき前記所定部位の前記変位における変化度を取得し、前記変化度が第1閾値から外れている区間と、前記第1閾値に収まっている区間と、に区分けし、前記変化度が第1閾値から外れている区間の前記第1センサ値を、クラスタリングにより、分散が第2閾値以下の第1クラスタ、または分散が前記第2閾値よりも大きい第2クラスタに分類し、前記所定装置から更に所定区間の前記第1センサ値を取得し、前記所定区間の前記第1センサ値が、前記第1クラスタまたは前記第2クラスタのいずれに属するかを特定し、前記所定区間の前記第1センサのセンサ値が、前記第1クラスタまたは前記第2クラスタのいずれに属するかに応じて、前記所定装置が動作した動作の種類が、前記所定装置に作業を繰り返し再現させる第1動作、または前記所定装置に異なる作業を実行させる第2動作、のいずれであるか特定する、ことを特徴とする処理方法である。
【発明の効果】
【0009】
本発明によれば、所定装置の動作に適した処理を行うことができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係る生産システムの一例であるロボット装置を模式的に示す斜視図である。
【
図2】実施形態に係るロボットアームの関節を示す断面模式図である。
【
図3】実施形態に係るロボット装置の制御系を示すブロック図である。
【
図4】実施形態におけるモータ制御装置のブロック図である。
【
図5】実施形態に係る処理方法を実行する処理装置の機能ブロック図である。
【
図6】(a)は、実施形態におけるエンコーダ値の例を示す図である。(b)は、実施形態におけるトルク電流値の例を示す図である。
【
図7】実施形態におけるクラスタの例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
図1は、実施形態に係る生産システムの一例であるロボット装置100を模式的に示す斜視図である。ロボット装置100は、組み付け作業等を行う産業用ロボットであるロボット250と、教示ペンダント400と、処理装置1000と、視覚センサ800と、を備える。処理装置1000は、処理装置本体500と、表示装置600と、入力装置700と、を備える。表示装置600は、ユーザに音声、画像、文章などで警告を発する装置の一例である。
【0012】
ロボット250は、マニピュレータである多関節のロボットアーム200と、ロボットアーム200を制御するロボットコントローラ300と、を有する。ロボットアーム200は、所定装置の一例であり、生産装置の一例である。ロボットコントローラ300は、第1ワークであるワークW1を、第2ワークであるワークW2に組み付けて、物品W0を製造する作業をロボットアーム200に行わせる。ロボットアーム200は、アーム本体201と、アーム本体201の先端に設けられたエンドエフェクタの一例であるハンド202と、を有する。ロボットアーム200の先端部がハンド202である。ハンド202は、物体、例えばワークW1、部品、ツール、治具、カメラ等を把持可能な把持部である。アーム本体201とハンド202との間には、力覚センサ280が設けられている。
【0013】
ロボットコントローラ300と、ロボットアーム200、教示ペンダント400及び処理装置本体500とは、互いに通信可能に接続されている。処理装置本体500とロボットコントローラ300とは、例えば工場内のLANにより接続されている。ロボットアーム200は、台座の上面150に固定されている。教示ペンダント400は、作業者が操作するものであり、ロボットアーム200やロボットコントローラ300に指示するのに用いられる。
【0014】
アーム本体201は、複数の関節J1~J6で連結された複数のリンク2100~2106を有する。以下、アーム本体201の関節が回転関節である場合について説明するが、関節が直動関節であってもよい。各関節J1~J6は、所定部位の一例である。
【0015】
アーム本体201は、関節J
iを回転駆動する駆動機構230
iを有する。iは、1,2,3,4,5,6である。なお、
図1では、i=2、即ち関節J
2の駆動機構230
2のみを図示し、他の駆動機構の図示は省略している。駆動機構230
iが関節J
iを回転駆動することで、ロボットアーム200の姿勢を変更することができる。ロボットアーム200の姿勢を変更することで、ロボットアーム200の先端部であるハンド202を、任意の位置姿勢に移動させることができる。
【0016】
警告を発する装置の一例である表示装置600は、液晶や有機ELなどのディスプレイであり、入力を受けた所定データの一例である画像データに応じた画像を表示する。入力装置700は、例えばキーボード701やマウス702などである。なお、警告を発する装置は、表示装置600に限定するものではなく、スピーカ、又は処理装置本体500と通信可能な端末であってもよい。
【0017】
各関節J
1~J
6は、サイズ及び形状が異なるが、ほぼ同様の構成である。
図2は、実施形態に係るロボットアーム200の1つの関節J
iを示す断面模式図である。
図2に示すように、ロボットアーム200の関節J
iには、駆動機構230
i、入力軸エンコーダ261
i、出力軸エンコーダ262
i等が配置されている。
【0018】
駆動機構230iは、駆動部の一例である電動のモータ231iと、モータ231iの回転軸232iの回転速度を減速して出力する減速機233iと、を有する。モータ231iの回転子から延びる回転軸232iは、減速機233iの入力軸に固定されている。減速機233iの出力軸は、リンク210iに固定されている。減速機233iを介したモータ231iの駆動力により、リンク210iがリンク210i-1に対して相対的に回転する。
【0019】
モータ231
iは、例えばブラシレスDCモータやACサーボモータであり、モータ制御装置350
iによってサーボ制御される。なお、
図2において、モータ制御装置350
iは、ロボットアーム200の内部に配置されている場合について図示しているが、ロボットアーム200の外部に配置されていてもよく、例えばロボットコントローラ300の筐体内部に配置されていてもよい。
【0020】
減速機233iは、例えば波動歯車減速機であり、モータ231iの回転速度を減速して関節Jiを動作させる。これにより、関節Jiにおいてリンク210iがリンク210i-1に対して相対的に回転する。減速機233iの出力軸の回転角度が、関節Jiの回転角度となる。
【0021】
エンコーダである入力軸エンコーダ261i、及びエンコーダである出力軸エンコーダ262iは、ロータリエンコーダであり、光学式或いは磁気式のいずれであってもよく、またアブソリュート形或いはインクリメンタル形のいずれであってもよい。
【0022】
入力軸エンコーダ261iは、減速機233iの入力側に設けられ、出力軸エンコーダ262iは、減速機233iの出力側に設けられている。入力軸エンコーダ261iは、関節Jiの変位に応じた信号、具体的にはモータ231iの回転軸232iの回転角度に相当する信号を出力する。出力軸エンコーダ262iは、関節Jiの変位に応じた信号、具体的にはリンク210i-1に対するリンク210iの相対角度、即ち関節Jiの回転角度に相当する信号を出力する。
【0023】
なお、リンク210i-1とリンク210iとは、クロスローラベアリング237iを介して回転自在に連結されている。
【0024】
図3は、実施形態に係るロボット装置100の制御系を示すブロック図である。ロボットコントローラ300及び処理装置本体500は、各々コンピュータで構成されている。
【0025】
処理装置本体500は、処理部の一例であるプロセッサとしてのCPU(Central Processing Unit)501を備えている。また、処理装置本体500は、記憶部の一例として、ROM(Read Only Memory)502、RAM(Random Access Memory)503、及びHDD(Hard Disk Drive)504を備えている。また、処理装置本体500は、記録ディスクドライブ505、及び入出力インタフェースであるI/O511を備えている。
【0026】
CPU501、ROM502、RAM503、HDD504、記録ディスクドライブ505、及びI/O511は、互いに通信可能にバス510で接続されている。I/O511には、ロボットコントローラ300、表示装置600及び入力装置700が接続される。
【0027】
ロボットコントローラ300は、プロセッサの一例であるCPU301を備えている。また、ロボットコントローラ300は、記憶部の一例として、ROM302、RAM303、及びHDD304を備えている。また、ロボットコントローラ300は、入出力インタフェースであるI/O311を備えている。
【0028】
CPU301、ROM302、RAM303、HDD304、及びI/O311は、互いに通信可能にバス310で接続されている。I/O311には、処理装置本体500、モータ制御装置350i、教示ペンダント400、視覚センサ800、及び力覚センサ280が接続される。
【0029】
図3には、1つの関節分のモータ制御装置350
iを図示しているが、本実施形態では6つの関節J
1~J
6が存在するため、6つのモータ制御装置350
1~350
6が存在する。モータ制御装置350
iには、関節J
iに対応するモータ231
i、電流センサ270
i、入力軸エンコーダ261
i及び出力軸エンコーダ262
iが接続されている。
図3には、1つの関節分のモータ231
i、電流センサ270
i、入力軸エンコーダ261
i及び出力軸エンコーダ262
iを図示しているが、本実施形態では、6つの関節が存在する。したがって、関節J
1~J
6に対応して、モータ231
1~231
6、電流センサ270
1~270
6、入力軸エンコーダ261
1~261
6及び出力軸エンコーダ262
1~262
6が存在する。
【0030】
CPU301は、ロボットアーム200の関節Jiを駆動するモータ231iを、モータ制御装置350iを介して制御することで、ロボットアーム200の動作を制御する。また、CPU301は、作業者の操作によって教示ペンダント400から送信される指示を示す信号を受け付ける。
【0031】
HDD304には、タスクプログラム321が格納される。タスクプログラム321には、ロボットアーム200に再現動作や適応動作を行わせる命令が記述される。再現動作は、ティーチング・プレイバック制御によるロボットアーム200の動作、例えばロボットアーム200に把持させた部品を所定の位置に置き、原点に戻るといった、同じ作業をロボットアーム200に繰り返し行わせる第1動作である。適応動作は、視覚センサ800を用いたランダムピッキング制御や、力覚センサ280を用いた力制御など、毎回異なる作業をロボットアーム200に行わせる第2動作である。第2動作は、第1動作以外の動作である。本実施形態では、第1動作と第2動作の2種類の動作をロボットアーム200に行わせる場合について説明する。
【0032】
CPU301は、タスクプログラム321を読み込み、ロボットアーム200の関節Jiの軌道データを生成する。軌道データは、所定時間毎に指令する、関節Jiのモータ231iの角度指令値θ1i
*の集合である。CPU301は、関節Jiのモータ231iに対する角度指令値θ1i
*を、所定時間毎にモータ制御装置350iに出力する。モータ制御装置350iは、入力軸エンコーダ261iにより検出される角度値θ1iが角度指令値θ1i
*に近づくようにモータ231iを制御する。
【0033】
図4は、実施形態におけるモータ制御装置350
iのブロック図である。本実施形態のモータ制御装置350
iが行うフィードバック制御は、入力軸エンコーダ261
iを用いたセミクローズドループ制御である。なお、モータ制御装置350
iが行うフィードバック制御は、セミクローズドループ制御に限定するものではなく、出力軸エンコーダ262
iを用いたフルクローズドループ制御であってもよい。また、モータ制御装置350
iが、セミクローズドループ制御とフルクローズドループ制御のいずれかのフィードバック制御を選択的に実行するようにしてもよい。
【0034】
モータ制御装置350iは、位置制御部351i、PID演算部352qi,352di、電圧演算部353i、ドライバ354i、ブリッジ回路355i、A/D変換部356i、電流演算部357i、変換部358i及び変換部359iを有する。
【0035】
電流センサ270iは、モータ231iの各相に流れる電流量を示す信号を、A/D変換部356iに出力する。A/D変換部356iは、電流量を示す信号を量子化して、数値データに変換し、その数値データを、3相の電流値として電流演算部357iに出力する。
【0036】
入力軸エンコーダ261iは、モータ231iの回転子、即ち減速機233iの入力軸の回転角度に応じたパルス信号を変換部358iに出力する。変換部358iは、入力軸エンコーダ261iからのパルス信号を、角度を示す数値データであるセンサ値に変換し、このセンサ値であるエンコーダ値θ1iを、電圧演算部353i、電流演算部357i及び位置制御部351iにフィードバックする。更に、変換部358iは、入力軸エンコーダ261iのエンコーダ値θ1iを示すデータ信号を、外部機器、本実施形態ではロボットコントローラ300に出力する。
【0037】
電流演算部357iは、入力を受けた3相の電流値及びエンコーダ値θ1iに基づき、q軸電流値であるトルク電流値Iqi、及びd軸電流値である励磁電流値Idiを求める。電流演算部357iは、トルク電流値Iqiを、PID演算部352qiにフィードバックするとともに、励磁電流値Idiを、PID演算部352diにフィードバックする。更に、電流演算部357iは、トルク電流値Iqiを示すデータ信号を、外部機器、本実施形態ではロボットコントローラ300に出力する。
【0038】
出力軸エンコーダ262iは、関節の角度、即ち減速機233iの出力軸の回転角度に応じたパルス信号を変換部359iに出力する。変換部359iは、出力軸エンコーダ262iからのパルス信号を、角度を示す数値データであるセンサ値に変換し、このセンサ値であるエンコーダ値θ2iを示すデータ信号を、外部機器、本実施形態ではロボットコントローラ300に出力する。
【0039】
一方、位置制御部351iは、角度指令値θ1i
*とエンコーダ値θ1iとの差が小さくなるように、q軸電流指令値であるトルク電流指令値Iqi
*、及びd軸電流指令値である励磁電流指令値Idi
*を求める。
【0040】
PID演算部352qiは、トルク電流指令値Iqi
*とトルク電流値Iqiとの差に基づくPID制御によって電圧値vqiを求める。PID演算部352diは、励磁電流指令値Idi
*と励磁電流値Idiとの差に基づくPID制御によって電圧値vdiを求める。
【0041】
電圧演算部353iは、電圧値vdi,vqiを、モータ231iの各相に印加する電圧に応じたPWM信号Ui,Vi,Wiに変換する。ドライバ354iは、PWM信号Ui,Vi,Wiに応じてブリッジ回路355iの各半導体スイッチング素子の制御ポートをPWM駆動する。制御ポートは、ゲート又はベースである。これにより、ブリッジ回路355iは、モータ231iに出力する電圧をオンオフ制御することで、トルク電流及び励磁電流を制御する。
【0042】
ロボットコントローラ300は、関節Jiに対応するエンコーダ値θ1i,θ2i及びトルク電流値Iqiを示すデータ信号を受け、各種演算を行う。また、本実施形態では、ロボットコントローラ300は、関節Jiに対応するエンコーダ値θ1iを示すデータ信号、及びトルク電流値Iqiを示すデータ信号を、逐次、所定周期で処理装置本体500に出力する。なお、関節Jiに対応するモータ制御装置350iが、ロボットコントローラ300を介さずに、直接、エンコーダ値θ1iを示すデータ信号、及びトルク電流値Iqiを示すデータ信号を、逐次、処理装置本体500に出力するようにしてもよい。
【0043】
生産ラインにおいて、物品の組み立て作業など、ロボット装置100の自動運転中に、ロボットコントローラ300がロボットアーム200に行わせる一連の動作には、第1動作と第2動作とが混在する。ロボットコントローラ300は、タスクプログラム321に従う自動運転中に、第1動作と第2動作とを切り替えて、物品W0の組み立て作業をロボットアーム200に行わせる。ロボットコントローラ300は、第1動作及び第2動作のうちのいずれの動作をロボットアーム200に行わせているのかを、情報として外部機器に出力するような仕様とはなっていない。また、ロボットアーム200が故障するかどうかの予知は、実測値と基準値との差に基づいて行うが、実測値と比較する基準値は、第1動作か第2動作かで異ならせた方がよい。
【0044】
本実施形態では、処理装置本体500は、所定周期でロボット250が出力するエンコーダ値θ1
i及びトルク電流値Iq
iそれぞれの時系列データを取得して統計的処理を行い、ロボットアーム200の故障を予知する。記憶部の一例であるHDD504には、処理部の一例であるCPU501に、後述する処理方法を実行させるプログラム521が格納されている。
図5は、実施形態に係る処理方法を実行する処理装置本体500の機能ブロック図である。
図3に示すCPU501がプログラム521を実行することにより、
図5に示す取得部551、区分け部552、分類モデル生成部554、特定部556、予知部557、及び出力部558として機能する。
図3に示すHDD504が、データ記憶部553、及び分類モデル記憶部555として機能する。
【0045】
なお、本実施形態では、コンピュータ読み取り可能な非一時的な記録媒体がHDD504であり、HDD504にプログラム521が格納される場合について説明するが、これに限定するものではない。プログラム521は、コンピュータ読み取り可能な非一時的な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム521を供給するための記録媒体としては、
図3に示すROM502、記録ディスク530、不図示の外部記憶装置等を用いてもよい。具体的に例示すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。光ディスクは、例えばDVD-ROM、CD-ROM、CD-Rである。不揮発性メモリは、例えばUSBメモリ、メモリカード、ROMである。
【0046】
図3に示すCPU501は、第1モードである学習モードM1と、第2モードである監視モードM2とを選択的に実行可能であり、ユーザによりモード選択可能となっている。学習モードM1が選択された場合について説明する。CPU501は、ロボットアーム200の動作が第1動作か第2動作かを特定するのに用いる指標を設定するとともに、第1動作時において用いる第1基準値A1を設定する。第2動作時において用いる第2基準値A2は、監視モードM2を行う前に設定しておく。学習モードM1は、例えばロボットアーム200を生産ラインに設置したときなどの初期の段階で実際にロボットアーム200を自動運転させて行う。
【0047】
監視モードM2が選択された場合について説明する。CPU501は、学習モードM1において設定された指標を用いて、ロボットアーム200の自動運転中に、第1動作と第2動作のいずれであるかを特定し、動作に対応する基準値を用いて、ロボットアーム200の故障を予知する。なお、ユーザがモードを選択する場合について説明したがこれに限定するものではない。CPU501が、予め指定された期間に従って自動的にモードを選択するようにしてもよい。
【0048】
まず、CPU501が学習モードM1として機能する場合について詳細に説明する。CPU501が学習モードM1として機能する場合、CPU501は、
図5において、取得部551、区分け部552及び分類モデル生成部554として機能する。
【0049】
取得部551は、ロボット250から各データを時系列に取得する。具体的には、取得部551は、第1センサである入力軸エンコーダ261iが出力する信号に基づくセンサ値であるエンコーダ値θ1iを、ロボットコントローラ300から時系列に取得する。取得部551は、第2センサである電流センサ270iが出力する信号に基づくセンサ値であるトルク電流値Iqiを、ロボット250のロボットコントローラ300から時系列に取得する。各時系列データ、即ちエンコーダ値θ1i及びトルク電流値Iqiは、モータ制御装置350iにおいて取得された時刻と対応付けされている。よって、これら時系列のデータは同期している。なお、取得部551であるCPU501に取得されたエンコーダ値θ1iの時系列データは、一旦、RAM503に記憶される。
【0050】
図6(a)は、実施形態におけるエンコーダ値θ1
1~θ1
6の例を示す図である。
図6(b)は、実施形態におけるトルク電流値Iq
1~Iq
6の例を示す図である。
図5に示す区分け部552は、時系列に取得した各エンコーダ値θ1
1~θ1
6を単位動作毎に区分けする。
図6(a)及び
図6(b)の例では、区分け部552は、時系列に取得した各エンコーダ値θ1
1~θ1
6を、所定条件に基づき複数の区間C
1,C
2,C
3,…,C
Nに区分けする。即ち、区分け部552は、入力された多次元の時系列データを、ロボットアーム200の姿勢の変化である各関節J
1~J
6のエンコーダ値θ1
1~θ1
6の時系列データに基づいて単位動作に区分けする。単位動作とは、ロボットアーム200の一連の動作を構成する小区間を指す。ロボットアーム200の一連の動作は、単位動作の組み合わせで構成される。トレー上に載置された部品をロボットアーム200がピッキングする場合を例に説明する。ロボットアーム200の単位動作は、例えば「原点からトレー上空に移動」、「ピッキング対象部品の手前まで移動して撮像」、「ハンドの位置を補正しつつ把持」、「置き台に移動して把持を解除」、「原点に戻る」などである。しかし、これら単位動作の情報は、ロボットコントローラ300からは出力されない。このため、CPU501は、エンコーダ値θ1
iからロボットアーム200の単位動作を判断することになる。
【0051】
本実施形態では、区分け部552は、ロボットアーム200の関節J
1~J
6のうち、いずれかの関節、好ましくは全ての関節J
1~J
6の変位速度の値が、予め定められた第1閾値である速度閾値V1よりも小さくなる箇所で区分けする。
図6(a)及び
図6(b)の例では、エンコーダ値θ1
1~θ1
6の時系列データが、斜線部分で区分けされる。関節J
iの変位速度は、本実施形態では角速度である。区分け部552は、エンコーダ値θ1
iの単位時間当たりの変化量を求めることで、関節J
iの変位速度を算出する。即ち、区分け部552は、エンコーダ値θ1
iを時間で一階微分することで関節J
iの変位速度を算出する。速度閾値V1は、ロボット250が停止している、即ち関節の変位速度がゼロとみなせる値であり、その情報は、
図3に示すHDD504に記憶されている。
図6(a)及び
図6(b)中の斜線部分は、全ての関節J
1~J
6においてエンコーダ値θ1
1~θ1
6の時間変化がゼロとみなせる区間、つまり、ロボットアーム200の動作が停止する時間帯である。ロボットアーム200の動作が停止する時間帯を除外した残りの区間C
1,C
2,C
3,…,C
Nが単位動作である。区間C
iは、エンコーダ値θ1
iの時系列データから抽出された、エンコーダ値θ1
iを微分した値、即ち変位速度の値が速度閾値V1よりも大きい区間である。このように、ロボットアーム200の一連の動作を、例えばロボットアーム200が停止する箇所で単位動作に区分けするのが好ましい。これは、単位動作の継ぎ目においては、外部機器とのインターロック等のためにロボットアーム200の停止を伴うケースが多くあるためである。所定条件として、ロボットアーム200の停止を条件に、エンコーダ値θ1
iの時系列データを区分けすることで、単位動作に分けられた各区間の時系列データを容易に得ることができる。区分け部552は、区分け処理を、時系列データがある程度蓄積してから行ってもよいが、エンコーダ値θ1
i及びトルク電流値Iq
iのデータを取得する度に行ってもよい。
【0052】
各区間C1,C2,C3,…,CNに区分けされた時系列データは、データ記憶部553に記憶される。データ記憶部553には、区分け部552によって単位動作に区分けされた時系列データが記憶されるとともに、記憶された過去の時系列データを分類モデル生成部554によって参照可能とする。
【0053】
分類モデル生成部554は、データ記憶部553に記憶された、過去の単位動作の時系列データを、ロボットアーム200の姿勢の変化に基づいてクラスタリングし、分類モデルを生成する。クラスタリングの手法としては、k-means等の既存の手法を用いることが可能である。本実施形態では、前提として、ロボットアーム200の動作の種類、即ちクラスタ数は未知であるため、クラスタリングの手法は、エルボー法やX-meansといった、クラスタ数の推定手法と組み合わせて行うのが好ましい。
【0054】
以下、分類モデル生成部554が行うクラスタリングの一例について具体的に説明する。
図6(a)では、各区間C
1,C
2,C
3,…,C
Nに区分けされたエンコーダ値θ1
1~θ1
6の時系列データがある。分類モデル生成部554は、一つ一つの区間の多次元の時系列データを、PCA(principal component analysis)などの手法により点データ、例えば2次元の点データに圧縮する。このように求められる点データは、区間C
1,C
2,C
3,…,C
Nの数の分、即ちN個存在する。各点データは、1区間分のエンコーダ値θ1
1~θ1
6の時系列データを示している。
【0055】
図7は、実施形態におけるクラスタの例を示す図である。分類モデル生成部554は、区間C
1~C
Nに区分けしたエンコーダ値θ1
1~θ1
6、即ち複数の点データを、クラスタリングする。分類モデル生成部554は、複数の点データを、クラスタリングにより、分散が第2閾値である閾値TH以下の第1クラスタD11,D12と、分散が閾値THよりも大きい第2クラスタD21と、に分類する。閾値THの情報は、
図3に示すHDD504に予め記憶されている。区分けしたエンコーダ値θ1
1~θ1
6の時系列データは、点データに変換されるので、
図7中の二次元平面においては1つの点で表される。閾値THを例えば0.1とする。
図7には、分散が閾値THよりも小さい0.002である複数の点データからなる第1クラスタD11と、分散が閾値THよりも小さい0.044である複数の点データからなる第1クラスタD12が図示されている。また、
図7には、分散が閾値THよりも大きい0.927である複数の点データからなる第2クラスタD21が図示されている。
【0056】
第1クラスタD11,D12に属する点データに対応する単位動作は、第1動作であり、第2クラスタD21に属する点データに対応する単位動作は、第2動作である。つまり、第1動作では、ロボットアーム200が同じ動作を繰り返すため、点データの分散が比較的小さい。第2動作では、ロボットアーム200が毎回違う動作を行うため、点データの分散が比較的大きい。したがって、点データの分散が閾値THを上回るかどうかで、第1動作に対応する第1クラスタD11,D12と、第2動作に対応する第2クラスタD21を定めることができる。
【0057】
分類モデル生成部554は、区間C
1~C
Nのエンコーダ値θ1
iの時系列データをクラスタD11,D12,D21に分類する作業を終えたら、点データをクラスタD11,D12,D21に分類する分類モデルを、分類モデル記憶部555に記憶させる。分類モデル記憶部555は、分類モデル生成部554にて生成された分類モデルを記憶するとともに、特定部556により分類モデルを参照可能とするものである。以上、後の監視モードM2で用いる、第1動作か第2動作かの指標となる分類モデルが設定される。
図7には、第1クラスタD11に対応する分類モデルを領域R11で模式的に図示している。また、
図7には、第1クラスタD12に対応する分類モデルを領域R12で模式的に図示している。また、
図7には、第2クラスタD21に対応する分類モデルを領域R21で模式的に図示している。
【0058】
次に、後の監視モードM2でロボットアーム200の動作が第1動作と特定された時に用いる、
図3に示す第1基準値A1について説明する。本実施形態では、CPU501は、学習モードM1において、第1基準値A1を、故障が生じていない正常時のロボットアーム200の電流センサ270
iの実測値であるトルク電流値Iq
iから求める。即ち、ロボットアーム200の故障としては、モータ231
i又は減速機233
iの故障などの異常であることが多い。モータ231
i又は減速機233
iの異常は、電流センサ270
iの電流値の一例であるトルク電流値Iq
iに現れやすい。つまり、モータ231
i又は減速機233
iが劣化してくると、関節J
iを駆動するためのトルク電流値Iq
iが高くなる傾向にある。したがって、本実施形態では、トルク電流値Iq
iを監視対象とする。また、CPU501は、監視モードM2において、ロボットアーム200の関節一つ一つを個別に監視してもよいが、本実施形態では、ロボットアーム200全体を総合的に監視する。
【0059】
CPU501は、学習モードM1において、ロボット250から時系列に、エンコーダ値θ1
iと共にトルク電流値Iq
iを取得し、エンコーダ値θ1
iと対応付けて区分けしている。即ち、CPU501は、
図6(b)に示すように、エンコーダ値θ1
iと同様、トルク電流値Iq
iを区間C
1,C
2,C
3,…,C
Nに区分けする。CPU501は、これら区間C
1,C
2,C
3,…,C
Nから、
図7に示す第1クラスタD11に属するエンコーダ値θ1
iと同じ区間のトルク電流値Iq
iの時系列データを抽出する。即ち、CPU501は、第1動作に対応する区間のトルク電流値Iq
iの時系列データを抽出する。そして、CPU501は、抽出したデータを用いて第1基準値A1を求める。例えば、CPU501は、第1クラスタD11に対応する一つ一つの区間のトルク電流値Iq
iの時系列データを、所定手法により点データに圧縮する。所定手法としては、どのような手法であってもよく、上述のPCAであってもよいが、以下、別の手法の一例について説明する。CPU501は、第1クラスタD11に対応する1区間の1関節分の時系列データに含まれる一つ一つのトルク電流値について絶対値を求め、1区間分の絶対値の平均値を求める。CPU501は、この平均値を求める演算を6つの関節それぞれについて行うことで、6つの平均値をパラメータとした6次元の点データを得る。上述の所定手法により、CPU501は、区間C
1,C
2,C
3,…,C
Nのうち、第1クラスタD11に対応する区間について、トルク電流値Iq
iを示す点データを求める。CPU501は、第1クラスタD11に対応して求めた複数の点データに基づいて、第1基準値A1を求める。例えば、CPU501は、求めた複数の点データの代表値、中央値又は平均値を、第1基準値A1とする。求められた第1基準値A1は、記憶部であるHDD504に記憶される。第1クラスタD12に対しても同様に第1基準値A1を設定する。即ち、第1クラスタが複数ある場合、複数の第1クラスタのそれぞれに対応して、個別に第1基準値A1を設定するのが好ましい。
【0060】
次に、監視モードM2でロボットアーム200の動作が第2動作と特定された時に用いる、
図3に示す第2基準値A2について説明する。第2基準値A2は、規格値又はシミュレーション値などの設計値を用いる。よって、第2基準値A2を設定するのは、学習モードM1時に限らず、監視モードM2が実行される前であればいつでもよい。第2基準値A2は、記憶部であるHDD504に記憶される。
【0061】
次に、CPU501が監視モードM2として機能する場合について説明する。ユーザによりモードが切り替えられ、CPU501が監視モードM2として機能する場合、CPU501は、
図5において、取得部551、区分け部552、特定部556、予知部557、及び出力部558として機能する。
【0062】
取得部551は、ロボットアーム200の自動運転中、ロボットコントローラ300から時系列にエンコーダ値θ1i及びトルク電流値Iqiを取得する。なお、取得部551に取得されたエンコーダ値θ1i及びトルク電流値Iqiそれぞれの時系列データは、一旦、RAM503に記憶される。
【0063】
そして、区分け部552は、所定区間として、区分けした1区間分の単位動作におけるエンコーダ値θ1
i及びトルク電流値Iq
iを取得したときに、これら単位動作におけるデータを、特定部556に出力する。
図6(a)及び
図6(b)の例では、所定区間の一例である区間C
N+1のデータを、特定部556に出力する。
【0064】
特定部556は、分類モデル記憶部555に記憶された分類モデルに基づいて、入力された区間C
N+1のデータが、どのクラスタD11,D12,D21に属するかを特定する。例えば、特定部556は、区間C
N+1のエンコーダ値θ1
iを示す点データが、
図7に示す領域R11,R12,R21のいずれに含まれるかを特定する。各クラスタD11,D12,D21即ち、各領域R11,R12,R21は、ロボットアーム200の動作が第1動作及び第2動作のいずれかに対応する。
【0065】
特定部556は、特定した結果を区間CN+1のトルク電流値Iqiの時系列データとともに予知部557に出力する。各クラスタD11,D12,D21は、第1動作及び第2動作のいずれかに対応している。このため、特定部556は、入力を受けた区間CN+1の時系列データが第1動作及び第2動作のいずれに対応しているかを、クラスタの特定と同時に特定していることになる。
【0066】
予知部557は、入力を受けた区間CN+1の時系列データと、そのクラスタの分類に応じて、適切なアルゴリズムを選択し、例えばホテリングのT2法により、異常度の計算を行い、故障を予知したかどうかの結果を出力部558に出力する。即ち、予知部557は、第1動作と特定していれば、第1基準値A1と実測値であるトルク電流値Iqiとを比較し、ロボットアーム200が故障するかどうかを予知する。予知部557は、第2動作と特定していれば、第2基準値A2と実測値であるトルク電流値Iqiとを比較し、ロボットアーム200が故障するかどうかを予知する。
【0067】
以下、具体例を挙げて説明する。予知部557は、区間CN+1のトルク電流値Iqiの時系列データから上述の所定手法と同様の手法により6次元の点データを求める。予知部557は、区間CN+1のエンコーダ値θ1iの時系列データを示す点データが第1クラスタD11又はD12に属すると特定されている場合、区間CN+1のトルク電流値Iqiの時系列データを示す点データと第1基準値A1との差を求める。この差は、統計的距離である。予知部557は、求めた差が第1所定値B1を超える場合、異常を通知するための指令を出力部558に送る。なお、予知部557は、求めた差が第1所定値B1以下の場合はそのまま処理を終了する。
【0068】
また、予知部557は、区間CN+1のエンコーダ値θ1iの点データが第2クラスタD21に属すると特定されている場合、区間CN+1のトルク電流値Iqiを示す点データと第2基準値A2との差を求める。この差は、統計的距離である。予知部557は、求めた差が第2所定値B2を超える場合、異常を通知するための指令を出力部558に送る。なお、予知部557は、求めた差が第2所定値B2以下の場合はそのまま処理を終了する。
【0069】
第1所定値B1と第2所定値B2は、予めHDD504に記憶された値であって、ロボットアーム200が故障に至る前の値である。差が所定値B1又はB2を上回れば、CPU501においてロボットアーム200の故障が予知されたことになる。
【0070】
出力部558は、予知部557にて故障が予知された場合、即ち予知部557から異常を通知するための指令を受けた場合に、所定データ、本実施形態では画像データを、表示装置600に出力する。表示装置600は、取得した画像データに基づく画像を表示する。これにより、ロボットアーム200が故障に至りそうな旨の警告がユーザに通知される。なお、このような警告が通知された段階では、ロボットアーム200はまだ故障には至っていない。ユーザは、この通知を受けた場合、次に計画している定期メンテナンスのときに、ロボットアーム200の修理などの保全を行えばよい。
【0071】
以上、区間CN+1について説明したが、CPU501は、区間CN+2以降も引き続き監視モードM2の処理を行う。また、学習モードM1の処理は、装置を立ち上げた初期に限らず、定期メンテナンスを行った後やタスクプログラム321を変更した時など、適宜のタイミングで行ってもよい。
【0072】
本実施形態では、CPU501は、ロボットアーム200の動作に対応して出力される入力軸エンコーダ261iのエンコーダ値θ1iを時系列で取得する。そしてCPU501は、エンコーダ値θ1iの時系列データを、所定条件に基づいて区間C1~CNに区分けし、区間C1~CNに区分けしたエンコーダ値θ1iの時系列データを、クラスタリングする。これにより、各区間C1~CNのエンコーダ値θ1iの時系列データが、ロボットアーム200の動作の種類に対応してクラスタD11,D12,D21に分類されることになる。したがって、CPU501は、ロボット250から第1動作か第2動作かを示す動作の種類の情報を受け取らなくても、動作に適した基準値を用いてロボットアーム200の故障を予知することができるようになる。これにより、CPU501は、ロボットアーム200の動作に適した処理を行うことができる。
【0073】
またCPU501は、所定条件として、エンコーダ値θ1iを微分した値、即ち関節Jiの変位速度の値が、速度閾値V1よりも大きい区間を、エンコーダ値θ1iの時系列データから抽出することで、この時系列データを区間C1~CNに区分けする。これにより、CPU501は、エンコーダ値θ1iの時系列データをロボットアーム200の単位動作毎に区分けすることができ、ロボットアーム200の動作に適した処理を行うことができる。
【0074】
また、本実施形態では、CPU501は、ロボットアーム200が故障すると予知した結果として、表示装置600に画像データを出力する。これにより、適正な時期に警告がユーザに通知されるようになり、計画外、即ち定期メンテナンス以外にロボット250を停止させて保全作業を行うことが減り、物品W0の生産性が向上する。
【0075】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
【0076】
上述の実施形態では、ロボットアーム200が垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアームが、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。
【0077】
上述の実施形態では、警告を発する装置が、表示装置600である場合について説明したが、これに限定するものではない。CPU501が出力する所定データが、音声データである場合には、警告を発する装置は、例えばスピーカであればよい。また、CPU501が出力する所定データが、電子メールで用いられるようなテキストデータである場合には、警告を発する装置は、処理装置本体500と通信可能な端末であればよい。
【0078】
上述の実施形態では、第1センサが、入力軸エンコーダ261iである場合について説明したが、これに限定するものではない。第1センサが、例えば出力軸エンコーダ262iであってもよい。
【0079】
また、上述の実施形態では、第2センサが、電流センサ270iである場合について説明したが、これに限定するものではない。第2センサが、例えば出力軸エンコーダ262iであってもよいし、モータ231i又はモータ231iの近傍に設けられた不図示の温度センサであってもよい。また、第2センサのセンサ値を示す時系列の情報が、例えばロボット250と不図示の外部機器との間で通信されるデジタルI/O情報であってもよい。
【0080】
また、上述の実施形態では、第1センサと第2センサとが異なる場合について説明したが、これに限定するものではない。即ち、第1センサと第2センサとが同じセンサであってもよい。このセンサとして、例えば出力軸エンコーダ262iを用いてもよい。即ち、学習モードM1においては、出力軸エンコーダ262iのエンコーダ値θ2iから分類モデルと第1基準値A1とを求めればよい。監視モードM2においては、第1動作であるかどうかの判別に用いるデータ、及び第1基準値A1又は第2基準値A2と比較するデータを、1区間分のエンコーダ値θ2iとすればよい。
【0081】
また、上述の実施形態では、モータ制御装置350iが電流センサ270iの信号に基づく3相の電流値からトルク電流値Iqiを求める場合について説明したが、CPU501が3相の電流値からトルク電流値Iqiを求めるようにしてもよい。
【0082】
また、上述の実施形態では、CPU501が、ロボットアーム200全体を総合的に監視する場合について説明したが、これに限定するものではない。CPU501が、ロボットアーム200の複数の関節J1~J6のそれぞれを、個別に監視するようにしてもよい。この場合、基準値A1,A2は、各関節J1~J6に個別に設定されることになる。
【0083】
また、上述の実施形態では、エンコーダ値を時間で一階微分し、エンコーダ値の時間変化がゼロとみなせる区間をエンコーダ値の時系列データから除外することで、エンコーダ値の時系列データの区分けを行う場合について説明した。しかし、ロボットアーム200の動作の数が少ない場合は、ロボットアーム200の動作を教示する際に、第1動作を示す情報、または第2動作を示す情報を、ロボットアーム200の動作に紐づけておいても良い。
【0084】
例えば、「原点からトレー上空に移動」という動作には第1動作を示す情報を教示時に紐づけ、「ハンドの位置を補正しつつ把持」という動作には第2動作を示す情報を教示時に紐づけておく。これにより、CPU501は各動作に紐づけられた、第1動作を示す情報、または第2動作を示す情報に基づき、ロボットアーム200が各動作を行った際にロボットアーム200から取得したエンコーダ値を区分けすることができる。よって、エンコーダ値を微分する処理を省くことができ、この処理に要する時間の分、CPU501の負荷を低減することができる。
【0085】
また、各動作に紐づけられた、第1動作を示す情報、または第2動作を示す情報に基づき、各動作を行った際に取得したトルク電流値の時系列データを直接区分けしても良い。これによりエンコーダ値の処理を省くことができるので、さらに、この処理に要する時間の分、CPU501の処理負荷を低減することができる。
【0086】
また教示時に、動作の種類を示す情報を、各動作に紐づけておき、動作の種類を示す情報を基に、各動作を行った際に取得したエンコーダ値、トルク電流値を区分けしてもよい。
【0087】
また上述の実施形態では、所定装置が、ロボットアーム200である場合を例に説明したが、これに限定するものではない。所定装置が、例えばワークを搬送するリニア機器、ビス締めを行う機器、表面粗さを検出するプローブ機器、又はレンズに膜を蒸着する蒸着装置など、種々の生産装置であってもよい。その場合、所定部位を駆動する駆動部に、エンコーダ又は電流センサなどのセンサが設けられていればよく、上述した実施形態と同様のプログラムをCPU501に入力することで、上述した実施形態と同様の処理方法をCPU501が実施可能となる。
【0088】
また、所定装置は、生産装置に限定するものではなく、生産装置以外の装置であってもよい。例えば、所定装置が、介護用ロボット、コンシューマ向けのロボット、事務機器、又は光学装置などであってもよい。所定装置は、所定部位が動作することでユーザの目的を達成することができればよい。その場合も、動作する所定部位の駆動部に、エンコーダや電流センサといったセンサが設けられていればよく、上述した実施形態と同様のプログラムをCPU501に入力することで、上述した実施形態と同様の処理方法をCPU501が実施可能となる。
【0089】
また、ロボットアーム200の各関節を駆動する駆動部は、上述の実施形態の構成に限定されるものではない。各関節を駆動する駆動部は、例えば人工筋肉のようなデバイス等であってもよい。その場合、デバイスの変位を検出できるセンサを、エンコーダや電流センサの代わりとして適宜設ければよい。
【0090】
また所定装置は、制御装置に設けられる記憶装置の情報に基づき、伸縮、屈伸、上下移動、左右移動もしくは旋回の各動作、またはこれらの複合動作を自動的に行うことができる機械であるのが好ましい。
【0091】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0092】
100…ロボット装置(生産システム)、200…ロボットアーム(所定装置、生産装置)、2611~2616…入力軸エンコーダ(第1センサ)、2701~2706…電流センサ(第2センサ)、501…CPU(処理部)、1000…処理装置