(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-27
(45)【発行日】2025-04-04
(54)【発明の名称】ロボットの制御方法及び制御装置
(51)【国際特許分類】
B25J 9/10 20060101AFI20250328BHJP
B25J 13/00 20060101ALI20250328BHJP
【FI】
B25J9/10 A
B25J13/00 Z
(21)【出願番号】P 2021088231
(22)【出願日】2021-05-26
【審査請求日】2024-04-15
(73)【特許権者】
【識別番号】000002233
【氏名又は名称】ニデックインスツルメンツ株式会社
(74)【代理人】
【識別番号】100123788
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】花岡 正志
(72)【発明者】
【氏名】桃澤 義秋
(72)【発明者】
【氏名】ボ スアン タン
【審査官】松浦 陽
(56)【参考文献】
【文献】特開2015-030076(JP,A)
【文献】特開平07-319546(JP,A)
【文献】特開2020-097072(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/18 - 19/416
(57)【特許請求の範囲】
【請求項1】
関節軸がモータによって駆動される多関節ロボットを制御する制御方法であって、
少なくとも1つの前記モータに関して、
モータ位置指令に基づいて、前記多関節ロボットが保持するワークの質量が閾値以下であるときには
第1の制御を実施し前記質量が前記閾値を超えるときは
第2の制御を実施するように、前記質量に応じて切り替えて制御を行な
い、
前記第1の制御は、前記モータ位置指令とフィードバックされたモータ位置とを用いる、2慣性系状態オブザーバによる状態フィードバック制御であり、
前記第2の制御は、前記モータ位置指令と前記フィードバックされたモータ位置とを用いる、P-PI制御またはPID制御である、制御方法。
【請求項2】
前記ワークを前記多関節ロボットに保持させるロード動作と保持されている前記ワークを前記多関節ロボットから降ろすアンロード動作とを少なくとも規定する動作プログラムに基づいて前記多関節ロボットの動作を制御し、
前記動作プログラムによって前記
第1の制御と前記
第2の制御の切り替えを行う、請求項1に記載の制御方法。
【請求項3】
前記ワークを保持していない前記多関節ロボットを前記動作プログラムに基づいて前記ワークの受け取り位置まで移動させるときは前記
第1の制御を実施し、その後、前記質量が前記閾値を超える場合に前記ワークと前記多関節ロボットとが接触する前に前記
第2の制御に切り替える、請求項2に記載の制御方法。
【請求項4】
前記動作プログラムに基づいて前記ワークを保持したまま前記多関節ロボットを前記ワークの積み下ろし位置まで移動させ、前記アンロード動作を実行した後、前記
第1の制御に切り替える、請求項2または3に記載の制御方法。
【請求項5】
鉛直軸のモータが前記多関節ロボットに備えられており、
前記鉛直軸のモータに対するトルク指令値に基づいて前記ワークの質量を判別する、請求項1乃至4のいずれか1項に記載の制御方法。
【請求項6】
所定条件を満たす前記ワークを保持しているかを検出する在荷センサーが前記多関節ロボットに備えられており、
前記在荷センサーにより前記所定条件を満たす前記ワークを検出したときに、前記
第2の制御に切り替える、請求項1乃至4のいずれか1項に記載の制御方法。
【請求項7】
前記多関節ロボットは水平多関節ロボットである、請求項1乃至6のいずれか1項に記載の制御方法。
【請求項8】
関節軸がモータによって駆動される多関節ロボットを制御する制御装置であって、
モータ位置指令に基づいて
、前記モータ位置指令とフィードバックされたモータ位置とを用いる、2慣性系状態オブザーバによる状態フィードバック制御を実行する第1制御部と、
前記
モータ位置指令に基づいて
、前記モータ位置指令と前記フィードバックされたモータ位置とを用いる、P-PI制御またはPID制御を実行する第2制御部と、
前記多関節ロボットが保持するワークの質量が閾値以下であるときには前記第1制御部を選択し、前記質量が前記閾値を超えるときは前記第2制御部を選択する選択部と、
を備え、
前記質量に応じて前記選択部によって選択された制御部の出力によって前記モータを制御する、制御装置。
【請求項9】
前記ワークを前記多関節ロボットに保持させるロード動作と保持されている前記ワークを前記多関節ロボットから降ろすアンロード動作とを少なくとも規定して前記多関節ロボットの動作を制御する動作プログラムを実行する演算部をさらに備え、
前記演算部からの切り替え指令により前記選択部が前記第1制御部と前記第2制御部のいずれかを選択する、請求項8に記載の制御装置。
【請求項10】
前記演算部は、前記ワークを保持していない前記多関節ロボットを前記ワークの受け取り位置まで移動させるときは前記選択部によって前記第1制御部を選択し、その後、前記質量が前記閾値を超える場合に前記ワークと前記多関節ロボットとが接触する前に前記選択部によって前記第2制御部を選択する、請求項9に記載の制御装置。
【請求項11】
前記演算部は、前記ワークを保持したまま前記多関節ロボットを前記ワークの積み下ろし位置まで移動させ、前記アンロード動作を実行した後、前記選択部によって前記第1制御部を選択する、請求項9または10に記載の制御装置。
【請求項12】
前記多関節ロボットは鉛直軸のモータを備えており、
前記演算部は、前記鉛直軸のモータに対するトルク指令値に基づいて前記ワークの
前記質量を
求め、求めた前記質量に応じて前記切り替え指令を前記選択部に出力する、請求項
9乃至11のいずれか1項に記載の制御装置。
【請求項13】
前記多関節ロボットは、所定条件を満たす前記ワークを保持しているかを検出する
在荷センサーを備え、
前記在荷センサーにより前記所定条件を満たす前記ワークを検出したときに、前記第2制御部が選択される、請求項8乃至11のいずれか1項に記載の制御装置。
【請求項14】
前記多関節ロボットは水平多関節ロボットである、請求項8乃至13のいずれか1項に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの制御方法及び制御装置に関し、特に、各軸がモータにより駆動される多関節ロボットにおける位置と速度を制御する制御方法及び制御装置に関する。
【背景技術】
【0002】
複数のリンクあるいはアームが関節を介して接続される水平多関節ロボットなどの多関節ロボット(以下、単にロボットともいう)は、関節に設けられたモータによって駆動され、例えばその先端においてワークを把持したり、その先端にワークが載置されたりする。ロボットがワークを把持したりワークが載置されたりすることを総称して「ロボットがワークを保持する」と呼ぶ。大型のロボットではその先端(すなわち手先)に保持するワークの質量の大小によって関節軸周りでのリンクの慣性モーメントが変化し、制御対象であるそのロボットの特性が変化する。ワークの質量によらずに制御のノミナルモデルを固定すると、ワークの質量の変化によってモデルミスマッチが発生し、フィードバックに基づく制御が不安定になったり、振動が発生するおそれがある。特にロボットにおいてはその関節軸に対してモータは減速機を介して接続することが一般的であり、減速機はばね要素としての性質も備えるから、制御が不適切である場合には、減速機などを含むばね要素のためにロボットではその動きに伴って振動が誘発されやすい。ロボットが保持するワークの質量の変化によらず、ロボットの位置と速度とを安定して制御できる制御方法及び制御装置が求められている。
【0003】
特許文献1は、ロボットの制御などに用いられる位置決め制御装置において、P-PI(比例-比例積分)制御による位置決め制御を行なう古典制御手段と、2慣性系状態オブザーバーによる状態フィードバック制御により位置決め制御を行なう現代制御手段と、を設け、関節軸周りの慣性モーメントが閾値より小さい場合にはP-PI制御(あるいはPID(比例積分微分)制御)を実施し、閾値以上である場合には状態フィードバック制御を行なうことにより、振動を抑えて高速かつ高精度に位置決め制御を行なうことを開示している。また、非特許文献1は、R-P-P型のロボットにおいて、通常時にはPID制御を行い、アームを伸ばしたときには状態フィードバック制御を行なって手先の振動を抑えることを開示している。特許文献2は、2慣性系状態オブザーバーによる状態フィードバック制御によりロボットを制御するときに、ロボットの先端負荷の質量の大小に応じて状態オブザーバーの物理モデルすなわち制御パラメータを切り替えて制御を行なうことを開示している。なお特許文献3は、2慣性系状態オブザーバーによる状態フィードバック制御の具体例の1つを開示している。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平7-319546号公報
【文献】特許第6097174号公報
【文献】国際公開第2018/061097号
【非特許文献】
【0005】
【文献】伊藤 嘉昭、“大型ロボットの制振制御”、豊田中央研究所R&Dレビュー、1995年3月、第30巻、第1号、p.57
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載された方法は、関節軸周りの慣性モーメントの大小によりP-PI制御と状態フィードバック制御とを切り替えており、この方法をロボットの制御に適用した場合、ロボットにおいて制御対象の関節軸から見て先端側に保持されるワークの質量が大きいときには状態フィードバック制御がロボットの制御方法として選択されることになる。本発明者らの検討によれば、多関節ロボット、特に水平多関節ロボットに特許文献1の方法を適用した場合、ロボットに保持されるワークの質量が大きいときに十分な制振効果が得られなかった。
【0007】
本発明の目的は、多関節ロボットを制御する制御方法及び制御装置であって、ロボットが保持するワークの質量の変化によらずに振動の発生を抑制して安定した制御を行なうことができる制御方法及び制御装置を提供することにある。
【課題を解決するための手段】
【0008】
本発明者らが検討した結果、多関節ロボットでは、ロボットの手先に保持するワークの質量が大きいときは、状態フィードバック制御によりロボットの関節軸のモータを制御するよりも単慣性系モデルによる制御を行なったときの方が、ロボットに発生する振動を抑制することができて安定したロボットの制御を行なうことができることが判明した。一方、ワークの質量が小さいときは、状態フィードバック制御を実施することにより、より大きな制振性能が得られた。本発明の制御装置において使用可能な状態フィードバック制御は、例えば、2慣性系状態オブザーバによる状態フィードバック制御であり、一例として、特許文献3に記載された状態フィードバック制御である。また、本発明の制御方法において使用可能な単慣性系モデルに基づく制御は、例えば、P-PI制御、あるはPID制御である。指令は例えばモータ位置指令である。
【0009】
したがって本発明の制御方法は、少なくとも1つのモータに関して、モータ位置指令に基づいて、多関節ロボットが保持するワークの質量が閾値以下であるときには第1の制御を実施し質量が閾値を超えるときは第2の制御を実施するように、質量に応じて切り替えて制御を行なう。ここで第1の制御は、モータ位置指令とフィードバックされたモータ位置とを用いる、2慣性系状態オブザーバによる状態フィードバック制御であり、第2の制御は、モータ位置指令とフィードバックされたモータ位置とを用いる、P-PI制御またはPID制御である。
【0010】
本発明の制御方法では、ワークを多関節ロボットに保持させるロード動作と保持されているワークを多関節ロボットから降ろすアンロード動作とを少なくとも規定する動作プログラムに基づいて多関節ロボットの動作を制御し、動作プログラムによって第1の制御と第2の制御の切り替えを行うことができる。ワークの搬送などに用いられるロボットは、通常、動作プログラムに基づいて動作が制御され、そのような動作プログラムは、ロード動作とアンロード動作とを少なくとも規定している。動作プログラムにおいてワークをどのように搬送させるかが規定されているのであれば、動作プログラムの実行時においてワークの質量も既知であることと考えてよいので、動作プログラムによって第1の制御と第2の制御の切り替えを行うことにより、より少ない処理量で制御の切り替えを行うことができる。
【0011】
本発明の制御方法では、動作プログラムによってロボットを制御する場合に、ワークを保持していない多関節ロボットを動作プログラムに基づいてワークの受け取り位置まで移動させるときは第1の制御を実施し、その後、質量が閾値を超える場合にワークと多関節ロボットとが接触する前に第2の制御に切り替えることが好ましい。このように制御を行なうことにより、第1の制御を行なっている状態で重いワークを保持することによる振動の発生を防ぐことができる。
【0012】
本発明の制御方法では、動作プログラムによってロボットを制御する場合に、動作プログラムに基づいてワークを保持したまま多関節ロボットをワークの積み下ろし位置まで移動させ、アンロード動作を実行した後、第1の制御に切り替えるとよい。このように制御を行なうことにより、ワークを保持していないときは第1の制御が実施されることになって、高速かつ安定してロボットを移動させることができる。
【0013】
本発明の制御方法では、ワークの質量を測定または推定して第1の制御と第2の制御とを切り替えることができる。例えば、鉛直軸のモータが多関節ロボットに備えられている場合に、鉛直軸のモータに対するトルク指令値に基づいてワークの質量を判別してもよい。ロボットの機構の各部の質量は既知であるから、鉛直軸のモータに対するトルク指令値に対応する質量を求め、その質量からロボット側の各部の質量を差し引くことによって、ワークの質量を求めることができる。あるいは、所定条件を満たすワークを保持しているかを検出する在荷センサーが多関節ロボットに備えられている場合に、在荷センサーにより所定条件を満たすワークを検出したときに、第2の制御に切り替えるようにすることもできる。在荷センサーは質量を検出するものであってもよい。また、厚さや平面寸法が大きいワークは質量が大きいワークであると推定できるので、在荷センサーは、厚さや平面寸法を検出するセンサーであってもよい。鉛直軸のモータのトルク指令値や在荷センサーによりワークの質量を測定または推定することにより、動作プログラムによって制御の切り替えを行うときにおいてプログラムミスがあっても、重いワークを保持しているときに第1の制御によってロボットが制御されることを防ぐことができる。
【0014】
本発明の制御方法において多関節ロボットは、例えば水平多関節ロボットである。水平多関節ロボットはその手先にワークを保持してそのワークを搬送するためにしばしば用いられる。そのような水平多関節ロボットに本発明の制御方法を適用することによって、ロボットにおける振動の発生を抑制して安定した制御を実行するという本発明の効果がより発揮される。
【0015】
本発明の制御装置は、関節軸がモータによって駆動される多関節ロボットを制御する制御装置であって、モータ位置指令に基づいて、モータ位置指令とフィードバックされたモータ位置とを用いる、2慣性系状態オブザーバによる状態フィードバック制御を実行する第1制御部と、モータ位置指令に基づいて、モータ位置指令とフィードバックされたモータ位置とを用いる、P-PI制御またはPID制御を実行する第2制御部と、多関節ロボットが保持するワークの質量が閾値以下であるときには第1制御部を選択し、質量が閾値を超えるときは第2制御部を選択する選択部と、を備え、質量に応じて選択部によって選択された制御部の出力によってモータを制御する。
【0016】
本発明の制御装置によれば、ワークの質量が小さいときに2慣性系状態オブザーバによる状態フィードバック制御によってロボットが動作し、ワークの質量が大きいときにP-PI制御またはPID制御によってロボットが動作するので、ワークの質量によらずに振動の発生を抑えて安定してロボットを制御することができる。
【0017】
ワークを保持する機能を有する多関節ロボットは、通常、ワークを多関節ロボットに保持させるロード動作と保持されているワークを多関節ロボットから降ろすアンロード動作とを少なくとも規定して多関節ロボットの動作を制御する動作プログラムに基づいて制御される。そこで本発明の制御装置では、そのような動作プログラムを実行する演算部を設けるとともに、演算部からの切り替え指令により選択部が第1制御部と第2制御部のいずれかを選択するようにすることが好ましい。このように構成することによって、動作プログラムによって状態フィードバック制御とP-PI制御またはPID制御との切り替えが行われることとなって、より少ない処理量で制御の切り替えを行うことができる。
【0018】
本発明の制御装置では、演算部が設けられる場合に、演算部は、ワークを保持していない多関節ロボットをワークの受け取り位置まで移動させるときは選択部によって第1制御部を選択し、その後、質量が閾値を超える場合にワークと多関節ロボットとが接触する前に選択部によって第2制御部を選択することが好ましい。このように制御部の選択を行うことにより、状態フィードバック制御を行なっている状態で重いワークを保持することによる振動の発生を防ぐことができる。
【0019】
本発明の制御装置では、演算部が設けられる場合に、演算部は、ワークを保持したまま多関節ロボットをワークの積み下ろし位置まで移動させ、アンロード動作を実行した後、選択部によって第1制御部を選択するようにしてもよい。このように第1制御部の選択を行うことにより、ワークを保持していないときは状態フィードバック制御が実施されることになって、高速かつ安定してロボットを移動させることができる。
【0020】
本発明の制御装置では、ワークの質量を測定または推定して第1制御部と第2制御部との切り替えを行うことができる。例えば、多関節ロボットが鉛直軸のモータを備えているときに、演算部は、鉛直軸のモータに対するトルク指令値に基づいてワークの質量を求め、求めた質量に応じて切り替え指令を選択部に出力してもよい。あるいは、所定条件を満たすワークを保持しているかを検出する在荷センサーを多関節ロボットが備える場合であれば、在荷センサーにより所定条件を満たすワークを検出したときに第2制御部が選択されるようにしてもよい。鉛直軸のモータのトルク指令値や在荷センサーによりワークの質量を測定または推定することにより、動作プログラムによって制御の切り替えを行うときにおいてプログラムミスがあっても、重いワークを保持しているときに状態フィードバック制御によってロボットが制御されることを防ぐことができる。
【0021】
本発明の制御装置においてその制御対象となる多関節ロボットは、例えば水平多関節ロボットである。水平多関節ロボットはその手先にワークを保持してそのワークを搬送するためにしばしば用いられる。水平多関節ロボットの制御に本発明の制御装置を使用することによって、ロボットにおける振動の発生を抑制して安定した制御を実行するという本発明の効果がより発揮される。
【発明の効果】
【0022】
本発明によれば、多関節ロボットを制御するときに、ロボットが保持するワークの質量の変化によらずに振動の発生を抑え、安定した制御を行なうことが可能になる。
【図面の簡単な説明】
【0023】
【
図1】本発明の実施の一形態の制御装置の構成を示すブロック図である。
【
図2】水平多関節ロボットの構成の一例を示す図であって、(a)は平面図,(b)は正面図である。
【
図3】状態フィードバック制御を実施したときとP-PI制御を実施したときとにおけるロボットの先端の振動を説明する波形図である。
【
図4】(a),(b)は、状態フィードバック制御を実施したときの極零点配置図である。
【
図5】(a),(b)は、P-PI制御を実施したときの極零点配置図である。
【
図6】別の実施形態の制御装置の構成を示すブロック図である。
【発明を実施するための形態】
【0024】
次に、本発明の実施の形態について、図面を参照して説明する。
図1は、本発明の実施の一形態の制御装置を示している。
【0025】
図1に示される制御装置10は、関節軸ごとにその軸を駆動するモータ50が設けられる多関節ロボットの駆動制御に用いられるものである。モータ50には、モータ50によって駆動され、またモータ50に対して反力や外乱を加えるリンク60が機械的に接続している。
図1に示すリンク60は、注目しているモータ50に直接接続しているリンクあるいはアームだけを示すものではなく、注目しているモータ50に対して機械的な影響を与える、ロボットにおけるすべての部分を抽象的に表している。したがって
図1に示すリンク60は、ロボットにおけるアームなどのほかに、特に、モータ50に接続する減速機とロボットに保持されたワーク70(
図2参照)とが含まれている。モータ50をエンコーダ付きのモータであって、モータ位置が制御装置10にフィードバックされる。
図1では、多関節ロボットにおける1つの関節軸の制御に用いられる部分のみが示されているが、実際には、各関節軸のモータ50に対してそのモータ50を制御するための機構が設けられる。
【0026】
制御装置10は、指令、例えばモータ位置指令に基づいてモータ50の位置と速度との制御を行なう。モータ50の位置と速度との制御のために、制御装置10は、モータ位置指令に基づいてモータ50の状態フィードバック制御を実行する状態フィードバック制御部11と、モータ位置指令に基づいてモータ50の単慣性系モデルに基づく制御を実行する単慣性系制御部12と、状態フィードバック制御部11の出力と単慣性系制御部12の出力とのいずれか一方を選択する選択部13とを備えている。状態フィードバック制御部11は、モータ位置がフィードバックされており、2慣性系状態オブザーバによる状態フィードバック制御、例えば特許文献3に記載された状態フィードバック制御を実行する。単慣性系制御部12にもモータ位置がフィードバックされており、例えば、P-PI制御あるいはPID制御を実行する。選択部13は、多関節ロボットが保持するワーク70の質量が閾値以下であるときには状態フィードバック制御部11を選択し、ワーク70の質量が閾値を超えるときは単慣性系制御部12を選択する。モータ50は、選択部13によって選択された出力に基づくモータ電流によって駆動される。
【0027】
図2は、
図1に示す制御装置10によって制御される多関節ロボットの一例を示している。ここに示される多関節ロボットは、ワーク70の搬送に用いられる水平多関節ロボットである。
図2において、(a)は水平多関節ロボットの平面図であり、(b)は水平多関節ロボットの正面図である。
図2(b)には、ロボットに接続される制御装置10も描かれている。図示されるロボットは、基台55に一端が取り付けられて水平に延びる第1リンク60Aと、第1リンク60Aの他端に一端が取り付けられて水平に延びる第2リンク60Bと、第2リンク60Bの他端に取り付けられロボットのエンドエフェクタであるハンド61とを備えている。ハンド61上に、搬送対象物であるワーク70が載置される。ハンド61において、第2リンク60Bとの接続位置とは反対側の先端がこのロボットの手先位置となる。
【0028】
基台55と第1リンク60Aとの接続位置が関節Aであり、関節Aを駆動するために基台55内にモータ50Aと減速機51Aが設けられている。第1リンク60Aは、減速機51Aを介してモータ50Aによって関節Aを回転中心として水平面内を回転するように駆動される。同様に、第1リンク60Aと第2リンク60Bとの接続位置が関節Bであり、関節Bを駆動するために第1リンク60A内にモータ50Bと減速機51Bが設けられている。第2リンク60Bは、減速機51Bを介してモータ50Bによって関節Bを回転中心として水平面内を回転するように駆動される。第2リンク60Bとハンド61との接続位置が関節Cであり、関節Cを駆動するために第2リンク60B内にモータ50Cと減速機51Cが設けられている。ハンド61は、減速機51Cを介してモータ50Cによって関節Cを回転中心として水平面内を回転するように駆動される。その結果、このロボットでは、モータ50A,50B,50Cを駆動することにより、ハンド61の向きを保ったまま、図示進行方向の矢印で示すように、基台55に近づいたり基台から遠ざかったりするようにハンド61を水平面内で移動させることができる。水平面内の方向であって進行方向に直交する方向を横方向とする。ロボットにおいて関節Aからハンド61までの部分は水平多関節機構である。さらにロボットは、ハンド61の垂直方向で昇降させるために、基台55の内部に昇降機構56が設けられている。昇降機構56は、ボールねじなどを備え、鉛直軸のモータ50Zにより減速機51Zを介して駆動され、ロボットの水平多関節機構を昇降させる。
【0029】
次に、本実施形態における状態フィードバック制御と単慣性系モデルによる制御との切り替えについて、
図3を用いて説明する。
図2に示したロボットにおいてモータ50A,50B,50Cを駆動することにより、第1リンク60A及び第2リンク60Bが完全に折り畳まれた状態と、第1リンク60A及び第2リンク60Bが一直線状に最大限伸びた状態との間で、
図2に示す進行方向に沿ってハンド61を往復移動させることを考える。
図3において(a)に示す波形は、ロボットの手先位置に関する位置指令の時間変化を示している。そしてこのようにハンド61を往復移動させたときの手先位置での横方向での振動の速度を調べた。ハンド61に保持されるワーク70として、質量が2kgのもの(「ワーク質量:小」に対応)と質量が80kgのもの(「ワーク質量:大」に対応)とを使用した。また、位置指令に基づくモータ50A,50B,50Cの制御に状態フィードバック制御を用いる場合とP-PI制御を用いる場合の両方において、横方向での振動の速度を調べた。結果を
図3の(b)~(e)に示す。
【0030】
モータ50A,50B,50Cの制御に状態フィードバック制御を用いたときは、ワーク70の質量が小さければ、
図3(b)に示すように、良好な制振効果が得られたが、ワーク70の質量が大きいと、
図3(c)に示すように振動が収束せず、発散した。すなわち、ワーク70の質量が大きいときは、状態フィードバック制御によっては制御が不安定になることが分かった。一方、モータ50A,50B,50Cの制御にP-PI制御を用いたときは、ワーク70の質量が小さい場合(
図3(d))及び質量が大きい場合(
図3(e))のいずれにおいても制振効果が得られた。ただし、ワーク70の質量が小さいときは、状態フィードバック制御の方がP-PI制御よりも良好な制振効果を示した。
【0031】
このように、ワークの質量に応じて制御の挙動が変化することについて、
図4及び
図5を用いて説明する。
図4及び
図5は、
図3の(b)~(e)に示す各々の場合における、関節Aのモータ50Aの位置指令から関節Aの角度までの極-零点の配置を示しており、図中、一点鎖線の四角で囲んだ極は代表極である。
図4は、モータ制御に状態フィードバック制御を使用した場合を示しており、(a)はワーク質量が小さいときの極零点配置図であり、(b)はワーク質量が大きいときの極零点配置図である。
図5はモータ制御にP-PI制御を使用した場合を示しており、(a)はワーク質量が小さいときの極零点配置図であり、(b)はワーク質量が大きいときの極零点配置図である。
【0032】
多関節ロボットの場合、関節間のトルクに軸間干渉力が発生する。ワークの質量が大きい場合には軸間干渉力が大きくなり、各軸を2慣性系では近似できなくなり、状態フィードバック制御よりも単慣性系制御の方がロバスト性が高くなる。各軸モータ位置指令値から各軸関節角度までの代表極は、軽いワークを保持する場合は、
図4(a)と
図5(a)とを比較すると分かるように、単慣性系モデル基づく制御(P-PI制御)よりも状態フィードバック制御の方が虚軸から負の方向へ離れている。したがって、状態フィードバック制御の方が制振性能が高い。逆に、重いワークを保持する場合は、
図4(b)と
図5(b)とを比較すると分かるように、代表極の実部は、単慣性系モデルに基づく制御では負であるが、状態フィードバック制御では正であっていわゆる不安定領域にある。したがって、単慣性系モデルに基づく制御の方が安定性が高い。
【0033】
そこで本実施形態では、モータの制御形態を、ワーク70の質量が小さい場合は状態フィードバック制御に、質量が大きい場合には単慣性系モデルに基づく制御に切り替えることで、軽いワークを搬送する際の制振性能を確保しつつ、重いワークを載せた状態での安定性を確保している。状態フィードバック制御において質量が大きいワークを保持するときに制御が不安定になることは、系において減速機などによるばね要素の成分が大きくなる場合や、着目している関節からワークまでの距離が長くなる場合に顕著になる。したがって、
図2に示すロボットにおいて、ワーク70の保持位置から遠いモータ、例えば関節Aのモータ50Aにおいてのみ、あるいは関節Aと関節Bのモータ50A,50Bでのみ、ワーク70の質量に応じた状態フィードバック制御と単慣性系モデルに基づく制御の切り替えを行うようにしてもよい。
【0034】
以上説明した実施形態では、ロボットにおいて保持されるワークの質量に応じて状態フィードバック制御と単慣性系モデルに基づく制御とを切り替えてモータを制御することにより、ロボットが保持するワークの質量の変化によらずに振動の発生を抑え、安定した制御を行なうことが可能になる。
【0035】
図6は、本発明の別の実施形態の制御装置10を示している。一般に多関節ロボットは、動作プログラムを実行することによって動作が制御される。ワーク70を搬送しあるいは保持するロボットの動作プログラムは、ワーク70を多関節ロボットの例えばハンド61に保持させるロード動作と、保持されているワークを多関節ロボットから降ろすアンロード動作とを少なくとも規定し、さらにロボットの移動経路などを規定する。ユーザー装置間でワーク70の搬送を行うこととして、ロード動作では、ワーク70を保持していない状態のロボット10が搬送元のユーザー装置におけるワーク70の受け取り位置まで移動する。ロード動作において実際にワーク70をロボット10のハンド61上に保持させるときは、例えば、ロボット10の鉛直軸方向の動きによりハンド61上にワーク70が載置されるようにしてもよいし、ユーザー装置側の動きによってハンド61上にワーク70が載置されるようにしてもよい。把持型のハンドを用いるときはハンドによってワークをつかむようにしてよい。同様にアンロード動作では、ワーク70を保持しているロボット10が搬送先のユーザー装置におけるワーク70の積み下ろし位置にまで移動する。アンロード動作において実際にワーク70をロボット10のハンド61から積み下ろすときは、ロボット10の鉛直軸方向の動きによりワーク70がユーザー装置側に積み下ろされるようにしてもよいし、ユーザー装置側の動きによってワーク70が積み下ろされるようにしてもよい。把持型のハンドを用いるときはハンドがそのつかんでいるワークを手放すようにしてもよい。
【0036】
図6に示す制御装置10は
図1に示す制御装置10と同様のものであるが、さらに、動作プログラムを実行してモータ位置指令を生成する演算部14と、動作プログラムを格納する記憶部15とを備えている。動作プログラムは、一般に、どのようなワークに対してどのような処理を行うのか、例えばどこからどこへワークを搬送するのかが既知であるものとして作成されているので、動作プログラムの実行時においてワークの質量は既知であると考えることができる。そこで動作プログラムに、状態フィードバック制御と単慣性系モデルに基づく制御のどちらによってモータを制御するかを記述しておけば、演算部14は、動作プログラムを実行したときに選択部13に対して切り替え指令を出力することができ、選択部13は、切り替え指令に基づいて状態フィードバック制御部11の出力と単慣性系制御部12の出力との切り替えを行うことができる。
【0037】
演算部14が実行する動作プログラムによってロボットが制御される場合、ワーク70を保持していない状態でロボットをワーク70の受け取り位置まで移動させるときは状態フィードバック制御部11を選択し、その後、重いワーク(閾値を超える質量のワーク)を保持するときに、ワーク70とハンド61とが接触する前に選択部13により単慣性系制御部12の出力を選択することができる。このように制御を行なうことにより、状態フィードバック制御を行なっている状態で重いワーク60を保持することによる振動の発生を防ぐことができる。また、演算部14が実行する動作プログラムによってロボットが制御される場合、ワーク70を保持したロボットをワークの70の積み下ろし位置まで移動させ、アンロード動作を実行した後、選択部13によって状態フィードバック制御部11の出力を選択することができる。このように制御を行なうことにより、ワーク70を保持していないときは状態フィードバック制御が実施されることになって、高速かつ安定してロボットを移動させることができる。
【0038】
動作プログラムに基づいて演算部14が選択部13に切り替え指令を出力する場合、動作プログラムのプログラムミスにより、重いワーク70を保持しているときに状態フィードバック制御が実行されるおそれがある。また、動作プログラムによらずにロボットを運転する手動運転動作では、状態フィードバック制御と単慣性系モデルに基づく制御とを自動的に切り替えられることが好ましい。そこで、本実施形態の制御装置10では、ワークの質量を測定または推定して状態フィードバック制御と単慣性系モデルに基づく制御とを切り替えることができるように構成することも可能である。
【0039】
図2に示すように鉛直軸のモータ50Zを備えるロボットを制御する制御装置10では、鉛直軸のモータ50Zを制御する鉛直軸制御部16が設けられる。ロボットが昇降しないときであっても鉛直軸のモータ50Zはロボットとワーク70の質量を保持するための保持トルクを発生し、垂直軸制御部16は、保持トルクに見合うトルク指令値を発生し、トルク指令値に対応するモータ電流でモータ50Zを駆動する。ロボットの機構の各部の質量は既知であるから、演算部14は、鉛直軸のモータに対するトルク指令値に対応する質量を求め、その質量からロボット側の各部の質量を差し引くことによってワーク70の質量を求めることができ、ワーク70の質量に応じて切り替え指令を出力することができる。
【0040】
ロボットでは、所定条件を満たすワーク70を保持しているかどうかを検出する在荷センサー62をハンド61に設け、在荷センサー62での検出結果を演算部14に送信する構成となっていることがある。そのような在荷センサー62が設けられている場合には、在荷センサー62により所定条件を満たすワークを検出したときに、切り替え指令により選択部13が単慣性系制御部12の出力を選択するようにすることもできる。在荷センサーは質量を検出するものであってもよいが、厚さや平面寸法が所定値以上のワーク70を検出するものであってもよい。厚さや平面寸法が大きいワークは質量が大きいワークであると推定できるので、在荷センサー62の検出結果に応じて状態フィードバック制御と単慣性系モデルに基づく制御とを切り替えることにより、重いワークを保持しているときに状態フィードバック制御によってロボットが制御されることを防ぐことができる。
【0041】
図6に示した制御装置10を用いることにより、動作プログラムによって状態フィードバック制御と単慣性系モデルに基づく制御の切り替えを行うことができるので、より少ない処理量で制御の切り替えを行うことができる。
【符号の説明】
【0042】
10…制御装置;11…状態フィードバック制御部;12…単慣性系制御部;13…選択部;14…演算部;15…記憶部;50,50A,50B,50C,50Z…モータ;51A,51B,51C,51Z…減速機;55…基台;56…昇降機構;60,60A,60B…リンク;61…ハンド;62…在荷センサー;70…ワーク。