(57)【特許請求の範囲】
【請求項１】
三次元測定機によって撮影した画像に基づき、少なくともモーメント力及び押し込み力を検知する力センサを有するロボットハンドによって把持された第１の部品を第２の部品に組付ける部品組付け方法であって、
前記三次元測定機によって撮影された第１の部品と第２の部品の画像に基づき、組付けの始点から終点までの軌道範囲を限定するための、前記第１の部品の進行方向に対して末広がりの軌道制限胴を設定する第１の工程と、
前記ロボットハンドの駆動により、前記末広がりの軌道制限胴内において第１の部品を基準点から３軸直進方向及び旋回、煽り方向に微動させ、第１の部品が前記第２の部品に接触することによる前記力センサの検出値が最小である教示点を探索し、前記教示点に第１の部品を移動させる第２の工程と、
前記教示点を基準点として前記第２の工程を繰返すことで、第１の部品を前記組付けの終点まで移動させる第３の工程と、を有することを特徴とする部品組付け方法。
【請求項２】
前記教示点の位置座標を前記ロボットハンドの制御部へ記憶させ、点間を補間計算することで精密軌道を作成する第４の工程を有し、
次回以降の組付けにおいては、前記ロボットハンドの駆動により、前記精密軌道に沿って第１の部品を移動させることを特徴とする請求項１に記載の部品組付け方法。
【請求項３】
次回以降の組付けにおいて、前記精密軌道に沿って第１の部品を移動させたときの前記力センサの検出値に基づいて、前記精密軌道を補正することを特徴とする請求項２に記載の部品組付け方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを用いて部品の組付けを行う部品組付け方法に関するものである。
【背景技術】
【０００２】
ロボットを用いた組付け作業においては、組付け対象の部品をどの位置からどの位置へ、どういった精密軌道で動作するかをロボットへ指示する工程が必要である。このような精密軌道の生成は、直線軌道では始点と終点を、屈曲軌道の場合はさらに中間点を含めた教示点群を作成し、それらの教示点間を補間することによって成り立つ。
【０００３】
例えば、特許文献１には、直線状のワークを孔に直線挿入する場合に、比較的粗な教示点から精密な教示点を得る方法が開示されている。これは、組付けの始点として、予め挿入孔入口の側壁へ接触しないレベルであって、かつ、挿入孔を確実に捉えられるレベルでの教示を比較的粗な点として手動で教示する。その後は、挿入方向に直進し、力センサのＺ方向の検出値Ｓｚがしきい値Ｔｚを超えた点、すなわち突き当たった点を挿入終点のＺ座標とする。
【０００４】
次に、±Ｘ方向と±Ｙ方向で個別に微動して挿入孔の側壁へ接触させ、力センサのＸ方向の検出値ＳｘとＹ方向の検出値Ｓｙとがしきい値以下となる点で停止する。この点は挿入孔の側壁への接触が過度と成らない点であり、これらを挿入終点のＸ座標、Ｙ座標とすることで、前記の粗な教示点と比して自動的に精密な教示点を得られる。この方式によれば、オフライン教示による図面の誤差、ロボット本体の誤差との差を補正可能である。
【０００５】
特許文献２には、教示点のばらつきの影響を受けずにピンを孔に直線挿入する方法が開示されている。ピンを孔周辺に接触させてピンに受ける力の変化から孔を探索し、挿入開始後はモーメントが減少する方向へ挿入を継続し、挿入方向から反力を受けて終了とする方式である。
【０００６】
その他の考え方として、嵌合の接触状態を数学的な局所モデルに分解して時系列データの教示情報を取り出し、接触の遷移を局所モデルの集合体として実現する試みもなされている（特許文献３参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開昭６３−１６２１８０号公報
【特許文献２】特開平７−３１４２６２号公報
【特許文献３】特開平９−１９８１２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記従来技術では以下のような未解決の課題がある。第１の課題は、組付軌道は直線以外に、屈曲、円弧など多岐に渡るため、ロボットによる組付けが困難なことである。例えば、特許文献１に開示された方式では、直線挿入の特定条件に限定される。すなわち基準軸（Ｚ軸）の直線移動の突き当て後に、他の軸（ＸＹ軸）の接触が最小となる制御を行っている。このため、屈曲した部品や、円弧状の部品の場合は、途中で被挿入物と干渉して組付けは完遂できず、この方式を採用できる用途は限定される。
【０００９】
第２の課題は、装置を立ち上げる作業者には、教示に専門技術や慣れの必要な場面があるということである。例えば、特許文献３に開示された方法では、数学モデルを使って軌道生成するため、作業者に熟練を要する。従って、製品周期が最短で半年程度であるデジタルカメラ等のコンシューマー製品には、段取り替えに人材と時間が必要なために、この方式を採用できない場合がある。
【００１０】
さらに、付帯する課題として、教示点の絶対座標の変動に対応できないことがある。本発明者の実験によれば、アーム長６００ｍｍの７軸垂直多関節ロボットの先端部において、稼働３０分後に２００μｍの絶対座標変動を実測した。しかしこの場合、２００μｍ未満の精度が要求される精密組付けには、このままでは導入できない。その対応として、例えば特許文献２に開示されたように、絶対座標を重視せずに、毎回組付け時の力センサの状況を探る方式がある。しかし、１回の組み立て毎に長いタクトが必要となるために、この方式は量産性が求められる場合には適さない。
【００１１】
図１２は、教示点に関する必要精度を説明するもので、（ａ）に示すように、幅Ｗ、高さＨ、長さＤの角柱１０１をロボットハンドで把持して、幅Ｗ＋Δｗ、高さＨ＋Δｈ、深さＺｅ−Ｚｉの角孔を持った被挿入体１０２に挿入するという組付け工程を想定する。
【００１２】
ここでは説明を分かり易くするために、角孔の入口はＸＹ平面に存在し、挿入方向とＺ軸方向は同一とし、挿入時の角柱１０１のＹ・Ｚそれぞれの軸方向での挿入位置と姿勢の誤差はゼロとする。従ってこの場合の挿入開始の成功率は、角柱１０１の挿入の開始点Ｐｉと終了点ＰｅのＸ軸方向の誤差におよそ支配されることになる。
【００１３】
図１２（ｂ）に示すように、縦軸を挿入組付けの成功率、横軸をＸ軸座標とすれば、Ｘ軸方向が中心値Ｘｏに対し精度Δｗの範囲では、ほぼ１００％の確率で組付けは成功する。しかしこれを超えると成功率は急峻に下降し、ある点を超えると挿入は不能となって挿入毎に接触干渉（衝突）する。あるいは、挿入途中で干渉力が過大となって傷や駆動系の過負荷が発生する。従って開始点Ｐｉと終了点Ｐｅは精密な教示作業が必要となる。この時のΔｗは、家電等のコンシューマー製品を構成する小物部品を例にとれば２０μｍ前後を要求されることもある。
【００１４】
本発明は、ロボットを用いた組付けにおいて、直線、折れ曲がり、円弧などで多岐に渡る精密軌道を効率的に生成し、環境変動や機差にも自動的に対応できる部品組付け方法を提供することを目的とするものである。
【課題を解決するための手段】
【００１５】
本発明の部品組付け方法は、三次元測定機によって撮影した画像に基づき、少なくともモーメント力及び押し込み力を検知する力センサを有するロボットハンドによって把持された第１の部品を第２の部品に組付ける部品組付け方法であって、前記三次元測定機によって撮影された第１の部品と第２の部品の画像に基づき、組付けの始点から終点までの軌道範囲を限定するための、前記第１の部品の進行方向に対して末広がりの軌道制限胴を設定する第１の工程と、前記ロボットハンドの駆動により、前記末広がりの軌道制限胴内において第１の部品を基準点から３軸直進方向及び旋回、煽り方向に微動させ、第１の部品が前記第２の部品に接触することによる前記力センサの検出値が最小である教示点を探索し、前記教示点に第１の部品を移動させる第２の工程と、前記教示点を基準点として前記第２の工程を繰返すことで、第１の部品を前記組付けの終点まで移動させる第３の工程と、を有することを特徴とする。
【発明の効果】
【００１６】
装置による組付け経路の教示点の自習が可能となり、作業者の教示の手間を軽減できる。教示の方法は、概略軌道の設定、カメラによるワークの撮影、あるいは簡単な座標の指定などの組合せで済むために専門知識は必ずしも必要ではなくなる。
【００１７】
さらには、経時変化や各種の機差などにより教示点の絶対座標の変更が必要となる場合でも、組付け経路を自動修正することができる。このため、多関節ロボットの精密組付への適用範囲の拡大とロバスト性の向上が見込める。また、オフライン教示後の現場導入時の現合作業もおよそ不要となる。
【図面の簡単な説明】
【００１８】
【図１】一実施形態に係る垂直多関節ロボットを示す斜視図である。
【図２】実施例１による部品組付け方法を説明する図である。
【図３】実施例１による軌道生成方法を説明する図である。
【図４】指し棒を用いた画像処理によって組付けの進行方向を認識する方法及び生成される軌道を説明する図である
【図５】軌道制限胴の形状例を示す図である。
【図６】軌道を探るための微動方向を説明する図である。
【図７】部品組付けのメインルーチンを示すフローチャートである。
【図８】軌道生成を伴う一回目の組付けのサブルーチンを説明するフローチャートである。
【図９】軌道の微調整を含む二回目以後の組付けのサブルーチンを示すフローチャートである。
【図１０】実施例２による部品組付け方法を説明する図である。
【図１１】実施例２による軌道生成方法を説明する図である。
【図１２】従来例を説明する図である。
【発明を実施するための形態】
【００１９】
図１に示す垂直多関節ロボットを使って、図２〜９に示すように軌道生成を自動的に行い、Ｌ字型の第１の部品１を第２の部品２へ組付ける。同様に、図１０に示すように、円弧状に湾曲した第１の部品３を第２の部品４へ挿入することもできる。
【００２０】
部品１を把持するロボットハンド５は、力センサ６を介して、ステレオカメラ（カメラ）７を搭載したアーム８の先端に取り付けられている。部品２は固定され、アーム８は７軸を有するが、旋回軸９と屈曲軸１０以外の５つの軸は省略し不図示とした。
【００２１】
制御部である画像処理部１１及びロボットコントローラ１２は、力センサ６とステレオカメラ７との情報を利用して垂直多関節ロボットの７軸の制御を行う。
【００２２】
ステレオカメラ７は、左右カメラによる任意の特定点の視差による三角測距によって三次元座標を取得する三次元ステレオ方式システムの一部である。ここでは三次元測定方式として左右の二眼カメラによるステレオ法を記載したが、三眼型ステレオ法は勿論、レーザー投光による光切断法、等高線投影によるモアレ法を始めとする他の方式でも代用可能である。
【００２３】
説明を分かり易くするために、アーム８の６軸方向のロボット座標（Ｘ，Ｙ，Ｚ，Ｘθ，Ｙθ，Ｚθ）と、組付け座標（ワールド座標）とは等しいものとする。ここでの組付け座標は、ロボットを設置した作業架台の長辺をＸ軸方向、短辺をＹ軸方向と定義する。また、Ｘθ，Ｙθ，Ｚθは、Ｘ，Ｙ，Ｚ軸のまわりの回転方向を意味する。
【００２４】
上記のロボット座標（Ｘ，Ｙ，Ｚ，Ｘθ，Ｙθ，Ｚθ）と、アーム８上に実装されたステレオカメラ７の撮影三次元空間であるカメラ座標（Ｘｃ，Ｙｃ，Ｚｃ，Ｘｃθ，Ｙｃθ，Ｚｃθ）との相対位置はロボットコントローラ１２が把握しているものとする。従って、固定されたロボット座標と、アーム８と共に移動するカメラ座標の相対座標校正に関わる説明は省略し、以下特に明示が無い場合の座標は、ロボット座標とする。ステレオカメラ７で測定した部品１と部品２とのカメラ座標とから、部品１の部品２に対する組付け座標を求めることができる。説明を分かり易くするために、カメラ座標のＺｃとアーム８の中心線は同軸上にあるとする。
【００２５】
画像処理部１１では、部品１と部品２とでそれぞれの任意の指定点に対し、カメラ座標の三次元情報の取得が可能である。任意の指定点とは、例えば、部品１では、図２（ａ）の点Ｔ１１、Ｔ１２、Ｔ１３であり、部品２では、点Ｔ２１、Ｔ２２、Ｔ２３である。部品１と部品２の三次元座標から、部品間の相対姿勢を取得できる。
【００２６】
なお、ステレオカメラ７をアーム８に実装して可動型としたが、不図示のロボットの架台に固定してもよい。ロボットのアームに実装した場合の可動型は、比較的視野が狭く、被写界深度が浅く、高精度、カメラ座標とロボット座標との校正の計算量が多い、といった傾向がある。また、組付け部の架台に固定した場合は、比較的視野が広く、被写界深度が深く、高精度を出し難く、ロボット座標との整合が容易である、といった傾向があるので、実装位置は用途に応じて適宜選定する。
【００２７】
力センサ６は、例えば歪みゲージ式のセンサを利用することができるが、特に限定されない。カメラ座標（Ｘｃ，Ｙｃ，Ｚｃ）の各軸方向の直進力とモーメント力とで、合計６軸方向の力検出が可能である。検出された力は、前述の様に、ロボット座標への置き換えも可能である。ただし、一般に力センサ６と部品１の力点とは相応の距離（例えば５０ｍｍ）があるので、実用ではモーメント力や押込み力Ｚｃが支配的で、Ｘｃ，Ｙｃ軸方向の直進力は比較的小さな検出値となるので無視できる場合がある。なお、垂直多関節ロボットの代わりに、直交座標型、水平多関節、円筒座標型を始めとする他の構造によるロボットであってもよい。
【実施例１】
【００２８】
図１に示すロボットを用いて、Ｌ字状の部品１を部品２に組付ける。図２は組付け工程を示すもので、（ａ）〜（ｃ）は斜視図、（ｄ）〜（ｈ）は断面図、（ｉ）は（ｄ）〜（ｈ）を重ね書きした連続図である。図２（ａ）と（ｄ）は組付けの始点、（ｂ）と（ｅ）〜（ｇ）は組付けの中間点、（ｃ）と（ｈ）は組付けの終点を示す。また図３は図２（ａ）と（ｄ）と同じ組付けの始点である。
【００２９】
初期設定として組付けの事前準備（第１の工程）の主要項目は以下三つである。
【００３０】
第一の準備は、図２（ａ）に示すように、部品２の挿入面の中央であるＢ点付近から始まる組付けの軌道は、部品２（ｄ）の孔断面形状等からＬ字状になることが分かる。そこで、図３に示すように、部品１のＡ点（図１参照）の軌道１６を包含できる十分な大きさの軌道範囲を限定するための軌道制限胴を、Ｌ字状に配置された胴２１と胴２２として設定する。胴２１、２２を設定する方法については後述する。
【００３１】
第二の準備は、不図示の遠方に位置するハンド５に把持された部品１が、図２（ａ）、（ｄ）を目指して進行方向を得るために、被挿入口平面の画像Ｉあるいは座標Ｉを登録する。画像Ｉは、例えば図２（ａ）のＴ２１からＴ２３を含む挿入口をステレオカメラ７で撮影して得る。
【００３２】
座標Ｉは、例えば図４（ａ）に示す指し棒２０で部品２の被挿入口付近のＢ点を指し、ステレオカメラ７で撮影し、指し棒２０の先端形状をパターンマッチや面積特徴などの画像処理手法よりカメラ座標を求め、ロボット座標へと変換して得る。あるいは指し棒２０を使わずに、単に挿入口の中心を画像処理で算出する。図１に示す教示部１３から座標Ｉを直接打ち込んでもよい。
【００３３】
また組付けの中間点である図２（ｂ）、（ｅ）の状態での画像Ｗと、座標Ｗ等を記憶させ、判断要素の情報を増やしてもよい。
【００３４】
第三の準備として、実際の組付け開始状態の図２（ａ）と組付け終了状態の図２（ｃ）のそれぞれの画像について、部品１と部品２の相対位置を、ロボットハンド５を含めてステレオカメラ７で撮影する。組付けの始点と終点において部品１の座標を取得して制御部に記憶させ、それぞれを始点の画像Ｓ、終点の画像Ｅ、始点の座標Ｓ、終点の座標Ｅとする。ところでロボットのアーム８の制御に速度制限と発生トルク制限とを実施し、軌跡探索中の無用な干渉による機械的被害を予防する。以上で組付けの事前準備（第１の工程）は終了である。
【００３５】
図２（ａ）、（ｄ）の状態、即ち図３に示す組付けの始点３１を目指し、Ｂ点が見える範囲で任意の不図示の遠方に位置するハンド５に把持された部品１を、被挿入口の画像Ｉをステレオカメラ７で探索し、あるいは座標Ｉの方向へアーム８を移動させる。
【００３６】
始点３１への到達判断は、ステレオカメラ７の現在画像が事前登録した画像Ｓの近傍、例えば±１ｍｍ以内となるか、現在座標が事前登録した座標Ｓの近傍、例えば±１ｍｍ以内となるかの何れかで実施する。
【００３７】
始点３１へ到達できずに被挿入口に接触し、力センサ６で接触干渉を検出した場合であって、その地点が前記の画像Ｗと、座標Ｗの近傍である時は、その場で停止し、ここを始点３１として扱い、本来の始点３１へ到達した場合と同等に次のステップへ移る。
【００３８】
始点３１から、図４（ｂ）に示すように、任意の基準点１７について、軌道制限胴内において、力センサ６の検出値が最小となる方向を探りながら進行させる（第２の工程）。この探り（探索）では、人間の手探り様に、３軸直進方向の微動と、各軸まわりの旋回、煽り方向の微動を行って一旦戻り、その中で、力センサ６の検出値が最小である方向に改めて微動（移動）させて進行を確定する。終点３３へ到達するまでこれを繰返す（第３の工程）。なお、検出値の比較結果が同等であった場合は直前の移動と同一の方向へ進む。
【００３９】
微動進行が確定する都度、部品１の停止点（教示点）の位置座標と力センサ６の検出値とを記憶してテーブルデータ化し、精密軌道を作成する（第４の工程）。このような探りの移動可能空間を、胴２１及び胴２２による軌道範囲内に制限する。
【００４０】
力センサ６の検出値が過小な状況が継続される場合は、組付けが乖離していると判断して異常停止させ、微動の幅や、後述する力センサ６の受動力計算式の重み付け係数を見直して、組付けを再開する。
【００４１】
図３の終点３３への到達判断は、ステレオカメラ７での現状画像と組付け終点の画像Ｅとを比較するか、現在座標と組付け終点の座標Ｅとを比較するかの何れか、あるいは両方で実施し、テーブルデータを完成させる。そして、テーブルデータの座標の点間を補間計算して精密軌道を得る。以上は組付けを実施する方向、すなわち前進での軌道生成であるが、組付け終了時点から分解する方向，すなわち後退での軌道生成も可能であり、上記と逆の手順を踏む。微動により軌跡を探る方法は前進時と変わらない。この場合は分解の終点である図２（ｂ）の状態での画像Ｅ２と、座標Ｅ２とを、分解の終点の比較判断に使用する。
【００４２】
以上の一回目の組付けによって精密軌道が確立するが、アーム８は熱変化で絶対位置が経時変動し、精密な組付けの阻害要因となることがある。そのために、二回目以降（次回以降）の組付けでは、組付け中の現在座標及び力センサ６の検出値について、事前の組付けで記憶したテーブルデータと比較する。当該座標での力センサ６の検出値がテーブルデータに対して差が発生している場合には、その座標で力の差が無くなるように微動してテーブルデータの座標を書き換えて補間計算を再度実施する。このようにして、力センサ６の検出値に基づいて精密軌道を随時補正する。
【００４３】
ではここから、本実施例による部品組付け方法を工程順に、これまでの説明に補填する形で述べる。図７は、Ｆ１０００から開始するメインルーチンを示すフローチャートである。初期設定をした後に、一回目の組付けで人間の手探り様に組付け先を探って組付軌道（精密軌道）の座標データを生成すると同時に、その座標群に対応した力センサ６の検出値とでテーブルを作成する。二回目以降の組付けは生成した軌道に沿って行い、上記のテーブルを元に、当該座標の組付け時の力センサ６の検出値が変動した場合は軌道を補正する。
【００４４】
以下に各ステップ（工程）を順に説明する。まずＦ１０１０では、各種初期設定として、画像処理部１１やロボットコントローラ１２へ、以下の７項目の登録が必要である。
【００４５】
（１）組付けの進行方向判断用の画像Ｉあるいは座標Ｉ：Ｂ点が見える範囲で任意の不図示の遠方に位置するハンド５に把持された部品１を、図２（ａ）、（ｄ）の位置へ向かう方向を見極める指標として、Ｂ点を含む組付け孔の画像Ｉをステレオカメラ７で撮影する。そして、パターンマッチや面積特徴等の探索手法で組付け進行方向としてそこへ向かう。あるいはＢ点の座標Ｉを設定してそこへ向かう。
【００４６】
（２）組付け開始判断用の画像Ｓ：組付け開始位置３１への到達判断に使用する。そのために、図２（ａ）、（ｄ）に示す状態を画像Ｓとしてステレオカメラ７で撮影して記憶しておく。また組付けの中間点である図２（ｂ）の画像Ｗと、座標Ｗ等を記憶させ、判断要素を増やしても良い。
【００４７】
（３）組付け終了判断用の、組付け終了部の画像Ｅあるいは座標Ｅ：図２（ｃ）の組付け終了時の画像Ｅをステレオカメラ７で撮影して記憶する。あるいは組付け終了の精密点として、図２（ｃ）、（ｈ）に示す状態で、座標Ｅを教示する。画像Ｅや座標Ｅは組付け終了部への到達判断に使用する。
【００４８】
（４）軌道作成の方向Ｄ：軌道を作成する際、組付けの方向に進める（前進）か、あるいは組付け終了の状態から分解する方向に進める（後退）かを決定しておく。分解の場合は、接触離脱点の判断の為に前述の画像Ｗや、座標Ｗが有用となる。
【００４９】
（５）軌道の探索の範囲と進行方向を制限する軌道制限胴の設定：部品１を部品２へ組付ける軌道を探索する範囲を制限するための胴を登録する。実際の組付軌道は、図１に示す部品１のＡ点が、図３の軌道１６を通る。しかし組付け前の時点では、図３の中心線１４から、中心線１５との交点を経て中心線１５へと向かうＬ字様の軌道であろう事までの想像に留まる。そこで、このＬ字を軸として、Ａ点を含む軌道制限胴二つを胴２１、胴２２として仮想設定する。
【００５０】
ここで胴の説明をする。精密軌道の探索をブラインド様に手探りで進めるため、探る範囲の位置制限を行わない場合は、軌道を逸してあらぬ進行方向へ向かう可能性があることが問題となる。そこで探索範囲を限定することで、軌道取得の確度を高める。
【００５１】
胴の形状は、図５（ａ）〜（ｄ）に示すように、メガホン、円柱、円錐、角錐等、様々な形態を想定できる。一般に直線に近い軌道で、設定座標の精度が高い程に胴の小径化が可能である。小径化とは、例えば、図５（ａ）に示すメガホン形態３０であれば始点平面３０ａと終点平面３０ｂの直径を小さくすることである。小径化により、軌道探索の空間が狭くなるために、探索の高速化が見込める。
【００５２】
図３において、部品１の組付けでは、途中の軌道が屈曲や非直線部を含むと容易に予想できるがその精度は定義困難であり、その部分の探索範囲に余裕が欲しい。そこで、胴は進行方向に対して末広がりとして図５（ａ）のメガホン形態３０を選択する。図３では、前述のようにＬ字形状を軸とする胴２１、胴２２を設定する。胴それぞれの長さＤＬ１、ＤＬ２、底面半径ＤＤ１ｂ、ＤＤ２ｂ、上面半径ＤＤ１ｔ、ＤＤ２ｔは部品２の寸法Ｗ１〜Ｗ５を使って推測する。胴設定の寸法精度は特に求めないが、胴寸法が小さ過ぎると目的軌道を探索できず、大き過ぎるとタクトを要したり離散するので、Ｗ１〜Ｗ５の中での最大値を超えないことが望ましい。
【００５３】
即ち、少なくとも以下の設定が必要である。胴２１と胴２２を構成する粗寸法、胴２１と２２の底面中心とする点３１と点３２の粗座標、組付けの終点３３の画像または精密座標。ここで言う「粗」とは組付軌道を「探る」という性格上、組付け精度に対して約１０倍以上粗い値でよい。各胴２１、２２は、探索の範囲と共に組付けの方向を示唆する。その方向の概略は、図６の二点鎖線面に示すように、組付け進行の都度に軌道現在位置の法線面で二分した組付け完了方向（進行方向）である。勿論、軌道作成の方向Ｄが分解の場合は、その逆方向である。
【００５４】
（６）ロボット駆動のインターロック：軌道を探るためにロボットハンド５を多方向へ微動させた時の干渉による機械的破損の防止のために、インターロックとしてアーム８の動作速度と発生トルクに上限を設定する。
【００５５】
（７）各種定数：後述する微動の幅などの数値であるΔＳｓ、θｓ１、θｓ２、ΔＳｒ、θｒ、ΔＳｆ、θｆと、力比較の重み付け係数であるＫｖ、Ｋｉ等を主とする数値類の定数設定。また、カウンター類のメモリゼロクリア等を実施する。
【００５６】
以上が初期設定の７項目である。
【００５７】
次に図７のＦ２０００の概要を説明する。部品１を部品２に組付ける一回目であって、軌道を自動生成する。ここで、軌道生成の主要部を説明する。組付けの終点に向けて、手探り様に微少ステップで力センサ６の検出値（受動力）が最小である方向に微動した停止点（教示点）を多点抽出してテーブル化し、点間を補間計算することで軌道生成する。また、抽出された教示点に対応した上記の受動力を併せてテーブル化しておく。部品１を部品２に組付け終了した状態からの分解方向に対しても軌道は生成できるが、フロー図では説明の便宜上「組付け」方向とした。Ｆ２０００の詳細は図８に詳細を記載したので、改めて後述する。
【００５８】
次に図７のＦ１０２０では組付軌道生成時の異常発生の有無判別を行い、異常時はＦ１０３０のパラメータ再設定にて戻る。Ｆ１０３０のパラメータを再設定では、Ｆ１０１０で設定した図６に示す微動関係の数値であるΔＳｓ、θｓ１、θｓ２、ΔＳｒ、θｒ、ΔＳｆ、θｆや、力比較の重み付け係数であるＫｖ、Ｋｉを調整する。基本的に探索移動量を細分化し、計算係数の重み付けのバランスを変更する。
【００５９】
次に図７のＦ１０４０の時点では軌道の生成が完了しているので、ここではＦ１０１０で実施したロボットのインターロックを解除する。
【００６０】
次に図７のＦ３０００は、Ｆ２０００で自動生成された組付軌道に倣って行われる二回目以降の組付けの工程である。組付けの過程で、現在位置がＦ２０００で作成されたテーブル座標に相当する時に、現在の力センサ６の検出値（受動力）とＦ２０００で作成されたのテーブル受動力とを比較する。その結果、差が発生した場合はその座標で停止させて、受動力の差が無くなるように微動してテーブル座標を現在位置と置き換える。受動力が過小あるいは過大な状態が継続される場合は異常を発生する。Ｆ３０００の詳細は図９詳細を記載したので、改めて後述する。
【００６１】
次に図７のＦ１０５０ではＦ３０００で異常がある場合に終了させる。Ｆ１０６０では部品１の組付け回数がユーザー所望の数値となるまでループさせる。Ｆ１０７０でメインルーチが終了する。
【００６２】
以上で図７の説明は終了である。
【００６３】
図８は、Ｆ２０００を説明するフローチャートである。このフローは、前述したテーブルデータによる精密軌道を自動生成する方法である。Ｆ２０１０では後述する座標と受動力のデータテーブルのカウンタをゼロリセットする。Ｆ２０２０では、軌道生成の方法として、部品１を部品２に組付けていく方法（前進）と、部品１を部品２に組付けされた状態から分解していく方法（後退）との２種類から、ユーザーは任意の方法を選択する。まずは前進の場合を説明する。
【００６４】
次にＦ２０２５では、図３に示す組付けの始点３１を目指し、Ｂ点が見える範囲で任意の不図示の遠方に位置するハンド５に把持された部品１を、被挿入口の画像Ｉをステレオカメラ７で探索し、あるいは座標Ｉの方向へアーム８を移動させる。
【００６５】
次にＦ２０３０では、現在位置を軌道の始点の座標Ｐｎ（但しｎ＝０）として記憶する。Ｆ２０４０では、組付け入口方向へ直進させ、Ｆ２０５０では、接触したら一旦停止する。
【００６６】
次のＦ２０６０が軌道生成の主要部である。現在座標を基準点として、多様な方向（６軸方向）へ微動しては基準点に戻る。その中で、力センサ６の検出値が最も少ない方向へ改めて微動し停止位置の座標を教示点として取得すると共に、座標Ｐｎの取得の完了である最終点到達を判断する。ここで言う多様な方向とは、図６（ａ）、（ｂ）、（ｃ）に示す３種類である。すなわち、軌道進行中の現在座標である基準点１７（Ｘｐ１、Ｙｐ１、Ｚｐ１、Ｘｔ１、Ｙｔ１、Ｚｔ１）に対し、直進・旋回・煽りの微動を組み合わせる。これにより、進行方向面側に向けたあらゆる方向と姿勢を生み出して、組付けや分解の力が最も小さい進行方向を探る。この微動による進行方向の探索をここでは「探り」と称す。
【００６７】
図６（ａ）の直進微動は、大きさΔＳｓの移動量を煽り方向のθｓ１と旋回方向のθｓ２ずつ振って、ドーム表面を網羅する様に微動量ΔＰを移動指令ベクトルΔＶｓ１、２、３、・・、Ｎとして与えてシフトしていく。
【００６８】
図６（ｂ）の旋回微動は、大きさΔＳｒの移動量を旋回方向へθｒずつ左右に振って、旋回円を網羅する方向に微動量ΔＰを移動指令ベクトルΔＶｒ１、２、３、・・、Ｎとして与えてシフトいく。
【００６９】
図６（ｃ）の煽り微動は、大きさΔＳｆの移動量を旋回方向へθｆずつ振って、煽り軌道のドーム外周を網羅する様に微動量ΔＰを移動指令ベクトルΔＶｆ１、２、３、・・、Ｎとして与えてシフトいく。以上の直進・旋回・煽り、個々の微動は軌道を制限する胴を移動範囲の上限として１回ずつ実施する。微動の完了判断は、指令位置と現在位置との偏差パルスがほぼゼロであり、かつ力センサ６の検出値が衝突様に過大ではない旨により行う。
【００７０】
微動完了後には当該点の座標と力センサ６の検出値を記憶した後、それぞれ微動前の座標へ戻る。その後、直進・旋回・煽りの各方向間で力センサ６の検出値を比較して最小となる微動方向の教示点を確定移動先として再度微動し、教示点の座標Ｐｎと、力センサ６の検出値である受動力Ｑｎとを記憶してテーブル化する。
【００７１】
ここで、力センサ６の検出値の比較は、重要視する項目について、ＸＹＺ直線力の合成ベクトルＶｓａ等の重み付け係数Ｋｖと、モーメント力Ｖｓｍ等の重み付け係数Ｋｉとを設定して、下式に依る受動力Ｖｓ、Ｖｒ、Ｖｆ間で大小を比較する。
直進微動の受動力Ｖｓ＝Ｋｖ×Ｖｓａ＋Ｋｉ×Ｖｓｍ
旋回微動の受動力Ｖｒ＝Ｋｖ×Ｖｒａ＋Ｋｉ×Ｖｒｍ
煽り微動の受動力Ｖｆ＝Ｋｖ×Ｖｆａ＋Ｋｉ×Ｖｆｍ
【００７２】
この時、これらの数値が過小な状態が連続する場合は、組付けを乖離する方向へ移動している可能性があるので、微動を方向転換するか、異常で停止させる等してもよい。
【００７３】
次にＦ２０７０では，Ｆ２０６０の異常時にエラーとして停止させる。次にＦ２０８０では、軌道の最終点到達の判断を、ステレオカメラ７の現在画像と事前登録した組付け終了部の画像Ｅ、あるいはアーム８の現在座標と事前登録した座標Ｅとの比較で行う。Ｆ２１１０では、座標Ｐｎのテーブルデータから点間を補間して、組付軌道Ｃｖｇを完成させる。
【００７４】
次に、Ｆ２０２０の説明で述べた後退方向での組付軌道Ｃｖｇの作成手順を、前進方向との相違点についてのみ説明する。まずＦ２１２０では、事前登録した組付け終了部の画像Ｅ、又は座標Ｅのデータを元に、アーム８でロボットハンド５を介して、部品２へ組付けられている部品１を把持させる。把持した座標を教示点Ｐｎ（ｎ＝０）として記憶する。
【００７５】
次にＦ２０６０での微動を経て、Ｆ２０８０では、後退方向から見た軌道の最終点到達の判断を実施する。ステレオカメラ７の現在画像と事前登録した組付け開始部の画像Ｓ、あるいはアーム８の現在座標と事前登録した座標Ｓとの比較で行う。Ｆ２１４０では、テーブルデータ方向の入れ替えを実施する。すなわち、「後退」で得た座標Ｐｎと受動力Ｑｎのテーブルの並びは、「前進」時と逆になっているためである。Ｆ２１５０で終了する。
【００７６】
図９は、二回目以降の組付け工程であるＦ３０００を説明するフローチャートであり、組付軌道Ｃｖｇが完成済みであることが前提である。Ｆ３０１０では、組付軌道Ｃｖｇに倣って組付けを開始する。Ｆ３０２０では、現在座標が、記憶テーブル内の座標Ｐｎの何れかの近傍に相当するか確認する。相当する場合は次のＦ３０３０へ進む。近似の許容値は、例えば±１ｍｍ等、予め任意の数値を設定しておく。この時、力センサ６のノイズや過渡的なタイミングのずれにより誤作動発生が予測される場合は、記憶テーブル内の移動平均と比較する等してもよい。あるいは温度変化などによりアーム８の絶対座標がゆっくりと変動して、部品組付けの当たり具合もゆっくり変動する場合は記憶座標と現在座標との比較の周期を大きくすることが有効である。
【００７７】
Ｆ３０３０では、当該座標に対応する力センサ６による現在受動力が記憶テーブル内の受動力Ｑｎと同等付近（例えば±１０％）に相当するか確認する。相当しない場合は軌道調整が必要と判断してＦ３０５０へと進む。軌道調整が不要な場合はＦ３０４０へ進み、組付軌道Ｃｖｇの終点への到達判断を実施し、到達していない場合は上のＦ３０１０へ戻って軌道に倣ったロボットの駆動を、終点到達まで継続する。
【００７８】
Ｆ３０５０では、アーム８をその場でできるだけ速やかに停止させ、座標Ｐｎへ戻す。Ｆ３０６０では、現在受動力が記憶テーブル内の受動力Ｑｎ相当になるようにＦ２０６０で説明した微動を実施し、当該の座標Ｐｎのテーブル座標を書き換えることで軌道を微調整（補正）する。Ｆ３０７０では、Ｆ３０６０の微動中に過大、あるいは過小な力を連続的に検出して復帰不可能な場合はエラーとして停止させる。Ｆ３０８０で終了する。
【００７９】
図７のＦ１０１０では図２（ａ）のＢ点の座標Ｉを登録したが、その作業を簡素化するために、図４（ａ）に示すように、作業者が把持した指し棒２０を使う方法がある。この先端形状の登録画像（テンプレート）からパターンマッチや面積特徴の抽出等の手法でステレオカメラ７に認識させ、指し位置を三次元の座標Ｉとして認識させる。指し棒２０の先端形状は立体的な円錐とした。平板でもよいが、カメラ角度による撮影形状の違いに注意する。認識点は四角形状の任意の２点以上（例えば対角）とすると、部品２の姿勢も抽出できるのでなおよい。前述のように、人間の手探り様に組付けを行うので、座標Ｉの教示精度は必ずしも要求されない。教示精度の目安は、被挿入口に対し挿入部品の半数前後が捉えられている程度の低レベルでもよい。
【実施例２】
【００８０】
図１に示すロボットを用いて、図１０、１１に示すように、円弧状に湾曲する部位を持つ部品３を部品４へ円弧状の軌道で組付ける。組付け前の状態を図１０（ａ）、（ｃ）に斜視図及び断面図で示し、組付け後の状態を図１０（ｂ）、（ｈ）に斜視図及び断面図で示す。
【００８１】
軌道制限胴は、図１１に示すように、メガホン形態の胴５１と胴５２とを仮想設定するが、双方の胴を包含する胴５３の単体のみでも可能である。胴５１は、上面直径ＤＤ３、長さＤＬ３、胴５２は、上面直径ＤＤ４、長さＤＬ４、胴５３は、上面直径ＤＤ５、長さＤＬ５を有する。組付けの過程を図１０（ｃ）から（ｈ）に断面図で示す。図１０（ｃ）の位置から（ｄ）の位置で衝突するが、前述したＦ２０６０での探りの手法に準じて、組付けの始点６１から中間点６２等を経て終点６３まで進む。
【符号の説明】
【００８２】
１、２、３、４    部品
５    ロボットハンド
６    力センサ
７    ステレオカメラ
８    アーム
１１    画像処理部
１２    ロボットコントローラ
２１、２２、５１、５２、５３  胴
【図１】
0005451219.tif 000002
【図２】
0005451219.tif 000003
【図３】
0005451219.tif 000004
【図４】
0005451219.tif 000005
【図５】
0005451219.tif 000006
【図６】
0005451219.tif 000007
【図７】
0005451219.tif 000008
【図８】
0005451219.tif 000009
【図９】
0005451219.tif 000010
【図１０】
0005451219.tif 000011
【図１１】
0005451219.tif 000012
【図１２】
0005451219.tif 000013