以下、本発明の実施形態について説明する。
(実施形態1)
本実施形態の産業用ロボット1000は、図1に示すように、制御装置10と、ロボット本体20と、を有する。本実施形態では、ロボット本体20の動きが、制御装置10によって制御される。産業用ロボット1000は、例えば多関節型ロボットである。ただしこれに限定されず、産業用ロボット1000は、他の産業用ロボットであってもよい。
制御装置10は、基準値記憶部10aと、制御部11と、第1座標系設定部12と、第1基準取得部12aと、第1記憶部12bと、第1座標記憶部12cと、第2座標系設定部13と、第2基準取得部13aと、第2記憶部13bと、判断部13cと、再現値記憶部13dと、を有する。
このうち、制御部11、第1座標系設定部12、第1基準取得部12a、第2座標系設定部13、第2基準取得部13a、及び判断部13cは、例えばマイクロコンピュータ、すなわちCPU(Central Processing Unit)、ROM(Read-Only Memory)、RAM(Random Access Memory)、及びROM等に記憶されたプログラムなどから構成される。ここで、ROMは、各種処理を実行するためのプログラムやデータを記憶する。RAMは、データを一時的に記憶する。また、CPUは、ROMやRAM等からプログラムやデータを読み出して、プログラムの実行やデータ処理等を行う。
また、基準値記憶部10a、第1記憶部12b、第1座標記憶部12c、第2記憶部13b、及び再現値記憶部13dは、例えばハードディスクや不揮発性メモリなど、電源を切っても記憶内容を保持することができる記憶装置の一部又は全部の記憶領域として設けられる。また、新たにデータを格納しないもの、例えば本実施形態では基準値記憶部10aは、書き込み不能なROM等の記憶領域として設けてもよい。なお、これらの記憶部は、同一の記憶装置において、異なる記憶領域として設けることもできるし、各々を異なる記憶装置の記憶領域として設けることもできる。さらには、1つの記憶部が、複数の記憶装置にわたって設けられていてもよい。
基準値記憶部10aには、予め基準位置データが記憶されている。この基準位置データは、直線運動(Z方向)及び回転運動(回転軸:Z軸)の各々について専用の測定器や治工具などを使用して得た精度の高い位置データ(特定の機械的な基準位置)である。
制御部11は、ロボット本体20が有する第1モータ21及び第2モータ22の回転運動を制御する。通常動作においては、制御部11は、第1モータ21、第2モータ22の回転位置をそれぞれ示す第1エンコーダ21a、第2エンコーダ22aの各信号に基づいて、フィードバック制御を行っている。すなわち、任意のタイミングで発せられるユーザの指令に基づいて回転運動に係るパラメータの目標値が決定されると、第1モータ21及び第2モータ22は、各パラメータをその目標値に近づけるように駆動される。一方、後述の座標系設定処理及び座標系再現処理においては、制御部11は、第1座標系設定部12等からの要求に基づき、第1モータ21及び第2モータ22の回転運動を制御する。
第1座標系設定部12、第1基準取得部12a、第2座標系設定部13、第2基準取得部13a、及び判断部13cは、制御上の座標系を設定(定義)又は再現するために用いられる。なお、これらの機能及び動作については、後述の座標系設定処理及び座標系再現処理の説明において詳述する(図4〜図9参照)。
ロボット本体20は、図2に示すように、ベース101と、第1アーム102と、第2アーム200と、を有する。ベース101はストッパ101aを有し、第1アーム102はストッパ102aを有し、第2アーム200は軸23cを有する。ベース101と第2アーム200とは、蛇腹菅103を介して、互いに連結されている。蛇腹菅103の中には、例えば第2アーム200の電源ケーブル等が収容される。
ベース101と第1アーム102とは、例えばネジ等により、相対回動可能に互いに連結されている。また、第1アーム102と第2アーム200とは、例えばネジ等により、相対回動可能に互いに連結されている。
ロボット本体20は、3つの運動軸L1〜L3について運動をする。詳しくは、運動軸L1を回転軸として第1アーム102がベース101に対して順逆双方向の回転運動をし、運動軸L2を回転軸として第2アーム200が第1アーム102に対して順逆双方向の回転運動をする。また、第2アーム200の軸23cは、運動軸L3に沿って往復運動(直線運動)するとともに、運動軸L3を回転軸として順逆双方向の回転運動をする。第2アーム200の回転運動はストッパ102aで規制され、第1アーム102及び第2アーム200の回転運動はストッパ101aで規制される。
第2アーム200は、図3Aに示すように、筐体201と、第1モータ21と、第2モータ22と、ボールねじ・スプライン23と、ベルト24a、24bと、ストッパ25a、25bと、を有する。
ボールねじ・スプライン23は、サポートベアリング23a、23bと、軸23cと、から構成される。軸23cには、Z1側から順に、ストッパ25a、サポートベアリング23a、23b、ストッパ25bが取り付けられている。軸23cには、ボールねじ溝とボールスプライン溝とがクロスして設けられており、さらにサポートベアリング23a、23bが取り付けられていることにより、1軸で、回転運動、直線運動、及びスパイラル運動が可能となる。
サポートベアリング23aはボールねじナットを介して軸23cに取り付けられ、サポートベアリング23bはスプライン外筒を介して軸23cに取り付けられる。これらサポートベアリング23a、23bの各々は、ボールねじナット又はスプライン外筒のほか、例えばボール、リテーナ、外輪、シール、及びシムプレート等によって構成される。なお、この種のベアリングの構造は公知の構造であるため詳細については説明を割愛する。
第1モータ21は、第1エンコーダ21aと、出力軸21bと、を有する。第1モータ21は、例えばサーボモータである。第1モータ21で得られる回転運動は、出力軸21bに出力される。出力軸21bは、ベルト24aを介して、ボールねじ・スプライン23のサポートベアリング23aと接続される。これにより、出力軸21bの回転力がサポートベアリング23aに伝達され、サポートベアリング23aが出力軸21bと連動して回転することになる。そして、サポートベアリング23aでベルト24aの回転運動が軸23cの直線運動(Z方向)に変換される。すなわち、第1モータ21により、ボールねじ・スプライン23の軸23cを上下(Z1側又はZ2側)に直線駆動することができる。
また、第1モータ21の出力軸21bには、回転センサとしての第1エンコーダ21aが取り付けられている。第1モータ21(出力軸21b)の回転位置、回転量、又は回転速度等は、第1エンコーダ21aにより検出することができる。第1エンコーダ21aは、例えば光学式又は磁気式のアブソリュートタイプのエンコーダ(以下、ABSエンコーダという)である。
第2モータ22は、第2エンコーダ22aと、出力軸22bと、減速器22cと、を有する。第2モータ22は、例えばサーボモータである。第2モータ22の回転運動は、減速器22cによって所定の減速比で減速され、出力軸22bに出力される。出力軸22bは、ベルト24bを介して、ボールねじ・スプライン23のサポートベアリング23bと接続される。これにより、出力軸22bの回転力がサポートベアリング23bに伝達され、サポートベアリング23bが出力軸22bと連動して回転することになる。さらに、そのサポートベアリング23bの回転運動は軸23cに伝達され、軸23cも出力軸22bと連動して回転することになる。すなわち、第2モータ22により、ボールねじ・スプライン23の軸23cを回転駆動することができる。本実施形態では、Z軸が、その回転運動の回転軸となる。
また、第2モータ22の出力軸22bには、回転センサとしての第2エンコーダ22aが取り付けられている。第2モータ22(出力軸22b)の回転位置、回転量、又は回転速度等は、第2エンコーダ22aにより検出することができる。第2エンコーダ22aは、例えば光学式又は磁気式のABSエンコーダである。
ストッパ25a、25bは、リング状の外形を有する。すなわち、ストッパ25a、25bの真ん中には穴が形成されており、その穴には軸23cが挿入される。そして、ストッパ25a、25bは、軸23cの所定の位置に機械的又は化学的に固定される。本実施形態では、ストッパ25a、25bが、軸23cの端部に固定される。これにより、ストッパ25a、25bは、軸23cと一体に移動することになる。
このため、ボールねじ・スプライン23の軸23cがZ1側へ移動すると、Z1側へ移動するほどストッパ25bが筐体201に近づき、ついにはストッパ25bの内側面25d(Z1側の面)と筐体201の表面201b(Z2側の面)とが当接し、それ以上移動できなくなる。他方、ボールねじ・スプライン23の軸23cがZ2側へ移動すると、Z2側へ移動するほどストッパ25aが筐体201に近づき、ついにはストッパ25aの内側面25c(Z2側の面)と筐体201の表面201a(Z1側の面)とが当接し、それ以上移動できなくなる。このように、第2アーム200において、ボールねじ・スプライン23の軸23cが上下する場合、Z1側への運動はストッパ25bで規制され、Z2側への運動はストッパ25aで規制される。したがって、本実施形態の第2アーム200では、軸23cの直線運動(Z方向)についての機械的な可動範囲が、ストッパ25a、25bの位置によって決まる。ストッパ25a、25bは、メカニカルストッパに相当する。また、ストッパ25a、25bが筐体201と当接する位置は、それぞれ第1メカエンド、第2メカエンドに相当する。
また、図3Bに示すように、本実施形態では、軸23cに、ストッパピン26を有する円板26aが取り付けられている。円板26aは、軸23cと同心円状に、且つ、一体に組み付けられ、軸23cと共に回転する。そして、ストッパピン26は、円板26aと共に回転する。円板26aの近傍には、ストッパブロック27a、27bが配置される。ストッパブロック27a、27bは、例えば筐体201などに固定され、軸23cとは連動しない。したがって、軸23cが回転すると、ストッパピン26とストッパブロック27a、27bとは、相対的に変位し、所定の回転位置で、ストッパピン26がストッパブロック27a、27bに当たる。これにより、円板26a、ひいては軸23cの回転運動が規制される。
具体的には、ボールねじ・スプライン23の軸23cがθ1側(例えばCW方向)へ回転すると、θ1側へ回転するほどストッパピン26がストッパブロック27aに近づき、ついには当接し、それ以上回転できなくなる。他方、ボールねじ・スプライン23の軸23cがθ2側(例えばCCW方向)へ回転すると、θ2側へ回転するほどストッパピン26がストッパブロック27bに近づき、ついには当接し、それ以上回転できなくなる。このように、第2アーム200において、ボールねじ・スプライン23の軸23cが回転する場合、θ1側への運動はストッパブロック27aで規制され、θ2側への運動はストッパブロック27bで規制される。したがって、本実施形態の第2アーム200では、軸23cの回転運動(回転軸:Z軸)についての機械的な可動範囲が、ストッパブロック27a、27bの位置によって決まる。ストッパピン26及びストッパブロック27a、27bは、メカニカルストッパに相当する。また、ストッパブロック27a、27bがストッパピン26と当接する回転位置は、それぞれ第1メカエンド、第2メカエンドに相当する。
なお、円板26a及びストッパピン26は、第2モータ22の出力軸22bに取り付けてもよい。
以下、産業用ロボット1000の動作について説明する。制御装置10は、例えば図4及び図9に示すような処理、すなわち座標系設定処理及び座標系再現処理を実行する。これらの処理は、例えばROM内のプログラムをCPUが実行することで、開始され又は進行する。
図4の処理(座標系設定処理)は、例えば産業用ロボット1000の起動ごとに実行される。ただし、図4の処理の実行タイミングは基本的には任意であり、例えば産業用ロボット1000の起動後、周期的に図4の処理を実行してもよいし、繰り返し実行する必要がなければ産業用ロボット1000の最初の起動時に1回だけ図4の処理を実行してもよい。あるいは、ユーザが好きなタイミングで図4の処理を実行できるようにしてもよい。
ステップS11では、第1座標系設定機構に基づいて、第1位置データを取得する。具体的には、第1基準取得部12aが、制御部11と協働して、図5に示す処理を実行する。なお、本実施形態では、ストッパ25bによる運動規制機構と、ストッパブロック27a及びストッパピン26による運動規制機構と、第1エンコーダ21a及び第2エンコーダ22aとが、第1座標系設定機構に相当する。
図5のステップS21では、第1メカエンドへの押付け動作を実行する。詳しくは、図6Aに示すように、ストッパ25bの内側面25dが筐体201の表面201bに当接するまで、ボールねじ・スプライン23の軸23cをZ1側へ変位させる。また、図6Bに示すように、ストッパピン26がストッパブロック27aに当接するまで、ボールねじ・スプライン23の軸23cをθ1側へ回転(変位)させる。
本実施形態では、モータ駆動により第1メカエンドへの押付けを実行しているが、これは手動(手押し)で行ってもよい。また、第1メカエンドへの押付けを、モータ駆動及び手動のいずれで行うかを、ユーザが選択できるようにしてもよい。
続けて、図5のステップS22では、上記押付け動作をしたままの状態(図6A、図6B)で、第1エンコーダ21a、第2エンコーダ22aの値を読み込み、それを第1記憶部12bの所定の記憶領域に格納する。なお、図4の処理が繰り返し実行されることによって第1記憶部12bに記憶されるエンコーダ値は更新されるが、少なくとも初期値は(必要があれば前回値なども)、最新値とは別に保存しておくことが好ましい。こうすることで、ストッパ25b、ストッパピン26、又はストッパブロック27aが初期の位置からずれるなどして、第1メカエンドが移動した場合に、初期値と最新値との差から、それを検知することができる。また、メカエンドのずれを検知する手法としては、最新値と前回値との差を求める処理を実行することも有効である。
続けて、図5のステップS23では、第1メカエンドへの押付け動作を解除する。
ここでは、直線運動の第1位置データの取得と回転運動の第1位置データの取得とを同時に行う例を示したが、いずれか一方の第1位置データを取得してから、他方の第1位置データを取得してもよい。すなわち、例えば直線運動について図5の処理を行って第1位置データを取得した後、再度図5の処理を行って、回転運動ついての第1位置データを取得してもよい。
続けて、図4のステップS12では、第2座標系設定機構に基づいて、第2位置データを取得する。具体的には、第2基準取得部13aが、制御部11と協働して、図7に示す処理を実行する。なお、本実施形態では、ストッパ25aによる運動規制機構と、ストッパブロック27b及びストッパピン26による運動規制機構と、第1エンコーダ21a及び第2エンコーダ22aとが、第2座標系設定機構に相当する。
図7のステップS31では、第2メカエンドへの押付け動作を実行する。詳しくは、図8Aに示すように、ストッパ25aの内側面25cが筐体201の表面201aに当接するまで、ボールねじ・スプライン23の軸23cをZ2側へ変位させる。また、図8Bに示すように、ストッパピン26がストッパブロック27bに当接するまで、ボールねじ・スプライン23の軸23cをθ2側へ回転(変位)させる。
本実施形態では、モータ駆動により第2メカエンドへの押付けを実行しているが、これは手動(手押し)で行ってもよい。また、第2メカエンドへの押付けを、モータ駆動及び手動のいずれで行うかを、ユーザが選択できるようにしてもよい。
続けて、図7のステップS32では、上記押付け動作をしたままの状態(図8A、図8B)で、第1エンコーダ21a、第2エンコーダ22aの値を読み込み、それを第2記憶部13bの所定の記憶領域に格納する。なお、図4の処理が繰り返し実行されることによって第2記憶部13bに記憶されるエンコーダ値は更新されるが、少なくとも初期値は(必要があれば前回値なども)は、最新値とは別に保存しておくことが好ましい。こうすることで、ストッパ25a、ストッパピン26、又はストッパブロック27bが初期の位置からずれるなどして、第2メカエンドが移動した場合に、初期値と最新値との差から、それを検知することができるからである。また、メカエンドのずれを検知する手法としては、最新値と前回値との差を求める処理を実行することも有効である。
続けて、図7のステップS33では、第2メカエンドへの押付け動作を解除する。
ここでは、直線運動の第2位置データの取得と回転運動の第2位置データの取得とを同時に行う例を示したが、いずれか一方の第2位置データを取得してから、他方の第2位置データを取得してもよい。すなわち、例えば直線運動について図7の処理を行って第2位置データを取得した後、再度図7の処理を行って、回転運動ついての第2位置データを取得してもよい。
続けて、図4のステップS13では、第1座標系設定部12が、直線運動(Z方向)及び回転運動(回転軸:Z軸)の各々について専用の測定器や治工具などを使用して得た基準位置データを、基準値記憶部10aから読み出す。
続けて、図4のステップS14では、第1座標系設定部12が、第1位置データ(ステップS11)と基準位置データ(ステップS13)とに基づいて第1座標データを算出し、それを第1記憶部12bの所定の記憶領域に格納する。また、第1座標系設定部12は、第2位置データ(ステップS12)と基準位置データ(ステップS13)とに基づいて第2座標データを算出し、それを第2記憶部13bの所定の記憶領域に格納する。そして、ステップS15で、第1座標系設定部12は、それらの座標データのうち、いずれか一方の座標データを、第1座標記憶部12cの所定の記憶領域に格納する。これにより、その座標データが、第1座標系として設定される。第1位置データ及び第2位置データのどちらに基づく第1座標系を用いるかは、例えば予めユーザが任意に設定し、任意のタイミングで変更することができることとする。
ここで、第1座標系の座標Aaは、第1位置データ又は第2位置データ(エンコーダ位置)をAe、ギア比をB、基準位置データ(原点プリセット値)をCとすると、Aa=Ae×B+Cという式により求められる。第1座標系設定部12は、こうした式より、第1座標系の各座標を算出し、それを第1記憶部12bの所定の記憶領域に格納する(ステップS14)。そして、ユーザが選んだ方の座標データが、第1座標系設定部12により第1座標記憶部12cに格納され、第1座標系として設定される(ステップS15)。これにより、制御部11は、以後その第1座標系に基づいて、第1モータ21及び第2モータ22を制御するようになる。
なお、上記式中のギア比Bは定数であるため、ステップS14で算出される第1座標系の座標データは、第1位置データ又は第2位置データと基準位置データとの相対的な関係を示す情報であり、基準位置データに対する第1位置データ又は第2位置データの相対データに相当する。したがって、第1位置データ又は第2位置データと基準位置データとのいずれか一方が不明であっても、他方が分かっていれば、相対データからその不明な方のデータを導き出すことができる。本実施形態では、第1位置データ又は第2位置データ(Ae)と基準位置データ(C)との相対データとして、上記式Aa=Ae×B+Cにより得られる第1座標系の座標データ(Aa)を保存することとしているが、これに限定されず、両者の差や比などを相対データとして保存してもよい。相対データは、両者の相対的な関係を示す情報であれば任意である。
上記ステップS15をもって、図4の一連の処理は終了する。
図9の処理(座標系再現処理)は、上記図4の処理で第1座標系を設定することができない場合、具体的には基準位置データが消失した場合に、他の方法で第1座標系を再現する処理である。以下、図4の処理で設定された第1座標系と区別するため、図9の処理で再現された座標系を、第2座標系という。
なお、図9の処理は、例えばモータの交換時に実行される。ただし、図9の処理の実行タイミングは基本的には任意である。例えば産業用ロボット1000の起動後、最初に図4の処理が終了することによって開始され、その後周期的に実行してもよい。また、産業用ロボット1000の起動ごとに図9の処理を実行してもよい。あるいは、モータ以外の部品に交換や異常があった場合、あるいは長期にわたって産業用ロボット1000を使用(起動)しなかった場合に、図9の処理を実行してもよい。さらには、ユーザが好きなタイミングで図9の処理を実行できるようにしてもよい。
ステップS41では、判断部13cが、基準値記憶部10aに記憶されていた基準位置データが消失していないかどうかを判断する。基準位置データの有無は、判断部13cが、基準値記憶部10aにアクセスして直接的に判断しても、あるいはステップS14で算出された座標データ等を見て間接的に判断してもよい。
ステップS41で基準位置データが消失していないと判断された場合(ステップS41:NO)には、ステップS42〜S48の処理は行わずに、図9の一連の処理を終了する。この場合、制御部11は、図4の処理で設定された第1座標系(ステップS15)に基づいて、第1モータ21及び第2モータ22を制御することになる。
他方、ステップS41で基準位置データが消失したと判断された場合(ステップS41:YES)には、第2座標系設定部13が、続くステップS42〜S48で、制御部11及び第1座標系設定部12と協働して、座標系再現処理を実行する。
ステップS42では、ユーザが、第1位置データ、第2位置データのどちらを使って座標系再現処理を行うかを選ぶ。具体的には、例えば第2座標系設定部13が、ユーザに対して入力を要求する画面を所定のモニタに表示して待機し、ユーザはそれを見て、所定の入力装置(例えばキーボード、マウス、又はタッチパネル等)を通じて、いずれの位置データを使用するかを入力する。
本実施形態では、座標系の再現に用いる位置データ(第1位置データ又は第2位置データ)をユーザが選ぶようにしているが、これに限定されない。例えば所定の条件に従って、いずれかの位置データが自動的に選択されるようにしてもよい。具体的には、例えば故障等により、第1座標系設定機構及び第2座標系設定機構のいずれか一方の機構が使用できなくなっている場合には、自動的に他方の機構に基づく位置データを使用することなどが有効である。
続けて、ステップS43、S44では、図5のステップS21、S22又は図7のステップS31、S32と同様、ステップS42で選択された位置データに対応するメカエンド(第1メカエンド又は第2メカエンド)への押付け動作及びエンコーダ値の読み込みを実行する。そして、得られたエンコーダ値は、図5又は図7の処理で得たエンコーダ値とは区別して、第1記憶部12b又は第2記憶部13bの所定の記憶領域に格納する。
続けて、第2座標系設定部13は、ステップS45において、図4のステップS14で算出し保存した第1座標系の座標データのうち、ステップS42で選択された位置データに対応する座標データ(第1座標データ又は第2座標データ)を第1記憶部12b又は第2記憶部13bから読み出す。本実施形態では、座標データの最新値を使用する。なお、ここで読み出される座標データは、前述したように、相対データに相当する。
続けて、第2座標系設定部13は、ステップS46において、ステップS44で得たエンコーダ値と、ステップS45で得た座標データ(相対データ)とに基づいて、原点プリセット値を算出する。原点プリセット値は、第2座標系の基準値に相当するものであり、高い精度で第1座標系を再現するためには、ここで算出される原点プリセット値が基準位置データに近いことが好ましい。
具体的には、ステップS44で得たエンコーダ値をAe’、ギア比をBとすると、メカエンド(ステップS43)の位置D’は、D’=Ae’×Bという式により求められる。このメカエンドの位置D’(現在の位置)は、図4の処理で検出したときから大きくは変わっていないと考えられる。特に本実施形態では、検出データの最新値(ステップS45)を使用しているため、両者はよく一致すると考えられる。
一方、図4の処理で検出したときのメカエンド(図5のステップS21又は図7のステップS31)の位置Dは、D=Ae×Bで表される。そして、ステップS45で得た相対データ(座標Aa)は、メカエンドの位置Dに、基準位置データCを足したもの(Aa=Ae×B+C)である。すなわち、AaからD’を減算することによって、基準位置データCを再現する原点プリセット値C’が得られる。これを式に表すと、C’=Aa−D’=(Ae−Ae’)×B+Cとなる。
続けて、第2座標系設定部13は、ステップS47において、ステップS46で算出した原点プリセット値に基づき、第2座標系の座標データを算出する。具体的には、第2座標系の座標Aa’は、ステップS44で得たエンコーダ値をAe’、ギア比をB、ステップS46で算出した原点プリセット値をC’とすると、Aa’=Ae’×B+C’という式により求められる。第2座標系設定部13は、こうした式より、第2座標系の各座標を算出する。そして、算出した座標データを再現値記憶部13dの所定の記憶領域に格納する。これにより、その座標データが、第2座標系として設定される。その結果、制御部11は、以後その第2座標系に基づいて、第1モータ21及び第2モータ22を制御するようになる。
本実施形態の産業用ロボット1000(特に制御装置10)は、座標系の基準となる基準位置データを記憶するための基準値記憶部10aと、制御対象(ロボット本体20)の所定の運動軸(直線運動の運動軸L3、回転軸としての運動軸L3)を所定の位置(第1メカエンド)に変位させた状態で位置の検出を行うことにより、第1検出位置についての第1位置データを取得し、それを保存する第1基準取得部12aと、制御対象の上記運動軸を所定の位置(第2メカエンド)に変位させた状態で位置の検出を行うことにより、第2検出位置についての第2位置データを取得し、それを保存する第2基準取得部13aと、位置データと基準位置データとに基づいて座標系(第1座標系)を設定する第1座標系設定部12と、を備える。
本実施形態では、第1座標系設定部12が、基準位置データに対する第1位置データの第1相対データを取得しそれを保存する第1相対値取得部、及び、基準位置データに対する第2位置データの第2相対データを取得しそれを保存する第2相対値取得部として機能する。
さらに、本実施形態の産業用ロボット1000(特に制御装置10)は、基準位置データが消失したか否かを判断する判断部13cと、判断部13cにより基準位置データが消失したと判断された場合に、上記検出を行うことにより検出位置についての位置データ(第1位置データ又は第2位置データ)を取得し、その取得した位置データと上記保存された相対データ(第1相対データ又は第2相対データ)とに基づいて、座標系(第1座標系)を再現する第2座標系設定部13と、を備える。
また、第2座標系設定部13は、座標系の再現に、第1位置データ及び第2位置データのいずれを用いるかを、ユーザの入力又は所定の条件に基づき選択し、その選択された位置データ及びそれに対応する相対データに基づいて、座標系を再現する。すなわち、本実施形態では、第2座標系設定部13が位置データ選択部として機能する。
上記構成により、本実施形態の産業用ロボット1000は、各運動軸のABSエンコーダからのフィードバックデータと運動軸の機械的な位置とを、複数の関係により(例えば1対3で)関連付けることができる。詳しくは、偶発的な原因により定義済みの座標系を消失してしまう前に、所定の機械的な位置(例えば元の基準データを取得した位置とは異なる位置)でフィードバックデータを取得し、基準データとの差分データ(歪量)を保存しておくことができる。そして、偶発的な原因により定義済みの座標系を消失した場合は、上記所定の機械的な位置において同じ要領でフィードバックデータを取得し、保存しておいた差分データとの関係により、元の基準データを取得した位置に相当するデータに変換して新たな基準データとすることができる。これにより、座標系消失前と同じ位置でのデータによって新たな座標系を定義し直すことができる。その結果、高い精度で座標系を再現することができる。
具体的には、本実施形態の産業用ロボット1000では、予め基準位置データに対する第1位置データ、第2位置データの相対データ(第1相対データ、第2相対データ)を保存しておき、その相対データを用いて、基準位置データ、ひいては座標系を再現するようにしている。このため、専用の測定器や治工具などを使用せずとも、容易に座標系を再現することができる。
このように、本実施形態の産業用ロボット1000によれば、基準位置データに基づいて座標系を設定することができなくなった場合でも、容易にその座標系を再現することが可能になる。
本実施形態では、第1位置データ及び第2位置データの両方について、基準位置データとの相対データを取得し、ユーザの入力又は所定の条件に基づき選択できるようにしている。こうすることで、何らかの理由で第1座標系設定機構及び第2座標系設定機構のいずれか一方の機構が使用できなくなった場合などにも、座標系を再現することが可能になる。
本実施形態では、第1検出位置及び第2検出位置が両端のメカエンド(第1メカエンド、第2メカエンド)であり、上記運動軸を第1検出位置及び第2検出位置に変位させるための機構は、メカニカルストッパから構成される。こうした構成であれば、正確な位置データを容易に取得することが可能になる。
本実施形態では、運動軸を駆動するための第1モータ21又は第2モータ22が交換された時に図9の処理が実行され、判断部13cにより上記判断(ステップS41)が実行される。これにより、モータの交換を円滑に行うことが可能になる。
(実施形態2)
本発明の実施形態2について、上記実施形態1との相違点を中心に説明する。なおここでは、上記図1等に示した要素と同一の要素には各々同一の符号を付し、既に説明した共通の部分、すなわち説明が重複する部分については、便宜上、その説明を割愛することとする。
本実施形態の産業用ロボット1000も、基本的には、実施形態1の産業用ロボット1000と同様の構成を有する。ただし、図10に示すように、本実施形態の制御装置10は、第2基準取得部13aと、第2記憶部13bと、を有さない。そして、図4、図9の処理に代えて、図11、図12の処理を実行する。図11の処理ではステップS12の処理が、また、図12の処理ではステップS42の処理が、それぞれ割愛されている。すなわち、本実施形態では、第2位置データを取得せず、第1位置データのみを用いて、座標系再現処理を行う。なお、図11、図12の処理は、上記処理が割愛されていることを除けば図4、図9の処理と同様であるため、その詳細については説明を割愛することとする。
以上説明した本実施形態の産業用ロボット1000によっても、実施形態1の産業用ロボット1000と同様、基準位置データに基づいて座標系を設定することができなくなった場合に、容易にその座標系を再現することが可能になる。
また、実施形態1の産業用ロボット1000よりも簡素な構成になるため、コスト面等で有利になる。
(実施形態3)
本発明の実施形態3について、上記実施形態2との相違点を中心に説明する。なおここでは、上記図10等に示した要素と同一の要素には各々同一の符号を付し、既に説明した共通の部分、すなわち説明が重複する部分については、便宜上、その説明を割愛することとする。
本実施形態の産業用ロボット1000も、基本的には、実施形態2の産業用ロボット1000と同様の構成を有する。ただし、本実施形態では、図13に示すように、ステップS44とステップS45との間において、第1座標系の再現に用いる相対データを選択するようにしている(ステップS450)。以下、このステップS450の処理について、詳しく説明する。
本実施形態では、図11の処理が産業用ロボット1000の起動ごとに実行される。これにより、第1座標系設定部12により相対データの取得及び保存が複数回行われる。そして、図13のステップS450において、ユーザが、第1記憶部12bに保存された複数の相対データのうち、最新値、前回値、及び初期値のいずれを使って座標系再現処理を行うかを選ぶ。具体的には、例えば第2座標系設定部13が、ユーザに対して入力を要求する画面を所定のモニタに表示して待機し、ユーザはそれを見て、例えば所定の入力装置(例えばキーボード、マウス、又はタッチパネル等)を通じて、上記相対データのいずれかを入力する。
本実施形態では、座標系の再現に用いる相対データを、最新値、前回値、又は初期値の中から選ぶようにしているが、選択肢の数も、種類も、これには限られない。例えば前々回値や第2保存値などを、上記選択肢に加えてもよい。
本実施形態では、座標系の再現に用いる相対データをユーザが選ぶようにしているが、これに限定されない。例えば所定の条件に従って、いずれかの相対データが自動的に選択されるようにしてもよい。具体的には、例えばメカニカルストッパ(ストッパ25b、ストッパブロック27a、又はストッパピン26等)の位置が第1メカエンドから位置ずれしたかどうかをセンサ等により検出するようにして、位置ずれが検出された場合に、その位置ずれが生じる前に保存された相対データが自動的に選択されるようにしてもよい。このように、メカニカルストッパ(運動軸を検出位置に変位させるための機構)に異常が生じた場合に、座標系の再現に用いる相対データとして、その異常が生じる前に保存された相対データを選択することで、より確実に正確な相対データを得ることが可能になる。
ステップS450が設けられたことによって、続くステップS45では、第2座標系設定部13が、ステップS450で選択された相対データ(座標データ)を第1記憶部12bから読み出し、続くステップS46、S47において、その相対データに基づいて、座標系を再現することになる。
以上説明した本実施形態の産業用ロボット1000によっても、実施形態2の産業用ロボット1000と同様、基準位置データに基づいて座標系を設定することができなくなった場合に、容易にその座標系を再現することが可能になる。
また、本実施形態の産業用ロボット1000では、第1座標系設定部12(相対値取得部)が、相対データの取得及び保存を複数回行う。そして、第2座標系設定部13が、ユーザの入力又は所定の条件に基づいて、最新の相対データ及びそれよりも前に保存された相対データの中から、座標系(第1座標系)の再現に用いる相対データを選択する。すなわち、本実施形態では、第2座標系設定部13が、相対データ選択部として機能する。
このため、本実施形態の産業用ロボット1000によれば、メカニカルストッパの位置ずれなどに起因して、メカエンドの位置D’(現在の位置)が、図11の処理で検出したとき(最新値取得時)から変わってしまった場合にも、過去の相対データを用いて、より正確に座標系を再現することが可能になる。
(実施形態4)
本発明の実施形態4について、上記実施形態1との相違点を中心に説明する。なおここでは、上記図1等に示した要素と同一の要素には各々同一の符号を付し、既に説明した共通の部分、すなわち説明が重複する部分については、便宜上、その説明を割愛することとする。
本実施形態の産業用ロボット1000も、基本的には、実施形態1の産業用ロボット1000と同様の構成を有する。ただし、本実施形態では、図14に示すように、メカニカルストッパ及びエンコーダに代えて、直接的に軸23cの位置(Z座標又は回転角度)を検出するセンサ28を、第2座標系設定機構として利用する。すなわち、本実施形態では、直線運動(Z方向)及び回転運動(回転軸:Z軸)の各々について、それぞれセンサ28を配置し、第1位置データ(図4のステップS11)は、前述のメカニカルストッパ及びエンコーダ(第1座標系設定機構)によって取得し、第2位置データ(図4のステップS12)は、センサ28(第2座標系設定機構)によって取得する。
より具体的には、多関節型産業用ロボットなどにおいては、ロボットの過度の動作(オーバートラベル)を抑制するため、例えば図15に示すように、メカニカルストッパの手前に、オーバートラベル検出器としてのセンサ28が設けられることが多い。そこで、オーバートラベル検出器を第2座標系設定機構として用いることが有効である。図15の例では、軸23cにドグ28aが取り付けられ、軸23cと一体に回転する。これにより、ストッパピン26がストッパブロック27aに当たる前に、ドグ28aがセンサ28に検知され、軸23cの回転運動が停止することになる。その結果、ロボットのオーバートラベルが抑制される。オーバートラベル検出器(センサ28)としては、例えばリミットスイッチや近接センサ等を用いることができる。
なお、図15には、回転運動についてのオーバートラベル検出器を例示したが、一般に、直線運動についても、オーバートラベル検出器は使用されている。このため、直線運動及び回転運動の両方について、オーバートラベル検出器を第2座標系設定機構として用いることもできる。もっとも、オーバートラベル検出器に限られず、任意のセンサを第2座標系設定機構として用いることができる。
以上説明した本実施形態の産業用ロボット1000によっても、実施形態1の産業用ロボット1000と同様、基準位置データに基づいて座標系を設定することができなくなった場合に、容易にその座標系を再現することが可能になる。
また、本実施形態では、運動軸を第1検出位置に変位させるための機構をメカニカルストッパで構成し、運動軸を第2検出位置に変位させるための機構をセンサで構成している。これにより、多様な機構で位置データを取得することが可能になるため、制御の自由度が高まる。その結果、検出精度の向上や、フェイルセーフの強化が容易になる。
なお、本実施形態では、第2座標系設定機構のみにセンサ28を用いているが、これに限られず、例えば第1座標系設定機構及び第2座標系設定機構の両方について、直接的に軸23cの位置(Z座標又は回転角度)を検出する各種センサを用いてもよい。
(他の実施形態)
ロボット本体20内の部品以外、すなわち外部の物体(干渉物)をメカニカルストッパとして利用してもよい。例えば図16に示すように、ストッパ25a、25bに代えて、外部の干渉物30をメカニカルストッパとして利用してもよい。この例では、軸23cがZ1側へ移動すると、Z1側へ移動するほど軸23cが干渉物30に近づき、ついには図17に示すように、軸23cの端面23d(Z1側の頂面)と干渉物30の表面30aとが当接し、それ以上移動できなくなる。すなわち、軸23cのZ1側への運動は干渉物30で規制される。
また、固定された干渉物以外、すなわちロボット本体20内外の可動干渉物をメカニカルストッパとして利用してもよい。例えば図18A及び図18Bに示すように、ストッパ25a、25b又はストッパブロック27a、27bに代えて、可動干渉物40をメカニカルストッパとして利用してもよい。これら図18A、図18Bの例において、可動干渉物40は、ストッパピン26又は軸23cと干渉しない位置に移動することもできるし、ストッパピン26又は軸23cと干渉する位置(図中の二点鎖線参照)に移動することもできる。こうした構成では、第1位置データ、第2位置データを取得する時(図4のステップS11、S12)に可動干渉物40をストッパピン26又は軸23cと干渉する位置に移動させ、第1位置データ、第2位置データを取得した後、可動干渉物40を干渉しない位置に戻すことで、通常運転時においては、ロボット本体20の動作は可動干渉物40によって妨げられない。
上記各実施形態では、運動軸のABSエンコーダからのフィードバックデータと運動軸の機械的な位置とを、複数の関係(基準位置データ、第1相対データ、第2相対データ)により、1対2又は1対3で、関連付けるようにしたが、より多くの相対データを取得するようにして、1対4、1対5など、より多くの関連付けを行ってもよい。
上記各実施形態では、運動軸L3の直線運動及び回転運動の両方について座標系の設定及び再現を行っているが、運動軸L3の直線運動及び回転運動のいずれか一方のみについて、上述の座標系の設定及び再現を行うようにしてもよい。また、より多くの運動軸について、上述の座標系の設定及び再現を行うようにしてもよい。座標系の設定及び再現に係る運動軸は、基本的には任意であり、軸23c以外の物体の運動、さらには直線運動、回転運動以外の運動について、上述の座標系の設定及び再現を行うようにしてもよい。
以下、多関節型ロボットの全ての関節部の運動軸の各運動についてそれぞれ、実施形態1に係る座標系の設定及び再現を行う産業用ロボットの一例について説明する。
図2に示したロボット本体20のベース101には、運動軸L1について回転運動するため、例えば図19に示すように、第3モータ51が内蔵される。また、ロボット本体20の第2アーム200には、運動軸L2について回転運動するため、例えば図20に示すように、第4モータ52が内蔵される。ここで、第3モータ51は、第3エンコーダ51aと、出力軸51bと、を有し、第4モータ52は、第4エンコーダ52aと、出力軸52bと、を有する。また、第3エンコーダ51a及び第4エンコーダ52aの各々は、例えばABSエンコーダである。
各モータの出力軸51b、52bは、それぞれ第1アーム102と連結される。これにより、出力軸51bの回転に応じて第1アーム102がベース101に対して相対的に回転し、出力軸52bの回転に応じて第2アーム200が第1アーム102に対して相対的に回転することになる。
こうしたロボット本体20は、例えば図21に示す制御装置10により制御してもよい。この制御装置10によれば、運動軸L3(図2)の直線運動(第1モータ21)及び回転運動(第2モータ22)だけではなく、運動軸L1及びL2(図2)の回転運動(第3モータ51及び第4モータ52)についても、上述の座標系の設定及び再現を行うことができる。こうした産業用ロボットでは、多関節型ロボットの全ての関節部の運動軸の各運動についてそれぞれ、上述の座標系の設定及び再現を行うことが可能になるため、ロボット全体の保守性が格段に向上する。
産業用ロボット1000は、多関節型ロボットに限定されず任意である。例えば産業用ロボット1000は、直交型ロボット、又は単軸ロボットであってもよい。また、上記各実施形態の制御装置10は、産業用ロボット以外の分野に適用してもよい。
上記各実施形態におけるプログラムは、フレキシブルディスク(磁気記録ディスク等)、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto-Optical disk)等の記録媒体(コンピュータで読み取り可能な記録媒体)に格納されて配布可能にされたものであってもよい。この場合、そのプログラムを所定のコンピュータにインストールすることにより、上述の処理を実行することができる。また、上記各実施形態のプログラムは、通信ネットワーク(例えばインターネットやイントラネット等)上に設けられたサーバの記憶装置(ハードディスク等)に格納され、例えば搬送波に重畳されてローカルコンピュータにダウンロードされるものであっても、又は随時サーバから読み出されてローカルコンピュータで起動実行されるものであってもよい。なお、機能の一部をOS(Operating System)が担う場合には、OSが担う機能以外の部分のみを配布又は転送するようにしてもよい。
制御装置10の各機能を実現する手段は、ソフトウェアに限られず、その一部又は全部を専用のハードウェア(回路等)によって実現するようにしてもよい。
上記各実施形態において、制御装置10及びロボット本体20の構成(構成要素、寸法、形状、又は配置等)は、本発明の趣旨を逸脱しない範囲において任意に変更することができる。
上記各実施形態やその変形例等は、任意に組み合わせることができる。用途等に応じて適切な組み合わせを選ぶことが好ましい。
例えば図21には、多関節型ロボットの全ての関節部の運動軸の各運動についてそれぞれ実施形態1に係る座標系の設定及び再現を行う制御装置を例示しているが、これに限定されない。多関節型ロボットの全ての関節部の運動軸の各運動についてそれぞれ、他の実施形態(実施形態2〜4のいずれか)又は変形例(図16〜図18B)に係る座標系の設定及び再現を行うようにしてもよい。
また、例えば図9の処理(実施形態1)におけるステップS44とステップS45との間に、図13の処理(実施形態3)におけるステップS450を設けてもよい。
また、実施形態2、3において、運動軸を検出位置に変位させるための機構を、実施形態4で示したようなセンサ(例えばオーバートラベル検出器)で構成してもよい。この場合、図13のステップS450(実施形態3)において、オーバートラベル検出器が位置ずれした場合に、座標系の再現に用いる相対データとして、その位置ずれが生じる前に保存された相対データを選択するようにしてもよい。
以上、本発明の実施形態について説明したが、設計上の都合やその他の要因によって必要となる様々な修正や組み合わせは、「請求項」に記載されている発明や「発明を実施するための形態」に記載されている具体例に対応する発明の範囲に含まれると理解されるべきである。