部品組付け方法
【課題】ロボットによる組付けにおいて、直線、折れ曲がり、円弧などで多岐に渡る軌道生成を効率的に行い、環境変動や機差にも自動的に対応できる部品組付け方法を提供する。
【解決手段】部品1を部品2の孔に組付ける前に、L字状の概略軌道に沿って力センサ6による探索の範囲を限定する軌道制限胴をロボットハンド5の制御部に記憶させる。ロボットはステレオカメラ7の画像から組付け相手を探し、軌道制限胴内で力センサ6の検出値によって人間の手探り様に組付け方向を探索し、その道程を複数の教示点として記憶することで精密軌道を自習する。その精密軌道を用いた次回以降の組付けにおいては、教示点毎の力センサ6の検出値について記憶値と現在値とに差が出た場合は、精密軌道を微調整する。
【解決手段】部品1を部品2の孔に組付ける前に、L字状の概略軌道に沿って力センサ6による探索の範囲を限定する軌道制限胴をロボットハンド5の制御部に記憶させる。ロボットはステレオカメラ7の画像から組付け相手を探し、軌道制限胴内で力センサ6の検出値によって人間の手探り様に組付け方向を探索し、その道程を複数の教示点として記憶することで精密軌道を自習する。その精密軌道を用いた次回以降の組付けにおいては、教示点毎の力センサ6の検出値について記憶値と現在値とに差が出た場合は、精密軌道を微調整する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットを用いて部品の組付けを行う部品組付け方法に関するものである。
【背景技術】
【0002】
ロボットを用いた組付け作業においては、組付け対象の部品をどの位置からどの位置へ、どういった精密軌道で動作するかをロボットへ指示する工程が必要である。このような精密軌道の生成は、直線軌道では始点と終点を、屈曲軌道の場合はさらに中間点を含めた教示点群を作成し、それらの教示点間を補間することによって成り立つ。
【0003】
例えば、特許文献1には、直線状のワークを孔に直線挿入する場合に、比較的粗な教示点から精密な教示点を得る方法が開示されている。これは、組付けの始点として、予め挿入孔入口の側壁へ接触しないレベルであって、かつ、挿入孔を確実に捉えられるレベルでの教示を比較的粗な点として手動で教示する。その後は、挿入方向に直進し、力センサのZ方向の検出値Szがしきい値Tzを超えた点、すなわち突き当たった点を挿入終点のZ座標とする。
【0004】
次に、±X方向と±Y方向で個別に微動して挿入孔の側壁へ接触させ、力センサのX方向の検出値SxとY方向の検出値Syとがしきい値以下となる点で停止する。この点は挿入孔の側壁への接触が過度と成らない点であり、これらを挿入終点のX座標、Y座標とすることで、前記の粗な教示点と比して自動的に精密な教示点を得られる。この方式によれば、オフライン教示による図面の誤差、ロボット本体の誤差との差を補正可能である。
【0005】
特許文献2には、教示点のばらつきの影響を受けずにピンを孔に直線挿入する方法が開示されている。ピンを孔周辺に接触させてピンに受ける力の変化から孔を探索し、挿入開始後はモーメントが減少する方向へ挿入を継続し、挿入方向から反力を受けて終了とする方式である。
【0006】
その他の考え方として、嵌合の接触状態を数学的な局所モデルに分解して時系列データの教示情報を取り出し、接触の遷移を局所モデルの集合体として実現する試みもなされている(特許文献3参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開昭63−162180号公報
【特許文献2】特開平7−314262号公報
【特許文献3】特開平9−198121号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記従来技術では以下のような未解決の課題がある。第1の課題は、組付軌道は直線以外に、屈曲、円弧など多岐に渡るため、ロボットによる組付けが困難なことである。例えば、特許文献1に開示された方式では、直線挿入の特定条件に限定される。すなわち基準軸(Z軸)の直線移動の突き当て後に、他の軸(XY軸)の接触が最小となる制御を行っている。このため、屈曲した部品や、円弧状の部品の場合は、途中で被挿入物と干渉して組付けは完遂できず、この方式を採用できる用途は限定される。
【0009】
第2の課題は、装置を立ち上げる作業者には、教示に専門技術や慣れの必要な場面があるということである。例えば、特許文献3に開示された方法では、数学モデルを使って軌道生成するため、作業者に熟練を要する。従って、製品周期が最短で半年程度であるデジタルカメラ等のコンシューマー製品には、段取り替えに人材と時間が必要なために、この方式を採用できない場合がある。
【0010】
さらに、付帯する課題として、教示点の絶対座標の変動に対応できないことがある。本発明者の実験によれば、アーム長600mmの7軸垂直多関節ロボットの先端部において、稼働30分後に200μmの絶対座標変動を実測した。しかしこの場合、200μm未満の精度が要求される精密組付けには、このままでは導入できない。その対応として、例えば特許文献2に開示されたように、絶対座標を重視せずに、毎回組付け時の力センサの状況を探る方式がある。しかし、1回の組み立て毎に長いタクトが必要となるために、この方式は量産性が求められる場合には適さない。
【0011】
図12は、教示点に関する必要精度を説明するもので、(a)に示すように、幅W、高さH、長さDの角柱101をロボットハンドで把持して、幅W+Δw、高さH+Δh、深さZe−Ziの角孔を持った被挿入体102に挿入するという組付け工程を想定する。
【0012】
ここでは説明を分かり易くするために、角孔の入口はXY平面に存在し、挿入方向とZ軸方向は同一とし、挿入時の角柱101のY・Zそれぞれの軸方向での挿入位置と姿勢の誤差はゼロとする。従ってこの場合の挿入開始の成功率は、角柱101の挿入の開始点Piと終了点PeのX軸方向の誤差におよそ支配されることになる。
【0013】
図12(b)に示すように、縦軸を挿入組付けの成功率、横軸をX軸座標とすれば、X軸方向が中心値Xoに対し精度Δwの範囲では、ほぼ100%の確率で組付けは成功する。しかしこれを超えると成功率は急峻に下降し、ある点を超えると挿入は不能となって挿入毎に接触干渉(衝突)する。あるいは、挿入途中で干渉力が過大となって傷や駆動系の過負荷が発生する。従って開始点Piと終了点Peは精密な教示作業が必要となる。この時のΔwは、家電等のコンシューマー製品を構成する小物部品を例にとれば20μm前後を要求されることもある。
【0014】
本発明は、ロボットを用いた組付けにおいて、直線、折れ曲がり、円弧などで多岐に渡る精密軌道を効率的に生成し、環境変動や機差にも自動的に対応できる部品組付け方法を提供することを目的とするものである。
【課題を解決するための手段】
【0015】
本発明の部品組付け方法は、カメラによって撮影した画像に基づき、力センサを有するロボットハンドによって把持された第1の部品を第2の部品に組付ける部品組付け方法において、前記カメラによって撮影された第1の部品と第2の部品の画像に基づき、組付けの始点から終点までの軌道範囲を限定するための軌道制限胴を設定する第1の工程と、前記ロボットハンドの駆動により、前記軌道制限胴内において第1の部品を基準点から3軸直進方向及び旋回、煽り方向に微動させ、第1の部品が前記第2の部品に接触することによる前記力センサの検出値が最小である教示点を探索し、前記教示点に第1の部品を移動させる第2の工程と、前記教示点を基準点として前記第2の工程を繰返すことで、第1の部品を前記組付けの終点まで移動させる第3の工程と、を有することを特徴とする。
【発明の効果】
【0016】
装置による組付け経路の教示点の自習が可能となり、作業者の教示の手間を軽減できる。教示の方法は、概略軌道の設定、カメラによるワークの撮影、あるいは簡単な座標の指定などの組合せで済むために専門知識は必ずしも必要ではなくなる。
【0017】
さらには、経時変化や各種の機差などにより教示点の絶対座標の変更が必要となる場合でも、組付け経路を自動修正することができる。このため、多関節ロボットの精密組付への適用範囲の拡大とロバスト性の向上が見込める。また、オフライン教示後の現場導入時の現合作業もおよそ不要となる。
【図面の簡単な説明】
【0018】
【図1】一実施形態に係る垂直多関節ロボットを示す斜視図である。
【図2】実施例1による部品組付け方法を説明する図である。
【図3】実施例1による軌道生成方法を説明する図である。
【図4】指し棒を用いた画像処理によって組付けの進行方向を認識する方法及び生成される軌道を説明する図である
【図5】軌道制限胴の形状例を示す図である。
【図6】軌道を探るための微動方向を説明する図である。
【図7】部品組付けのメインルーチンを示すフローチャートである。
【図8】軌道生成を伴う一回目の組付けのサブルーチンを説明するフローチャートである。
【図9】軌道の微調整を含む二回目以後の組付けのサブルーチンを示すフローチャートである。
【図10】実施例2による部品組付け方法を説明する図である。
【図11】実施例2による軌道生成方法を説明する図である。
【図12】従来例を説明する図である。
【発明を実施するための形態】
【0019】
図1に示す垂直多関節ロボットを使って、図2〜9に示すように軌道生成を自動的に行い、L字型の第1の部品1を第2の部品2へ組付ける。同様に、図10に示すように、円弧状に湾曲した第1の部品3を第2の部品4へ挿入することもできる。
【0020】
部品1を把持するロボットハンド5は、力センサ6を介して、ステレオカメラ(カメラ)7を搭載したアーム8の先端に取り付けられている。部品2は固定され、アーム8は7軸を有するが、旋回軸9と屈曲軸10以外の5つの軸は省略し不図示とした。
【0021】
制御部である画像処理部11及びロボットコントローラ12は、力センサ6とステレオカメラ7との情報を利用して垂直多関節ロボットの7軸の制御を行う。
【0022】
ステレオカメラ7は、左右カメラによる任意の特定点の視差による三角測距によって三次元座標を取得する三次元ステレオ方式システムの一部である。ここでは三次元測定方式として左右の二眼カメラによるステレオ法を記載したが、三眼型ステレオ法は勿論、レーザー投光による光切断法、等高線投影によるモアレ法を始めとする他の方式でも代用可能である。
【0023】
説明を分かり易くするために、アーム8の6軸方向のロボット座標(X,Y,Z,Xθ,Yθ,Zθ)と、組付け座標(ワールド座標)とは等しいものとする。ここでの組付け座標は、ロボットを設置した作業架台の長辺をX軸方向、短辺をY軸方向と定義する。また、Xθ,Yθ,Zθは、X,Y,Z軸のまわりの回転方向を意味する。
【0024】
上記のロボット座標(X,Y,Z,Xθ,Yθ,Zθ)と、アーム8上に実装されたステレオカメラ7の撮影三次元空間であるカメラ座標(Xc,Yc,Zc,Xcθ,Ycθ,Zcθ)との相対位置はロボットコントローラ12が把握しているものとする。従って、固定されたロボット座標と、アーム8と共に移動するカメラ座標の相対座標校正に関わる説明は省略し、以下特に明示が無い場合の座標は、ロボット座標とする。ステレオカメラ7で測定した部品1と部品2とのカメラ座標とから、部品1の部品2に対する組付け座標を求めることができる。説明を分かり易くするために、カメラ座標のZcとアーム8の中心線は同軸上にあるとする。
【0025】
画像処理部11では、部品1と部品2とでそれぞれの任意の指定点に対し、カメラ座標の三次元情報の取得が可能である。任意の指定点とは、例えば、部品1では、図2(a)の点T11、T12、T13であり、部品2では、点T21、T22、T23である。部品1と部品2の三次元座標から、部品間の相対姿勢を取得できる。
【0026】
なお、ステレオカメラ7をアーム8に実装して可動型としたが、不図示のロボットの架台に固定してもよい。ロボットのアームに実装した場合の可動型は、比較的視野が狭く、被写界深度が浅く、高精度、カメラ座標とロボット座標との校正の計算量が多い、といった傾向がある。また、組付け部の架台に固定した場合は、比較的視野が広く、被写界深度が深く、高精度を出し難く、ロボット座標との整合が容易である、といった傾向があるので、実装位置は用途に応じて適宜選定する。
【0027】
力センサ6は、例えば歪みゲージ式のセンサを利用することができるが、特に限定されない。カメラ座標(Xc,Yc,Zc)の各軸方向の直進力とモーメント力とで、合計6軸方向の力検出が可能である。検出された力は、前述の様に、ロボット座標への置き換えも可能である。ただし、一般に力センサ6と部品1の力点とは相応の距離(例えば50mm)があるので、実用ではモーメント力や押込み力Zcが支配的で、Xc,Yc軸方向の直進力は比較的小さな検出値となるので無視できる場合がある。なお、垂直多関節ロボットの代わりに、直交座標型、水平多関節、円筒座標型を始めとする他の構造によるロボットであってもよい。
【実施例1】
【0028】
図1に示すロボットを用いて、L字状の部品1を部品2に組付ける。図2は組付け工程を示すもので、(a)〜(c)は斜視図、(d)〜(h)は断面図、(i)は(d)〜(h)を重ね書きした連続図である。図2(a)と(d)は組付けの始点、(b)と(e)〜(g)は組付けの中間点、(c)と(h)は組付けの終点を示す。また図3は図2(a)と(d)と同じ組付けの始点である。
【0029】
初期設定として組付けの事前準備(第1の工程)の主要項目は以下三つである。
【0030】
第一の準備は、図2(a)に示すように、部品2の挿入面の中央であるB点付近から始まる組付けの軌道は、部品2(d)の孔断面形状等からL字状になることが分かる。そこで、図3に示すように、部品1のA点(図1参照)の軌道16を包含できる十分な大きさの軌道範囲を限定するための軌道制限胴を、L字状に配置された胴21と胴22として設定する。胴21、22を設定する方法については後述する。
【0031】
第二の準備は、不図示の遠方に位置するハンド5に把持された部品1が、図2(a)、(d)を目指して進行方向を得るために、被挿入口平面の画像Iあるいは座標Iを登録する。画像Iは、例えば図2(a)のT21からT23を含む挿入口をステレオカメラ7で撮影して得る。
【0032】
座標Iは、例えば図4(a)に示す指し棒20で部品2の被挿入口付近のB点を指し、ステレオカメラ7で撮影し、指し棒20の先端形状をパターンマッチや面積特徴などの画像処理手法よりカメラ座標を求め、ロボット座標へと変換して得る。あるいは指し棒20を使わずに、単に挿入口の中心を画像処理で算出する。図1に示す教示部13から座標Iを直接打ち込んでもよい。
【0033】
また組付けの中間点である図2(b)、(e)の状態での画像Wと、座標W等を記憶させ、判断要素の情報を増やしてもよい。
【0034】
第三の準備として、実際の組付け開始状態の図2(a)と組付け終了状態の図2(c)のそれぞれの画像について、部品1と部品2の相対位置を、ロボットハンド5を含めてステレオカメラ7で撮影する。組付けの始点と終点において部品1の座標を取得して制御部に記憶させ、それぞれを始点の画像S、終点の画像E、始点の座標S、終点の座標Eとする。ところでロボットのアーム8の制御に速度制限と発生トルク制限とを実施し、軌跡探索中の無用な干渉による機械的被害を予防する。以上で組付けの事前準備(第1の工程)は終了である。
【0035】
図2(a)、(d)の状態、即ち図3に示す組付けの始点31を目指し、B点が見える範囲で任意の不図示の遠方に位置するハンド5に把持された部品1を、被挿入口の画像Iをステレオカメラ7で探索し、あるいは座標Iの方向へアーム8を移動させる。
【0036】
始点31への到達判断は、ステレオカメラ7の現在画像が事前登録した画像Sの近傍、例えば±1mm以内となるか、現在座標が事前登録した座標Sの近傍、例えば±1mm以内となるかの何れかで実施する。
【0037】
始点31へ到達できずに被挿入口に接触し、力センサ6で接触干渉を検出した場合であって、その地点が前記の画像Wと、座標Wの近傍である時は、その場で停止し、ここを始点31として扱い、本来の始点31へ到達した場合と同等に次のステップへ移る。
【0038】
始点31から、図4(b)に示すように、任意の基準点17について、軌道制限胴内において、力センサ6の検出値が最小となる方向を探りながら進行させる(第2の工程)。この探り(探索)では、人間の手探り様に、3軸直進方向の微動と、各軸まわりの旋回、煽り方向の微動を行って一旦戻り、その中で、力センサ6の検出値が最小である方向に改めて微動(移動)させて進行を確定する。終点33へ到達するまでこれを繰返す(第3の工程)。なお、検出値の比較結果が同等であった場合は直前の移動と同一の方向へ進む。
【0039】
微動進行が確定する都度、部品1の停止点(教示点)の位置座標と力センサ6の検出値とを記憶してテーブルデータ化し、精密軌道を作成する(第4の工程)。このような探りの移動可能空間を、胴21及び胴22による軌道範囲内に制限する。
【0040】
力センサ6の検出値が過小な状況が継続される場合は、組付けが乖離していると判断して異常停止させ、微動の幅や、後述する力センサ6の受動力計算式の重み付け係数を見直して、組付けを再開する。
【0041】
図3の終点33への到達判断は、ステレオカメラ7での現状画像と組付け終点の画像Eとを比較するか、現在座標と組付け終点の座標Eとを比較するかの何れか、あるいは両方で実施し、テーブルデータを完成させる。そして、テーブルデータの座標の点間を補間計算して精密軌道を得る。以上は組付けを実施する方向、すなわち前進での軌道生成であるが、組付け終了時点から分解する方向,すなわち後退での軌道生成も可能であり、上記と逆の手順を踏む。微動により軌跡を探る方法は前進時と変わらない。この場合は分解の終点である図2(b)の状態での画像E2と、座標E2とを、分解の終点の比較判断に使用する。
【0042】
以上の一回目の組付けによって精密軌道が確立するが、アーム8は熱変化で絶対位置が経時変動し、精密な組付けの阻害要因となることがある。そのために、二回目以降(次回以降)の組付けでは、組付け中の現在座標及び力センサ6の検出値について、事前の組付けで記憶したテーブルデータと比較する。当該座標での力センサ6の検出値がテーブルデータに対して差が発生している場合には、その座標で力の差が無くなるように微動してテーブルデータの座標を書き換えて補間計算を再度実施する。このようにして、力センサ6の検出値に基づいて精密軌道を随時補正する。
【0043】
ではここから、本実施例による部品組付け方法を工程順に、これまでの説明に補填する形で述べる。図7は、F1000から開始するメインルーチンを示すフローチャートである。初期設定をした後に、一回目の組付けで人間の手探り様に組付け先を探って組付軌道(精密軌道)の座標データを生成すると同時に、その座標群に対応した力センサ6の検出値とでテーブルを作成する。二回目以降の組付けは生成した軌道に沿って行い、上記のテーブルを元に、当該座標の組付け時の力センサ6の検出値が変動した場合は軌道を補正する。
【0044】
以下に各ステップ(工程)を順に説明する。まずF1010では、各種初期設定として、画像処理部11やロボットコントローラ12へ、以下の7項目の登録が必要である。
【0045】
(1)組付けの進行方向判断用の画像Iあるいは座標I:B点が見える範囲で任意の不図示の遠方に位置するハンド5に把持された部品1を、図2(a)、(d)の位置へ向かう方向を見極める指標として、B点を含む組付け孔の画像Iをステレオカメラ7で撮影する。そして、パターンマッチや面積特徴等の探索手法で組付け進行方向としてそこへ向かう。あるいはB点の座標Iを設定してそこへ向かう。
【0046】
(2)組付け開始判断用の画像S:組付け開始位置31への到達判断に使用する。そのために、図2(a)、(d)に示す状態を画像Sとしてステレオカメラ7で撮影して記憶しておく。また組付けの中間点である図2(b)の画像Wと、座標W等を記憶させ、判断要素を増やしても良い。
【0047】
(3)組付け終了判断用の、組付け終了部の画像Eあるいは座標E:図2(c)の組付け終了時の画像Eをステレオカメラ7で撮影して記憶する。あるいは組付け終了の精密点として、図2(c)、(h)に示す状態で、座標Eを教示する。画像Eや座標Eは組付け終了部への到達判断に使用する。
【0048】
(4)軌道作成の方向D:軌道を作成する際、組付けの方向に進める(前進)か、あるいは組付け終了の状態から分解する方向に進める(後退)かを決定しておく。分解の場合は、接触離脱点の判断の為に前述の画像Wや、座標Wが有用となる。
【0049】
(5)軌道の探索の範囲と進行方向を制限する軌道制限胴の設定:部品1を部品2へ組付ける軌道を探索する範囲を制限するための胴を登録する。実際の組付軌道は、図1に示す部品1のA点が、図3の軌道16を通る。しかし組付け前の時点では、図3の中心線14から、中心線15との交点を経て中心線15へと向かうL字様の軌道であろう事までの想像に留まる。そこで、このL字を軸として、A点を含む軌道制限胴二つを胴21、胴22として仮想設定する。
【0050】
ここで胴の説明をする。精密軌道の探索をブラインド様に手探りで進めるため、探る範囲の位置制限を行わない場合は、軌道を逸してあらぬ進行方向へ向かう可能性があることが問題となる。そこで探索範囲を限定することで、軌道取得の確度を高める。
【0051】
胴の形状は、図5(a)〜(d)に示すように、メガホン、円柱、円錐、角錐等、様々な形態を想定できる。一般に直線に近い軌道で、設定座標の精度が高い程に胴の小径化が可能である。小径化とは、例えば、図5(a)に示すメガホン形態30であれば始点平面30aと終点平面30bの直径を小さくすることである。小径化により、軌道探索の空間が狭くなるために、探索の高速化が見込める。
【0052】
図3において、部品1の組付けでは、途中の軌道が屈曲や非直線部を含むと容易に予想できるがその精度は定義困難であり、その部分の探索範囲に余裕が欲しい。そこで、胴は進行方向に対して末広がりとして図5(a)のメガホン形態30を選択する。図3では、前述のようにL字形状を軸とする胴21、胴22を設定する。胴それぞれの長さDL1、DL2、底面半径DD1b、DD2b、上面半径DD1t、DD2tは部品2の寸法W1〜W5を使って推測する。胴設定の寸法精度は特に求めないが、胴寸法が小さ過ぎると目的軌道を探索できず、大き過ぎるとタクトを要したり離散するので、W1〜W5の中での最大値を超えないことが望ましい。
【0053】
即ち、少なくとも以下の設定が必要である。胴21と胴22を構成する粗寸法、胴21と22の底面中心とする点31と点32の粗座標、組付けの終点33の画像または精密座標。ここで言う「粗」とは組付軌道を「探る」という性格上、組付け精度に対して約10倍以上粗い値でよい。各胴21、22は、探索の範囲と共に組付けの方向を示唆する。その方向の概略は、図6の二点鎖線面に示すように、組付け進行の都度に軌道現在位置の法線面で二分した組付け完了方向(進行方向)である。勿論、軌道作成の方向Dが分解の場合は、その逆方向である。
【0054】
(6)ロボット駆動のインターロック:軌道を探るためにロボットハンド5を多方向へ微動させた時の干渉による機械的破損の防止のために、インターロックとしてアーム8の動作速度と発生トルクに上限を設定する。
【0055】
(7)各種定数:後述する微動の幅などの数値であるΔSs、θs1、θs2、ΔSr、θr、ΔSf、θfと、力比較の重み付け係数であるKv、Ki等を主とする数値類の定数設定。また、カウンター類のメモリゼロクリア等を実施する。
【0056】
以上が初期設定の7項目である。
【0057】
次に図7のF2000の概要を説明する。部品1を部品2に組付ける一回目であって、軌道を自動生成する。ここで、軌道生成の主要部を説明する。組付けの終点に向けて、手探り様に微少ステップで力センサ6の検出値(受動力)が最小である方向に微動した停止点(教示点)を多点抽出してテーブル化し、点間を補間計算することで軌道生成する。また、抽出された教示点に対応した上記の受動力を併せてテーブル化しておく。部品1を部品2に組付け終了した状態からの分解方向に対しても軌道は生成できるが、フロー図では説明の便宜上「組付け」方向とした。F2000の詳細は図8に詳細を記載したので、改めて後述する。
【0058】
次に図7のF1020では組付軌道生成時の異常発生の有無判別を行い、異常時はF1030のパラメータ再設定にて戻る。F1030のパラメータを再設定では、F1010で設定した図6に示す微動関係の数値であるΔSs、θs1、θs2、ΔSr、θr、ΔSf、θfや、力比較の重み付け係数であるKv、Kiを調整する。基本的に探索移動量を細分化し、計算係数の重み付けのバランスを変更する。
【0059】
次に図7のF1040の時点では軌道の生成が完了しているので、ここではF1010で実施したロボットのインターロックを解除する。
【0060】
次に図7のF3000は、F2000で自動生成された組付軌道に倣って行われる二回目以降の組付けの工程である。組付けの過程で、現在位置がF2000で作成されたテーブル座標に相当する時に、現在の力センサ6の検出値(受動力)とF2000で作成されたのテーブル受動力とを比較する。その結果、差が発生した場合はその座標で停止させて、受動力の差が無くなるように微動してテーブル座標を現在位置と置き換える。受動力が過小あるいは過大な状態が継続される場合は異常を発生する。F3000の詳細は図9詳細を記載したので、改めて後述する。
【0061】
次に図7のF1050ではF3000で異常がある場合に終了させる。F1060では部品1の組付け回数がユーザー所望の数値となるまでループさせる。F1070でメインルーチが終了する。
【0062】
以上で図7の説明は終了である。
【0063】
図8は、F2000を説明するフローチャートである。このフローは、前述したテーブルデータによる精密軌道を自動生成する方法である。F2010では後述する座標と受動力のデータテーブルのカウンタをゼロリセットする。F2020では、軌道生成の方法として、部品1を部品2に組付けていく方法(前進)と、部品1を部品2に組付けされた状態から分解していく方法(後退)との2種類から、ユーザーは任意の方法を選択する。まずは前進の場合を説明する。
【0064】
次にF2025では、図3に示す組付けの始点31を目指し、B点が見える範囲で任意の不図示の遠方に位置するハンド5に把持された部品1を、被挿入口の画像Iをステレオカメラ7で探索し、あるいは座標Iの方向へアーム8を移動させる。
【0065】
次にF2030では、現在位置を軌道の始点の座標Pn(但しn=0)として記憶する。F2040では、組付け入口方向へ直進させ、F2050では、接触したら一旦停止する。
【0066】
次のF2060が軌道生成の主要部である。現在座標を基準点として、多様な方向(6軸方向)へ微動しては基準点に戻る。その中で、力センサ6の検出値が最も少ない方向へ改めて微動し停止位置の座標を教示点として取得すると共に、座標Pnの取得の完了である最終点到達を判断する。ここで言う多様な方向とは、図6(a)、(b)、(c)に示す3種類である。すなわち、軌道進行中の現在座標である基準点17(Xp1、Yp1、Zp1、Xt1、Yt1、Zt1)に対し、直進・旋回・煽りの微動を組み合わせる。これにより、進行方向面側に向けたあらゆる方向と姿勢を生み出して、組付けや分解の力が最も小さい進行方向を探る。この微動による進行方向の探索をここでは「探り」と称す。
【0067】
図6(a)の直進微動は、大きさΔSsの移動量を煽り方向のθs1と旋回方向のθs2ずつ振って、ドーム表面を網羅する様に微動量ΔPを移動指令ベクトルΔVs1、2、3、・・、Nとして与えてシフトしていく。
【0068】
図6(b)の旋回微動は、大きさΔSrの移動量を旋回方向へθrずつ左右に振って、旋回円を網羅する方向に微動量ΔPを移動指令ベクトルΔVr1、2、3、・・、Nとして与えてシフトいく。
【0069】
図6(c)の煽り微動は、大きさΔSfの移動量を旋回方向へθfずつ振って、煽り軌道のドーム外周を網羅する様に微動量ΔPを移動指令ベクトルΔVf1、2、3、・・、Nとして与えてシフトいく。以上の直進・旋回・煽り、個々の微動は軌道を制限する胴を移動範囲の上限として1回ずつ実施する。微動の完了判断は、指令位置と現在位置との偏差パルスがほぼゼロであり、かつ力センサ6の検出値が衝突様に過大ではない旨により行う。
【0070】
微動完了後には当該点の座標と力センサ6の検出値を記憶した後、それぞれ微動前の座標へ戻る。その後、直進・旋回・煽りの各方向間で力センサ6の検出値を比較して最小となる微動方向の教示点を確定移動先として再度微動し、教示点の座標Pnと、力センサ6の検出値である受動力Qnとを記憶してテーブル化する。
【0071】
ここで、力センサ6の検出値の比較は、重要視する項目について、XYZ直線力の合成ベクトルVsa等の重み付け係数Kvと、モーメント力Vsm等の重み付け係数Kiとを設定して、下式に依る受動力Vs、Vr、Vf間で大小を比較する。
直進微動の受動力Vs=Kv×Vsa+Ki×Vsm
旋回微動の受動力Vr=Kv×Vra+Ki×Vrm
煽り微動の受動力Vf=Kv×Vfa+Ki×Vfm
【0072】
この時、これらの数値が過小な状態が連続する場合は、組付けを乖離する方向へ移動している可能性があるので、微動を方向転換するか、異常で停止させる等してもよい。
【0073】
次にF2070では,F2060の異常時にエラーとして停止させる。次にF2080では、軌道の最終点到達の判断を、ステレオカメラ7の現在画像と事前登録した組付け終了部の画像E、あるいはアーム8の現在座標と事前登録した座標Eとの比較で行う。F2110では、座標Pnのテーブルデータから点間を補間して、組付軌道Cvgを完成させる。
【0074】
次に、F2020の説明で述べた後退方向での組付軌道Cvgの作成手順を、前進方向との相違点についてのみ説明する。まずF2120では、事前登録した組付け終了部の画像E、又は座標Eのデータを元に、アーム8でロボットハンド5を介して、部品2へ組付けられている部品1を把持させる。把持した座標を教示点Pn(n=0)として記憶する。
【0075】
次にF2060での微動を経て、F2080では、後退方向から見た軌道の最終点到達の判断を実施する。ステレオカメラ7の現在画像と事前登録した組付け開始部の画像S、あるいはアーム8の現在座標と事前登録した座標Sとの比較で行う。F2140では、テーブルデータ方向の入れ替えを実施する。すなわち、「後退」で得た座標Pnと受動力Qnのテーブルの並びは、「前進」時と逆になっているためである。F2150で終了する。
【0076】
図9は、二回目以降の組付け工程であるF3000を説明するフローチャートであり、組付軌道Cvgが完成済みであることが前提である。F3010では、組付軌道Cvgに倣って組付けを開始する。F3020では、現在座標が、記憶テーブル内の座標Pnの何れかの近傍に相当するか確認する。相当する場合は次のF3030へ進む。近似の許容値は、例えば±1mm等、予め任意の数値を設定しておく。この時、力センサ6のノイズや過渡的なタイミングのずれにより誤作動発生が予測される場合は、記憶テーブル内の移動平均と比較する等してもよい。あるいは温度変化などによりアーム8の絶対座標がゆっくりと変動して、部品組付けの当たり具合もゆっくり変動する場合は記憶座標と現在座標との比較の周期を大きくすることが有効である。
【0077】
F3030では、当該座標に対応する力センサ6による現在受動力が記憶テーブル内の受動力Qnと同等付近(例えば±10%)に相当するか確認する。相当しない場合は軌道調整が必要と判断してF3050へと進む。軌道調整が不要な場合はF3040へ進み、組付軌道Cvgの終点への到達判断を実施し、到達していない場合は上のF3010へ戻って軌道に倣ったロボットの駆動を、終点到達まで継続する。
【0078】
F3050では、アーム8をその場でできるだけ速やかに停止させ、座標Pnへ戻す。F3060では、現在受動力が記憶テーブル内の受動力Qn相当になるようにF2060で説明した微動を実施し、当該の座標Pnのテーブル座標を書き換えることで軌道を微調整(補正)する。F3070では、F3060の微動中に過大、あるいは過小な力を連続的に検出して復帰不可能な場合はエラーとして停止させる。F3080で終了する。
【0079】
図7のF1010では図2(a)のB点の座標Iを登録したが、その作業を簡素化するために、図4(a)に示すように、作業者が把持した指し棒20を使う方法がある。この先端形状の登録画像(テンプレート)からパターンマッチや面積特徴の抽出等の手法でステレオカメラ7に認識させ、指し位置を三次元の座標Iとして認識させる。指し棒20の先端形状は立体的な円錐とした。平板でもよいが、カメラ角度による撮影形状の違いに注意する。認識点は四角形状の任意の2点以上(例えば対角)とすると、部品2の姿勢も抽出できるのでなおよい。前述のように、人間の手探り様に組付けを行うので、座標Iの教示精度は必ずしも要求されない。教示精度の目安は、被挿入口に対し挿入部品の半数前後が捉えられている程度の低レベルでもよい。
【実施例2】
【0080】
図1に示すロボットを用いて、図10、11に示すように、円弧状に湾曲する部位を持つ部品3を部品4へ円弧状の軌道で組付ける。組付け前の状態を図10(a)、(c)に斜視図及び断面図で示し、組付け後の状態を図10(b)、(h)に斜視図及び断面図で示す。
【0081】
軌道制限胴は、図11に示すように、メガホン形態の胴51と胴52とを仮想設定するが、双方の胴を包含する胴53の単体のみでも可能である。胴51は、上面直径DD3、長さDL3、胴52は、上面直径DD4、長さDL4、胴53は、上面直径DD5、長さDL5を有する。組付けの過程を図10(c)から(h)に断面図で示す。図10(c)の位置から(d)の位置で衝突するが、前述したF2060での探りの手法に準じて、組付けの始点61から中間点62等を経て終点63まで進む。
【符号の説明】
【0082】
1、2、3、4 部品
5 ロボットハンド
6 力センサ
7 ステレオカメラ
8 アーム
11 画像処理部
12 ロボットコントローラ
21、22、51、52、53 胴
【技術分野】
【0001】
本発明は、ロボットを用いて部品の組付けを行う部品組付け方法に関するものである。
【背景技術】
【0002】
ロボットを用いた組付け作業においては、組付け対象の部品をどの位置からどの位置へ、どういった精密軌道で動作するかをロボットへ指示する工程が必要である。このような精密軌道の生成は、直線軌道では始点と終点を、屈曲軌道の場合はさらに中間点を含めた教示点群を作成し、それらの教示点間を補間することによって成り立つ。
【0003】
例えば、特許文献1には、直線状のワークを孔に直線挿入する場合に、比較的粗な教示点から精密な教示点を得る方法が開示されている。これは、組付けの始点として、予め挿入孔入口の側壁へ接触しないレベルであって、かつ、挿入孔を確実に捉えられるレベルでの教示を比較的粗な点として手動で教示する。その後は、挿入方向に直進し、力センサのZ方向の検出値Szがしきい値Tzを超えた点、すなわち突き当たった点を挿入終点のZ座標とする。
【0004】
次に、±X方向と±Y方向で個別に微動して挿入孔の側壁へ接触させ、力センサのX方向の検出値SxとY方向の検出値Syとがしきい値以下となる点で停止する。この点は挿入孔の側壁への接触が過度と成らない点であり、これらを挿入終点のX座標、Y座標とすることで、前記の粗な教示点と比して自動的に精密な教示点を得られる。この方式によれば、オフライン教示による図面の誤差、ロボット本体の誤差との差を補正可能である。
【0005】
特許文献2には、教示点のばらつきの影響を受けずにピンを孔に直線挿入する方法が開示されている。ピンを孔周辺に接触させてピンに受ける力の変化から孔を探索し、挿入開始後はモーメントが減少する方向へ挿入を継続し、挿入方向から反力を受けて終了とする方式である。
【0006】
その他の考え方として、嵌合の接触状態を数学的な局所モデルに分解して時系列データの教示情報を取り出し、接触の遷移を局所モデルの集合体として実現する試みもなされている(特許文献3参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開昭63−162180号公報
【特許文献2】特開平7−314262号公報
【特許文献3】特開平9−198121号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記従来技術では以下のような未解決の課題がある。第1の課題は、組付軌道は直線以外に、屈曲、円弧など多岐に渡るため、ロボットによる組付けが困難なことである。例えば、特許文献1に開示された方式では、直線挿入の特定条件に限定される。すなわち基準軸(Z軸)の直線移動の突き当て後に、他の軸(XY軸)の接触が最小となる制御を行っている。このため、屈曲した部品や、円弧状の部品の場合は、途中で被挿入物と干渉して組付けは完遂できず、この方式を採用できる用途は限定される。
【0009】
第2の課題は、装置を立ち上げる作業者には、教示に専門技術や慣れの必要な場面があるということである。例えば、特許文献3に開示された方法では、数学モデルを使って軌道生成するため、作業者に熟練を要する。従って、製品周期が最短で半年程度であるデジタルカメラ等のコンシューマー製品には、段取り替えに人材と時間が必要なために、この方式を採用できない場合がある。
【0010】
さらに、付帯する課題として、教示点の絶対座標の変動に対応できないことがある。本発明者の実験によれば、アーム長600mmの7軸垂直多関節ロボットの先端部において、稼働30分後に200μmの絶対座標変動を実測した。しかしこの場合、200μm未満の精度が要求される精密組付けには、このままでは導入できない。その対応として、例えば特許文献2に開示されたように、絶対座標を重視せずに、毎回組付け時の力センサの状況を探る方式がある。しかし、1回の組み立て毎に長いタクトが必要となるために、この方式は量産性が求められる場合には適さない。
【0011】
図12は、教示点に関する必要精度を説明するもので、(a)に示すように、幅W、高さH、長さDの角柱101をロボットハンドで把持して、幅W+Δw、高さH+Δh、深さZe−Ziの角孔を持った被挿入体102に挿入するという組付け工程を想定する。
【0012】
ここでは説明を分かり易くするために、角孔の入口はXY平面に存在し、挿入方向とZ軸方向は同一とし、挿入時の角柱101のY・Zそれぞれの軸方向での挿入位置と姿勢の誤差はゼロとする。従ってこの場合の挿入開始の成功率は、角柱101の挿入の開始点Piと終了点PeのX軸方向の誤差におよそ支配されることになる。
【0013】
図12(b)に示すように、縦軸を挿入組付けの成功率、横軸をX軸座標とすれば、X軸方向が中心値Xoに対し精度Δwの範囲では、ほぼ100%の確率で組付けは成功する。しかしこれを超えると成功率は急峻に下降し、ある点を超えると挿入は不能となって挿入毎に接触干渉(衝突)する。あるいは、挿入途中で干渉力が過大となって傷や駆動系の過負荷が発生する。従って開始点Piと終了点Peは精密な教示作業が必要となる。この時のΔwは、家電等のコンシューマー製品を構成する小物部品を例にとれば20μm前後を要求されることもある。
【0014】
本発明は、ロボットを用いた組付けにおいて、直線、折れ曲がり、円弧などで多岐に渡る精密軌道を効率的に生成し、環境変動や機差にも自動的に対応できる部品組付け方法を提供することを目的とするものである。
【課題を解決するための手段】
【0015】
本発明の部品組付け方法は、カメラによって撮影した画像に基づき、力センサを有するロボットハンドによって把持された第1の部品を第2の部品に組付ける部品組付け方法において、前記カメラによって撮影された第1の部品と第2の部品の画像に基づき、組付けの始点から終点までの軌道範囲を限定するための軌道制限胴を設定する第1の工程と、前記ロボットハンドの駆動により、前記軌道制限胴内において第1の部品を基準点から3軸直進方向及び旋回、煽り方向に微動させ、第1の部品が前記第2の部品に接触することによる前記力センサの検出値が最小である教示点を探索し、前記教示点に第1の部品を移動させる第2の工程と、前記教示点を基準点として前記第2の工程を繰返すことで、第1の部品を前記組付けの終点まで移動させる第3の工程と、を有することを特徴とする。
【発明の効果】
【0016】
装置による組付け経路の教示点の自習が可能となり、作業者の教示の手間を軽減できる。教示の方法は、概略軌道の設定、カメラによるワークの撮影、あるいは簡単な座標の指定などの組合せで済むために専門知識は必ずしも必要ではなくなる。
【0017】
さらには、経時変化や各種の機差などにより教示点の絶対座標の変更が必要となる場合でも、組付け経路を自動修正することができる。このため、多関節ロボットの精密組付への適用範囲の拡大とロバスト性の向上が見込める。また、オフライン教示後の現場導入時の現合作業もおよそ不要となる。
【図面の簡単な説明】
【0018】
【図1】一実施形態に係る垂直多関節ロボットを示す斜視図である。
【図2】実施例1による部品組付け方法を説明する図である。
【図3】実施例1による軌道生成方法を説明する図である。
【図4】指し棒を用いた画像処理によって組付けの進行方向を認識する方法及び生成される軌道を説明する図である
【図5】軌道制限胴の形状例を示す図である。
【図6】軌道を探るための微動方向を説明する図である。
【図7】部品組付けのメインルーチンを示すフローチャートである。
【図8】軌道生成を伴う一回目の組付けのサブルーチンを説明するフローチャートである。
【図9】軌道の微調整を含む二回目以後の組付けのサブルーチンを示すフローチャートである。
【図10】実施例2による部品組付け方法を説明する図である。
【図11】実施例2による軌道生成方法を説明する図である。
【図12】従来例を説明する図である。
【発明を実施するための形態】
【0019】
図1に示す垂直多関節ロボットを使って、図2〜9に示すように軌道生成を自動的に行い、L字型の第1の部品1を第2の部品2へ組付ける。同様に、図10に示すように、円弧状に湾曲した第1の部品3を第2の部品4へ挿入することもできる。
【0020】
部品1を把持するロボットハンド5は、力センサ6を介して、ステレオカメラ(カメラ)7を搭載したアーム8の先端に取り付けられている。部品2は固定され、アーム8は7軸を有するが、旋回軸9と屈曲軸10以外の5つの軸は省略し不図示とした。
【0021】
制御部である画像処理部11及びロボットコントローラ12は、力センサ6とステレオカメラ7との情報を利用して垂直多関節ロボットの7軸の制御を行う。
【0022】
ステレオカメラ7は、左右カメラによる任意の特定点の視差による三角測距によって三次元座標を取得する三次元ステレオ方式システムの一部である。ここでは三次元測定方式として左右の二眼カメラによるステレオ法を記載したが、三眼型ステレオ法は勿論、レーザー投光による光切断法、等高線投影によるモアレ法を始めとする他の方式でも代用可能である。
【0023】
説明を分かり易くするために、アーム8の6軸方向のロボット座標(X,Y,Z,Xθ,Yθ,Zθ)と、組付け座標(ワールド座標)とは等しいものとする。ここでの組付け座標は、ロボットを設置した作業架台の長辺をX軸方向、短辺をY軸方向と定義する。また、Xθ,Yθ,Zθは、X,Y,Z軸のまわりの回転方向を意味する。
【0024】
上記のロボット座標(X,Y,Z,Xθ,Yθ,Zθ)と、アーム8上に実装されたステレオカメラ7の撮影三次元空間であるカメラ座標(Xc,Yc,Zc,Xcθ,Ycθ,Zcθ)との相対位置はロボットコントローラ12が把握しているものとする。従って、固定されたロボット座標と、アーム8と共に移動するカメラ座標の相対座標校正に関わる説明は省略し、以下特に明示が無い場合の座標は、ロボット座標とする。ステレオカメラ7で測定した部品1と部品2とのカメラ座標とから、部品1の部品2に対する組付け座標を求めることができる。説明を分かり易くするために、カメラ座標のZcとアーム8の中心線は同軸上にあるとする。
【0025】
画像処理部11では、部品1と部品2とでそれぞれの任意の指定点に対し、カメラ座標の三次元情報の取得が可能である。任意の指定点とは、例えば、部品1では、図2(a)の点T11、T12、T13であり、部品2では、点T21、T22、T23である。部品1と部品2の三次元座標から、部品間の相対姿勢を取得できる。
【0026】
なお、ステレオカメラ7をアーム8に実装して可動型としたが、不図示のロボットの架台に固定してもよい。ロボットのアームに実装した場合の可動型は、比較的視野が狭く、被写界深度が浅く、高精度、カメラ座標とロボット座標との校正の計算量が多い、といった傾向がある。また、組付け部の架台に固定した場合は、比較的視野が広く、被写界深度が深く、高精度を出し難く、ロボット座標との整合が容易である、といった傾向があるので、実装位置は用途に応じて適宜選定する。
【0027】
力センサ6は、例えば歪みゲージ式のセンサを利用することができるが、特に限定されない。カメラ座標(Xc,Yc,Zc)の各軸方向の直進力とモーメント力とで、合計6軸方向の力検出が可能である。検出された力は、前述の様に、ロボット座標への置き換えも可能である。ただし、一般に力センサ6と部品1の力点とは相応の距離(例えば50mm)があるので、実用ではモーメント力や押込み力Zcが支配的で、Xc,Yc軸方向の直進力は比較的小さな検出値となるので無視できる場合がある。なお、垂直多関節ロボットの代わりに、直交座標型、水平多関節、円筒座標型を始めとする他の構造によるロボットであってもよい。
【実施例1】
【0028】
図1に示すロボットを用いて、L字状の部品1を部品2に組付ける。図2は組付け工程を示すもので、(a)〜(c)は斜視図、(d)〜(h)は断面図、(i)は(d)〜(h)を重ね書きした連続図である。図2(a)と(d)は組付けの始点、(b)と(e)〜(g)は組付けの中間点、(c)と(h)は組付けの終点を示す。また図3は図2(a)と(d)と同じ組付けの始点である。
【0029】
初期設定として組付けの事前準備(第1の工程)の主要項目は以下三つである。
【0030】
第一の準備は、図2(a)に示すように、部品2の挿入面の中央であるB点付近から始まる組付けの軌道は、部品2(d)の孔断面形状等からL字状になることが分かる。そこで、図3に示すように、部品1のA点(図1参照)の軌道16を包含できる十分な大きさの軌道範囲を限定するための軌道制限胴を、L字状に配置された胴21と胴22として設定する。胴21、22を設定する方法については後述する。
【0031】
第二の準備は、不図示の遠方に位置するハンド5に把持された部品1が、図2(a)、(d)を目指して進行方向を得るために、被挿入口平面の画像Iあるいは座標Iを登録する。画像Iは、例えば図2(a)のT21からT23を含む挿入口をステレオカメラ7で撮影して得る。
【0032】
座標Iは、例えば図4(a)に示す指し棒20で部品2の被挿入口付近のB点を指し、ステレオカメラ7で撮影し、指し棒20の先端形状をパターンマッチや面積特徴などの画像処理手法よりカメラ座標を求め、ロボット座標へと変換して得る。あるいは指し棒20を使わずに、単に挿入口の中心を画像処理で算出する。図1に示す教示部13から座標Iを直接打ち込んでもよい。
【0033】
また組付けの中間点である図2(b)、(e)の状態での画像Wと、座標W等を記憶させ、判断要素の情報を増やしてもよい。
【0034】
第三の準備として、実際の組付け開始状態の図2(a)と組付け終了状態の図2(c)のそれぞれの画像について、部品1と部品2の相対位置を、ロボットハンド5を含めてステレオカメラ7で撮影する。組付けの始点と終点において部品1の座標を取得して制御部に記憶させ、それぞれを始点の画像S、終点の画像E、始点の座標S、終点の座標Eとする。ところでロボットのアーム8の制御に速度制限と発生トルク制限とを実施し、軌跡探索中の無用な干渉による機械的被害を予防する。以上で組付けの事前準備(第1の工程)は終了である。
【0035】
図2(a)、(d)の状態、即ち図3に示す組付けの始点31を目指し、B点が見える範囲で任意の不図示の遠方に位置するハンド5に把持された部品1を、被挿入口の画像Iをステレオカメラ7で探索し、あるいは座標Iの方向へアーム8を移動させる。
【0036】
始点31への到達判断は、ステレオカメラ7の現在画像が事前登録した画像Sの近傍、例えば±1mm以内となるか、現在座標が事前登録した座標Sの近傍、例えば±1mm以内となるかの何れかで実施する。
【0037】
始点31へ到達できずに被挿入口に接触し、力センサ6で接触干渉を検出した場合であって、その地点が前記の画像Wと、座標Wの近傍である時は、その場で停止し、ここを始点31として扱い、本来の始点31へ到達した場合と同等に次のステップへ移る。
【0038】
始点31から、図4(b)に示すように、任意の基準点17について、軌道制限胴内において、力センサ6の検出値が最小となる方向を探りながら進行させる(第2の工程)。この探り(探索)では、人間の手探り様に、3軸直進方向の微動と、各軸まわりの旋回、煽り方向の微動を行って一旦戻り、その中で、力センサ6の検出値が最小である方向に改めて微動(移動)させて進行を確定する。終点33へ到達するまでこれを繰返す(第3の工程)。なお、検出値の比較結果が同等であった場合は直前の移動と同一の方向へ進む。
【0039】
微動進行が確定する都度、部品1の停止点(教示点)の位置座標と力センサ6の検出値とを記憶してテーブルデータ化し、精密軌道を作成する(第4の工程)。このような探りの移動可能空間を、胴21及び胴22による軌道範囲内に制限する。
【0040】
力センサ6の検出値が過小な状況が継続される場合は、組付けが乖離していると判断して異常停止させ、微動の幅や、後述する力センサ6の受動力計算式の重み付け係数を見直して、組付けを再開する。
【0041】
図3の終点33への到達判断は、ステレオカメラ7での現状画像と組付け終点の画像Eとを比較するか、現在座標と組付け終点の座標Eとを比較するかの何れか、あるいは両方で実施し、テーブルデータを完成させる。そして、テーブルデータの座標の点間を補間計算して精密軌道を得る。以上は組付けを実施する方向、すなわち前進での軌道生成であるが、組付け終了時点から分解する方向,すなわち後退での軌道生成も可能であり、上記と逆の手順を踏む。微動により軌跡を探る方法は前進時と変わらない。この場合は分解の終点である図2(b)の状態での画像E2と、座標E2とを、分解の終点の比較判断に使用する。
【0042】
以上の一回目の組付けによって精密軌道が確立するが、アーム8は熱変化で絶対位置が経時変動し、精密な組付けの阻害要因となることがある。そのために、二回目以降(次回以降)の組付けでは、組付け中の現在座標及び力センサ6の検出値について、事前の組付けで記憶したテーブルデータと比較する。当該座標での力センサ6の検出値がテーブルデータに対して差が発生している場合には、その座標で力の差が無くなるように微動してテーブルデータの座標を書き換えて補間計算を再度実施する。このようにして、力センサ6の検出値に基づいて精密軌道を随時補正する。
【0043】
ではここから、本実施例による部品組付け方法を工程順に、これまでの説明に補填する形で述べる。図7は、F1000から開始するメインルーチンを示すフローチャートである。初期設定をした後に、一回目の組付けで人間の手探り様に組付け先を探って組付軌道(精密軌道)の座標データを生成すると同時に、その座標群に対応した力センサ6の検出値とでテーブルを作成する。二回目以降の組付けは生成した軌道に沿って行い、上記のテーブルを元に、当該座標の組付け時の力センサ6の検出値が変動した場合は軌道を補正する。
【0044】
以下に各ステップ(工程)を順に説明する。まずF1010では、各種初期設定として、画像処理部11やロボットコントローラ12へ、以下の7項目の登録が必要である。
【0045】
(1)組付けの進行方向判断用の画像Iあるいは座標I:B点が見える範囲で任意の不図示の遠方に位置するハンド5に把持された部品1を、図2(a)、(d)の位置へ向かう方向を見極める指標として、B点を含む組付け孔の画像Iをステレオカメラ7で撮影する。そして、パターンマッチや面積特徴等の探索手法で組付け進行方向としてそこへ向かう。あるいはB点の座標Iを設定してそこへ向かう。
【0046】
(2)組付け開始判断用の画像S:組付け開始位置31への到達判断に使用する。そのために、図2(a)、(d)に示す状態を画像Sとしてステレオカメラ7で撮影して記憶しておく。また組付けの中間点である図2(b)の画像Wと、座標W等を記憶させ、判断要素を増やしても良い。
【0047】
(3)組付け終了判断用の、組付け終了部の画像Eあるいは座標E:図2(c)の組付け終了時の画像Eをステレオカメラ7で撮影して記憶する。あるいは組付け終了の精密点として、図2(c)、(h)に示す状態で、座標Eを教示する。画像Eや座標Eは組付け終了部への到達判断に使用する。
【0048】
(4)軌道作成の方向D:軌道を作成する際、組付けの方向に進める(前進)か、あるいは組付け終了の状態から分解する方向に進める(後退)かを決定しておく。分解の場合は、接触離脱点の判断の為に前述の画像Wや、座標Wが有用となる。
【0049】
(5)軌道の探索の範囲と進行方向を制限する軌道制限胴の設定:部品1を部品2へ組付ける軌道を探索する範囲を制限するための胴を登録する。実際の組付軌道は、図1に示す部品1のA点が、図3の軌道16を通る。しかし組付け前の時点では、図3の中心線14から、中心線15との交点を経て中心線15へと向かうL字様の軌道であろう事までの想像に留まる。そこで、このL字を軸として、A点を含む軌道制限胴二つを胴21、胴22として仮想設定する。
【0050】
ここで胴の説明をする。精密軌道の探索をブラインド様に手探りで進めるため、探る範囲の位置制限を行わない場合は、軌道を逸してあらぬ進行方向へ向かう可能性があることが問題となる。そこで探索範囲を限定することで、軌道取得の確度を高める。
【0051】
胴の形状は、図5(a)〜(d)に示すように、メガホン、円柱、円錐、角錐等、様々な形態を想定できる。一般に直線に近い軌道で、設定座標の精度が高い程に胴の小径化が可能である。小径化とは、例えば、図5(a)に示すメガホン形態30であれば始点平面30aと終点平面30bの直径を小さくすることである。小径化により、軌道探索の空間が狭くなるために、探索の高速化が見込める。
【0052】
図3において、部品1の組付けでは、途中の軌道が屈曲や非直線部を含むと容易に予想できるがその精度は定義困難であり、その部分の探索範囲に余裕が欲しい。そこで、胴は進行方向に対して末広がりとして図5(a)のメガホン形態30を選択する。図3では、前述のようにL字形状を軸とする胴21、胴22を設定する。胴それぞれの長さDL1、DL2、底面半径DD1b、DD2b、上面半径DD1t、DD2tは部品2の寸法W1〜W5を使って推測する。胴設定の寸法精度は特に求めないが、胴寸法が小さ過ぎると目的軌道を探索できず、大き過ぎるとタクトを要したり離散するので、W1〜W5の中での最大値を超えないことが望ましい。
【0053】
即ち、少なくとも以下の設定が必要である。胴21と胴22を構成する粗寸法、胴21と22の底面中心とする点31と点32の粗座標、組付けの終点33の画像または精密座標。ここで言う「粗」とは組付軌道を「探る」という性格上、組付け精度に対して約10倍以上粗い値でよい。各胴21、22は、探索の範囲と共に組付けの方向を示唆する。その方向の概略は、図6の二点鎖線面に示すように、組付け進行の都度に軌道現在位置の法線面で二分した組付け完了方向(進行方向)である。勿論、軌道作成の方向Dが分解の場合は、その逆方向である。
【0054】
(6)ロボット駆動のインターロック:軌道を探るためにロボットハンド5を多方向へ微動させた時の干渉による機械的破損の防止のために、インターロックとしてアーム8の動作速度と発生トルクに上限を設定する。
【0055】
(7)各種定数:後述する微動の幅などの数値であるΔSs、θs1、θs2、ΔSr、θr、ΔSf、θfと、力比較の重み付け係数であるKv、Ki等を主とする数値類の定数設定。また、カウンター類のメモリゼロクリア等を実施する。
【0056】
以上が初期設定の7項目である。
【0057】
次に図7のF2000の概要を説明する。部品1を部品2に組付ける一回目であって、軌道を自動生成する。ここで、軌道生成の主要部を説明する。組付けの終点に向けて、手探り様に微少ステップで力センサ6の検出値(受動力)が最小である方向に微動した停止点(教示点)を多点抽出してテーブル化し、点間を補間計算することで軌道生成する。また、抽出された教示点に対応した上記の受動力を併せてテーブル化しておく。部品1を部品2に組付け終了した状態からの分解方向に対しても軌道は生成できるが、フロー図では説明の便宜上「組付け」方向とした。F2000の詳細は図8に詳細を記載したので、改めて後述する。
【0058】
次に図7のF1020では組付軌道生成時の異常発生の有無判別を行い、異常時はF1030のパラメータ再設定にて戻る。F1030のパラメータを再設定では、F1010で設定した図6に示す微動関係の数値であるΔSs、θs1、θs2、ΔSr、θr、ΔSf、θfや、力比較の重み付け係数であるKv、Kiを調整する。基本的に探索移動量を細分化し、計算係数の重み付けのバランスを変更する。
【0059】
次に図7のF1040の時点では軌道の生成が完了しているので、ここではF1010で実施したロボットのインターロックを解除する。
【0060】
次に図7のF3000は、F2000で自動生成された組付軌道に倣って行われる二回目以降の組付けの工程である。組付けの過程で、現在位置がF2000で作成されたテーブル座標に相当する時に、現在の力センサ6の検出値(受動力)とF2000で作成されたのテーブル受動力とを比較する。その結果、差が発生した場合はその座標で停止させて、受動力の差が無くなるように微動してテーブル座標を現在位置と置き換える。受動力が過小あるいは過大な状態が継続される場合は異常を発生する。F3000の詳細は図9詳細を記載したので、改めて後述する。
【0061】
次に図7のF1050ではF3000で異常がある場合に終了させる。F1060では部品1の組付け回数がユーザー所望の数値となるまでループさせる。F1070でメインルーチが終了する。
【0062】
以上で図7の説明は終了である。
【0063】
図8は、F2000を説明するフローチャートである。このフローは、前述したテーブルデータによる精密軌道を自動生成する方法である。F2010では後述する座標と受動力のデータテーブルのカウンタをゼロリセットする。F2020では、軌道生成の方法として、部品1を部品2に組付けていく方法(前進)と、部品1を部品2に組付けされた状態から分解していく方法(後退)との2種類から、ユーザーは任意の方法を選択する。まずは前進の場合を説明する。
【0064】
次にF2025では、図3に示す組付けの始点31を目指し、B点が見える範囲で任意の不図示の遠方に位置するハンド5に把持された部品1を、被挿入口の画像Iをステレオカメラ7で探索し、あるいは座標Iの方向へアーム8を移動させる。
【0065】
次にF2030では、現在位置を軌道の始点の座標Pn(但しn=0)として記憶する。F2040では、組付け入口方向へ直進させ、F2050では、接触したら一旦停止する。
【0066】
次のF2060が軌道生成の主要部である。現在座標を基準点として、多様な方向(6軸方向)へ微動しては基準点に戻る。その中で、力センサ6の検出値が最も少ない方向へ改めて微動し停止位置の座標を教示点として取得すると共に、座標Pnの取得の完了である最終点到達を判断する。ここで言う多様な方向とは、図6(a)、(b)、(c)に示す3種類である。すなわち、軌道進行中の現在座標である基準点17(Xp1、Yp1、Zp1、Xt1、Yt1、Zt1)に対し、直進・旋回・煽りの微動を組み合わせる。これにより、進行方向面側に向けたあらゆる方向と姿勢を生み出して、組付けや分解の力が最も小さい進行方向を探る。この微動による進行方向の探索をここでは「探り」と称す。
【0067】
図6(a)の直進微動は、大きさΔSsの移動量を煽り方向のθs1と旋回方向のθs2ずつ振って、ドーム表面を網羅する様に微動量ΔPを移動指令ベクトルΔVs1、2、3、・・、Nとして与えてシフトしていく。
【0068】
図6(b)の旋回微動は、大きさΔSrの移動量を旋回方向へθrずつ左右に振って、旋回円を網羅する方向に微動量ΔPを移動指令ベクトルΔVr1、2、3、・・、Nとして与えてシフトいく。
【0069】
図6(c)の煽り微動は、大きさΔSfの移動量を旋回方向へθfずつ振って、煽り軌道のドーム外周を網羅する様に微動量ΔPを移動指令ベクトルΔVf1、2、3、・・、Nとして与えてシフトいく。以上の直進・旋回・煽り、個々の微動は軌道を制限する胴を移動範囲の上限として1回ずつ実施する。微動の完了判断は、指令位置と現在位置との偏差パルスがほぼゼロであり、かつ力センサ6の検出値が衝突様に過大ではない旨により行う。
【0070】
微動完了後には当該点の座標と力センサ6の検出値を記憶した後、それぞれ微動前の座標へ戻る。その後、直進・旋回・煽りの各方向間で力センサ6の検出値を比較して最小となる微動方向の教示点を確定移動先として再度微動し、教示点の座標Pnと、力センサ6の検出値である受動力Qnとを記憶してテーブル化する。
【0071】
ここで、力センサ6の検出値の比較は、重要視する項目について、XYZ直線力の合成ベクトルVsa等の重み付け係数Kvと、モーメント力Vsm等の重み付け係数Kiとを設定して、下式に依る受動力Vs、Vr、Vf間で大小を比較する。
直進微動の受動力Vs=Kv×Vsa+Ki×Vsm
旋回微動の受動力Vr=Kv×Vra+Ki×Vrm
煽り微動の受動力Vf=Kv×Vfa+Ki×Vfm
【0072】
この時、これらの数値が過小な状態が連続する場合は、組付けを乖離する方向へ移動している可能性があるので、微動を方向転換するか、異常で停止させる等してもよい。
【0073】
次にF2070では,F2060の異常時にエラーとして停止させる。次にF2080では、軌道の最終点到達の判断を、ステレオカメラ7の現在画像と事前登録した組付け終了部の画像E、あるいはアーム8の現在座標と事前登録した座標Eとの比較で行う。F2110では、座標Pnのテーブルデータから点間を補間して、組付軌道Cvgを完成させる。
【0074】
次に、F2020の説明で述べた後退方向での組付軌道Cvgの作成手順を、前進方向との相違点についてのみ説明する。まずF2120では、事前登録した組付け終了部の画像E、又は座標Eのデータを元に、アーム8でロボットハンド5を介して、部品2へ組付けられている部品1を把持させる。把持した座標を教示点Pn(n=0)として記憶する。
【0075】
次にF2060での微動を経て、F2080では、後退方向から見た軌道の最終点到達の判断を実施する。ステレオカメラ7の現在画像と事前登録した組付け開始部の画像S、あるいはアーム8の現在座標と事前登録した座標Sとの比較で行う。F2140では、テーブルデータ方向の入れ替えを実施する。すなわち、「後退」で得た座標Pnと受動力Qnのテーブルの並びは、「前進」時と逆になっているためである。F2150で終了する。
【0076】
図9は、二回目以降の組付け工程であるF3000を説明するフローチャートであり、組付軌道Cvgが完成済みであることが前提である。F3010では、組付軌道Cvgに倣って組付けを開始する。F3020では、現在座標が、記憶テーブル内の座標Pnの何れかの近傍に相当するか確認する。相当する場合は次のF3030へ進む。近似の許容値は、例えば±1mm等、予め任意の数値を設定しておく。この時、力センサ6のノイズや過渡的なタイミングのずれにより誤作動発生が予測される場合は、記憶テーブル内の移動平均と比較する等してもよい。あるいは温度変化などによりアーム8の絶対座標がゆっくりと変動して、部品組付けの当たり具合もゆっくり変動する場合は記憶座標と現在座標との比較の周期を大きくすることが有効である。
【0077】
F3030では、当該座標に対応する力センサ6による現在受動力が記憶テーブル内の受動力Qnと同等付近(例えば±10%)に相当するか確認する。相当しない場合は軌道調整が必要と判断してF3050へと進む。軌道調整が不要な場合はF3040へ進み、組付軌道Cvgの終点への到達判断を実施し、到達していない場合は上のF3010へ戻って軌道に倣ったロボットの駆動を、終点到達まで継続する。
【0078】
F3050では、アーム8をその場でできるだけ速やかに停止させ、座標Pnへ戻す。F3060では、現在受動力が記憶テーブル内の受動力Qn相当になるようにF2060で説明した微動を実施し、当該の座標Pnのテーブル座標を書き換えることで軌道を微調整(補正)する。F3070では、F3060の微動中に過大、あるいは過小な力を連続的に検出して復帰不可能な場合はエラーとして停止させる。F3080で終了する。
【0079】
図7のF1010では図2(a)のB点の座標Iを登録したが、その作業を簡素化するために、図4(a)に示すように、作業者が把持した指し棒20を使う方法がある。この先端形状の登録画像(テンプレート)からパターンマッチや面積特徴の抽出等の手法でステレオカメラ7に認識させ、指し位置を三次元の座標Iとして認識させる。指し棒20の先端形状は立体的な円錐とした。平板でもよいが、カメラ角度による撮影形状の違いに注意する。認識点は四角形状の任意の2点以上(例えば対角)とすると、部品2の姿勢も抽出できるのでなおよい。前述のように、人間の手探り様に組付けを行うので、座標Iの教示精度は必ずしも要求されない。教示精度の目安は、被挿入口に対し挿入部品の半数前後が捉えられている程度の低レベルでもよい。
【実施例2】
【0080】
図1に示すロボットを用いて、図10、11に示すように、円弧状に湾曲する部位を持つ部品3を部品4へ円弧状の軌道で組付ける。組付け前の状態を図10(a)、(c)に斜視図及び断面図で示し、組付け後の状態を図10(b)、(h)に斜視図及び断面図で示す。
【0081】
軌道制限胴は、図11に示すように、メガホン形態の胴51と胴52とを仮想設定するが、双方の胴を包含する胴53の単体のみでも可能である。胴51は、上面直径DD3、長さDL3、胴52は、上面直径DD4、長さDL4、胴53は、上面直径DD5、長さDL5を有する。組付けの過程を図10(c)から(h)に断面図で示す。図10(c)の位置から(d)の位置で衝突するが、前述したF2060での探りの手法に準じて、組付けの始点61から中間点62等を経て終点63まで進む。
【符号の説明】
【0082】
1、2、3、4 部品
5 ロボットハンド
6 力センサ
7 ステレオカメラ
8 アーム
11 画像処理部
12 ロボットコントローラ
21、22、51、52、53 胴
【特許請求の範囲】
【請求項1】
カメラによって撮影した画像に基づき、力センサを有するロボットハンドによって把持された第1の部品を第2の部品に組付ける部品組付け方法において、
前記カメラによって撮影された第1の部品と第2の部品の画像に基づき、組付けの始点から終点までの軌道範囲を限定するための軌道制限胴を設定する第1の工程と、
前記ロボットハンドの駆動により、前記軌道制限胴内において第1の部品を基準点から3軸直進方向及び旋回、煽り方向に微動させ、第1の部品が前記第2の部品に接触することによる前記力センサの検出値が最小である教示点を探索し、前記教示点に第1の部品を移動させる第2の工程と、
前記教示点を基準点として前記第2の工程を繰返すことで、第1の部品を前記組付けの終点まで移動させる第3の工程と、を有することを特徴とする部品組付け方法。
【請求項2】
前記教示点の位置座標を前記ロボットハンドの制御部へ記憶させ、点間を補間計算することで精密軌道を作成する第4の工程を有し、
次回以降の組付けにおいては、前記ロボットハンドの駆動により、前記精密軌道に沿って第1の部品を移動させることを特徴とする請求項1に記載の部品組付け方法。
【請求項3】
次回以降の組付けにおいて、前記精密軌道に沿って第1の部品を移動させたときの前記力センサの検出値に基づいて、前記精密軌道を補正することを特徴とする請求項2に記載の部品組付け方法。
【請求項1】
カメラによって撮影した画像に基づき、力センサを有するロボットハンドによって把持された第1の部品を第2の部品に組付ける部品組付け方法において、
前記カメラによって撮影された第1の部品と第2の部品の画像に基づき、組付けの始点から終点までの軌道範囲を限定するための軌道制限胴を設定する第1の工程と、
前記ロボットハンドの駆動により、前記軌道制限胴内において第1の部品を基準点から3軸直進方向及び旋回、煽り方向に微動させ、第1の部品が前記第2の部品に接触することによる前記力センサの検出値が最小である教示点を探索し、前記教示点に第1の部品を移動させる第2の工程と、
前記教示点を基準点として前記第2の工程を繰返すことで、第1の部品を前記組付けの終点まで移動させる第3の工程と、を有することを特徴とする部品組付け方法。
【請求項2】
前記教示点の位置座標を前記ロボットハンドの制御部へ記憶させ、点間を補間計算することで精密軌道を作成する第4の工程を有し、
次回以降の組付けにおいては、前記ロボットハンドの駆動により、前記精密軌道に沿って第1の部品を移動させることを特徴とする請求項1に記載の部品組付け方法。
【請求項3】
次回以降の組付けにおいて、前記精密軌道に沿って第1の部品を移動させたときの前記力センサの検出値に基づいて、前記精密軌道を補正することを特徴とする請求項2に記載の部品組付け方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−11315(P2011−11315A)
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2009−159388(P2009−159388)
【出願日】平成21年7月6日(2009.7.6)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願日】平成21年7月6日(2009.7.6)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]