(58)【調査した分野】(Int.Cl.,DB名)
第1の可動部と前記第1の可動部の位置を検出する第1の位置検出器とを有する第1のツールがロボットから取り外されたとき、または前記第1の可動部が特定の位置に移動したときの前記第1の位置検出器によって検出された前記第1の可動部の位置を表す第1の値を記憶する記憶部と、
第2の可動部と前記第2の可動部の位置を検出する第2の位置検出器とを有する第2のツールが前記ロボットに取り付けられたとき、または前記第2のツールが前記ロボットに取り付けられてから前記第2の可動部が前記特定の位置に移動したときの前記第2の位置検出器によって検出された前記第2の可動部の位置を表す第2の値と前記記憶部に記憶されている前記第1の値との差に基づいて所定の処理を行う制御部と、
を有するロボット制御装置。
前記制御部は、前記所定の処理として、前記第2の値と前記記憶部に記憶されている前記第1の値との差が所定の閾値未満となる場合、前記第2のツールが前記第1のツールと同一であると識別するか、同一であると報知する、あるいは、
前記第2のツールが前記ロボットに取り付けられてから前記第2の可動部が前記特定の位置に移動したときの前記第2の値と前記記憶部に記憶されている前記第1の値との差が所定の閾値未満となる場合、前記第2のツールが前記第1のツールと同一であると識別するか、同一であると報知する処理を行う、請求項1に記載のロボット制御装置。
可動部と前記可動部の位置を検出する位置検出器とを有するツールがロボットから取り外されたとき、または前記可動部が特定の位置に移動したときの前記位置検出器によって検出された前記可動部の位置を表す第1の値を記憶する記憶部と、
前記位置検出器によって検出された前記可動部の現在の位置を表す第2の値と前記記憶部に記憶されている前記第1の値との差に基づいて前記ツールの取り外し可否を判定するか、
前記可動部が前記特定の位置にあるときの前記第2の値と前記記憶部に記憶されている前記第1の値との差に基づいて前記ツールの取り外し可否を判定する取り外し可否判定部と、
を有するロボット制御装置。
【発明を実施するための形態】
【0011】
以下、図を参照しつつ、ロボットの制御装置、及び、そのような制御装置を含むロボットシステムについて説明する。この制御装置による制御対象となるロボットは、複数のツールを交互に着脱することが可能となっている。複数のツールのそれぞれは、モータといった、動力を発する動力部とその動力部により駆動される可動部とを有する、いわゆるサーボツールと呼ばれるツールである。このツールは、さらに、エンコーダといった、可動部の位置を検出する位置検出部を有し、ロボットから取り外された時の位置に可動部を保持することが可能となっている。そして制御装置は、ロボットに装着済みのツールがそのロボットから取り外されるときに、そのツールの可動部の位置と、既に可動部の位置が記憶されている他のツール(以下、説明の便宜上、登録されたツールあるいは登録ツールと呼ぶことが有る)の可動部の位置との差が所定の閾値以上となっているときにのみ、そのツールを取り外し可能とするとともに、そのツールが取り外されたときの可動部の位置を記憶する。またツールも、取り外し時の位置にて可動部を保持する。そして制御装置は、次に何れかのツールがロボットに取り付けられるとき、その取り付けられるツールの可動部の位置と登録された何れかのツールについての記憶されている可動部の位置との差が所定の閾値未満である場合、取り付けられるツールは、その登録されたツールと同一であると識別するといった処理を実行し、一方、登録された何れのツールについても差が所定の閾値以上となる場合、取り付けられるツールは、登録されたツールの何れとも異なるツールであると判定してその判定結果に応じた処理を実行する。これにより、この制御装置は、ロボットに装着されるツールの識別情報が入力されなくても、ロボットから取り外した時の可動部の位置により、ツールを識別することができる。そのため、この制御装置は、ロボットに装着されているツールを正確に識別できる。
【0012】
図1は、一つの実施形態による、ロボットシステム1の概略構成図である。ロボットシステム1は、ロボット2と、ロボット2に取り付けることが可能な複数のツール3と、ロボット2を制御する制御装置4とを有する。なお、
図1では、複数のツール3のうち、ロボット2に装着された一つのツールのみが代表して図示される。
【0013】
ロボット2は、少なくとも一つの軸を有する機構部2aを有し、その少なくとも一つの軸のそれぞれが、サーボモータ(図示せず)によって駆動されることで、機構部2aの位置及び姿勢が変化する。そして機構部2aの先端には、複数のツール3のうちの一つを着脱可能なツール着脱装置2bが設けられる。そして複数のツール3の何れかが、ツール着脱装置2bを介してロボット2に取り付けられる。なお、ツール着脱装置2bが設けられる位置は、機構部2aの先端でなくてもよく、ロボット2の仕様に応じて機構部2aの何れかの位置に設けられればよい。
【0014】
ツール着脱装置2bは、複数のツール3のうちの一つを取り付けるための取り付け機構(図示せず)を有する。作業者がツール着脱装置2bに複数のツール3の何れか(以下、作業対象ツールと呼ぶ)を取り付ける操作を行うと、その取り付け機構により作業対象ツールが固定され、作業対象ツールがツール着脱装置2bから外れないようにロックされる。そしてツール着脱装置2bは、制御装置4と接続される動力線6及び信号線7を作業対象ツールに接続する。したがって、ツール着脱装置2bを介してロボット2に取り付けられた作業対象ツールと制御装置4とは、動力線6及び信号線7を介して互いに接続される。そして作業対象ツールが有する可動部の位置を表す情報など、作業対象ツールの動作状態を表す信号が、信号線7を介して制御装置4へ送信される。また、作業対象ツールを駆動するための電力は、制御装置4から動力線6を介して作業対象ツールへ供給される。
【0015】
また、ツール着脱装置2bは、制御装置4から信号線5を介して作業対象ツールを取り外す制御信号を受信すると、作業対象ツールと動力線6及び信号線7とを切り離すとともに、取り付け機構によるロックを解除して、作業対象ツールを取り外し可能とする。
【0016】
さらに、ツール着脱装置2bは、動力線6の電流を測定するための電流計(図示せず)または動力線6の電圧を測定するための電圧計(図示せず)を有していてもよい。そしてツール着脱装置2bは、一定周期ごと、あるいは、制御装置4からの問い合わせに応じて、測定された電流値または電圧値を表す信号を、信号線5を介して制御装置4へ出力してもよい。
【0017】
さらにまた、ツール着脱装置2bは、取り付けられた作業対象ツールを識別するための装置を有していてもよい。例えば、ツール着脱装置2bは、ツールの番号を設定してそのツール番号を出力するツール識別装置をツール着脱装置2bのツールに取り付ける側に備えていてもよい。ツール着脱装置2bは、ツール識別装置のツール番号を、信号線5を介して制御装置4へ出力する。
【0018】
図2は、複数のツール3のうちの一つの概略構成図である。なお、複数のツール3のそれぞれは、
図2に示される構成を有するので、以下では、一つのツールについてのみ説明する。ツール3は、可動部31と、モータ32と、エンコーダ33とを有する。エンコーダ33は、記憶部34と、制御部35と、絶対位置検出部36とを有する。ツール3は、さらに、バッテリ(図示せず)及びブレーキ機構(図示せず)を有していてもよい。
【0019】
可動部31は、例えば、ロボット2による作業対象物を把持するハンド、あるいは、作業対象物を加工する溶接ガンといった、作業対象物に対して何らかの操作を行う部材である。可動部31は、例えば、モータ32の回転軸に直接あるいはギヤなどを介して間接的に取り付けられ、モータ32により駆動されてその位置を変化させる。そして可動部31は、ツール3がツール着脱装置2bから取り外されるときに、移動しないようにブレーキ機構によりロックされる。ブレーキ機構によるロックは、ツール3が再度ツール着脱装置2bに取り付けられ、電力供給を受けると解除される。
【0020】
モータ32は、動力部の一例であり、動力線6からの電力供給に応じて回転し、可動部31を駆動する。
【0021】
エンコーダ33は、位置検出器の一例であり、例えば、モータ32の回転軸、あるいは、モータ32の回転軸とギヤにて接続される回転軸に取り付けられ、モータ32の回転量を検出することで、可動部31の位置を検出する。本実施形態では、エンコーダ33は、原点からの回転角度に応じたパルス計数値を出力するアブソリュート型のロータリーエンコーダとすることができる。そしてエンコーダ33は、エンコーダ33が取り付けられた回転軸の原点からの回転角度を表すパルス計数値を制御装置4へ出力する。
【0022】
記憶部34は、例えば、揮発性の読み書き可能な半導体メモリを有する。そして記憶部34は、可動部の位置を表す値を記憶する。上記のように、本実施形態では、エンコーダ33はアブソリュート型のロータリーエンコーダであるため、記憶部34は、エンコーダ33が取り付けられた回転軸の原点からの回転数(以下、単にエンコーダ33の回転数と呼ぶことがある)を記憶し、1回転以内の絶対位置情報(すなわち、1回転以内の原点からの回転角度)については記憶しなくてもよい。
【0023】
記憶部34は、例えば、バッテリ(図示せず)から供給される電力により、記憶部34に書き込まれた情報を保持し続ける。したがって、ツール3がロボット2から取り外されても、記憶部34は、エンコーダ33の回転数を保持し続けることができる。
【0024】
なお、記憶部34は、不揮発性の読み書き可能な半導体メモリを有していてもよい。この場合には、ツール3がロボット2から取り外されて、制御装置4から電力供給を受けられなくなっても、記憶部34に書き込まれた情報は保持され続けるので、ツール3はバッテリを有していなくてもよい。
【0025】
制御装置4は、ツール3がロボット2に取り付けられている間、動力線6を介して電力を供給することでモータ32を駆動する。また制御部35は、絶対位置検出部36から受信した信号に応じて、原点からのエンコーダ33の回転数を計数し、その計数結果を記憶部34に書き込む。例えば、制御部35は、モータ32が所定の向き(例えば、時計回り)に回転している場合に、1回転以内の基準となる絶対位置(例えば、ゼロ位置)を受信する度に、エンコーダ33の回転数を1増やす。逆に、制御部35は、モータ32が所定の向きと逆の向き(例えば、反時計回り)に回転している場合に、1回転以内の基準となる絶対位置を絶対位置検出部36から受信する度に、エンコーダ33の回転数を1減らす。
【0026】
さらに、制御部35は、制御装置4から可動部31の位置を問い合わせる信号を受信すると、記憶部34からエンコーダ33の回転数を読み込み、その回転数にエンコーダ33の1回転に相当するパルス数を乗じた値に、絶対位置検出部36から受信した、1回転以内の絶対位置を表すパルス数を加算して得られるパルス計数値を、可動部31の位置を表す情報として算出する。そして制御部35は、そのパルス計数値を、信号線7を介して制御装置4へ出力する。なお、エンコーダ33が、モータ32の回転軸とギヤを介して接続される回転軸に取り付けられる場合には、読み込んだ回転数にギヤ比を乗じて得られる値を用いてパルス計数値を算出してもよい。
【0027】
なお、エンコーダ33の1回転に相当するパルス数が数百〜数千以上となるような場合には、ツール着脱装置2bからの取り外し時において、可動部31の位置を、ツールごとに異なる回転角度に相当する位置とすることが容易となる。そこで制御部35は、絶対位置検出部36から受信した、1回転以内の絶対位置を表すパルス数そのものを、可動部31の位置を表すパルス計数値として、信号線7を介して制御装置4へ出力してもよい。
【0028】
絶対位置検出部36は、例えば、モータ32の回転軸に取り付けられる円盤状の部材と、その円盤状の部材を挟んで互いに対向するように取り付けられるLEDといった複数の光源とフォトダイオードといった複数の受光素子とを有する。円盤状の部材には、原点からの所定の回転角度ごとに、複数の光源と受光素子との間に、その回転角度を表す複数のスリットが形成される。したがって、絶対位置検出部36は、対応する光源からの光を受光できた受光素子の組み合わせに基づいて、原点からの回転角度、すなわち、1回転以内の絶対位置を検出できる。
【0029】
また、エンコーダ33は、所定角度回転する度にパルスを出力するインクリメンタル型のロータリーエンコーダであってもよい。この場合には、エンコーダ33は、絶対位置検出部36の代わりにパルス検出部を有し、制御部35は、可動部31が原点に位置しているときから可動部31の現在位置まで可動部31が移動する間にパルス検出部から受信したパルスの総数をパルス計数値として記憶部34に記憶すればよい。そして制御部35は、制御装置4から可動部31の位置の問い合わせを受けたときには、記憶部34に記憶されているパルス計数値を、信号線7を介して制御装置4へ出力すればよい。なお、パルス検出部は、例えば、モータ32の回転軸に取り付けられる円盤状の部材と、その円盤状の部材を挟んで互いに対向するように取り付けられるLEDといった光源とフォトダイオードといった受光素子とを有する。円盤状の部材には、原点からの所定の回転角度ごとに、光源と受光素子との間にスリットが形成される。そのため、パルス検出部は、モータ32の回転軸が所定の回転角度回転する度に、受光素子がスリットを介して光源からの光を受光することでパルスを出力する。
【0030】
制御装置4は、例えば、ロボット2の動作を指定するプログラムに従って、あるいは、作業者の指示に従って、ロボット2のそれぞれの軸を駆動するサーボモータを制御することで、ロボット2の位置及び姿勢を制御する。また制御装置4は、複数のツール3のうち、動力線6及び信号線7を介して、ツール着脱装置2bに取り付けられた作業対象ツールと接続される。そして制御装置4は、動力線6及び信号線7を介して作業対象ツールを制御する。
【0031】
図3Aは、制御装置4の概略構成及び制御装置が有するプロセッサの機能ブロックを示す図である。制御装置4は、通信インターフェース41と、駆動回路42と、メモリ43と、プロセッサ44とを有する。さらに、制御装置4は、タッチパネルといったユーザインターフェース(図示せず)を有していてもよい。
【0032】
通信インターフェース41は、通信部の一例であり、例えば、制御装置4を信号線5及び信号線7と接続するための通信インターフェース及び信号線5及び信号線7を介した信号の送受信に関する処理を実行するための回路などを含む。そして通信インターフェース41は、例えば、ツール3から、ツール着脱装置2b及び信号線7を介して、可動部31の位置を表すパルス計数値などを受信する。また、通信インターフェース41は、プロセッサ44から受信した、ツール3を取り外す制御信号を、信号線5を介してツール着脱装置2bへ出力する。
【0033】
駆動回路42は、動力線6を介してツール3と接続され、プロセッサ44による制御に従って、ツール3が有するモータ32に生じさせるトルク、回転方向あるいは回転速度に応じた電力を、動力線6を介してツール3へ供給する。
【0034】
メモリ43は、記憶部の一例であり、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。さらに、メモリ43は、半導体メモリカード、ハードディスク、あるいは光記憶媒体といった記憶媒体及びその記憶媒体にアクセスする装置を有していてもよい。
【0035】
メモリ43は、制御装置4のプロセッサ44で実行される、ロボット2の制御用の各種コンピュータプログラムなどを記憶する。また、メモリ43は、プロセッサ44で実行される、ツール3の取り外し可否判定及びツール3の識別に関する処理用のコンピュータプログラムを記憶する。さらに、メモリ43は、ツール3の取り外し可否判定及びツール3の識別に関する処理で利用される各種の情報、例えば、登録されたツールの取り外し時の可動部31の位置を表すパルス計数値及び取り外し可否判定処理または識別処理用の閾値などを記憶する。
【0036】
プロセッサ44は、制御部の一例であり、例えば、Central Processing Unit(CPU)及びその周辺回路を有する。さらにプロセッサ44は、数値演算用のプロセッサを有していてもよい。そしてプロセッサ44は、ロボットシステム1全体を制御する。またプロセッサ44は、ツール3の取り外し可否判定及びツール3の識別に関する処理を実行する。
【0037】
図3Bは、プロセッサ44の機能ブロック図である。
図3Bに示されるように、プロセッサ44は、取り外し可否判定部51と、識別部52とを有する。プロセッサ44が有するこれらの各部は、例えば、プロセッサ44上で実行されるコンピュータプログラムにより実現される機能モジュールである。あるいは、これらの各部は、プロセッサ44の一部に実装される専用の演算回路として実装されてもよい。
【0038】
取り外し可否判定部51は、プロセッサ44上で実行されるコンピュータプログラムにより、ツール着脱装置2bに取り付けられた作業対象ツールを取り外すことが指示されると、あるいは、ユーザインターフェースを介して作業者によりツール着脱装置2bに取り付けられた作業対象ツールを取り外すことが指示されると、作業対象ツールを取り外すことが可能か否かを判定する。
【0039】
図4は、取り外し可否判定処理の動作フローチャートである。取り外し可否判定部51は、作業対象ツールの取り外しを指示される度に、以下の動作フローチャートに従って取り外し可否判定処理を実行する。
【0040】
取り外し可否判定部51は、通信インターフェース41及び信号線7を介して作業対象ツールへ現在の可動部31の位置を問い合わせる(ステップS101)。そして取り外し可否判定部51は、作業対象ツールから信号線7及び通信インターフェース41を介して可動部31の位置を表すパルス計数値を受信する。
【0041】
パルス計数値を受信すると、取り外し可否判定部51は、メモリ43に記憶されている、登録されたツールのそれぞれについて、その登録されたツールがツール着脱装置2bから取り外された時のパルス計数値(以下、説明の便宜上、取り外し計数値と呼ぶ)と受信したパルス計数値間の差が第1の閾値Th1以上か否か判定する(ステップS102)。
【0042】
登録されたツールの何れかについて、取り外し計数値と受信したパルス計数値間の差が第1の閾値Th1未満であれば(ステップS102−No)、取り外し可否判定部51は、作業者に取り外しが不可能な位置であることを、ユーザインターフェースを介して通知する。この場合、作業者は、ユーザインターフェースを介して、可動部の位置を移動させた後、再度取り外しの指示をすればよい。または、取り外し可否判定部51は、メモリ43に記憶されている全てのパルス計数値との差が閾値Th1以上となるパルス計数値となるように作業対象ツールの記憶部34に記憶されたエンコーダ33の原点からの回転数に任意の回転数を加算または減算してもよい。そして取り外し可否判定部51は、可動部の基準位置(例えば、原点となるゼロ度位置)に対応するパルス計数値に、その任意の回転数分のパルス数を加算または減算した値を、可動部の基準位置に対応する新たなパルス計数値として設定し直し、現在の取り外し位置に対応するパルス計数値とメモリ43に記憶されているパルス計数値との差が閾値Th1未満にならないようにしてもよい。あるいはまた、取り外し可否判定部51は、駆動回路42及び動力線6を介して、作業対象ツールへ電力を供給し、所定量だけ可動部31を移動させてもよい(ステップS103)。これにより、可動部が自動で取り外し可能な位置に移動するため、作業者は、取り外しが可能な位置を知ることができ、その位置で再度取り外し指示を出して、ツールを取り外せる。なお、所定量は、予め設定された値、あるいは、メモリ43に記憶されている全ての取り外し計数値と受信したパルス計数値との差が第1の閾値Th1以上となる値とすることができる。
【0043】
取り外し可否判定部51は、所定量だけ可動部31を移動させる電力を作業対象ツールへ供給してから所定時間が経過した後、ステップS101以降の処理を再度実行する。なお、所定時間は、例えば、可動部31が所定量移動するのに十分な時間に設定されればよい。
【0044】
一方、登録されたツールのそれぞれについて、取り外し計数値と受信したパルス計数値間の差が第1の閾値Th1以上であれば(ステップS102−Yes)、取り外し可否判定部51は、作業対象ツールを取り外し可能と判定する。そして取り外し可否判定部51は、受信したパルス計数値を、現時点でツール着脱装置2bに取り付けられている作業対象ツールの取り外し計数値としてメモリ43に記憶することで、作業対象ツールを新たに登録する(ステップS104)。そして取り外し可否判定部51は、作業対象ツールを取り外し可能とする制御信号を、通信インターフェース41及び信号線5を介してツール着脱装置2bへ出力する(ステップS105)。なお、取り外し可否判定部51は、信号線7を介して作業対象ツールからの信号を受信できなくなり、かつ、電流計または電圧計により測定された、動力線6の電流値または電圧値が所定の閾値未満となった場合に、作業対象ツールが取り外されたと判定することができる。そして取り外し可否判定部51は、取り外し可否判定処理を終了する。
【0045】
以上により、登録されたツールごとに、異なる取り外し計数値がメモリ43に記憶されることになる。そのため、制御装置4は、ツール着脱装置2bから、取り付けられているツール3の識別情報を受信しなくても、取り外し計数値によってツール3を識別することができる。
【0046】
図5は、メモリ43に記憶される取り外し計数値の一例を示す図である。表500に示されるように、ツールごとに、異なる取り外し計数値が記録される。なお、表500では、ツールの番号が記載されているが、このツールの番号は、説明の便宜上示されるものであり、メモリ43には記憶されなくてもよい。あるいは、取り外し可否判定部51が、メモリ43に取り外し計数値を書き込む際に、個々の取り外し計数値に対して一意な番号をその取り外し計数値とともにメモリ43に書き込んでもよい。その際、取り付けられた作業対象ツールの識別信号をツール着脱装置2bが出力する場合には、取り外し可否判定部51は、作業対象ツールの識別信号で表された識別番号を、取り外し計数値とともにメモリ43に書き込んでもよい。
【0047】
識別部52は、複数のツール3の何れかがツール着脱装置2bに取り付けられるときに、その取り付けられる作業対象ツールを識別する。
【0048】
図6は、識別処理の動作フローチャートである。識別部52は、ツール3の取り付けを指示される度に、以下の動作フローチャートに従って識別処理を実行する。
識別部52は、通信インターフェース41及び信号線7を介して、ツール着脱装置2bに取り付けられた作業対象ツールへ現在の可動部31の位置を問い合わせる(ステップS201)。そして識別部52は、作業対象ツールから信号線7及び通信インターフェース41を介して可動部31の位置を表すパルス計数値を受信する。
【0049】
パルス計数値を受信すると、識別部52は、登録されたツールのそれぞれについての取り外し計数値をメモリ43から読み込み、登録されたツールごとに読み込んだ取り外し計数値と受信したパルス計数値間の差を算出し、その差の最小値を求める(ステップS202)。
【0050】
識別部52は、差の最小値が第2の閾値Th2未満か否か判定する(ステップS203)。差の最小値が第2の閾値Th2未満であれば(ステップS203−Yes)、識別部52は、作業対象ツールを、差が最小値となる取り外し計数値に対応する登録ツールであると判定する(ステップS204)。この場合、識別部52は、作業対象ツールが登録ツールと同一であることを、ユーザインターフェースを介して作業者に報知してもよい。さらに、識別部52は、ロボット2または作業対象ツールを動作可能にしてもよい。
【0051】
一方、差の最小値が第2の閾値Th2以上であれば(ステップS203−No)、識別部52は、作業対象ツールを、登録されたツールの何れとも異なると判定する(ステップS205)。この場合には、識別部52は、作業対象ツールが登録されたツールの何れとも異なることを、ユーザインターフェースを介して作業者に報知してもよい。さらに、識別部52は、ロボット2または作業対象ツールを動作させないようにしてもよい。この場合、作業者がユーザインターフェースを介して可動部31の基準位置に相当するパルス計数値を登録すると、識別部52は、ロボット2または作業対象ツールを動作可能としてもよい。
【0052】
ステップS204またはS205の後、識別部52は、識別処理を終了する。
【0053】
なお、第2の閾値Th2は、例えば、ツール3がツール着脱装置2bから取り外される際に、ブレーキ機構にて可動部31がロックされるまでの間における、可動部31の最大移動量に相当する値とすることができる。また、第1の閾値Th1は、例えば、第2の閾値Th2に所定のマージンを加えた値とすることができる。
【0054】
また、識別部52により、ツール着脱装置2bに取り付けられた作業対象ツールが、登録されたツールの何れかと同一であると判定された場合、取り外し可否判定部51は、メモリ43に記憶されたその作業対象ツールの取り外し計数値を削除するか、その作業対象ツールが再度取り外されるときにおいて、同一と判定された登録ツールについての取り外し計数値をステップS102の処理の対象外としてもよい。さらに、識別部52により、ツール着脱装置2bに取り付けられた作業対象ツールが、登録されたツールの何れかと同一であると判定された場合、取り外し可否判定部51は、その作業対象ツールが取り外されるときにおいて、同一と判定された登録ツールについての取り外し計数値で指定される位置へ可動部31を移動させる電力を、駆動回路42及び動力線6を介して、ツール着脱装置2bに取り付けられた作業対象ツールへ供給してもよい。これにより、制御装置4は、ツール着脱装置2bに対して着脱が複数回繰り返されるツールについては、ツール着脱装置2bから取り外す度に同じ位置に可動部31を移動させることができる。
【0055】
なお、ツール着脱装置2bに取り付けられた作業対象ツールの制御部35が、所定の周期ごとにパルス計数値を出力する場合、あるいは、制御装置4からの制御に従って可動部31を目的位置まで移動させる度にパルス計数値を出力する場合には、
図4におけるステップS101、及び、
図6におけるステップS201において、プロセッサ44は、可動部の位置を問い合わせなくてもよい。
【0056】
以上に説明してきたように、この制御装置は、ロボットのツール着脱装置に取り付けられたツールを取り外す際、ツールごとにそのツールの可動部の位置が異なるように制御する。そしてこの制御装置は、ツール着脱装置にツールが取り付けられる際に、そのツールの可動部の位置と過去にツール着脱装置に取り付けられた他のツールの可動部の位置とを比較することで、取り付けられるツールを識別できる。そのため、この制御装置は、ツール着脱装置から、取り付けられるツールの識別情報を受信しなくても、そのツールを識別できる。したがって、この制御装置は、ロボットに取り付けられているツールを正確に識別することができる。またこれにより、制御装置が識別しているツールと実際にツール着脱装置に取り付けられているツールとが異なることが防止されるので、想定外のツールの動作によって危険が生じることが抑制される。
【0057】
なお、変形例によれば、ツール3は、可動部を駆動する複数のモータ、及び、モータごとに設けられる複数のエンコーダを有していてもよい。なお、複数のモータは、一つの可動部の異なる部分を駆動するものであってよく、あるいは、複数の可動部のうちの互いに異なるものを駆動してもよい。この場合には、ツール着脱装置2bに取り付けられた作業対象ツールは、制御装置4から可動部の位置の問い合わせを受けると、エンコーダごとのパルス計数値を、可動部の位置を表す信号として、信号線7を介して制御装置4へ送信してもよい。そして制御装置4のプロセッサ44の取り外し可否判定部51は、受信したエンコーダごとのパルス計数値を、メモリ43に記憶されている、登録されたツールのエンコーダごとの取り外し計数値と比較してもよい。そして取り外し可否判定部51は、受信したエンコーダごとのパルス計数値のうちの少なくとも一つについて、登録されたツールの何れについても、取り外し計数値との差が第1の閾値以上であれば、作業対象ツールをツール着脱装置2bから取り外し可能と判定してもよい。そして取り外し可否判定部51は、作業対象ツールから受信した各エンコーダのパルス計数値を、その作業対象ツールについての取り外し計数値としてメモリ43に記憶してもよい。この場合、識別部52は、ツール着脱装置2bから一旦取り外された作業対象ツールが再度ツール着脱装置2bに取り付けられる時、作業対象ツールから受信した各エンコーダのそれぞれのパルス計数値を、メモリ43に記憶されているそれぞれの登録されたツールの各エンコーダの取り外し計数値と比較する。そして識別部52は、何れのパルス計数値についても取り外し計数値との差が第2の閾値未満となる場合に、作業対象ツールは、それら取り外し計数値の組に対応する登録ツールであると判定すればよい。また、識別部52は、何れのパルス計数値についても差が第2の閾値未満となる取り外し計数値の組がメモリ43に記憶されていなければ、作業対象ツールは、登録されたツールの何れとも異なると判定すればよい。
【0058】
図7は、この変形例による、メモリ43に記憶される取り外し計数値の他の一例を示す図である。この変形例では、表700に示されるように、登録されたツールごとに、二つ以上の取り外し計数値の組が記録される。例えば、ツール1については、取り外し計数値’1234567’と’2345678’とが記憶されている。また、ツール2については、取り外し計数値’3456789’と’4567890’とが記憶されている。また、第1及び第2の閾値がそれぞれ10であるとする。この場合、ツール着脱装置2bに取り付けられている作業対象ツールを取り外す場合において、制御装置4が作業対象ツールから受信したパルス計数値が’1234567’と’4567890’である場合、ツール1とツール2の何れについても、少なくとも一方のパルス計数値と取り外し計数値間の差が第1の閾値以上となるため、取り外し可否判定部51は、作業対象ツールを取り外し可能と判定する。一方、制御装置4が作業対象ツールから受信したパルス計数値が’1234569’と’2345677’である場合、ツール1に対して、何れのパルス計数値についても取り外し計数値との差が第1の閾値未満となるため、取り外し可否判定部51は、作業対象ツールを取り外し不可と判定する。そして取り外し可否判定部51は、作業対象ツールに対して、少なくとも一方のモータを回転して可動部を移動させるよう指示する。
【0059】
また、作業対象ツールをツール着脱装置2bに取り付ける場合において、制御装置4が作業対象ツールから受信したパルス計数値が’1234567’と’4567890’である場合、ツール1とツール2の何れについても、少なくとも一方のパルス計数値と取り外し計数値間の差が第2の閾値以上となるため、識別部52は、作業対象ツールをツール1及びツール2の何れでもないと判定する。一方、制御装置4が作業対象ツールから受信したパルス計数値が’1234569’と’2345677’である場合、ツール1に対して、何れのパルス計数値についても取り外し計数値との差が第2の閾値未満となるため、識別部52は、作業対象ツールはツール1であると判定する。
【0060】
この変形例によれば、ツールの識別に複数のパルス計数値が用いられるので、制御装置は、ツールを識別することがより正確となる。
【0061】
なお、取り外し可否判定部51は、受信したエンコーダごとのパルス計数値の何れについても、登録されたツールのそれぞれに対して、取り外し計数値との差が第1の閾値以上となる場合に限り、作業対象ツールをツール着脱装置2bから取り外し可能と判定してもよい。
【0062】
あるいは、ツール3が複数のモータ及び複数のエンコーダを有する場合であっても、取り外し可否判定部51は、複数のエンコーダのうちの何れか一つについてのパルス計数値のみを、取り外し可否判定処理に利用してもよい。同様に、識別部52も、複数のエンコーダのうちの何れか一つについてのパルス計数値のみを、識別処理に利用してもよい。この場合、ツール着脱装置2bからツールが取り外された時に、複数のモータのうち、ブレーキ機構により回転がロックされるモータの回転数を検知するためのエンコーダについてのパルス計数値が取り外し可否判定処理及び識別処理で利用されることが好ましい。
【0063】
あるいはまた、作業対象ツールの制御部35は、制御装置4から、可動部の位置の問い合わせを受けると、各エンコーダのパルス計数値の合計を算出し、その合計を、信号線7を介して制御装置4へ出力してもよい。そして取り外し可否判定部51は、各エンコーダのパルス計数値の合計を一つのパルス計数値として、取り外し可否判定処理に用いてもよい。同様に、識別部52は、各エンコーダのパルス計数値の合計を一つのパルス計数値として、識別処理に用いてもよい。この場合、ツールによってエンコーダの数が異なる場合でも、制御装置4は、上記の実施形態と同様の処理を行うことで、取り外しの可否、及び、ツールの識別を行うことができる。
【0064】
また上記の実施形態または変形例において、作業対象ツールがブレーキ機構を有さず、作業対象ツールがツール着脱装置2bから取り外されると、可動部31が動いてしまう場合、取り外し可否判定部51及び識別部52は、後述する処理によって可動部31が移動する特定の位置におけるパルス計数値を、取り外し可否判定処理及び識別処理に利用してもよい。
【0065】
この場合、作業対象ツールが最初にツール着脱装置2bに取り付けられたあとに、作業対象ツールの取り外し可否を判定するため、可動部31の動作を指定するプログラムに従って、あるいは、作業者の指示に従って、取り外し可否判定部51は、作業対象ツールのモータ32を所定の方向へ回転させる。そして取り外し可否判定部51は、可動部31が作業対象ツールに設けられた参照点に達したときのパルス計数値を作業対象ツールから受信して、受信したパルス計数値に基づいて取り外し可否判定処理を実行すればよい。この取り外し可否判定処理のステップS101は、可動部31が参照点に達したことを検知すると、作業対象ツールの制御部35がパルス計数値を取り外し可否判定部51に出力する処理に代わる。また、ステップS103では、取り外し可否判定部51は、可動部を所定量だけ移動させるのではなく、作業者に取り外しが不可能な参照点であることを、ユーザインターフェースを介して通知する。この場合、作業者は、ツールの参照点の位置を変更した後、作業対象ツールの取り外し可否判定を再度指示すればよい。または、取り外し可否判定部51は、メモリ43に記憶されている全てのパルス計数値との差が閾値Th1以上となるパルス計数値となるように作業対象ツールの記憶部34に記憶されたエンコーダ33の原点からの回転数に任意の回転数を加算または減算してもよい。ステップS105は、別途ツール取り外しの指示がプログラムまたは作業者から行われた場合に実行される。なお、この参照点は、可動部の特定の位置の一例であり、作業対象ツールに取り付けられたリミットスイッチまたは可動部の動作範囲の端の位置等である。可動部31が参照点に到達したことは、リミットスイッチからの信号または可動部が動作範囲の端に達した時のモータ32の接触トルクで検知できる。また、取り外しの可否判定を作業対象ツールの取り付け時に行っているので、ツール着脱装置2bからの作業対象ツールの取り外しの際には、可動部31がどの位置にあっても作業対象ツールを取り外せる。なお、取り外し可否判定はツールを初めて取り付ける時に1度だけ実行すればよい。
【0066】
作業対象ツールがツール着脱装置2bに再度取り付けられる時には、識別部52は、モータ32を所定の方向へ回転させるため、駆動回路42及び動力線6を介して作業対象ツールへ電力を供給し、可動部31が参照点に達したときのパルス計数値を受信して、上記の実施形態と同様の識別処理を実行すればよい。
以上により、ツールがブレーキ機構を有さない場合でも、制御装置は、ロボットに取り付けられたツールを識別することができる。
【0067】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。