(57)【要約】【課題】ロボットの先端よりも速く移動する部分（例えば関節部）が存在する場合において、ロボットのティーチング時の安全性をより高める。【解決手段】水平多関節ロボットであるロボットを直交座標系で制御してティーチングを行う際に、直交座標系でのロボットの先端の座標に基づいて定まる異なる制限値を用いて、移動速度についての入力指示値が制限値を上回るときに、その制限値で入力指示値を制限した移動速度によってロボットを移動させる。【選択図】図３
2018176341.tif 000002
【特許請求の範囲】
【請求項１】
本体部と、一端側が前記本体部に接続する第１アームと、前記本体部に対して前記第１アームを回動させる第１モータと、一端側が前記第１アームの他端側に接続する第２アームと、前記第１アームに対して前記第２アームを回動させる第２モータとを少なくとも備える、水平多関節ロボットであるロボットを制御する移動速度制御装置であって、
直交座標系で前記ロボットを制御し、前記ロボットのティーチングの際に、前記直交座標系での前記ロボットの前記第２アーム側の先端の座標に基づいて定まる異なる制限値を用いて、前記移動速度についての入力指示値が前記制限値を上回るときに、当該制限値で前記入力指示値を制限した移動速度によって前記ロボットを移動させる制御部を備える、移動速度制御装置。
【請求項２】
前記第１アームの前記一端側を前記原点とし、前記原点を含み前記先端の移動可能範囲に平行な平面が、複数の領域に分割され、前記領域ごとに単一の前記制限値が定められている、請求項１に記載の移動速度制御装置。
【請求項３】
前記領域は、前記原点を中心とする正方形によって画定される領域である、請求項２に記載の移動速度制御装置。
【請求項４】
前記領域は、前記原点を中心とする同心円によって画定される領域である、請求項２に記載の移動速度制御装置。
【請求項５】
前記制御部は、前記ロボットの移動中において現在の移動速度が前記先端の現在の位置に基づく制限値を上回るときに、前記先端の現在の位置に基づく制限値により前記ロボットの移動速度を更新する、請求項１乃至４のいずれか１項に記載の移動速度制御装置。
【請求項６】
前記制御部は、前記ロボットの移動を指示する操作の継続している期間の間、前記期間の開始時に制限した前記移動速度によって前記ロボットを移動させ、前記操作の終了ののち前記操作が再開した場合に、前記再開のときの前記先端の前記座標に基づいて、前記移動速度を制限する、請求項１乃至４のいずれか１項に記載の移動速度制御装置。
【請求項７】
前記移動速度制御装置は、前記ロボットのロボットコントローラに対して接続されるティーチングペンダントとして構成され、
前記ティーチングペンダントは、前記座標に応じた前記制限値を記述するパラメータテーブルを格納する補助記憶部を有し、
前記制御部は、前記パラメータテーブルを参照して得られる前記制限値を使用して前記入力指示値を制限する、請求項１乃至６のいずれか１項に記載の移動速度制御装置。
【請求項８】
前記パラメータテーブルは、前記ロボットコントローラに前記ティーチングペンダントが接続されるときに前記ロボットコントローラから前記補助記憶部に読み込まれる、請求項７に記載のティーチングペンダント。
【請求項９】
本体部と、一端側が前記本体部に接続する第１アームと、前記本体部に対して前記第１アームを回動させる第１モータと、一端側が前記第１アームの他端側に接続する第２アームと、前記第１アームに対して前記第２アームを回動させる第２モータとを少なくとも備える、水平多関節ロボットであるロボットを制御する方法であって、
直交座標系で前記ロボットを制御して前記ロボットのティーチングを行う際に、前記直交座標系での前記ロボットの前記第２アーム側の先端の座標に基づいて定まる異なる制限値を用いて、前記移動速度についての入力指示値が前記制限値を上回るときに、当該制限値で前記入力指示値を制限した移動速度によって前記ロボットを移動させる方法。
【請求項１０】
前記第１アームの前記一端側を前記原点とし、前記原点を含み前記先端の移動可能範囲に平行な平面が複数の領域に分割され、前記領域ごとに単一の前記制限値を定める、請求項９に記載の方法。
【請求項１１】
前記領域は、前記原点を中心とする正方形によって画定される領域である、請求項１０に記載の方法。
【請求項１２】
前記領域は、前記原点を中心とする同心円によって画定される領域である、請求項１０に記載の方法。
【請求項１３】
前記ロボットの移動中において現在の移動速度が前記先端の現在の位置に基づく制限値を上回るときに、前記先端の現在の位置に基づく制限値により前記ロボットの移動速度を更新する、請求項９乃至１２のいずれか１項に記載の方法。
【請求項１４】
前記ロボットの移動を指示する操作の継続している期間の間、前記期間の開始時に制限した前記移動速度によって前記ロボットを移動させ、前記操作の終了ののち前記操作が再開した場合に、前記再開のときの前記先端の前記座標に基づいて、前記移動速度を制限する、請求項９乃至１２のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用ロボットをティーチング（教示）する際にロボットの移動速度を制限する移動速度制御装置及び方法に関する。
【背景技術】
【０００２】
ティーチングプレイバック形のロボットでは、ロボットに実行させる動作を予めロボットにティーチングする必要がある。水平多関節ロボットに関して作業位置のティーチングを行う場合には、直交座標系（ＸＹＺ座標系）で操作を行い、ロボットの移動速度は作業点（ティーチングの対象となる点であって一般にアームの先端）の線速度で指定する。通常の動作時であればロボットの動作空間に人が立ち入ることはなく、作業者に危害が及ぶこともないが、ロボットに対してティーチングを行っているときにはティーチングを行う作業者（教示者ともいう）がロボットに接近することとなり、ロボットの動きによって教示者に危害が及ぶ恐れがある。特に、チャンバーなどと呼ばれる狭い空間内で物品を搬送するいわゆる搬送ロボットのティーチングでは、教示者がそのチャンバー内に入ってティーチングを行うので、ロボットが教示者に衝突するおそれが高くなる。このような危害のおそれをなくすために、ティーチング時のロボットの先端の移動速度を所定の上限速度（例えば２５０ｍｍ／秒）以下にすることが要求されている。
【０００３】
特許文献１は、教示者の位置を検出する検知装置を設け、ロボットに教示者が接近したときにロボットの動作速度を自動的に低下させることを開示している。特許文献２は、ロボットアームの先端部の加速度及び速度を検出し、そのいずれかが所定値よりも大きくなった場合にロボットを非常停止させることを開示している。特許文献３は、ティーチング時にロボットの先端の移動速度を所定の上限速度以下に制限しつつティーチング装置からの操作指令で指令された速度にできるだけ近い速度で移動させるように、各軸を駆動するための指令速度を計算する方法を開示している。特許文献４は、ティーチング時の安全確保に関するものではないが、ロボットの各軸に対して定格速度が定められているときに、ティーチングで与えられたロボット先端の速度データに基づいて各軸の速度を計算し、いずれかの軸の定格速度を超えるときに速度データを修正することを開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００４／００９３０３号
【特許文献２】特開平６−９１５８７号公報
【特許文献３】特開平９−１９３０６０号公報
【特許文献４】特開平５−２３３０５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されるように教示者の位置を検出する方法は、検知装置を必要とするので大掛かりになりやすく、また、コストも上昇しやすい。教示者の位置を検出する検知装置を設けないで教示者の安全を確保しようとする方法は、基本的には、ロボットの先端の速度を所定の上限速度以下とするものである。しかしながら、例えば、２本のアームを連結してこれらのアームがいずれも水平面（ＸＹ平面）内で移動できるようにした水平多関節ロボットを考えると、ロボットの先端よりもアーム間の連結位置（すなわち関節）の方が高速で移動することがある。関節の速度を逐一計算してロボットの移動速度を制限することも可能であるが、演算処理の負担が大きい。したがって、高速で移動する可能性がある関節を考慮して、簡単な機構でティーチング時のロボットの移動速度を制限できることが望まれる。
【０００６】
本発明の目的は、ロボットの先端よりも速く移動する部分が存在する場合において、簡単な機構でそのロボットのティーチング時の安全性をより高めることができる移動速度制御装置及び方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の移動速度制御装置は、本体部と、一端側が本体部に接続する第１アームと、本体部に対して第１アームを回動させる第１モータと、一端側が第１アームの他端側に接続する第２アームと、第１アームに対して第２アームを回動させる第２モータとを少なくとも備える水平多関節ロボットであるロボットを制御する移動速度制御装置であって、直交座標系でロボットを制御し、水平多関節ロボットのティーチングの際に、直交座標系でのロボットの第２アーム側の先端の座標に基づいて定まる異なる制限値を用いて、移動速度についての入力指示値が制限値を上回るときに、その制限値で入力指示値を制限した移動速度によってロボットを移動させる制御部を備える。
【０００８】
本発明の方法は、本体部と、一端側が本体部に接続する第１アームと、本体部に対して第１アームを回動させる第１モータと、一端側が第１アームの他端側に接続する第２アームと、第１アームに対して第２アームを回動させる第２モータとを少なくとも備える水平多関節ロボットであるロボットを制御する方法であって、直交座標系で水平多関節ロボットを制御して水平多関節ロボットのティーチングを行う際に、直交座標系でのロボットの第２アーム側の先端の座標に基づいて定まる異なる制限値を用いて、移動速度についての入力指示値が制限値を上回るときに、その制限値で入力指示値を制限した移動速度によってロボットを移動させる。
【０００９】
直交座標系による制御で水平多関節ロボットの先端を移動させた場合、２つのアームの連結部の移動軌跡が大きくなってこの連結部（ロボットの関節部または肘）が高速で動くことがある。この動きは教示者にとっては予期しない動きであり、教示者が回避できないおそれがあるが、直交座標系での先端の座標に基づいて定まる制限値によって移動速度を制限することによって、ロボットに近接する教示者に対する安全性を高めることができる。制限値は、例えば、先端と直交座標系の原点との距離が短いほど小さくなるように定めることができる。あるいは、例えば、先端の座標を（ｘ，ｙ）として、｜ｘ｜と｜ｙ｜のうちの大きい方が小さいほど制限値が小さくなるように定めることができる。
【００１０】
本発明では、第１アームの一端側を原点とし、原点を含み先端の移動可能範囲に平行な平面を複数の領域に分割し、領域ごとに単一の制限値を定めるようにすることができる。このように制限値を定めることにより、各関節ごとの角速度を演算して移動速度の制限を行う場合と比較して、演算負荷を小さくすることができる。領域の区切り方としては、原点を含み先端の移動可能範囲に平行な平面における原点を中心とする正方形によって画定される領域とすることができる。このように領域を設定した場合には、先端の位置のＸＹ座標が（ｘ，ｙ）であるとして、ｘ及びｙに対する比較式あるいはｘ及びｙの絶対値の和を求める式を適用するだけで制限値を決定でき、演算負荷が軽くて済む。領域の区切り方の別のものとして、原点を中心とする同心円によって画定される領域とすることもできる。この場合は、２乗演算を必要とするが、過度に移動速度を制限することがなくなる。
【００１１】
本発明では、ロボットの移動中において現在の移動速度が先端の現在の位置に基づく制限値を上回るときに、先端の現在の位置に基づく制限値によりロボットの移動速度を更新するようにしてもよい。このように構成することにより、例えばロボットの先端が原点に近づくように移動する場合に、安全性をさらに向上させることができる。また本発明では、ロボットの移動を指示する操作の継続している期間の間、この期間の開始時に制限した移動速度によってロボットを移動させ、操作の終了ののち操作が再開した場合に、再開のときの先端の座標に基づいて、移動速度を制限するようにしてもよい。この構成では、移動を指示する操作の再開ごとにそのときの先端の位置に応じて移動速度が制限されるので、先端位置を逐次取得する場合に比べて演算負荷を小さくしつつ、実質的に安全性をさらに向上させることができる。ここでロボットの移動を指示する操作は、例えばティーチングペンダントに設けられた押しボタンを押下する操作であって、押しボタンの押下中はロボットが移動を継続し、押しボタンから指が離されたらロボットの移動を停止させるものである。
【００１２】
本発明では、ロボットのロボットコントローラに対して接続されるティーチングペンダントとして移動速度制御装置を構成し、先端の座標に応じた制限値を記述するパラメータテーブルを格納する補助記憶部をティーチングペンダントに設け、パラメータテーブルを参照して得られる制限値を使用して入力指示値を制限するようにしてもよい。このように構成することによって、ロボットコントローラには処理負荷を与えずに処理負荷の分散を図ることができる。また、ロボットコントローラにティーチングペンダントが接続されるときに、ロボットコントローラから補助記憶部にパラメータテーブルが読み込まれるようにしてもよい。ティーチングペンダントは小型装置であり他ロボットとの共通化が可能であるので、ロボットコントローラからティーチングペンダントにパラメータテーブルが読み込まれるようにすることによって、単一のティーチングペンダントを用いて多機種のロボットのティーチングをより安全性を高めて実施することが可能になる。
【発明の効果】
【００１３】
本発明によれば、ロボットの先端よりも速く移動する部分が存在する場合において、簡単な機構によってそのロボットをティーチングするときの安全性がより高まる。
【図面の簡単な説明】
【００１４】
【図１】本発明の移動速度制限方法が適用されるロボットの構成の一例を示す図である。
【図２】ロボットコントローラ及びティーチングペンダントの構成を示すブロック図である。
【図３】ロボットの移動速度を制限する処理を説明するフローチャートである。
【図４】パラメータテーブルの内容の一例を示す図である。
【図５】先端の位置と制限後の移動速度との関係を説明する図である。
【図６】ロボットの移動速度を制限する処理の別の例を説明するフローチャートである。
【図７】ロボットの移動動作の一例を説明する図である。
【図８】ロボットの移動動作の別の例を説明する図である。
【発明を実施するための形態】
【００１５】
次に、本発明の実施の形態について、図面を参照して説明する。本発明では、直交座標系（ＸＹＺ座標系）で操作して水平多関節ロボットのティーチングを行うときに、ロボットの先端とロボットに予め設定された原点Ｏとの位置関係に基づき、ロボットの先端が原点Ｏに近いときにはロボットを低速で動作させ、先端が原点Ｏから離れているときはロボットが高速で動作できるように、ロボットの先端の位置（ＸＹ座標）によりティーチング時のロボットの速度を制限する。
【００１６】
図１は、本発明の実施の一形態において、本発明に基づく移動速度制御方法が適用されるロボットの一例を示すものであって、（ａ）はロボット１０の可動部分を示す斜視図であり、（ｂ）はロボット１０の機構図である。ここでは、図において矢印で示すように直交座標系（ＸＹＺ座標系）が定められているものとする。このロボット１０は、水平多関節ロボットであり、連結部１４を介して相互に接続した第１アーム１３及び第２アーム１５からなるアーム部を備えている。第１アーム１３の基端側が連結部１２を介して本体部１１に取り付けられており、第１アーム１３は、連結部１２を中心としてＸＹ平面内で回動可能である。また第２アーム１５は、その基端側が連結部１４を介して第１アームの先端側に接続しており、連結部１４を中心としてＸＹ平面内で回動可能である。さらに、第２アーム１５の先端側には、連結部１６を介してハンド１７が設けられている。連結部１２，１４，１６は、いずれも例えば円筒ジョイント、モータ及び減速器などからなっている。ロボット１０は、物品の搬送などに用いられるものであって、ハンド１７は、リンクなどにより、あるいはモータ制御によって、ＸＹ平面内で常に同一の方向を向くようにされている。すなわちハンド１７は、ＸＹ平面内では平行移動のみを行う。ハンド１７の移動可能範囲はＸＹ平面か、ＸＹ平面に平行な平面である。以下の説明では、第１アーム１３や第２アーム１５のＺ方向での厚さを無視し、ハンド１７の移動可能範囲はＸＹ平面であるものとする。
【００１７】
ロボット１０には、さらに、ロボット１０内に設けられているモータ２２，２４，２６，…を駆動することによりロボットに所定の動きを行わせるロボットコントローラ３０が設けられている。ここでモータ２２，２４，２６は、それぞれ、例えば、連結部１２，１４，１６に内蔵されてアーム１３，１５やハンド１７の回動のために使用されるモータである。
【００１８】
ロボットコントローラ３０には、ロボット１０のティーチングを行うときに教示者によって操作されるティーチングペンダント４０が、ケーブル５０を介して接続している。ロボットコントローラ３０は、モータ２２，２４，２６，…を駆動するドライバなどを備えるロボット駆動部３１と、ロボット１０に所定の動きを実行させるために必要な計算を行う演算部３２と、フラッシュメモリなどからなる補助記憶部３３と、ケーブル５０を介したティーチングペンダント４０との通信を行う通信部３４と、を有している。補助記憶部３３は、ロボット１０の動作パラメータなどをパラメータファイルとして格納し、また、ティーチング結果などを格納する。
【００１９】
ティーチングペンダント４０は、タッチパネル、ボタン、スイッチなどからなり教示者からの指令の入力が行われる入力部４１と、液晶ディスプレイなどからなり教示者に対して情報の表示を行う表示部４２と、ティーチングに必要な演算とティーチング時にロボットの制御を行う制御部４３と、フラッシュメモリなどからなる補助記憶部４４と、ケーブル５０を介したロボットコントローラ３０との通信を行う通信部３４と、を有している。補助記憶部４４は、ロボット１０の仕様や動作条件に関するパラメータファイルを格納するものである。ティーチングペンダント４０自体は、異なる種類のロボットに共通に使用できるものであって、ティーチング対象のロボットに接続されたときにそのロボットに関する上述のパラメータファイルをそのロボットから読み込んで、補助記憶部４４に格納する。本実施形態では、ロボット１０の先端の位置に基づいてティーチング実行時のロボットの移動速度の制限を行うが、どのように移動速度を制限するかはロボットの仕様などに応じて異なる。そこで、移動速度の制限のためのパラメータファイルについても、予めロボットごとにそのロボットのロボットコントローラ３０の補助記憶部３３に格納しておき、ティーチングペンダント４０を接続したときにロボットコントローラ３０の補助記憶部３３からティーチングペンダント４０の補助記憶部４４に格納されるようにすることができる。本実施形態では、移動速度の制限の処理自体はティーチングペンダント４０で実行し、制限後の移動速度指令がティーチングペンダント４０からロボットコントローラ３０に送られるので、ティーチングペンダント４０が本発明に基づく移動速度制限装置に該当することになる。
【００２０】
このロボット１０のティーチングでは、ハンド１７をティーチングの対象としてハンド１７を目標位置に移動させる。上述したようにＸＹ平面内ではハンド１７は平行移動するのみであるから、直交座標系での移動速度は、ハンド１７の全体を通して同じである。そこで以下の説明では、ハンド１７と第２アーム１５との間の連結部１４の位置をロボット１０の第２アーム１５の先端、すなわちアーム部の先端として扱い、この先端を作業点とするとともに、直交座標系でのこの先端の位置すなわち先端の座標値に基づいてティーチング時のロボット１０の移動速度を制限する。図１に示したロボット１０では、ロボット１０の作業点の位置は、第１アーム１３及び第２アーム１５の２軸の回転により決まる。ここで直交座標系に基づきＸＹ平面内である一定距離だけ作業点を移動させたとすると、各アーム１３，１５の回転角度は、作業点がロボット１０の作業エリアの外周付近にあるか中心付近にあるかによって大きく異なる。第１アーム１３と第２アーム１５の間の連結部１４をアーム部における肘あるいは関節部と考えると、肘部分の動きは、作業エリアの中心付近では、先端部分の移動距離が短くかつその移動速度は遅くても、教示者の予想以上に大きくかつ速く回転することがある。肘の部分の回転は本体部１１と第１アーム１３との連結部１２を中心とするものであるから、以下の説明では、ＸＹ平面でのこの連結部１２の位置を原点Ｏとする。
【００２１】
ティーチングペンダント４０の制御部４３は、入力部４１への入力に基づいて直交座標系により作業点である第２アーム１５の先端の位置の制御を行う。このとき制御部４３は、ティーチング時においてこのように肘が大きくかつ早く回転することを防ぐために、ＸＹ座標系での第２アーム１５の先端の座標に基づいて定まる異なる上限値でロボット１０を制御する。この上限値のことを制限値と呼ぶ。図３は、このような処理の具体例の手順を示している。まず、ステップ１０１において、入力部４１に対して教示者によりロボットの移動速度を設定するために、移動速度の入力がなされる。例えば２５０ｍｍ／秒を１００％として、１〜１００％の範囲で教示者が数値を入力することにより、移動速度の入力が行われる。教示者によって入力された移動速度を入力指示値Ｖinとする。制御部４３は、ステップ１０２により、第２アーム１５の先端の位置の座標値を取得し、ステップ１０３において、取得した位置に対応する移動速度の制限値Ｖlimを取得する。制限値Ｖlimは、例えば、ロボットコントローラ３０からティーチングペンダント４０の補助記憶部４４に事前に読み込まれたパラメータテーブルに基づいて決定してもよいし、あるいは、演算によって求めてもよい。第２アーム１５の先端の位置に対応した制限値Ｖlimの具体例については後述するが、要は、第２アームの先端が原点Ｏに近い場合には、制限値Ｖlimが小さくなるようにする、というものである。
【００２２】
制御部４３は、次にステップ１０４において、入力指示値Ｖinが制限値Ｖlimよりも大きいかどうかを判定する。入力指示値Ｖinが制限値Ｖlimを上回っている（Ｖin＞Ｖlim）である場合には、ステップ１０５において、制限値Ｖlimを速度指令値Ｖcmdとし、それ以外の場合には、ステップ１０６において、入力指示値Ｖinをそのまま速度指令値Ｖcmdとする。ステップ１０５または１０６により速度指令値Ｖcmdが決まれば、制御部４３は、ステップ１１０において、この速度指令値Ｖcmdによりロボットを駆動するように、ロボットコントローラ３０に対して速度指令を送る。このようにして、ロボット１０は、入力指示値Ｖinが入力された時点での第２アーム１５の先端の位置に応じて定まる制限値Ｖlimよりも移動速度についての入力指示値Ｖinが大きい場合には、移動速度が制限値Ｖlimに制限されて動作することになる。
【００２３】
ティーチング時において動作ボタンなどの特定のスイッチへの操作がなされている期間中のみロボット１０が移動するようなティーチングペンダント４０を用いる場合には、上述の処理を実行すると、動作ボタンが操作されたときにその時点での制限値に基づいて移動を開始し、動作ボタンが操作されている間はその速度を維持する。ここで動作ボタンから指を離すと非動作状態となるから、非動作状態となったのちに、再度、動作ボタンが操作された場合には、再操作時の先端の位置に応じた制限値で制限された移動速度でロボットが移動を開始するようにすることができる。このような操作形態とすることにより、ロボット１０の先端の位置に応じた移動速度にできるので、ティーチング効率を向上させることができる。また、ロボット１０の先端が原点Ｏに近づく向きに移動するときは、このように間欠動作を行うことにより、原点に近づくほど移動速度がより制限されるので、安全性がより高まる。ここでは、再操作時の先端の位置に応じた制限値となるが、後述するように、動作ボタンが操作されている間は先端の現在の位置をリアルタイムで取得し、取得した位置に応じて移動速度を制限するようにしてもよい。
【００２４】
次に、第２アーム１５の先端の位置に対応した制限値Ｖlimの定め方について説明する。図４は、制限値Ｖlimを決定するために使用されるパラメータテーブルの内容の一例を示している。ここで、第２アーム１５の先端が原点Ｏからどれだけ遠ざかっているかを示す指標Ｌを導入する。指標Ｌは、第２アーム１５の先端が原点Ｏの近くにあるために予想外に早く動くことを防ぐために導入されるものであり、全体としては先端が原点Ｏの近くあるときには小さな値となるように定められる。ただし、必ずしも実際の距離（ユークリッド距離）での大小がそのまま指標Ｌの大小となっていなくてもよい。図４に示すようなパラメータテーブルは、ＸＹ平面を複数の領域に分割し、領域ごとに、その領域が原点からどれだけ遠ざかっているかに応じた単一の制限値Ｖlimを規定する場合に用いられるものである。ここに示した例では、指標Ｌを、０以上Ｄ１未満、Ｄ１以上Ｄ２未満、Ｄ２以上Ｄ３未満、Ｄ３以上Ｄ４未満、及び、Ｄ４以上の５段階に区分し、これらの段階に対してそれぞれ制限値Ｖ１、Ｖ２、Ｖ３、Ｖ４及びＶ５を割り当てている。ここでは、Ｖ１＜Ｖ２＜Ｖ３＜Ｖ４＜Ｖ５として、指標Ｌが小さいほど制限値Ｖlimが小さくなるようにしている。そして指標Ｌに基づいてこのパラメータテーブルを検索することにより、制限値Ｖlimを得ることができる。
【００２５】
図５は、入力指示値Ｖinの入力時点での先端の位置と、制限値Ｖlimによって制限された移動速度の上限（すなわち制限値Ｖlim）との関係を示す図である。ＸＹ平面での第２アーム１５の先端の位置の座標を（ｘ，ｙ）とする。図５（ａ）では、ＸＹ平面における第２アーム１５の先端の位置のＸ座標の絶対値｜ｘ｜及びＹ座標の絶対値｜ｙ｜のうちの大きいものを指標Ｌとした場合を示している。制限値Ｖlimごとの領域は、原点を中心とし、Ｘ軸及びＹ軸のそれぞれに平行な辺を有する正方形によって画定されている。図示されたものでは、先端の位置がＰ１であれば、制限値はＶ３となり、先端の位置がＰ２であれば制限値はＶ４となる。図５（ａ）に示したものは、先端位置のＸＹ座標を求めて数回の比較演算だけを行えば指標Ｌが導出されるので、指標Ｌを求めるための演算量が小さく、高速に演算を行える、という利点がある。一方、図５（ｂ）に示したものは、ＸＹ平面における第２アーム１５の先端位置と原点Ｏとの通常の距離（ユークリッド距離）を指標Ｌ（すなわちＬ2＝ｘ2＋ｙ2）として、この指標Ｌごとにゾーンを分けている。言い換えれば、ＸＹ平面における同心円によって画定される領域が、制限値Ｖlimごとの領域の領域となっている。図５（ｂ）におけるＰ１，Ｐ２は、図５（ａ）でのＰ１，Ｐ２とＸＹ平面においてそれぞれ同じ位置にあるが、図５（ｂ）に示す場合では、先端の位置がＰ１であれば図５（ａ）の場合と同じく制限値はＶ３となり、先端の位置がＰ２であれば図５（ａ）の場合よりも制限値が大きくなってＶ５となる。距離を指標Ｌとする場合には、先端位置のＸ座標及びＹ座標のそれぞれについての二乗演算とそれらの和を求める演算が比較演算のほかに必要となり、演算量が大きくなるが、実際の距離に基づいているので、位置Ｐ２に関してここで示したように、過度に移動速度を制限することがない、という利点がある。図５（ａ）に示したものの変形例として、Ｌ＝｜ｘ｜＋｜ｙ｜とするものがある。この場合、指標Ｌごとの領域は、Ｘ軸及びＹ軸を対角線とする正方形によって画定される領域となる。
【００２６】
図５に示したものは、ＸＹ平面をいくつかの領域に分割し、第２アーム１５の先端の位置がどの領域に応じて存在するかに基づいて制限値Ｖlimを定めているが、指標Ｌに応じた制限値Ｖlimの定め方はこれに限られるものではない。例えば、指標Ｌに応じて単調に増加する関数（一例として指標Ｌに比例する一次関数）によって制限値Ｖlimを定めてもよい。ここでの指標Ｌは、通常の距離であっても、先端位置のＸ座標の絶対値またはＹ座標の絶対値のうちの大きい方であってもよい。
【００２７】
図３にフローチャートを示した処理では、入力指示値Ｖinが入力された時点での第２アーム１５の先端が原点Ｏからどれだけ遠ざかっているかの指標Ｌに基づいてロボット１０の移動速度を制限している。ここで、図５（ａ）での位置Ｐ３から位置Ｐ４への移動のように、アーム部の先端が原点Ｏから遠ざかる向きにロボット１０を移動させる場合を考える。このとき、移動速度は位置Ｐ３での制限値であるＶ３によって制限されており、ロボット１０は制限値Ｖ３以下の速度で移動することになる。しかしながら、原点Ｏから遠ざかるにつれて制限値Ｖlimは大きくなっているので、入力指示値Ｖinの範囲内においてロボット１０の移動速度を大きくして安全上の問題は生じにくい。また、図５（ｂ）での位置Ｐ５から位置Ｐ６への移動のように原点Ｏに近づく移動の場合には、位置Ｐ５に対応する制限値Ｖ４で移動させた場合に、位置Ｐ６の近傍では肘の移動速度が過大なものとなる可能性がある。そこで、第２アーム１５の先端の現在の位置に応じてロボット１０の移動速度を制限する制御を刻々と変化させることが考えられる。図６は、先端の現在位置に応じて移動速度の制限の制御を随時変化させる場合の処理を示している。
【００２８】
図６に示す処理では、図３に示すものと同様に、ステップ１０１〜１０６，１１０の処理が行われる。ステップ１１０の実行後、制御部４３は、ステップ１１１において先端の現在位置を取得し、ステップ１１２において取得した現在位置に対応する制限値Ｖlimを取得する。現在位置とは、入力指示値Ｖinの入力時点ではなく、ロボット１０の移動中における現時点での先端の位置を意味する。制限値Ｖlimの取得方法は図３を用いて説明したものと同様である。次にステップ１１３において、制御部４３は、入力指示値Ｖinがその時点での速度指令値Ｖcmdより大きくかつ現在位置に対応する制限値Ｖlim以下である（すなわちＶlim≧Ｖin＞Ｖcmdである）かどうかを判定する。Ｖlim≧Ｖin＞Ｖcmdである場合は、移動速度を入力指示値Ｖinまで上昇することが可能である場合であるから、制御部４３は、ステップ１１４において、教示者に対して表示部４２を介して速度を上昇させるかどうかの問い合わせを行い、ステップ１１５において、教示者から速度上昇の指示があったかどうかを判定する。速度上昇の指示は、教示者がティーチングペンダント４０に設けられた例えばボタンを操作することによって入力される。ステップ１１５において速度上昇の指示があったと判断したときは、制御部４３は、ステップ１１６において、ステップ１０１で既に入力されている入力指示値Ｖinを速度指令値Ｖcmdとし、その後、処理はステップ１１９に進む。これに対し、ステップ１１５において速度上昇の指示がなかったときは、速度指令値Ｖcmdを変更することなく処理はステップ１１９に進む。
【００２９】
ステップ１１３においてＶlim≧Ｖin＞Ｖcmdが成り立っていない場合には、制御部４３は、ステップ１１７において、速度指令値Ｖcmdが制限値Ｖlimを上回っているかを判定し、上回っている場合には、ステップ１１８において、制限値Ｖlimを速度指令値Ｖcmdとすることにより移動速度を制限し、移動速度の制限ののち、処理はステップ１１９に移行する。ステップ１１７においてＶcmd＞Ｖlimでない場合には、速度指令値Ｖcmdを変更することなく処理はステップ１１９に移行する。ステップ１１９では、制御部４３は、予め定めた終了条件、例えば、ロボット１０が指定された位置に移動したなどの条件が満たされたかどうかを判定し、終了条件が満たされていない場合にはステップ１１０に戻ってその時点での速度指令値Ｖcmdによってロボット１０を駆動し、終了条件が満たされている場合には、ステップ１２０においてロボットの駆動を終了させる。ステップ１１０に戻ったときに、それまでの速度指令値Ｖcmdとステップ１１６またはステップ１１８で定めた速度指令値Ｖcmdが大きく異なることがある。その場合には、移動速度がなだらかに変化するように制御を行ってもよい。図６に示す処理においても、ロボット１０の移動速度は、ロボット１０の先端の位置によって定まる指標Ｌに基づいて定まる制限値Ｖlimによって制限されるが、特に、先端の現在位置に応じて随時変化する制限値Ｖlimによって制限される。
【００３０】
図７及び図８は、いずれも、図１に示したロボットを想定してロボット１０の先端を−Ｙ方向に４００ｍｍだけ動かしたときの各アーム１３，１５及びハンド１７の動きをシミュレーションした結果を示している。これらの図では、Ｙ軸方向を基準とし反時計回りに向かう角度を正として原点から見たアーム部の先端の方位角をθ１とし、第１アーム１３及び第２アーム１５がなす角の半分をθ２としている。図７は、ロボット１０の肘がある程度閉じた状態（言い換えれば、先端が原点Ｏに近い状態）であって、初期位置においてアーム部１０の先端のＸＹ座標が（４７０，２００）である場合の動きを示している。図７（ａ）は初期位置での状態を示し、図７（ｂ）はＹ軸方向に−２００ｍｍだけ移動させた途中の状態を示し、図７（ｃ）は終状態、すなわち先端のＸＹ座標が（４７０，−２００）となった状態を示している。これに対し図８は、ロボット１０の肘がある程度開いた状態（先端が原点Ｏから遠い状態）であって、先端の初期位置のＸＹ座標が（１８００，２００）である場合の動きを示している。図８（ａ）は初期位置での状態を示し、図８（ｂ）はＹ軸方向に−２００ｍｍだけ移動させた途中の状態を示し、図８（ｃ）は終状態、すなわち先端のＸＹ座標が（１８００，−２００）となった状態を示している。図７に示したものでは、ロボット１０の先端の移動よりも肘（第１アーム１３と第２アーム１５との結合部１３）の移動の方が大きく、このことは、先端の速度を規制しただけでは肘部の動きの速さを十分に抑制できないことになる。これに対し、図８に示したものでは、先端の動きに比べて肘の動きは小さい。図７及び図８から、ティーチングを行うときに、ロボットの先端が原点Ｏに近いときにはロボットを低速で動作させ、先端が原点Ｏから離れているときはロボットが高速で動作できるように移動速度を制限することによって、教示者にとって予想外の速さでロボットの肘の部分が動くことを防止できることが分かる。
【００３１】
以上説明した実施形態では、ティーチングペンダント４０を移動速度制限装置として機能させることにより、制限値に基づいて移動速度を制限するための処理をロボットコントローラに実行させる必要がなくなるので、ロボットコントローラに演算負荷をかけるおそれがない。またこの移動速度制限はティーチング時のみに必要となるものであるので、移動速度制限のための機能をロボットコントローラに組み込む必要もない。移動速度制限に必要なパラメータテーブル自体はロボットコントローラに予め格納し、ティーチングペンダント４０の接続時にそのパラメータテーブルがティーチングペンダントに読み込まれるようにすることにより、本発明に基づく移動速度の制限を、多種のロボットに対して同一のティーチングペンダント４０を用いて実行することが可能になる。あるいは、ロボットの機種ごとのパラメータテーブルを予めティーチングペンダント４０に格納しておき、教示を行うときに機種に応じてパラメータテーブルを選択するようにしてもよい。
【００３２】
本発明が適用できるロボットは、図１に示した第１アーム１３及び第２アーム１５を有する水平多関節ロボットに限定されるものではない。例えば、本体部１１と連結部１２との間に伸縮ジョイントを設けて第１アーム１３からハンド１７に至るまでの部分をそのままの姿勢でＺ軸方向に上下動できるようにしたロボットや、ＸＹ平面内で回動する第３アームをさらに第２アーム１５の先端に設けたロボット、ハンド１７においてＺ軸方向に移動する工具を備えたロボットなどにも本発明を適用することができる。Ｚ方向での動きのあるロボットに本発明を適用する場合には、例えば、ＸＹＺ空間をいくつかの小空間に分割し、ロボットの先端がどの小空間にあるかに応じて移動速度を制限するようにしてもよい。
【符号の説明】
【００３３】
１０…ロボット、１１…本体部、１２，１４，１６…連結部、１３，１５…アーム、１７…ハンド、２２，２４，２６…モータ、３０…ロボットコントローラ、３１…ロボット駆動部、３２…演算部、３３，４４…補助記憶部、４０…ティーチングペンダント、４３…制御部、５０…ケーブル。
【図１】
2018176341.tif 000003
【図２】
2018176341.tif 000004
【図３】
2018176341.tif 000005
【図４】
2018176341.tif 000006
【図５】
2018176341.tif 000007
【図６】
2018176341.tif 000008
【図７】
2018176341.tif 000009
【図８】
2018176341.tif 000010