ロボットの制御装置及びロボットの姿勢補間方法
【課題】ロボットの手先がワークを把持して加工を行う場合の作業精度を向上させる。
【解決手段】制御装置は、手先の先端点を座標原点とするX方向,Y方向,Z方向の各軸について、手先の位置及び姿勢をティーチングする場合に、座標原点から各軸方向の所定距離に手先の姿勢を定める姿勢点を設定すると、ティーチングした姿勢に対応する姿勢点の間について、各軸の姿勢点の移動軌跡がそれぞれ滑らかに繋がるように補間する。
【解決手段】制御装置は、手先の先端点を座標原点とするX方向,Y方向,Z方向の各軸について、手先の位置及び姿勢をティーチングする場合に、座標原点から各軸方向の所定距離に手先の姿勢を定める姿勢点を設定すると、ティーチングした姿勢に対応する姿勢点の間について、各軸の姿勢点の移動軌跡がそれぞれ滑らかに繋がるように補間する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの手先がワークを把持し、固定されているツールに対して前記ワークを移動させて加工を行う際に、ロボットの姿勢を補間する制御装置及び方法に関する。
【背景技術】
【0002】
従来、ロボットを用いてワークの加工等を行う場合には、ワークを固定し、ロボットの手先がツールを持って作業することが一般的である。しかし、例えばシール塗布やバリ取りといった一部の作業については、シーリングガンやリュータ等のツールを固定し、垂直多関節型のロボットの手先がワークを把持して作業する場合があり、このような作業形態を外部TCP(Tool Center Point;先端点)と称することがある。
【0003】
外部TCPでは、例えば図12に示すようにシール塗布の場合、ワークの加工点(塗布点)を含む平面が、シーリングガンによる塗料の吐出方向に対してなす角度が常に90度となるように維持することが望ましい。図12(a)に示すように、ワークの形状が平面である場合、手先の姿勢は一定に維持して位置だけを変化させれば良いので問題とならない。しかし、図12(b)に示すようにワークの形状が曲面を含んでいる場合は、ロボットが手先の姿勢を連続して微妙に変化させることで、上述した角度を90度にする必要がある。したがって、姿勢が当初にティーチングした通りに維持されなければ、ワークの加工精度が低下するおそれがある。
また、図13に示すバリ取りの場合には、ワークの複雑な外形に応じて、エッジの各点がリュータに対して常に最適な角度で当たるように、ロボットの手先の姿勢をティーチングした通りに制御する必要があり、姿勢が維持されないとバリが取り切れず加工精度が低下する。
【0004】
外部TCPへの適用を意識した技術ではないが、例えば特許文献1には、ロボットの手先が教示点P1,P2,P3を経由して連続的に動作する場合、各教示点における姿勢(回転行列)をR1,R2,R3とすると、姿勢R1から姿勢R2への変化量に関する等価回転角ベクトルK12と、姿勢R2から姿勢R3への同等価回転角ベクトルK23とを算出し、これらに基づき中間の教示点P2近傍の仮想的な内回り軌跡を算出し、この仮想的な内回り軌跡に対して指定された回転速度でサンプリング補間を行い、各補間点において移動方向に隣接する補間点への変化量に関する等価回転角ベクトルを算出し、その等価回転角ベクトルに基づいて動作軌跡を生成する技術が開示されている。また、特許文献2には、ロボットの急激な姿勢変化を抑制するため、経路変更点近傍におけるロボットの姿勢に関する補間指令値として、経路変更点近傍について得られた姿勢に関する補間指令値を、重ね合わせて得られた値を用いる技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−275484号公報
【特許文献2】特開平11−237910号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に開示されている技術は、特定の教示点を内回りする軌跡を生成する技術であるから、例えば図14(特許文献1の図7相当図)に示すように教示点P2を通過しない軌跡が生成される。そして姿勢は、前記軌跡上の補間点毎に再計算された姿勢をとるので、当初に教示した姿勢が維持されない場合がある。また、特許文献2のようにロボットの姿勢を補間する制御形態を外部TCPにそのまま適用すると、外部TCPの場合は姿勢が変化するので、ワークの加工精度が低下する。したがって、これらの従来技術を、外部TCPに適用することはできない。
【0007】
基本的に、ティーチングを微小な間隔で精密に行うようにすれば、手先の位置と姿勢とをティーチングした通りに再現することは可能ではあるが、現実問題としてティーチングをそのように行うことは非効率的であり、どうしても補間という処理を導入せざるを得ない。したがって、通常通りの間隔でティーチングを行い、教示点を補間することを前提とした上で問題を解決することが要求されている。
【0008】
本発明は上記事情に鑑みてなされたものであり、その目的は、ロボットの手先がワークを把持して加工を行う場合の作業精度を向上させることができるロボットの制御装置及びロボットの姿勢補間方法を提供することにある。
【課題を解決するための手段】
【0009】
請求項1記載のロボットの制御装置によれば、既に教示された手先の移動先である複数のX成分,Y成分,Z成分,X方向回転成分,Y方向回転成分,Z方向回転成分で構成された移動目標点について、姿勢座標変換処理手段は、各移動目標点におけるX,Y,Zの方向回転成分について回転行列変換処理を行い、方向回転成分毎にX成分,Y成分,Z成分で座標化されたX,Y,Zの各方向姿勢座標値を計算する。姿勢ベクトル増幅処理手段は、計算された移動目標点毎に存在するX,Y,Zの各方向姿勢座標値について、各移動目標点を原点に、X,Y,Zの各方向姿勢座標値それぞれに向けた単位ベクトルを形成すると、そのベクトルをn倍した先の位置をそれぞれ増幅X,増幅Y,増幅Z方向姿勢座標値とする。増幅姿勢座標値連結処理手段は、移動目標点毎に存在する増幅X,増幅Y,増幅Z方向姿勢座標値について、増幅X,増幅Y,増幅Z方向姿勢座標値のみを対象として、それぞれの座標値を滑らかな軌跡として連結する軌跡処理を行うと、得られた軌跡に沿って、各移動目標点間の姿勢を補完して移動する処理を行う。
【0010】
ここでの「滑らかな」とは、数学的に連続であること(各点が微分可能であること)を意味している。このように制御すれば、ロボットの手先を移動させることで、固定されているツールに対して手先に把持したワークを移動させて加工を行う場合に、手先の姿勢は、各位置についてティーチングを行った際に設定された各軸の姿勢決定座標の移動軌跡がそれぞれ滑らかに繋がるように、つまり、ティーチングを行った際の姿勢が維持された状態で手先が移動する。したがって、固定されているツールの軸に対してワークの加工点を含む面がなす角度が、ティーチングを行った通りに維持される。これにより、ワークの加工精度を向上させるために教示点を増やす必要が無くなるので、ティーチング作業を簡単にすることができる。
【図面の簡単な説明】
【0011】
【図1】一実施例であり、姿勢補間の手順をイメージ的に示す図
【図2】教示姿勢と各軸姿勢点との関係を示す図
【図3】姿勢補間処理のフローチャート
【図4】(a)は本実施例、(b)は従来技術の姿勢ズレを示す図
【図5】(a)は位置のズレ数値、(b)は姿勢のズレ数値を、本実施例と従来技術とについて示す図
【図6】手先の移動経路制御のフローチャート
【図7】接線ベクトルを求める方法を示す図
【図8】指令位置とそれら指令位置を連ねた曲線を示す図
【図9】速度パターンを示すグラフ
【図10】ロボットのシステム構成を示す図
【図11】制御装置を中心とする機能ブロック図
【図12】従来技術を説明する図(その1)
【図13】図12相当図(その2)
【図14】従来の位置,姿勢の補間処理を説明する図
【発明を実施するための形態】
【0012】
以下、一実施例について図1ないし図11を参照しながら説明する。ロボットは、図10に示すように、ロボット本体1と、このロボット本体1を制御する制御装置(姿勢決定座標設定手段,姿勢補間手段)2と、ティーチング装置としてのティーチングペンダント3を備えている。この実施例において、制御装置2の制御対象であるロボット本体1は、例えば垂直多関節型の作業用ロボットとして構成され、ベース4と、このベース4に水平方向に旋回可能に設けられたショルダ部5と、このショルダ部5に上下方向に旋回可能に設けられた下アーム6と、この下アーム6に上下方向に旋回可能に且つ捻り回転可能に設けられた上アーム7と、この上アーム7に上下方向に旋回可能に設けられた手首8とを備えている。
【0013】
手首8は、先端部に捻り回転可能なフランジ9を備えており、フランジ9にはハンド21が取り付けられて、そのハンド21がワーク22を把持している。そして、ショルダ部5の水平方向の旋回動作、下アーム6の上下方向の旋回動作、上アーム7の上下方向の旋回動作、上アーム7の回転動作、手首8の上下方向の旋回動作、フランジ9の回転動作は、それぞれ関節が、駆動源である例えば直流サーボモータからなるモータ10(図11参照)により図示しない適宜の伝動機構を介して回転駆動されることにより行われる。
本実施例は、前述した外部TCPによりワーク22を加工するもので、工具23は固定されており、その工具23に対してロボット本体1がワーク22を移動させて接触させ、加工を行う。
【0014】
図11に示すように、制御装置2は、制御部としてのCPU11、各関節のモータ10を駆動する駆動手段としての駆動回路12、検出回路13などを備えている。そして、CPU11には、ロボット全体のシステムプログラム等を記憶したROM14、ロボット本体1の動作プログラム等を記憶したRAM15および前記ティーチングペンダント3を接続するためのインターフェース16が接続されている。なお、図5では、ショルダ部5、下アーム6、上アーム7、手首8およびフランジ9を可動部として一つのブロックで示し、これに応じてそれらの関節の駆動源であるモータ10も一台だけ示した。
【0015】
上記検出回路13は、各関節の現在位置(回転角度)および現在速度(回転速度)を検出するためのもので、この検出回路13には、各関節を駆動するモータ10に設けられたロータリエンコーダ17が接続されている。ロータリエンコーダ17は位置センサおよび速度センサを兼用するもので、各モータ10の回転角度に応じたパルス信号を出力し、そのパルス信号は検出回路13に与えられる。検出回路13は、各ロータリエンコーダ17からのパルス信号に基づいて各モータ10ひいては各関節の現在位置を検出すると共に、単位時間当たり各ロータリエンコーダ17から入力されるパルス信号数に基づいて各モータ10ひいては各関節の現在速度を検出し、その位置および速度の情報は、各モータ10の駆動回路12およびCPU11に与えられるようになっている。
【0016】
そして、各駆動回路12は、CPU11から与えられる位置指令値および速度指令値と検出回路13から与えられる現在位置および現在速度とを比較し、その偏差に応じた電流を各モータ10に供給してそれらを駆動する。これにより、ロボットアーム先端(手先)であるフランジ9の中心部が指令位置を順に通る経路を辿って動作し、種々の作業を行う。
【0017】
ロボットアーム先端の移動経路は、ティーチングペンダント3を用いて行う教示作業によって与えられる。この教示作業では、ロボットアーム先端が辿るべき軌跡上の複数の位置が指令位置として順に教示されると共に、各指令位置でのロボットアーム先端の姿勢が教示され、その教示された指令位置と姿勢は、RAM15に記憶される。そして、制御装置2は、実際のロボット作業に際して、与えられた複数の指令位置間を曲線補間してそれら指令位置を順に滑らかに辿る曲線を設定し、ロボットアーム先端がその曲線上を移動するように制御する。
【0018】
なお、ロボットアーム先端の位置は、フランジ9に固定された3次元座標(ツール座標)の原点がロボット座標(ベース座標)上でどの位置にあるかによって示される。また、ロボットアーム先端の姿勢は、フランジ9に固定の3次元座標の3軸のうち、所定の2軸上の単位ベクトルがロボット座標上で示す向きによって定義される。
【0019】
さて、上記の複数の指令位置の曲線補間は、スプライン補間方式によって行われる。このスプライン補間の一例を図8によって説明する。図8において、R0,R1,……Rnは、(n+1)個の指令位置であり、R0が移動開始位置、Rnが移動終了位置である。また、指令位置R0〜Rnの相互間を結んでいる曲線G1,G2……Gnは、指令位置R0〜Rnの相互間を一区間として各区間について定義されるスプライン曲線セグメントである。スプライン補間では、スプライン曲線セグメントに対応するスプラインセグメント関数により、指令位置を通るスプライン曲線を定義する。
【0020】
各スプライン曲線セグメント上の各点は、3次元のロボット座標上の点として次の(1)〜(3)によって定めることができる。なお、tはパラメータである。
X(t)=a3t3+a2t2+a1t+a ……(1)
Y(t)=b3t3+b2t2+b1t+b ……(2)
Z(t)=c3t3+c2t2+c1t+c ……(3)
この(1)〜(3)式をまとめると、スプライン曲線セグメント上の各点の位置は、次の(4)式に示す3次の一般式(スプラインセグメント関数)によって定義される。
【0021】
【数1】
【0022】
【数2】
よって、上記(4)式は、次の(9)式のようになる。
【0023】
【数3】
以上のように指令位置相互間を一区画としたとき、各区画のスプライン曲線セグメントは上記(9)式の一般式によって表されるが、それら各区画のスプライン曲線セグメントを接続するための条件として、接線ベクトルT(k−1)、Tkを次の条件(ア)〜(ウ)により定める。
【0024】
(ア)接続点が一致していること。
(イ)一区画の両端(始点側指令位置および終点側指令位置)の接線ベクトルの大きさは、両端を結ぶ直線の長さに比例する大きさに定め、且つ、両端の接線ベクトルの向きは、両端を結ぶ直線が、前の一区間についての両端を結ぶ直線および後の一区間について両端を結ぶ直線となす角を、それぞれ2分する方向に定めること。
(ウ)上記のように定めた始点側接線ベクトルの向きが前の区画の終点側接線ベクトルの向きと一致し、終点側接線ベクトルの向きが後の区画の始点側接線ベクトルの向きと一致すること。
【0025】
この(ア)〜(ウ)の条件を具体的に図7に示す第2の区間(k=2;指令位置R1とR2の区間)を中心にして具体的に説明する。図7は図8の指令位置R0〜R3までを拡大して示している。この図7において、第1の区間(k=1)の両端(指令位置R0とR1)間を結ぶ直線をL1、第2の区間(k=2)の両端(指令位置R1とR2)間を結ぶ直線をL2、第3の区間(k=3)の両端(指令位置R2とR3)間を結ぶ直線をL3とする。
【0026】
また、第1の区間の両端R0,R1の接線ベクトルをそれぞれT1s(始点側接線ベクトル),T1e(終点側接線ベクトル)、第2の区間の両端R1,R2の接線ベクトルをそれぞれT2s(始点側接線ベクトル),T2e(終点側接線ベクトル)、第3の区間の両端R2,R3の接線ベクトルをそれぞれT3s(始点側接線ベクトル),T3e(終点側接線ベクトル)とする。
【0027】
すると、第1の区間の終点側接線ベクトルベクトルT1e、第2の区間の始点側接線ベクトルT2sおよび終点側接線ベクトルT2e、第3の区間の始点側接線ベクトルT2sおよび終点側接線ベクトルT2eは、次の(10)式〜(13)式のようになる。ここで、第1の区間は前の区間がないので、始点側接線ベクトルT1sについては、例えば大きさを直線L1の長さに比例係数rを乗じた値に定め、向きを直線L1と同じに定める。
【0028】
【数4】
上記(10)式〜(13)式において、rはT1sの大きさを定める際に使用したと同じ値の比例係数であり、本実施例では1と定めている。
【0029】
ここで、矢印付きのP0〜P3は、指令位置R0〜R3の位置ベクトルであるから、(10)式および(11)式において、小括弧内の第1式は直線L1に一致する方向の単位ベクトル、第2式は、直線L2に一致する方向の単位ベクトルをそれぞれ求めるものであり、同様に(12)式および(13)式において、小括弧内の第1式は直線L2に一致する方向の単位ベクトル、第2式は、直線L3に一致する方向の単位ベクトルをそれぞれ求めるものである。従って、(10)式〜(13)式において、小括弧内の式を演算することによって直線L1とL2とのなす角の差、直線L2とL3とのなす角の差が求められ、それに0.5を乗ずることによって直線L1とL2とのなす角を二分する方向、直線L2とL3とのなす角を二分する方向がそれぞれ求められる。
【0030】
このようにして各区間についてそれぞれ始点側接線ベクトルおよび終点側接線ベクトルが求められる。そして、各区間について両端の接線ベクトルを求めた後、前述のようにして各区間のスプライン曲線セグメントを表す関数式の4つのスプラインパラメータを求める。すると、各区間の始点側接線ベクトルおよび終点側接線ベクトルが、それぞれ前の区間の終点側接線ベクトルおよび後の区間の始点側接線ベクトルに向きと一致する関数を求めることができ、その結果、各接続点(指令位置)において滑らかに連続するスプライン曲線(スプライン関数)を求めることができる。
【0031】
次に、上記構成においてロボット作業を行う場合の作用を説明する。ロボット作業を行わせるに先立って、ティーチングペンダント3を用いて実際にロボット本体1を動かしてそのロボットアーム先端の移動開始位置、通過点および移動終了位置を指令位置として教示する。この指令位置および姿勢は、RAM15(記憶手段)に記憶される。
【0032】
図6に示すように、ロボット作業を行わせるべく、スタート操作を行うと、ロボットの制御装置2は、まず、指令位置をRAM15から読み出し(ステップS11)、移動経路の両端、つまり移動開始位置および移動終了位置の接線ベクトルを設定する(ステップS12)。この場合、移動開始位置での接線ベクトルは、移動開始位置と次の指令位置とを結ぶ直線と同じ方向を向き、次の指令位置までの直線の長さに比例する大きさとする。また、移動終点位置での接線ベクトルは、直ぐ前の指令位置と移動終点位置とを結ぶ直線と同じ方向を向き、直ぐ前の指令位置と移動終点位置とを結ぶ直線の長さに比例する大きさとする。なお、この移動開始位置および移動終了位置での接線ベクトルの向きと大きさはこれに限られるものではなく、前後の作業を考慮して定めることができ、また、大きさは0であっても良い。
【0033】
次に、制御装置2は、移動開始位置から移動終了位置までを指令位置で複数区画に分割し、区間毎に前述の(10)式〜(13)式によって始点側接線ベクトルと終点側接線ベクトルとを演算する(ステップS13)。そして、制御装置2は、各区間のスプライン曲線セグメントの関数式(スプラインセグメント関数)のベクトル係数を前述した(5)式〜(8)式によって求める(ステップS14)。
【0034】
このようにして各区間のスプラインセグメント関数のベクトル係数が求まると、移動始点位置から移動終点位置までの全指令位置を滑らかな曲線で結ぶスプライン曲線が求められたこととなるので、その後、制御装置2は、このスプラインセグメント関数である(9)式を用いて、具体的には(9)式をt(例えば0≦t≦1)で微分して求めた式を0から1まで積分することにより、移動開始位置から移動終了位置までの総曲線距離を計算する(ステップS15)。
【0035】
求められた総曲線距離はロボットアーム先端の移動開始位置から移動終了位置までの移動距離であるから、次に、制御装置2は、総曲線距離から図9(a)に示す速度パターンを生成する(ステップS16)。この速度パターンは、ロボットアーム先端の速度が台形となるように定めるもので、ロボットアーム先端が移動開始位置から予め定められた一定の加速度で予め定められた最高速度となるまで速度を上昇させながら移動し、予め定められた最高速度に達したら、その最高速度で等速度移動し、そして、予め定められた減速度で減速して移動終了位置に至るような速度パターンを生成する。
【0036】
速度パターンを生成すると、制御装置2は、速度パターンから一定のサンプリング時間内でのロボットアーム先端の移動距離を求め、今回のサンプリング時間内での移動距離を前のサンプリング時間内での移動終了位置にプラスして、今回のサンプリング時間でのスプライン曲線上の移動終了位置を求めると共に、ロボットアーム先端の姿勢を計算する(ステップS17)。
【0037】
そして、制御装置2は、サンプリング時間内でロボットアーム先端が移動開始位置から移動終了位置まで移動するように各アームの角速度および位置を計算し(ステップS18)、各アームのモータ10に速度指令値および位置指令値を出力する(ステップS19)。それから、制御装置2は、上記のステップS17〜ステップS19を繰り返すことによって、ロボットアーム先端を移動終了位置まで(ステップS20:YES)動作させる。
【0038】
ここで、本実施例では、ロボット本体1を外部TCPで動作させるに際して、上述した指令位置について行った補間を手先の姿勢についても同様に適用して補間を行う。以下、この姿勢補間処理について図1ないし図5を参照して説明する。図3は、姿勢補間処理を示すフローチャートである。上述したように、ティーチングペンダント3を用いて位置及び姿勢について教示点が設定されると(ステップS1)、ロボット本体1を固定工具周りで動作させるため、教示点(ベース座標から見たツール座標,図10参照)が、ツール(手先)から見た工具23への位置,姿勢(ツール座標から見た固定工具座標)となるように座標変換する(ステップS2)。
【0039】
尚、図10中に示す座標変換行列式は、外部TCPではあるが従来との整合を図るため、手先をツール(t),固定工具23をワーク(w)と称している。そして、ベース座標からツール座標への変換を行う行列式は、ベース座標から固定工具座標への変換行列と、ツール座標から固定工具座標への変換行列の逆行列との積で表わされることを示している(右辺第2式は、固定工具座標からツール座標への変換行列に等しい)。
【0040】
次に、各教示位置におけるそれぞれの教示姿勢を座標値として特定する。教示された姿勢は回転角度値(X方向回転成分,Y方向回転成分,Z方向回転成分)で与えられているので、回転行列を用いて空間座標値(X方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値)に変換する(回転行列変換処理,姿勢座標変換処理手段)。各位置における手先の姿勢に対応する回転行列が、変換された座標によって表現される。すなわち、この回転行列が、手先の姿勢を特定するノーマルベクトル(X軸),オリエントベクトル(Y軸),アプローチベクトル(Z軸)を、それぞれベース座標上で表現した3次元座標値となる。また、各教示位置の各方向座標値と、当該教示位置における各方向姿勢座標値とからなるものが移動目標位置に対応する。
【0041】
そして、教示位置を原点とするX,Y,Zの各軸方向に、任意の長さを伸ばして仮想した点を姿勢点(増幅X方向姿勢座標値,増幅Y方向姿勢座標値,増幅Z方向姿勢座標値)とする(ステップS3,姿勢ベクトル増幅処理手段)。すなわち、図2に示すように、教示姿勢Dを、教示位置(SC)を原点にして立つ方向ベクトルと考えれば、その方向ベクトルの3次元座標値(SN,SO,SA)を決定することで教示姿勢が特定される。尚、「任意の長さ」は教示姿勢を特定可能な長さであれば良いので、例えば上記座標系の単位ベクトルのn(>2)倍等とする。
【0042】
ここで、回転行列を用いて表わされた姿勢を示す座標値は、ゼロに近い値となる。補間を行うための演算は、制御装置2に内蔵されるCPUで行われるが、CPUには計算限界桁があるので、最初からゼロに近い値を用いるとその計算限界桁を超えた部分に各教示点での姿勢に影響を与える値が存在することになる。しかし、CPUの計算上ではその微妙な差が計算誤差として飲み込まれてしまうので、姿勢が滑らかに変化するように補間値を演算できなくなる。そこで、そのような事態を回避するためベクトルの長さをn倍して、CPUの計算限界桁内で姿勢を滑らかに変化させるように演算するための値を取り込むようにする。
【0043】
ステップS3の処理により、1つの教示姿勢について3つの姿勢点がそれぞれ3次元座標値として決定されるが、これらを「位置」と同様に扱うことで教示姿勢を補間することができる。すなわち、X,Y,Zそれぞれの姿勢点を,例えば上述した教示位置のようにスプライン曲線によって、滑らかな軌跡としてそれぞれ連結するように軌跡処理を行い補間する(ステップS4,増幅姿勢座標値連結処理手段)。
【0044】
ここで、図1は、教示位置並びに教示姿勢を補間する処理をイメージ的に示している。尚、図示が煩雑になるのを避けるため、姿勢点についてはY,Zの2軸分だけ示している。図1(a),(b)は、各教示位置を曲線補間した場合を示し、図1(c)は、各教示位置における教示姿勢についてY方向姿勢点及びZ方向姿勢点を決定した場合であり、各矢印がオリエントベクトル,アプローチベクトルに対応する。そして、図1(d)はY方向姿勢点を曲線補間した場合、図1(e)はZ方向姿勢点を曲線補間した場合である。また、図示しないX方向(ノーマルベクトル)姿勢点についても同様に曲線補間する。
【0045】
ステップS4では、X,Y,Zの各方向について姿勢点を独立に補間したが、これらの各方向の補間点については3次元座標の各軸に対応することから、互いの関係が正規直交条件を満たす必要がある。したがって、その条件を満たすように修正を行う(ステップS5)。以上で教示姿勢の補間処理が完了する。
【0046】
それから、ステップS5で得た補間点を、ベースから見たツールの位置・姿勢となるように座標変換すると(ステップS6)、補間点を加えて得られた手先の軌道(X,Y,Z各方向姿勢点の軌道)を、各軸J1〜J6の角度に変換する(ステップS7)。以上で姿勢の補間処理が終了する。
【0047】
ここで、図4は、教示点におけるアプローチベクトルの教示姿勢(SA)に対して、(b)は特許文献1,2のような従来の補間技術を適用して、手先が教示点を通過した場合のアプローチベクトルを3次元的に示している。(b)では教示姿勢に対してズレを生じているが、本実施例の姿勢補間技術を適用した場合の(a)では、姿勢のズレが略生じていないことが判る。
【0048】
また図5は、位置,姿勢の教示点について、従来の補間技術と本実施例の補間技術とのズレの発生量を示したものである。尚、同図中に示すワーク22及び工具23は、図10に対応しないモデル的なものである。(a)の位置ずれについては、従来と本実施例とでは何れも0.1mm未満の誤差であり有意な差はない。一方、(b)の姿勢ずれについては、従来技術では誤差角度が5[deg]を超える場合もあるが、本実施例では、誤差角度が0.1[deg]以下となっており、大きく改善されている。
【0049】
以上のように本実施例によれば、制御装置2は、手先の先端点を座標原点とするX方向,Y方向,Z方向の各軸について手先の位置及び姿勢をティーチングする場合に、既に教示された手先の移動先である複数のX成分,Y成分,Z成分,X方向回転成分,Y方向回転成分,Z方向回転成分で構成された移動目標点について、各移動目標点におけるX,Y,Zの方向回転成分について回転行列変換処理を行い、方向回転成分毎にX成分,Y成分,Z成分で座標化されたX,Y,Zの各方向姿勢座標値を計算する。それから、計算された移動目標点毎に存在するX,Y,Zの各方向姿勢座標値について、各移動目標点を原点に、X,Y,Zの各方向姿勢座標値それぞれに向けた単位ベクトルを形成すると、そのベクトルをn倍した先の位置をそれぞれ増幅X,増幅Y,増幅Z方向姿勢座標値とする。そして、移動目標点毎に存在する増幅X,増幅Y,増幅Z方向姿勢座標値について、増幅X,増幅Y,増幅Z方向姿勢座標値のみを対象として、それぞれの座標値を滑らかな軌跡として連結する軌跡処理を行うと、得られた軌跡に沿って、各移動目標点間の姿勢を補完して移動する処理を行うようにした。
【0050】
これにより、ロボット本体1の手先を移動させることで、固定されている工具23に対してワーク22を移動させて加工を行う場合に、手先の姿勢は、教示された姿勢が維持されながら手先が移動する。したがって、固定されている工具23の軸に対して、ワーク22の加工点を含む面がなす角度がティーチングを行った通りに維持されるので、ワーク22の加工精度を向上させるために教示点を増やす必要が無くなるため、ティーチング作業を簡単にすることができる。
【0051】
本発明は上記し、又は図面に記載した実施例にのみ限定されるものではなく、以下のような変型又は拡張が可能である。
姿勢の補間については、スプライン曲線を用いるものに限ることなく、各軸の姿勢決定座標の移動軌跡がそれぞれ滑らかに(数学的に連続となるように)繋がるように補間すれば良い。
【符号の説明】
【0052】
図面中、1はロボット本体、2は制御装置(姿勢座標変換処理手段,姿勢ベクトル増幅処理手段,増幅姿勢座標値連結処理手段)、3はティーチングペンダント、9はフランジ(手先)である。
【技術分野】
【0001】
本発明は、ロボットの手先がワークを把持し、固定されているツールに対して前記ワークを移動させて加工を行う際に、ロボットの姿勢を補間する制御装置及び方法に関する。
【背景技術】
【0002】
従来、ロボットを用いてワークの加工等を行う場合には、ワークを固定し、ロボットの手先がツールを持って作業することが一般的である。しかし、例えばシール塗布やバリ取りといった一部の作業については、シーリングガンやリュータ等のツールを固定し、垂直多関節型のロボットの手先がワークを把持して作業する場合があり、このような作業形態を外部TCP(Tool Center Point;先端点)と称することがある。
【0003】
外部TCPでは、例えば図12に示すようにシール塗布の場合、ワークの加工点(塗布点)を含む平面が、シーリングガンによる塗料の吐出方向に対してなす角度が常に90度となるように維持することが望ましい。図12(a)に示すように、ワークの形状が平面である場合、手先の姿勢は一定に維持して位置だけを変化させれば良いので問題とならない。しかし、図12(b)に示すようにワークの形状が曲面を含んでいる場合は、ロボットが手先の姿勢を連続して微妙に変化させることで、上述した角度を90度にする必要がある。したがって、姿勢が当初にティーチングした通りに維持されなければ、ワークの加工精度が低下するおそれがある。
また、図13に示すバリ取りの場合には、ワークの複雑な外形に応じて、エッジの各点がリュータに対して常に最適な角度で当たるように、ロボットの手先の姿勢をティーチングした通りに制御する必要があり、姿勢が維持されないとバリが取り切れず加工精度が低下する。
【0004】
外部TCPへの適用を意識した技術ではないが、例えば特許文献1には、ロボットの手先が教示点P1,P2,P3を経由して連続的に動作する場合、各教示点における姿勢(回転行列)をR1,R2,R3とすると、姿勢R1から姿勢R2への変化量に関する等価回転角ベクトルK12と、姿勢R2から姿勢R3への同等価回転角ベクトルK23とを算出し、これらに基づき中間の教示点P2近傍の仮想的な内回り軌跡を算出し、この仮想的な内回り軌跡に対して指定された回転速度でサンプリング補間を行い、各補間点において移動方向に隣接する補間点への変化量に関する等価回転角ベクトルを算出し、その等価回転角ベクトルに基づいて動作軌跡を生成する技術が開示されている。また、特許文献2には、ロボットの急激な姿勢変化を抑制するため、経路変更点近傍におけるロボットの姿勢に関する補間指令値として、経路変更点近傍について得られた姿勢に関する補間指令値を、重ね合わせて得られた値を用いる技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−275484号公報
【特許文献2】特開平11−237910号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に開示されている技術は、特定の教示点を内回りする軌跡を生成する技術であるから、例えば図14(特許文献1の図7相当図)に示すように教示点P2を通過しない軌跡が生成される。そして姿勢は、前記軌跡上の補間点毎に再計算された姿勢をとるので、当初に教示した姿勢が維持されない場合がある。また、特許文献2のようにロボットの姿勢を補間する制御形態を外部TCPにそのまま適用すると、外部TCPの場合は姿勢が変化するので、ワークの加工精度が低下する。したがって、これらの従来技術を、外部TCPに適用することはできない。
【0007】
基本的に、ティーチングを微小な間隔で精密に行うようにすれば、手先の位置と姿勢とをティーチングした通りに再現することは可能ではあるが、現実問題としてティーチングをそのように行うことは非効率的であり、どうしても補間という処理を導入せざるを得ない。したがって、通常通りの間隔でティーチングを行い、教示点を補間することを前提とした上で問題を解決することが要求されている。
【0008】
本発明は上記事情に鑑みてなされたものであり、その目的は、ロボットの手先がワークを把持して加工を行う場合の作業精度を向上させることができるロボットの制御装置及びロボットの姿勢補間方法を提供することにある。
【課題を解決するための手段】
【0009】
請求項1記載のロボットの制御装置によれば、既に教示された手先の移動先である複数のX成分,Y成分,Z成分,X方向回転成分,Y方向回転成分,Z方向回転成分で構成された移動目標点について、姿勢座標変換処理手段は、各移動目標点におけるX,Y,Zの方向回転成分について回転行列変換処理を行い、方向回転成分毎にX成分,Y成分,Z成分で座標化されたX,Y,Zの各方向姿勢座標値を計算する。姿勢ベクトル増幅処理手段は、計算された移動目標点毎に存在するX,Y,Zの各方向姿勢座標値について、各移動目標点を原点に、X,Y,Zの各方向姿勢座標値それぞれに向けた単位ベクトルを形成すると、そのベクトルをn倍した先の位置をそれぞれ増幅X,増幅Y,増幅Z方向姿勢座標値とする。増幅姿勢座標値連結処理手段は、移動目標点毎に存在する増幅X,増幅Y,増幅Z方向姿勢座標値について、増幅X,増幅Y,増幅Z方向姿勢座標値のみを対象として、それぞれの座標値を滑らかな軌跡として連結する軌跡処理を行うと、得られた軌跡に沿って、各移動目標点間の姿勢を補完して移動する処理を行う。
【0010】
ここでの「滑らかな」とは、数学的に連続であること(各点が微分可能であること)を意味している。このように制御すれば、ロボットの手先を移動させることで、固定されているツールに対して手先に把持したワークを移動させて加工を行う場合に、手先の姿勢は、各位置についてティーチングを行った際に設定された各軸の姿勢決定座標の移動軌跡がそれぞれ滑らかに繋がるように、つまり、ティーチングを行った際の姿勢が維持された状態で手先が移動する。したがって、固定されているツールの軸に対してワークの加工点を含む面がなす角度が、ティーチングを行った通りに維持される。これにより、ワークの加工精度を向上させるために教示点を増やす必要が無くなるので、ティーチング作業を簡単にすることができる。
【図面の簡単な説明】
【0011】
【図1】一実施例であり、姿勢補間の手順をイメージ的に示す図
【図2】教示姿勢と各軸姿勢点との関係を示す図
【図3】姿勢補間処理のフローチャート
【図4】(a)は本実施例、(b)は従来技術の姿勢ズレを示す図
【図5】(a)は位置のズレ数値、(b)は姿勢のズレ数値を、本実施例と従来技術とについて示す図
【図6】手先の移動経路制御のフローチャート
【図7】接線ベクトルを求める方法を示す図
【図8】指令位置とそれら指令位置を連ねた曲線を示す図
【図9】速度パターンを示すグラフ
【図10】ロボットのシステム構成を示す図
【図11】制御装置を中心とする機能ブロック図
【図12】従来技術を説明する図(その1)
【図13】図12相当図(その2)
【図14】従来の位置,姿勢の補間処理を説明する図
【発明を実施するための形態】
【0012】
以下、一実施例について図1ないし図11を参照しながら説明する。ロボットは、図10に示すように、ロボット本体1と、このロボット本体1を制御する制御装置(姿勢決定座標設定手段,姿勢補間手段)2と、ティーチング装置としてのティーチングペンダント3を備えている。この実施例において、制御装置2の制御対象であるロボット本体1は、例えば垂直多関節型の作業用ロボットとして構成され、ベース4と、このベース4に水平方向に旋回可能に設けられたショルダ部5と、このショルダ部5に上下方向に旋回可能に設けられた下アーム6と、この下アーム6に上下方向に旋回可能に且つ捻り回転可能に設けられた上アーム7と、この上アーム7に上下方向に旋回可能に設けられた手首8とを備えている。
【0013】
手首8は、先端部に捻り回転可能なフランジ9を備えており、フランジ9にはハンド21が取り付けられて、そのハンド21がワーク22を把持している。そして、ショルダ部5の水平方向の旋回動作、下アーム6の上下方向の旋回動作、上アーム7の上下方向の旋回動作、上アーム7の回転動作、手首8の上下方向の旋回動作、フランジ9の回転動作は、それぞれ関節が、駆動源である例えば直流サーボモータからなるモータ10(図11参照)により図示しない適宜の伝動機構を介して回転駆動されることにより行われる。
本実施例は、前述した外部TCPによりワーク22を加工するもので、工具23は固定されており、その工具23に対してロボット本体1がワーク22を移動させて接触させ、加工を行う。
【0014】
図11に示すように、制御装置2は、制御部としてのCPU11、各関節のモータ10を駆動する駆動手段としての駆動回路12、検出回路13などを備えている。そして、CPU11には、ロボット全体のシステムプログラム等を記憶したROM14、ロボット本体1の動作プログラム等を記憶したRAM15および前記ティーチングペンダント3を接続するためのインターフェース16が接続されている。なお、図5では、ショルダ部5、下アーム6、上アーム7、手首8およびフランジ9を可動部として一つのブロックで示し、これに応じてそれらの関節の駆動源であるモータ10も一台だけ示した。
【0015】
上記検出回路13は、各関節の現在位置(回転角度)および現在速度(回転速度)を検出するためのもので、この検出回路13には、各関節を駆動するモータ10に設けられたロータリエンコーダ17が接続されている。ロータリエンコーダ17は位置センサおよび速度センサを兼用するもので、各モータ10の回転角度に応じたパルス信号を出力し、そのパルス信号は検出回路13に与えられる。検出回路13は、各ロータリエンコーダ17からのパルス信号に基づいて各モータ10ひいては各関節の現在位置を検出すると共に、単位時間当たり各ロータリエンコーダ17から入力されるパルス信号数に基づいて各モータ10ひいては各関節の現在速度を検出し、その位置および速度の情報は、各モータ10の駆動回路12およびCPU11に与えられるようになっている。
【0016】
そして、各駆動回路12は、CPU11から与えられる位置指令値および速度指令値と検出回路13から与えられる現在位置および現在速度とを比較し、その偏差に応じた電流を各モータ10に供給してそれらを駆動する。これにより、ロボットアーム先端(手先)であるフランジ9の中心部が指令位置を順に通る経路を辿って動作し、種々の作業を行う。
【0017】
ロボットアーム先端の移動経路は、ティーチングペンダント3を用いて行う教示作業によって与えられる。この教示作業では、ロボットアーム先端が辿るべき軌跡上の複数の位置が指令位置として順に教示されると共に、各指令位置でのロボットアーム先端の姿勢が教示され、その教示された指令位置と姿勢は、RAM15に記憶される。そして、制御装置2は、実際のロボット作業に際して、与えられた複数の指令位置間を曲線補間してそれら指令位置を順に滑らかに辿る曲線を設定し、ロボットアーム先端がその曲線上を移動するように制御する。
【0018】
なお、ロボットアーム先端の位置は、フランジ9に固定された3次元座標(ツール座標)の原点がロボット座標(ベース座標)上でどの位置にあるかによって示される。また、ロボットアーム先端の姿勢は、フランジ9に固定の3次元座標の3軸のうち、所定の2軸上の単位ベクトルがロボット座標上で示す向きによって定義される。
【0019】
さて、上記の複数の指令位置の曲線補間は、スプライン補間方式によって行われる。このスプライン補間の一例を図8によって説明する。図8において、R0,R1,……Rnは、(n+1)個の指令位置であり、R0が移動開始位置、Rnが移動終了位置である。また、指令位置R0〜Rnの相互間を結んでいる曲線G1,G2……Gnは、指令位置R0〜Rnの相互間を一区間として各区間について定義されるスプライン曲線セグメントである。スプライン補間では、スプライン曲線セグメントに対応するスプラインセグメント関数により、指令位置を通るスプライン曲線を定義する。
【0020】
各スプライン曲線セグメント上の各点は、3次元のロボット座標上の点として次の(1)〜(3)によって定めることができる。なお、tはパラメータである。
X(t)=a3t3+a2t2+a1t+a ……(1)
Y(t)=b3t3+b2t2+b1t+b ……(2)
Z(t)=c3t3+c2t2+c1t+c ……(3)
この(1)〜(3)式をまとめると、スプライン曲線セグメント上の各点の位置は、次の(4)式に示す3次の一般式(スプラインセグメント関数)によって定義される。
【0021】
【数1】
【0022】
【数2】
よって、上記(4)式は、次の(9)式のようになる。
【0023】
【数3】
以上のように指令位置相互間を一区画としたとき、各区画のスプライン曲線セグメントは上記(9)式の一般式によって表されるが、それら各区画のスプライン曲線セグメントを接続するための条件として、接線ベクトルT(k−1)、Tkを次の条件(ア)〜(ウ)により定める。
【0024】
(ア)接続点が一致していること。
(イ)一区画の両端(始点側指令位置および終点側指令位置)の接線ベクトルの大きさは、両端を結ぶ直線の長さに比例する大きさに定め、且つ、両端の接線ベクトルの向きは、両端を結ぶ直線が、前の一区間についての両端を結ぶ直線および後の一区間について両端を結ぶ直線となす角を、それぞれ2分する方向に定めること。
(ウ)上記のように定めた始点側接線ベクトルの向きが前の区画の終点側接線ベクトルの向きと一致し、終点側接線ベクトルの向きが後の区画の始点側接線ベクトルの向きと一致すること。
【0025】
この(ア)〜(ウ)の条件を具体的に図7に示す第2の区間(k=2;指令位置R1とR2の区間)を中心にして具体的に説明する。図7は図8の指令位置R0〜R3までを拡大して示している。この図7において、第1の区間(k=1)の両端(指令位置R0とR1)間を結ぶ直線をL1、第2の区間(k=2)の両端(指令位置R1とR2)間を結ぶ直線をL2、第3の区間(k=3)の両端(指令位置R2とR3)間を結ぶ直線をL3とする。
【0026】
また、第1の区間の両端R0,R1の接線ベクトルをそれぞれT1s(始点側接線ベクトル),T1e(終点側接線ベクトル)、第2の区間の両端R1,R2の接線ベクトルをそれぞれT2s(始点側接線ベクトル),T2e(終点側接線ベクトル)、第3の区間の両端R2,R3の接線ベクトルをそれぞれT3s(始点側接線ベクトル),T3e(終点側接線ベクトル)とする。
【0027】
すると、第1の区間の終点側接線ベクトルベクトルT1e、第2の区間の始点側接線ベクトルT2sおよび終点側接線ベクトルT2e、第3の区間の始点側接線ベクトルT2sおよび終点側接線ベクトルT2eは、次の(10)式〜(13)式のようになる。ここで、第1の区間は前の区間がないので、始点側接線ベクトルT1sについては、例えば大きさを直線L1の長さに比例係数rを乗じた値に定め、向きを直線L1と同じに定める。
【0028】
【数4】
上記(10)式〜(13)式において、rはT1sの大きさを定める際に使用したと同じ値の比例係数であり、本実施例では1と定めている。
【0029】
ここで、矢印付きのP0〜P3は、指令位置R0〜R3の位置ベクトルであるから、(10)式および(11)式において、小括弧内の第1式は直線L1に一致する方向の単位ベクトル、第2式は、直線L2に一致する方向の単位ベクトルをそれぞれ求めるものであり、同様に(12)式および(13)式において、小括弧内の第1式は直線L2に一致する方向の単位ベクトル、第2式は、直線L3に一致する方向の単位ベクトルをそれぞれ求めるものである。従って、(10)式〜(13)式において、小括弧内の式を演算することによって直線L1とL2とのなす角の差、直線L2とL3とのなす角の差が求められ、それに0.5を乗ずることによって直線L1とL2とのなす角を二分する方向、直線L2とL3とのなす角を二分する方向がそれぞれ求められる。
【0030】
このようにして各区間についてそれぞれ始点側接線ベクトルおよび終点側接線ベクトルが求められる。そして、各区間について両端の接線ベクトルを求めた後、前述のようにして各区間のスプライン曲線セグメントを表す関数式の4つのスプラインパラメータを求める。すると、各区間の始点側接線ベクトルおよび終点側接線ベクトルが、それぞれ前の区間の終点側接線ベクトルおよび後の区間の始点側接線ベクトルに向きと一致する関数を求めることができ、その結果、各接続点(指令位置)において滑らかに連続するスプライン曲線(スプライン関数)を求めることができる。
【0031】
次に、上記構成においてロボット作業を行う場合の作用を説明する。ロボット作業を行わせるに先立って、ティーチングペンダント3を用いて実際にロボット本体1を動かしてそのロボットアーム先端の移動開始位置、通過点および移動終了位置を指令位置として教示する。この指令位置および姿勢は、RAM15(記憶手段)に記憶される。
【0032】
図6に示すように、ロボット作業を行わせるべく、スタート操作を行うと、ロボットの制御装置2は、まず、指令位置をRAM15から読み出し(ステップS11)、移動経路の両端、つまり移動開始位置および移動終了位置の接線ベクトルを設定する(ステップS12)。この場合、移動開始位置での接線ベクトルは、移動開始位置と次の指令位置とを結ぶ直線と同じ方向を向き、次の指令位置までの直線の長さに比例する大きさとする。また、移動終点位置での接線ベクトルは、直ぐ前の指令位置と移動終点位置とを結ぶ直線と同じ方向を向き、直ぐ前の指令位置と移動終点位置とを結ぶ直線の長さに比例する大きさとする。なお、この移動開始位置および移動終了位置での接線ベクトルの向きと大きさはこれに限られるものではなく、前後の作業を考慮して定めることができ、また、大きさは0であっても良い。
【0033】
次に、制御装置2は、移動開始位置から移動終了位置までを指令位置で複数区画に分割し、区間毎に前述の(10)式〜(13)式によって始点側接線ベクトルと終点側接線ベクトルとを演算する(ステップS13)。そして、制御装置2は、各区間のスプライン曲線セグメントの関数式(スプラインセグメント関数)のベクトル係数を前述した(5)式〜(8)式によって求める(ステップS14)。
【0034】
このようにして各区間のスプラインセグメント関数のベクトル係数が求まると、移動始点位置から移動終点位置までの全指令位置を滑らかな曲線で結ぶスプライン曲線が求められたこととなるので、その後、制御装置2は、このスプラインセグメント関数である(9)式を用いて、具体的には(9)式をt(例えば0≦t≦1)で微分して求めた式を0から1まで積分することにより、移動開始位置から移動終了位置までの総曲線距離を計算する(ステップS15)。
【0035】
求められた総曲線距離はロボットアーム先端の移動開始位置から移動終了位置までの移動距離であるから、次に、制御装置2は、総曲線距離から図9(a)に示す速度パターンを生成する(ステップS16)。この速度パターンは、ロボットアーム先端の速度が台形となるように定めるもので、ロボットアーム先端が移動開始位置から予め定められた一定の加速度で予め定められた最高速度となるまで速度を上昇させながら移動し、予め定められた最高速度に達したら、その最高速度で等速度移動し、そして、予め定められた減速度で減速して移動終了位置に至るような速度パターンを生成する。
【0036】
速度パターンを生成すると、制御装置2は、速度パターンから一定のサンプリング時間内でのロボットアーム先端の移動距離を求め、今回のサンプリング時間内での移動距離を前のサンプリング時間内での移動終了位置にプラスして、今回のサンプリング時間でのスプライン曲線上の移動終了位置を求めると共に、ロボットアーム先端の姿勢を計算する(ステップS17)。
【0037】
そして、制御装置2は、サンプリング時間内でロボットアーム先端が移動開始位置から移動終了位置まで移動するように各アームの角速度および位置を計算し(ステップS18)、各アームのモータ10に速度指令値および位置指令値を出力する(ステップS19)。それから、制御装置2は、上記のステップS17〜ステップS19を繰り返すことによって、ロボットアーム先端を移動終了位置まで(ステップS20:YES)動作させる。
【0038】
ここで、本実施例では、ロボット本体1を外部TCPで動作させるに際して、上述した指令位置について行った補間を手先の姿勢についても同様に適用して補間を行う。以下、この姿勢補間処理について図1ないし図5を参照して説明する。図3は、姿勢補間処理を示すフローチャートである。上述したように、ティーチングペンダント3を用いて位置及び姿勢について教示点が設定されると(ステップS1)、ロボット本体1を固定工具周りで動作させるため、教示点(ベース座標から見たツール座標,図10参照)が、ツール(手先)から見た工具23への位置,姿勢(ツール座標から見た固定工具座標)となるように座標変換する(ステップS2)。
【0039】
尚、図10中に示す座標変換行列式は、外部TCPではあるが従来との整合を図るため、手先をツール(t),固定工具23をワーク(w)と称している。そして、ベース座標からツール座標への変換を行う行列式は、ベース座標から固定工具座標への変換行列と、ツール座標から固定工具座標への変換行列の逆行列との積で表わされることを示している(右辺第2式は、固定工具座標からツール座標への変換行列に等しい)。
【0040】
次に、各教示位置におけるそれぞれの教示姿勢を座標値として特定する。教示された姿勢は回転角度値(X方向回転成分,Y方向回転成分,Z方向回転成分)で与えられているので、回転行列を用いて空間座標値(X方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値)に変換する(回転行列変換処理,姿勢座標変換処理手段)。各位置における手先の姿勢に対応する回転行列が、変換された座標によって表現される。すなわち、この回転行列が、手先の姿勢を特定するノーマルベクトル(X軸),オリエントベクトル(Y軸),アプローチベクトル(Z軸)を、それぞれベース座標上で表現した3次元座標値となる。また、各教示位置の各方向座標値と、当該教示位置における各方向姿勢座標値とからなるものが移動目標位置に対応する。
【0041】
そして、教示位置を原点とするX,Y,Zの各軸方向に、任意の長さを伸ばして仮想した点を姿勢点(増幅X方向姿勢座標値,増幅Y方向姿勢座標値,増幅Z方向姿勢座標値)とする(ステップS3,姿勢ベクトル増幅処理手段)。すなわち、図2に示すように、教示姿勢Dを、教示位置(SC)を原点にして立つ方向ベクトルと考えれば、その方向ベクトルの3次元座標値(SN,SO,SA)を決定することで教示姿勢が特定される。尚、「任意の長さ」は教示姿勢を特定可能な長さであれば良いので、例えば上記座標系の単位ベクトルのn(>2)倍等とする。
【0042】
ここで、回転行列を用いて表わされた姿勢を示す座標値は、ゼロに近い値となる。補間を行うための演算は、制御装置2に内蔵されるCPUで行われるが、CPUには計算限界桁があるので、最初からゼロに近い値を用いるとその計算限界桁を超えた部分に各教示点での姿勢に影響を与える値が存在することになる。しかし、CPUの計算上ではその微妙な差が計算誤差として飲み込まれてしまうので、姿勢が滑らかに変化するように補間値を演算できなくなる。そこで、そのような事態を回避するためベクトルの長さをn倍して、CPUの計算限界桁内で姿勢を滑らかに変化させるように演算するための値を取り込むようにする。
【0043】
ステップS3の処理により、1つの教示姿勢について3つの姿勢点がそれぞれ3次元座標値として決定されるが、これらを「位置」と同様に扱うことで教示姿勢を補間することができる。すなわち、X,Y,Zそれぞれの姿勢点を,例えば上述した教示位置のようにスプライン曲線によって、滑らかな軌跡としてそれぞれ連結するように軌跡処理を行い補間する(ステップS4,増幅姿勢座標値連結処理手段)。
【0044】
ここで、図1は、教示位置並びに教示姿勢を補間する処理をイメージ的に示している。尚、図示が煩雑になるのを避けるため、姿勢点についてはY,Zの2軸分だけ示している。図1(a),(b)は、各教示位置を曲線補間した場合を示し、図1(c)は、各教示位置における教示姿勢についてY方向姿勢点及びZ方向姿勢点を決定した場合であり、各矢印がオリエントベクトル,アプローチベクトルに対応する。そして、図1(d)はY方向姿勢点を曲線補間した場合、図1(e)はZ方向姿勢点を曲線補間した場合である。また、図示しないX方向(ノーマルベクトル)姿勢点についても同様に曲線補間する。
【0045】
ステップS4では、X,Y,Zの各方向について姿勢点を独立に補間したが、これらの各方向の補間点については3次元座標の各軸に対応することから、互いの関係が正規直交条件を満たす必要がある。したがって、その条件を満たすように修正を行う(ステップS5)。以上で教示姿勢の補間処理が完了する。
【0046】
それから、ステップS5で得た補間点を、ベースから見たツールの位置・姿勢となるように座標変換すると(ステップS6)、補間点を加えて得られた手先の軌道(X,Y,Z各方向姿勢点の軌道)を、各軸J1〜J6の角度に変換する(ステップS7)。以上で姿勢の補間処理が終了する。
【0047】
ここで、図4は、教示点におけるアプローチベクトルの教示姿勢(SA)に対して、(b)は特許文献1,2のような従来の補間技術を適用して、手先が教示点を通過した場合のアプローチベクトルを3次元的に示している。(b)では教示姿勢に対してズレを生じているが、本実施例の姿勢補間技術を適用した場合の(a)では、姿勢のズレが略生じていないことが判る。
【0048】
また図5は、位置,姿勢の教示点について、従来の補間技術と本実施例の補間技術とのズレの発生量を示したものである。尚、同図中に示すワーク22及び工具23は、図10に対応しないモデル的なものである。(a)の位置ずれについては、従来と本実施例とでは何れも0.1mm未満の誤差であり有意な差はない。一方、(b)の姿勢ずれについては、従来技術では誤差角度が5[deg]を超える場合もあるが、本実施例では、誤差角度が0.1[deg]以下となっており、大きく改善されている。
【0049】
以上のように本実施例によれば、制御装置2は、手先の先端点を座標原点とするX方向,Y方向,Z方向の各軸について手先の位置及び姿勢をティーチングする場合に、既に教示された手先の移動先である複数のX成分,Y成分,Z成分,X方向回転成分,Y方向回転成分,Z方向回転成分で構成された移動目標点について、各移動目標点におけるX,Y,Zの方向回転成分について回転行列変換処理を行い、方向回転成分毎にX成分,Y成分,Z成分で座標化されたX,Y,Zの各方向姿勢座標値を計算する。それから、計算された移動目標点毎に存在するX,Y,Zの各方向姿勢座標値について、各移動目標点を原点に、X,Y,Zの各方向姿勢座標値それぞれに向けた単位ベクトルを形成すると、そのベクトルをn倍した先の位置をそれぞれ増幅X,増幅Y,増幅Z方向姿勢座標値とする。そして、移動目標点毎に存在する増幅X,増幅Y,増幅Z方向姿勢座標値について、増幅X,増幅Y,増幅Z方向姿勢座標値のみを対象として、それぞれの座標値を滑らかな軌跡として連結する軌跡処理を行うと、得られた軌跡に沿って、各移動目標点間の姿勢を補完して移動する処理を行うようにした。
【0050】
これにより、ロボット本体1の手先を移動させることで、固定されている工具23に対してワーク22を移動させて加工を行う場合に、手先の姿勢は、教示された姿勢が維持されながら手先が移動する。したがって、固定されている工具23の軸に対して、ワーク22の加工点を含む面がなす角度がティーチングを行った通りに維持されるので、ワーク22の加工精度を向上させるために教示点を増やす必要が無くなるため、ティーチング作業を簡単にすることができる。
【0051】
本発明は上記し、又は図面に記載した実施例にのみ限定されるものではなく、以下のような変型又は拡張が可能である。
姿勢の補間については、スプライン曲線を用いるものに限ることなく、各軸の姿勢決定座標の移動軌跡がそれぞれ滑らかに(数学的に連続となるように)繋がるように補間すれば良い。
【符号の説明】
【0052】
図面中、1はロボット本体、2は制御装置(姿勢座標変換処理手段,姿勢ベクトル増幅処理手段,増幅姿勢座標値連結処理手段)、3はティーチングペンダント、9はフランジ(手先)である。
【特許請求の範囲】
【請求項1】
垂直多関節型のロボットの手先がワークを把持し、固定されているツールに対して前記ワークを移動させて加工を行う際に、
既に教示された前記手先の移動先である複数のX成分,Y成分,Z成分,X方向回転成分,Y方向回転成分,Z方向回転成分で構成された移動目標点について、
各移動目標点におけるX方向回転成分,Y方向回転成分,Z方向回転成分について回転行列変換処理を行い、方向回転成分毎にX成分,Y成分,Z成分で座標化されたX方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値を計算する姿勢座標変換処理手段と、
この姿勢座標変換処理手段により計算された移動目標点毎に存在するX方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値について、各移動目標点を原点に、X方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値それぞれに向けた単位ベクトルを形成し、そのベクトルをn倍(n>2)した先の位置を増幅X方向姿勢座標値,増幅Y方向姿勢座標値,増幅Z方向姿勢座標値とする姿勢ベクトル増幅処理手段と、
移動目標点毎に存在する増幅X方向姿勢座標値,増幅Y方向姿勢座標値,増幅Z方向姿勢座標値について、前記増幅X方向姿勢座標値のみを対象としてそれらを滑らかな軌跡として連結する軌跡処理,前記増幅Y方向姿勢座標値のみを対象としてそれらを滑らかな軌跡として連結する軌跡処理,前記増幅Z方向姿勢座標値のみを対象としてそれらを滑らかな軌跡として連結する軌跡処理を行う増幅姿勢座標値連結処理手段とを備え、
この増幅姿勢座標値連結処理手段により得られた軌跡に沿って、各移動目標点間の姿勢を補間して移動する処理を行うことを特徴とするロボットの制御装置。
【請求項2】
垂直多関節型のロボットの手先がワークを把持し、固定されているツールに対して前記ワークを移動させて加工を行う際に、
既に教示された前記手先の移動先である複数のX成分,Y成分,Z成分,X方向回転成分,Y方向回転成分,Z方向回転成分で構成された移動目標点について、
各移動目標点におけるX方向回転成分,Y方向回転成分,Z方向回転成分について回転行列変換処理を行い、方向回転成分毎にX成分,Y成分,Z成分で座標化されたX方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値を計算し、
前記移動目標点毎に存在する計算されたX方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値について、各移動目標点を原点に、X方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値それぞれに向けた単位ベクトルを形成し、そのベクトルをn倍(n>2)した先の位置を増幅X方向姿勢座標値,増幅Y方向姿勢座標値,増幅Z方向姿勢座標値とし、
移動目標点毎に存在する増幅X方向姿勢座標値,増幅Y方向姿勢座標値,増幅Z方向姿勢座標値について、前記増幅X方向姿勢座標値のみを対象としてそれらを滑らかな軌跡として連結する軌跡処理,前記増幅Y方向姿勢座標値のみを対象としてそれらを滑らかな軌跡として連結する軌跡処理,前記増幅Z方向姿勢座標値のみを対象としてそれらを滑らかな軌跡として連結する軌跡処理を行い、
前記連結された軌跡に沿って、各移動目標点間の姿勢を補完して移動する処理を行うことを特徴とするロボットの姿勢補間方法。
【請求項1】
垂直多関節型のロボットの手先がワークを把持し、固定されているツールに対して前記ワークを移動させて加工を行う際に、
既に教示された前記手先の移動先である複数のX成分,Y成分,Z成分,X方向回転成分,Y方向回転成分,Z方向回転成分で構成された移動目標点について、
各移動目標点におけるX方向回転成分,Y方向回転成分,Z方向回転成分について回転行列変換処理を行い、方向回転成分毎にX成分,Y成分,Z成分で座標化されたX方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値を計算する姿勢座標変換処理手段と、
この姿勢座標変換処理手段により計算された移動目標点毎に存在するX方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値について、各移動目標点を原点に、X方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値それぞれに向けた単位ベクトルを形成し、そのベクトルをn倍(n>2)した先の位置を増幅X方向姿勢座標値,増幅Y方向姿勢座標値,増幅Z方向姿勢座標値とする姿勢ベクトル増幅処理手段と、
移動目標点毎に存在する増幅X方向姿勢座標値,増幅Y方向姿勢座標値,増幅Z方向姿勢座標値について、前記増幅X方向姿勢座標値のみを対象としてそれらを滑らかな軌跡として連結する軌跡処理,前記増幅Y方向姿勢座標値のみを対象としてそれらを滑らかな軌跡として連結する軌跡処理,前記増幅Z方向姿勢座標値のみを対象としてそれらを滑らかな軌跡として連結する軌跡処理を行う増幅姿勢座標値連結処理手段とを備え、
この増幅姿勢座標値連結処理手段により得られた軌跡に沿って、各移動目標点間の姿勢を補間して移動する処理を行うことを特徴とするロボットの制御装置。
【請求項2】
垂直多関節型のロボットの手先がワークを把持し、固定されているツールに対して前記ワークを移動させて加工を行う際に、
既に教示された前記手先の移動先である複数のX成分,Y成分,Z成分,X方向回転成分,Y方向回転成分,Z方向回転成分で構成された移動目標点について、
各移動目標点におけるX方向回転成分,Y方向回転成分,Z方向回転成分について回転行列変換処理を行い、方向回転成分毎にX成分,Y成分,Z成分で座標化されたX方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値を計算し、
前記移動目標点毎に存在する計算されたX方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値について、各移動目標点を原点に、X方向姿勢座標値,Y方向姿勢座標値,Z方向姿勢座標値それぞれに向けた単位ベクトルを形成し、そのベクトルをn倍(n>2)した先の位置を増幅X方向姿勢座標値,増幅Y方向姿勢座標値,増幅Z方向姿勢座標値とし、
移動目標点毎に存在する増幅X方向姿勢座標値,増幅Y方向姿勢座標値,増幅Z方向姿勢座標値について、前記増幅X方向姿勢座標値のみを対象としてそれらを滑らかな軌跡として連結する軌跡処理,前記増幅Y方向姿勢座標値のみを対象としてそれらを滑らかな軌跡として連結する軌跡処理,前記増幅Z方向姿勢座標値のみを対象としてそれらを滑らかな軌跡として連結する軌跡処理を行い、
前記連結された軌跡に沿って、各移動目標点間の姿勢を補完して移動する処理を行うことを特徴とするロボットの姿勢補間方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−135835(P2012−135835A)
【公開日】平成24年7月19日(2012.7.19)
【国際特許分類】
【出願番号】特願2010−290028(P2010−290028)
【出願日】平成22年12月27日(2010.12.27)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
【公開日】平成24年7月19日(2012.7.19)
【国際特許分類】
【出願日】平成22年12月27日(2010.12.27)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】
[ Back to top ]