<実施形態>
以下、本発明の実施形態について、図面を参照して説明する。
<ロボットシステムの概要>
まず、実施形態に係るロボットシステムの概要について説明する。
ロボットシステムは、エンコーダーと、エンコーダーを備えるロボットと、制御部を備える。エンコーダーは、駆動部の回動軸に取り付けられる主軸歯車と、主軸歯車と噛み合う第1副軸歯車と、主軸歯車と噛み合う第2副軸歯車と、主軸歯車と噛み合う第3副軸歯車とを有する。
より具体的には、制御部は、第1処理を行う。第1処理は、第11処理と、第12処理と、第13処理と、第14処理を含む処理である。第11処理は、第1副軸歯車と第2副軸歯車とに基づく第1回転数を導出する処理のことである。第12処理は、第2副軸歯車と第3副軸歯車とに基づく第2回転数を導出する処理のことである。第13処理は、第3副軸歯車と第1副軸歯車とに基づく第3回転数を導出する処理のことである。第14処理は、第1回転数と、第2回転数と、第3回転数とのうちの2つ以上の回転数が互いに一致していない場合、駆動部を停止させる処理のことである。
ここで、第1回転数と、第2回転数と、第3回転数とのうちの2つ以上の回転数が互いに一致していない場合、エンコーダーにおいて副軸歯車に関する異常が発生している可能性が高い。より具体的には、当該場合、エンコーダーにおいて第1副軸歯車~第3副軸歯車のうちの一部又は全部に関する異常が発生している可能性が高い。エンコーダーにおいて副軸歯車に関する異常が発生している場合、エンコーダーから出力された情報に基づいて導出される主軸歯車の多回転量は、実際の多回転量と異なる値になることがある。これは、当該情報に基づいて導出される主軸歯車の多回転量が、主軸歯車の位相と主軸歯車の回転数とを足し合わせた値であり、且つ、主軸歯車の回転数が、第1副軸歯車~第3副軸歯車それぞれの位相に基づいて導出されるためである。当該情報に基づいて導出される主軸歯車の多回転量が実際の多回転量と異なる値になる場合、ロボットが誤作動してしまうことがある。
すなわち、ロボットシステムは、制御部が行う第1処理によって、導出した主軸歯車の多回転量が実際の多回転量と異なる値になっているか否かを判定する。そして、ロボットシステムは、導出した主軸歯車の多回転量が実際の多回転量と異なる値になっている場合、すなわち、第1回転数と、第2回転数と、第3回転数とのうちの2つ以上の回転数が互いに一致していない場合、駆動部を停止させる。その結果、ロボットシステムは、ロボットが誤作動してしまうことを抑制することができる。
また、ロボットシステムは、主軸位相出力部を備えてもよい。主軸位相出力部は、主軸歯車の位相を第1主軸位相として出力する。この場合、制御部は、第3処理を行う。第3処理は、第31処理と、第32処理を含む処理である。第31処理は、第1副軸歯車の位相と、第2副軸歯車の位相と、第3副軸歯車の位相とに基づいて、主軸歯車の位相を第2主軸位相として導出する処理のことである。第32処理は、第1主軸位相と、第2主軸位相とが互いに一致していない場合、駆動部を停止させる処理のことである。
ここで、第1主軸位相と、第2主軸位相とが互いに一致していない場合、エンコーダーにおいて主軸歯車又は副軸歯車に関する異常が発生している可能性が高い。エンコーダーにおいて主軸歯車又は副軸歯車に異常が発生している場合、エンコーダーから出力された情報に基づいて導出される主軸歯車の多回転量は、実際の多回転量と異なる値になることがある。これは、当該情報に基づいて導出される主軸歯車の多回転量が、主軸歯車の位相と主軸歯車の回転数とを足し合わせた値であり、且つ、主軸歯車の回転数が、第1副軸歯車~第3副軸歯車それぞれの位相に基づいて導出されるためである。当該情報に基づいて導出される主軸歯車の多回転量が実際の多回転量と異なる値になる場合、ロボットが誤作動することがある。
すなわち、ロボットシステムは、制御部が行う第3処理によって、導出した主軸歯車の多回転量が実際の多回転量と異なる値になっているか否かを判定する。そして、ロボットシステムは、導出した主軸歯車の多回転量が実際の多回転量と異なる値になっている場合、すなわち、第1主軸位相と、第2主軸位相とが互いに一致していない場合、駆動部を停止させる。その結果、ロボットシステムは、ロボットが誤作動することを抑制することができる。
更に、ロボットシステムは、制御部が第1処理と第3処理との両方を行う場合、ロボットシステムは、エンコーダーにおいて主軸歯車と副軸歯車とのいずれに異常が発生しているかを判定することができる。
以下では、このようなロボットシステムの構成と、ロボットシステムにおいて制御部が行う処理のうち第1処理と第3処理とを含む処理について詳しく説明する。なお、制御部は、ロボットに備えられる構成であってもよく、ロボットを制御するロボット制御装置に備えられる構成であってもよく、ロボットと当該ロボット制御装置との間を中継する情報処理装置に備えられる構成であってもよく、エンコーダーに備えられる構成であってもよい。以下では、一例として、制御部が当該ロボット制御装置に備えられる場合について説明する。
<ロボットシステムの構成>
まず、図1を参照し、実施形態に係るロボットシステム1の構成について説明する。
図1は、実施形態に係るロボットシステム1の構成の一例を示す図である。なお、ロボットシステム1は、前述のロボットシステムの一例である。
ロボットシステム1は、ロボット20と、ロボット制御装置30と、情報処理装置40を備える。なお、ロボットシステム1において、ロボット20と、ロボット制御装置30と、情報処理装置40との一部又は全部は、互いに別体に構成されてもよく、一体に構成されてもよい。図1に示した例では、ロボット20と、ロボット制御装置30と、情報処理装置40との全部は、互いに別体に構成されている。また、ロボットシステム1は、情報処理装置40を備えない構成であってもよい。
ロボット20は、スカラロボットである。スカラロボットは、水平多関節ロボットとも称される。なお、ロボット20は、スカラロボットに代えて、垂直多関節ロボットや直動ロボット等の他の種類のロボットであってもよい。ここで、垂直多関節ロボットは、1つの腕を備える単腕ロボットであってもよく、2つ以上の腕を備える複腕ロボットであってもよい。2つの腕を備える複腕ロボットは、双腕ロボットとも称される。なお、ロボット20は、前述のロボットの一例である。
ロボット20は、基台Bと、可動部Aを備える。
基台Bは、可動部Aを支持する。図1に示した例において、基台Bは、予め決められた設置面に設置されている。設置面は、例えば、ロボット20に作業を行わせる部屋の床面である。なお、設置面は、当該床面に代えて、当該部屋の壁面、当該部屋の天井面、テーブルの上面、治具が有する面、台が有する面等の他の面であってもよい。
ここで、以下では、説明の便宜上、設置面と直交する方向のうち基台Bから設置面に向かう方向を下又は下方向と称して説明する。また、以下では、説明の便宜上、下方向と反対の方向を上又は上方向と称して説明する。
可動部Aは、基台Bにより第1回動軸AX1周りに回動可能に支持された第1アームA1と、第1アームA1により第2回動軸AX2周りに回動可能に支持された第2アームA2と、第2アームA2により第3回動軸AX3周りに回動可能且つ第3回動軸AX3の軸方向に並進可能に支持されたシャフトSを備える。
シャフトSは、円柱形状の軸体である。シャフトSの周表面には、図示しないボールねじ溝と、図示しないスプライン溝とがそれぞれ設けられている。図1に示した例では、シャフトSは、第2アームA2の端部のうちの第1アームA1と反対側の端部を、上下方向に貫通し、設けられている。
シャフトSの先端には、外部装置を取り付け可能である。シャフトSの先端に取り付け可能な外部装置は、エンドエフェクター等のことである。シャフトSの先端は、シャフトSが有する2つの端部のうちの下側の端部のことである。図1に示したシャフトSの先端には、何も取り付けられていない。シャフトSの先端に取り付けられるエンドエフェクターは、例えば、指部によって物体を保持することが可能なエンドエフェクターである。なお、シャフトSの先端に取り付けられるエンドエフェクターは、空気による吸着、磁気による吸着等によって物体を保持可能なエンドエフェクターであってもよい。また、シャフトSの先端に取り付けられるエンドエフェクターは、物体を保持不可能なエンドエフェクターであってもよい。ここで、本実施形態では、物体を保持するとは、物体の状態を、持ち上げることが可能な状態にすることを意味する。
第1アームA1は、この一例において、第1回動軸AX1周りに回動し、水平方向に移動する。本実施形態において、水平方向は、上下方向と直交する方向のことである。なお、回動とは、軸の周囲を回転する運動を意味し、回転角が360度未満である場合も、回転角が360度以上である場合も含む。また、一方向に回転する運動に限らず、両方向に回転する運動も含む。
また、第1アームA1は、基台Bが備える第1駆動部M1によって第1回動軸AX1周りに回動させられる。第1駆動部M1は、第1アームA1を第1回動軸AX1周りに回動させるアクチュエーターである。第1駆動部M1は、例えば、モーターである。すなわち、本実施形態では、第1回動軸AX1は、第1駆動部M1の回動軸と一致する仮想的な軸のことである。なお、第1駆動部M1は、モーターに代えて、第1アームA1を回動させる他のアクチュエーターであってもよい。
第2アームA2は、この一例において、第2回動軸AX2周りに回動し、水平方向に移動する。
第2アームA2は、第2アームA2が備える第2駆動部M2によって第2回動軸AX2周りに回動させられる。第2駆動部M2は、第2アームA2を第2回動軸AX2周りに回動させる。第2駆動部M2は、例えば、モーターである。すなわち、本実施形態では、第2回動軸AX2は、第2駆動部M2の回動軸と一致する仮想的な軸のことである。なお、第2駆動部M2は、モーターに代えて、第2アームA2を回動させる他のアクチュエーターであってもよい。
また、第2アームA2は、第3駆動部M3及び第4駆動部M4を備え、シャフトSを支持する。
第3駆動部M3は、シャフトSのボールねじ溝の外周部に設けられたボールねじナットを、タイミングベルト等を介して回動させる。これにより、第3駆動部M3は、シャフトSを上下方向に移動させる。第3駆動部M3は、例えば、モーターである。なお、第3駆動部M3は、モーターに代えて、シャフトSを上下方向に移動させる他のアクチュエーターであってもよい。
第4駆動部M4は、シャフトSのスプライン溝の外周部に設けられたボールスプラインナットを、タイミングベルト等を介して回動させる。これにより、第4駆動部M4は、シャフトSを第3回動軸AX3周りに回動させる。第4駆動部M4は、例えば、モーターである。なお、第4駆動部M4は、モーターに代えて、シャフトSを第3回動軸AX3周りに回動させる他のアクチュエーターであってもよい。
このように、第3回動軸AX3は、シャフトSの中心軸と一致する仮想的な軸のことである。
以下では、一例として、第1駆動部M1~第4駆動部M4のそれぞれが、すべて同じ構成を有している場合について説明する。なお、第1駆動部M1~第4駆動部M4のうちの一部又は全部は、互いに異なる構成を有していてもよい。以下では、第1駆動部M1~第4駆動部M4のそれぞれを区別する必要がない限り、これらをまとめて駆動部Mと称して説明する。
駆動部Mは、駆動部Mの回動軸の多回転量を、他の装置に出力するエンコーダーECを備える。すなわち、駆動部Mは、本実施形態において、サーボモーターである。図1では、図が煩雑になるのを防ぐため、エンコーダーECを省略している。ここで、当該回動軸の多回転量は、当該回動軸に取り付けられ、当該回動軸とともに回転する歯車の多回転量のことである。
エンコーダーECは、バッテリーレスエンコーダーである。より具体的には、エンコーダーECは、複数の歯車と、当該複数の歯車それぞれの位相を検出するセンサーとを備える。これにより、駆動部Mの回動軸の多回転量を導出する装置は、当該複数の歯車それぞれの位相の組み合わせに基づいて、駆動部Mの回動軸の多回転量を導出することができる。当該装置は、例えば、エンコーダーEC、ロボット制御装置30、情報処理装置40等のことである。すなわち、エンコーダーECは、エンコーダーECへの電力の供給が止まっている場合であっても、バッテリーを備えることなく、当該回動軸の多回転量を保持することができる。なお、エンコーダーECは、前述のエンコーダーの一例である。ここで、エンコーダーECが備える複数の歯車の構成例について説明する。
図2は、エンコーダーECが備える複数の歯車の構成例を示す図である。ここで、図2に示した回動軸STは、駆動部Mの回動軸の一例である。また、図2では、エンコーダーECが備える複数の歯車の構成例を明確に示すため、エンコーダーECのカバー、エンコーダーECが備えるセンサー、当該センサーを制御する基板、エンコーダーECが有する配線等を省略している。
エンコーダーECは、エンコーダーECが備える複数の歯車として、主軸歯車G0と、第1副軸歯車G1と、第2副軸歯車G2と、第3副軸歯車G3との4つの歯車を備える。なお、エンコーダーECは、当該4つの歯車に加えて、他の1以上の歯車を備える構成であってもよい。
主軸歯車G0は、図2に示したように、回動軸STに取り付けられている。この場合、主軸歯車G0の位相は、回動軸STの位相と一致する。また、当該場合、主軸歯車G0の回転数は、回動軸STの回転数と一致する。また、当該場合、主軸歯車G0の多回転量は、回動軸STの多回転量と一致する。なお、主軸歯車G0は、前述の主軸歯車の一例である。
第1副軸歯車G1~第3副軸歯車G3のそれぞれは、第1副軸歯車G1~第3副軸歯車G3それぞれの歯が主軸歯車G0の歯と噛み合うように、エンコーダーECに設けられている。また、第1副軸歯車G1~第3副軸歯車G3それぞれは、第1副軸歯車G1~第3副軸歯車G3それぞれの歯が互いに噛み合わないように、エンコーダーECに設けられている。なお、第1副軸歯車G1は、前述の第1副軸歯車の一例である。また、第2副軸歯車G2は、前述の第2副軸歯車の一例である。また、第3副軸歯車G3は、前述の第3副軸歯車の一例である。
このように、エンコーダーECは、主軸歯車G0と、第1副軸歯車G1と、第2副軸歯車G2と、第3副軸歯車G3を備える。これにより、エンコーダーECは、前述したように、エンコーダーECへの電力の供給が止まっている場合であっても、バッテリーを備えることなく、回動軸STの多回転量を保持することができる。
ここで、主軸歯車G0の歯数と、第1副軸歯車G1~第3副軸歯車G3それぞれの歯数との組み合わせは、例えば、互いに素な4つの整数の組み合わせである。ここで、互いに素な4つの整数の組み合わせは、換言すると1以外の最大公約数を持たない4つの整数の組み合わせのことである。以下では、一例として、主軸歯車G0の歯数、第1副軸歯車G1の歯数、第2副軸歯車G2の歯数、第3副軸歯車G3の歯数が、順に20歯、17歯、19歯、23歯である場合について説明する。すなわち、実施形態では、主軸歯車G0の歯数は、20歯であり、第1副軸歯車G1の歯数は、17歯であり、第2副軸歯車G2の歯数は、19歯であり、第3副軸歯車G3の歯数は、23歯である。なお、主軸歯車G0の歯数と、第1副軸歯車G1~第3副軸歯車G3それぞれの歯数との組み合わせは、互いに素な4つの整数に対して予め決められた実数を乗じた後の値の組み合わせであってもよい。ただし、この場合、当該予め決められた実数は、主軸歯車G0、第1副軸歯車G1、第2副軸歯車G2、第3副軸歯車G3のそれぞれに歯を刻むことが可能なように決められた実数である必要がある。このため、当該予め決められた実数は、整数であることが望ましい。
また、主軸歯車G0の歯数と、第1副軸歯車G1~第3副軸歯車G3それぞれの歯数との組み合わせは、エンコーダーECに保持させたい主軸歯車G0の回転数に応じて決められる。例えば、歯数が17である第1副軸歯車G1と、歯数が19である第2副軸歯車G2との組み合わせでは、主軸歯車G0の回転数として、17×19=323回転までの回転数を保持することができる。
また、エンコーダーECは、主軸位相出力部S0と、第1位相出力部S1と、第2位相出力部S2と、第3位相出力部S3を備える。なお、図2では、エンコーダーECが備える4つの歯車の構成例を明確に示すため、主軸位相出力部S0と、第1位相出力部S1と、第2位相出力部S2と、第3位相出力部S3とのそれぞれを省略している。
主軸位相出力部S0は、主軸歯車G0の位相を出力する。主軸位相出力部S0は、例えば、主軸歯車G0の位相を検出することによって、当該位相を第1主軸位相として出力するセンサーである。当該センサーは、光学式センサーであってもよく、磁気式センサーであってもよく、レゾルバであってもよく、ポテンションメーターであってもよく、当該位相を検出可能な他のセンサーであってもよい。図2に示した例では、エンコーダーECは、主軸位相出力部S0として、光学式センサーを備える。このため、図2に示した回動軸STの先端には、台座B1を介して、周方向に並ぶ複数のスリットからなる複数のスリット列が設けられた光学ディスクD1が設けられている。なお、主軸位相出力部S0は、前述の主軸位相出力部の一例である。
主軸位相出力部S0は、主軸歯車G0の位相を検出し、検出した第1主軸位相を示す第1主軸位相情報を、情報処理装置40を介して、ロボット制御装置30に出力する。
第1位相出力部S1は、第1副軸歯車G1の位相を検出することによって、当該位相を第1副軸位相として出力するセンサーである。当該センサーは、光学式センサーであってもよく、磁気式センサーであってもよく、レゾルバであってもよく、ポテンションメーターであってもよく、当該位相を検出可能な他のセンサーであってもよい。以下では、一例として、当該センサーが、磁気式センサーである場合について説明する。
第1位相出力部S1は、検出した第1副軸位相を示す第1副軸位相情報を、情報処理装置40を介して、ロボット制御装置30に出力する。
第2位相出力部S2は、第2副軸歯車G2の位相を検出することによって、当該位相を第2副軸位相として出力するセンサーである。当該センサーは、光学式センサーであってもよく、磁気式センサーであってもよく、レゾルバであってもよく、ポテンションメーターであってもよく、当該位相を検出可能な他のセンサーであってもよい。以下では、一例として、当該センサーが、磁気式センサーである場合について説明する。
第2位相出力部S2は、検出した第2副軸位相を示す第2副軸位相情報を、情報処理装置40を介して、ロボット制御装置30に出力する。
第3位相出力部S3は、第3副軸歯車G3の位相を検出することによって、当該位相を第3副軸位相として出力するセンサーである。当該センサーは、光学式センサーであってもよく、磁気式センサーであってもよく、レゾルバであってもよく、ポテンションメーターであってもよく、当該位相を検出可能な他のセンサーであってもよい。以下では、一例として、当該センサーが、磁気式センサーである場合について説明する。
第3位相出力部S3は、検出した第3副軸位相を示す第3副軸位相情報を、情報処理装置40を介して、ロボット制御装置30に出力する。
図1に戻る。ロボット制御装置30は、ロボット20を制御する。図1に示した例では、ロボット制御装置30は、情報処理装置40を介して、ロボット20を制御する。
また、ロボット制御装置30は、エンコーダーECの主軸位相出力部S0から第1主軸位相情報を取得する。また、ロボット制御装置30は、エンコーダーECの第1位相出力部S1から、第1副軸位相情報を取得する。また、ロボット制御装置30は、エンコーダーECの第2位相出力部S2から、第2副軸位相情報を取得する。また、ロボット制御装置30は、エンコーダーECの第3位相出力部S3から、第3副軸位相情報を取得する。
ロボット制御装置30は、取得した第1主軸位相情報、第1副軸位相情報、第2副軸位相情報、第3副軸位相情報に基づいて、主軸歯車G0の多回転量を導出する。
より具体的には、ロボット制御装置30は、第1副軸位相、第2副軸位相、第3副軸位相の組み合わせに基づいて、主軸歯車G0の回転数を導出する。そして、ロボット制御装置30は、導出した当該回転数と、第1主軸位相とを足し合わせた値を、主軸歯車G0の多回転量として導出する。ロボット制御装置30は、導出した当該多回転量を、駆動部Mの回動軸の多回転量として特定する。ロボット制御装置30は、特定した当該多回転量に基づいて駆動部Mを制御することにより、ロボット20を動作させる。なお、本実施形態では、ロボット制御装置30が当該多回転量に基づいてロボット20を動作させる処理については、説明を省略する。
また、ロボット制御装置30は、第1処理を行う。第1処理は、第11処理と、第12処理と、第13処理と、第14処理を含む処理である。実施形態において、第11処理は、第1副軸歯車G1と第2副軸歯車G2とに基づく第1回転数を導出する処理のことである。また、実施形態において、第12処理は、第2副軸歯車G2と第3副軸歯車G3とに基づく第2回転数を導出する処理のことである。また、実施形態において、第13処理は、第3副軸歯車G3と第1副軸歯車G1とに基づく第3回転数を導出する処理のことである。また、実施形態において、第14処理は、第1回転数と第2回転数と第3回転数とのうちの2つ以上の回転数が互いに一致していない場合に駆動部Mを停止させる処理のことである。なお、実施形態において、第1処理には、第11処理、第12処理、第13処理、第14処理に加えて、他の処理が含まれる構成であってもよい。また、実施形態において、ある3つの値のうちの2つ以上の値が互いに一致していないことは、当該3つの値から選択可能な2つの値の組み合わせのうちのいずれかの組み合わせに含まれる2つの値が互いに一致していない、又は、当該3つの値が互いに一致していないことを意味する。また、駆動部Mを停止させる処理として、例えば、ロボット20が電力遮断部を備える場合には、ロボット20への電力供給を遮断させる処理を行い、駆動部Mへの電力供給を遮断することにより、駆動部Mの回動を止めてもよいし、また、例えば、電磁ブレーキなどを搭載している場合には、電磁ブレーキをオンさせる処理を行うことにより、駆動部Mの回動を止めてもよい。
ここで、第1回転数と第2回転数と第3回転数とのうちの2つ以上の回転数が互いに一致していない場合、エンコーダーECにおいて副軸歯車に関する異常が発生している可能性が高い。より具体的には、当該場合、エンコーダーECにおいて第1副軸歯車G1~第3副軸歯車G3のうちの一部又は全部に関する異常が発生している可能性が高い。エンコーダーECにおける副軸歯車に関する異常は、例えば、第1副軸歯車G1~第3副軸歯車G3のうちの一部又は全部の副軸歯車の歯の摩耗、当該歯の欠損、第1位相出力部S1~第3位相出力部S3のうちの一部又は全部の故障等である。エンコーダーECにおいて副軸歯車に関する異常が発生している場合、エンコーダーECから出力された情報に基づいて導出される主軸歯車の多回転量は、実際の多回転量と異なる値になることがある。これは、前述した通り、当該情報に基づいて導出される主軸歯車G0の多回転量が、第1主軸位相と主軸歯車G0の回転数とを足し合わせた値であり、且つ、主軸歯車G0の回転数が、第1副軸位相~第3副軸位相に基づいて導出されるためである。当該情報に基づいて導出される主軸歯車の多回転量が実際の多回転量と異なる値になる場合、ロボット20が誤作動することがある。
すなわち、ロボット制御装置30は、第1処理によって、主軸歯車G0の回転数が実際の回転数と異なる回転数になっているか否かを判定する。これはつまり、ロボット制御装置30が、第1処理によって、導出した主軸歯車G0の多回転量が実際の多回転量と異なる多回転量になっているか否かを判定することを意味する。そして、ロボット制御装置30は、導出した主軸歯車G0の多回転量が実際の多回転量と異なる値になっている場合、すなわち、第1回転数と、第2回転数と、第3回転数とのうちの2つ以上の回転数が互いに一致していない場合、ロボット20の駆動部Mを停止させる。その結果、ロボット20の動作を停止でき、ロボットシステム1は、ロボット20が誤作動することを抑制することができる。
また、ロボット制御装置30は、第3処理を行う。第3処理は、第31処理と、第32処理を含む処理である。実施形態において、第31処理は、第1副軸位相と、第2副軸位相と、第3副軸位相とに基づいて、主軸歯車G0の位相を第2主軸位相として導出する処理のことである。また、実施形態において、第32処理は、前述の第1主軸位相と第2主軸位相とが互いに一致していない場合、駆動部Mを停止させる処理のことである。なお、実施形態において、第3処理には、第31処理、第32処理に加えて、他の処理が含まれる構成であってもよい。
ここで、第1主軸位相と第2主軸位相とが互いに一致していない場合、エンコーダーECにおいて主軸歯車G0に関する異常、又は、第1副軸歯車G1~第3副軸歯車G3のうちの一部又は全部に関する異常が発生している可能性が高い。エンコーダーECにおける主軸歯車G0に関する異常は、主軸歯車G0の歯の摩耗、当該歯の欠損、主軸位相出力部S0の故障等である。エンコーダーECにおいてこれらの異常が発生している場合、エンコーダーECから出力された情報に基づいて導出される主軸歯車G0の多回転量は、実際の多回転量と異なる値になることがある。これは、当該情報に基づいて導出される主軸歯車の多回転量が、第1主軸位相と主軸歯車G0の回転数とを足し合わせた値であり、且つ、主軸歯車G0の回転数が、第1副軸位相~第3副軸位相に基づいて導出されるためである。当該情報に基づいて導出される主軸歯車G0の多回転量が実際の多回転量と異なる値になる場合、ロボット20が、前述した通り、誤作動することがある。
すなわち、ロボット制御装置30は、第3処理によって、導出した主軸歯車G0の多回転量が実際の多回転量と異なる値になっているか否かを判定する。そして、ロボット制御装置30は、導出した主軸歯車G0の多回転量が実際の多回転量と異なる値になっている場合、すなわち、第1主軸位相と、第2主軸位相とが互いに一致していない場合、駆動部Mを停止させる。その結果、ロボット20の動作を停止でき、ロボットシステム1は、ロボット20が誤作動することを抑制することができる。
なお、ロボット制御装置30は、上記において説明した第1処理と第3処理とのうちのいずれか一方を含む処理を行う構成であってもよく、第1処理と第3処理との両方を含む処理を行う構成であってもよい。以下では、一例として、ロボット制御装置30が、第1処理と第3処理との両方を含む処理を行う場合について説明する。この場合、ロボット制御装置30は、エンコーダーECにおいて主軸歯車G0と副軸歯車とのいずれに異常が発生しているかを判定することができる。当該副軸歯車は、第1副軸歯車G1~第3副軸歯車G3のうちの一部又は全部のことである。ロボット制御装置30は、前述のロボット制御装置の一例である。
情報処理装置40は、ロボット20とロボット制御装置30との間を中継する情報処理装置である。より具体的には、情報処理装置40は、ロボット20とロボット制御装置30との間における各種の信号の伝送を中継する。これにより、情報処理装置40は、ロボット20とロボット制御装置30との間における各種の信号に応じた処理を、ロボット制御装置30とは独立に行うことができる。その結果、例えば、情報処理装置40は、ロボット20が意図しない動作を行った場合、より確実にロボット20を停止させることができる。すなわち、情報処理装置40は、ロボットシステム1の安全性を向上させることができる。なお、本実施形態では、情報処理装置40について、これ以上の詳細な説明を省略する。また、情報処理装置40は、前述の情報処理装置の一例である。
<ロボット制御装置のハードウェア構成>
以下、図3を参照し、ロボット制御装置30のハードウェア構成について説明する。図3は、ロボット制御装置30のハードウェア構成の一例を示す図である。ロボット制御装置30は、例えば、プロセッサー31と、メモリー32と、通信部34を備える。これらの構成要素は、バスを介して相互に通信可能に接続されている。また、ロボット制御装置30は、通信部34を介してロボット20と通信を行う。なお、前述した通り、実施形態では、当該通信は、情報処理装置40によって中継される。また、ロボット制御装置30は、上述した他にも、例えば、各駆動部と電源とをそれぞれ接続するスイッチを制御する回路、すなわちモータードライバを備えていてもよい。
プロセッサー31は、例えば、CPU(Central Processing Unit)である。なお、プロセッサー31は、FPGA(Field Programmable Gate Array)等の他のプロセッサーであってもよい。プロセッサー31は、ロボット制御装置30が備えるメモリー32に格納された各種の指令を実行する。
メモリー32は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、ROM(Read-Only Memory)、RAM(Random Access Memory)等を含む。なお、メモリー32は、ロボット制御装置30に内蔵されるものに代えて、USB(Universal Serial Bus)等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。また、メモリー32は、ロボット制御装置30以外の装置に設けられてもよく、例えば、ロボット20、情報処理装置40、エンコーダーEC、クラウド上のコンピューター等に設けられてもよい。メモリー32は、プロセッサー31が処理する各種の情報、コンピューターにより実行可能な各種の指令、各種の画像等を格納する。ここで、当該各種の指令は、例えば、ロボット20の動作プログラム、コード等のことである。
通信部34は、例えば、USB等のデジタル入出力ポート、イーサネット(登録商標)ポート等を含んで構成される。
なお、ロボット制御装置30は、キーボード、マウス、タッチパッド等の入力装置を備える構成であってもよい。また、ロボット制御装置30は、液晶ディスプレイパネル、有機EL(ElectroLuminescence)ディスプレイパネル等を備えた表示装置を備える構成であってもよい。
<ロボット制御装置の機能構成>
以下、図4を参照し、ロボット制御装置30の機能構成について説明する。図4は、ロボット制御装置30の機能構成の一例を示す図である。ロボット制御装置30は、メモリー32と、通信部34と、制御部36を備える。なお、前述した通り、実施形態では、第1駆動部M1~第4駆動部M4のそれぞれは、互いに同じ構成である。このため、図4では、図を簡略化するため、第2駆動部M2~第4駆動部M4それぞれが備える主軸位相出力部S0、第1位相出力部S1、第2位相出力部S2、第3位相出力部S3について、省略している。また、制御部36は、第1駆動部M1~第4駆動部M4のそれぞれについて、同様の処理を行う。このため、以下では、制御部36が第1駆動部M1に対して行う処理を例に挙げて、制御部36が第1駆動部M1~第4駆動部M4のそれぞれに対して行う処理について説明する。
制御部36は、ロボット制御装置30の全体を制御する。制御部36は、取得部361と、導出部363と、判定部365と、計時部367と、ロボット制御部369と、報知部371を備える。制御部36が備えるこれらの機能部は、例えば、プロセッサー31が、メモリー32に記憶された各種の指令を実行することにより実現される。また、これらの機能部のうち一部又は全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
取得部361は、第1駆動部M1の主軸位相出力部S0から第1主軸位相情報を取得する。また、取得部361は、第1駆動部M1の第1位相出力部S1から第1副軸位相情報を取得する。また、取得部361は、第1駆動部M1の第2位相出力部S2から第2副軸位相情報を取得する。また、取得部361は、第1駆動部M1の第3位相出力部S3から、第3副軸位相情報を取得する。
導出部363は、ロボット制御装置30が行う各種の導出処理を行う。
導出部363は、例えば、第1駆動部M1のエンコーダーECから取得部361が取得した情報が示す3つの位相に基づいて、当該エンコーダーECが備える主軸歯車G0の回転数を導出する。当該情報は、第1副軸位相情報、第2副軸位相情報、第3副軸位相情報のことである。また、当該3つの位相は、第1副軸位相、第2副軸位相、第3副軸位相のことである。導出部363は、導出した当該主軸歯車G0の回転数と、当該エンコーダーECから取得部361が取得した第1主軸位相情報が示す第1主軸位相とを足し合わせた値を、主軸歯車G0の多回転量として導出する。
また、導出部363は、第1駆動部M1のエンコーダーECについて、第1回転数と、第2回転数と、第3回転数とのそれぞれを導出する。当該エンコーダーECの第1回転数は、当該エンコーダーECの第1副軸位相と、当該エンコーダーECの第2副軸位相とに基づいて導出される当該エンコーダーECの主軸歯車G0の回転数のことである。当該エンコーダーECの第2回転数は、当該エンコーダーECの第2副軸位相と、当該エンコーダーECの第3副軸位相とに基づいて導出される当該主軸歯車G0の回転数のことである。当該エンコーダーECの第3回転数は、当該エンコーダーECの第3副軸位相と、当該エンコーダーECの第1副軸位相とに基づいて導出される当該主軸歯車G0の回転数のことである。
また、導出部363は、第1駆動部M1のエンコーダーECについて、第1副軸位相と、第2副軸位相と、第3副軸位相とに基づいて、主軸歯車G0の位相を第2主軸位相として導出する。
判定部365は、ロボット制御装置30が行う各種の判定処理を行う。
判定部365は、例えば、第1駆動部M1について導出部363が導出した第1回転数、第2回転数、第3回転数のそれぞれに基づいて、第1異常条件が満たされているか否かを判定する。第1異常条件は、第1回転数と、第2回転数と、第3回転数とのうちの2つ以上の回転数が互いに一致していないこと、である。なお、第1異常条件には、これに加えて、他の条件が含まれる構成であってもよい。また、第1異常条件は、第1回転数と、第2回転数と、第3回転数とのうちの2つの回転数が互いに一致していないこと、であってもよい。すなわち、第1異常条件は、第1回転数と第2回転数との2つの回転数が互いに一致していないことであってもよく、第2回転数と第3回転数との2つの回転数が互いに一致していないことであってもよく、第3回転数と第1回転数との2つの回転数が互いに一致していないことであってもよく、これら3つの条件のうち2つを組み合わせた条件であってもよい。
また、判定部365は、例えば、取得部361が取得した第1主軸位相を示す情報と、導出部363が導出した第2主軸位相とに基づいて、第3異常条件が満たされているか否かを判定する。第3異常条件は、当該第1主軸位相と、当該第2主軸位相とが互いに一致していないこと、である。なお、第3異常条件には、これに加えて、他の条件が含まれる構成であってもよい。
計時部367は、経過時間を計る。
ロボット制御部369は、ロボット20を制御する。
ロボット制御部369は、例えば、メモリー32に予め記憶された動作プログラムに基づいて、ロボット20に予め決められた作業を行わせる。
また、ロボット制御部369は、例えば、第1異常条件が満たされていると判定部365が判定した場合、駆動部Mを停止させる。
また、ロボット制御部369は、例えば、第3異常条件が満たされていると判定部365が判定した場合、駆動部Mを停止させる。
報知部371は、第1異常条件が満たされていると判定部365が判定した場合、第1異常条件が満たされていることを示す情報を報知する。また、報知部371は、第3異常条件が満たされていると判定部365が判定した場合、第3異常条件が満たされていることを示す情報を報知する。
例えば、報知部371は、ある情報を報知する場合、当該情報を示す音をスピーカーから鳴らすことにより、当該情報を報知する。この際、報知部371は、ロボット制御装置30に備えられたスピーカーから当該音を鳴らして当該情報を報知する構成であってもよく、ロボット制御装置30と通信可能に接続された他の装置に備えられたスピーカーから当該音を鳴らして当該情報を報知する構成であってもよい。また、報知部371は、当該場合、当該情報を示す光を点すランプを点灯させることにより、当該情報を報知する。当該ランプは、例えば、パトランプ等である。この際、報知部371は、ロボット制御装置30に備えられた当該ランプを点灯させて当該情報を報知する構成であってもよく、ロボット制御装置30と通信可能に接続された他の装置に備えられたランプを点灯させて当該情報を報知する構成であってもよい。また、例えば、報知部371は、当該情報を示す画像をディスプレイに表示させることにより、当該情報を報知する。この際、報知部371は、ロボット制御装置30に備えられたディスプレイに当該画像を表示させて当該情報を報知する構成であってもよく、ロボット制御装置30と通信可能に接続された他の装置に備えられたディスプレイに当該画像を表示させて当該情報を報知する構成であってもよい。また、報知部371は、当該情報を他の装置に出力することにより、当該情報を報知する。なお、報知部371は、これら以外の方法によって当該情報を報知する構成であってもよい。
<第1処理と第3処理との両方を含む処理>
以下、ロボット制御装置30が行う処理のうち、前述の第1処理と第3処理との両方を含む処理について説明する。図5は、ロボット制御装置30が行う処理のうちの第1処理と第3処理との両方を含む処理の流れの一例を示す図である。図5に示した例では、当該処理には、第1処理と第3処理に加えて、第2処理が含まれている。
第2処理は、駆動部MのエンコーダーECが備える3つの副軸歯車それぞれについて、副軸歯車の位相の変化量を、実際の変化量と異なる変化量に導出されているか否かを判定する処理である。第2処理の詳細については、後述する。なお、ロボット制御装置30が行う処理のうちの第1処理と第3処理との両方を含む処理には、第2処理に代えて、他の処理が含まれる構成であってもよく、第2処理に加えて、他の処理が含まれる構成であってもよい。
ロボット制御部369は、ロボット制御部369がロボット20に動作を開始させる前のタイミングにおいて予め決められた開始条件が満たされるまで待機する(ステップS110)。
ここで、ロボット制御部369がロボット20に動作を開始させる前のタイミングは、換言すると、ロボット20を動作させる動作プログラムを実行させる操作をロボット制御装置30が受け付けるよりも前のタイミングのことである。また、ロボット制御部369がロボット20に動作を開始させる前のタイミングは、更に換言すると、ロボット20が動作し始めるよりも前のタイミングのことである。すなわち、実施形態において、ロボット20が動作している期間は、当該動作プログラムが実行されている期間のことである。また、上記の他にも、ロボット制御部369がロボット20に動作を開始させるタイミングは、駆動部Mを駆動するために駆動部Mに電流が流れるタイミングであってもよく、例えば、3相交流方式である場合には、各相に電流が流れるタイミングであってもよい。さらに、電磁ブレーキなどを搭載している場合には、電磁ブレーキがオフとなる電圧や電流となるタイミングであってもよい。
また、開始条件は、例えば、ロボット20の電源が投入されたこと、である。例えば、ロボット制御装置30に、ロボット制御装置30の基板と電源とを物理的に接続又は遮断できるスイッチにおいて、当該スイッチに電流が流れることや、当該スイッチの両端電圧が、電源電圧と等しい電圧になること、である。なお、開始条件は、これに代えて、ロボット20と情報処理装置40とエンコーダーECのうちの一部又は全部の基板に電力が供給されたこと、であってもよい。例えば、一部の基板に、当該基板が待機状態である時に流れる電流値よりも、高い電流値が流れたこと、であってもよい。また、開始条件は、図5に示したフローチャートの処理をロボット制御装置30に開始させる操作をロボット制御装置30が受け付けたこと、であってもよい。また、開始条件は、他の条件であってもよい。
制御部36は、ロボット制御部369がロボット20に動作を開始させる前のタイミングにおいて開始条件が満たされたとロボット制御部369が判定した場合(ステップS110-YES)、第1処理を行う(ステップS120)。第1処理の流れについてと、第1処理に含まれる各処理を行う主体については、後述する。
次に、制御部36は、第3処理を行う(ステップS130)。第3処理の流れについてと、第3処理に含まれる各処理を行う主体については、後述する。
なお、制御部36は、ステップS120の処理とステップS130の処理とを並列に行う構成であってもよく、図5に示した順と逆の順でステップS120の処理とステップS130の処理とを行う構成であってもよい。
次に、ロボット制御部369は、ロボット20の動作を開始させるまで待機する(ステップS140)。例えば、ロボット制御部369は、ロボット20を動作させる動作プログラムを実行させる操作を受け付けた場合、ロボット20の動作を開始させると判定する。この際、駆動部Mには、電流が流れる。
計時部367は、ロボット20の動作を開始させるとロボット制御部369が判定した場合(ステップS140-YES)、計時を開始する。そして、計時部367は、直前に計時を開始したタイミングから第1所定時間が経過したか否かを判定する(ステップS150)。第1所定時間は、例えば、1分である。なお、第1所定時間は、1分よりも短い時間であってもよく、1分よりも長い時間であってもよい。第1所定時間は、所定時間の一例である。
計時部367は、直前に計時を開始したタイミングから第1所定時間が経過していないと判定した場合(ステップS150-NO)、当該タイミングから第2所定時間が経過したか否かを判定する(ステップS160)。第2所定時間は、例えば、0.001秒である。なお、第2所定時間は、0.001秒よりも短い時間であってもよく、0.001秒よりも長い時間であってもよい。
計時部367は、直前に計時を開始したタイミングから第2所定時間が経過していないと計時部367が判定した場合(ステップS160-NO)、ステップS150に遷移し、当該タイミングから第1所定時間が経過しているか否かを再び判定する。
一方、制御部36は、直前に計時を開始したタイミングから第2所定時間が経過したと計時部367が判定した場合(ステップS160-YES)、第2処理を行う(ステップS170)。第2処理は、第2処理の流れについてと、第2処理に含まれる各処理を行う主体については、後述する。
ステップS170の処理が行われた後、計時部367は、ステップS150に遷移し、直前に計時を開始したタイミングから第1所定時間が経過したか否かを再び判定する。
一方、計時部367は、直前に計時を開始したタイミングから第1所定時間が経過したと判定した場合(ステップS150-YES)、直前に開始した計時を終了する。そして、制御部36は、第1処理を行う(ステップS180)。ここで、ステップS180の処理は、ステップS120の処理と同様の処理であるため、説明を省略する。
次に、制御部36は、第3処理を行う(ステップS190)。ここで、ステップS190の処理は、ステップS130の処理と同様の処理であるため、説明を省略する。
なお、制御部36は、ステップS180の処理とステップS190の処理とを並列に行う構成であってもよく、図5に示した順と逆の順でステップS180の処理とステップS190の処理とを行う構成であってもよい。
計時部367は、ステップS190の処理が行われた後、ステップS150に遷移し、計時を再び開始する。そして、計時部367は、直前に計時を開始したタイミングから第1所定時間が経過したか否かを判定する。
以上のように、図5に示した例では、ロボット制御装置30は、ロボット20に電源が投入されてからロボット20が動き出すまでの間において、第1処理と第3処理とを行う。なお、ロボット制御装置30は、他のタイミング、又は、他の期間において、第1処理と第3処理とを行う構成であってもよい。また、ロボット制御装置30は、第1処理を行わない構成である場合、ステップS120及びステップS180を省略する。また、ロボット制御装置30は、第3処理を行わない構成である場合、ステップS130及びステップS190を省略する。
また、図5に示した例では、ロボット制御装置30は、1回目の第1処理が行われた後において、第1所定時間が経過する毎に、第1処理を行う。これにより、ロボット制御装置30は、ロボット20が動作している最中において、導出した主軸歯車G0の多回転量が実際の多回転量と異なる値になった場合であっても、駆動部Mを停止させることにより、ロボット20を停止させることができる。その結果、ロボット制御装置30は、ロボット20が誤作動してしまうことを、より確実に抑制することができる。なお、第1所定時間が経過することは、所定の条件の一例である。なお、ロボット制御装置30は、ステップS150において、第1所定時間が経過することと異なる条件が満たされた場合にステップS180の処理を行い、当該条件が満たされない場合にステップS160の処理を行う構成であってもよい。当該条件は、例えば、ロボット20が行う作業の回数が所定の回数に達すること等である。
また、図5に示したフローチャートの処理のうち、ステップS150の処理と、ステップS180の処理と、ステップS190の処理とは、省略されてもよい。これにより、ロボット制御装置30は、ロボット20が動作している間においてロボット制御装置30が行う処理の負荷を低減することができる。ただし、ステップS180の処理とステップS190の処理とを省略せずにロボット制御装置30が実行する場合、ロボット制御装置30は、ロボット20が動作している間に、エンコーダーECにおいて主軸歯車G0又は副軸歯車に関する異常が発生した場合であっても、ロボット20が誤作動してしまうことを抑制することができる。
また、図5に示した例では、ロボット制御装置30は、ステップS160において、第2所定時間が経過することと異なる条件が満たされた場合にステップS170の処理を行い、当該条件が満たされない場合にステップS150の処理を行う構成であってもよい。当該条件は、例えば、ロボット20が行う作業の回数が所定の回数に達すること等である。
また、図5に示したフローチャートの処理のうちの一部又は全部の処理は、ロボット制御装置30に代えて、ロボット20、情報処理装置40、エンコーダーECのうちの一部又は全部によって行われる構成であってもよく、ロボット制御装置30に加えて、ロボット20、情報処理装置40、エンコーダーECのうちの一部又は全部によって行われる構成であってもよい。この場合、図5に示したフローチャートの処理のうちの一部又は全部の処理を行う装置は、制御部36が有する機能のうち当該処理を行う機能を備える。ロボットシステム1において、当該装置は、ロボット20、情報処理装置40、エンコーダーEC等であるが、これらに代えて、他の装置であってもよい。この場合、ロボットシステム1は、当該他の装置を備える。
<ステップS120の処理>
以下、図5に示したステップS120の処理、すなわち、第1処理について説明する。図6は、図5に示したステップS120の処理の流れの一例を示す図である。ここで、図6に示したフローチャートの処理は、4つの駆動部Mのそれぞれについて行う。そこで、以下では、ステップS120の処理を、第1駆動部M1についての処理を例に挙げて説明する。
取得部361は、第1駆動部M1が備えるエンコーダーECの主軸位相出力部S0から第1主軸位相情報を取得する(ステップS210)。
次に、取得部361は、第1駆動部M1が備えるエンコーダーECの第1位相出力部S1から第1副軸位相情報を取得し、当該エンコーダーECの第2位相出力部S2から第2副軸位相情報を取得し、当該エンコーダーECの第3位相出力部S3から第3副軸位相情報を取得する(ステップS220)。
次に、導出部363は、ステップS220において取得した3つの副軸位相情報に基づいて、主軸歯車G0の回転数を導出する(ステップS230)。当該3つの副軸位相情報は、第1副軸位相情報、第2副軸位相情報、第3副軸位相情報のことである。
ここで、ステップS230の処理について説明する。
まず、第1副軸位相、第2副軸位相、第3副軸位相に基づいて、導出部363が主軸歯車G0の回転数を導出する方法の一例について説明する。
2つの歯車のそれぞれが他の1つの歯車と噛み合っている場合、当該2つの歯車それぞれの位相の組み合わせは、当該1つの歯車の回転数と一対一に対応付けることができる。このため、第1副軸位相と第2副軸位相との組み合わせは、主軸歯車G0の回転数に対応付けることができる。また、第2副軸位相と第3副軸位相との組み合わせは、主軸歯車G0の回転数に対応付けることができる。また、第3副軸位相と第1副軸位相との組み合わせは、主軸歯車G0の回転数に対応付けることができる。以上のことから、導出部363は、第1副軸位相と第2副軸位相との組み合わせに基づいて、主軸歯車G0の回転数を導出することができる。また、導出部363は、第2副軸位相と第3副軸位相との組み合わせに基づいて、主軸歯車G0の回転数を導出することができる。また、導出部363は、第3副軸位相と第1副軸位相との組み合わせに基づいて、主軸歯車G0の回転数を導出することができる。
そこで、導出部363は、第1副軸位相と、第2副軸位相と、メモリー32に予め記憶された第1対応情報とに基づいて、主軸歯車G0の回転数を、第1回転数として導出する。第1対応情報は、第1副軸位相と第2副軸位相との組み合わせと、主軸歯車G0の回転数とが対応付けられた情報のことである。ただし、導出部363は、第1回転数を整数として導出するため、第1対応情報において、第1副軸位相と第2副軸位相との組み合わせに対応付けられた主軸歯車G0の回転数は、例えば、小数点以下が切り捨てられている。なお、第1対応情報において、当該回転数の小数点以下の取り扱い方法は、四捨五入等の他の方法であってもよい。
図7は、第1対応情報の一例を示す図である。図7に示した例では、第1対応情報は、第1副軸位相と第2副軸位相との組み合わせと、主軸歯車G0の回転数とが対応付けられたテーブルである。また、当該テーブルでは、主軸歯車G0の回転数を示す情報と、当該回転数に応じた主軸歯車G0の位相の変化量を示す情報と、主軸歯車G0と第1副軸歯車G1との間の位相差を示す情報と、主軸歯車G0と第2副軸歯車G2との間の位相差を示す情報とが対応付けられている。ここで、主軸歯車G0と第1副軸歯車G1との間の位相差は、第1副軸位相の代わりとして用いることができる。このため、当該テーブルには、第1副軸位相を示す情報に代えて、主軸歯車G0と第1副軸歯車G1との間の位相差を示す情報が含まれている。また、主軸歯車G0と第2副軸歯車G2との間の位相差は、第2副軸位相の代わりとして用いることができる。このため、当該テーブルには、第2副軸位相を示す情報に代えて、主軸歯車G0と第2副軸歯車G2との間の位相差を示す情報が含まれている。
また、図7に示したテーブルでは、主軸歯車G0の位相の変化量を示す情報は、主軸歯車G0の回転数に応じて原点から主軸歯車G0の歯が移動した数によって表されている。例えば、実施形態では、主軸歯車G0の歯数は、20歯である。このため、当該テーブルでは、主軸歯車G0の回転数が1回転の場合、主軸歯車G0の位相の変化量は、「20歯」と表されている。
また、図7に示したテーブルでは、主軸歯車G0と第1副軸歯車G1との間の位相差を示す情報は、第1副軸歯車G1の歯数によって表されている。例えば、実施形態では、主軸歯車G0の歯数が20歯であり、第1副軸歯車G1の歯数が17歯である。このため、主軸歯車G0の回転数が1回転の場合、主軸歯車G0の位相よりも第1副軸歯車G1の位相の方が、第1副軸歯車G1の歯にして3歯分大きくなる。すなわち、第1副軸歯車G1は、主軸歯車G0よりも第1副軸歯車G1の歯にして3歯分多く回転している。換言すると、主軸歯車G0と第1副軸歯車G1との間の位相差は、第1副軸歯車G1の歯にして+3歯である。そこで、当該テーブルでは、当該位相差を示す情報は、「+3歯」と表されている。
また、図7に示したテーブルでは、主軸歯車G0と第2副軸歯車G2との間の位相差を示す情報は、第2副軸歯車G2の歯数によって表されている。例えば、実施形態では、主軸歯車G0の歯数が20歯であり、第2副軸歯車G2の歯数が19歯である。このため、主軸歯車G0の回転数が1回転の場合、主軸歯車G0の位相よりも第2副軸歯車G2の位相の方が、第2副軸歯車G2の歯にして1歯分小さくなる。すなわち、第2副軸歯車G2は、主軸歯車G0よりも第2副軸歯車G2の歯にして1歯分少なく回転している。換言すると、主軸歯車G0と第2副軸歯車G2との間の位相差は、第2副軸歯車G2の歯にして-1歯である。そこで、当該テーブルでは、当該位相差を示す情報は、「-1歯」と表されている。
なお、図7に示したテーブルには、主軸歯車G0の位相の変化量が、20歯、40歯の場合のみが示されている。しかし、当該テーブルは、説明を簡略化するために示した一例に過ぎない。当該変化量は、整数であってもよく、実数であってもよい。また、主軸歯車G0の位相の変化量は、主軸歯車G0の歯数によって表される構成に代えて、当該変化量を示す他の情報によって表されてもよい。また、当該テーブルでは、主軸歯車G0と第1副軸歯車G1との間の位相差は、第1副軸歯車G1の歯数によって表す構成に代えて、当該位相差を示す他の情報によって表されてもよい。また、当該テーブルでは、主軸歯車G0と第2副軸歯車G2との間の位相差は、第2副軸歯車G2の歯数によって表す構成に代えて、当該位相差を示す他の情報によって表されてもよい。また、第1対応情報は、テーブルに代えて、第1副軸位相と第2副軸位相との組み合わせと、主軸歯車G0の回転数とが対応付けられた他の情報であってもよい。
導出部363は、このような第1対応情報を用いて、主軸歯車G0の回転数を第1回転数として導出する。具体的には、導出部363は、第1副軸位相と第2副軸位相との組み合わせに対応付けられた主軸歯車G0の回転数を、メモリー32に予め記憶された第1対応情報から検出することにより、当該回転数を第1回転数として導出する。
また、導出部363は、第2副軸位相と、第3副軸位相と、メモリー32に予め記憶された第2対応情報とに基づいて、主軸歯車G0の回転数を、第2回転数として導出する。第2対応情報は、第2副軸位相と第3副軸位相との組み合わせと、主軸歯車G0の回転数とが対応付けられた情報のことである。ここで、第2対応情報の構成は、第1対応情報の構成と同様の構成であるため、説明を省略する。すなわち、実施形態において、第2対応情報は、主軸歯車G0の回転数を示す情報と、当該回転数に応じた主軸歯車G0の位相の変化量を示す情報と、主軸歯車G0と第2副軸歯車G2との間の位相差を示す情報と、主軸歯車G0と第3副軸歯車G3との間の位相差を示す情報とが対応付けられたテーブルである。
導出部363は、このような第2対応情報を用いて、主軸歯車G0の回転数を第2回転数として導出する。具体的には、導出部363は、第2副軸位相と第3副軸位相との組み合わせに対応付けられた主軸歯車G0の回転数を、メモリー32に予め記憶された第2対応情報から検出することにより、当該回転数を第2回転数として導出する。
また、導出部363は、第3副軸位相と、第1副軸位相と、メモリー32に予め記憶された第3対応情報とに基づいて、主軸歯車G0の回転数を、第3回転数として導出する。第3対応情報は、第3副軸位相と第1副軸位相との組み合わせと、主軸歯車G0の回転数とが対応付けられた情報のことである。ここで、第3対応情報の構成は、第1対応情報の構成と同様の構成であるため、説明を省略する。すなわち、実施形態において、第3対応情報は、主軸歯車G0の回転数を示す情報と、当該回転数に応じた主軸歯車G0の位相の変化量を示す情報と、主軸歯車G0と第3副軸歯車G3との間の位相差を示す情報と、主軸歯車G0と第1副軸歯車G1との間の位相差を示す情報とが対応付けられたテーブルである。
導出部363は、このような第3対応情報を用いて、主軸歯車G0の回転数を第3回転数として導出する。具体的には、導出部363は、第3副軸位相と第1副軸位相との組み合わせに対応付けられた主軸歯車G0の回転数を、メモリー32に予め記憶された第3対応情報から検出することにより、当該回転数を第3回転数として導出する。
ステップS230の処理が行われた後、判定部365は、第1異常条件が満たされたか否かを判定する(ステップS240)。第1異常条件は、実施形態において、第1回転数と、第2回転数と、第3回転数とのうちの2つ以上の回転数が互いに一致していないこと、である。すなわち、判定部365は、ステップS230において導出された第1回転数、第2回転数、第3回転数に基づいて、第1異常条件が満たされたか否かを判定する。
なお、第1異常条件は、前述した通り、第1回転数と、第2回転数と、第3回転数とのうちの2つの回転数が互いに一致していないこと、であってもよい。この場合、ロボット制御装置30は、第1回転数と、第2回転数と、第3回転数とのうち当該2つの回転数として選択されていない回転数を、導出しない構成であってもよい。
ロボット制御部369は、第1異常条件が満たされていないと判定部365が判定した場合(ステップS240-NO)、ステップS120の処理、すなわち、第1処理を終了する。なお、当該場合において第1処理を終了する処理は、制御部36が備える各機能部のうちロボット制御部369以外の機能部が行う構成であってもよい。
一方、ロボット制御部369は、第1異常条件が満たされたと判定部365が判定した場合(ステップS240-YES)、第1駆動部M1を停止させる(ステップS250)。例えば、ロボット制御部369は、第1駆動部M1を停止させる場合、ロボット20が備える図示しない電力遮断部に第1駆動部M1への電力供給を遮断させる。電力遮断部は、第1駆動部M1への電力供給を遮断する部材であり、例えば、リレースイッチである。なお、電力遮断部は、リレースイッチに代えて、他のスイッチング素子であってもよい。
次に、報知部371は、第1駆動部M1について第1異常条件が満たされていることを示す情報を報知する(ステップS260)。そして、ロボット制御部369は、ステップS120の処理、すなわち、第1処理を終了する。この際、ロボット制御部369は、図5の残りの処理を実行せず、終了する。また、この際、ロボット制御部369は、異常時のフローを実行してもよく、例えば、異常を記録する処理を実行してもよい。
ここで、上記において説明したステップS230の処理は、前述の第11処理、第12処理、第13処理それぞれの一例である。また、上記において説明したステップS240~ステップS250の処理は、前述の第14処理の一例である。すなわち、ロボット制御装置30は、第11処理と、第12処理と、第13処理と、第14処理を含む第1処理を行う。これにより、ロボット制御装置30は、ロボット20が誤作動することを抑制することができる。
なお、ロボット制御装置30は、前述した通り、主軸歯車G0の回転数として、第1回転数と第2回転数と第3回転数との3つの回転数を算出する。これは、ロボット制御装置30が、主軸歯車G0の回転数を実際の回転数と異なる回転数に導出してしまうことを、2つ以上の系統によって監視していることを意味する。すなわち、実施形態に係るロボット制御装置30は、エンコーダーECから出力される情報に基づいて導出される主軸歯車G0の多回転量を実際の多回転量と異なる多回転量に導出することによってロボット20が誤作動することを、多重に監視することによって抑制しているのである。ここで、実施形態では、系統は、エンコーダーECの第1副軸歯車G1~第3副軸歯車G3から選択可能な2つの副軸歯車の組み合わせのことを意味する。
<ステップS130の処理>
以下、図5に示したステップS130の処理、すなわち、第3処理について説明する。図8は、図5に示したステップS130の処理の流れの一例を示す図である。ここで、図8に示したフローチャートの処理は、4つの駆動部Mのそれぞれについて行う。そこで、以下では、ステップS130の処理を、第1駆動部M1についての処理を例に挙げて説明する。
取得部361は、第1駆動部M1が備えるエンコーダーECの主軸位相出力部S0から第1主軸位相情報を取得する(ステップS310)。ここで、ステップS310の処理は、図6に示したステップS210の処理と同様であるため、説明を省略する。また、ロボット制御装置30は、ステップS130の処理において、ステップS120の処理によって取得された第1主軸位相情報を用いる場合、ステップS310の処理を省略する構成であってもよい。
次に、取得部361は、第1駆動部M1が備えるエンコーダーECの第1位相出力部S1から第1副軸位相情報を取得し、当該エンコーダーECの第2位相出力部S2から第2副軸位相情報を取得し、当該エンコーダーECの第3位相出力部S3から第3副軸位相情報を取得する(ステップS320)。ここで、ステップS320の処理は、図6に示したステップS220の処理と同様であるため、説明を省略する。また、ロボット制御装置30は、ステップS130の処理において、ステップS120の処理によって取得された第1副軸位相情報、第2副軸位相情報、第3副軸位相情報を用いる場合、ステップS320の処理を省略する構成であってもよい。
次に、導出部363は、ステップS320において取得した3つの副軸位相情報に基づいて、主軸歯車G0の位相を第2主軸位相として導出する(ステップS330)。当該3つの副軸位相情報は、第1副軸位相情報、第2副軸位相情報、第3副軸位相情報のことである。
ここで、ステップS330の処理について説明する。
まず、第1副軸位相、第2副軸位相、第3副軸位相に基づいて、導出部363が第2主軸位相を導出する方法の一例について説明する。
第1副軸歯車G1、第2副軸歯車G2、第3副軸歯車G3それぞれの歯は、主軸歯車G0の歯と噛み合っている。このため、第2副軸位相と第3副軸位相との組み合わせは、第1副軸歯車G1の回転数に対応付けることができる。このため、導出部363は、第2副軸位相と第3副軸位相との組み合わせに基づいて、第1副軸歯車G1の回転数を導出することができる。
そこで、導出部363は、第2副軸位相と、第3副軸位相と、メモリー32に予め記憶された第4対応情報とに基づいて、第1副軸歯車G1の回転数を導出する。第4対応情報は、第2副軸位相と第3副軸位相との組み合わせと、第1副軸歯車G1の回転数とが対応付けられた情報のことである。ただし、導出部363は、第1副軸歯車G1の回転数を整数として導出するため、第4対応情報において、第2副軸位相と第3副軸位相との組み合わせに対応付けられた第1副軸歯車G1の回転数は、例えば、小数点以下が切り捨てられている。なお、第4対応情報において、当該回転数の小数点以下の取り扱い方法は、四捨五入等の他の方法であってもよい。
図9は、第4対応情報の一例を示す図である。図9に示した例では、第4対応情報は、第2副軸位相と第3副軸位相との組み合わせと、第1副軸歯車G1の回転数とが対応付けられたテーブルである。また、当該テーブルでは、第1副軸歯車G1の回転数を示す情報と、第2副軸歯車G2と第1副軸歯車G1との間の位相差を示す情報と、第3副軸歯車G3と第1副軸歯車G1との間の位相差を示す情報とが対応付けられている。ここで、第2副軸歯車G2と第1副軸歯車G1との間の位相差は、第2副軸位相の代わりとして用いることができる。このため、当該テーブルには、第2副軸位相を示す情報に代えて、第2副軸歯車G2と第1副軸歯車G1との間の位相差を示す情報が含まれている。また、第3副軸歯車G3と第1副軸歯車G1との間の位相差は、第3副軸位相の代わりとして用いることができる。このため、当該テーブルには、第3副軸位相を示す情報に代えて、第3副軸歯車G3と第1副軸歯車G1との間の位相差を示す情報が含まれている。
また、図9に示したテーブルでは、第2副軸歯車G2と第1副軸歯車G1との間の位相差を示す情報は、第2副軸歯車G2の歯数によって表されている。例えば、実施形態では、第2副軸歯車G2の歯数が19歯であり、第1副軸歯車G1の歯数が17歯である。このため、第1副軸歯車G1の回転数が1回転の場合、第1副軸位相よりも第2副軸位相の方が、第2副軸歯車G2の歯にして2歯分小さくなる。すなわち、第2副軸歯車G2は、第1副軸歯車G1よりも第2副軸歯車G2の歯にして2歯分少なく回転している。換言すると、第2副軸歯車G2と第1副軸歯車G1との間の位相差は、第2副軸歯車G2の歯にして-2歯である。そこで、当該テーブルでは、当該位相差を示す情報は、「-2歯」と表されている。
また、図9に示したテーブルでは、第3副軸歯車G3と第1副軸歯車G1との間の位相差を示す情報は、第3副軸歯車G3の歯数によって表されている。例えば、実施形態では、第3副軸歯車G3の歯数が23歯であり、第1副軸歯車G1の歯数が17歯である。このため、第1副軸歯車G1の回転数が1回転の場合、第1副軸位相よりも第3副軸位相の方が、第3副軸歯車G3の歯にして6歯分小さくなる。すなわち、第3副軸歯車G3は、第1副軸歯車G1よりも第3副軸歯車G3の歯にして6歯分少なく回転している。換言すると、第3副軸歯車G3と第1副軸歯車G1との間の位相差は、第3副軸歯車G3の歯にして-6歯である。そこで、当該テーブルでは、当該位相差を示す情報は、「-6歯」と表されている。
なお、図9に示したテーブルでは、第2副軸歯車G2と第1副軸歯車G1との間の位相差は、第2副軸歯車G2の歯数によって表す構成に代えて、当該位相差を示す他の情報によって表されてもよい。また、当該テーブルでは、第3副軸歯車G3と第1副軸歯車G1との間の位相差は、第3副軸歯車G3の歯数によって表す構成に代えて、当該位相差を示す他の情報によって表されてもよい。また、第4対応情報は、テーブルに代えて、第2副軸位相と第3副軸位相との組み合わせと、第1副軸歯車G1の回転数とが対応付けられた他の情報であってもよい。
導出部363は、このような第4対応情報を用いて、第1副軸歯車G1の回転数を導出する。具体的には、導出部363は、第2副軸位相と第3副軸位相との組み合わせに対応付けられた第1副軸歯車G1の回転数を、メモリー32に予め記憶された第4対応情報から検出することにより、当該回転数を導出する。
そして、導出部363は、導出した第1副軸歯車G1の回転数と、第1副軸位相とに基づいて、第1副軸歯車G1の回転数と第1副軸位相とを足し合わせた値を、第1副軸歯車G1の多回転量として導出することができる。
ここで、主軸歯車G0は、第1副軸歯車G1よりも((第1副軸歯車G1の歯数)/(主軸歯車G0の歯数))倍の角速度で回転する。このため、第1副軸歯車G1の多回転量を((第1副軸歯車G1の歯数)/(主軸歯車G0の歯数))倍した値は、主軸歯車G0の多回転量と一致する。また、主軸歯車G0は、主軸歯車G0の歯が原点から主軸歯車G0の歯数分移動することによって1回転する。このため、主軸歯車G0の位相は、((主軸歯車G0の多回転量)mod(主軸歯車G0の歯数))と一致する。換言すると、主軸歯車G0の位相は、(((第1副軸歯車G1の歯数)/(主軸歯車G0の歯数))mod(主軸歯車G0の歯数))と一致する。
以上のことから、導出部363は、導出した第1副軸歯車G1の多回転量に基づいて、主軸歯車G0の位相を、第2主軸位相として導出する。すなわち、導出部363は、ステップS330において、ステップS320において取得した3つの副軸位相情報に基づいて、主軸歯車G0の位相を第2主軸位相として導出する。なお、このような第2主軸位相を導出する方法において、第1副軸歯車G1の役割は、第2副軸歯車G2の役割と入れ替えてもよく、第3副軸歯車G3の役割と入れ替えてもよい。
ここで、図10は、このような第2主軸位相を導出する流れの一例を示す図である。図10に示したように、第2主軸位相は、第1副軸歯車G1の多回転量に基づいて導出される。第1副軸歯車G1の多回転量は、第1副軸位相と、第1副軸歯車G1の回転数とに基づいて導出される。第1副軸歯車G1の回転数は、第2副軸位相と、第3副軸位相とに基づいて導出される。
ステップS330の処理が行われた後、判定部365は、第3異常条件が満たされたか否かを判定する(ステップS340)。第3異常条件は、前述した通り、第1主軸位相と、第2主軸位相とが互いに一致していないこと、である。すなわち、判定部365は、ステップS330において導出された第2主軸位相に基づいて、第3異常条件が満たされたか否かを判定する。
ロボット制御部369は、第3異常条件が満たされていないと判定部365が判定した場合(ステップS340-NO)、ステップS130の処理、すなわち、第3処理を終了する。なお、当該場合において第3処理を終了する処理は、制御部36が備える各機能部のうちロボット制御部369以外の機能部が行う構成であってもよい。
一方、ロボット制御部369は、第3異常条件が満たされたと判定部365が判定した場合(ステップS340-YES)、第1駆動部M1を停止させる(ステップS350)。ステップS350の処理は、図6に示したステップS250の処理と同様の処理であるため、説明を省略する。
次に、報知部371は、第1駆動部M1について第3異常条件が満たされていることを示す情報を報知する(ステップS360)。そして、ロボット制御部369は、ステップS130の処理、すなわち、第3処理を終了する。この際、ロボット制御部369は、図5の残りの処理を実行せず、終了する。また、この際、ロボット制御部369は、異常時のフローを実行してもよく、例えば、異常を記録する処理を実行してもよい。
ここで、上記において説明したステップS330の処理は、前述の第31処理の一例である。また、上記において説明したステップS340~ステップS350の処理は、前述の第32処理の一例である。すなわち、ロボット制御装置30は、第31処理と、第32処理を含む第3処理を行う。これにより、ロボット制御装置30は、ロボット20が誤作動することを抑制することができる。
なお、ロボット制御装置30は、前述した通り、主軸歯車G0の位相として、主軸位相出力部S0が特定した第1主軸位相とは別に、導出した第1副軸歯車G1の多回転量に基づいて第2主軸位相を導出する。これは、ロボット制御装置30が、主軸歯車G0の位相を実際の位相と異なる位相に導出してしまうことを、主軸歯車G0と第1副軸歯車G1との組み合わせによって監視していることを意味する。すなわち、実施形態に係るロボット制御装置30は、エンコーダーECから出力される情報に基づいて導出される主軸歯車G0の多回転量を実際の多回転量と異なる多回転量に導出することによってロボット20が誤作動することを、当該組み合わせによって監視することにより抑制しているのである。
また、ロボット制御装置30は、主軸歯車G0の位相を実際の位相と異なる位相に導出してしまうことを、主軸歯車G0と第1副軸歯車G1との組み合わせと、主軸歯車G0と第2副軸歯車G2との組み合わせと、主軸歯車G0と第3副軸歯車G3との組み合わせとのそれぞれによって監視する構成であってもよい。すなわち、ロボット制御装置30は、図8に示したフローチャートの処理と同様の処理によって、主軸歯車G0の位相を実際の位相と異なる位相に導出してしまうことを、主軸歯車G0と第2副軸歯車G2との組み合わせによって監視するとともに、主軸歯車G0の位相を実際の位相と異なる位相に導出してしまうことを、主軸歯車G0と第3副軸歯車G3との組み合わせによって監視する構成であってもよい。
<ステップS170の処理>
以下、図11に示したステップS170の処理、すなわち、第2処理について説明する。図11は、図5に示したステップS170の処理の流れの一例を示す図である。ここで、図11に示したフローチャートの処理は、4つの駆動部Mのそれぞれについて行う。また、図11に示したフローチャートの処理は、ある駆動部Mが備えるエンコーダーECの第1副軸歯車G1~第3副軸歯車G3のそれぞれについて行う。そこで、以下では、ステップS170の処理を、第1駆動部M1の第1副軸歯車G1についての処理を例に挙げて説明する。
取得部361は、直前に取得部361が取得した第1主軸位相情報を、旧第1主軸位相情報としてメモリー32に記憶させる。そして、取得部361は、第1駆動部M1が備えるエンコーダーECの主軸位相出力部S0から、新たな第1主軸位相情報を新第1主軸位相情報として取得する(ステップS410)。ここで、取得部361は、メモリー32に旧第1主軸位相情報が既に記憶されている場合、メモリー32に記憶されている旧第1主軸位相情報を、新たな旧第1主軸位相情報に置き換える。
次に、取得部361は、直前に取得部361が取得した第1副軸位相情報を、旧第1副軸位相情報としてメモリー32に記憶させる。そして、取得部361は、第1駆動部M1が備えるエンコーダーECの第1位相出力部S1から、新たな第1副軸位相情報を新第1副軸位相情報として取得する(ステップS420)。ここで、取得部361は、メモリー32に旧第1副軸位相情報が既に記憶されている場合、メモリー32に記憶されている旧第1副軸位相情報を、新たな旧第1副軸位相情報に置き換える。
次に、導出部363は、第11変化量を導出する(ステップS430)。第11変化量は、第1主軸位相に基づいて導出される第1副軸位相の変化量のことである。
ここで、ステップS430の処理について説明する。まず、第11変化量を導出する方法について説明する。ある歯車g1と他の歯車g2とが噛み合っている場合、歯車g1の位相の変化量Δθ1と歯車g2の位相の変化量Δθ2との間には、以下に示した式(1)のような関係が成り立つ。
Δθ2=(h1/h2)×Δθ1 ・・・(1)
上記の式(1)におけるh1は、歯車g1の歯数を示す。また、上記の式(1)におけるh2は、歯車g2の歯数を示す。
導出部363は、第1主軸位相の変化量をΔθ1に代入し、主軸歯車G0の歯数をh1に代入し、第1副軸歯車G1の歯数をh2に代入することにより、式(1)に示した関係を用いて、第1副軸位相の変化量を導出することができる。ここで、図12は、主軸歯車G0と第1副軸歯車G1とΔθ1とΔθ2の関係の一例を示す図である。例えば、実施形態において第1主軸位相の変化量が360°であった場合、導出部363は、第1副軸位相の変化量を、上記の式(1)に基づいて約423°と導出する。このような方法により、導出部363は、第1副軸位相の変化量を、第11変化量として導出する。
次に、導出部363が第1主軸位相の変化量を導出する処理について説明する。導出部363は、メモリー32に記憶されている旧第1主軸位相情報をメモリー32から読み出す。導出部363は、読み出した旧第1主軸位相情報が示す第1主軸位相を、ステップS410において取得部361が取得した新第1主軸位相情報が示す第1主軸位相から差し引いた値を、第1主軸位相の変化量として導出する。導出部363は、このようにして導出した第1主軸位相の変化量を、上記のΔθ1に代入し、第11変化量を導出する。
なお、第2副軸歯車G2についてステップS430の処理を行った場合において導出部363が導出する第11変化量は、第21変化量の一例である。また、第3副軸歯車G3についてステップS430の処理を行った場合において導出部363が導出する第11変化量は、第31変化量の一例である。
ステップS430の処理が行われた後、導出部363は、第12変化量を導出する(ステップS440)。第12変化量は、第1副軸位相に基づいて導出される第1副軸位相の変化量のことである。具体的には、導出部363は、メモリー32に記憶されている旧第1副軸位相情報をメモリー32から読み出す。導出部363は、読み出した旧第1副軸位相情報が示す第1副軸位相を、ステップS420において取得部361が取得した新第1副軸位相情報が示す第1副軸位相から差し引いた値を、第12変化量として導出する。すなわち、当該値は、第1副軸位相に基づいて導出された第1副軸位相の変化量である。
なお、第2副軸歯車G2についてステップS440の処理を行った場合において導出部363が導出する第12変化量は、第22変化量の一例である。また、第3副軸歯車G3についてステップS440の処理を行った場合において導出部363が導出する第12変化量は、第32変化量の一例である。
次に、判定部365は、第2異常条件が満たされたか否かを判定する(ステップS450)。第2異常条件は、第11変化量と第12変化量とが互いに一致していないこと、である。すなわち、判定部365は、ステップS430において導出された第11変化量と、ステップS440において導出された第12変化量とに基づいて、第2異常条件が満たされたか否かを判定する。
ロボット制御部369は、第2異常条件が満たされていないと判定部365が判定した場合(ステップS450-NO)、ステップS170の処理、すなわち、第2処理を終了する。なお、当該場合において第2処理を終了する処理は、制御部36が備える各機能部のうちロボット制御部369以外の機能部が行う構成であってもよい。
一方、ロボット制御部369は、第2異常条件が満たされたと判定部365が判定した場合(ステップS450-YES)、第1駆動部M1を停止させる(ステップS460)。ステップS460の処理は、図6に示したステップS250の処理と同様の処理であるため、説明を省略する。
次に、報知部371は、第1駆動部M1について第2異常条件が満たされていることを示す情報を報知する(ステップS470)。そして、ロボット制御部369は、ステップS170の処理、すなわち、第2処理を終了する。この際、ロボット制御部369は、図5の残りの処理を実行せず、終了する。また、この際、ロボット制御部369は、異常時のフローを実行してもよく、例えば、異常を記録する処理を実行してもよい。
このように、第2処理では、テーブルを用いた処理を行わない。このため、第2処理は、第1処理、第3処理のそれぞれと比較して、導出部363が行う処理の負荷が小さい。すなわち、ロボット制御装置30は、1回目の第1処理及び第3処理が行われた後において、第2処理を行うことにより、第1処理及び第3処理を行う場合と比較して、ロボット20が動作している間においてロボット制御装置30が行う処理の負荷を低減することができる。
なお、制御部36は、上記において説明した第1所定時間と第2所定時間とのうちのいずれか一方又は両方を、ロボット制御装置30がユーザーから受け付ける操作、ロボット20の動作等に応じて変更できる構成であってもよい。
また、ある駆動部MのエンコーダーECについて行われる第2処理は、当該駆動部Mの第1副軸歯車G1~第3副軸歯車G3のそれぞれについて行う構成に代えて、第1副軸歯車G1~第3副軸歯車G3のうちの一部の副軸歯車について行う構成であってもよい。ただし、この場合、当該一部の副軸歯車に含まれない副軸歯車に関する異常が発生した場合、第2処理では、駆動部Mを停止させることができず、更に、第2異常条件が満たされたことを示す情報を報知することもできない。このため、当該第2処理は、当該駆動部Mの第1副軸歯車G1~第3副軸歯車G3のそれぞれについて行う方が望ましい。
また、上記の式(1)に示した関係は、前述の歯車g1と歯車g2とが、他の歯車g3を介して噛み合っている場合にも成り立つ。例えば、第1副軸歯車G1と第2副軸歯車G2とは、主軸歯車G0を介して噛み合っている。このため、第1副軸位相の変化量と第2副軸位相の変化量とは、上記の式(1)の関係を満たす。また、例えば、第2副軸歯車G2と第3副軸歯車G3とは、主軸歯車G0を介して噛み合っている。このため、第2副軸位相の変化量と第3副軸位相の変化量とは、上記の式(1)の関係を満たす。また、例えば、第3副軸歯車G3と第1副軸歯車G1とは、主軸歯車G0を介して噛み合っている。このため、第3副軸位相の変化量と第1副軸位相の変化量とは、上記の式(1)の関係を満たす。
このような事情から、第2処理は、第41変化量を導出する処理と、第42変化量を導出する処理と、第5異常条件が満たされているか否かを判定する処理と、第5異常条件が満たされていない場合において駆動部Mを停止させる処理と、当該場合において第5異常条件が満たされていないことを報知する処理とを含む構成であってもよい。ここで、第41変化量は、第2副軸位相に基づいて導出される第1副軸位相の変化量のことである。また、第42変化量は、第1副軸位相に基づいて導出される第1副軸位相の変化量のことである。また、第5異常条件は、第41変化量と第42変化量とが互いに一致していないこと、である。なお、第41変化量を導出する方法については、主軸歯車G0を第2副軸歯車G2に置き換えた場合の第11変化量を導出する方法の説明と同様であるため、説明を省略する。
また、第2処理は、第51変化量を導出する処理と、第52変化量を導出する処理と、第6異常条件が満たされているか否かを判定する処理と、第6異常条件が満たされていない場合において駆動部Mを停止させる処理と、当該場合において第6異常条件が満たされていないことを報知する処理とを含む構成であってもよい。ここで、第51変化量は、第3副軸位相に基づいて導出される第2副軸位相の変化量のことである。また、第52変化量は、第2副軸位相に基づいて導出される第2副軸位相の変化量のことである。また、第6異常条件は、第51変化量と第52変化量とが互いに一致していないこと、である。なお、第51変化量を導出する方法については、主軸歯車G0を第3副軸歯車G3に置き換え、且つ、第1副軸歯車G1を第2副軸歯車G2に置き換えた場合の第11変化量を導出する方法の説明と同様であるため、説明を省略する。
また、第2処理は、第61変化量を導出する処理と、第62変化量を導出する処理と、第7異常条件が満たされているか否かを判定する処理と、第7異常条件が満たされていない場合において駆動部Mを停止させる処理と、当該場合において第7異常条件が満たされていないことを報知する処理とを含む構成であってもよい。ここで、第61変化量は、第1副軸位相に基づいて導出される第3副軸位相の変化量のことである。また、第62変化量は、第3副軸位相に基づいて導出される第3副軸位相の変化量のことである。また、第7異常条件は、第61変化量と第62変化量とが互いに一致していないこと、である。なお、第61変化量を導出する方法については、主軸歯車G0を第1副軸歯車G1に置き換え、且つ、第1副軸歯車G1を第3副軸歯車G3に置き換えた場合の第11変化量を導出する方法の説明と同様であるため、説明を省略する。
<実施形態の変形例>
以下、実施形態の変形例について説明する。
上記において説明したエンコーダーECは、主軸歯車G0と、第1副軸歯車G1と、第2副軸歯車G2と、第3副軸歯車G3とに加えて、1以上の副軸歯車を備える構成であってもよい。この場合、当該1以上の副軸歯車は、主軸歯車G0と噛み合うように、且つ、第1副軸歯車G1~第3副軸歯車G3のそれぞれと噛み合わないようにエンコーダーECに設けられる。
例えば、エンコーダーECは、主軸歯車G0と第1副軸歯車G1と第2副軸歯車G2と第3副軸歯車G3とに加えて、4つ目の副軸歯車である図示しない第4副軸歯車G4を備える構成であってもよい。この場合、エンコーダーECでは、4つの副軸歯車の中から選択可能な2つの副軸歯車の組み合わせの数は、6である。また、当該場合、エンコーダーECでは、4つの副軸歯車の中から選択可能な3つの副軸歯車の組み合わせの数は、4である。これら10の組み合わせのそれぞれを系統と称した場合、第1処理において第1回転数~第3回転数のそれぞれを導出する方法と同様の方法によって、系統毎に主軸歯車G0の回転数を導出することができる。このような場合、制御部36は、系統毎の回転数に基づいて、系統毎の回転数のうちの2つ以上の回転数が互いに一致していないか否かを判定する。これにより、ロボット制御装置30は、第1処理と同様の処理を行うことができ、ロボット20が誤作動することを抑制することができる。
なお、制御部36は、系統毎の回転数に基づいて、系統毎の回転数のうちの過半数以上の回転数が一致している回転数を特定する構成であってもよい。この場合、制御部36は、第1副軸歯車G1~第4副軸歯車G4のうち副軸歯車に関する異常が発生している副軸歯車を特定することができる。その結果、制御部36は、ロボット20に動作を継続させる必要があるか否かを判定することができ、ロボット20が誤作動することを抑制することができる。
ここで、第4副軸歯車G4の歯数は、主軸歯車G0の歯数と同じ歯数であってもよく、第1副軸歯車G1~第3副軸歯車G3のうちのいずれかの歯数と同じ歯数であってもよい。
また、上記において説明した主軸位相出力部S0は、第1主軸位相を検出するセンサーに代えて、制御部36が備える機能部のうち数理モデルに基づいて主軸歯車G0の位相を導出し、導出した当該位相を第1主軸位相として推定する機能部であってもよい。この場合、エンコーダーECは、当該センサーが設けられる構成であってもよく、当該センサーが設けられない構成であってもよい。当該数理モデルは、駆動部Mの回動軸と、当該回動軸に取り付けられた負荷との回転運動を記述する運動方程式に基づくモデルであり、駆動部Mに回動軸を回転させる指令電流を入力した場合、当該回動軸の位相を推定し、推定した位相を出力するモデルである。なお、当該数理モデルには、当該負荷を導出するモデルが含まれてもよく、当該負荷を導出するモデルが含まれなくてもよい。また、当該数理モデルは、運動方程式に基づくモデルに代えて、テーブルを用いたモデル等の他の導出方法に基づくモデルであってもよい。
主軸位相出力部S0がこのような数理モデルであった場合、制御部36は、主軸位相出力部S0が出力した第1主軸位相に基づいて、第1処理を行う。すなわち、ロボット制御装置30は、当該場合であっても、第1処理によって、ロボット20が誤作動することを抑制することができる。なお、当該数理モデルは、入力として前述の指令電流を用いる構成に代えて、主軸歯車G0の位相を特定可能な情報を検出する他のセンサーから取得した当該情報を入力として用いる構成であってもよい。
また、上記において説明した第1異常条件~第7異常条件のうちの一部又は全部は、測定誤差を許容してもよく、許容しなくてもよい。
また、前述した通り、上記において説明した制御部36が有する機能のうち図5に示したフローチャートの処理を行う機能は、ロボット20、情報処理装置40、エンコーダーEC等に備えられる構成であってもよい。例えば、当該機能が情報処理装置40に備えられる場合、情報処理装置40は、例えば、プロセッサーを備え、情報処理装置40が備える制御部41は、図13に示したように、取得部361と、導出部363と、判定部365と、計時部367と、報知部371を備える。図13は、制御部41の機能構成の一例を示す図である。なお、情報処理装置40が備える制御部41は、取得部361と、導出部363と、判定部365を備え、計時部367、報知部371を備えない構成としてもよい。また、例えば、当該機能がエンコーダーECに備えられる場合、エンコーダーECは、例えば、プロセッサーを備え、エンコーダーECが備える制御部は、取得部361と、導出部363と、判定部365と、計時部367と、報知部371を備える。なお、エンコーダーECが備える制御部は、取得部361と、導出部363と、判定部365を備え、計時部367、報知部371を備えない構成としてもよい。これらにより、ロボット制御装置30等が当該機能を持たない場合であっても、当該機能を有した情報処理装置40やエンコーダーECを用いるだけで当該機能を実行できる。更に、当該機能は、ロボット20、ロボット制御装置30、情報処理装置40、エンコーダーEC等に、分けて備えられる構成であってもよい。例えば、当該機能がエンコーダーECとロボット制御装置30とに備えられる場合、エンコーダーECが、取得部361と、導出部363とを備え、ロボット制御装置30が、判定部365と、計時部367と、報知部371とを備えてもよい。
また、上記において説明したロボット制御装置30は、前述した通り、ロボット20と異なるロボットに備えられる構成であってもよい。例えば、ロボット制御装置30は、図14に示したロボット21に備えられる構成であってもよい。図14は、ロボット20に代えてロボット21を備えるロボットシステム1の構成の一例を示す図である。
図14に示した例では、ロボット21は、ロボット制御装置30と、情報処理装置40を内蔵している。
ロボット21は、前述の双腕ロボットである。図14に示したように、ロボット21は、2つの腕を備える。
ロボット21が備える2つの腕のそれぞれには、7つの関節が設けられている。また、当該7つの関節のそれぞれには、駆動部Mが備えられている。なお、図14において、駆動部Mは、図を簡略化するため、省略している。なお、当該2つの腕のうちのいずれか一方又は両方は、7つよりも少ない関節が設けられている構成であってもよく、7つよりも多い関節が設けられている構成であってもよい。
これにより、ロボット制御装置30は、ロボット21に内蔵された場合であっても、第1処理と第3処理との少なくとも一方を行うことができ、その結果、ロボットが誤作動することを抑制することができる。
以上説明したように、実施形態に係るロボットシステムは、駆動部の回動軸に取り付けられる主軸歯車、主軸歯車と噛み合う第1副軸歯車、主軸歯車と噛み合う第2副軸歯車、主軸歯車と噛み合う第3副軸歯車とを有するロボットと、主軸歯車の位相を第1主軸位相として出力する主軸位相出力部と、を備え、第1副軸歯車の位相と、第2副軸歯車の位相と、第3副軸歯車の位相とに基づいて、主軸歯車の位相を第2主軸位相として導出し、第1主軸位相と第2主軸位相とが一致していない場合、駆動部を停止させる処理を行う。これにより、ロボットシステムは、実際の回転数と異なる回転数が導出されているか否かを判定でき、ロボットが誤作動することを抑制することができる。ここで、上記において説明した例では、当該ロボットシステムは、ロボットシステム1である。また、上記において説明した例では、当該駆動部は、駆動部Mである。また、上記において説明した例では、当該主軸歯車は、主軸歯車G0である。また、上記において説明した例では、当該第1副軸歯車は、第1副軸歯車G1である。また、上記において説明した例では、当該第2副軸歯車は、第2副軸歯車G2である。また、上記において説明した例では、当該第3副軸歯車は、第3副軸歯車G3である。また、上記において説明した例では、当該ロボットは、ロボット20である。また、上記において説明した例では、主軸位相出力部は、主軸位相出力部S0である。
また、ロボットシステムでは、ロボットに電源が投入されてからロボットが動き出すまでの間において、当該処理を行う、構成が用いられてもよい。
また、ロボットシステムは、第1副軸歯車の位相を出力する第1位相出力部を備え、第2処理として、主軸位相出力部が出力した第1主軸位相に基づいて、第1副軸歯車の位相の変化量を第11変化量として導出し、第1位相出力部が出力した第1副軸歯車の位相の変化量を第12変化量として導出し、第11変化量と第12変化量とが一致していない場合、駆動部を停止させ、1回目の前記処理が行われた後において、第2処理を行う、構成が用いられてもよい。ここで、上記において説明した例では、第1位相出力部は、第1位相出力部S1である。
また、ロボットシステムは、第2副軸歯車の位相を出力する第2位相出力部と、第3副軸歯車の位相を出力する第3位相出力部と、を備え、第2処理は更に、主軸位相出力部が出力した第1主軸位相に基づいて、第2副軸歯車の位相の変化量を第21変化量として導出し、主軸位相出力部が出力した第1主軸位相に基づいて、第3副軸歯車の位相の変化量を第31変化量として導出し、第2位相出力部が出力した第2副軸歯車の位相の変化量を第22変化量として導出し、第3位相出力部が出力した第3副軸歯車の位相の変化量を第32変化量として導出し、第21変化量と第22変化量とが一致していない場合、駆動部を停止させ、第31変化量と第32変化量とが一致していない場合、駆動部を停止させる、構成が用いられてもよい。ここで、上記において説明した例では、第2位相出力部は、第2位相出力部S2である。また、上記において説明した例では、第3位相出力部は、第3位相出力部S3である。
また、ロボットシステムでは、主軸位相出力部は、数理モデルに基づいて、第1主軸位相を出力する、構成が用いられてもよい。
また、ロボットシステムは、1回目の当該処理が行われた後において、所定の条件が満たされるか判定し、所定の条件が満たされた場合に当該処理を行う、構成が用いられてもよい。ここで、上記において説明した例では、所定の条件は、第1所定時間が経過すること、である。
また、ロボットシステムでは、所定の条件は、所定時間が経過することである、構成が用いられてもよい。ここで、上記において説明した例では、所定時間は、第1所定時間である。
また、ロボットシステムでは、ロボットは、第4副軸歯車を更に備える、構成が用いられてもよい。ここで、上記において説明した例では、第4副軸歯車は、第4副軸歯車G4である。
また、ロボットシステムでは、ロボットは、ロボットへの電力供給を遮断する電力遮断部を備え、駆動部を停止させる場合、電力遮断部にロボットへの電力供給を遮断させる、構成が用いられてもよい。
また、ロボットシステムでは、当該処理は更に、第1主軸位相と、第2主軸位相とが一致していない場合、第1主軸位相と、第2主軸位相とが一致していないことを示す情報を報知する、構成が用いられてもよい。
また、実施形態に係るロボットシステムは、駆動部の回動軸に取り付けられる主軸歯車、主軸歯車と噛み合う第1副軸歯車、主軸歯車と噛み合う第2副軸歯車、及び主軸歯車と噛み合う第3副軸歯車を有するロボット、を備えたロボットシステムであって、主軸歯車の歯数、第1副軸歯車の歯数、第2副軸歯車の歯数、及び第3副軸歯車の歯数は、1以外の最大公約数を持たない整数であり、第1処理として、第1副軸歯車の位相と第2副軸歯車の位相とに基づいて、主軸歯車の回転数である第1回転数を導出し、第2副軸歯車の位相と第3副軸歯車の位相とに基づいて、主軸歯車の回転数である第2回転数を導出し、第1回転数と第2回転数とが一致していない場合に、駆動部を停止させる。これにより、ロボットシステムは、実際の位相と異なる位相が検出されているか否かを判定でき、ロボットが誤作動することを抑制することができる。ここで、上記において説明した例では、当該ロボットシステムは、ロボットシステム1である。また、上記において説明した例では、当該駆動部は、駆動部Mである。また、上記において説明した例では、当該主軸歯車は、主軸歯車G0である。また、上記において説明した例では、当該第1副軸歯車は、第1副軸歯車G1である。また、上記において説明した例では、当該第2副軸歯車は、第2副軸歯車G2である。また、上記において説明した例では、当該第3副軸歯車は、第3副軸歯車G3である。また、上記において説明した例では、当該ロボットは、ロボット20である。
また、ロボットシステムでは、第1処理は、第3副軸歯車の位相と第1副軸歯車の位相とに基づいて、主軸歯車の回転数である第3回転数を導出し、第1回転数、第2回転数、及び前記第3回転数が一致していない場合に、前記駆動部を停止させる、構成が用いられてもよい。
また、ロボットシステムでは、第1処理は更に、第1回転数、第2回転数、及び第3回転数が一致していない場合、第1回転数、第2回転数、及び第3回転数が一致していないことを示す情報を報知する、構成が用いられてもよい。
また、ロボットシステムでは、ロボットに電源が投入されてからロボットが動き出すまでの間において、第1処理を行う、構成が用いられてもよい。
また、ロボットシステムは、主軸歯車の位相を第1主軸位相として出力する主軸位相出力部と、第1副軸歯車の位相を出力する第1位相出力部と、を備え、第2処理として、主軸位相出力部が出力した第1主軸位相に基づいて、第1副軸歯車の位相の変化量を第11変化量として導出し、第1位相出力部が出力した第1副軸歯車の位相の変化量を第12変化量として導出し、第11変化量と第12変化量とが互いに一致していない場合、駆動部を停止させ、1回目の第1処理が行われた後に、第2処理を行う、構成が用いられてもよい。ここで、上記において説明した例では、主軸位相出力部は、主軸位相出力部S0である。また、上記において説明した例では、第1位相出力部は、第1位相出力部S1である。
また、ロボットシステムは、第2副軸歯車の位相を出力する第2位相出力部と、第3副軸歯車の位相を出力する第3位相出力部と、を備え、第2処理は更に、主軸位相出力部が出力した第1主軸位相に基づいて、第2位相の変化量を第21変化量として導出し、主軸位相出力部が出力した第1主軸位相に基づいて、第3位相の変化量を第31変化量として導出し、第2位相出力部が出力した第2副軸歯車の位相の変化量を第22変化量として導出し、第3位相出力部が出力した第3副軸歯車の位相の変化量を第32変化量として導出し、第21変化量と第22変化量とが一致していない場合、駆動部を停止させ、第31変化量と第32変化量とが一致していない場合、駆動部を停止させる、構成が用いられてもよい。ここで、上記において説明した例では、第2位相出力部は、第2位相出力部S2である。また、上記において説明した例では、第3位相出力部は、第3位相出力部S3である。
また、ロボットシステムでは、主軸位相出力部は、数理モデルに基づいて、第1主軸位相を出力する、構成が用いられてもよい。
また、ロボットシステムでは、1回目の前記第1処理が行われた後において、所定の条件が満たされるか判定し、所定の条件が満たされた場合に前記第1処理を行う、構成が用いられてもよい。ここで、上記において説明した例では、所定の条件は、第1所定時間が経過すること、である。
また、ロボットシステムでは、所定の条件は、所定時間が経過することである、構成が用いられてもよい。ここで、上記において説明した例では、所定時間は、第1所定時間である。
また、ロボットシステムでは、ロボットは、第4副軸歯車を更に備える、構成が用いられてもよい。ここで、上記において説明した例では、第4副軸歯車は、第4副軸歯車G4である。
また、ロボットシステムでは、ロボットは、ロボットへの電力供給を遮断する電力遮断部を備え、駆動部を停止させる場合、電力遮断部に前記ロボットへの電力供給を遮断させる、構成が用いられてもよい。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
また、以上に説明した装置における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。ここで、当該装置は、例えば、ロボット20、ロボット21、ロボット制御装置30、情報処理装置40、エンコーダーEC等である。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disk)-ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワークや電話回線等の通信回線のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル又は差分プログラムであってもよい。