JP3552076B2 - Robot control method - Google Patents

Robot control method Download PDF

Info

Publication number
JP3552076B2
JP3552076B2 JP16032696A JP16032696A JP3552076B2 JP 3552076 B2 JP3552076 B2 JP 3552076B2 JP 16032696 A JP16032696 A JP 16032696A JP 16032696 A JP16032696 A JP 16032696A JP 3552076 B2 JP3552076 B2 JP 3552076B2
Authority
JP
Japan
Prior art keywords
torque
motor
robot
command signal
teaching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP16032696A
Other languages
Japanese (ja)
Other versions
JPH1011121A (en
Inventor
佳子 入山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yaskawa Electric Corp filed Critical Yaskawa Electric Corp
Priority to JP16032696A priority Critical patent/JP3552076B2/en
Publication of JPH1011121A publication Critical patent/JPH1011121A/en
Application granted granted Critical
Publication of JP3552076B2 publication Critical patent/JP3552076B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P70/00Climate change mitigation technologies in the production process for final industrial or consumer products
    • Y02P70/10Greenhouse gas [GHG] capture, material saving, heat recovery or other energy efficient measures, e.g. motor control, characterised by manufacturing processes, e.g. for rolling metal or metal working

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)
  • Control Of Position Or Direction (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、教示再生形の工業用ロボットに用いて好適なロボット制御装置及びその制御方法に関する。
【0002】
【従来の技術】
従来の工業用ロボット制御においては、消費電力を低減する手法として、ロボットの動作停止時に発生する熱エネルギーを電力に変換するものが提案されている。又、特開平5−138562号公報では、ロボットの静止状態において、その待機姿勢を重力トルクが小さい姿勢とすることによって消費電力を低減するロボット制御方法が開示されている。
【0003】
【発明が解決しようとする課題】
ところが、上述の熱エネルギーを電力に変換するものにおいては、積極的な発電を行うために、モータアンプ部に各々発電機を設けなければならない。このため、コントローラが大形化する上に、コスト上昇にもつながるという問題点を有していた。
【0004】
一方、待機姿勢を変更するロボット制御方法では、待機姿勢を重力トルクが小さい姿勢とするために、ワークやその供給装置又はその他の周辺機器等の環境と干渉する場合がある。従って、かかる場合には特開平5−138562号公報に開示された方法は適用することができない。又、このような方法においては、ロボットが、教示者が教示した姿勢と異なる姿勢をとることにもなるという問題点を有していた。
【0005】
更に、一般の工業用ロボットに用いる減速機は、回転開始時の摩擦抵抗により起動トルクが非常に大きくなるという問題もある。
【0006】
本発明はこのような事情に鑑みてなされたもので、減速機の摩擦抵抗を逆に利用し、ロボットの動作停止時における待機姿勢を教示された姿勢に保ちつつ、そのときの保持トルクを減少させ、消費電力を低減してランニングコストを下げることができるロボット制御装置及びその制御方法を提供することを目的とする。
【0007】
【課題を解決するための手段】
上記問題点の解決のために、本発明を次のように構成した。
【0008】
請求項1記載の発明は、減速機を介して伝達されるモータのトルクによって可動部分を動作させるロボットを、教示データに基づいて制御するロボット制御方法において、前記ロボットに対して前記教示データに基づく第1の指令信号を出力する第1の指令信号出力手段と、前記第1の指令信号に基づく前記ロボットの動作中において、前記ロボットの動作が一定の待機姿勢を保持する待機状態か否かを判断する判断処理手段と、前記判断処理手段により待機状態であると判断されたときに、前記モータのトルクを、当該トルクと前記減速器の摩擦トルクとによって前記可動部分が静止状態に維持される範囲で減少させる第2の指令信号を出力する第2の指令信号出力手段とを有するロボット制御装置によるロボット制御方法であって、前記教示データの教示点へ前記ロボットを移動させる第1の過程と、前記ロボットが教示点へ移動してきたときに、当該教示点が待機姿勢をとるべき位置であるか否か判断する第2の過程と、前記第2の過程において待機姿勢をとるべき位置と判断された場合に、前記モータのトルクを一定方向に微小量ずつ変化させる第3の指令信号を出力する第3の過程と、前記第3の指令信号により、前記可動部分が静止状態から動作した直前の当該第3の指令信号を記憶する第4の過程と、前記モータのトルクを前記第3の過程における一定方向と逆の方向に微小量ずつ変化させる第4の指令信号を出力する第5の過程と、前記第4の指令信号により、前記可動部分が静止状態から動作した直前の当該第4の指令信号を記憶する第6の過程と、前記第4及び第6の過程において記憶した当該第4及び第5の指令信号のうち、前記モータに対して少ないトルクを指示する指令信号を当該教示点における前記第2の指令信号とする第7の過程とにより決定された前記第2の指令信号に基づいて前記ロボットを制御することを特徴としている。
【0009】
請求項2記載の発明は、請求項1記載のロボット制御方法において、前記ロボットを各教示点へ移動させて前記第2〜第7の過程を繰り返し、待機姿勢を保持するすべての教示点における前記第2の指令信号を決定して記憶し、前記教示データ及び記憶した前記第2の指令信号に基づいて前記ロボットを制御することを特徴としている。
【0010】
請求項3記載の発明は、前記第1及び第2の指令信号は、前記モータに対する前記可動部分の動作速度を指示する速度指令信号である請求項1記載のロボット制御方法であって、前記判断処理手段により待機状態であると判断されたときに、前記可動部分の動作量に基づいて前記可動部分を静止状態に維持させるに必要な前記モータのトルクを求める第10の過程と、前記第10の過程において求めた前記必要な前記モータのトルクが0であった場合、前記可動部分を微小範囲で動作させて静止状態における前記モータのトルクを0とする前記微小範囲の動作における前記可動部分の動作速度を指示する前記第2の指令信号を出力し、前記可動部分を前記微小範囲で動作させる第11の過程と、前記第10の過程において求めた前記必要な前記モータのトルクが0でなかった場合、前記モータのトルクが減少して前記可動部分が動作する直前まで前記第2の指令信号を微小量ずつ変更する第12の過程とを有することを特徴としている。
【0011】
【発明の実施の形態】
<構成>
A.全体構成
以下に図面を参照して本発明の実施の形態について説明する。図1は本発明の一実施形態によるロボット制御装置を適用した塗装ロボットシステムの構成を示す図である。
【0012】
図において、1はコントローラであり、ティーチングペンダント2からの指示データを受けると共に、ケーブル3を介してマニピュレータ4と動作信号及び電流の授受を行い、これによりマニピュレータ4を制御する。このコントローラ1は、マニピュレータ4の制御プログラム、教示データ、各種制御パラメータ等を記憶する記憶装置と、それらプログラム等と前記指示データとに基づいて各種演算処理を行う演算処理装置とを有しており、該演算処理装置による演算処理の結果に基づいてマニピュレータ4への各種動作指令信号及び電流の供給を行う。尚、ここにいう演算処理の具体的内容については、後述の動作説明において明らかにする。
【0013】
ティーチングペンダント2は、操作者がマニピュレータ4の動作を指示するための指示データを入力する入力装置であり、入力された指示データをコントローラ1へ出力する。又、ケーブル3は、コントローラ1とマニピュレータ4とを接続する部材であり、上記動作信号及び電流を伝達する。
【0014】
マニピュレータ4は、本塗装ロボットシステムにおける塗装ロボットの主要部であって、床面に固定された固定ベース5によって床面の所定位置に取り付けられており、図中の符合6〜17で示す旋回ベース、モータ、アーム等の構成要素によって構成されている。以下にこれらの各構成要素について説明する。尚、この図においては、各モータの出力軸の連結部分(マニピュレータ4の関節部分)に設けた減速機は省略することとし、減速機を設けた連結部分の構造の詳細については後述することとする。
【0015】
6は固定ベース5に取り付けられた第1モータであり、その出力軸が減速機を介して旋回ベース7と連結されている。この第1モータ6は、コントローラ1から供給される動作指令信号に基づいて駆動され、旋回ベース7を図中の矢印θ1方向に回動させる。
【0016】
又、旋回ベース7の図中上側部分には、第2モータ8が取り付けられており、この第2モータ8の出力軸が減速機を介して第1アーム9の一端と連結されている。そして、第2モータ8がコントローラ1から供給される動作指令信号に基づいて駆動され、第1アーム9が第2モータ8の回転軸を中心に図中の矢印θ2方向に回動移動するようになっている。
【0017】
一方、第1アーム9の先方端側には、第3モータ10が取り付けられており、この第3モータ10の出力軸が減速機を介して第2アーム11と連結されている。そして、第3モータ10がコントローラ1から供給される動作指令信号に基づいて駆動され、第2アーム11が第3モータ10の回転軸を中心に図中の矢印θ3方向に回動移動するようになっている。
【0018】
第2アーム11には、上記第3モータ10の回転軸との連結部側に手首モータケース12が取り付けられており、先方端側に第1手首ユニット13、第2手首ユニット14及び第3手首ユニット15が取り付けられている。
【0019】
ここで、手首モータケース12内には、第4、第5及び第6モータ(図示略)が収納されており、これら第4、第5、第6モータの各駆動力をそれぞれ第1手首ユニット13、第2手首ユニット14、第3手首ユニット15へ伝達する伝達機構(図示略)が第2アーム11の内部に設けられている。又、第1手首ユニット13、第2手首ユニット14、第3手首ユニット15は、それぞれ、図中の矢印θ4、θ5、θ6方向に回動自在な連結軸を介して順次取り付けられている。そして、上記同様、第4、第5、第6モータがコントローラ1から供給される動作指令信号に基づいて駆動され、これにより、第1手首ユニット13、第2手首ユニット14、第3手首ユニット15が、それぞれθ4、θ5、θ6方向に回動する。
【0020】
16は第3手首ユニット15に取り付けられたブラケットであり、このブラケット16を介して塗装ガン17が取り付けられている。塗装ガン17は、一定の方向へ一定の広がりをもって塗料を噴射する塗装用具であり、上記第1、第2アーム及び第1、第2、第3手首ユニットの回転角度θ1〜θ6に基づく所定位置及び所定方向にて塗料を噴射し、ワーク(図示略)を塗装する。
【0021】
このように、本塗装ロボットシステムにおいては、第1アーム9、第2アーム11、第1手首ユニット13、第2手首ユニット14及び第3手首ユニット15の回転角度θ1〜θ6によって、塗装ガン17の位置(x)とマニピュレータ4の姿勢(R)とが決定される。そして、これらの位置、姿勢及び回転角度等は、コントローラ1における演算処理により決定され、その決定に基づく第1〜第6モータへの動作指令信号によって制御される。
【0022】
B.関節部分の構造
ここで、減速機を設けたモータ出力軸の連結部分、すなわち、マニピュレータ4の関節部分の構造について説明する。図2にその関節部分の一例としてθ2方向に回動する第2モータ8と第1アーム9との関節部分の構造を示す。尚、この図はマニピュレータ4を図1中の矢印A方向から見たものに相当する。
【0023】
図2において、18は第2モータ8の出力軸である。そして、19が出力軸18に取り付けられた減速機である。この減速機19は、出力軸18の回転速度(角速度)を所定の比率で減速(例えば1/100に減速)して第1アーム9へ増幅した(例えば100倍とした)トルクを伝達し、これにより、第1アーム9の回転角度θ2を所定量変位させる。尚、マニピュレータ4の他の関節部分(θ1、θ3〜θ6方向に回動する関節部分)についても同様に減速機が設けられている。
【0024】
<保持トルク>
ここでは、まず、上記減速機の起動トルク及びランニングトルクについて、図3を参照して説明する。この図において、横軸のθ′は減速機を介して伝達される回転速度を、縦軸のτはそのときに必要とされるモータトルクを表している。
【0025】
このグラフに示すように、伝達回転速度θ′=0(静止時)におけるモータトルク(保持トルク)は、+τa〜−τaの間のどの値でもよい。ここで、τaは減速機の摩擦抵抗による摩擦トルクの大きさである。又、θ′がある所定の範囲+θ′c〜−θ′cを越えると、ランニングトルクτは、
【数1】

Figure 0003552076
と表すことができる。
【0026】
続いて、上記マニピュレータ4の関節におけるアーム及び手首ユニットの保持トルクについて説明する。ここでは、図4に示すように、第1アーム9と第2アーム11が90°をなす状態(θ3=90°)において、第1アーム9の回転角度θ2が−20°(図中一点鎖線Ι)から+90°(一点鎖線Π)まで変化する場合の第2モータ8の保持トルクを例として説明する。尚、ここでの回転角度は、図中鉛直方向から左側への回転角度を+、右側への回転角度を−としている。
【0027】
図において、20は第1モータ6と旋回ベース7の連結部分の関節を、21は第2モータ8と第1アーム9の連結部分の関節を、22は第3モータ10と第2アーム11の連結部分の関節を、それぞれ表している。以下においては、便宜上、これらの関節をそれぞれの回転角度θ1、θ2、θ3に付した添え字に応じて第1関節、第2関節、第3関節と呼ぶこととする。又、上記第4〜第6モータと第1〜第3手首ユニットの連結部分についても同様に第4関節、第5関節、第6関節と呼ぶ。
【0028】
23は第2及び第3関節間のアームの質量中心を表す。ここで、質量中心23と第2関節との間の距離はg2とし、このアームの質量はm2、長さはl2とする。24は第3及び第4関節間のアームの質量中心を表す。ここで、この質量中心24のx,z方向における位置はそれぞれxm3,zm3、第3関節との間の距離はg3とし、このアームの質量はm3、長さはl3とする。25は第4関節前方のアームの質量中心を表す。この質量中心25のx,z方向における位置はそれぞれxm4,zm4とする。
【0029】
このように各距離や質量等を設定すると、マニピュレータ4の姿勢を保持するために必要な対重力トルクτgは、
【数2】
Figure 0003552076
と表すことができる。尚、ここで、
【数3】
Figure 0003552076
であり、G=−9.8m/s(重力加速度)である。
【0030】
数2の対重力トルクτgをグラフに示すと、図5の実線▲1▼のようになる。そして、この実線▲1▼に上述の摩擦トルク+τa、−τa(図3参照)を加えると、図5の点線▲2▼、▲3▼に示すトルク曲線となる。すなわち、この2つの点線▲2▼及び▲3▼で囲まれた領域が、第1アーム9を静止させてマニピュレータ4の姿勢を保持するために第2モータ8に要求される保持トルクとなる。この保持トルクの最小値は、実線▲4▼で示すような曲線となる。
【0031】
ここで、モータによるマニピュレータの動作や姿勢の保持に必要な電流は、トルクτと比例関係にあるので、トルクτの絶対値又は実効値が小さいほど消費電力は少なくなる。従って、マニピュレータ4の静止時においては、第2モータ8を上述の実線▲4▼上のトルクにて駆動させることが消費電力を必要最小限に抑えることになる。
【0032】
尚、ここでは、回転角度θ2、θ3が所定の範囲内である場合の第2モータ8の保持トルクについて説明したが、他の回転角度範囲及び他のモータについても、上記同様の幾何学的解析によって、静止時における必要最小限の保持トルクを求めることができる。
【0033】
<動作>
A.教示データ及び目標位置
次に、本塗装ロボットシステムの動作について説明する。まず、動作説明の前提となるロボットの教示データについて説明する。通常、ロボットの教示データは、軌道の折り返し点又は代表点と、連続した複数の教示点間の補間条件と、移動速度とにより決定される。例えば、図6の軌道では、P0、P1、P2、…で示す点が教示点である。本塗装ロボットシステムにおいては、塗装ガン17の軌道上の点を教示者がティーチングペンダント2から入力し、これを教示点としてコントローラ1の記憶装置に記憶する。
【0034】
又、塗装ロボットの実際の動作においては、コントローラ2の演算処理装置によって、図6中にk、k+1、…で示したような目標位置を単位時間毎に算出して動作制御が行われる。ここにいう単位時間とは、離散時間形の制御系では現在位置等の信号と指令信号の授受が行われるサンプリングタイムがこれに当たり、本塗装ロボットシステムにおいては、コントローラ1の演算処理装置により、5msのサンプリングタイム毎に目標位置を算出することとする。
【0035】
又、以下においては、教示点のカウンタをi(i=0、1、2、…、n)、目標位置のカウンタをk(k=0、1、2、…、N)とし、教示点PiとPi+1との間の目標位置xrを5ms毎にコントローラ1の演算処理装置によって求めるものとする。尚、カウンタkの最大値Nは、教示点PiからPi+1までの移動時間をT、サンプリングタイムをTsとすると、N=T/Tsとなる。これは、教示点間を分割する目標位置の総数(以下、総分割数という)に相当する。
【0036】
B.第1動作モード
次に、本塗装ロボットシステムにおいて実際にモータの保持トルクを減少させる手法による動作について説明する。まず、第1の動作モードとして、コントローラ1が第1〜第6の各モータから各関節の現在位置回転角度θf(θf=[θf1,θf2,…,θf6])及び各モータのトルクτf(τf=[τf1,τf2,…,τf6])の信号を受けると共に、コントローラ1が第1〜第6の各モータへ回転速度指令θr′(θr′=[θr1′,θr2′,…,θr6′])及びトルク指令τr(τr=[τr1,τr2,…,τr6])の指令信号を出力する場合について説明する。
【0037】
(1)動作制御の態様
図7に第1動作モードにおける塗装ロボットの制御ブロック図を示す。この図に示すように、本動作モードにおいては、目標位置回転角度θr(θr=[θr1,θr2,…,θr6])に現在位置回転角度θf(θf=[θf1,θf2,…,θf6])を、目標トルク指令τr(τr=[τr1,τr2,…,τr6])に現在モータトルクτfを、それぞれフィードバックし、以下のように各モータへの動作指令信号及び電流値を算出する。
【0038】
まず、現在位置回転角度θfの目標位置回転角度θrからの偏差に基づき、位置補償器Gp(z)において目標位置回転角度θrに各関節を保持するような回転速度指令θr′を算出する。そして、この回転速度指令θr′からの現在回転速度θf′の偏差により、各関節を回転速度θr′で回転させるために各モータへ供給すべき電流値を速度補償器Gv(z)にて算出し、モータ及びアーム等からなる制御対象へ出力する。
【0039】
一方、図中のトルク補償器は、必要に応じて現在モータトルクτfの目標トルクτrからの偏差に基づく電流指令を算出し、各モータへ出力する。尚、積分演算器z/z−1では、各モータからの回転速度θf′(θf′=[θf1′,θf2′,…,θf6′])が積分され、現在位置回転角度θfとしてフィードバックされる。本動作モードにおいてはこのようにして塗装ロボットの動作を制御する。
【0040】
(2)目標保持トルクの算出
ここでは、教示データに対する待機時の待機姿勢における目標トルクτrを算出する処理手法について説明する。ここで、待機姿勢とは、所定時間、一定姿勢を保持することをいい、該所定時間中位置フィードバック値に変化がない状態である。以下、かかる待機姿勢を保持するに必要な最小限の目標トルクを目標保持トルクといい、符合τgr(τgr=[τgr1,τgr2,…,τgr6])で表す。この目標保持トルクτgrを求める処理は、教示者により与えられた教示データに基づき、以下に述べるように教示点間の移動及び待機時における待機姿勢を上記制御態様によって制御しつつ行う。
【0041】
図8に目標保持トルクτgrの算出処理方法の手順を示す。図示のように、まず、コントローラ1の演算処理装置にて記憶装置内の教示データの読み込みを行い(ステップS1)、教示点総数nを決定する(ステップS2)。そして、初期位置(P0)から最終教示点(Pn)までの各教示点Pi(i=0、1、2、…、n)について、順次ステップS3以下に示す手順による処理を行う。
【0042】
ステップS3では、教示点Piの位置及び該位置での姿勢へ塗装ロボットを移動させる。尚、この移動は、5msのサンプリングタイム毎に目標位置xrを算出して上記制御態様により行われるが、詳細は目標保持トルクτgr算出後の確定した動作制御(後述の(3))において説明する。そして、教示点Piにおいて塗装ロボットの姿勢変化が一定時間ない場合には、ステップS4で塗装ロボットが待機する位置であると判断し、ステップS5へ進む。
【0043】
ステップS5では、各関節の目標位置回転角度を微小量ずつ変化させることにより、塗装ロボットの姿勢を静止状態からゆっくりと前後(正方向及び負方向)に動作させ、このときの動作する直前のモータトルクにより、姿勢保持トルクτa(τa=[τa1,τa2,…,τa6)及びτa(τa=[τa1,τa2,…,τa6)を求める。この姿勢保持トルクτa、τaは、正方向、負方向についての姿勢を保持し得る限界のモータトルクである。
【0044】
ここで、上記姿勢保持トルクτa及びτaを求める処理について、図9を参照して詳述する。尚、図9においては、第1、第2、…、第6の関節番号をj(j=1、2、…、6)で表す。
【0045】
まず、ステップS10で教示点Piの位置及び該位置での姿勢を目標値xr0、Rr0とし、この目標値により各関節の目標位置回転角度θr1,θr2,…,θr6を算出する(ステップS11)。そして、第1〜第6のぞれぞれの関節について、順次、ステップS12〜S15の処理を行う。
【0046】
初めに、第j関節が正方向へ動作し始めるまで(θf>0となるまで)目標位置回転角度θrjを微小量dθjずつ増加させ(ステップS12)、動作直前の保持トルクτfjを正方向の姿勢保持トルクτajとして記憶する(ステップS13)。
【0047】
次いで、同関節が負方向へ動作し始めるまで(θf<0となるまで)目標位置回転角度θrjを微小量dθjずつ減少させ(ステップS14)、動作直前の保持トルクτfjを負方向の姿勢保持トルクτajとして記憶する(ステップS15)。このようにして、第1〜第6関節それぞれについて正方向及び負方向の姿勢保持トルクτa及びτaを求め、図8のステップS6へと進む。
【0048】
次に、上述のようにして求めた姿勢保持トルクτa及びτaの大きさについてステップS6で大小比較を行う。つまり、各関節における正方向と負方向の姿勢保持トルクの絶対値|τaj|及び|τaj|を比較するのである。そして、|τaj|の方が大きい場合には、この点(教示点Pi)における第j関節の目標保持トルクτgr(i)jをτajとし(ステップS7)、|τaj|の方が大きい場合には、目標保持トルクτgr(i)jをτajとする(ステップS8)。ここに、目標保持トルクτgr(i)jの添え字(i)は、教示点Piにおける目標保持トルクであることを表す。このように、教示点Piにおける目標保持トルクτgr(i)([τgr(i)1,τgr(i)2,…,τgr(i)6])を求める。
【0049】
尚、ステップS4において、教示点Piで塗装ロボットの姿勢が変化する場合には、塗装ロボットが待機する場合でないと判断し、ステップS5以降の処理は行わない。
【0050】
以上述べた処理により、塗装ロボットが待機するすべての教示点における目標保持トルクτgrを求める。尚、上述の処理は、所定時間(例えば100時間)毎に行い、適宜τgr(i)の値を更新する。これにより、部材の摩耗による摩擦トルク(τa)の減少に対しての補正をする。
【0051】
(3)目標保持トルクτgrを取り入れた動作制御
次に、上記目標保持トルクτgrを取り入れた本動作モードにおける動作制御方法について、図10を参照して説明する。尚、この図は、上記5msのサンプリングタイム毎に行われる動作制御の処理手順を示したものである。
【0052】
まず、ステップS20で教示点間を分割した目標位置のカウンタkを1増加させ、ステップS21へ進む。そしてこのときにkの値が上記教示点間の総分割数Nと等しくなったとすると、ステップS22へ進む。この場合は、既に通過した教示点Piの次の教示点Pi+1にマニピュレータ4が移動してきた場合である。
【0053】
ステップS22では、教示点に対応するカウンタiを1増加させる。次いで、ステップS23で現在通過中の教示点Pi及び次の教示点Pi+1の目標位置と補間情報とにより、教示点Pi、Pi+1の2点間を結ぶ目標位置xrの補間式を決定する。この補間式は通常時刻tの多項式で
【数4】
Figure 0003552076
のように表される。
【0054】
更に、ステップS23では、次の教示点Pi+1までの移動時間Tを本制御系における単位時間、すなわち、サンプリングタイムTsで除し、その値を新たな総分割数Nとする。又、ステップS24でkに0を代入し、教示点間の目標位置のカウンタkをリセットする。
【0055】
一方、ステップS21でkの値が未だ総分割数Nに満たなかったとすると、ステップS22〜S24の処理は行わず、ステップS25へ進む。これは、既に通過した教示点Piと次の教示点Pi+1の間をマニピュレータ4が移動している場合である。この場合には、ステップS25で現在通過中の教示点間の補間式において時刻tをk/N × Tとして目標位置xrを算出する。
【0056】
続いて、ステップS26で塗装ロボットを目標位置及び該位置での姿勢へ移動する。ここでは、ステップS22〜S24の処理を経た場合には、塗装ガン17を教示点Piの位置として姿勢を保持し、ステップS25の処理を経た場合には、補間式から導かれる目標位置及び該位置での姿勢に塗装ガン17の位置及び塗装ロボットの姿勢を移動させる。
【0057】
次に、ステップS27でkの値が0であるか否か、すなわち、マニピュレータ4が教示点上にあるか否かを判断する。そして、kの値が0であった場合、その教示点が待機姿勢をとるべき位置であるか否かを判断し(ステップS28)、待機姿勢をとるべき位置であった場合にはステップS29へ進む。
【0058】
ステップS29では、各関節における各モータのトルクが、上述の求めた目標保持トルクτgrのうち、当該教示点Piにおける目標保持トルクτgr(i)となるように、上記トルク補償器によってトルク指令τrを変更し、すべての関節における保持トルクを必要最小限の保持トルクとする。これにより、最小限の消費電力によって当該教示点Piでの待機姿勢を保持するようにする。尚、kの値が0でなかった場合は、ステップS28、S29の処理は行わない。
【0059】
このようにして1サンプリングタイムの動作制御が終了する。以後においては、サンプリングタイムTs毎に上記ステップS20以下の処理手順による動作制御を繰り返し行い、これにより、塗装ロボットの動作制御を行う。
【0060】
C.第2動作モード
次に、第2の動作モードとして、コントローラ1が第1〜第6の各モータから各関節の回転角度θfのみのフィードバック信号を受けると共に、コントローラ1が第1〜第6の各モータへ回転速度指令θr′のみの指令信号を出力する場合について説明する。
【0061】
(1)動作制御の態様
図11に第2動作モードにおける塗装ロボットの制御ブロック図を示す。この図に示すように、本動作モードにおいても、目標位置回転角度θrに現在位置回転角度θfをフィードバックし、位置補償器Gp(z)及び速度補償器Gv(z)によって上記第1動作モード同様に各モータへの供給電流値を算出して出力する。そして、本動作モード特有の制御態様は、かかる第1動作モード同様の制御に加え、塗装ロボットが待機姿勢にあるときにのみ、図中の点線で囲まれた部分の制御機構f(θr,θf)により算出された回転角度を指令信号に加えて制御を行うところにある。
【0062】
(2)第2動作モードにおける動作制御
図12に第2動作モードにおける動作制御方法の処理手順を示す。この図は、図10同様、サンプリングタイム毎に行われる動作制御の処理手順を示したものである。
【0063】
まず、図12のステップS30で目標位置のカウンタkを1増加させ、ステップS31へ進み、このときにkの値が総分割数Nと等しくなっていたとすると、ステップS32へ進む。これは、上記ステップS20〜S22の場合同様、既に通過した教示点Piの次の教示点Pi+1にマニピュレータ4が移動してきた場合である。
【0064】
ステップS32では、教示点に対応するカウンタiを1増加させる。次いで、現在通過中の教示点Piと次の教示点Pi+1との位置関係を判断し(ステップS33)、両教示点の位置が異なる場合にはステップS34へ進む。そして、ステップS34では、教示点Pi、Pi+1の位置と補間情報とにより、両教示点を結ぶ目標位置xrの補間式を決定する。尚、この補間式は、上記数4同様、時刻tの多項式で表される。
【0065】
一方、ステップS33で教示点Pi、Pi+1の位置が同一であった場合には、この位置で姿勢を保持するものと判断し(ステップS35)、ステップS36へ進んでkに0を代入してカウンタkをリセットする。
【0066】
続いて、ステップS37でカウンタkに対応した塗装ロボットの目標位置xr及び姿勢Rrを算出する。ここでの目標位置及び姿勢の算出は、ステップS34の処理を経た場合(教示点間移動中の場合)には上記補間式に基づいて算出し、ステップS35の処理を経た場合(当該教示点で姿勢保持の場合)には教示点Piを目標位置とする。そして、ステップS38で、塗装ガン17の位置が算出した目標位置となるように塗装ロボットの姿勢を移動させる。
【0067】
次に、現在の塗装ロボットが待機姿勢にある場合、すなわち、上記ステップS33からS35の処理を行い、姿勢を保持することとされている場合には、ステップS39からS40へと進み、以下に述べる処理によって待機姿勢を保持するようにする。尚、ここでの処理は、上記制御機構f(θr,θf)によるものに相当する。
【0068】
まず、ステップS40において、現在の塗装ガン17の位置xf及びマニピュレータ4の姿勢Rfにより各関節の回転角度θ1〜θ6を算出し、それらの算出した値に基づき、上記数2及び数3により、各関節(j)の対重力トルクτgjを算出する。次いで、それぞれの関節について、必要とされるモータトルクτjが0であるか否か、すなわち、対重力トルクτgjが減速器の摩擦トルクの範囲内にあるか否かを判断し(ステップS41)、その判断結果に応じた以下の処理へと進む(ステップS42又はS43)。
【0069】
ここで、第j関節のモータトルクτjが0であったとすると、ステップS42の処理Aが行われる。図13に処理Aの手順を示す。この図に示すように、処理Aにおいては、まず、1サンプリングタイム前の目標位置回転角度(θrj(k−1)とする)と現在の目標位置回転角度(θrj(k)とする)から塗装ロボットの動作制動方向を求める。この演算処理では、目標位置回転角度θrj(k−1)からθrj(k)を減算し、それによって得られた値の符合を変数signとして記憶する(ステップS50)。ここに、signの符合は、塗装ロボットが停止するための角加速度の方向(制動方向)となる。尚、1サンプリングタイム前の目標位置回転角度θrj(k−1)は、例えば、コントローラ2の記憶装置の1つのアドレスに順次上書きする形で記憶する等、適宜参照できるようにしておき、上記演算処理において使用する。
【0070】
次に、ステップS51へ進み、目標位置回転角度をθrj−signΔθrjとして制動方向を微小量逆方向に戻し、第j関節の回転角度を制動方向と反対の方向へ微小角度Δθrjだけ戻してステップS52へ進む。
【0071】
ステップS52では、ステップS51で回転角度を変化させた状態から待機姿勢における真の目標位置回転角度まで第j関節を移動させる場合の摩擦トルク(τa)を含まないモータトルクτjを算出し、その算出したモータトルク値により、制動時の角加速度、角速度(回転速度)を算出する。そして、ステップS53で該角速度を積分して目標位置回転角度の時間的変化を算出し、この算出した目標位置回転角度に従って待機姿勢までの移動を行う(ステップS54)。これにより、真の待機姿勢へ移動してきた状態におけるモータトルクτjを0とする。
【0072】
一方、図12のステップS41において、第j関節のモータトルクτjが0でなかったとすると、ステップS43の処理Bが行われる。図14に処理Bの手順を示す。この図に示すように、処理Bにおいては、まず、重力トルクの符合(0−τgjの符合)を求め、変数signとして記憶する(ステップS60)。
【0073】
次いで、ステップS61で目標位置回転角度θrj(k−1)からθrj(k)を減算した値の符合がsignと同一か否か判断する。すなわち、重力トルクと制動方向とが同じかどうかを判断するのである。そして、両者が異なる場合にはステップS62へ進み、制御系の積分演算器による積分演算を省くこととする。
【0074】
ステップS62で積分演算を省くこととしたあとは、現在位置回転角度が変動するまで(ステップS63)、目標位置角度θrjを重力トルクと反対方向に微小量Δθjずつ変化させる(ステップS64)。これにより、徐々にモータトルクτを減少させ、第j関節の回転角度を保つことができる最小のモータトルクで待機姿勢を保持するようにする。尚、このようなトルク制御を行ったときには、モータトルクτが0を越えて変化する場合もあるので、モータトルクτをモニタリングしてτ=0となったときに処理Bを終了するものとしてもよい。
【0075】
このようにして1サンプリングタイムの動作制御が終了する。以後においては、サンプリングタイムTs毎に上記同様の処理手順による動作制御が繰り返し行われ、塗装ロボットの動作制御がなされる。
【0076】
C.第3動作モード
次に、第3の動作モードとして、上記第2動作モード同様、コントローラ1が各関節の回転角度θfのみのフィードバック信号を受け、回転速度指令θr′のみの指令信号を出力する場合(図11の制御ブロック図参照)において、待機姿勢の目標位置回転角度を微小に変化させて保持トルクを少なくする動作モードについて説明する。
【0077】
(1)目標位置回転角度の決定
ここでは、待機時の回転速度指令を微小に変化させて保持トルクを減少させる場合の目標位置回転角度の決定方法について説明する。ここで決定される目標位置回転角度は、教示データに基づく塗装ロボットの姿勢に対し、微小量ずれた目標姿勢における目標位置回転角度となる。以下、このずれた目標位置回転角度を符合θrpaus(θrpaus=[θrpaus1,θrpaus2,…,θrpaus6])で表す。
【0078】
図15に目標位置回転角度決定の処理手順を示す。図示のように、まず、コントローラ1の演算処理装置にて記憶装置内の教示データの読み込みを行い(ステップS70)、教示点総数nを決定する(ステップS71)。そして、初期位置(P0)から最終教示点(Pn)までの各教示点Piについて、順次ステップS72以下に示す手順による処理を行う。尚、これらの処理の流れは、上記第1動作モードにおける目標保持トルクの算出と同様である。
【0079】
ステップS72では、教示点Piの位置及び該位置での姿勢へ塗装ロボットを移動させる。尚、この移動は、サンプリングタイム毎に目標位置を算出して行われるが、詳細は目標位置回転角度θr決定後の確定した動作制御(後述の(2))において説明する。そして、教示点Piにおいて塗装ロボットの姿勢変化が一定時間ない場合には、ステップS73で塗装ロボットが待機する位置であると判断し、ステップS74へ進む。
【0080】
ステップS74では、各関節の目標位置回転角度を微小量ずつ変化させることにより、塗装ロボットの姿勢を静止状態からゆっくりと前後に動作させ、このときの動作を開始する直前までの起動時間T(正方向)及びT(負方向)を求める。
【0081】
ここで、この起動時間T及びTを求める処理について、図16を参照して詳述する。尚、図16においては、第1、第2、…、第6の関節番号をj(j=1、2、…、6)で表し、時間計測のためのカウンタをCとする。
【0082】
まず、ステップS80で教示点Piの位置及び該位置での姿勢を目標値xr0、Rr0とし、この目標値により各関節の目標位置回転角度θr1,θr2,…,θr6を算出する(ステップS81)。そして、第1〜第6のぞれぞれの関節について、順次、ステップS82〜S92の処理を行い、正方向及び負方向の起動時間Tj及びTjを求める。尚、ここでの処理においては、上記積分演算器による積分演算を行わないものとする。
【0083】
初めに、第j関節が正方向へ動作し始めるまで目標位置回転角度θrjを微小量dθjずつ増加させる(ステップS82)。その後、第j関節を、動作した直前の姿勢に保持すると共に、カウンタCに0を代入してリセットする(ステップS83)。
【0084】
次に、同関節が負方向へ動作し始めるまで目標位置回転角度θrjを微小量dθjずつ減少させ(ステップS84)、減少の度にカウンタCを1増加させる(ステップS85)。そして、該関節が動作したときのカウンタCの値を負方向の起動時間Tjとして記憶し、その後、カウンタCを0としてリセットする(ステップS86)。又、この動作直前(微小量変化ステップにおける1ステップ前)の目標位置回転角度をθrjとする。
【0085】
続いて、該関節が上記負方向への動作直前の状態から正方向へ動作し始めるまで目標位置回転角度θrjを微小量dθjずつ増加させ(ステップS87)、増加の度にカウンタCを1増加させる(ステップS88)。そして、該関節が動作したときのカウンタCの値を正方向の起動時間Tjとして記憶する(ステップS89)。又、この動作直前の目標位置回転角度をθrjとする。このようにして、第1〜第6関節それぞれについて正方向及び負方向の起動時間T及びTを求め、図15のステップS75へと進む。
【0086】
次に、上述のようにして求めた起動時間Tj及びTjの大きさについてステップS75で大小比較を行う。そして、起動時間Tjの方が大きい場合には、この点(教示点Pi)における第j関節の目標位置回転角度θrpaus(i)jを負方向動作直前の回転角度θrjとし(ステップS76)、起動時間Tjの方が大きい場合には、目標位置回転角度θrpaus(i)jを正方向動作直前のθrjとし(ステップS77)、両起動時間が等しい場合には、目標位置回転角度θrpaus(i)jを教示データに基づく目標位置回転角度θr(i)jとする(ステップS78)。ここに、目標位置回転角度θrpaus(i)jの添え時(i)は、教示点Piにおける目標位置回転角度であることを表す。このように、教示点Piにおける目標位置回転角度θrpaus(i)が求まる。
【0087】
尚、ステップS73において、教示点Piで塗装ロボットの姿勢が変化する場合には、塗装ロボットが待機する場合でないと判断し、ステップS74以降の処理は行わない。以上述べた処理により、塗装ロボットが待機するすべての教示点における目標位置回転角度θrpausを求める。
【0088】
(2)目標位置回転角度θrpausを取り入れた動作制御
次に、上記目標位置回転角度θrpausを取り入れた本動作モードにおける動作制御方法について、図17を参照して説明する。尚、この図は、上記サンプリングタイム毎に行われる動作制御の処理手順を示したものであり、該処理の流れは、上記第1動作モードにおける動作制御と同様なものとなっている。
【0089】
まず、ステップS90で教示点間を分割した目標位置のカウンタkを1増加させ、ステップS91へ進み、このときのkの値が上記総分割数Nと等しくなっていたとすると、ステップS92へ進む。この場合は、次の教示点Pi+1にマニピュレータ4が移動してきた場合である。
【0090】
ステップS92では、教示点に対応するカウンタiを1増加させると共に、現在通過中の教示点Pi及び次の教示点Pi+1の目標位置と補間情報とにより、教示点Pi、Pi+1の2点間を結ぶ目標位置xrの補間式を決定する。この補間式は上記数4同様、時刻tの多項式で表される。又、ステップS93でkに0を代入し、教示点間の目標位置のカウンタkをリセットする。
【0091】
一方、ステップS91でkの値が未だ総分割数Nに満たなかったとすると、ステップS92及びS93の処理は行わず、ステップS94へ進む。これは、既に通過した教示点Piと次の教示点Pi+1の間をマニピュレータ4が移動している場合である。この場合には、ステップS94で現在通過中の教示点間の補間式により、目標位置xrを算出する。
【0092】
続いて、ステップS95で塗装ロボットを目標位置及び該位置での姿勢へ移動する。ここでは、ステップS92、S93の処理を経た場合には、塗装ガン17を教示点Piの位置として姿勢を保持し、ステップS94の処理を経た場合には、補間式から導かれる目標位置及び該位置での姿勢に塗装ガン17の位置及び塗装ロボットの姿勢を移動させる。
【0093】
次に、ステップS96でkの値が0であるか否か、すなわち、マニピュレータ4が教示点上にあるか否かを判断する。そして、kの値が0であった場合、その教示点が待機姿勢をとるべき位置であるか否かを判断し(ステップS97)、待機姿勢をとるべき位置であった場合にはステップS98へ進む。
【0094】
ステップS98では、各関節のモータに対し、上述の求めた目標位置回転角度θrpausのうち、当該教示点Piにおける目標位置回転角度θrpaus(i)に基づく回転速度指令を出力するようにする。すなわち、制御系における積分演算器を取り除いた後で各関節の目標位置回転角度θrを上記θrpaus(i)とし、塗装ロボットの姿勢を微小速度で移動させるのである。これにより、最小限の消費電力によって当該教示点Piでの待機姿勢を保持するようにする。尚、kの値が0でなかった場合は、上記ステップS97、S98の処理は行わない。
【0095】
このようにして1サンプリングタイムの動作制御が終了する。以後においては、サンプリングタイムTs毎に上記ステップS90以下の処理手順による動作制御を繰り返し行い、これにより、塗装ロボットの動作制御を行う。
【0096】
【発明の効果】
以上説明したように本発明によれば、判断処理手段により待機状態であると判断されたときに、可動部分における摩擦抵抗を利用してモータのトルクを減少させることとしたので、教示データに基づくロボットの位置及び姿勢を変えることなく、当該待機状態を保持するモータのトルクを減少させることができる。これにより、消費電力を少なくすることができ、ロボットを動作させて各種処理を行うときのランニングコストを低減することができるという効果が得られる。
【0097】
特に、請求項2又は4記載の発明によれば、実際にロボットを動作させた時の必要かつ最小限のモータトルクを求めて待機姿勢の制御がなされるので、低減可能な極限における消費電力、ランニングコストによってロボットの制御を行うことができる。
【0098】
又、本発明によれば、待機姿勢の保持時に姿勢が変化しないことから、ロボットの動作環境に制約がある場合にあっても干渉を生ずることなく適用することができる。これにより、低コストで、かつ、各種動作環境に応じた柔軟なロボット制御が可能となるという効果が得られる。ここで、請求項3記載の発明によれば、各種動作環境に応じて、その動作範囲全体についての第2の指令信号が記憶されて待機状態の制御が行われる。
【0099】
更に、本発明によるロボット制御は、特別な装置を新たに必要とせずに実現することができるので、装置自体の費用が増加することはない。
【0100】
加えて、本発明によれば、消費電力が低減することから発熱量も少なくなり、モータの温度上昇を抑制することができるので、防爆性が向上するという効果が得られる。そしてこれと同時に、モータへの電流供給を担う制御装置内のアンプの温度上昇も抑制することができるので、制御装置のCPUの誤動作を防止すると共に、ハードウェア部品の耐久性を向上させるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の一実施形態によるロボット制御装置を適用した塗装ロボットシステムの構成を示す図である。
【図2】第2モータ8と第1アーム9との関節部分の構造を示す図である。
【図3】減速機を介して伝達される回転速度θ′とモータトルクτとの関係を示す図である。
【図4】第1アーム9と第2アーム11が90°をなす状態で第1アーム9が−20°〜+90°まで変化する場合を示す図である。
【図5】回転角度θ2と対重力トルクτg(保持トルク)との関係を示す図である。
【図6】目標位置の軌道及び教示点の一例を示す図である。
【図7】第1動作モードにおける塗装ロボットの制御ブロック図である。
【図8】第1動作モードにおける目標保持トルクτgrの算出処理手順を示す図である。
【図9】図8のステップS5における姿勢保持トルクτa及びτaを求める処理手順を示す図である。
【図10】第1動作モードにおける目標保持トルクτgrを取り入れた動作制御方法を示す図である。
【図11】第2及び第3動作モードにおける塗装ロボットの制御ブロック図である。
【図12】第2動作モードにおける動作制御方法を示す図である。
【図13】図12のステップS42における処理Aを示す図である。
【図14】図12のステップS43における処理Bを示す図である。
【図15】第3動作モードにおける微小量ずれた目標位置回転角度の決定処理手順を示す図である。
【図16】図15のステップS74における起動時間T及びTを求める処理手順を示す図である。
【図17】第3動作モードにおける目標位置回転角度θrpausを取り入れた動作制御方法を示す図である。
【符号の説明】
1 コントローラ
2 ティーチングペンダント
4 マニピュレータ
6 第1モータ
7 旋回ベース
8 第2モータ
9 第1アーム
10 第3モータ
11 第2アーム
12 モータケース
13 第1手首ユニット
14 第2手首ユニット
15 第3手首ユニット
17 塗装ガン[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a robot control device and a control method suitable for use in an industrial robot of a teaching reproduction type.
[0002]
[Prior art]
In conventional industrial robot control, as a method of reducing power consumption, a method has been proposed in which thermal energy generated when the operation of a robot is stopped is converted into electric power. Japanese Patent Application Laid-Open No. Hei 5-138562 discloses a robot control method for reducing power consumption by setting the standby posture of the robot to a posture having a small gravity torque in a stationary state.
[0003]
[Problems to be solved by the invention]
However, in the above-described heat energy conversion apparatus, a generator must be provided in each of the motor amplifier sections in order to actively generate power. For this reason, there has been a problem that the size of the controller is increased and the cost is increased.
[0004]
On the other hand, in the robot control method in which the standby posture is changed, the standby posture is set to a posture having a small gravitational torque, and thus may interfere with the environment of the work, its supply device, or other peripheral devices. Therefore, in such a case, the method disclosed in JP-A-5-138562 cannot be applied. In addition, such a method has a problem that the robot may take a posture different from the posture taught by the teacher.
[0005]
Furthermore, the reduction gear used for general industrial robots has a problem that the starting torque becomes extremely large due to frictional resistance at the start of rotation.
[0006]
The present invention has been made in view of such circumstances, and uses the frictional resistance of the speed reducer in reverse to reduce the holding torque at that time while maintaining the standby posture when the operation of the robot is stopped in the taught posture. It is an object of the present invention to provide a robot control apparatus and a control method thereof that can reduce power consumption and running cost.
[0007]
[Means for Solving the Problems]
To solve the above problems, the present invention is configured as follows.
[0008]
According to a first aspect of the present invention, there is provided a robot control method for controlling, based on teaching data, a robot that operates a movable part by torque of a motor transmitted via a speed reducer, wherein the robot is controlled based on the teaching data. First command signal output means for outputting a first command signal; and, during operation of the robot based on the first command signal, determining whether or not the operation of the robot is in a standby state in which a predetermined standby posture is maintained. The determination processing means for determining, and when the determination processing means determines that the motor is in the standby state, the torque of the motor is maintained in the stationary state by the torque and the friction torque of the speed reducer. A second command signal output means for outputting a second command signal for decreasing the range, a robot control method by a robot control device, comprising: A first step of moving the robot to the teaching point of the indication data, and a second step of determining whether the teaching point is in a position to take a standby posture when the robot moves to the teaching point And a third step of outputting a third command signal for changing the torque of the motor by a small amount in a fixed direction in a case where it is determined in the second step that the standby position is to be taken. A fourth process of storing the third command signal immediately before the movable portion starts operating from the stationary state, and a torque of the motor in a direction opposite to a fixed direction in the third process, according to the third command signal. A fifth step of outputting a fourth command signal that changes by a small amount, and a sixth command signal that stores the fourth command signal immediately before the movable portion starts operating from a stationary state by the fourth command signal. Process and the fourth and A seventh process in which, of the fourth and fifth command signals stored in the sixth process, a command signal for instructing the motor with a small torque is used as the second command signal at the teaching point; The robot is controlled based on the determined second command signal.
[0009]
The invention according to claim 2 is the invention according to claim 1.In the robot control method, the robot is moved to each teaching point, the second to seventh steps are repeated, and the second command signals are determined and stored at all the teaching points holding the standby posture, The robot is controlled based on the teaching data and the stored second command signal.
[0010]
The invention according to claim 3 isThe first and second command signals are speed command signals for instructing an operation speed of the movable portion with respect to the motor.The robot control method according to claim 1,A tenth step of determining the motor torque required to maintain the movable part in a stationary state based on the amount of movement of the movable part when the determination processing unit determines that the movable part is in a standby state; When the required torque of the motor obtained in the tenth step is 0, the movable portion is operated in a minute range, and the torque of the motor in a stationary state is set to 0 in the operation in the minute range. The eleventh step of outputting the second command signal for instructing the operation speed of the movable part and operating the movable part in the minute range, and the required torque of the motor obtained in the tenth step is A twelfth step of changing the second command signal by a small amount until immediately before the movable part operates by decreasing the torque of the motor when the torque is not zero. It is characterized.
[0011]
BEST MODE FOR CARRYING OUT THE INVENTION
<Structure>
A. overall structure
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a diagram showing a configuration of a painting robot system to which a robot control device according to an embodiment of the present invention is applied.
[0012]
In the figure, reference numeral 1 denotes a controller, which receives instruction data from the teaching pendant 2 and exchanges operation signals and currents with the manipulator 4 via the cable 3, thereby controlling the manipulator 4. The controller 1 has a storage device for storing a control program for the manipulator 4, teaching data, various control parameters, and the like, and an arithmetic processing device for performing various arithmetic processes based on the programs and the instruction data. It supplies various operation command signals and current to the manipulator 4 based on the result of the arithmetic processing by the arithmetic processing device. It should be noted that the specific contents of the arithmetic processing here will be clarified in the operation description to be described later.
[0013]
The teaching pendant 2 is an input device for inputting instruction data for an operator to instruct the operation of the manipulator 4, and outputs the input instruction data to the controller 1. The cable 3 is a member that connects the controller 1 and the manipulator 4, and transmits the operation signal and the current.
[0014]
The manipulator 4 is a main part of the painting robot in the present painting robot system, and is attached to a predetermined position on the floor by a fixed base 5 fixed to the floor, and a turning base indicated by reference numerals 6 to 17 in the drawing. , A motor, an arm and the like. Hereinafter, each of these components will be described. In this figure, the speed reducer provided at the connection portion (joint portion of the manipulator 4) of the output shaft of each motor is omitted, and the details of the structure of the connection portion provided with the speed reducer will be described later. I do.
[0015]
Reference numeral 6 denotes a first motor mounted on the fixed base 5, the output shaft of which is connected to the turning base 7 via a speed reducer. The first motor 6 is driven based on an operation command signal supplied from the controller 1, and rotates the turning base 7 in the direction of the arrow θ1 in the drawing.
[0016]
A second motor 8 is attached to an upper portion of the turning base 7 in the drawing, and an output shaft of the second motor 8 is connected to one end of the first arm 9 via a speed reducer. Then, the second motor 8 is driven based on the operation command signal supplied from the controller 1, and the first arm 9 is turned around the rotation axis of the second motor 8 in the direction of the arrow θ2 in the drawing. Has become.
[0017]
On the other hand, a third motor 10 is attached to the forward end of the first arm 9, and the output shaft of the third motor 10 is connected to the second arm 11 via a speed reducer. Then, the third motor 10 is driven based on an operation command signal supplied from the controller 1 so that the second arm 11 rotates around the rotation axis of the third motor 10 in the direction of the arrow θ3 in the drawing. Has become.
[0018]
A wrist motor case 12 is attached to the second arm 11 at a portion connected to the rotation shaft of the third motor 10, and a first wrist unit 13, a second wrist unit 14, and a third wrist are provided at the forward end. A unit 15 is attached.
[0019]
Here, fourth, fifth and sixth motors (not shown) are housed in the wrist motor case 12, and the respective driving forces of the fourth, fifth and sixth motors are respectively applied to the first wrist unit. A transmission mechanism (not shown) for transmitting to the 13, the second wrist unit 14 and the third wrist unit 15 is provided inside the second arm 11. In addition, the first wrist unit 13, the second wrist unit 14, and the third wrist unit 15 are sequentially attached via connecting shafts that are rotatable in directions of arrows θ4, θ5, and θ6 in the drawing. Then, similarly to the above, the fourth, fifth, and sixth motors are driven based on the operation command signals supplied from the controller 1, whereby the first wrist unit 13, the second wrist unit 14, and the third wrist unit 15 are driven. Rotate in the θ4, θ5, and θ6 directions, respectively.
[0020]
Reference numeral 16 denotes a bracket attached to the third wrist unit 15, and a coating gun 17 is attached via the bracket 16. The painting gun 17 is a painting tool that sprays paint in a certain direction and with a certain spread, and a predetermined position based on the rotation angles θ1 to θ6 of the first, second arms and the first, second, and third wrist units. In addition, a paint is sprayed in a predetermined direction to paint a work (not shown).
[0021]
Thus, in the present coating robot system, the coating gun 17 is rotated by the rotation angles θ1 to θ6 of the first arm 9, the second arm 11, the first wrist unit 13, the second wrist unit 14, and the third wrist unit 15. The position (x) and the attitude (R) of the manipulator 4 are determined. These positions, postures, rotation angles, and the like are determined by arithmetic processing in the controller 1, and are controlled by operation command signals to the first to sixth motors based on the determination.
[0022]
B. Joint structure
Here, the structure of the joint portion of the motor output shaft provided with the speed reducer, that is, the joint portion of the manipulator 4 will be described. FIG. 2 shows the structure of the joint between the second motor 8 and the first arm 9 which rotates in the θ2 direction as an example of the joint. This figure corresponds to the manipulator 4 viewed from the direction of the arrow A in FIG.
[0023]
In FIG. 2, reference numeral 18 denotes an output shaft of the second motor 8. Reference numeral 19 denotes a speed reducer attached to the output shaft 18. The speed reducer 19 transmits the amplified torque (for example, 100 times) to the first arm 9 by reducing the rotational speed (angular speed) of the output shaft 18 at a predetermined ratio (for example, reducing it to 1/100), and Thereby, the rotation angle θ2 of the first arm 9 is displaced by a predetermined amount. The other joints (joint parts that rotate in the directions θ1, θ3 to θ6) of the manipulator 4 are also provided with a speed reducer.
[0024]
<Holding torque>
Here, first, the starting torque and the running torque of the speed reducer will be described with reference to FIG. In this figure, θ 'on the horizontal axis represents the rotation speed transmitted via the speed reducer, and τ on the vertical axis represents the motor torque required at that time.
[0025]
As shown in this graph, the motor torque (holding torque) at the transmission rotation speed θ ′ = 0 (at rest) may be any value between + τa and −τa. Here, τa is the magnitude of the friction torque due to the frictional resistance of the speed reducer. When θ ′ exceeds a predetermined range of + θ′c to −θ′c, the running torque τ becomes
(Equation 1)
Figure 0003552076
It can be expressed as.
[0026]
Next, the holding torque of the arm and the wrist unit at the joint of the manipulator 4 will be described. Here, as shown in FIG. 4, in a state where the first arm 9 and the second arm 11 form 90 ° (θ3 = 90 °), the rotation angle θ2 of the first arm 9 is −20 ° (dashed line in the figure). Ι) to + 90 ° (dashed-dotted line Π), the holding torque of the second motor 8 will be described as an example. Note that the rotation angle here is + for the rotation angle to the left from the vertical direction in the figure, and-for the rotation angle to the right.
[0027]
In the figure, reference numeral 20 denotes a joint of a connecting portion between the first motor 6 and the turning base 7, 21 denotes a joint of a connecting portion of the second motor 8 and the first arm 9, and 22 denotes a joint of the third motor 10 and the second arm 11. The joints of the connecting portions are respectively shown. Hereinafter, for convenience, these joints will be referred to as a first joint, a second joint, and a third joint according to the suffixes attached to the respective rotation angles θ1, θ2, and θ3. Also, the connection portions between the fourth to sixth motors and the first to third wrist units are similarly referred to as fourth joints, fifth joints, and sixth joints.
[0028]
23 represents the center of mass of the arm between the second and third joints. Here, the distance between the center of mass 23 and the second joint is g2, the mass of this arm is m2, and the length is l2. Reference numeral 24 denotes the center of mass of the arm between the third and fourth joints. Here, the position of the center of mass 24 in the x and z directions is xm3 and zm3, the distance between the center and the third joint is g3, the mass of the arm is m3, and the length is l3. 25 represents the center of mass of the arm in front of the fourth joint. The positions of the center of mass 25 in the x and z directions are xm4 and zm4, respectively.
[0029]
When each distance, mass, and the like are set in this manner, the gravitational torque τg required to hold the attitude of the manipulator 4 is:
(Equation 2)
Figure 0003552076
It can be expressed as. Here,
(Equation 3)
Figure 0003552076
And G = −9.8 m / s2(Gravitational acceleration).
[0030]
A graph of the gravitational torque τg of Equation 2 is shown by a solid line (1) in FIG. Then, when the above-described friction torques + τa and −τa (see FIG. 3) are added to the solid line (1), the torque curves shown by dotted lines (2) and (3) in FIG. 5 are obtained. That is, the area surrounded by these two dotted lines (2) and (3) is the holding torque required of the second motor 8 to stop the first arm 9 and hold the attitude of the manipulator 4. The minimum value of the holding torque is a curve as shown by a solid line (4).
[0031]
Here, the current required for the operation of the manipulator by the motor and for maintaining the attitude is proportional to the torque τ, so that the smaller the absolute value or the effective value of the torque τ, the lower the power consumption. Therefore, when the manipulator 4 is at rest, driving the second motor 8 with the torque on the solid line (4) minimizes power consumption.
[0032]
Here, the holding torque of the second motor 8 in the case where the rotation angles θ2 and θ3 are within the predetermined range has been described. However, the geometric analysis similar to the above also applies to other rotation angle ranges and other motors. Thereby, the required minimum holding torque at the time of rest can be obtained.
[0033]
<Operation>
A. Teaching data and target position
Next, the operation of the present painting robot system will be described. First, the teaching data of the robot, which is the premise of the operation description, will be described. Normally, the teaching data of the robot is determined by a turning point or a representative point of the trajectory, an interpolation condition between a plurality of continuous teaching points, and a moving speed. For example, in the trajectory of FIG. 6, points indicated by P0, P1, P2,... Are teaching points. In the present painting robot system, a point on the trajectory of the painting gun 17 is inputted by the teacher from the teaching pendant 2 and stored in the storage device of the controller 1 as a teaching point.
[0034]
In the actual operation of the painting robot, the arithmetic processing unit of the controller 2 calculates target positions indicated by k, k + 1,... In FIG. In the discrete time control system, the unit time refers to a sampling time at which a signal such as a current position and a command signal are transmitted and received. In the painting robot system, the processing time of the controller 1 is 5 ms. The target position is calculated for each sampling time.
[0035]
In the following, the counter of the teaching point is set to i (i = 0, 1, 2,..., N), the counter of the target position is set to k (k = 0, 1, 2,..., N), and the teaching point Pi is set. And the target position xr between Pi + 1 are obtained by the arithmetic processing unit of the controller 1 every 5 ms. The maximum value N of the counter k is N = T / Ts, where T is the moving time from the teaching point Pi to Pi + 1, and Ts is the sampling time. This corresponds to the total number of target positions for dividing between the teaching points (hereinafter, referred to as the total number of divisions).
[0036]
B. First operation mode
Next, the operation of the present painting robot system by a method of actually reducing the holding torque of the motor will be described. First, as the first operation mode, the controller 1 sends the current position rotation angle θf (θf = [θf1, θf2,..., Θf6] of each joint from the first to sixth motors.T) And the torque τf of each motor (τf = [τf1, τf2,..., Τf6]T), The controller 1 sends a rotation speed command θr ′ (θr ′ = [θr1 ′, θr2 ′,..., Θr6 ′] to each of the first to sixth motors.T) And torque command τr (τr = [τr1, τr2,..., Τr6])T) Will be described.
[0037]
(1) Mode of operation control
FIG. 7 shows a control block diagram of the painting robot in the first operation mode. As shown in this figure, in this operation mode, the target position rotation angle θr (θr = [θr1, θr2,..., Θr6])T) Indicates the current position rotation angle θf (θf = [θf1, θf2,..., Θf6]).T) With the target torque command τr (τr = [τr1, τr2,..., Τr6]T), The current motor torque τf is fed back, and an operation command signal and a current value for each motor are calculated as follows.
[0038]
First, based on the deviation of the current position rotation angle θf from the target position rotation angle θr, the position compensator Gp (z) calculates a rotation speed command θr ′ that holds each joint at the target position rotation angle θr. The current value to be supplied to each motor to rotate each joint at the rotation speed θr ′ is calculated by the speed compensator Gv (z) based on the deviation of the current rotation speed θf ′ from the rotation speed command θr ′. Then, the data is output to a control target including a motor and an arm.
[0039]
On the other hand, the torque compensator in the figure calculates a current command based on the deviation of the current motor torque τf from the target torque τr as necessary, and outputs the current command to each motor. In addition, in the integral calculator z / z-1, the rotation speed θf ′ (θf ′ = [θf1 ′, θf2 ′,..., Θf6 ′]) from each motor is used.T) Is integrated and fed back as the current position rotation angle θf. In this operation mode, the operation of the painting robot is controlled in this way.
[0040]
(2) Calculation of target holding torque
Here, a processing method for calculating the target torque τr in the standby posture at the time of standby for the teaching data will be described. Here, the standby posture refers to maintaining a constant posture for a predetermined time, and is a state in which the position feedback value does not change during the predetermined time. Hereinafter, the minimum target torque required to hold the standby posture is referred to as a target holding torque, and is denoted by τgr (τgr = [τgr1, τgr2,..., Τgr6]).T). The process of obtaining the target holding torque τgr is performed based on the teaching data given by the instructor while controlling the movement between the teaching points and the standby posture during standby as described below in the above-described control mode.
[0041]
FIG. 8 shows a procedure of a calculation processing method of the target holding torque τgr. As shown in the figure, first, the arithmetic processing unit of the controller 1 reads the teaching data in the storage device (step S1), and determines the total number n of teaching points (step S2). Then, for each teaching point Pi (i = 0, 1, 2,..., N) from the initial position (P0) to the final teaching point (Pn), the processing is performed in order from step S3.
[0042]
In step S3, the painting robot is moved to the position of the teaching point Pi and the posture at the position. Note that this movement is performed by the above-described control mode by calculating the target position xr at every sampling time of 5 ms. The details will be described in the fixed operation control after calculating the target holding torque τgr ((3) described later). . If there is no change in the posture of the painting robot at the teaching point Pi for a certain period of time, it is determined in step S4 that the painting robot is in a standby position, and the process proceeds to step S5.
[0043]
In step S5, the posture of the coating robot is slowly moved back and forth (positive direction and negative direction) from the stationary state by changing the target position rotation angle of each joint by a small amount. By the torque, the posture holding torque τa+(Τa+= [Τa1+, Τa2+, ..., τa6+]T) And τa(Τa= [Τa1, Τa2, ..., τa6]T). This posture holding torque τa+, ΤaIs the limit motor torque that can maintain the posture in the positive direction and the negative direction.
[0044]
Here, the posture holding torque τa+And τaWill be described in detail with reference to FIG. In FIG. 9, the first, second,..., Sixth joint numbers are represented by j (j = 1, 2,..., 6).
[0045]
First, in step S10, the position of the teaching point Pi and the posture at the position are set as target values xr0 and Rr0, and the target position rotation angles θr1, θr2,..., Θr6 of each joint are calculated from the target values (step S11). Then, the processing of steps S12 to S15 is sequentially performed for each of the first to sixth joints.
[0046]
First, the target position rotation angle θrj is increased by a small amount dθj until the j-th joint starts operating in the forward direction (until θf> 0) (step S12), and the holding torque τfj immediately before the operation is moved in the forward direction. Holding torque τaj+(Step S13).
[0047]
Then, the target position rotation angle θrj is decreased by a small amount dθj by a small amount dθj until the joint starts to operate in the negative direction (until θf <0) (step S14), and the holding torque τfj immediately before the operation is changed to the posture holding torque in the negative direction. τaj(Step S15). In this manner, the posture holding torque τa in the positive direction and the negative direction for each of the first to sixth joints.+And τaAnd proceeds to step S6 in FIG.
[0048]
Next, the posture holding torque τa obtained as described above+And τaThe size is compared in step S6. That is, the absolute value | τaj of the posture holding torque in the positive direction and the negative direction at each joint.+| And | τaj|. And | τaj+Is larger than the target holding torque τgr (i) j of the j-th joint at this point (teaching point Pi).(Step S7), | τajIs larger, the target holding torque τgr (i) j is set to τaj+(Step S8). Here, the suffix (i) of the target holding torque τgr (i) j indicates that it is the target holding torque at the teaching point Pi. Thus, the target holding torque τgr (i) at the teaching point Pi ([τgr (i) 1, τgr (i) 2,..., Τgr (i) 6]T).
[0049]
In step S4, if the posture of the painting robot changes at the teaching point Pi, it is determined that the painting robot is not in a standby state, and the processing after step S5 is not performed.
[0050]
Through the processing described above, the target holding torque τgr at all the teaching points where the painting robot stands by is determined. The above processing is performed every predetermined time (for example, 100 hours), and the value of τgr (i) is updated as appropriate. Thereby, a correction is made for a decrease in friction torque (τa) due to wear of the member.
[0051]
(3) Operation control incorporating target holding torque τgr
Next, an operation control method in this operation mode incorporating the target holding torque τgr will be described with reference to FIG. This figure shows a processing procedure of the operation control performed at every sampling time of 5 ms.
[0052]
First, the counter k of the target position obtained by dividing the teaching point in step S20 is incremented by 1, and the process proceeds to step S21. If the value of k becomes equal to the total number of divisions N between the teaching points at this time, the process proceeds to step S22. In this case, the manipulator 4 has moved to the teaching point Pi + 1 following the teaching point Pi that has already passed.
[0053]
In step S22, the counter i corresponding to the teaching point is incremented by one. Next, in step S23, the interpolation formula of the target position xr connecting the two teaching points Pi and Pi + 1 is determined based on the interpolation information and the target positions of the currently passing teaching point Pi and the next teaching point Pi + 1. This interpolation formula is usually a polynomial at time t.
(Equation 4)
Figure 0003552076
Is represented as
[0054]
Further, in step S23, the moving time T to the next teaching point Pi + 1 is divided by the unit time in the present control system, that is, the sampling time Ts, and the value is set as a new total division number N. In step S24, 0 is substituted for k, and the counter k of the target position between the teaching points is reset.
[0055]
On the other hand, if it is determined in step S21 that the value of k has not yet reached the total number of divisions N, the process proceeds to step S25 without performing the processes in steps S22 to S24. This is the case where the manipulator 4 is moving between the teaching point Pi that has already passed and the next teaching point Pi + 1. In this case, in step S25, the target position xr is calculated by setting the time t to k / N × T in the interpolation formula between the teaching points currently passing.
[0056]
Subsequently, in step S26, the painting robot is moved to the target position and the posture at the position. Here, after the processing in steps S22 to S24, the posture is held as the position of the teaching point Pi, and after the processing in step S25, the target position and the position derived from the interpolation formula are determined. The position of the painting gun 17 and the posture of the painting robot are moved to the posture of.
[0057]
Next, in step S27, it is determined whether the value of k is 0, that is, whether the manipulator 4 is on the teaching point. Then, if the value of k is 0, it is determined whether or not the teaching point is at a position where a standby posture is to be taken (step S28). move on.
[0058]
In step S29, the torque command τr is set by the torque compensator so that the torque of each motor at each joint becomes the target holding torque τgr (i) at the teaching point Pi among the target holding torque τgr obtained above. Change to make the holding torque at all joints the minimum necessary holding torque. Thereby, the standby posture at the teaching point Pi is maintained with the minimum power consumption. If the value of k is not 0, the processes in steps S28 and S29 are not performed.
[0059]
Thus, the operation control for one sampling time is completed. Thereafter, the operation control according to the processing procedure of step S20 and thereafter is repeatedly performed for each sampling time Ts, and thereby the operation control of the coating robot is performed.
[0060]
C. Second operation mode
Next, as a second operation mode, the controller 1 receives a feedback signal of only the rotation angle θf of each joint from each of the first to sixth motors, and the controller 1 sends a rotation speed to each of the first to sixth motors. A case where a command signal of only the command θr ′ is output will be described.
[0061]
(1) Mode of operation control
FIG. 11 shows a control block diagram of the painting robot in the second operation mode. As shown in this figure, also in this operation mode, the current position rotation angle θf is fed back to the target position rotation angle θr, and the position compensator Gp (z) and the speed compensator Gv (z) perform the same operation as in the first operation mode. Calculate and output the supply current value to each motor. The control mode specific to this operation mode is the same as the control in the first operation mode, and only when the coating robot is in the standby posture, the control mechanism f (θr, θf) enclosed by the dotted line in the drawing. ) Is added to the command signal for control.
[0062]
(2) Operation control in second operation mode
FIG. 12 shows a processing procedure of the operation control method in the second operation mode. This figure shows a processing procedure of operation control performed for each sampling time, as in FIG.
[0063]
First, the counter k of the target position is incremented by 1 in step S30 in FIG. 12, and the process proceeds to step S31. If the value of k is equal to the total number of divisions N at this time, the process proceeds to step S32. This is a case where the manipulator 4 has moved to the teaching point Pi + 1 next to the teaching point Pi that has already passed, as in the case of steps S20 to S22.
[0064]
In step S32, the counter i corresponding to the teaching point is incremented by one. Next, the positional relationship between the currently passing teaching point Pi and the next teaching point Pi + 1 is determined (step S33), and if the positions of both teaching points are different, the process proceeds to step S34. In step S34, an interpolation formula for a target position xr connecting both teaching points is determined based on the positions of the teaching points Pi and Pi + 1 and the interpolation information. Note that this interpolation formula is represented by a polynomial at time t, similar to the above equation (4).
[0065]
On the other hand, if the positions of the teaching points Pi and Pi + 1 are the same in step S33, it is determined that the posture is maintained at this position (step S35), and the process proceeds to step S36, where 0 is substituted into k and the counter is set. Reset k.
[0066]
Subsequently, in step S37, the target position xr and posture Rr of the painting robot corresponding to the counter k are calculated. Here, the calculation of the target position and the posture is performed based on the interpolation formula when the process of step S34 has been performed (during movement between teaching points), and when the process of step S35 has been performed (at the teaching point). In the case of holding the posture, the teaching point Pi is set as the target position. Then, in step S38, the posture of the painting robot is moved so that the position of the painting gun 17 becomes the calculated target position.
[0067]
Next, when the current painting robot is in the standby posture, that is, when it is determined that the processing in steps S33 to S35 is performed and the posture is to be maintained, the process proceeds from step S39 to S40, and will be described below. The standby posture is maintained by the processing. Note that the processing here corresponds to the processing by the control mechanism f (θr, θf).
[0068]
First, in step S40, rotation angles θ1 to θ6 of each joint are calculated based on the current position xf of the coating gun 17 and the posture Rf of the manipulator 4, and based on the calculated values, The gravitational torque τgj of the joint (j) is calculated. Then, for each joint, it is determined whether the required motor torque τj is 0, that is, whether the anti-gravity torque τgj is within the range of the friction torque of the speed reducer (step S41). The process proceeds to the following process according to the determination result (step S42 or S43).
[0069]
Here, assuming that the motor torque τj of the j-th joint is 0, the process A of step S42 is performed. FIG. 13 shows the procedure of the process A. As shown in this figure, in the process A, first, the target position rotation angle (θrj) one sampling time ago.(K-1)) And the current target position rotation angle (θrj(K)To obtain the operation braking direction of the painting robot. In this calculation process, the target position rotation angle θrj(K-1)From θrj(K)Is subtracted, and the sign of the obtained value is stored as a variable sign (step S50). Here, the sign of sign is the direction of the angular acceleration (braking direction) for stopping the painting robot. The target position rotation angle θrj one sampling time ago(K-1)Is stored in such a manner as to sequentially overwrite one address in a storage device of the controller 2, and is referred to as appropriate, and is used in the arithmetic processing.
[0070]
Next, the process proceeds to step S51, in which the braking direction is returned in the reverse direction by a minute amount with the target position rotation angle set to θrj-sign Δθrj, and the rotation angle of the j-th joint is returned by the small angle Δθrj in the direction opposite to the braking direction, and then to step S52. move on.
[0071]
In step S52, the motor torque τj not including the friction torque (τa) when the j-th joint is moved from the state where the rotation angle is changed in step S51 to the true target position rotation angle in the standby posture is calculated. The angular acceleration and the angular velocity (rotational speed) at the time of braking are calculated from the motor torque value thus obtained. Then, in step S53, the angular velocity is integrated to calculate a temporal change in the target position rotation angle, and the movement to the standby posture is performed according to the calculated target position rotation angle (step S54). As a result, the motor torque τj in the state where it has moved to the true standby posture is set to 0.
[0072]
On the other hand, assuming that the motor torque τj of the j-th joint is not 0 in step S41 of FIG. 12, the process B of step S43 is performed. FIG. 14 shows the procedure of the process B. As shown in this figure, in the process B, first, the sign of the gravitational torque (the sign of 0-τgj) is obtained and stored as a variable sign (step S60).
[0073]
Next, in step S61, the target position rotation angle θrj(K-1)From θrj(K)It is determined whether the sign of the value obtained by subtracting is the same as sign. That is, it is determined whether the gravitational torque is the same as the braking direction. If the two are different, the process proceeds to step S62, and the integral operation by the integral operation unit of the control system is omitted.
[0074]
After the integral calculation is omitted in step S62, the target position angle θrj is changed by a small amount Δθj in the direction opposite to the gravitational torque until the current position rotation angle changes (step S63) (step S64). As a result, the motor torque τ is gradually reduced, and the standby posture is maintained with the minimum motor torque that can maintain the rotation angle of the j-th joint. Note that when such torque control is performed, the motor torque τ may change beyond 0, so that the processing B may be terminated when the motor torque τ is monitored and τ = 0. Good.
[0075]
Thus, the operation control for one sampling time is completed. Thereafter, the operation control according to the same processing procedure as described above is repeatedly performed for each sampling time Ts, and the operation control of the coating robot is performed.
[0076]
C. Third operation mode
Next, as a third operation mode, similarly to the second operation mode, the case where the controller 1 receives a feedback signal of only the rotation angle θf of each joint and outputs a command signal of only the rotation speed command θr ′ (FIG. 11) An operation mode in which the holding torque is reduced by minutely changing the target position rotation angle of the standby posture in the control block diagram will be described.
[0077]
(1) Determination of target position rotation angle
Here, a method of determining the target position rotation angle when the holding torque is reduced by slightly changing the rotation speed command during standby will be described. The target position rotation angle determined here is the target position rotation angle in the target posture slightly deviated from the posture of the coating robot based on the teaching data. Hereinafter, the deviated target position rotation angle is referred to as θrpaus (θrpaus = [θrpaus1, θrpaus2,..., Θrpaus6]).T).
[0078]
FIG. 15 shows a processing procedure for determining the target position rotation angle. As shown in the figure, first, the arithmetic processing unit of the controller 1 reads the teaching data in the storage device (step S70), and determines the total number n of teaching points (step S71). Then, for each teaching point Pi from the initial position (P0) to the last teaching point (Pn), processing is performed in sequence according to the procedure shown in step S72 and subsequent steps. The flow of these processes is the same as the calculation of the target holding torque in the first operation mode.
[0079]
In step S72, the painting robot is moved to the position of the teaching point Pi and the posture at the position. Note that this movement is performed by calculating a target position for each sampling time, and details will be described in the determined operation control ((2) described later) after the target position rotation angle θr is determined. If there is no change in the posture of the painting robot at the teaching point Pi for a certain period of time, it is determined in step S73 that the painting robot is at a position where the painting robot waits, and the process proceeds to step S74.
[0080]
In step S74, the posture of the coating robot is slowly moved back and forth from the stationary state by changing the target position rotation angle of each joint by a small amount, and the start time T immediately before the operation at this time is started.+(Positive direction) and T(Negative direction).
[0081]
Here, this startup time T+And TWill be described in detail with reference to FIG. In FIG. 16, the first, second,..., And sixth joint numbers are represented by j (j = 1, 2,..., 6), and a counter for measuring time is represented by C.
[0082]
First, in step S80, the position of the teaching point Pi and the posture at the position are set as target values xr0 and Rr0, and the target position rotation angles θr1, θr2,..., Θr6 of each joint are calculated from the target values (step S81). Then, the processing of steps S82 to S92 is sequentially performed on the first to sixth joints, and the activation time Tj in the positive direction and the negative direction is determined.+And TjAsk for. In this process, it is assumed that the integration operation by the integration calculator is not performed.
[0083]
First, the target position rotation angle θrj is increased by a small amount dθj until the j-th joint starts operating in the forward direction (step S82). Thereafter, the j-th joint is held in the posture immediately before the operation, and the counter C is reset by substituting 0 (step S83).
[0084]
Next, the target position rotation angle θrj is decreased by a small amount dθj by a small amount dθj until the joint starts operating in the negative direction (step S84), and the counter C is incremented by 1 every time the joint is decreased (step S85). Then, the value of the counter C when the joint is operated is set to the activation time Tj in the negative direction.Then, the counter C is reset to 0 (step S86). Also, the target position rotation angle immediately before this operation (one step before the minute amount change step) is θrj.And
[0085]
Subsequently, the target position rotation angle θrj is increased by a small amount dθj by a small amount dθj until the joint starts operating in the positive direction from the state immediately before the operation in the negative direction (step S87), and the counter C is incremented by 1 for each increase. (Step S88). Then, the value of the counter C when the joint is operated is set to the positive starting time Tj.+(Step S89). Also, the target position rotation angle immediately before this operation is θrj+And Thus, the activation time T in the positive direction and the negative direction for each of the first to sixth joints.+And TAnd the process proceeds to step S75 in FIG.
[0086]
Next, the activation time Tj obtained as described above+And TjIs compared in step S75. And the activation time Tj+Is larger than the target position rotation angle θrpaus (i) j of the j-th joint at this point (teaching point Pi), the rotation angle θrj immediately before the negative direction operation.(Step S76), the activation time TjIs larger, the target position rotation angle θrpaus (i) j is changed to θrj just before the forward operation.+(Step S77), and when both start times are equal, the target position rotation angle θrpaus (i) j is set to the target position rotation angle θr (i) j based on the teaching data (Step S78). Here, when the target position rotation angle θrpaus (i) j is added (i), the target position rotation angle at the teaching point Pi is indicated. Thus, the target position rotation angle θrpaus (i) at the teaching point Pi is obtained.
[0087]
If the posture of the painting robot changes at the teaching point Pi in step S73, it is determined that the painting robot is not in a standby state, and the processing after step S74 is not performed. Through the above-described processing, the target position rotation angles θrpaus at all the teaching points where the painting robot stands by are obtained.
[0088]
(2) Operation control incorporating target position rotation angle θrpaus
Next, an operation control method in the present operation mode incorporating the target position rotation angle θrpaus will be described with reference to FIG. This figure shows a processing procedure of the operation control performed at each sampling time, and the flow of the processing is similar to the operation control in the first operation mode.
[0089]
First, the counter k of the target position obtained by dividing the teaching point in step S90 is incremented by 1, and the process proceeds to step S91. If the value of k at this time is equal to the total division number N, the process proceeds to step S92. In this case, the manipulator 4 has moved to the next teaching point Pi + 1.
[0090]
In step S92, the counter i corresponding to the teaching point is incremented by 1, and the two teaching points Pi and Pi + 1 are connected based on the interpolation information and the target positions of the currently passing teaching point Pi and the next teaching point Pi + 1. An interpolation formula for the target position xr is determined. This interpolation formula is represented by a polynomial at time t, similar to the above equation (4). In step S93, 0 is substituted for k, and the counter k of the target position between the teaching points is reset.
[0091]
On the other hand, if the value of k is not smaller than the total number of divisions N in step S91, the process proceeds to step S94 without performing the processes of steps S92 and S93. This is the case where the manipulator 4 is moving between the teaching point Pi that has already passed and the next teaching point Pi + 1. In this case, the target position xr is calculated by the interpolation formula between the teaching points currently passing in step S94.
[0092]
Subsequently, in step S95, the painting robot is moved to the target position and the posture at the position. Here, after the processing in steps S92 and S93, the posture is held as the position of the teaching point Pi, and after the processing in step S94, the target position and the position derived from the interpolation formula are determined. The position of the painting gun 17 and the posture of the painting robot are moved to the posture of.
[0093]
Next, in step S96, it is determined whether or not the value of k is 0, that is, whether or not the manipulator 4 is on the teaching point. Then, when the value of k is 0, it is determined whether or not the teaching point is at a position where the standby posture is to be taken (step S97). move on.
[0094]
In step S98, a rotation speed command based on the target position rotation angle θrpaus (i) at the teaching point Pi is output to the motor of each joint among the target position rotation angles θrpaus obtained above. That is, after removing the integration calculator in the control system, the target position rotation angle θr of each joint is set to the above θrpaus (i), and the posture of the coating robot is moved at a very small speed. Thereby, the standby posture at the teaching point Pi is maintained with the minimum power consumption. If the value of k is not 0, the processes in steps S97 and S98 are not performed.
[0095]
Thus, the operation control for one sampling time is completed. Thereafter, the operation control according to the processing procedure of step S90 and thereafter is repeatedly performed for each sampling time Ts, and thereby the operation control of the coating robot is performed.
[0096]
【The invention's effect】
As described above, according to the present invention, when the determination processing unit determines that the motor is in the standby state, the torque of the motor is reduced by using the frictional resistance of the movable part. The torque of the motor that maintains the standby state can be reduced without changing the position and posture of the robot. As a result, the power consumption can be reduced, and the running cost for performing various processes by operating the robot can be reduced.
[0097]
In particular, according to the second or fourth aspect of the present invention, the standby posture is controlled by obtaining a necessary and minimum motor torque when the robot is actually operated. The robot can be controlled by the running cost.
[0098]
Further, according to the present invention, since the posture does not change when the standby posture is maintained, the present invention can be applied without interference even when the operating environment of the robot is restricted. As a result, it is possible to obtain an effect that low-cost and flexible robot control according to various operation environments can be performed. Here, according to the third aspect of the present invention, the second command signal for the entire operation range is stored according to various operation environments, and the standby state is controlled.
[0099]
Furthermore, since the robot control according to the present invention can be realized without newly requiring a special device, the cost of the device itself does not increase.
[0100]
In addition, according to the present invention, since the power consumption is reduced, the calorific value is also reduced, and an increase in the temperature of the motor can be suppressed. At the same time, an increase in the temperature of the amplifier in the control device that supplies the current to the motor can be suppressed, thereby preventing malfunction of the CPU of the control device and improving the durability of hardware components. Is obtained.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of a painting robot system to which a robot control device according to an embodiment of the present invention is applied.
FIG. 2 is a diagram showing a structure of a joint portion between a second motor 8 and a first arm 9;
FIG. 3 is a diagram showing a relationship between a rotation speed θ ′ transmitted via a speed reducer and a motor torque τ.
FIG. 4 is a diagram showing a case where the first arm 9 changes from −20 ° to + 90 ° in a state where the first arm 9 and the second arm 11 form 90 °.
FIG. 5 is a diagram showing a relationship between a rotation angle θ2 and a gravitational torque τg (holding torque).
FIG. 6 is a diagram illustrating an example of a trajectory of a target position and a teaching point.
FIG. 7 is a control block diagram of the painting robot in a first operation mode.
FIG. 8 is a diagram showing a calculation processing procedure of a target holding torque τgr in the first operation mode.
9 is a posture holding torque τa in step S5 of FIG.+And τaFIG. 7 is a diagram showing a processing procedure for obtaining a.
FIG. 10 is a diagram showing an operation control method in which a target holding torque τgr in the first operation mode is adopted.
FIG. 11 is a control block diagram of the painting robot in the second and third operation modes.
FIG. 12 is a diagram illustrating an operation control method in a second operation mode.
FIG. 13 is a diagram showing a process A in step S42 of FIG.
FIG. 14 is a diagram showing a process B in step S43 of FIG.
FIG. 15 is a diagram illustrating a procedure of determining a target position rotation angle shifted by a small amount in the third operation mode.
FIG. 16 shows a startup time T in step S74 of FIG.+And TFIG. 7 is a diagram showing a processing procedure for obtaining a.
FIG. 17 is a diagram illustrating an operation control method incorporating a target position rotation angle θrpaus in a third operation mode.
[Explanation of symbols]
1 Controller
2 Teaching pendants
4 Manipulator
6 First motor
7 Turning base
8 Second motor
9 First arm
10 Third motor
11 Second arm
12 Motor case
13 First wrist unit
14 Second wrist unit
15 Third wrist unit
17 Paint gun

