(58)【調査した分野】(Int.Cl.,DB名)
前記速度算出手段は、各サーボモータの現在の角度及び各回転部の大きさに基づいて、各監視部の現在の位置を算出し、前記角度算出手段により算出された各サーボモータの前記動作周期後の角度及び各回転部の大きさに基づいて、各監視部の前記動作周期後の位置を算出し、各監視部の前記現在の位置と前記動作周期後の位置との距離を前記動作周期で割って前記速度を算出する請求項2に記載のロボットの制御装置。
各回転部を回転させる際に回転中心となる前記関節から最も離れた部分を、各回転部の前記監視部として設定する請求項1〜3のいずれか1項に記載のロボットの制御装置。
前記角速度低下手段は、前記角速度算出手段により算出された各サーボモータの前記角速度を前記比の値で割ることにより、各サーボモータの前記角速度を低下させる請求項1〜4のいずれか1項に記載のロボットの制御装置。
前記角速度低下手段により、前記仮想の動作周期を前記比の値で割って前記仮想の動作周期を短縮することが所定回数よりも多く繰り返された場合に、前記駆動手段による各サーボモータの駆動を禁止する駆動禁止手段を備える請求項6に記載のロボットの制御装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、ロボットの制御点として設定されるアームの先端部の移動速度を、基準速度以下となるように制御したとしても、アームの移動速度を十分に抑制することができない場合があることに本願発明者は着目した。
【0005】
本発明は、こうした実情に鑑みてなされたものであり、アームの移動速度を十分に抑制することのできるロボットの制御装置及び制御方法を提供することを主たる目的とするものである。
【課題を解決するための手段】
【0006】
第1の手段は、複数の回転部と、前記回転部を互いに回転可能に連結する関節と、各回転部を駆動するサーボモータと、を含むアームを備えるロボット、の制御装置であって、動作周期毎に各サーボモータを駆動させる角速度を算出する角速度算出手段と、各回転部に設定された監視部の速度を算出する速度算出手段と、前記速度算出手段により算出された各監視部の前記速度が基準速度以下となるように、各サーボモータの前記角速度を低下させる角速度低下手段と、前記角速度低下手段により低下させられた各サーボモータの前記角速度により、各サーボモータを駆動させる駆動手段と、を備えることを特徴とする。
【0007】
上記構成によれば、ロボットのアームは複数の回転部を含んでおり、回転部は関節により互いに回転可能に連結されている。そして、動作周期毎に各サーボモータを駆動させる角速度が算出され、その角速度で各サーボモータが駆動されることにより各回転部が駆動される。
【0008】
ここで、ロボットの制御点として設定されるアームの先端部の移動速度を、基準速度以下となるように制御したとしても、アーム(ロボット)の姿勢によっては、アームにおける制御点以外の部分の移動速度が基準速度よりも高くなる場合があることに本願発明者は着目した。
【0009】
この点、各回転部に設定された監視部の速度が算出される。そして、算出された各監視部の速度が基準速度以下となるように、各サーボモータの角速度が低下させられる。例えば、各回転部を回転させる際に回転中心となる関節から最も離れた部分が、各回転部の監視部として設定される。そして、低下させられた各サーボモータの角速度により、各サーボモータが駆動される。その結果、ロボットの制御点のみならず、各回転部に設定された監視部の速度を基準速度以下にすることができ、アームの移動速度を十分に抑制することができる。
【0010】
第2の手段では、前記動作周期後の各サーボモータの角度を算出する角度算出手段を備え、前記速度算出手段は、各サーボモータの現在の角度、前記角度算出手段により算出された各サーボモータの前記動作周期後の角度、及び各回転部の大きさに基づいて、各回転部に設定された監視部の速度を算出する。
【0011】
上記構成によれば、動作周期後の各サーボモータの角度が算出される。そして、各サーボモータの現在の角度、算出された各サーボモータの動作周期後の角度、及び各回転部の大きさに基づいて、各回転部に設定された監視部の速度を算出することができる。
【0012】
具体的には、第3の手段のように、前記速度算出手段は、各サーボモータの現在の角度及び各回転部の大きさに基づいて、各監視部の現在の位置を算出し、前記角度算出手段により算出された各サーボモータの前記動作周期後の角度及び各回転部の大きさに基づいて、各監視部の前記動作周期後の位置を算出し、各監視部の前記現在の位置と前記動作周期後の位置との距離を前記動作周期で割って前記速度を算出するといった構成を採用することができる。
【0013】
第4の手段では、各回転部を回転させる際に回転中心となる前記関節から最も離れた部分を、各回転部の前記監視部として設定する。
【0014】
上記構成によれば、各回転部を回転させる際に回転中心となる関節から最も離れた部分が、各回転部の監視部として設定される。このため、各回転部において、最も速度が高くなる可能性の高い部分を監視部に設定することができ、アームの移動速度を十分に抑制することができる。
【0015】
第5の手段では、前記角速度低下手段は、前記速度算出手段により算出された各監視部の前記速度のうち最大の速度と前記基準速度との比の値に基づいて、各サーボモータの前記角速度を低下させる。
【0016】
上記構成によれば、算出された各監視部の速度のうち最大の速度と基準速度との比の値に基づいて、各サーボモータの角速度が低下させられる。このため、速度が最大となる監視部の速度を基準速度以下とするように、各サーボモータの角速度を適切に低下させることができる。なお、最大の速度と基準速度との比の値とは、最大の速度を基準速度で割った値である(比の値=最大の速度/基準速度)。
【0017】
第6の手段では、前記角速度低下手段は、前記角速度算出手段により算出された各サーボモータの前記角速度を前記比の値で割ることにより、各サーボモータの前記角速度を低下させる。
【0018】
上記構成によれば、算出された各サーボモータの角速度を上記比の値で割ることにより、各サーボモータの角速度が低下させられるため、各サーボモータの角速度を適切かつ容易に低下させることができる。
【0019】
第7の手段では、仮想の動作周期後の各サーボモータの仮想の角度を算出する仮想角度算出手段と、各サーボモータの現在の角度、前記仮想角度算出手段により算出された各サーボモータの前記仮想の動作周期後の仮想の角度、及び各回転部の大きさに基づいて、各回転部に設定された前記監視部の仮想の速度を算出する仮想速度算出手段と、を備え、前記角速度低下手段は、前記仮想速度算出手段により算出された各監視部の前記仮想の速度のうち最大の速度が前記基準速度よりも高い場合に、前記仮想の動作周期を前記比の値で割って前記仮想の動作周期を短縮し、前記最大の速度が判定速度よりも低い場合に、前記仮想角度算出手段により算出された各サーボモータの前記仮想の角度まで、前記動作周期後に各サーボモータが駆動されるように各サーボモータの前記角速度を算出する。
【0020】
上記構成によれば、仮想の動作周期後の各サーボモータの仮想の角度が算出される。そして、各サーボモータの現在の角度、算出された各サーボモータの仮想の動作周期後の仮想の角度、及び各回転部の大きさに基づいて、各回転部に設定された監視部の仮想の速度を算出することができる。
【0021】
ここで、算出された各監視部の仮想の速度のうち最大の速度が基準速度よりも高い場合に、仮想の動作周期を上記比の値で割って仮想の動作周期が短縮される。このため、短縮された仮想の動作周期後の各サーボモータの仮想の角度が再度算出される。そして、この仮想の角度に基づいて再度算出された各監視部の仮想の速度のうち最大の速度が基準速度よりも低くなった場合に、各サーボモータの仮想の角度まで、動作周期後に各サーボモータが駆動されるように各サーボモータの角速度が算出される。したがって、動作周期後に各サーボモータが駆動される角度が小さくなり、各サーボモータの角速度を実質的に低下させることができる。しかも、仮想の動作周期を短縮することにより、全てのサーボモータの角速度を一括して低下させることができる。なお、仮想の動作周期が動作周期から短縮されていない場合は、各サーボモータの角速度が維持される。
【0022】
また、背景技術のように動作目標位置を修正する構成にあっては、動作軌道が曲線である場合に軌道が変化するおそれがある。これに対して、上記のように仮想の動作周期を短縮する構成によれば、動作軌道を維持することができる。なお、判定速度は、基準速度と同一の速度であってもよいし、基準速度よりも若干高い速度等であってもよい。
【0023】
第8の手段では、前記角速度低下手段により、前記仮想の動作周期を前記比の値で割って前記仮想の動作周期を短縮することが所定回数よりも多く繰り返された場合に、前記駆動手段による各サーボモータの駆動を禁止する駆動禁止手段を備える。
【0024】
ロボットの制御装置においては、動作周期内に各サーボモータの角速度等を算出して指令を行う必要がある。この点、上記構成によれば、仮想の動作周期を上記比の値で割って仮想の動作周期を短縮することが所定回数よりも多く繰り返された場合に、各サーボモータの駆動が禁止される。このため、動作周期内に各サーボモータの角速度等を算出することができない場合は、サーボモータの駆動を禁止することができる。
【0025】
第9の手段では、前記動作周期後の各サーボモータの角度を算出する角度算出手段を備え、前記角速度低下手段は、前記速度算出手段により算出された各監視部の前記速度のうち最大の速度が前記基準速度よりも高い場合に、前記動作周期に前記比の値を掛けて前記動作周期を延長して、前記角度算出手段により算出された各サーボモータの前記角度まで、延長された前記動作周期後に各サーボモータが駆動されるように、各サーボモータの前記角速度を低下させる。
【0026】
上記構成によれば、算出された各監視部の速度のうち最大の速度が基準速度よりも高い場合に、動作周期に上記比の値を掛けて動作周期が延長される。そして、算出された各サーボモータの角度まで、延長された動作周期後に各サーボモータが駆動されるように、各サーボモータの角速度が低下させられる。このため、算出された各サーボモータの角度まで動作周期を延長して駆動することにより、全てのサーボモータの角速度を一括して低下させることができる。
【0027】
また、背景技術のように動作目標位置を修正する構成にあっては、動作軌道が曲線である場合に軌道が変化するおそれがある。これに対して、上記のように動作周期を延長する構成によれば、動作軌道を維持することができる。
【0028】
第10の手段は、複数の回転部と、前記回転部を互いに回転可能に連結する関節と、各回転部を駆動するサーボモータと、を含むアームを備えるロボット、の制御方法であって、動作周期毎に各サーボモータを駆動させる角速度を算出する角速度算出工程と、各回転部に設定された監視部の速度を算出する速度算出工程と、前記速度算出工程により算出された各監視部の前記速度が基準速度よりも低くなるように、各サーボモータの前記角速度を低下させる角速度低下工程と、前記角速度低下工程により低下させられた各サーボモータの前記角速度により、各サーボモータを駆動させる駆動工程と、を備えることを特徴とする。
【0029】
上記工程によれば、第1の手段と同様の作用効果を奏することができる。
【発明を実施するための形態】
【0031】
(第1実施形態)
以下、垂直多関節型ロボットの制御装置に具体化した第1実施形態について、図面を参照しつつ説明する。本実施形態のロボットは、例えば産業用ロボットとして機械組立工場などの組立システムにて用いられる。
【0032】
はじめに、ロボット10の概要を
図1に基づいて説明する。
【0033】
同図に示すように、ロボット10は、回転部を互いに連結する各関節の回転中心軸線として、第1軸線J1、第2軸線J2、第3軸線J3、第4軸線J4、第5軸線J5、第6軸線J6を有する6軸ロボットである。これら各軸線における各部の動作角度は、それぞれサーボモータ等からなる駆動源の駆動、及び減速機等による減速を通じて調整される。サーボモータは、いずれも正逆両方向の回転が可能であり、サーボモータの駆動により原点位置を基準として各回転部が動作(駆動)する。各サーボモータには、その出力軸を制動する電磁ブレーキと、出力軸の回転角度に応じたパルス信号を出力するエンコーダとがそれぞれ設けられている。
【0034】
ロボット10は、床に設置されており、第1軸線J1が鉛直方向へ延びている。ロボット10において、基台11は、床等に固定される固定部12と、その固定部12の上方に設けられる回転部13(第1回転部)とを有しており、回転部13が第1軸線J1を回転中心として水平方向に回転可能になっている。すなわち、回転部13は、第1軸線J1の方向に延びるとともに、固定部12により第1軸線J1を中心として回転可能に支持されている。
【0035】
下アーム15(第2回転部)が、水平方向に延びる第2軸線J2を回転中心として、時計回り方向又は反時計回り方向に回転可能に連結されている。すなわち、下アーム15は、第1軸線J1に直交する平面に含まれる第2軸線J2から離れる方向へ延びるとともに、回転部13により第2軸線J2を中心として回転可能に支持されている。下アーム15は、基本姿勢として鉛直方向に延びる向きに設けられている。
【0036】
下アーム15の上端部には、上アーム16が、水平方向に延びる第3軸線J3を回転中心として、時計回り方向又は反時計回り方向に回転可能に連結されている。すなわち、上アーム16は、第2軸線J2に平行な第3軸線J3から離れる方向へ延びるとともに、下アーム15により第3軸線J3を中心として回転可能に支持されている。上アーム16は、基本姿勢として水平方向に延びる向きに設けられている。
【0037】
上アーム16は、基端側(回転の際に第3軸線J3を回転中心とする関節側)と先端側とで2つのアーム部に分割されて構成されており、基端側は第1上アーム16A(第3回転部)、先端側は第2上アーム16B(第4回転部)となっている。第2上アーム16Bは、上アーム16の長手方向に延びる第4軸線J4を回転中心として、第1上アーム16Aに対してねじり方向に回転可能になっている。すなわち、第2上アーム16Bは、第3軸線J3に直交する平面に含まれる第4軸線J4の方向に延びるとともに、第1上アーム16Aにより第4軸線J4を中心として回転可能に支持されている。
【0038】
上アーム16(詳しくは第2上アーム16B)の先端部には、手首部17(第5回転部)が設けられている。手首部17は、水平方向に延びる第5軸線J5を回転中心として、第2上アーム16Bに対して回転可能になっている。すなわち、手首部17は、第4軸線J4に直交する第5軸線J5から離れる方向へ延びるとともに、第2上アーム16Bにより第5軸線J5を中心として回転可能に支持されている。
【0039】
手首部17の先端部には、ワークやツール等を取り付けるためのハンド部18(第6回転部)が設けられている。ハンド部18は、その中心線である第6軸線J6を回転中心として、ねじり方向に回転可能になっている。すなわち、ハンド部18は、第5軸線J5に直交する第6軸線J6の方向に延びるとともに、手首部17により第6軸線J6を中心として回転可能に支持されている。以上のように、回転部13、下アーム15、上アーム16、手首部17、及びハンド部18によって、ロボット10のアームが構成されている。
【0040】
コントローラ30(制御装置)は、CPU、ROM、RAM、駆動回路、位置検出回路等を備えている。ROMは、ロボット10のシステムプログラムや動作プログラム等を記憶している。RAMは、これらのプログラムを実行する際にパラメータの値等を記憶する。位置検出回路には、各エンコーダの検出信号がそれぞれ入力される。位置検出回路は、各エンコーダの検出信号に基づいて、各関節に設けられたサーボモータの回転角度を検出する。CPUは、予め設定された動作プログラム(プログラム)を実行することにより、位置検出回路から入力される位置情報に基づいて、ロボット10のアームにおける各関節の回転角度(アームの姿勢)を目標回転角度(目標姿勢)にフィードバック制御する。本実施形態では、コントローラ30は、ロボット10のティーチング時(手動操作時)において、ロボット10のアームの移動速度を基準速度以下に抑制する速度抑制制御を実行する。基準速度は、JISやISO等の規格により、例えば250mm/sに規定されている。
【0041】
ティーチングペンダント40(操作機)は、CPU、ROM、及びRAMを含むマイクロコンピュータ、各種の手動操作キー、及びディスプレイ42等を備えている。ペンダント40は、コントローラ30に接続されており、コントローラ30と通信可能となっている。オペレータ(使用者)は、このペンダント40を手動操作して、ロボット10の動作プログラムの作成、修正、登録、各種パラメータの設定を行うことができる。動作プログラムの修正等を行うティーチングでは、作業においてアームのハンド部18の中心点18a(制御点)が通過する教示点(位置座標)を教示する。そして、オペレータは、コントローラ30を通じて、ティーチングされた動作プログラムに基づきロボット10を動作させることができる。換言すれば、コントローラ30は、予め設定された動作プログラム及びペンダント40の操作に基づいて、ロボット10のアームの動作を制御する。
【0042】
ここで、ロボット10のティーチング時(手動操作時)において、アームのハンド部18(詳しくは中心点18a)の移動速度を、基準速度以下となるように制御したとしても、ロボット10の姿勢によっては、アームにおけるハンド部18以外の部分の移動速度が基準速度よりも高くなる場合があることに本願発明者は着目した。例えば、ロボット10が
図2に示す姿勢である場合、回転部13を回転させると、ハンド部18の中心点18a(点C5)の移動速度は基準速度よりも十分に小さくなる。しかしながら、下アーム15の先端部(点C2)及び上アーム16の一方の端部(点C3)の移動速度が、基準速度よりも高くなる場合がある。
【0043】
そこで、各回転部を回転させる際に回転中心となる関節(各回転部の回転中心軸線)から最も離れた部分を、各回転部の監視部(点C1〜点C5)として設定する。例えば、下アーム15を回転させる際に回転中心となる関節(回転部13と下アーム15との連結部)から最も離れた点C2を、下アーム15の監視部として設定する。同様にして、上アーム16を回転させる際に回転中心となる関節(下アーム15と上アーム16との連結部)から最も離れた点C3,C4を、上アーム16の監視部として設定する等を行う。なお、上アーム16等の回転部に他の部品(パーツ)が取り付けられている場合には、その部品の先端部等を監視部として設定してもよい。そして、全ての監視部の移動速度が基準速度以下となるように、各サーボモータの角速度を抑制する。
【0044】
図3は、ロボット10のアームの移動速度を基準速度以下に抑制する速度抑制制御の処理手順を示すフローチャートである。この一連の処理は、コントローラ30によって、アームを動作させる動作周期Tr毎に繰り返し実行される。動作周期Tr(制御周期)は、例えば8msである。
【0045】
まず、仮想動作周期Tvを動作周期Trとする(S11)。すなわち、仮想動作周期Tvの初期値として動作周期Trを設定する。
【0046】
続いて、各サーボモータの現在の角度θkを検出する(S12)。詳しくは、各サーボモータに設けられたエンコーダの検出信号に基づいて、位置検出回路により各サーボモータの現在の角度θkを検出させる。kは、第1軸線J1〜第6軸線J6にそれぞれ対応する1〜6の数字である。
【0047】
続いて、各監視部の現在の位置Piを算出する(S13)。各サーボモータの現在の角度θk及び各回転部の大きさに基づいて、各監視部の現在の位置Piを算出する。iは、点C1〜C5にそれぞれ対応する1〜5の数字である。詳しくは、各回転部の大きさと各監視部の設定された位置とに基づいて、各回転部の回転中心から監視部までの距離を算出する。そして、各サーボモータの現在の角度θk及び各回転部の大きさを組み合わせることにより、点C1〜C5の位置を算出する。
【0048】
続いて、各サーボモータの角速度ωkを算出する(S14)。具体的には、ティーチング時において、アームのハンド部18の中心点18aが通過する点として教示された教示点に基づいて、各サーボモータの目標角度が算出されている。そして、例えば
図4に示すように、その目標角度まで各サーボモータを駆動する際の角速度ωkのパターンが設定されている。そこで、設定された角速度ωkのパターンに基づいて、各サーボモータの現在の角速度ωkを算出する。kは、第1軸線J1〜第6軸線J6にそれぞれ対応する1〜6の数字である。
【0049】
続いて、各サーボモータの仮想動作周期Tv後の仮想角度θvkを算出する(S15)。
詳しくは、θvk=θk+ωk×Tvの式により、仮想角度θvkを算出する。
【0050】
続いて、各監視部の仮想動作周期Tv後の仮想位置Pviを算出する(S16)。詳しくは、S13の処理と同様にして、各サーボモータの仮想動作周期Tv後の仮想角度θvk及び各回転部の大きさに基づいて、各監視部の仮想動作周期Tv後の仮想位置Pviを算出する。
【0051】
続いて、各監視部の速度Viを算出する(S17)。詳しくは、各監視部の現在の位置Piと仮想動作周期Tv後の仮想位置Pviとの距離を、動作周期Trで割って速度Viを算出する。iは、点C1〜C5にそれぞれ対応する1〜5の数字である。
【0052】
続いて、各監視部の速度Viのうち最大の速度Viである最大速度Vmxを算出し(S18)、最大速度Vmxが基準速度Vlmよりも高いか否か判定する(S19)。この判定において、最大速度Vmxが基準速度Vlmよりも高いと判定した場合(S19:YES)、最大速度Vmxと基準速度Vlmとの比の値αを算出する(S20)。すなわち、α=Vmx/Vlmの式により、比の値αを算出する(α>1)。
【0053】
続いて、仮想動作周期Tvを比の値αで割った値を、新たな仮想動作周期Tvとする(S21)。すなわち、現在の仮想動作周期Tv(初期値は動作周期Tr)よりも、仮想動作周期Tvを短縮する。そして、短縮された仮想動作周期Tvを用いて、S15の処理から再度実行する。
【0054】
一方、S19の判定において、最大速度Vmxが基準速度Vlmよりも大きくないと判定した場合(S19:NO)、各サーボモータの角速度ωkを仮想動作周期Tvに基づいて算出する(S22)。具体的には、ωk←ωk×Tv/Trの式により、角速度ωkを算出する。すなわち、各サーボモータの仮想角度θvkまで、動作周期Tr後に各サーボモータが駆動されるように各サーボモータの角速度ωkを算出する。なお、仮想動作周期Tvが動作周期Trから短縮されていない場合は、角速度ωkが維持される。
【0055】
続いて、算出された各サーボモータの角速度ωkにより、各サーボモータを駆動させる(S23)。そして、この一連の処理を一旦終了する(END)。
【0056】
なお、S14の処理が角速度算出手段としての処理(角速度算出工程)に相当し、S15の処理が仮想角度算出手段(角度算出手段)としての処理に相当し、S13〜S17の処理が仮想速度算出手段(速度算出手段)としての処理(速度算出工程)に相当し、S20,S21,S22の処理が角速度低下手段としての処理(角速度低下工程)に相当し、S23の処理が駆動手段としての処理(駆動工程)に相当する。
【0057】
以上詳述した本実施形態は、以下の利点を有する。
【0058】
・各回転部に設定された監視部(点C1〜C5)の速度Viが算出される。そして、算出された各監視部の速度Viが基準速度Vlm以下となるように、各サーボモータの角速度ωkが低下させられる。低下させられた各サーボモータの角速度ωkにより、各サーボモータが駆動される。その結果、ロボット10の制御点のみならず、各回転部に設定された監視部の速度Viを基準速度Vlm以下にすることができ、アームの移動速度を十分に抑制することができる。
【0059】
・仮想動作周期Tv(動作周期Tr)後の各サーボモータの仮想角度θvk(角度θak)が算出される。そして、各サーボモータの現在の角度θk、算出された各サーボモータの仮想動作周期Tv後の仮想角度θvk、及び各回転部の大きさに基づいて、各回転部に設定された監視部の速度Viを算出することができる。具体的には、各サーボモータの現在の角度θk及び各回転部の大きさに基づいて、各監視部の現在の位置Piを算出し、各サーボモータの仮想動作周期Tv後の仮想角度θvk及び各回転部の大きさに基づいて、各監視部の仮想動作周期Tv(動作周期Tr)後の仮想位置Pvi(位置Pai)を算出し、各監視部の現在の位置Piと仮想動作周期Tv後の仮想位置Pviとの距離を動作周期Trで割って速度Viを算出することができる。
【0060】
・各回転部を回転させる際に回転中心となる関節(各回転部の回転中心軸線)から最も離れた部分が、各回転部の監視部として設定される。このため、各回転部において、最も速度が高くなる可能性の高い部分を監視部に設定することができ、アームの移動速度を十分に抑制することができる。
【0061】
・算出された各監視部の速度Viのうち最大速度Vmxと基準速度Vlmとの比の値αに基づいて、各サーボモータの角速度ωkが低下させられる。このため、速度が最大となる監視部の速度Viを基準速度Vlm以下とするように、各サーボモータの角速度ωkを適切に低下させることができる。
【0062】
・算出された各監視部の速度Viのうち最大速度Vmxが基準速度Vlmよりも高い場合に、仮想動作周期Tvを比の値αで割って仮想動作周期Tvが短縮される。このため、短縮された仮想動作周期Tv後の各サーボモータの仮想角度θvkが再度算出される。そして、この仮想角度θvkに基づいて再度算出された各監視部の速度Viのうち最大速度Vmxが基準速度Vlmよりも低くなった場合に、各サーボモータの仮想角度θvkまで、動作周期Tr後に各サーボモータが駆動されるように各サーボモータの角速度ωkが低下させられる。したがって、動作周期Tr後に各サーボモータが駆動される角度θakが小さくなり、各サーボモータの角速度ωkを実質的に低下させることができる。しかも、仮想動作周期Tvを短縮することにより、全てのサーボモータの角速度ωkを一括して低下させることができる。
【0063】
・背景技術のように動作目標位置を修正する構成にあっては、動作軌道が曲線である場合に軌道が変化するおそれがある。これに対して、上記のように仮想動作周期Tvを短縮する構成によれば、動作軌道を維持することができる。
【0064】
(第2実施形態)
第1実施形態ではロボット10にPTP(Point To Point)動作をさせたが、第2実施形態ではロボット10にCP(Continuous Path)動作をさせる。以下、第1実施形態との相違点を中心に説明する。
【0065】
図5は、ロボット10のアームの移動速度を基準速度以下に抑制する速度抑制制御の処理手順を示すフローチャートである。この一連の処理は、コントローラ30によって、アームを動作させる動作周期Tr毎に繰り返し実行される。
【0066】
まず、仮想動作周期Tvを動作周期Trとする(S31)。すなわち、仮想動作周期Tvの初期値として動作周期Trを設定する。
【0067】
続いて、アームの制御点(ハンド部18の中心点18a)の現在の位置及び姿勢PPを検出する(S32)。ティーチングした軌道に沿って制御点を移動させるCP動作においては、現在の位置及び姿勢PPが算出されている。
【0068】
続いて、各サーボモータの現在の角度θkを検出し(S33)、各監視部の現在の位置Piを算出する(S34)。S33,S34の処理は、
図3のS12,S13の処理と同一である。
【0069】
続いて、アームの制御点の位置及び姿勢の速度PVを算出する(S35)。具体的には、ティーチング時において教示された制御点の軌道に基づいて、制御点の目標位置及び目標姿勢が算出されている。そこで、制御点の目標位置及び目標姿勢に基づいて、制御点の位置及び姿勢の速度PVを算出する。
【0070】
続いて、仮想動作周期Tv後の制御点の仮想の位置及び姿勢PPvを算出する(S36)。詳しくは、PPv=PP+PV×Tvの式により、仮想の位置及び姿勢PPvを算出する。
【0071】
続いて、各サーボモータの仮想動作周期Tv後の仮想角度θvkを算出する(S37)。
詳しくは、仮想動作周期Tv後の制御点の仮想の位置及び姿勢PPvに基づいて、各サーボモータの仮想動作周期Tv後の仮想角度θvkを算出する。
【0072】
続いて、各監視部の仮想動作周期Tv後の仮想位置Pviを算出し(S38)、各監視部の速度Viを算出し(S39)、各監視部の速度Viのうち最大の速度Viである最大速度Vmxを算出し(S40)、最大速度Vmxが基準速度Vlmよりも高いか否か判定する(S41)。S38〜S41の処理は、
図3のS16〜S19の処理と同一である。
【0073】
S41の判定において、最大速度Vmxが基準速度Vlmよりも高いと判定した場合(S41:YES)、最大速度Vmxと基準速度Vlmとの比の値αを算出し(S42)、仮想動作周期Tvを比の値αで割った値を、新たな仮想動作周期Tvとする(S43)。S42,S43の処理は、
図3のS20,S21の処理と同一である。そして、短縮された仮想動作周期Tvを用いて、S36の処理から再度実行する。
【0074】
一方、S41の判定において、最大速度Vmxが基準速度Vlmよりも大きくないと判定した場合(S41:NO)、各サーボモータの現在の角度θkから仮想角度θvkまで駆動する角速度ωkを算出する(S44)。詳しくは、ωk←(θvk−θk)/Trの式により、角速度ωkを算出する。すなわち、各サーボモータの仮想角度θvkまで、動作周期Tr後に各サーボモータが駆動されるように、各サーボモータの角速度ωkを算出する。
【0075】
続いて、算出された各サーボモータの角速度ωkにより、各サーボモータを駆動させる(S45)。そして、この一連の処理を一旦終了する(END)。
【0076】
なお、S37の処理が仮想角度算出手段(角度算出手段)としての処理に相当し、S34〜S39の処理が仮想速度算出手段(速度算出手段)としての処理(速度算出工程)に相当し、S42,S43,S44の処理が角速度低下手段としての処理(角速度低下工程)に相当し、S45の処理が駆動手段としての処理(駆動工程)に相当する。
【0077】
以上詳述した本実施形態は、以下の利点を有する。ここでは、第1実施形態と相違する利点のみを述べる。
【0078】
・仮想動作周期Tv(動作周期Tr)後の制御点の仮想の位置及び姿勢PPvに基づいて、各サーボモータの仮想動作周期Tv後の仮想角度θvk(角度θak)を算出することができる。
【0079】
・算出された各監視部の速度Viのうち最大速度Vmxが基準速度Vlmよりも高い場合に、仮想動作周期Tvを比の値αで割って仮想動作周期Tvが短縮される。このため、短縮された仮想動作周期Tvを用いて、制御点の仮想の位置及び姿勢PPvを再度算出することができる。したがって、PTP動作及びCP動作に関わらず、アームの移動速度を十分に抑制することができる。
【0080】
なお、第1実施形態及び第2実施形態を、以下のように変更して実施することもできる。
【0081】
・コントローラ30(駆動禁止手段)は、仮想動作周期Tvを比の値αで割って仮想動作周期Tvを短縮すること(S21,S43)が所定回数よりも多く繰り返された場合に、各サーボモータの駆動を禁止してもよい。ロボット10のコントローラ30(制御装置)においては、動作周期Tr内に各サーボモータの角速度ωk等を算出して指令を行う必要がある。この点、上記構成によれば、動作周期Tr内に各サーボモータの角速度ωk等を算出することができない場合は、サーボモータの駆動を禁止することができる。なお、上記の所定回数として、例えば5回前後の回数を設定することができる。
【0082】
・
図3のS19及び
図5のS41において、最大速度Vmxが基準速度Vlmよりも高いか否か判定したが、最大速度Vmxが基準速度Vlmよりも若干高く設定した判定速度よりも高いか否か判定してもよい。この場合は、アームの速度抑制制御を迅速に終了することができる。
【0083】
・
図3のS21及び
図5のS43において、仮想動作周期Tvを比の値αで割って仮想動作周期Tvを短縮したが、仮想動作周期Tvを比の値αよりも若干大きい値で割って仮想動作周期Tvを短縮してもよい。この場合も、アームの速度抑制制御を迅速に終了することができる。
【0084】
・基準速度Vlmとして、JISやISO等の規格により規定された250mm/sを用いたが、それよりも若干低い速度、例えば230mm/sを基準速度Vlmとして用いてもよい。この場合、アームの移動速度を、確実かつ容易に250mm/sよりも低下させることができる。
【0085】
(第3実施形態)
第1実施形態及び第2実施形態では、仮想動作周期Tvを短縮することで各サーボモータの角速度ωkを低下させたが、第3実施形態では動作周期Trを延長することで各サーボモータの角速度ωkを低下させる。以下、第1実施形態との相違点を中心に説明する。
【0086】
図6は、ロボット10のアームの移動速度を基準速度以下に抑制する速度抑制制御の処理手順を示すフローチャートである。この一連の処理は、コントローラ30によって、アームを動作させる動作周期Tr毎に繰り返し実行される。なお、本実施形態では、動作周期Trが可変となっている。
【0087】
まず、修正動作周期Taを動作周期Trとする(S51)。すなわち、修正動作周期Taの初期値として修正前の動作周期Trを設定する。
【0088】
続いて、各サーボモータの現在の角度θkを検出し(S52)、各監視部の現在の位置Piを算出し(S53)、各サーボモータの角速度ωkを算出する(S54)。S52〜S54の処理は、
図3のS12〜S14の処理と同一である。
【0089】
続いて、各サーボモータの動作周期Tr後の角度θakを算出する(S55)。詳しくは、θak=θk+ωk×Trの式により、動作周期Tr後の角度θakを算出する。
【0090】
続いて、各監視部の動作周期Tr後の位置Paiを算出する(S56)。詳しくは、
図3のS13の処理と同様にして、各サーボモータの動作周期Tr後の角度θak及び各回転部の大きさに基づいて、各監視部の動作周期Tr後の位置Paiを算出する。
【0091】
続いて、各監視部の速度Viを算出する(S57)。詳しくは、各監視部の現在の位置Piと動作周期Tr後の位置Paiとの距離を、動作周期Trで割って速度Viを算出する。
【0092】
続いて、各監視部の速度Viのうち最大の速度Viである最大速度Vmxを算出し(S58)、最大速度Vmxが基準速度Vlmよりも高いか否か判定する(S59)。S58,S59の処理は、
図3のS18,S19の処理と同一である。
【0093】
S59の判定において、最大速度Vmxが基準速度Vlmよりも高いと判定した場合(S59:YES)、最大速度Vmxと基準速度Vlmとの比の値αを算出し(S60)、動作周期Trに比の値αを掛けた値を修正動作周期Taとする(S61)。そして、動作周期Trよりも延長された修正動作周期Taを用いて、S62の処理を実行する。
【0094】
一方、S59の判定において、最大速度Vmxが基準速度Vlmよりも大きくないと判定した場合も(S59:NO)、S62の処理を実行する。各サーボモータの角速度ωkを修正動作周期Taに基づいて算出する(S62)。具体的には、ωk←ωk×Tr/Taの式により、角速度ωkを算出する。すなわち、各サーボモータの角度θakまで、修正動作周期Ta後に各サーボモータが駆動されるように各サーボモータの角速度ωkを算出する。なお、修正動作周期Taが動作周期Trから延長されていない場合は、角速度ωkが維持される。
【0095】
続いて、算出された各サーボモータの角速度ωkにより、修正動作周期Taで各サーボモータを駆動させる(S63)。そして、この一連の処理を一旦終了する(END)。
【0096】
なお、S54の処理が角速度算出手段としての処理(角速度算出工程)に相当し、S55の処理が角度算出手段としての処理に相当し、S53〜S57の処理が速度算出手段としての処理(速度算出工程)に相当し、S60,S61,S62の処理が角速度低下手段としての処理(角速度低下工程)に相当し、S63の処理が駆動手段としての処理(駆動工程)に相当する。
【0097】
以上詳述した本実施形態は、以下の利点を有する。ここでは、第1実施形態と相違する利点のみを述べる。
【0098】
・動作周期Tr後の各サーボモータの角度θakが算出される。そして、各サーボモータの現在の角度θk、算出された各サーボモータの動作周期Tr後の角度θak、及び各回転部の大きさに基づいて、各回転部に設定された監視部の速度Viを算出することができる。具体的には、各サーボモータの現在の角度θk及び各回転部の大きさに基づいて、各監視部の現在の位置Piを算出し、各サーボモータの動作周期Tr後の角度θak及び各回転部の大きさに基づいて、各監視部の動作周期Tr後の位置Paiを算出し、各監視部の現在の位置Piと動作周期Tr後の位置Paiとの距離を動作周期Trで割って速度Viを算出することができる。
【0099】
・算出された各監視部の速度Viのうち最大速度Vmxが基準速度Vlmよりも高い場合に、動作周期Trに比の値αを掛けた修正動作周期Taに動作周期が延長される。そして、算出された各サーボモータの角度θakまで、修正動作周期Ta後に各サーボモータが駆動されるように、各サーボモータの角速度ωkが低下させられる。このため、算出された各サーボモータの角度θakまで動作周期を延長して駆動することにより、全てのサーボモータの角速度ωkを一括して低下させることができる。
【0100】
・実質的に、算出された各サーボモータの角速度ωkを比の値αで割ることにより、各サーボモータの角速度ωkが低下させられるため、各サーボモータの角速度ωkを適切かつ容易に低下させることができる。
【0101】
・背景技術のように動作目標位置を修正する構成にあっては、動作軌道が曲線である場合に軌道が変化するおそれがある。これに対して、上記のように動作周期を延長する構成によれば、動作軌道を維持することができる。
【0102】
なお、実施形態3を以下のように変更して、実施することもできる。
【0103】
・
図6のS61において、動作周期Trに比の値αを掛けて動作周期Trを延長したが、動作周期Trに比の値αよりも若干大きい値を掛けて動作周期Trを延長してもよい。また、基準速度Vlmとして、JISやISO等の規格により規定された250mm/sを用いたが、それよりも若干低い速度、例えば230mm/sを基準速度Vlmとして用いてもよい。これらの場合、アームの移動速度を、確実かつ容易に250mm/sよりも低下させることができる。
【0104】
また、各実施形態において、垂直多関節型のロボット10に代えて、水平多関節型のロボット等を採用することもできる。