(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-19
(45)【発行日】2024-07-29
(54)【発明の名称】スカラロボットの制御方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20240722BHJP
B25J 9/06 20060101ALI20240722BHJP
【FI】
B25J13/08 A
B25J9/06 D
(21)【出願番号】P 2022566526
(86)(22)【出願日】2020-12-01
(86)【国際出願番号】 JP2020044678
(87)【国際公開番号】W WO2022118374
(87)【国際公開日】2022-06-09
【審査請求日】2023-10-05
(73)【特許権者】
【識別番号】000237271
【氏名又は名称】株式会社FUJI
(74)【代理人】
【識別番号】110000017
【氏名又は名称】弁理士法人アイテック国際特許事務所
(72)【発明者】
【氏名】藤城 武史
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2018-094653(JP,A)
【文献】特開2012-006125(JP,A)
【文献】特開平05-204423(JP,A)
【文献】特開昭63-044206(JP,A)
【文献】特開平06-055485(JP,A)
【文献】特開平06-206186(JP,A)
【文献】米国特許出願公開第2015/0142171(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/06-19/04
G05B 19/18
(57)【特許請求の範囲】
【請求項1】
基台と、
前記基台に設けられ、第1軸周りに回動する第1アームと、
前記第1アームに設けられ、前記第1軸と平行な第2軸周りに回動する第2アームと、
前記第2アームに対して前記第2軸と平行な第3軸の軸方向に移動するシャフトと、
光軸が前記第3軸と平行となるように前記第2アームに取り付けられたカメラと、
を備え、前記第1アーム,前記第2アーム,前記シャフトを第1リンク,第2リンク,第3リンクとして各リンク間の位置の関係をあらわした位置パラメータと各リンク間の姿勢の関係をあらわした姿勢パラメータとを用いて前記カメラの位置を制御するスカラロボットの制御方法であって、
前記第3軸に対する前記光軸の傾きを前記カメラの取付角度として測定し、
前記測定したカメラの取付角度に基づく補正値を前記第2リンクから前記第3リンクへの変換のための前記姿勢パラメータに登録
し、
ワークの高さを取得し、前記カメラが前記ワークを撮像して撮像画像を取得したときに前記ワークの高さに基づく前記撮像画像の中心からのズレを修正する、
スカラロボットの制御方法。
【請求項2】
請求項1に記載のスカラロボットの制御方法であって、
前記第3軸と直交する方向における前記光軸の位置を前記カメラの取付位置として測定し、
前記測定したカメラの取付位置に基づく補正値を前記第2リンクから前記第3リンクへの変換のための前記位置パラメータに登録する、
スカラロボットの制御方法。
【請求項3】
基台と、
前記基台に設けられ、第1軸周りに回動する第1アームと、
前記第1アームに設けられ、前記第1軸と平行な第2軸周りに回動する第2アームと、
前記第2アームに対して前記第2軸と平行な第3軸の軸方向に移動するシャフトと、
光軸が前記第3軸と平行となるように前記第2アームに取り付けられたカメラと、
を備え、前記第1アーム,前記第2アーム,前記シャフトを第1リンク,第2リンク,第3リンクとして各リンク間の位置の関係をあらわした位置パラメータと各リンク間の姿勢の関係をあらわした姿勢パラメータとを用いて前記カメラの位置を制御するスカラロボットの制御方法であって、
前記第2アームの回動位置と
前記第1軸から先のアーム部の質量と前記第1アームのアーム周りのねじれ量との関係を記憶し、
前記第2アームの回動位置
と前記第1軸から先のアーム部の質量とに対応する前記第1アームのねじれ量に基づく補正値を、前記基台を第0リンクとして該第0リンクから前記第1リンクへの変換のための前記姿勢パラメータに登録
し、
前記第3軸に対する前記光軸の傾きを前記カメラの取付角度として測定し、
前記測定したカメラの取付角度に基づく補正値を前記第2リンクから前記第3リンクへの変換のための前記姿勢パラメータに登録する、
スカラロボットの制御方法。
【請求項4】
基台と、
前記基台に設けられ、第1軸周りに回動する第1アームと、
前記第1アームに設けられ、前記第1軸と平行な第2軸周りに回動する第2アームと、
前記第2アームに対して前記第2軸と平行な第3軸の軸方向に移動するシャフトと、
光軸が前記第3軸と平行となるように前記第2アームに取り付けられたカメラと、
を備え、前記第1アーム,前記第2アーム,前記シャフトを第1リンク,第2リンク,第3リンクとして各リンク間の位置の関係をあらわした位置パラメータと各リンク間の姿勢の関係をあらわした姿勢パラメータとを用いて前記カメラの位置を制御するスカラロボットの制御方法であって、
前記第2アームの回動位置
と前記第1軸から先のアーム部の質量と前記第1アームのたわみ量と
の関係を記憶すると共に、前記第2軸から先のアーム部の質量と前記第2アームのたわみ量と
の関係を記憶し、
前記第2アームの回動位置
と前記第1軸から先のアーム部の質量とに対応する前記第1アームのたわみ量に基づく補正値を、前記基台を第0リンクとして該第0リンクから前記第1リンクへの変換のための前記姿勢パラメータに登録すると共に、前記
第2軸から先の第2アーム部の質量に対応する前記第2アームのたわみ量に基づく補正値を、前記第1リンクから前記第2リンクへの変換のための前記姿勢パラメータに登録
し、
前記第3軸に対する前記光軸の傾きを前記カメラの取付角度として測定し、
前記測定したカメラの取付角度に基づく補正値を前記第2リンクから前記第3リンクへの変換のための前記姿勢パラメータに登録する、
スカラロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、スカラロボットの制御方法について開示する。
【背景技術】
【0002】
従来、作業座標に設けられた基準マークをアームに取り付けられたカメラにより計測し、ロボット座標による基準マークの計測位置と予め測定された作業座標における基準マークの位置との差から設置誤差を推定し、これを補正することによりロボットを制御するものが提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述した特許文献1には、移動体に搭載されたロボットのように、ロボットに設置誤差がある場合の対応ついては記載されているものの、カメラに取付誤差がある場合の対応については何ら言及されていない。
【0005】
本開示は、アームにカメラが取り付けられたスカラロボットにおいて、カメラに取付誤差が生じていてもより高い精度でカメラの位置を制御することができるスカラロボットの制御方法を提供することを主目的とする。
【課題を解決するための手段】
【0006】
本開示は、上述の主目的を達成するために以下の手段を採った。
【0007】
本開示のスカラロボットの制御方法は、
基台と、
前記基台に設けられ、第1軸周りに回動する第1アームと、
前記第1アームに設けられ、前記第1軸と平行な第2軸周りに回動する第2アームと、
前記第2アームに対して前記第2軸と平行な第3軸の軸方向に移動するシャフトと、
光軸が前記第3軸と平行となるように前記第2アームに取り付けられたカメラと、
を備え、
前記第1アーム,前記第2アーム,前記シャフトを第1リンク,第2リンク,第3リンクとして各リンク間の位置の関係をあらわした位置パラメータと各リンク間の姿勢の関係をあらわした姿勢パラメータとを用いて前記カメラの位置を制御するスカラロボットの制御方法であって、
前記第3軸に対する前記光軸の傾きを前記カメラの取付角度として測定し、
前記測定したカメラの取付角度に基づく補正値を前記第2リンクから前記第3リンクへの変換のための前記姿勢パラメータに登録する、
ことを要旨とする。
【0008】
この本開示のスカラロボットの制御方法は、第2アームにカメラが取り付けられたスカラロボットにおいて、第1アーム,第2アーム,シャフトを第1リンク,第2リンク,第3リンクとして各リンク間の位置の関係をあらわした位置パラメータと各リンク間の姿勢の関係をあらわした姿勢パラメータとを用いてカメラの位置を制御するものである。この方法は、第3軸に対する光軸の傾きをカメラの取付角度として測定し、測定したカメラの取付角度に基づく補正値を第2リンクから第3リンクへの変換のための姿勢パラメータに登録する。このように、カメラの取付角度を測定して、測定値に基づく補正値を対応するリンクへの変換のための姿勢パラメータに反映させることで、カメラに取付角度に誤差が生じていても、カメラの位置制御を精度よく行なうことが可能となる。
【図面の簡単な説明】
【0009】
【
図3】ロボット本体と制御装置との電気的な接続関係を示すブロック図である。
【
図4】カメラ位置制御処理の一例を示すフローチャートである。
【
図7】第1アームに対して生じるねじれを説明する説明図である。
【
図8】第2アームが水平旋回した際のアーム部の重心位置のY
1軸方向成分L
t’を説明する説明図である。
【
図9】第1アームに生じるねじれモーメントを説明する説明図である。
【
図10】第1アームおよび第2アームに対して生じるたわみを説明する説明図である。
【
図11】第2アームが水平旋回した際のアーム部の重心位置のX
1軸方向成分L
d1’を説明する説明図である。
【
図12】第1アームに生じるたわみモーメントを説明する説明図である。
【
図14】手先用リンクパラメータ表を示す説明図である。
【
図15】カメラ用リンクパラメータ表を示す説明図である。
【
図16】カメラの光軸がワークの置かれる基準面に対して傾いた状態で高さが異なるワークを撮像した場合に生じるワークに対する画像中心のズレを説明する説明図である。
【
図17】カメラ用リンクパラメータ設定手順の一例を示す説明図である。
【
図18】手先に測定用治具が取り付けられた状態を示す部分外観図である。
【
図19】カメラ位置測定処理の一例を示すフローチャートである。
【
図20】カメラ位置の測定の様子を示す説明図である。
【
図21】カメラ傾き測定処理の一例を示すフローチャートである。
【
図22】カメラ傾きの測定の様子を示す説明図である。
【発明を実施するための形態】
【0010】
次に、本開示を実施するための形態について図面を参照しながら説明する。
【0011】
図1は、スカラロボットの外観斜視図である。
図2は、ロボット本体の側面図である。
図3は、ロボット本体と制御装置との電気的な接続関係を示すブロック図である。
【0012】
スカラロボット1は、ワークWに対して所定の作業(例えば、ワークWをピックアップして搬送する搬送作業や、ワークWを保持して組付対象物に組み付ける組付け作業など)を行なうものとして構成されている。スカラロボット1は、ロボット本体10(
図1および
図2参照)と、ロボット本体10を制御する制御装置70(
図3参照)と、を備える。
【0013】
ロボット本体10は、基台11とスカラアーム20とカメラ60とを備える。
【0014】
基台11は、作業台2に固定されており、スカラアーム20の基端側を支持する。スカラアーム20は、第1アーム21と第1アーム駆動部30と第2アーム22と第2アーム駆動部40とシャフト23とシャフト駆動部50とを備える。第1アーム21は、基端部が第1関節軸J1を介して基台11に連結され、第1関節軸J1の回動により基台11に対して水平面内で回動(水平旋回)可能に構成される。第2アーム22は、基端部が第2関節軸J2を介して第1アーム21の先端部に連結され、第2関節軸J2の回動により第1アーム21に対して水平面内で回動(水平旋回)可能に構成される。シャフト23は、第2アーム22の先端部に第3関節軸J3を介して連結され、第2アーム22に対して第3関節軸J3の軸周りに回転可能かつ第3関節軸J3の軸方向に沿って昇降可能に構成される。本実施形態のスカラロボットでは、シャフト23の先端には、ワークWをピックアップして保持するワーク保持部24が設けられている。なお、ワーク保持部24としては、例えば、負圧によりワークWを吸着する吸着ノズルや、一対の爪によりワークWを把持するメカニカルチャック、電磁石によりワークWを吸着する電磁チャックなどを挙げることができる。
【0015】
第1アーム駆動部30は、モータ32とエンコーダ34とを備える。モータ32の回転軸は、図示しない減速機を介して第1関節軸J1に連結されている。第1アーム駆動部30は、モータ32を駆動することで減速機を介して第1関節軸J1に伝達されるトルクにより、第1関節軸J1を支点に第1アーム21を回動させる。エンコーダ34は、モータ32の回転軸に取り付けられ、モータ32の回転変位量を検出するロータリエンコーダとして構成される。
【0016】
第2アーム駆動部40は、第1アーム駆動部30と同様に、モータ42とエンコーダ44とを備える。モータ42の回転軸は、図示しない減速機を介して第2関節軸J2に連結されている。第2アーム駆動部40は、モータ42を駆動することで減速機を介して第2関節軸J2に伝達されるトルクにより、第2関節軸J2を支点に第2アーム22を回動させる。エンコーダ44は、モータ42の回転軸に取り付けられ、モータ42の回転変位量を検出するロータリエンコーダとして構成される。
【0017】
シャフト駆動部50は、
図3に示すように、モータ52a,52bとエンコーダ54a,54bとを備える。モータ52aの回転軸は、図示しないベルトを介してシャフト23に接続されている。シャフト駆動部50は、モータ52aを駆動することによりシャフト23を軸周りに回転させる。モータ52bの回転軸は、図示しないボールねじ機構を介してシャフト23に接続されている。シャフト駆動部50は、モータ52bを駆動することにより、ボールねじ機構によりモータ52bの回転運動が直動運動に変換されることでシャフト23を上下に昇降させる。エンコーダ54aは、シャフト23の回転変位量を検出するロータリエンコーダとして構成される。エンコーダ54bは、シャフト23の昇降位置を検出するリニアエンコーダとして構成される。
【0018】
カメラ60は、第2アーム22の先端部側面に取り付けられている。カメラ60は、作業対象物であるワークWを撮像し、その撮像画像を制御装置70へ出力する。制御装置70は、撮像画像を処理することによりワークWの位置や姿勢を認識することができる。なお、カメラ60は第2アーム22に取り付けられているから、本実施形態では、スカラアーム20は、カメラ60を上下方向に移動させることはできない。
【0019】
制御装置70は、
図3に示すように、CPU71と、処理プログラムを記憶するROM72と、ワークメモリとしてのRAM73と、HDDやSSD等の記憶装置74と、入出力インタフェース(図示せず)とを備える。制御装置70には、エンコーダ34,44,54a,54bからの位置信号やカメラ60からの画像信号などが入出力インタフェースを介して入力される。制御装置70からは、モータ32,42,52a,52bへの駆動信号などが入出力インタフェースを介して出力される。
【0020】
次に、こうして構成されたスカラロボット1の動作について説明する。特に、作業台2上の被写体であるワークWを撮像するためのカメラ60の位置制御について説明する。
図4は、制御装置70のCPU71により実行されるカメラ位置制御処理の一例を示すフローチャートである。
【0021】
カメラ位置制御処理が実行されると、制御装置70のCPU71は、まず、図示しないフィーダから供給されるワークWを撮像するための基台11(後述するベース座標系Σ0)から見たカメラ60の画像中心の目標位置(X0*,Y0*,Z0*)を設定する(ステップS100)。ステップS100は、例えば、外部のコンピュータで作成されたプログラムのデータを読み込むことにより行なわれる。続いて、CPU71は、カメラ60の画像中心の目標位置(X0*,Y0*,Z0*)に対して逆運動学を解くことにより、カメラ60の画像中心を目標位置(X0*,Y0*,Z0*)に一致させるための第1関節軸J1の角度θJ1と第2関節軸J2の角度θJ2とを算出する(ステップS110)。
【0022】
次に、CPU71は、ステップS110で算出した第2関節軸J2の角度θ
J2に基づいて第1アーム21のねじれ角度θ
tとたわみ角度θ
d1とを算出すると共に(ステップS120)、第2アーム22のたわみ角度θ
d2を算出する(ステップS130)。いま、
図5および
図6に示すように、基台11(第0リンク)にベース座標系Σ
0を設定し、第1アーム21,第2アーム22,シャフト23,手先(ワーク保持部24)を第1リンク,第2リンク,第3リンク,第4リンクとしてそれぞれリンク座標系を設定する場合を考える。ここで、リンク座標系Σ
1は、第1アーム21の根元(第1関節軸J1)に設定される。リンク座標系Σ
2は、第2アーム22の根元(第2関節軸J2)に設定される。リンク座標系Σ
3は、第2アーム22とシャフト23との連結部分に設定される。リンク座標系(ハンド座標系)Σ
4は、手先(ワーク保持部24)に設定される。各座標系は、第1アーム21および第2アーム22が一直線状に伸びた状態をホームポジションとする。また、図中、X
0,X
1,X
2,X
3,X
4は、それぞれの座標系のX軸である。Y
0,Y
1,Y
2,Y
3,Y
4は、それぞれの座標系のY軸である。Z
0,Z
1,Z
2,Z
3,Z
4は、それぞれの座標系のZ軸である。
【0023】
第1アーム21のねじれ角度θ
tは、リンク座標系Σ
1において、第1関節軸J
1の軸方向をZ
1軸方向とし、第1アーム21の中心線に沿った方向をX
1軸方向とし、X
1軸およびZ
1軸に直交する方向をY
1軸方向とした場合、
図7に示すように、第1アーム21のX
1軸周りの変位角度として定義される。そして、第1アーム21のねじれ角度θ
tは、第1アーム21のねじれ角度θ
tと第2関節軸J2の角度θ
J2とアーム質量M1との関係をあらわす次式(1)および(2)のねじれモデル式を用いて算出される。アーム質量M1は、スカラアーム20の第1関節軸J1より先端側のアーム部の質量であり、ワーク保持部24がワークWを保持している場合には当該ワークWの質量mも含み、ワークWの質量mに応じた変数となる。「g」は重力加速度である。「L
t・sinθ
J2」は、
図8に示すように、アーム部の重心位置L
tにおけるY
1軸方向成分である。「I
t」は、
図9に示すように、アーム部に作用する重力による荷重によって第1アーム21をX
1軸周りに回転させようとするモーメント(ねじれモーメント)であり、重心位置L
tがX
1軸上にあるときには値0であり、重心位置L
tがX
1軸からY
1軸方向に離れるにつれて大きくなる。すなわち、ねじれモーメントI
tは、第2関節軸J2の角度θ
J2が0度(基準角)のときに最小となり、第2関節軸J2の角度が-90度のときと+90度のときに最大となる。「K
t」は、ねじれ剛性であり、予め実験などにより求められる。
【0024】
【0025】
第1アーム21のたわみ角度θ
d1は、
図10に示すように、第1アーム21のY
1軸周りの変位角度として定義される。そして、第1アーム21のたわみ角度θ
d1は、第1アーム21のたわみ角度θ
d1と第2関節軸J2の角度θ
J2とアーム部の質量である上述したアーム質量M1との関係をあらわす次式(3)および(4)のたわみモデル式を用いて算出される。式中、「L
d1・cosθ
J2」は、
図11に示すように、アーム部の重心位置L
tにおけるX
1軸方向成分である。「I
d1」は、
図12に示すように、アーム部に作用する重力による荷重によって第1アーム21をY
1軸周りに回転させようとするモーメント(たわみモーメント)であり、重心位置L
d1が第1関節軸J1からX
1軸方向に離れるにつれて大きくなる。すなわち、たわみモーメントI
d1は、第2関節軸J2の角度が±180度のときに最小となり、第2関節軸J2の角度が0度(基準角)のときに最大となる。「K
d1」は、たわみ剛性であり、予め実験などにより求められる。
【0026】
【0027】
第2アーム22のたわみ角度θ
d2は、
図10に示すように、第2アーム22のY
2軸周りの変位角度として定義される。そして、第2アーム22のたわみ角度θ
d2は、第2アーム22のたわみ角度θ
d2とアーム質量M2との関係をあらわす次式(5)および(6)のたわみモデル式を用いて算出される。ここで、アーム質量M2は、スカラアーム20の第2関節軸J2より先端側のアーム部の質量であり、ワーク保持部24がワークWを保持している場合には当該ワークWの質量mも含み、ワークWの質量mに応じた変数となる。「I
d2」は、アーム部に作用する重力による荷重によって第2アーム22をY
2軸周りに回転させようとするモーメント(たわみモーメント)であり、第2関節軸J2の角度θ
d2とは無関係に、重心位置L
d2(第2関節軸J2の中心から重心位置までの距離)とアーム質量M2とによって定まる。「K
d2」は、たわみ剛性であり、予め実験などにより求められる。
【0028】
【0029】
これらのねじれモデル式およびたわみモデル式は、記憶装置74に記憶されている。ステップS110,S120において、CPU71は、記憶装置74から対応するモデル式を読み出すことにより、ねじれ角度θtおよびたわみ角度θd1,θd2を算出する。
【0030】
次に、CPU71は、第1関節軸J1の角度θJ1と第2関節軸J2の角度θJ2と第1アーム21のねじれ角度θtおよびたわみ角度θd1と第2アーム22のたわみ角度θd2とに基づいて順運動学を解くことにより、カメラ60の画像中心の推定位置(X0,Y0,Z0)を算出する(ステップS140)。すなわち、CPU71は、画像中心が目標位置(X0*,Y0*,Z0*)と一致するように逆運動学により算出される第1および第2関節軸J1,J2の角度θJ1,θJ2を角度指令値として制御したと仮定した場合に、第1アーム21のねじれ及びたわみや第2アーム22のたわみに起因して目標位置(X0*,Y0*,Z0*)からズレる画像中心の推定位置(X0,Y0,Z0)を算出する。
【0031】
CPU71は、画像中心の推定位置(X0,Y0,Z0)を算出すると、算出した画像中心の推定位置(X0,Y0,Z0)とステップS100で取得した画像中心の目標位置(X0*,Y0*,Z0*)との差分をとることにより、画像中心の位置ズレ量(ΔX0,ΔY0,ΔZ0)を算出する(ステップS150)。続いて、CPU71は、画像中心の目標位置(X0*,Y0*,Z0*)を位置ズレ量(ΔX0,ΔY0,ΔZ0)の分だけオフセットすることにより目標位置を補正し(ステップS160)、補正した目標位置に対して逆運動学を解くことによりカメラ60の画像中心を目標位置(X0*,Y0*,Z0*)に一致させるための第1関節軸J1の角度指令値θJ1*と第2関節軸J2の角度指令値θJ2*とを算出する(ステップS170)。そして、CPU71は、エンコーダ34により検出される第1関節軸J1の角度が算出した角度指令値θJ1*に一致すると共にエンコーダ44により検出される第2関節軸J2の角度が算出した角度指令値θJ2*に一致するようフィードバック制御により対応するモータ31,32を制御して(ステップS180)、カメラ位置制御処理を終了する。
【0032】
CPU71は、こうしてカメラ位置制御処理を実行すると、図示しないフィーダから供給されたワークWをカメラ60により撮像し、撮像画像に画像処理を施すことにより、ワークWの位置および姿勢を認識する。そして、CPU71は、ワークWをピックアップするための手先(ワーク保持部24)の目標位置(X
0*,Y
0*,Z
0*)を設定し、手先を目標位置(X
0*,Y
0*,Z
0*)に移動させるための手先位置制御処理を実行する。目標位置(X
0*,Y
0*)の設定は、認識したワークWの位置および姿勢に基づいて行なわれる。目標位置Z
0*の設定は、ワークWの高さ情報(ワーク高さWH)に基づいて行なわれる。ワークWの高さ情報は、上述した画像処理に用いられる画像処理データの一つとして予め登録されている。したがって、高さ情報の取得は、画像処理データの中からワーク高さWHを読み出すことにより行なうことができる。例えば、ワーク保持部24として吸着ノズルや電磁チャックを用いてワークWをピックアップする場合、ワークWのピック位置はワークWの上面(吸着面)となるため、目標位置Z
0*は、
図13に示すように、ワークWが置かれる基準面S(固定値)に対してワーク高さWHだけ高い位置に設定される。なお、ワーク保持部24としてワークWの両側面を把持するメカニカルチャックを用いてワークWをピックアップする場合、ワークWのピック位置は、ワークWの上面よりも低い位置となる。この場合、手先の目標位置Z
0*は、別途、入力されたピック位置を用いて設定される。
【0033】
手先位置制御処理は、シャフト駆動部50によるシャフト23の昇降が行なわれる点を除いて、基本的には、上述したカメラ位置制御処理と同様の処理により行なわれる。すなわち、手先位置制御処理では、CPU71は、まず、手先を設定した目標位置(X0*,Y0*,Z0*)に移動させるための第1関節軸J1の角度θJ1と第2関節軸J2の角度θJ2とシャフト23の角度(シャフト角度)θJ4とシャフト23の昇降位置Zsとを逆運動学により算出する。続いて、CPU71は、算出したθJ1,θJ2,θJ4,Zsと第1アーム21のねじれ角度θtおよびたわみ角度θd1と第2アーム22のねじれ角度θd2とに基づいてねじれやたわみを考慮した手先の推定位置(X0,Y0,Z0)を順運動学により算出する。次に、CPU71は、手先の推定位置(X0,Y0,Z0)と目標位置(X0*,Y0*,Z0*)との差分をとることにより位置ズレ量(ΔX0,ΔY0,ΔZ0)を算出する。次に、CPU71は、目標位置(X0*,Y0*,Z0*)を位置ズレ量(ΔX0,ΔY0,ΔZ0)の分だけオフセットすることにより目標位置を補正する。そして、CPU71は、補正した目標位置に手先を移動させるための第1関節軸J1の角度指令値θJ1*と第2関節軸J2の角度指令値θJ2*とシャフト23の角度指令値θJ4*とシャフト23の昇降位置指令値Zs*とを逆運動学により算出し、各指令値に基づいて対応するモータ31,32,33a,33bをフィードバック制御により制御する。
【0034】
ここで、カメラ位置制御処理や手先位置制御処理において、第1アーム21のねじれ及びたわみや第2アーム22のたわみを考慮したカメラ60の画像中心や手先(ワーク保持部24)の推定位置を求めるための順運動学の計算は、変数θJ1,θJ2,θt,θd1,θd2を同次変換行列に与えることにより行なうことができる。同次変換行列は、ロボット本体10に設定した各座標系のうち隣接する座標系間の関係i-1Ti(i=1,2,3,4)であるリンクパラメータを求め、リンクパラメータに基づいてアーム全体の変換行列0T4を求めることにより導き出すことができる。
【0035】
図14は、手先用リンクパラメータ表の一例を示す説明図である。
図15は、カメラ用リンクパラメータ表の一例を示す説明図である。手先用リンクパラメータ表およびカメラ用リンクパラメータ表において、
図14および
図15中、第iリンク(i=1,2,3,4)の各リンクパラメータ(dx、dy、dz、rx、ry、rz、rx2、ry2)は、座標系Σ
i-1から座標系Σ
iへ変換するためのパラメータである。dx,dy,dzは、X軸方向,Y軸方向,Z軸方向の並進量を示すパラメータ(位置パラメータ)である。rx(rx2),ry(ry2),rzは、X軸周り,Y軸周り,Z軸周りの回転量を示すパラメータ(姿勢パラメータ)である。
【0036】
また、
図5または
図6に示すように、L
1は、Z
1軸とZ
2軸とのX
1軸方向の距離(第1アーム21のアーム長)を示す。L
2は、Z
2軸とZ
3軸とのX
2軸方向の距離(第2アーム22のアーム長)を示す。L
z1は、ベース座標系Σ
0の原点からリンク座標系Σ
1の原点までのZ
0軸方向の距離を示す。L
z2は、リンク座標系Σ
1の原点からリンク座標系Σ
2の原点までのZ
1軸方向の距離を示す。th1は、リンク座標系Σ
1のZ
1軸周りの回転角であり、第1関節軸J1の角度θ
J1に相当する。th2は、リンク座標系Σ
2のZ
2軸周りの回転角であり、第2関節軸J2の角度θ
J2に相当する。th4は、リンク座標系Σ
4のZ
4軸周りの回転角であり、シャフト23の角度(シャフト角度)θ
J4に相当する。d3は、リンク座標系Σ
3の原点から手先までの距離であり、昇降位置Z
sに相当する。J1rxは、リンク座標系Σ
1のX
1軸周りの回転角を示す。J1ryは、リンク座標系Σ
1のY
1軸周りの回転角を示す。J1rx2は、リンク座標系Σ
1がZ
1軸周りにth1だけ回転した後のX
1軸周りの回転角を示し、第1アーム21のねじれ角度θ
tに相当する。J1ry2は、リンク座標系Σ
1がZ
1軸周りにth1だけ回転した後のY
1軸周りの回転角を示し、第1アーム21のたわみ角度θ
d1に相当する。J2rxは、リンク座標系Σ
2のX
2軸周りの回転角を示す。J2ryは、リンク座標系Σ
2のY
2軸周りの回転角を示す。J2ry2は、リンク座標系Σ
2がZ
2軸周りにth2回転した後のY
2軸周りの回転角を示し、第2アーム22のたわみ角度θ
d2に相当する。J3rxは、リンク座標系Σ
3のX
3軸周りの回転角を示す。J3ryは、リンク座標系Σ
3のY
3軸周りの回転角を示す。
【0037】
アーム全体の変換行列0T4は、リンクパラメータ表による各座標系間の関係i-1Ti(i=1,2,3,4)を用いて次式(7)により求めることができる。各座標系間の関係(行列)i-1Tiは、次式(8)により求めることができる。なお、dx,dy,dz,rx,ry,rz,rx2,ry2の各行列Tdx,Tdy,Tdz,Trx,Try,Trz,Trx2,Try2を次式(9)~(16)に示す。
【0038】
【0039】
手先位置制御処理において、手先用リンクパラメータ表のJ1rx2に第1アーム21のねじれ角度θtを与え、J1ry2に第1アーム21のたわみ角度θd1を与え、J2ry2に第2アーム22のたわみ角度θd2を与えることで、順運動学(変換行列0T4)により第1アーム21のねじれ及びたわみと第2アーム22のたわみとに起因した誤差を含む手先の推定位置を計算することができる。
【0040】
カメラ用リンクパラメータは、
図15に示すように、リンク座標系Σ
2からリンク座標系Σ
3への変換用パラメータdx,dy,dz,rx,ryに、L
2+HCX,HCY,0,HCRA,HCRBが設定され、リンク座標系Σ
3からハンド座標系Σ
4への変換用パラメータのdz,rzにそれぞれHCZ,0が設定されている点で、手先用リンクパラメータとは異なる。HCXは、X
2軸方向におけるカメラ60の位置を示し、HCYは、Y
2軸方向におけるカメラ60の位置を示す。また、HCRAは、X
3軸周りのカメラ60の傾きを示し、HCRBは、Y
3軸回りのカメラ60の傾きを示す。HCZは、カメラ60(レンズ先端部)から被写体であるワークWの上面までの距離(ワーキングディスタンスWD)を示す。
【0041】
カメラ位置制御処理において、カメラ用リンクパラメータ表のJ1rx2に第1アーム21のねじれ角度θtを与え、J1ry2に第1アーム21のたわみ角度θd1を与え、J2ry2に第2アーム22のたわみ角度θd2を与えることで、順運動学により第1アーム21のねじれ及びたわみと第2アーム22のたわみとに起因した誤差を含むカメラ60の画像中心の推定位置を計算することができる。また、カメラ60のX2軸方向における位置XおよびY2軸方向における位置Yを予め測定しておき、カメラ用リンクパラメータ表のHCXに位置Xを与え、HCYに位置Yを与えることで、順運動学によりカメラ60の取付位置に起因した誤差を含むカメラ60の画像中心の推定位置を計算することができる。さらに、カメラ60のX3軸周りにおける傾きRAおよびY3軸周りにおける傾きRBを予め測定しておき、カメラ用リンクパラメータ表のHCRAに傾きRAを与え、HCRBに傾きRBを与えることで、順運動学によりカメラ60の取付角度に起因した誤差を含むカメラ60の画像中心の推定位置を計算することができる。
【0042】
さらに、本実施形態では、カメラ用リンクパラメータ表のHCZに与えられるワーキングディスタンスWDは、カメラ60(レンズ先端部)とワークWが置かれる基準面Sとの距離(固定値)から上述したワーク高さWHを減じることにより算出される。
図16に示すように、ワークWが置かれる基準面Sに対してカメラ60の光軸(図中、破線参照)が傾いている状態で高さの異なるワークWを撮像すると、高さの違いΔWHに応じてそれぞれのワークWの撮像画像の画像中心がズレる現象が生じる。本実施形態では、画像処理データからワーク高さWHを取得し、HCZに反映させることで、ワークWの高さの違いによる画像中心のズレを修正することが可能となる。
【0043】
次に、カメラ60の位置X,Yや傾きRA,RBを測定してカメラ用リンクパラメータに反映させるための手順について説明する。
図17は、カメラ用リンクパラメータ設定手順の一例を示す説明図である。カメラ用リンクパラメータ設定手順では、ステップS200~S240により実行される。ステップS200は、手先(ワーク保持部24)に測定用治具100を取り付ける。
図18は、手先(ワーク保持部24)に測定用治具が取り付けられた状態を示す部分外観図である。図示するように、測定用治具100は、装着箇所を中心としてシャフト23に直交する方向に所定距離だけ離間すると共に周方向に所定間隔(90度の間隔)をおいて配置された複数(4つ)のマークMAを有する。測定用治具100は、シャフト23に対して位相合わせされた状態で取り付けられ、各マークMAは、カメラ60が設計値通りに取り付けられている場合に、カメラ60の画像中心がマークMAの中心と一致するように配置されている。
【0044】
ステップS210は、測定用治具100を用いてカメラ60の位置X,Yを測定する。このステップS210は、制御装置70のCPU71により
図19に例示するカメラ位置測定処理を実行することにより行なわれる。カメラ位置測定処理では、CPU71は、まず、手先(ワーク保持部24)を測定位置に移動させる(ステップS300)。この処理は、マークMAがカメラ60の被写界深度内となる昇降位置指令値Z
s*を設定してモータ52bを制御することにより行なわれる。続いて、CPU71は、シャフト23が所定ピッチずつ回転するようにモータ52aを制御し、シャフト23が所定ピッチずつ回転する毎に、カメラ60によりマークMAを撮像する処理を繰り返す(ステップS310)。次に、CPU71は、撮像画像を処理することによりカメラ60により測定されたマークMAの実測位置と設計上のマークMAの位置(設計位置)との位置ズレ量ΔX,ΔYを算出する(ステップS320)。
図20は、カメラ位置の測定の様子を示す説明図である。図中、白丸は、カメラ60の取付位置が設計値通りであった場合に撮像画像に写るマーク画像を示し、黒丸は、カメラ60でマークMAを実際に撮像することにより撮像画像に写ったマーク画像を示す。位置ズレ量ΔXは、設計位置の円弧と実測位置の円弧とのX軸方向の位置の差である。位置ズレ量ΔYは、設計位置の円弧と実測位置の円弧とのY軸方向の位置の差である。そして、CPU71は、カメラ60の設計位置Xdv,YdvにステップS130で算出した位置ズレ量ΔX,ΔYを加算することにより、実際のカメラ60の位置X,Yを算出する(ステップS330)。
【0045】
ステップS220は、測定用治具100を用いてカメラ60の傾きRA,RBを測定する。このステップS220は、制御装置70のCPU71により
図21に例示するカメラ傾き測定処理を実行することにより行なわれる。カメラ傾き測定処理では、CPU71は、まず、マークMAをカメラ60の正面(真下)に移動させる(ステップS400)。この処理は、シャフト角度θ
J4が予め定められた所定角度となるようにモータ52aを制御することにより行なわれる。続いて、CPU71は、カメラ60の被写界深度内の所定量bだけマークMAを上下させ、下位置にあるマークMAと上位置にあるマークMAとをカメラ60によりそれぞれ撮像する(ステップS410)。次に、CPU71は、撮像画像を処理することにより、下位置で撮像したマークMAの実測位置と設計位置とのXY軸方向の位置ズレ量ΔXa,ΔYaと、上位置で撮像したマークMAの実測位置と設計位置とのXY軸方向の位置ズレ量ΔXc,ΔYcとを算出する(ステップS420)。
図22は、カメラ傾きの測定の様子を示す説明図である。カメラ60が取付角度が設計値通りであった場合に撮像画像に写るマーク画像の中心は、カメラ60の画像中心と一致する。図示するように、位置ズレ量ΔYaは、下位置でマークMAを撮像したときの撮像画像に写ったマーク画像の中心位置(実測位置)と設計位置とのY軸方向における差である。位置ズレ量ΔYcは、上位置でマークMAを撮像したときに撮像画像に写ったマーク画像の中心位置(実測位置)と設計位置とのY軸方向における差である。図示しないが、位置ズレ量ΔXaは、下位置でマークMAを撮像したときの撮像画像に写ったマーク画像の中心位置(実測位置)と設計位置とのX軸方向における差である。位置ズレ量ΔXcは、上位置でマークMAを撮像したときに撮像画像に写ったマーク画像の中心位置(実測位置)と設計位置とのY軸方向における差である。そして、CPU71は、算出した位置ズレ量ΔYa,ΔYbと上述した所定量bとに基づいて次式(17)によりX軸回りのカメラ60の傾きRAを算出すると共に、算出した位置ズレ量ΔXa,ΔXbと所定量bとに基づいて次式(18)によりY軸回りのカメラ60の傾きRBを算出する(ステップS430)。なお、式(17)は、
図22から容易に導き出すことができる。式(18)についても同様である。
【0046】
【0047】
ステップ230は、算出した位置XをパラメータHCXに設定し、位置YをパラメータHCYに設定し、傾きRAをパラメータHCRAに設定し、傾きRBをパラメータHCRBに設定する。ステップS240は、各々設定したリンクパラメータHCX,HCY,HCRA,HCRBをカメラ用リンクパラメータとして登録する。これにより、カメラ60が設計値通りに取り付けられていなかった場合に、カメラ位置制御処理において順運動学によりカメラ60の取付位置や取付角度に起因した誤差を含むカメラ60の画像中心の推定位置を計算することができる。この推定位置に基づいて目標位置を補正して制御することで、カメラ60の画像中心を精度よく目標位置に合わせることが可能となる。
【0048】
ここで、実施形態の主要な要素と請求の範囲に記載した本開示の主要な要素との対応関係について説明する。即ち、本実施形態では、第1アーム21が第1アームに相当し、第1関節軸J1が第1軸に相当し、第2アーム22が第2アームに相当し、第2関節軸J2が第2軸に相当し、シャフト23がシャフトに相当し、第3関節軸J3が第3軸に相当し、カメラ60がカメラに相当する。
【0049】
なお、本開示は上述した実施形態に何ら限定されることはなく、本開示の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【0050】
例えば、上述した実施形態では、カメラ位置X,Yとカメラ傾きRA,RBとを測定し、それぞれカメラ用リンクパラメータHCX,HCY,HCRA,HCRBに反映させるものとした。しかし、カメラ位置X,Yとカメラ傾きRA,RBとのうちいずれか一方の測定を省略してもよい。
【0051】
以上説明したように、本開示のスカラロボットの制御方法は、基台と、前記基台に設けられ、第1軸周りに回動する第1アームと、前記第1アームに設けられ、前記第1軸と平行な第2軸周りに回動する第2アームと、前記第2アームに対して前記第2軸と平行な第3軸の軸方向に移動するシャフトと、光軸が前記第3軸と平行となるように前記第2アームに取り付けられたカメラと、を備え、前記第1アーム,前記第2アーム,前記シャフトを第1リンク,第2リンク,第3リンクとして各リンク間の位置の関係をあらわした位置パラメータと各リンク間の姿勢の関係をあらわした姿勢パラメータとを用いて前記カメラの位置を制御するスカラロボットの制御方法であって、前記第3軸に対する前記光軸の傾きを前記カメラの取付角度として測定し、前記測定したカメラの取付角度に基づく補正値を前記第2リンクから前記第3リンクへの変換のための前記姿勢パラメータに登録することを要旨とする。
【0052】
この本開示のスカラロボットの制御方法によれば、カメラの取付角度を測定して、測定値に基づく補正値を対応するリンクへの変換のための姿勢パラメータに反映させることで、カメラに取付角度に誤差が生じていても、カメラの位置制御を精度よく行なうことが可能となる。
【0053】
こうした本開示のスカラロボットの制御方法において、前記第3軸と直交する方向における前記光軸の位置を前記カメラの取付位置として測定し、前記測定したカメラの取付位置に基づく補正値を前記第2リンクから前記第3リンクへの変換のための前記位置パラメータに登録するものとしてもよい。こうすれば、カメラの取付角度に加えて取付位置に誤差が生じていても、カメラの位置制御を精度よく行なうことができる。
【0054】
さらに、本開示のスカラロボットの制御方法において、前記第2アームの回動位置と前記第1アームのアーム周りのねじれ量との関係を記憶し、前記第2アームの回動位置に対応する前記第1アームのねじれ量に基づく補正値を、前記基台を第0リンクとして該第0リンクから前記第1リンクへの変換のための前記姿勢パラメータに登録するものとしてもよい。こうすれば、第1アームのねじれが生じていても、カメラの位置制御を精度よく行なうことができる。
【0055】
また、本開示のスカラロボットの制御方法において、前記第2アームの回動位置に対応する前記第1アームのたわみ量と前記第2アームのたわみ量とを記憶し、前記第2アームの回動位置に対応する前記第1アームのたわみ量に基づく補正値を、前記基台を第0リンクとして該第0リンクから前記第1リンクへの変換のための前記姿勢パラメータに登録すると共に、前記第2アームの回動位置に対応する前記第2アームのたわみ量に基づく補正値を、前記第1リンクから前記第2リンクへの変換のための前記姿勢パラメータに登録するものとしてもよい。こうすれば、第1アームや第2アームにたわみが生じていても、カメラの位置制御を精度よく行なうことができる。
【産業上の利用可能性】
【0056】
本開示は、スカラロボットの製造産業などに利用可能である。
【符号の説明】
【0057】
1 スカラロボットシステム、2 作業台、10 ロボット本体、11 基台、20 スカラアーム、21 第1アーム、22 第2アーム、23 シャフト、24 ワーク保持部、30 第1アーム駆動部、32 モータ、34 エンコーダ、40 第2アーム駆動部、42 モータ、44 エンコーダ、50 シャフト駆動部、52a,52b モータ、54a,54b エンコーダ、60 カメラ、70 制御装置、71 CPU、72 ROM、73 RAM、74 記憶装置、100 測定用治具、J1 第1関節軸、J2 第2関節軸、J3 第3関節軸、 MA マーク、W ワーク。