Claims (3)

減速機を介して伝達されるモータのトルクによって可動部分を動作させるロボットを、教示データに基づいて制御するロボット制御方法において、前記ロボットに対して前記教示データに基づく第1の指令信号を出力する第1の指令信号出力手段と、前記第1の指令信号に基づく前記ロボットの動作中において、前記ロボットの動作が一定の待機姿勢を保持する待機状態か否かを判断する判断処理手段と、前記判断処理手段により待機状態であると判断されたときに、前記モータのトルクを、当該トルクと前記減速器の摩擦トルクとによって前記可動部分が静止状態に維持される範囲で減少させる第2の指令信号を出力する第2の指令信号出力手段とを有するロボット制御装置によるロボット制御方法であって、前記教示データの教示点へ前記ロボットを移動させる第1の過程と、前記ロボットが教示点へ移動してきたときに、当該教示点が待機姿勢をとるべき位置であるか否か判断する第2の過程と、前記第2の過程において待機姿勢をとるべき位置と判断された場合に、前記モータのトルクを一定方向に微小量ずつ変化させる第3の指令信号を出力する第3の過程と、前記第3の指令信号により、前記可動部分が静止状態から動作した直前の当該第3の指令信号を記憶する第4の過程と、前記モータのトルクを前記第3の過程における一定方向と逆の方向に微小量ずつ変化させる第4の指令信号を出力する第5の過程と、前記第4の指令信号により、前記可動部分が静止状態から動作した直前の当該第4の指令信号を記憶する第6の過程と、前記第4及び第6の過程において記憶した当該第4及び第5の指令信号のうち、前記モータに対して少ないトルクを指示する指令信号を当該教示点における前記第2の指令信号とする第7の過程とにより決定された前記第2の指令信号に基づいて前記ロボットを制御することを特徴とするロボット制御方法。In a robot control method for controlling, based on teaching data, a robot that operates a movable part by torque of a motor transmitted via a speed reducer, a first command signal based on the teaching data is output to the robot. First command signal output means, determination processing means for determining whether or not the operation of the robot is in a standby state in which the operation of the robot maintains a predetermined standby attitude during operation of the robot based on the first command signal; A second command to decrease the torque of the motor in a range in which the movable portion is kept stationary by the torque and the friction torque of the speed reducer when the determination processing means determines that the motor is in a standby state; And a second command signal output means for outputting a signal. A first step of moving the robot, a second step of determining whether the teaching point is at a position where the robot should take a standby posture when the robot has moved to the teaching point, and the second step A third step of outputting a third command signal for changing the torque of the motor by a small amount in a certain direction in a case where it is determined that the position is to take the standby posture, and A fourth step of storing the third command signal immediately before the movable portion operates from the stationary state, and a fourth step of changing the torque of the motor by a small amount in a direction opposite to a constant direction in the third step. A fifth step of outputting the fourth command signal, a sixth step of storing the fourth command signal immediately before the movable portion starts operating from the stationary state, and a fourth step of storing the fourth command signal by the fourth command signal. In the sixth process The seventh step is that the command signal for instructing the motor to output a smaller torque among the fourth and fifth command signals is used as the second command signal at the teaching point. And controlling the robot based on the command signal. 請求項1記載のロボット制御方法において、前記ロボットを各教示点へ移動させて前記第2〜第7の過程を繰り返し、待機姿勢を保持するすべての教示点における前記第2の指令信号を決定して記憶し、前記教示データ及び記憶した前記第2の指令信号に基づいて前記ロボットを制御することを特徴とするロボット制御方法。2. The robot control method according to claim 1, wherein the robot is moved to each teaching point, and the second to seventh steps are repeated to determine the second command signal at all teaching points holding a standby posture. And controlling the robot based on the teaching data and the stored second command signal. 前記第1及び第2の指令信号は、前記モータに対する前記可動部分の動作速度を指示する速度指令信号である請求項1記載のロボット制御方法であって、前記判断処理手段により待機状態であると判断されたときに、前記可動部分の動作量に基づいて前記可動部分を静止状態に維持させるに必要な前記モータのトルクを求める第10の過程と、前記第10の過程において求めた前記必要な前記モータのトルクが0であった場合、前記可動部分を微小範囲で動作させて静止状態における前記モータのトルクを0とする前記微小範囲の動作における前記可動部分の動作速度を指示する前記第2の指令信号を出力し、前記可動部分を前記微小範囲で動作させる第11の過程と、前記第10の過程において求めた前記必要な前記モータのトルクが0でなかった場合、前記モータのトルクが減少して前記可動部分が動作する直前まで前記第2の指令信号を微小量ずつ変更する第12の過程とを有することを特徴とするロボット制御方法。2. The robot control method according to claim 1, wherein the first and second command signals are speed command signals that instruct an operation speed of the movable portion with respect to the motor, wherein the determination processing unit is in a standby state. 3. When it is determined, a tenth step of obtaining the torque of the motor required to maintain the movable part in a stationary state based on the operation amount of the movable part, and the necessary step obtained in the tenth step. When the torque of the motor is 0, the movable portion is operated in a minute range to set the torque of the motor in a stationary state to 0. And the required torque of the motor obtained in the eleventh step of operating the movable part in the minute range and the tenth step is 0. If you did, robot control method characterized by having a twelfth step of changing little by little the second command signal immediately before the torque of the motor to operate said movable portion is reduced.
JP16032696A 1996-06-20 1996-06-20 Robot control method Expired - Fee Related JP3552076B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16032696A JP3552076B2 (en) 1996-06-20 1996-06-20 Robot control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16032696A JP3552076B2 (en) 1996-06-20 1996-06-20 Robot control method

