(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-08
(45)【発行日】2022-08-17
(54)【発明の名称】軌跡制御装置
(51)【国際特許分類】
G05B 19/404 20060101AFI20220809BHJP
B23Q 15/00 20060101ALI20220809BHJP
B25J 9/10 20060101ALI20220809BHJP
B23Q 35/04 20060101ALI20220809BHJP
B23Q 35/121 20060101ALI20220809BHJP
G05B 19/4097 20060101ALI20220809BHJP
G05B 19/19 20060101ALI20220809BHJP
B23Q 17/00 20060101ALI20220809BHJP
B23K 9/127 20060101ALN20220809BHJP
【FI】
G05B19/404 H
B23Q15/00 305C
B25J9/10 A
B23Q35/04 B
B23Q35/121
G05B19/4097 C
G05B19/19 F
B23Q17/00 A
B23K9/127 505E
(21)【出願番号】P 2019211058
(22)【出願日】2019-11-22
【審査請求日】2021-06-24
(73)【特許権者】
【識別番号】000102511
【氏名又は名称】SMC株式会社
(74)【代理人】
【識別番号】100077665
【氏名又は名称】千葉 剛宏
(74)【代理人】
【識別番号】100116676
【氏名又は名称】宮寺 利幸
(74)【代理人】
【識別番号】100191134
【氏名又は名称】千馬 隆之
(74)【代理人】
【識別番号】100136548
【氏名又は名称】仲宗根 康晴
(74)【代理人】
【識別番号】100136641
【氏名又は名称】坂井 志郎
(74)【代理人】
【識別番号】100180448
【氏名又は名称】関口 亨祐
(72)【発明者】
【氏名】脇坂 新路
(72)【発明者】
【氏名】小熊 和行
(72)【発明者】
【氏名】安田 光
【審査官】亀田 貴志
(56)【参考文献】
【文献】特開2006-099166(JP,A)
【文献】特開2012-035399(JP,A)
【文献】特開昭62-088589(JP,A)
【文献】特開平08-252726(JP,A)
【文献】特開2009-034738(JP,A)
【文献】特開平01-252381(JP,A)
【文献】特開昭59-097873(JP,A)
【文献】国際公開第1992/005399(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18 - 19/416
G05B 19/42 - 19/46
B23Q 15/00
B23Q 17/00
B25J 9/10
B23Q 35/00
B23K 9/127
(57)【特許請求の範囲】
【請求項1】
任意位置に置かれたワーク上の軌跡に沿って軌跡追従部材を移動させる軌跡制御装置であって、前記ワーク側面に接触可能な接触センサと、前記軌跡追従部材および前記接触センサを移動させるアクチュエータと、基準位置の前記ワーク側面の位置情報と前記任意位置に置かれた前記ワーク側面の位置情報に基づいて前記基準位置の前記ワーク上の軌跡のXY座標を変換することにより前記任意位置に置かれた前記ワーク上の軌跡のXY座標を計算する軌跡コントローラとを備え、前記任意位置に置かれた前記ワーク側面の位置情報は前記接触センサによって得られるものであ
り、
前記軌跡コントローラは、前記アクチュエータを駆動して前記接触センサをX軸に平行な2つの移動方向に進めることにより、前記ワークの1つの側面における2つの接触点のXY座標を検出するとともに、前記アクチュエータを駆動して前記接触センサをY軸に平行な2つの移動方向に進めることにより前記ワークの他の1つの側面における2つの接触点のXY座標を検出し、前記ワークの1つの側面における2つの接触点を通る第1の直線の方程式および前記ワークの他の1つの側面における2つの接触点を通る第2の直線の方程式を求め、さらに前記第1の直線と前記第2の直線との交点のXY座標を求め、前記ワークの基準点のX座標移動量とY座標移動量を計算するとともに、前記ワークの他の1つの側面について前記ワークの基準位置からの傾き角度を計算し、前記ワークの基準点のX座標移動量、前記ワークの基準点のY座標移動量および前記傾き角度に基づいて、アフィン変換を使って、前記任意位置に置かれた前記ワーク上の軌跡のXY座標を計算する軌跡制御装置。
【請求項2】
請求項
1記載の軌跡制御装置において、
前記アフィン変換は下記の式によるものである軌跡制御装置(ただし、式中の文字ないし記号の意味は下記のとおりとする)。
x´=(x)Cos(Δθ)-(y)Sin(Δθ)+tx
y´=(x)Sin(Δθ)+(y)Cos(Δθ)+ty
x´:前記任意位置に置かれた前記ワーク上の軌跡のX座標
y´:前記任意位置に置かれた前記ワーク上の軌跡のY座標
x:前記基準位置の前記ワーク上の軌跡のX座標
y:前記基準位置の前記ワーク上の軌跡のY座標
Δθ:前記傾き角度
tx:前記ワークの基準点のX座標移動量にアフィン変換による前記基準点のX座標移動量を加えたもの
ty:前記ワークの基準点のY座標移動量にアフィン変換による前記基準点のY座標移動量を加えたもの
【請求項3】
請求項
2記載の軌跡制御装置において、
前記アフィン変換による前記基準点のX座標移動量は、前記基準点のX座標と、前記基準点をXY座標系の原点を中心として前記Δθだけ回転したときのX座標との差を計算したものであり、前記アフィン変換による前記基準点のY座標移動量は、前記基準点のY座標と、前記基準点をXY座標系の原点を中心として前記Δθだけ回転したときのY座標との差を計算したものである軌跡制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ワーク上の軌跡に沿ってディスペンサ等の部材を移動せしめる軌跡制御装置に関する。
【背景技術】
【0002】
産業用ロボットによるディスペンサのライン塗布や溶接等の軌跡制御において、軌跡の位置を検出してワークの位置ずれによる軌跡の補正を行うために、高解像度カメラや画像センサ等のセンサ技術が使用されている。
【0003】
例えば、特許文献1には、レーザスリット光を照射可能なセンサを用いて溶接線の位置を検出しながら、溶接トーチの位置を補正するトラッキング制御を行うロボットシステムが記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、高解像度カメラや画像センサを用いることは、高価で複雑なシステムを導入することになる。
【0006】
本発明は、このような事情を背景としてなされたものであり、高精度カメラや画像センサを使わなくても、ワークの位置ずれやその移動量を認識して軌跡補正を行うことができる軌跡制御装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る軌跡制御装置は、任意位置に置かれたワーク上の軌跡に沿って軌跡追従部材を移動させるもので、ワーク側面に接触可能な接触センサと、軌跡追従部材および接触センサを移動させるアクチュエータと、基準位置のワーク側面の位置情報と任意位置に置かれたワーク側面の位置情報に基づいて基準位置のワーク上の軌跡のXY座標を変換することにより任意位置に置かれたワーク上の軌跡のXY座標を計算する軌跡コントローラとを備える。上記任意位置に置かれたワーク側面の位置情報は、接触センサによって得られる。
【0008】
上記軌跡制御装置によれば、高精度カメラや画像センサを使うことなく、任意位置に置かれたワーク上の軌跡のXY座標を簡単な手法で求めることができる。
【発明の効果】
【0009】
本発明に係る軌跡制御装置は、接触センサによって得られるワーク側面の位置情報に基づいて、既知のデータである基準位置のワーク上の軌跡のXY座標から任意位置に置かれたワーク上の軌跡のXY座標を計算するものである。したがって、高精度カメラや画像センサを使うことなく、任意位置に置かれたワーク上の軌跡のXY座標を簡単な手法で求めることができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施形態に係る軌跡制御装置の概念図である。
【
図2】
図1の軌跡制御装置のXY座標系とそこに置かれたワークを示した図である。
【
図3】ワークが回転を伴わないで移動した具体例における制御テーブルT1に保存されたデータを示した図表である。
【
図4】
図3の具体例における制御テーブルT2に保存されたデータを示した図表である。
【
図5】
図3の具体例における制御テーブルT3~T5に保存されたデータを示した図表である。
【
図6】
図3の具体例における制御テーブルT6に保存されたデータを示した図表である。
【
図7】
図3の具体例における制御テーブルT7に保存されたデータを示した図表である。
【
図8】
図3の具体例におけるワークアライメントの座標変換結果を示した図表である。
【
図9】
図3の具体例における軌跡データの座標変換結果を示した図表である。
【
図10】ワークが回転を伴って移動した具体例における制御テーブルT1に保存されたデータを示した図表である。
【
図11】
図10の具体例における制御テーブルT2に保存されたデータを示した図表である。
【
図12】
図10の具体例における制御テーブルT3~T5に保存されたデータを示した図表である。
【
図13】
図10の具体例における制御テーブルT6に保存されたデータを示した図表である。
【
図14】
図10の具体例における制御テーブルT7に保存されたデータを示した図表である。
【
図15】
図10の具体例におけるワークアライメントの座標変換結果を示した図表である。
【
図16】
図10の具体例における軌跡データの座標変換結果を示した図表である。
【発明を実施するための形態】
【0011】
以下、本発明に係る軌跡制御装置について、好適な実施形態を挙げ、添付の図面を参照しながら説明する。
【0012】
図1に示されるように、軌跡制御装置10は、軌跡コントローラ12、接触センサ26、軌跡追従部材28および電動アクチュエータ群24を含む。軌跡コントローラ12は、軌跡制御部14、モータ制御部16、補正量演算部18、座標変換部20およびI/O部(入出力部)22を有する。軌跡コントローラ12のこれらの各部は、1つまたは複数のハードウエアやソフトウエアで実現されている。
【0013】
軌跡コントローラ12は、軌跡制御部14が主体となって、電動アクチュエータ群24を駆動して接触センサ26を移動させることによりワークWの位置を検出する検出制御を行うほか、電動アクチュエータ群24を駆動して軌跡追従部材28をワーク上の軌跡に沿って移動させることにより軌跡制御を行う。
【0014】
接触センサ26は、ワークWの側面に機械的に接触することでワークWの位置を検出するものである。軌跡追従部材28は、溶接ガンの先端部、あるいは、接着剤やシール材を供給するディスペンサノズルの先端部に相当する部材であり、溶接ラインや塗布ラインにおいて設置される装置に取り付けられる。
【0015】
電動アクチュエータ群24は、X軸アクチュエータ24a、Y軸アクチュエータ24bおよびZ軸アクチュエータ24cから構成される。接触センサ26と軌跡追従部材28は、いずれもZ軸アクチュエータ24cに取り付けられている。X軸アクチュエータ24aとY軸アクチュエータ24bは、接触センサ26と軌跡追従部材28をXY座標系の平面上で任意の位置に移動させる役割を担う。
【0016】
Z軸アクチュエータ24cは、接触センサ26と軌跡追従部材28のZ軸方向(上下方向)の位置を調整する役割を担う。軌跡コントローラ12が検出制御を行う場合、接触センサ26が下方の作動位置に移動し、軌跡追従部材28が上方の退避位置に移動する。一方、軌跡コントローラ12が軌跡制御を行う場合、軌跡追従部材28が下方の作動位置に移動し、接触センサ26が上方の退避位置に移動する。
【0017】
軌跡制御部14は、ワーク上の軌跡データおよびモータ制御データからなる軌跡制御データを保持している。軌跡データは、CADで作成されたDXFファイルなどの電子データであり、PolylineやArcなどの属性コマンドとXY座標データで構成されている。モータ制御データは、X軸アクチュエータ24a、Y軸アクチュエータ24bおよびZ軸アクチュエータ24cの位置、速度、加速度等の電子データである。
【0018】
また、軌跡制御部14は、ワークWの側面および基準点に関する属性データとともに、ワークWの平面形状を表すXY座標データ(以下「ワークアライメント」という)を保持している。このワークアライメントには、少なくとも、基準点を間に挟んで隣接する2つの側面に関するデータが含まれている。
【0019】
モータ制御部16は、X軸アクチュエータ24aとY軸アクチュエータ24bのモータエンコーダから送られてくるエンコーダ値を、これらのアクチュエータの位置データとしてリアルタイムに更新保持し、軌跡制御部14からの軌跡制御データに基づいて、X軸アクチュエータ24aとY軸アクチュエータ24bを駆動制御する。
【0020】
補正量演算部18は、接触センサ26で検出されたワーク側面の位置情報に基づいて、ワーク上の軌跡の補正量(補正係数)を演算する。座標変換部20は、補正量演算部18で演算された補正量(補正係数)に基づいて、任意位置に置かれたワーク上の軌跡の座標を計算する。I/O部22は、周辺機器と同期をとるためのもので、I/O部22には、軌跡追従部材28と接触センサ26が接続されている。
【0021】
軌跡コントローラ12は、検出制御において、X軸アクチュエータ24aとY軸アクチュエータ24bを駆動して、接触センサ26をワークWの側面の方向へ移動させる。接触センサ26は、ワークWの側面に接触すると、接触したことをI/O部22を介して軌跡コントローラ12へ伝える。軌跡コントローラ12は、接触センサ26がワークWの側面に接触したことを認識すると、X軸アクチュエータ24aとY軸アクチュエータ24bを停止させる。
【0022】
次いで、軌跡コントローラ12は、X軸アクチュエータ24aのモータエンコーダ値とY軸アクチュエータ24bのモータエンコーダ値をモータ制御部16から読み込み、接触センサ26によるワークWの側面上の接触点をXY座標データとして保持する。
【0023】
ワークWの1つの側面について、異なる2つの接触点のXY座標データが得られるように、上記一連の処理を繰り返す。同様に、ワークWのもう1つの側面についても、異なる2つの接触点のXY座標データが得られるように、上記一連の処理を繰り返す。これらワークWの2つの側面が交差する位置が基準点となっている。
【0024】
図2は、軌跡制御装置10を真上から見たXY座標系とそこに置かれたワークWの位置を表した図であり、また、補正量演算部18における処理を説明するための図である。
【0025】
このXY座標系において、基準位置に置かれた直方体形状のワークWの4つの側面は、点P1と点P2を結ぶ線、点P2と点P3を結ぶ線、点P3と点P4を結ぶ線および点P4と点P1を結ぶ線で示されている。4つの点P1~P4のうち、P1が基準点となっている。以下において、点P4と点P1を結ぶ線で示される側面をワーク側面Aといい、点P1と点P2を結ぶ線で示される側面をワーク側面Bという。
【0026】
本実施形態では、ワーク側面AがY軸に平行、かつ、ワーク側面BがX軸に平行であるようにワークWが置かれた位置を基準位置としているが、例えば、ワーク側面Aおよびワーク側面BがX軸にもY軸にも平行でない状態で置かれた位置が基準位置であってもよい。
【0027】
また、対象とするワークWの平面形状としては、必ずしも矩形である必要はなく、輪郭の一部に2つの直線部分を有していればよい。換言すれば、ワークWの側面に少なくとも2つの平面部分が存在すればよい。なお、軌跡データは、ワークアライメントの矩形の範囲内に1つまたは複数存在するか、あるいは、ワークアライメントの矩形の範囲外に存在してもよい。また、複数のワークWが1つのトレイに固定されていてもよい。
【0028】
以下、
図2を参照しながら、検出制御について、さらに具体的に説明する。基準位置にあるワークアライメントWP(P1-P2-P3-P4)は、あらかじめ軌跡コントローラ12に保持されているので、ワーク側面の位置を検出する必要はないが、ここでは、まず、基準位置にワークWが置かれているものとして説明する。したがって、実際には、基準位置に置かれたワークWについて、ワーク側面の検出は省略される場合がある。
【0029】
接触センサ26は、X軸に平行な第1の移動方向30に進み、ワーク側面A上の点A1に到達して止まり、A1のX座標とY座標を検出して保持する。同様に、接触センサ26は、X軸に平行な第2の移動方向32に進み、ワーク側面A上の点A2に到達して止まり、A2のX座標とY座標を検出して保持する。本実施形態では、第1の移動方向30は、y=40で表される直線に沿う方向であり、第2の移動方向32は、y=30で表される直線に沿う方向である。
【0030】
また、接触センサ26は、Y軸に平行な第3の移動方向34に進み、ワーク側面B上の点B1に到達して止まり、B1のX座標とY座標を検出して保持する。同様に、接触センサ26は、Y軸に平行な第4の移動方向36に進み、ワーク側面B上の点B2に到達して止まり、B2のX座標とY座標を検出して保持する。本実施形態では、第3の移動方向34は、x=50で表される直線に沿う方向であり、第4の移動方向36は、x=40で表される直線に沿う方向である。
【0031】
本実施形態では、A1とA2を通る直線の方程式はx=10で表され、B1とB2を通る直線の方程式はy=10で表される。これら2つの直線の交点が基準点P1であり、基準点P1のXY座標は(10、10)である。なお、これら2つの直線については、2点を通る直線の一般式をy=ax+bとした場合の係数aおよび係数bはいずれもゼロ(a=0、b=0)として扱う。
【0032】
次に、任意位置に置かれたワークアライメントWQについて説明する。任意位置に置かれたワークアライメントWQは、基準位置に置かれたワークアライメントWPの4つの点P1~P4にそれぞれ対応する点Q1~Q4を含む。以下において、点Q4と点Q1を結ぶ線で示される側面をワーク側面Cといい、点Q1と点Q2を結ぶ線で示される側面をワーク側面Dという。
【0033】
接触センサ26は、X軸に平行な上記第1の移動方向30(y=40)に進み、基準位置におけるワーク側面Aに対応するワーク側面C上の点C1に到達して止まり、C1のX座標とY座標を検出して保持する。同様に、接触センサ26は、X軸に平行な上記第2の移動方向32(y=30)に進み、ワーク側面C上の点C2に到達して止まり、C2のX座標とY座標を検出して保持する。
【0034】
また、接触センサ26は、Y軸に平行な上記第3の移動方向34(x=50)に進み、基準位置におけるワーク側面Bに対応するワーク側面D上の点D1に到達して止まり、D1のX座標とY座標を検出して保持する。同様に、接触センサ26は、Y軸に平行な上記第4の移動方向36(X=40)に進み、ワーク側面D上の点D2に到達して止まり、D2のX座標とY座標を検出して保持する。
【0035】
C1とC2を通る直線の方程式は、y=a1x+b1で表され、D1とD2を通る直線の方程式は、y=a2x+b2(a1≠a2)で表される。これら2つの直線の交点が、基準点P1が移動した後の点Q1である。すなわち、基準位置に置かれたワークWが任意位置に移動した場合、基準点P1は点Q1に移動する。Q1のXY座標(x1、y1)は、次の式で計算できる。
x1=(b2-b1)/(a1-a2)
y1=(a1b2-a2b1)/(a1-a2)
【0036】
基準点P1のXY座標を(x0、y0)とした場合、基準点P1から点Q1(x1、y1)までの移動量をX座標移動量ΔxとY座標移動量Δyで表すと、Δx=x1-x0、Δy=y1-y0である。本実施形態では、x0=10、y0=10であるから、Δx=x1-10、Δy=y1-10となる。
【0037】
また、基準位置に置かれたワーク側面Bを表す直線をy=a0x+b0とした場合、この直線と任意位置に置かれたワーク側面Dを表す直線y=a2x+b2とに基づいて、基準位置のワーク側面Bに対する移動後のワーク側面Dの傾き角度Δθは、次の式で計算できる。
Δθ=tan-1((a2-a0)/(1+a0a2))
本実施形態では、a0=0であるから、Δθ=tan-1a2となる。
【0038】
基準点P1のX座標移動量Δx、基準点P1のY座標移動量Δy、および上記傾き角度Δθを検出することができれば、基準位置の軌跡データから移動後の軌跡データを計算で求めることができる。
【0039】
図3~
図16を参照しながら、ワークWが回転を伴わないで基準位置から移動した場合(位置ずれした場合)とワークWが回転を伴って基準位置から移動した場合(位置ずれした場合)とに分けて、軌跡制御の具体的手法を説明する。
【0040】
[回転を伴わない場合の具体例]
まず、
図3~
図9を参照しながら、ワークWが回転を伴わないで基準位置から移動した場合の具体例について説明する。なお、ワークWの基準位置は、
図2に示される場合と同じとする。
【0041】
図3に示されるように、基準位置におけるワークアライメントWP上の4つの点A1、A2、B1およびB2の各XY座標データと、移動後のワークアライメントWQ上の4つの点C1、C2、D1およびD2の各XY座標データが制御テーブルT1に保存されている。
【0042】
上記制御テーブルT1の各XY座標データに基づいて、A1とA2を通る直線の方程式、B1とB2を通る直線の方程式、C1とC2を通る直線の方程式、および、D1とD2を通る直線の方程式が求められ、
図4に示されるように、制御テーブルT2に保存される。これら4つの直線は、それぞれワーク側面A、ワーク側面B、ワーク側面Cおよびワーク側面Dに対応する。
【0043】
本具体例では、A1とA2を通る直線(A直線)、および、C1とC2を通る直線(C直線)は、いずれもY軸に平行であり、B1とB2を通る直線(B直線)、および、D1とD2を通る直線(D直線)は、いずれもX軸に平行である。ワーク側面A(A面)は、x=10.00として保存され、ワーク側面B(B面)は、y=10.00として保存され、ワーク側面C(C面)は、x=15.00として保存され、ワーク側面D(D面)は、y=17.00として保存されている。また、これら4つの直線について、直線の一般式y=ax+bにおける係数aおよび係数bは、いずれもゼロ(0.00)として保存されている。
【0044】
上記制御テーブルT2の各直線の方程式に基づいて、ワーク側面Aとワーク側面Bとの交点のXY座標、および、ワーク側面Cとワーク側面Dとの交点のXY座標が求められ、
図5に示されるように、制御テーブルT3に保存される。この制御テーブルT3に保存されたデータは、ワーク側面Aとワーク側面Bとの交点、すなわち基準点P1(x0、y0)のX座標とY座標がいずれも10.00であることを示している。また、ワーク側面Cとワーク側面Dとの交点、すなわち基準点P1の移動後の点Q1(x1、y1)のX座標が15.00、Y座標が17.00であることを示している。
【0045】
基準点P1(x0、y0)から点Q1(x1、y1)までのX座標移動量ΔxとY座標移動量Δyは、Δx=x1-x0=5.00、Δy=y1-y0=7.00となる。
図5に示されるように、X座標移動量Δxの値は、ワークWのX座標移動量(work_tx)として制御テーブルT4に保存され、Y座標移動量Δyの値は、ワークWのY座標移動量(work_ty)として制御テーブルT4に保存される。
【0046】
また、基準位置のワーク側面Bを表す直線をy=a
0x+b
0とし、移動後のワーク側面Dを表す直線をy=a
2x+b
2とした場合、ワーク側面Bに対するワーク側面Dの傾き角度Δθは、前述のとおり、次の式で計算できる。
Δθ=tan
-1((a
2-a
0)/(1+a
0a
2))
本具体例では、a
0=0、a
2=0であるから、Δθ=0となり、
図5に示されるように、0.00ラジアンおよび0.00度として、制御テーブルT5に保存される。
【0047】
基準点P1のX座標移動量Δx、基準点P1のY座標移動量Δy、および、基準位置のワーク側面に対する移動後のワーク側面の傾き角度Δθが分かれば、ワークWが基準位置にあるときの軌跡のXY座標データから、移動後の軌跡のXY座標データを計算で求めることができる。なお、ワークWが基準位置にあるときの軌跡のXY座標データが軌跡制御部14に保持されていることは、既に述べたとおりである。
【0048】
具体的には、移動後の軌跡のXY座標(x´、y´)は、基準位置の軌跡のXY座標(x、y)に対して、アフィン変換と呼ばれる座標変換を使って、以下の式で計算することができる。
x´=(p)(x)Cos(Δθ)-(q)(y)Sin(Δθ)+tx
y´=(p)(x)Sin(Δθ)+(q)(y)Cos(Δθ)+ty
【0049】
ここで、ワークサイズの拡大縮小がないことを想定して、p=1、q=1とする。また、XY座標系の原点(0、0)を中心に回転して座標変換するため、はじめに、アフィン変換式におけるX方向移動量txとY方向移動量tyをゼロにして(tx=0、ty=0)、アフィン変換による基準点のX座標移動量aff_txとY座標移動量aff_tyを計算する。
【0050】
本具体例では、Δθ=0であるから、基準点P1(10、10)のアフィン変換による移動後のX座標とY座標は、下記の式に、x=10、y=10、Δθ=0を代入して、
移動後のX座標=(x)Cos(Δθ)-(y)Sin(Δθ)
移動後のY座標=(x)Sin(Δθ)+(y)Cos(Δθ)
いずれも10と計算される。
【0051】
アフィン変換による基準点のX座標移動量aff_txとY座標移動量aff_tyは、
aff_tx=移動前のX座標-移動後のX座標=10-10=0
aff_ty=移動前のY座標-移動後のY座標=10-10=0
となる(移動前のXY座標は基準点P1のXY座標)。
図6に示されるように、これらの値が0.00として制御テーブルT6に保存される。
【0052】
以上のことから、回転角度θ=0.00(度)
X方向移動量tx=aff_tx+work_tx=0.00+5.00=5.00
Y方向移動量ty=aff_ty+work_ty=0.00+7.00=7.00
となる。このようにして、移動後の軌跡データを計算するアフィン変換(座標変換)条件が求められ、
図7に示されるように、制御テーブルT7に保存される。
【0053】
ワークアライメントの座標変換結果が
図8に示されている。
図8において、点線で示されるのが基準位置におけるワークアライメントWPであり、実線で示されるのが移動後のワークアライメントWQである。
【0054】
また、軌跡データの座標変換結果が
図9に示されている。
図9において、点線で示されるのが基準位置における軌跡であり、実線で示されるのが移動後の軌跡である。
【0055】
[回転を伴う場合の具体例]
次に、
図10~
図16を参照しながら、ワークWが回転を伴って基準位置から移動した場合について説明する。なお、ワークWの基準位置は、
図2に示されるものと同じとする。
【0056】
図10に示されるように、基準位置におけるワークアライメントWP上の4つの点A1、A2、B1およびB2の各XY座標データと、移動後のワークアライメントWQ上の4つの点C1、C2、D1およびD2の各XY座標データが制御テーブルT1に保存されている。
【0057】
上記制御テーブルT1の各XY座標データに基づいて、A1とA2を通る直線の方程式、B1とB2を通る直線の方程式、C1とC2を通る直線の方程式、および、D1とD2を通る直線の方程式が求められ、
図11に示されるように、制御テーブルT2に保存される。これら4つの直線は、それぞれワーク側面A、ワーク側面B、ワーク側面Cおよびワーク側面Dに対応する。
【0058】
本具体例では、A1とA2を通る直線(A直線)は、Y軸に平行であり、B1とB2を通る直線(B直線)は、X軸に平行である。ワーク側面A(A面)は、x=10.00として保存され、ワーク側面B(B面)は、y=10.00として保存されている。また、これら2つの直線について、直線の一般式y=ax+bにおける係数aおよび係数bは、いずれもゼロ(0.00)として保存されている。
【0059】
一方、C1とC2を通る直線(C直線)、および、D1とD2を通る直線(D直線)は、X軸にもY軸にも平行ではない。ワーク側面C(C面)は、y=-3.33x+140となり、直線の一般式y=ax+bにおける係数aの値が-3.33、係数bの値が140.00として保存されている。また、ワーク側面D(D面)は、y=0.3x+8となり、係数aの値が0.30、係数bの値が8.00として保存されている。
【0060】
上記制御テーブルT2の各直線の方程式に基づいて、ワーク側面Aとワーク側面Bとの交点のXY座標、および、ワーク側面Cとワーク側面Dとの交点のXY座標が求められ、
図12に示されるように、制御テーブルT3に保存される。制御テーブルT3に保存されたデータは、ワーク側面Aとワーク側面Bとの交点、すなわち基準点P1(x0、y0)のX座標とY座標がいずれも10.00であることを示している。また、ワーク側面Cとワーク側面Dとの交点、すなわち基準点P1の移動後の点Q1(x1、y1)のX座標が36.33、Y座標が18.90であることを示している。
【0061】
基準点P1(x0、y0)から点Q1(x1、y1)までのX座標移動量ΔxとY座標移動量Δyは、Δx=x1-x0=26.33、Δy=y1-y0=8.90となる。
図12に示されるように、X座標移動量Δxの値は、work_txとして制御テーブルT4に保存され、Y座標移動量Δyの値は、work_tyとして制御テーブルT4に保存される。
【0062】
また、基準位置のワーク側面Bを表す直線をy=a
0x+b
0とし、移動後のワーク側面Dを表す直線をy=a
2x+b
2とした場合、ワーク側面Bに対するワーク側面Dの傾き角度Δθは、前述のとおり、次の式で計算できる。
Δθ=tan
-1((a
2-a
0)/(1+a
0a
2))
本具体例では、a0=0、a2=0.30であるから、Δθ=0.29となり、
図12に示されるように、0.29ラジアンおよび16.70度として制御テーブルT5に保存される。
【0063】
前述のとおり、移動後の軌跡のXY座標(x´、y´)は、基準位置の軌跡のXY座標(x、y)に対して、アフィン変換を使って、以下の式で計算することができる。
x´=(p)(x)Cos(Δθ)-(q)(y)Sin(Δθ)+tx
y´=(p)(x)Sin(Δθ)+(q)(y)Cos(Δθ)+ty
【0064】
ここで、ワークサイズの拡大縮小がないことを想定して、p=1、q=1とする。また、XY座標系の原点(0、0)を中心に回転して座標変換するため、アフィン変換式におけるX方向移動量txとY方向移動量tyをゼロにして(tx=0、ty=0)、アフィン変換による基準点のX座標移動量aff_txとY座標移動量aff_tyを計算する。
【0065】
本具体例では、Δθ=0.29ラジアンであるから、基準点P1(10、10)のアフィン変換による移動後のX座標とY座標は、下記の式に、x=10、y=10、Δθ=0.29を代入して、
移動後のX座標=(x)Cos(Δθ)-(y)Sin(Δθ)
移動後のY座標=(x)Sin(Δθ)+(y)Cos(Δθ)
前者が6.70、後者が12.45と計算される。
【0066】
アフィン変換による基準点のX座標移動量aff_txとY座標移動量aff_tyは、
aff_tx=移動前のX座標-移動後のX座標=10-6.70=3.30
aff_ty=移動前のY座標-移動後のY座標=10-12.45=-2.45
となる(移動前のXY座標は基準点P1のXY座標)。
図13に示されるように、これらの値が制御テーブルT6に保存される。
【0067】
別の見方をすれば、アフィン変換による基準点の移動量は、XY座標系における座標点(x、y)をXY座標系の原点を中心としてΔθだけ回転したときと基準点を中心としてΔθだけ回転したときとで生じる回転後のXY座標の差分を調整するものであり、その値は、座標点(x、y)の位置に関わらず、Δθの値および基準点のXY座標の値に応じた一定値をとる。そして、アフィン変換による基準点のX座標移動量aff_txについては、基準点P1のX座標と、基準点P1をXY座標系の原点を中心としてΔθだけ回転したときのX座標との差を計算すればよい。同様に、アフィン変換による基準点のY座標移動量aff_tyについては、基準点P1のY座標と、基準点P1をXY座標系の原点を中心としてΔθだけ回転したときのY座標との差を計算すればよい。
【0068】
以上のことから、回転角度θ=16.70(度)
X方向移動量tx=aff_tx+work_tx=3.30+26.33=29.63
Y方向移動量ty=aff_ty+work_ty=-2.45+8.90=6.45
となる。このようにして移動後の軌跡データを計算するアフィン変換(座標変換)条件が求められ、
図14に示されるように、制御テーブルT7に保存される。
【0069】
ワークアライメントの座標変換結果が
図15に示されている。
図15において、点線で示されるのが基準位置におけるワークアライメントWPであり、実線で示されるのが移動後のワークアライメントWQである。
【0070】
また、軌跡データの座標変換結果が
図16に示されている。
図16において、点線で示されるのが基準位置における軌跡であり、実線で示されるのが移動後の軌跡である。
【0071】
本実施形態の軌跡制御装置10によれば、高精度カメラや画像センサを使うことなく、接触センサ26を用いた簡単な検出制御によって、基準点P1のX座標移動量Δx、基準点P1のY座標移動量Δy、および、基準位置のワーク側面に対する移動後の該ワーク側面の傾き角度Δθを求めることができ、これに基づいてリアルタイムに軌跡補正ができる。
【0072】
より具体的に言えば、接触センサ26によるワーク側面C上の2つの接触点のXY座標とワーク側面D上の2つの接触点のXY座標が分かれば、上記X座標移動量Δxと上記Y座標移動量Δyと上記傾き角度Δθとを求めることができ、アフィン変換を使って、任意位置に置かれたワーク上の軌跡のXY座標を容易に計算することができる。
【0073】
また、接触センサ26と軌跡追従部材28がいずれもZ軸アクチュエータ24cに取り付けられているので、接触センサ26を駆動する機構と軌跡追従部材28を駆動する機構の共通化を図ることができる。
【0074】
さらに、接触センサ26がワーク側面Cまたはワーク側面Dに接触すると、X軸アクチュエータ24aおよびY軸アクチュエータ24bの駆動を停止するので、任意位置に置かれたワークWが検出制御時に移動するのを阻止することができる。
【0075】
本発明に係る軌跡制御装置は、上述の実施形態に限らず、本発明の要旨を逸脱することのない範囲で、種々の構成を採り得ることはもちろんである。
【符号の説明】
【0076】
10…軌跡制御装置 12…軌跡コントローラ
24a…X軸アクチュエータ 24b…Y軸アクチュエータ
24c…Z軸アクチュエータ 26…接触センサ
28…軌跡追従部材 W…ワーク