(58)【調査した分野】(Int.Cl.,DB名)
複数の回転部と、前記回転部を互いに回転可能に連結する関節と、前記各回転部を駆動するサーボモータと、を含むアームを備えるロボットに適用され、前記アームの先端部を制御点として設定し、前記制御点を目標まで動作させる際に動作軌道を設定するCP制御により前記制御点の位置及び姿勢を制御するロボットの制御装置であって、
前記各回転部に設定された各監視部の現在の位置を算出する現在監視位置算出手段と、
前記制御点の位置及び姿勢の動作周期後の位置及び姿勢を算出する次周期位置姿勢算出手段と、
前記次周期位置姿勢算出手段により算出された前記動作周期後の位置及び姿勢に基づいて、前記各監視部の動作周期後の位置を算出する次周期監視位置算出手段と、
前記現在監視位置算出手段により算出された前記各監視部の現在の位置と、前記次周期監視位置算出手段により算出された前記各監視部の動作周期後の位置とに基づいて、前記各監視部の速度を算出する速度算出手段と、
前記速度算出手段により算出された前記各監視部の速度のうち最大の速度が基準速度よりも高いことを条件として、前記最大の速度となる前記監視部である対象監視部の速度が前記基準速度以下となるように、前記対象監視部の位置を修正する対象修正手段と、
前記対象修正手段により修正された前記対象監視部の位置に基づいて、前記制御点の動作周期後の姿勢を修正する姿勢修正手段と、
前記制御点の現在の位置及び姿勢が、次周期位置姿勢算出手段により算出された前記制御点の位置、及び前記姿勢修正手段によって修正された前記制御点の姿勢まで前記動作周期後に制御されるように、前記各サーボモータを駆動させる駆動手段と、
を備えることを特徴とするロボットの制御装置。
前記姿勢修正手段は、前記対象修正手段により修正された前記対象監視部の位置に基づいて、次周期位置姿勢算出手段により算出された前記制御点の動作周期後の位置を実現できないと判定した場合に、前記動作軌道上において前記制御点の動作周期後の位置及び姿勢を修正し、
前記駆動手段は、前記制御点の現在の位置及び姿勢が、前記姿勢修正手段によって修正された前記制御点の位置及び姿勢まで前記動作周期後に制御されるように、前記各サーボモータを駆動させる請求項1に記載のロボットの制御装置。
前記姿勢修正手段は、前記対象修正手段により修正された前記対象監視部の位置に基づいて、次周期位置姿勢算出手段により算出された前記制御点の動作周期後の位置を実現できないと判定した場合に、前記動作軌道上において、次周期位置姿勢算出手段により算出された前記制御点の動作周期後の位置に最も近い実現可能な位置へ、前記制御点の動作周期後の位置を修正する請求項2に記載のロボットの制御装置。
前記対象修正手段は、前記最大の速度と前記基準速度との比の値に基づいて、前記対象監視部の位置を修正する請求項1〜3のいずれか1項に記載のロボットの制御装置。
前記各回転部を回転させる際に回転中心となる前記関節から最も離れた部分を、前記各回転部の前記監視部として設定する請求項1〜5のいずれか1項に記載のロボットの制御装置。
前記速度算出手段は、前記各監視部の現在の位置と前記各監視部の動作周期後の位置との距離を前記動作周期で割ることにより前記各監視部の速度を算出する請求項1〜6のいずれか1項に記載のロボットの制御装置。
前記次周期監視位置算出手段は、前記次周期位置姿勢算出手段により算出された前記制御点の動作周期後の位置及び姿勢を逆変換することで得られる前記各サーボモータの動作周期後の角度と、前記各回転部の大きさとに基づいて、前記各監視部の動作周期後の位置を算出する請求項1〜7のいずれか1項に記載のロボットの制御装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、ロボットの制御点として設定されるアームの先端部の移動速度を、基準速度以下となるように制御したとしても、アームの移動速度を十分に抑制することができない場合があることに本願発明者は着目した。
【0005】
本発明は、こうした実情に鑑みてなされたものであり、アームの移動速度を十分に抑制することのできるロボットの制御装置及び制御方法を提供することを主たる目的とするものである。
【課題を解決するための手段】
【0006】
第1の手段は、複数の回転部と、前記回転部を互いに回転可能に連結する関節と、前記各回転部を駆動するサーボモータと、を含むアームを備えるロボットに適用され、前記アームの先端部を制御点として設定し、前記制御点を目標まで動作させる際に動作軌道を設定するCP制御により前記制御点の位置及び姿勢を制御するロボットの制御装置であって、前記各回転部に設定された各監視部の現在の位置を算出する現在監視位置算出手段と、前記制御点の位置及び姿勢の動作周期後の位置及び姿勢を算出する次周期位置姿勢算出手段と、前記次周期位置姿勢算出手段により算出された前記動作周期後の位置及び姿勢に基づいて、前記各監視部の動作周期後の位置を算出する次周期監視位置算出手段と、前記現在監視位置算出手段により算出された前記各監視部の現在の位置と、前記次周期監視位置算出手段により算出された前記各監視部の動作周期後の位置とに基づいて、前記各監視部の速度を算出する速度算出手段と、前記速度算出手段により算出された前記各監視部の速度のうち最大の速度が基準速度よりも高いことを条件として、前記最大の速度となる前記監視部である対象監視部の速度が前記基準速度以下となるように、前記対象監視部の位置を修正する対象修正手段と、前記対象修正手段により修正された前記対象監視部の位置に基づいて、前記制御点の動作周期後の姿勢を修正する姿勢修正手段と、前記制御点の現在の位置及び姿勢が、次周期位置姿勢算出手段により算出された前記制御点の位置、及び前記姿勢修正手段によって修正された前記制御点の姿勢まで前記動作周期後に制御されるように、前記各サーボモータを駆動させる駆動手段と、を備えることを特徴とする。
【0007】
上記構成によれば、ロボットのアームは複数の回転部を含んでおり、回転部は関節により互いに回転可能に連結されている。そして、アームの先端部が制御点として設定され、制御点を目標まで動作させる際に動作軌道を設定するCP制御により、制御点の現在の位置及び姿勢が制御される。
【0008】
ここで、ロボットの制御点として設定されるアームの先端部の移動速度を、基準速度以下となるように制御したとしても、アーム(ロボット)の姿勢によっては、アームにおける制御点以外の部分の移動速度が基準速度よりも高くなる場合があることに本願発明者は着目した。
【0009】
そこで上記構成では、各回転部に監視部が設定される。例えば、各回転部を回転させる際に回転中心となる関節から最も離れた部分が、各回転部の監視部として設定される。そして、制御点の位置及び姿勢の動作周期後の位置及び姿勢が算出され、算出された動作周期後の位置及び姿勢に基づいて、各監視部の動作周期後の位置が算出される。続いて、各監視部の現在の位置、及び各監視部の動作周期後の位置に基づいて、各監視部の速度が算出される。そして、最大の速度となる監視部である対象監視部の速度が基準速度以下となるように、対象監視部の位置が修正される。
【0010】
続いて、修正された対象監視部の位置に基づいて、制御点の動作周期後の姿勢が修正される。そして、制御点の現在の位置及び姿勢が、算出された制御点の位置、及び修正された制御点の姿勢まで動作周期後に制御されるように、各サーボモータが駆動される。したがって、制御点の姿勢を修正することで、制御点の動作周期後の位置(制御点の速度)を維持しつつ各監視部の速度を基準速度以下に低下させることができる。特に、ロボットにピックアンドプレイス動作をさせる場合は、制御点(ロボット)の姿勢は重要ではなく、制御点の位置が重要であるため、上記制御が有効である。
【0011】
対象監視部の速度が基準速度以下となるように対象監視部の位置を修正した結果、制御点の動作周期後の位置を実現できなくなる場合がある。この場合には、制御点の姿勢だけでなく、制御点の位置も修正する必要がある。
【0012】
この点、第2の手段では、前記姿勢修正手段は、前記対象修正手段により修正された前記対象監視部の位置に基づいて、次周期位置姿勢算出手段により算出された前記制御点の動作周期後の位置を実現できないと判定した場合に、前記動作軌道上において前記制御点の動作周期後の位置及び姿勢を修正し、前記駆動手段は、前記制御点の現在の位置及び姿勢が、前記姿勢修正手段によって修正された前記制御点の位置及び姿勢まで前記動作周期後に制御されるように、前記各サーボモータを駆動させる。
【0013】
上記構成によれば、修正された対象監視部の位置に基づいて、算出された制御点の動作周期後の位置を実現できないと判定された場合に、動作軌道上において制御点の動作周期後の位置及び姿勢が修正される。そして、制御点の現在の位置及び姿勢が、修正された制御点の位置及び姿勢まで動作周期後に制御されるように、各サーボモータが駆動される。このため、動作軌道上に制御点の位置を維持しつつ、制御点の位置及び姿勢の制御を継続することができる。
【0014】
第3の手段では、前記姿勢修正手段は、前記対象修正手段により修正された前記対象監視部の位置に基づいて、次周期位置姿勢算出手段により算出された前記制御点の動作周期後の位置を実現できないと判定した場合に、前記動作軌道上において、次周期位置姿勢算出手段により算出された前記制御点の動作周期後の位置に最も近い実現可能な位置へ、前記制御点の動作周期後の位置を修正する。
【0015】
上記構成によれば、修正された対象監視部の位置に基づいて、算出された制御点の動作周期後の位置を実現できないと判定された場合に、動作軌道上において、算出された制御点の動作周期後の位置に最も近い実現可能な位置へ、制御点の動作周期後の位置が修正される。したがって、制御点の動作周期後に実現可能な位置のうち、算出された制御点の動作周期後の位置に最も近い位置へ制御点を移動させることができ、制御点の速度の低下を最小限に留めることができる。
【0016】
アームの両端部のうちアームの先端部とは反対側を動作可能に支持する支持部を備えるロボットにおいて、対象監視部の速度を基準速度以下にすべく対象監視部の位置を修正するためには、アームにおいて対象監視部よりも支持部側の回転部の速度を低下させればよい。
【0017】
この点、第4の手段では、前記ロボットは、前記アームの両端部のうち前記アームの先端部とは反対側を動作可能に支持する支持部を備え、前記対象修正手段は、前記アームにおいて前記対象監視部よりも前記支持部側に設けられた前記サーボモータの角度の変化量を低下させることにより、前記対象監視部の位置を修正する。
【0018】
上記構成によれば、アームにおいて対象監視部よりも支持部側に設けられたサーボモータの角度の変化量を低下させることにより、対象監視部の位置が修正される。したがって、角度の変化量を低下させるサーボモータの数を抑制しつつ、効率的に対象監視部の速度を低下させることができる。
【0019】
第5の手段では、前記対象修正手段は、前記最大の速度と前記基準速度との比の値に基づいて、前記対象監視部の位置を修正する。
【0020】
上記構成では、算出された各監視部の速度のうち最大の速度と基準速度との比の値に基づいて、対象監視部の位置が修正される。このため、速度が最大となる監視部の速度を基準速度以下とするように、対象監視部の速度を適切に低下させることができる。なお、最大の速度と基準速度との比の値とは、最大の速度を基準速度で割った値である(比の値=最大の速度/基準速度)。
【0021】
第6の手段では、前記各回転部を回転させる際に回転中心となる前記関節から最も離れた部分を、前記各回転部の前記監視部として設定する。
【0022】
上記構成によれば、各回転部を回転させる際に回転中心となる関節から最も離れた部分が、各回転部の監視部として設定される。このため、各回転部において、最も速度が高くなる可能性の高い部分を監視部に設定することができ、アームの移動速度を十分に抑制することができる。
【0023】
速度算出手段としては、具体的には、第7の手段のように、前記各監視部の現在の位置と前記各監視部の動作周期後の位置との距離を前記動作周期で割ることにより前記各監視部の速度を算出するといった構成を採用することができる。
【0024】
また、次周期監視位置算出手段としては、具体的には、第8の手段のように、前記次周期位置姿勢算出手段により算出された前記制御点の動作周期後の位置及び姿勢を逆変換することで得られる前記各サーボモータの動作周期後の角度と、前記各回転部の大きさとに基づいて、前記各監視部の動作周期後の位置を算出するといった構成を採用することができる。
【0025】
第9の手段は、複数の回転部と、前記回転部を互いに回転可能に連結する関節と、前記各回転部を駆動するサーボモータと、を含むアームを備えるロボットに適用され、前記アームの先端部を制御点として設定し、前記制御点を目標まで動作させる際に動作軌道を設定するCP制御により前記制御点の位置及び姿勢を制御するロボットの制御装置であって、前記各回転部に設定された各監視部の現在の位置を算出する現在監視位置算出工程と、前記制御点の位置及び姿勢の動作周期後の位置及び姿勢を算出する次周期位置姿勢算出工程と、前記次周期位置姿勢算出工程により算出された前記動作周期後の位置及び姿勢に基づいて、前記各監視部の動作周期後の位置を算出する次周期監視位置算出工程と、前記現在監視位置算出工程により算出された前記各監視部の現在の位置と、前記次周期監視位置算出工程により算出された前記各監視部の動作周期後の位置とに基づいて、前記各監視部の速度を算出する速度算出工程と、前記速度算出工程により算出された前記各監視部の速度のうち最大の速度が基準速度よりも高いことを条件として、前記最大の速度となる前記監視部である対象監視部の速度が前記基準速度以下となるように、前記対象監視部の位置を修正する対象修正工程と、前記対象修正工程により修正された前記対象監視部の位置に基づいて、前記制御点の動作周期後の姿勢を修正する姿勢修正工程と、前記制御点の現在の位置及び姿勢が、次周期位置姿勢算出工程により算出された前記制御点の位置、及び前記姿勢修正工程によって修正された前記制御点の姿勢まで前記動作周期後に制御されるように、前記各サーボモータを駆動させる駆動工程と、を備えることを特徴とする。
【0026】
上記工程によれば、第1の手段と同様の作用効果を奏することができる。
【発明を実施するための形態】
【0028】
(第1実施形態)
以下、垂直多関節型ロボットの制御装置に具体化した第1実施形態について、図面を参照しつつ説明する。本実施形態のロボットは、例えば産業用ロボットとして機械組立工場などの組立システムにて用いられる。そして、ロボットは、ワークを取り上げて所定位置に置くピックアンドプレイス動作を実行する。
【0029】
はじめに、ロボット10の概要を
図1に基づいて説明する。
【0030】
同図に示すように、ロボット10は、回転部を互いに連結する各関節の回転中心軸線として、第1軸線J1、第2軸線J2、第3軸線J3、第4軸線J4、第5軸線J5、及び第6軸線J6を有する6軸ロボットである。これら各軸線における各部の動作角度は、それぞれサーボモータ等からなる駆動源の駆動、及び減速機等による減速を通じて調整される。サーボモータは、いずれも正逆両方向の回転が可能であり、サーボモータの駆動により原点位置を基準として各回転部が動作(駆動)する。各サーボモータには、その出力軸を制動する電磁ブレーキと、出力軸の回転角度に応じたパルス信号を出力するエンコーダとがそれぞれ設けられている。
【0031】
ロボット10は、床に設置されており、第1軸線J1が鉛直方向へ延びている。ロボット10において、基台11は、床等に固定される固定部12と、その固定部12の上方に設けられる回転部13(第1回転部)とを有しており、回転部13が第1軸線J1を回転中心として水平方向に回転可能になっている。すなわち、回転部13は、第1軸線J1の方向に延びるとともに、固定部12により第1軸線J1を中心として回転可能に支持されている。なお、本実施形態において、固定部12が支持部に相当する。
【0032】
下アーム15(第2回転部)が、水平方向に延びる第2軸線J2を回転中心として、時計回り方向又は反時計回り方向に回転可能に連結されている。すなわち、下アーム15は、第1軸線J1に直交する平面に含まれる第2軸線J2から離れる方向へ延びるとともに、回転部13により第2軸線J2を中心として回転可能に支持されている。下アーム15は、基本姿勢として鉛直方向に延びる向きに設けられている。
【0033】
下アーム15の上端部には、上アーム16が、水平方向に延びる第3軸線J3を回転中心として、時計回り方向又は反時計回り方向に回転可能に連結されている。すなわち、上アーム16は、第2軸線J2に平行な第3軸線J3から離れる方向へ延びるとともに、下アーム15により第3軸線J3を中心として回転可能に支持されている。上アーム16は、基本姿勢として水平方向に延びる向きに設けられている。
【0034】
上アーム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を中心として回転可能に支持されている。
【0035】
上アーム16(詳しくは第2上アーム16B)の先端部には、手首部17(第5回転部)が設けられている。手首部17は、水平方向に延びる第5軸線J5を回転中心として、第2上アーム16Bに対して回転可能になっている。すなわち、手首部17は、第4軸線J4に直交する第5軸線J5から離れる方向へ延びるとともに、第2上アーム16Bにより第5軸線J5を中心として回転可能に支持されている。
【0036】
手首部17の先端部には、ワークやツール等を取り付けるためのハンド部18(第6回転部)が設けられている。ハンド部18は、その中心線である第6軸線J6を回転中心として、ねじり方向に回転可能になっている。すなわち、ハンド部18は、第5軸線J5に直交する第6軸線J6の方向に延びるとともに、手首部17により第6軸線J6を中心として回転可能に支持されている。以上のように、回転部13、下アーム15、上アーム16、手首部17、及びハンド部18によって、ロボット10のアームが構成されている。
【0037】
コントローラ30(制御装置)は、CPU、ROM、RAM、駆動回路、及び位置検出回路等を備えている。ROMは、ロボット10のシステムプログラムや動作プログラム等を記憶している。RAMは、これらのプログラムを実行する際にパラメータの値等を記憶する。位置検出回路には、各エンコーダの検出信号がそれぞれ入力される。位置検出回路は、各エンコーダの検出信号に基づいて、各関節に設けられたサーボモータの回転角度を検出する。
【0038】
CPUは、予め設定された動作プログラム(プログラム)を実行することにより、位置検出回路から入力される位置情報に基づいて、アーム先端部の制御点の位置及び姿勢を制御する。詳しくは、CPUは、CP(Continuous Path)制御を行う。CP制御では、アーム先端部の制御点を目標まで動作させる際に制御点の動作軌道(位置及び姿勢)が時間関数として設定される。CPUは、CP制御により、制御点の位置及び姿勢が動作軌道に沿うように、アームにおける各関節の回転角度(アームの姿勢)を制御する。本実施形態では、制御点として、アームのハンド部18の中心点18aであるTCP(Tool Center Point)が設定されている。また、CPUは、TCPの位置及び姿勢に基づいて、この位置及び姿勢を実現するための各関節の角度を逆変換によって算出する機能と、各関節の角度に基づいて、TCPの位置及び姿勢を順変換によって算出する機能とを有する。
【0039】
本実施形態では、コントローラ30は、ロボット10のティーチング時(手動操作時)において、ロボット10のアームの移動速度を基準速度以下に抑制する速度抑制制御を実行する。基準速度は、JISやISO等の規格により、例えば250mm/sに規定されている。
【0040】
ティーチングペンダント40(操作機)は、CPU、ROM、及びRAMを含むマイクロコンピュータ、各種の手動操作キー、並びにディスプレイ42等を備えている。ペンダント40は、コントローラ30に接続されており、コントローラ30と通信可能となっている。オペレータ(使用者)は、このペンダント40を手動操作して、ロボット10の動作プログラムの作成、修正、登録、各種パラメータの設定を行うことができる。動作プログラムの修正等を行うティーチングでは、作業において制御点であるTCPが通過する教示点(動作点)を教示する。そして、オペレータは、コントローラ30を通じて、ティーチングされた動作プログラムに基づきロボット10を動作させることができる。換言すれば、コントローラ30は、予め設定された動作プログラム及びペンダント40の操作に基づいて、ロボット10のアームの動作を制御する。
【0041】
ここで、ロボット10のティーチング時(手動操作時)において、TCPの移動速度を、基準速度以下となるように制御したとしても、ロボット10の姿勢によっては、アームにおけるTCP以外の部分の移動速度が基準速度よりも高くなる場合があることに本願発明者は着目した。例えば、ロボット10が
図2に示す姿勢である場合、回転部13を回転させると、TCP(点C5)の移動速度は基準速度よりも十分に小さくなる。しかしながら、下アーム15の先端部(点C2)及び上アーム16の一方の端部(点C3)の移動速度が、基準速度よりも高くなる場合がある。
【0042】
また、CP制御では、TCPが特異点を通過する際にロボット10の姿勢が急激に変化することがあり、この場合も上記点C2や上記点C3の移動速度が基準速度よりも高くなるおそれがある。
【0043】
そこで、各回転部を回転させる際に回転中心となる関節(各回転部の回転中心軸線)から最も離れた部分を、各回転部の監視部(点C1〜C5)として設定する。例えば、下アーム15を回転させる際に回転中心となる関節(回転部13と下アーム15との連結部)から最も離れた点C2を、下アーム15の監視部として設定する。同様にして、上アーム16を回転させる際に回転中心となる関節(下アーム15と上アーム16との連結部)から最も離れた点C3,C4を、上アーム16の監視部として設定する等を行う。なお、上アーム16等の回転部に他の部品(パーツ)が取り付けられている場合には、その部品の先端部等を監視部として設定してもよい。そして、全ての監視部の移動速度が基準速度以下となるように、各サーボモータの角速度を抑制する。
【0044】
図3は、ロボット10のアームの移動速度を基準速度以下に抑制する速度抑制制御の処理手順を示すフローチャートである。この一連の処理は、コントローラ30によって、アームを動作させる動作周期Tr毎に繰り返し実行される。動作周期Tr(制御周期)は、例えば8msである。ここでは、制御点を目標まで動作させる際に動作軌道として、直線動作軌道を設定する場合(直線補間)を例に説明する。
【0045】
この一連の処理では、まず、各サーボモータの現在の角度θk1を検出する(S11)。詳しくは、各サーボモータに設けられたエンコーダの検出信号に基づいて、位置検出回路により各サーボモータの現在の角度θk1を検出する。なお、kは、第1軸線J1〜第6軸線J6にそれぞれ対応する1〜6の数字である。
【0046】
続いて、各サーボモータの現在の角度θk1及び各回転部の大きさに基づいて、各監視部の現在の位置Pi1を算出する(S12)。iは、点C1〜C5にそれぞれ対応する1〜5の数字である。現在の位置Pi1の算出手法の具体例について説明すると、まず、各回転部の大きさと各監視部の設定された位置とに基づいて、各回転部の回転中心から監視部までの距離を算出する。そして、各サーボモータの現在の角度θk1、各回転部の大きさ、及び上記距離を組み合わせることにより、点C1〜C5の位置を算出する。
【0047】
続いて、TCPの位置及び姿勢の動作周期Trにおける変化量ΔPを算出する(S13)。具体的には、ティーチング時において、TCPが通過する点として教示された教示点に基づいて、直線動作軌道を設定する。そして、直線動作軌道上における位置及び姿勢の動作周期Trにおける変化量ΔPを算出する。
【0048】
続いて、TCPの動作周期Tr後の位置及び姿勢P2を算出する(S14)。詳しくは、TCPの現在の位置及び姿勢P1に、TCPの位置及び姿勢の変化量ΔPを加算することにより、TCPの動作周期Tr後の位置及び姿勢P2を算出する(P2=P1+ΔP)。
【0049】
続いて、各サーボモータの動作周期Tr後の角度θk2を算出する(S15)。詳しくは、TCPの動作周期Tr後の位置及び姿勢P2を逆変換することで、各サーボモータの動作周期Tr後の角度θk2を算出する。
【0050】
続いて、各監視部の動作周期Tr後の位置Pi2を算出する(S16)。iは、点C1〜C5にそれぞれ対応する1〜5の数字である。ここで、動作周期Tr後の位置Pi2は、S12の処理と同様にして、各サーボモータの動作周期Tr後の角度θk2及び各回転部の大きさに基づいて算出すればよい。
【0051】
続いて、各監視部の速度Viを算出する(S17)。詳しくは、各監視部の現在の位置Pi1と動作周期Tr後の位置Pi2との距離を動作周期Trで割ることにより、速度Viを算出する。なお、iは、点C1〜C5にそれぞれ対応する1〜5の数字である。
【0052】
続いて、各監視部の速度Viのうち最大の速度Viである最大速度Vmxを算出し(S18)、最大速度Vmxが基準速度Vlmよりも高いか否か判定する(S19)。ここで、各監視部のうち、最大速度Vmxをとる監視部を、速度を低下させる対象としての対象監視部に設定する。上記判定において、最大速度Vmxが基準速度Vlmよりも高いと判定した場合(S19:YES)、最大速度Vmxと基準速度Vlmとの比の値αを算出する(S20)。すなわち、α=Vmx/Vlmの式により、比の値αを算出する(α>1)。
【0053】
続いて、比の値αに基づいて対象監視部の動作周期Tr後の位置を修正する(S21)。具体的には、対象監視部の現在位置から動作周期Tr後の位置までの移動量を低減する。詳しくは、対象監視部の現在位置と動作周期Tr後の位置との距離を比の値αで割った値を、新たな移動量とする。ここで、対象監視部の速度を基準速度以下にすべく対象監視部の位置を修正する際には、アームにおいて対象監視部よりも固定部12側の回転部の速度が低下される。その結果、アームにおいて対象監視部よりも固定部12側に設けられたサーボモータである対象サーボモータの角度θの変化量Δθが低下される。
【0054】
続いて、TCPの動作周期Tr後の姿勢を修正する(S22)。詳しくは、修正された対象監視部の位置に基づいて、TCPの動作周期Tr後の位置を実現するようにTCPの動作周期Tr後の姿勢を修正する。対象監視部の位置からTCPの動作周期Tr後の位置を実現するためには、アームにおいて対象監視部よりも先端側の回転部の回転量を変更すればよい。このため、アームにおいて対象監視部よりも先端側に設けられたサーボモータの角度の変化量を変更することにより、TCPの動作周期Tr後の位置を実現する。そして、対象監視部の動作周期Tr後の修正された位置及びTCPの動作周期Tr後の修正された姿勢により定まる、各サーボモータの動作周期Tr後の角度θk2を用いて、S16の処理から再度実行する。
【0055】
一方、S19の判定において、最大速度Vmxが基準速度Vlm以下であると判定した場合(S19:NO)、TCPの現在の位置及び姿勢P1が、TCPの動作周期Tr後の位置及び姿勢P2まで動作周期Tr後に制御されるように各サーボモータを駆動する(S23)。ここでは、S21及びS22の処理を経由している場合、現在の位置及び姿勢P1を、S14の処理で算出されたTCPの位置、及びS22の処理で修正されたTCPの姿勢まで、動作周期Tr後に制御されるように各サーボモータを駆動する。そして、この一連の処理を一旦終了する(END)。
【0056】
なお、S12の処理が現在監視位置算出手段としての処理(現在監視位置算出工程)に相当し、S14の処理が次周期位置姿勢算出手段としての処理(次周期位置姿勢算出工程)に相当し、S16の処理が次周期監視位置算出手段としての処理(次周期監視位置算出工程)に相当し、S17の処理が速度算出手段としての処理(速度算出工程)に相当する。また、S21の処理が対象修正手段としての処理(対象修正工程)に相当し、S22の処理が姿勢修正手段としての処理(姿勢修正工程)に相当し、S23の処理が駆動手段としての処理(駆動工程)に相当する。
【0057】
図4は、対象監視部の位置修正及びTCPの姿勢修正を示す図である。現在の動作周期において、ロボット10の状態(TCPの位置及び姿勢)が
図4(a)に示す状態であったとする。そして、次の動作周期において、
図4(b)に示す状態まで移行するように各サーボモータの駆動量が算出された際に、対象監視部の速度が基準速度Vlmを超える場合がある。この場合、
図3に示す速度抑制制御によれば、次の動作周期における対象監視部の位置が、
図4(c)に示す位置に修正される。これにより、対象監視部の速度が基準速度Vlm以下に低下させられる。そして、修正された対象監視部の位置を起点として、
図4(b)に示すTCPの位置を次の動作周期で実現するように、アームにおいて対象監視部よりも先端側の回転部の駆動量が修正される。その結果、TCPの次の動作周期における位置を維持しつつ、TCPの次の動作周期における姿勢のみが変更される。
【0058】
以上詳述した本実施形態は、以下の利点を有する。
【0059】
・各回転部に設定された監視部(点C1〜C5)の現在の位置Pi1、及び各監視部の動作周期Tr後の位置Pi2に基づいて、各監視部の速度Viが算出される。そして、算出された各監視部の速度Viが基準速度Vlm以下となるように、最大の速度となる監視部である対象監視部の位置が修正される。そして、修正された対象監視部の位置に基づいて、TCPの動作周期Tr後の姿勢が修正される。TCPの現在の位置及び姿勢P1が、算出されたTCPの位置、及び修正されたTCPの姿勢まで動作周期Tr後に制御されるように、各サーボモータが駆動される。したがって、TCPの姿勢を修正することで、TCPの動作周期Tr後の位置(TCPの速度)を維持しつつ各監視部の速度を基準速度Vlm以下に低下させることができる。特に、ロボット10にピックアンドプレイス動作をさせる場合は、TCP(ロボット)の姿勢は重要ではなく、TCPの位置が重要であるため、上記制御が有効である。
【0060】
・対象監視部の現在位置から動作周期Tr後の位置までの移動量が低減される。詳しくは、対象監視部の現在位置と動作周期Tr後の位置との距離を比の値αで割った値が、新たな移動量とされる。その結果、アームにおいて対象監視部よりも固定部12側に設けられた対象サーボモータの角度θの変化量Δθが低下される。したがって、角度θの変化量Δθを低下させる対象サーボモータの数を抑制しつつ、効率的に対象監視部の速度を低下させることができる。
【0061】
・最大速度Vmxと基準速度Vlmとの比の値αに基づいて、対象監視部の位置が修正される。このため、速度が最大となる対象監視部の速度を基準速度Vlm以下とするように、対象監視部の速度を適切に低下させることができる。
【0062】
・各回転部を回転させる際に回転中心となる関節から最も離れた部分が、各回転部の監視部として設定される。このため、各回転部において、最も速度が高くなる可能性の高い部分を監視部に設定することができ、アームの移動速度を十分に抑制することができる。
【0063】
(第2実施形態)
以下、第2実施形態について、第1実施形態との相違点を中心に説明する。本実施形態では、修正された対象監視部の位置に基づいて、算出されたTCPの動作周期Tr後の位置を実現できないと判定した場合に、動作軌道上においてTCPの動作周期Tr後の位置及び姿勢P2を修正する。
【0064】
図5は、対象監視部の位置修正、TCPの位置及び姿勢修正を示す模式図である。
図5(a)に示すように、現在の動作周期でのTCPの位置から、次の動作周期でのTCPの位置へ移動させる際に、対象監視部の速度が基準速度Vlmを超えたとする。この場合、上記第1実施形態によれば、
図5(b)に示すように対象監視部の位置が修正される。
【0065】
ここで、対象監視部の速度が基準速度Vlm以下となるように対象監視部の位置を修正した結果、TCPの次の動作周期での位置を実現できなくなる場合がある。詳しくは、修正された対象監視部の位置を起点とした場合に、TCPの次の動作周期での位置までTCPが届かなくなる場合がある。この場合には、TCPの姿勢だけでなく、TCPの位置も修正する必要がある。
【0066】
そこで、本実施形態では、
図5(c)に示すように、動作軌道上において実現可能なTCPの位置へ次の動作周期でのTCPの位置を修正する。そして、その修正されたTCP位置を実現するように、修正された対象監視部の位置を起点としてTCPの姿勢を修正する。
【0067】
図6は、本実施形態の速度抑制制御の処理手順を示すフローチャートである。この一連の処理は、コントローラ30によって、アームを動作させる動作周期Tr毎に繰り返し実行される。動作周期Tr(制御周期)は、例えば8msである。ここでは、制御点を目標まで動作させる際に動作軌道として、直線動作軌道を設定する場合(直線補間)を例に説明する。なお、
図3のフローチャートと同一の処理については、同一のステップ番号を付すことにより説明を省略する。S11〜S21の処理は、
図3のS11〜S21の処理と同一である。
【0068】
続いて、修正された対象監視部の位置に基づいて、TCPの動作周期Tr後の位置を実現可能であるか否か判定する(S21a)。この判定において、TCPの動作周期Tr後の位置を実現可能であると判定した場合(S21a:YES)、TCPの動作周期Tr後の位置を修正することなく、TCPの動作周期Tr後の姿勢を修正する(S22)。S22の処理は
図3のS22の処理と同一であり、この場合は上記第1実施形態と同様の制御となる。
【0069】
一方、S21aの判定において、TCPの動作周期Tr後の位置を実現可能でないと判定した場合(S21a:NO)、TCPの動作周期Tr後の位置を修正する(S21b)。詳しくは、TCPの動作軌道上において、S14の処理で算出されたTCPの動作周期Tr後の位置に最も近い実現可能な位置へ、TCPの動作周期Tr後の位置を修正する。例えば、修正された対象監視部の位置を中心として、アームにおいて対象監視部よりも先端側の回転部を最も伸ばした状態でTCPを移動させて描かれる球面と、動作軌道との交点をTCPの動作周期Tr後の位置とする。その後、修正された対象監視部の位置に基づいて、TCPの動作周期Tr後の姿勢を修正する(S22)。S22の処理は、
図3のS22の処理と同一である。なお、S21bの処理が姿勢修正手段としての処理に相当する。
【0070】
以上詳述した本実施形態は、以下の利点を有する。ここでは、上記第1実施形態と相違する利点のみを述べる。
【0071】
・修正された対象監視部の位置に基づいて、算出されたTCPの動作周期Tr後の位置を実現できないと判定された場合に、動作軌道上においてTCPの動作周期Tr後の位置及び姿勢P2が修正される。そして、TCPの現在の位置及び姿勢P1が、修正された制御点の位置及び姿勢まで動作周期Tr後に制御されるように、各サーボモータが駆動される。このため、動作軌道上にTCPの位置を維持しつつ、TCPの位置及び姿勢の制御を継続することができる。
【0072】
・修正された対象監視部の位置に基づいて、算出されたTCPの動作周期Tr後の位置を実現できないと判定された場合に、動作軌道上において、算出されたTCPの動作周期Tr後の位置に最も近い実現可能な位置へ、TCPの動作周期Tr後の位置が修正される。したがって、TCPの動作周期Tr後に実現可能な位置のうち、算出されたTCPの動作周期Tr後の位置に最も近い位置へTCPを移動させることができ、TCPの速度の低下を最小限に留めることができる。
【0073】
なお、上記実施形態を以下のように変更して実施することもできる。
【0074】
・CP制御において、TCPを目標まで動作させる際に動作軌道として、円弧動作軌道を設定して、2つの動作点間を円弧で補間してもよい。上記第2実施形態では、設定した円弧動作軌道上において、TCPの位置の変化量を低下させればよい。そして、位置及び姿勢P1と修正後の位置及び姿勢との間は、円弧動作軌道により補間する。こうした構成によれば、各サーボモータの角速度を低下させたとしても、TCPが円弧動作軌道から外れることを抑制することができる。
【0075】
・
図3のS19において、最大速度Vmxが基準速度Vlmよりも高いか否か判定したが、最大速度Vmxが、基準速度Vlmよりも若干高く設定した判定速度よりも高いか否か判定してもよい。この場合は、アームの速度抑制制御を迅速に終了することができる。
【0076】
・
図3のS21において、対象監視部の位置の変化量を比の値αで割ることにより、対象監視部の位置の変化量を低下させたが、比の値αよりも若干大きい値で割ることにより、対象監視部の位置の変化量を低下させてもよい。この場合も、アームの速度抑制制御を迅速に終了することができる。
【0077】
・上記実施形態では、基準速度Vlmとして、JISやISO等の規格により規定された250mm/sを用いたが、それよりも若干低い速度、例えば230mm/sを基準速度Vlmとして用いてもよい。この場合、アームの移動速度を、確実かつ容易に250mm/sよりも低下させることができる。
【0078】
・上記実施形態において、垂直多関節型のロボット10に代えて、水平多関節型のロボット等を採用することもできる。