Publications (2)

Publication Number Publication Date
JPH1011121A JPH1011121A (en) 1998-01-16
JP3552076B2 true JP3552076B2 (en) 2004-08-11

Family

ID=15712551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16032696A Expired - Fee Related JP3552076B2 (en) 1996-06-20 1996-06-20 Robot control method

Country Status (1)

Country Link
JP (1) JP3552076B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4492573B2 (en) * 2006-03-27 2010-06-30 トヨタ自動車株式会社 Robot and robot motion control method
JP5586991B2 (en) * 2010-03-09 2014-09-10 キヤノン株式会社 Gripping device control method and gripping system
JP5618290B2 (en) * 2010-07-14 2014-11-05 トヨタ自動車株式会社 Robot equipment
JP5698519B2 (en) * 2010-12-22 2015-04-08 川崎重工業株式会社 Control device and control method of robot arm
WO2012127532A1 (en) 2011-03-23 2012-09-27 トヨタ自動車株式会社 Driving method for joint device
WO2015174155A1 (en) * 2014-05-16 2015-11-19 シャープ株式会社 Attitude control device, robot, and program
CN105058411B (en) 2015-08-04 2017-01-25 苏州阿福机器人有限公司 Method for external force driving of moving piece in mechanical joint

Also Published As

Publication number Publication date
JPH1011121A (en) 1998-01-16

Similar Documents

Publication Publication Date Title
US7211978B2 (en) Multiple robot arm tracking and mirror jog
WO2017064851A1 (en) Method for teaching robot and device for controlling robot arm
US6222338B1 (en) Method and apparatus for the direct teaching of automatic machines
WO2017090235A1 (en) Robot direct-teaching method
JP7336215B2 (en) Robot system, control method, article manufacturing method, program, and recording medium
JP3552076B2 (en) Robot control method
JP2017074669A (en) Manipulator control device, manipulator drive device, and robot system
JP2604929B2 (en) Robot control device
JPS6254302A (en) Robot controller
JPH08161015A (en) Driving control method for articulated robot
JPH08234801A (en) Apparatus and method for control for motor-driven joint arm
JPH0260475B2 (en)
US20230035296A1 (en) Method of suppressing vibrations of a robot arm with external objects
JPH05261691A (en) Redundant manipulator control method
JP3801264B2 (en) Industrial robot teaching method and apparatus
JPH0683453A (en) Load compensation control method for robot
JPH03105404A (en) Direct teach system
JP2713702B2 (en) Robot control method and device
JP2019214105A (en) Robot control apparatus and robot control method
JPH10301616A (en) Teaching device for robot
KR100321497B1 (en) Robot Motion Teach Method
JPH0413579A (en) Nonreactive device
JPH1055207A (en) Robot controller
JP2010167507A (en) Robot system and method of controlling the same
JP3324122B2 (en) Industrial robot controller

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040421

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090514

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100514

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100514

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110514

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140514

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees