自動組付け装置、自動組付け方法、およびプログラム
【課題】ワークが位置および/または寸法のばらつきを有する場合でも、ワークへの部品の組付けを高信頼かつ高速で行なえる自動組付け装置を提供する。
【解決手段】自動組付け装置1は、部品およびワークの少なくとも一方を、部品とワークとが接触した状態で移動させる移動部260と、ワークに対する部品の接触圧を検出する接触圧検出部240と、接触圧に基づいて部品の組付けの進捗度を評価する評価部210と、評価の結果に基づき、移動部260による移動の量を設定する設定部220とを備える。
【解決手段】自動組付け装置1は、部品およびワークの少なくとも一方を、部品とワークとが接触した状態で移動させる移動部260と、ワークに対する部品の接触圧を検出する接触圧検出部240と、接触圧に基づいて部品の組付けの進捗度を評価する評価部210と、評価の結果に基づき、移動部260による移動の量を設定する設定部220とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネジや樹脂ピン等の挿入部品を自動で組付ける自動組付け装置に関する。
【背景技術】
【0002】
従来、組立ての自動化手段として産業用ロボット等が利用されている。これらの自動組立においては、組付け部品同士の位置合わせ手段として、位置決め機構や冶具による部品位置規制や、カメラと画像認識によるワーク位置測定等が利用されている。しかしながら、これらの手段では部品を外形や代表部分で規制あるいは測定するため、部品内部の寸法公差による組付け挿入部の位置誤差等を把握できない。それゆえ、従来の手段では、精度が不足する場合があった。当該問題点に対する対策として、多点を個別に測定して位置を補正する方式が行われていた。しかしながら、測定回数が増えると作業時間が延びる問題があった。
【0003】
従来、組立ての代表的な工程であるネジ締めにおいて、自動式のネジ締めドライバと直動式のロボットを組合せた自動ネジ締め機が製品化され、かつ使用されている。しかしながら、これらの自動ネジ締め機は、ワークのばらつき等によってネジ穴の位置が設計位置からずれている場合、適切にネジの位置を補正してネジを締めることができなかった。具体的には、従来の自動ネジ締め機は、ネジ径の略1/10程度を超える位置ずれがあると、正しくネジ締めできず、斜め噛み込み等の不完全なネジ締めをしたり、エラー停止する。このため、人手による補正が必要になっていた。
【0004】
このような問題点を解消すべく、特許文献1では、力制御式のロボットを使用し、かつネジを通して受けた反力を元にドライバの位置を修正することによって、ネジと穴とのずれを修正している。これにより特許文献1では、当該修正によって、高信頼の自動ネジ締めを実現している。特許文献1の修正方法では、ネジ先が穴に入りかかっている場合に、ずれの方向を検知してネジの位置を補正することにより、正しくネジ締めを行なうことができる。
【0005】
しかしながら、特許文献1の修正方法では、以下のような問題点が生じる。図15は、ネジがワークの穴周囲の平面部分に接触している状態を示した図である。図16は、ワークの穴周囲の平面部分にバリが生じている状態を示した図である。図15を参照して、ネジ800の先端部802における平坦面890がワーク900の穴周囲の平面部分に接触している場合、特許文献1の修正方法では、反力によってずれの方向を検知することができないため、正しくネジ締めを行なうことができなかった。さらに、図16を参照して、ネジ800が穴700の周囲のバリ990に乗り上げた場合には、特許文献1の修正方法では、ネジ800を動かすことに対して大きな摩擦抵抗が発生するため、ネジ800を穴700へ位置合わせすることができなかった。
【0006】
また、従来、未知の目標位置を探索する方法として、ニューラルネットワーク、学習アルゴリズム、または遺伝アルゴリズムを適用した方法や、特許文献2のような適応制御方法が開発されている。特許文献2には、生物を模した状態変化により、ランダム動作と非ランダム動作と評価関数とを組合せて、状況に適用し最適化するためのアルゴリズムが開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−331428号公報
【特許文献2】特開2005−285016号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ニューラルネットワーク、学習および遺伝アルゴリズムについては、繰返し作業によって作業対象の性質を学習し、探索の効率を向上させるものである。しかしながら、組付け作業においてワーク位置ばらつきは方向性がなく、また摩擦ばらつき等のワーク個体差に対して、予め最適化された学習結果では十分に対応できない。
【0009】
また、特許文献2に示されたアルゴリズムによれば、作業対象が未知の状態であってもランダム性を増減させつつ探索を行なうことによって、所望の作業を達成することができる。しかしながら、当該制御手法を具体的に生産等の物理的作業に適用した例は従来なく、アルゴリズム上のパラメータと装置の入出力手段との組合せ方法は特定されていない。このため、当該制御手法を装置制御に適用することができなかった。
【0010】
本発明は、上記の問題点に鑑みなされたものであって、その目的は、部品のワークへの組付け工程において、ワークが位置および/または寸法のばらつきを有する場合でも、部品の組付けを高信頼かつ高速で行なえる自動組付け装置、自動組付け方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【0011】
本発明のある局面に従うと、自動組付け装置は、部品をワークに組付ける自動組付け装置である。自動組付け装置は、部品およびワークの少なくとも一方を、部品とワークとが接触した状態で移動させる移動手段と、ワークに対する部品の接触圧を検出する接触圧検出手段と、接触圧に基づいて部品の組付けの進捗度を評価する評価手段と、評価の結果に基づき、移動手段による移動の量を設定する設定手段とを備える。
【0012】
好ましくは、自動組付け装置は、評価の結果に基づいた演算を行なう第1の項と、乱数を用いて定義される第2の項とを含む、第1のゆらぎ方程式を格納した記憶手段をさらに備える。設定手段は、第1のゆらぎ方程式を用いて移動の量を決定する。
【0013】
好ましくは、第1の項は、アトラクタを有する制御関数と評価の結果を表す第1の変数との積で表される。第2の項は、第1の変数の増減に相反して増減するノイズを表す項である。
【0014】
好ましくは、設定手段は、第1のゆらぎ方程式を用いて、当該第1のゆらぎ方程式の制御パラメータである第2の変数を更新する。設定手段は、更新された第2の変数に基づいて、移動の量を算出する。制御関数は、第2の変数をアトラクタに近づける作用を有する。評価手段は、接触圧が増加すると第1の変数の値を増加させることによって作用を増大させ、接触圧が減少すると第1の変数の値を減少させることによって作用を減少させる。
【0015】
好ましくは、第2の変数は、ワークに対する部品の押付け力を表す変数と、移動の幅を表す変数とで構成される。アトラクタは、押付け力の基準値と、移動の幅の基準値とで構成される。設定手段は、移動の幅を示す変数に予め定められた位相を有する正弦関数または余弦関数を乗じた値を、移動の量として設定する。移動手段は、部品の組込み方向に垂直となる面内で、設定された移動の量だけ部品およびワークの少なくとも一方を移動させる。
【0016】
好ましくは、移動手段は、予め定められた周期毎に移動を実行する。予め定められた位相は、周期毎に予め定められた規則に基づき変化する。
【0017】
好ましくは、第1のゆらぎ方程式は、第1の変数と予め定められた定数との差分を含む第3の項をさらに含む。設定手段は、第1の変数が定数よりも大きい場合には、部品の押付け力を表す変数を大きく設定し、移動の幅を表す変数を小さく設定し、第1の変数が定数よりも小さい場合には、部品の押付け力を表す変数を小さく設定し、移動の幅を表す変数を大きく設定する。
【0018】
好ましくは、第2の変数は、部品の組込み方向に垂直となる面内における移動方向を示した第3の変数をさらに含む。アトラクタは、移動方向についての基準値をさらに含む。記憶手段は、評価の結果に基づいた演算を行なう第1の項と、乱数を用いて定義される第2の項とを含む、第2のゆらぎ方程式をさらに格納している。設定手段は、第2のゆらぎ方程式を用いて、第3の変数を更新する。移動手段は、第3の変数が更新されると、当該更新後の第3の変数が表す移動方向に、部品およびワークの少なくとも一方を移動させる。
【0019】
好ましくは、接触圧は、部品の組込み方向の接触圧と、部品の組込み方向に垂直な方向の接触圧とを含む。設定手段は、垂直な方向の接触圧が予め定められた第1の閾値よりも大きいと判断すると、位相を変化させることにより移動の方向を反転させる。
【0020】
好ましくは、移動手段は、部品とワークとが接触していない状態において、部品およびワークの少なくとも一方を移動させる。設定手段は、部品がワークに接触していない状態では、部品の組込み方向における移動の量を部品がワークに接触しているときの移動の量よりも増加させ、部品の組込み方向に垂直な方向における移動の量を0に設定する。
【0021】
設定手段は、部品の組込み方向に垂直な方向における移動によって、部品が、当該部品がワークに最初に接触した位置から予め定められた距離以上離れたか否かを判断する。設定手段は、予め定められた距離以上離れたと判断すると、最初に接触した位置から予め定められた距離未満の範囲内に部品が位置するように、移動の方向および移動の量を設定する。
【0022】
好ましくは、部品は、ネジである。自動組付け装置は、ネジを締めるためのドライバをさらに備える。
【0023】
好ましくは、自動組付け装置は、ネジを締める際の締付けトルクを検出するためのトルク検出手段をさらに備える。評価手段は、締付けトルクと接触圧とに基づいて部品の組付けの進捗度を評価する。
【0024】
本発明の他の局面に従うと、自動組付け方法は、部品をワークに組付ける自動組付け装置における自動組付け方法である。自動組付け方法は、自動組付け装置における移動装置が、部品およびワークの少なくとも一方を、部品とワークとが接触した状態で移動させるステップと、自動組付け装置における圧力センサが、ワークに対する部品の接触圧を検出するステップと、自動組付け装置における制御装置が、接触圧に基づいて部品の組付けの進捗度を評価するステップと、制御装置が、評価の結果に基づき、移動の量を設定するステップとを備える。
【0025】
本発明のさらに他の局面に従うと、プログラムは、部品をワークに組付ける自動組付け装置を制御するためのプログラムである。プログラムは、部品およびワークの少なくとも一方を、部品とワークとが接触した状態で移動させるステップと、ワークに対する部品の接触圧を取得するステップと、接触圧に基づいて部品の組付けの進捗度を評価するステップと、評価の結果に基づき、移動の量を設定するステップとを、自動組付け装置に実行させる。
【発明の効果】
【0026】
上記の発明によれば、部品のワークへの組付け工程において、ワークが位置および/または寸法のばらつきを有する場合でも、部品の組付けを高信頼かつ高速で行なえる。
【図面の簡単な説明】
【0027】
【図1】自動組付け装置の概略構成を示した図である。
【図2】ネジ締めドライバの先端部と、吸着機構と、ワークとの断面を示した断面図である。
【図3】自動組付け装置の制御系の構成を示した図である。
【図4】自動組付け装置の機能的構成を示した機能ブロック図である。
【図5】自動組付け装置によるネジ締め付け動作の処理の流れを示したフローチャートである。
【図6】図5のステップS6の詳細な処理の流れを示したフローチャートである。
【図7】図6のステップS118の処理の詳細を示したフローチャートである。
【図8】ネジ吸着機構に吸着したネジをワークに組付ける作業の遷移を示した図である。
【図9】関数F(X1,X2)の出力を、X1,X2平面上の高さとしてプロットした曲面をグラフ化した図である。
【図10】ネジ締めドライバ135の先端周辺を表す図である。
【図11】パラメータの時系列変化をグラフ化した図である。
【図12】自動組付け装置Mの一部の断面と、ワークの断面とを示した図である。
【図13】他の自動組付け装置の一部を示した図である。
【図14】制御部として機能するコンピュータシステムのハードウェア構成を表わすブロック図である。
【図15】ネジがワークの穴周囲の平面部分に接触している状態を示した図である。
【図16】ワークの穴周囲の平面部分にバリが生じている状態を示した図である。
【発明を実施するための形態】
【0028】
以下、図面を参照しつつ、本発明の各実施の形態に係る自動組付け装置について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0029】
[実施の形態1]
図1は、本実施の形態に係る自動組付け装置1の概略構成を示した図である。図1を参照して、自動組付け装置1は、部品をワークに組付ける装置である。具体的には、自動組付け装置1は、ネジ800をワーク900のネジ穴に対して締め付けるための自動ネジ締め装置である。
【0030】
自動組付け装置1は、基部11と、スカラロボット12と、組付け部13と、ネジ供給機構14とを備える。スカラロボット12は、リンク121と、関節128と、リンク122と、関節129と、リンク123とをこの順に備える。組付け部13は、直動軸131と、直動軸132と、直動軸133と、力センサ134と、ネジ締めドライバ135と、ネジ吸着機構136と、衝撃緩和機構(図示せず)とを備える。
【0031】
基部11は、金属製の土台である。基部11は、直方体形状を有している。基部11は、上面の寸法が約1500mm×約1500mmである。
【0032】
スカラロボット12は、SCARA(Selective Compliance Assembly Robot Arm)型のロボットである。スカラロボット12は、鉛直方向の回転軸を持ち、かつ先端部を水平面内で移動可能とする。リンク121は、基部11に固定されている。リンク121とリンク122とは関節128によって接続されている。リンク122とリンク123とは関節129によって接続されている。スカラロボット12は、図示しないロボット制御部21(図3参照)によって関節128および129の角度を制御することにより、所定の位置に先端部を移動させる。
【0033】
関節128と129との距離は、450mmである。関節129と、直動軸131,132を原点位置にしたときのネジ締めドライバ135の軸との距離は、550mmである。スカラロボット12は、関節128を中心として半径1000mmの範囲内にネジ締めドライバ135を移動できる。
【0034】
組付け部13は、後述する組付け処理と、ネジ締め動作とを行なうための機構である。組付け部13は、スカラロボット12のリンク123の先端に固定され、スカラロボット12によって移動する。
【0035】
直動軸131,132,133は、ネジ800を移動させる。直動軸131,132,133は、直動型アクチュエータである。直動軸131,132,133は、モーターとボールネジとで構成される。
【0036】
直動軸133の基部は、リンク123に固定されている。直動軸133は、先端側を図1の上下方向(z軸方向)に駆動する。直動軸132の基部は、直動軸133の先端側に固定されている。直動軸132は、先端側を図1の左右方向(y軸方向)に駆動する。直動軸131の基部は、直動軸132の先端側に固定されている。直動軸131は、先端側を図1の紙面垂直方向(z軸とy軸とに垂直な方向(以下、「x方向」と称する))に駆動する。
【0037】
直動軸131および直動軸132は、20mmのストロークを持ち、ストロークの中央を原点とする動作をする。直動軸133は、50mmのストロークを持ち、ストローク上端を原点と動作をする。直動軸131,132,133は、図示しない組付け制御部22(図3参照)の制御により、それぞれ、先端側を指定された位置に移動する。
【0038】
力センサ134は、ワーク900に対するネジ800の接触圧を検出する。力センサ134は、x軸、y軸、およびz軸の3軸方向に加えられた力の大きさを検出する3軸力覚センサである。以下では、x軸に加えられた力の大きさを「力FX」と、y軸に加えられた力の大きさを「力FY」と、z軸に加えられた力の大きさを「力FZ」と称する。
【0039】
力センサ134の基部は、直動軸131の先端側に固定されている。力センサ134のx,y,zの3軸は、各々直動軸131,132,133の駆動方向と平行となるように取り付けられている。力センサ134の力測定レンジはx,y,zの各方向に±100Nである。力センサ134は、1msごとに力FX,FY,FZを測定し、後述の制御部20(図3参照)からの読取り処理に応じて、制御部20に出力する。力センサ134の出力は、図1の状態(すなわち、先端にネジ締めドライバ135が搭載された状態)で、力FX,FY,FZが0になるようオフセット調整されている。
【0040】
ネジ締めドライバ135は、トルク管理による自動ネジ締めが可能なドライバである。ネジ締めドライバ135は、力センサ134の先端側に取り付けられている。ネジ締めドライバ135は、ネジ締め開始の指示を受けると、先端のビット1351(図2参照)を回転させてネジ締めを行なう。ネジ締めドライバ135は、ビット1351からの反トルクが所定の完了トルクに達するとビット1351の回転を停止し、ネジ締めが完了したことを表す完了信号を制御部20に出力する。
【0041】
ビット1351の付け根には、バネによる衝撃緩和機構が内蔵されている。衝撃緩和機構は、ネジの押し込み方向の力に応じてビット1351の突き出し量を短縮する。これによって、衝撃緩衝機構は、直動軸133が駆動されてビット1351がワーク900に接触するときの衝撃を緩和する。また、衝撃緩和機構により、Z軸位置変動時の反力変化が緩和され、後述する探索移動中の押付け力となる力FZを一定に保つ制御が安定しやすくなる。
【0042】
ネジ締めドライバ135は、異常判定機能を持つ。ネジ締めドライバ135は、ネジ締め中に所定の締結回転角度より少ない回転でトルクが上昇した場合、エラー信号を制御部20に対して出力するとともに、ビット1351の回転を停止する。ネジ締めドライバ135は、ネジ締め開始後に所定時間が経過してもトルクが上昇しない場合には、タイムオーバーしたことを表す信号を制御部20に対して出力するとともに、ビット1351の回転を停止する。
【0043】
図2は、ネジ締めドライバ135の先端部と、ネジ吸着機構136と、ワーク900との断面を示した断面図である。図2を参照して、ネジ吸着機構136は、ネジ800を把持する把持手段としての機能を果たす。具体的には、ネジ吸着機構136は、負圧によりネジ800をビット1351に吸着する機構である。ネジ吸着機構136は、ビット1351の付け根に取り付けられている。ネジ吸着機構136は、図示しない空圧パイプにより、外部の負圧源に接続されている。ネジ吸着機構136は、先端にゴム部材1361を備える。ネジ吸着機構136は、ゴム部材1361がネジ800の頭部に接触すると、空圧パイプによる吸引処理によりゴム部材1361は当該頭部に密着する。これにより、負圧による密閉空間が形成される。
【0044】
また、ネジ800がビット1351に対して傾斜した場合でも、ゴム部材1361の弾性によってゴム部材1361が変形し追従するため密閉が保たれる。それゆえ、吸着力は、維持される。さらに、ネジ800がビット1351に対して傾斜した場合、当該傾斜を無くそうとする反力がゴム部材1361から発生する。
【0045】
ネジ供給機構14は、一般的な自動式のネジ供給機である。ネジ供給機構14は、予め内部にストックした複数のネジを整列した後、1個のネジを取り出す。さらに、ネジ供給機構14は、取り出したネジの頭部を上に向けた状態で、ネジ供給機構14上面の所定の供給位置にネジを移動させる。
【0046】
ネジ供給機構14は、略直方体の形状を有する。ネジ供給機構14は、基部11上のワーク900の設置範囲に隣接して設置されている。ネジ供給機構14は、スカラロボット12を駆動することによって、ネジ締めドライバ135をネジ供給機構14の供給位置上へ移動させることができる。ネジ供給機構14は、供給位置にネジがあるかどうかを検知するセンサを持つ。ネジ供給機構14は、ネジが取り去られると内部機構を駆動して次のネジを供給位置に移動させる。
【0047】
ネジ800は、M3、ネジ長6mm、バインド頭のメートルネジである。なお、ネジ800のサイズや種別は、これに限定されるものではない。
【0048】
ワーク900は、ネジ800により締結される部材である。ワーク900は、ともに長方形平板状のワーク901とワーク902とからなる。ワーク901は、ワーク902に対して、上面と外周を覆う形で乗せられており、横方向に一定の誤差範囲内で位置決めされている。
【0049】
ワーク901とワーク902とには、上面外周に沿って10箇所に、締結用の穴が開けられている。ワーク901の厚みは1.0mmであり、ワーク900の全体厚みは40mmである。ワーク901の穴は、φ3.8のバカ穴である。ワーク902の穴は、M3のメネジである。
【0050】
ワーク900は、図示しない外部の搬送装置により、基部11上の所定位置に設置される。また自動組付け装置1によるネジ締めが終わると、ワーク900は、外部の搬送装置により搬出される。基部11上の所定位置に設置されたワーク900の穴の位置は、以下の要因による誤差を持つ。
【0051】
・外部の搬送装置がワーク900を設置する動作のばらつき
・ワーク902に対するワーク901のガタつき、
・ワーク901およびワーク902の寸法公差
以上の累積として、基部11上の所定位置に設置されたワーク901およびワーク902の穴の位置は、その設計上の基準位置を中心に、±1.5mmの範囲のばらつきを持つ。
【0052】
<制御系の構成>
図3は、自動組付け装置1の制御系の構成を示した図である。自動組付け装置1は、制御部20と、ロボット制御部21と、組付け制御部22と、ネジ供給機構14と、ネジ締めドライバ135と、力センサ134と、ネジ吸着機構136と、関節128と、関節129と、直動軸131と、直動軸132と、直動軸133とを備える。
【0053】
制御部20は、それぞれ後述する、移動量の設定、ノイズμの生成、組付けの進捗度の評価、各種パラメータの記憶、当該パラメータの更新を行なうための計算機である。具体的には、制御部20は、一般的なPC(Personal Computer)である(図14参照)。
【0054】
制御部20は、後述する自動組付け装置1の制御フロー(図5)を実行するためのアルゴリズムと、後述するネジ締め動作の制御フロー(図6および図7)を実行するためのアルゴリズムと、後述する計算式および当該計算式に用いる各種パラメータを、予め記憶部230(図4参照)に記憶している。
【0055】
制御部20は、ロボット制御部21,組付け制御部22、ネジ締めドライバ135および力センサ134と通信線で接続され、当該各機器の状態読取りおよび制御を行なう。具体的には、制御部20は、ロボット制御部21に対して、スカラロボット12の関節128および129の角度読取りと目標角度との指令を行なう。制御部20は、組付け制御部22に対して、直動軸131,132,133の位置の取得と目標位置との指令を行なう。制御部20は、ネジ締めドライバ135に対して、異常状態および完了状態の読取りと、締結開始の指示とを行なう。制御部20は、力センサ134に対して、最新の力FX、FY,FZの読取りを行なう。制御部20は、計算パラメータとして、直動軸131,132,133の各々の目標位置PX,PY,PZと、その移動量MX,MY,MZを記憶しており、制御計算によって更新する。
【0056】
<機能ブロック>
図4は、自動組付け装置1の機能的構成を示した機能ブロック図である。図4を参照して、自動組付け装置1は、制御部20と、接触圧検知部240と、トルク検出部250と、移動部260とを備える。制御部20は、評価部210と、設定部220と、記憶部230とを備える。設定部220は、更新部221と、移動量算出部222とを備える。
【0057】
接触圧検出部240は、力センサ134に対応する。接触圧検出部240は、ワーク900に対するネジ800の接触圧を検出し、検出結果を制御部20に送る。
【0058】
トルク検出部250は、ネジ締め付けドライバ135に対応する。トルク検出部250は、ネジ800を締める際の締付けトルクを検出し、検出結果を制御部20に送る。移動部260は、直動軸131,132,133に対応する。移動部260は、制御部20からの指示に基づき動作する。
【0059】
記憶部230には、上記計算式として、ゆらぎ方程式が格納されている。ここで、ゆらぎ方程式の基本形について、式(17)に基づいて説明する。
【0060】
【数1】
【0061】
式(17)において、Pは、制御パラメータ(第2の変数)である。ゆらぎ方程式は、右辺において、上記評価の結果に基づいた演算を行なう第1項と、乱数を用いて定義される第2項とを含む。第1項は、アトラクタを有する制御関数f(P)と、上記評価の結果を表すパラメータAct(第1の変数)との積で表される。第2項は、パラメータActの増減に相反して増減するノイズμを表す項である。なお、以下では、パラメータActを、「アクティビティAct」、「変数Act」とも称する。
【0062】
より詳しく説明すると、制御関数f(P)は、手本データ(つまり、アトラクタ)に近づける作用を有する制御関数である。ノイズμは、ランダムに変化する成分(ゆらぎ)である。
【0063】
評価部210は、接触圧検出部240によって検出された接触圧に基づいて、ネジ800の組付けの進捗度を評価する。具体的には、評価部210は、パラメータActの値を算出する。より詳しくは、評価部210は、接触圧が増加するとパラメータActの値を増加させ、接触圧が減少するとパラメータActの値を減少させる。評価部210は、算出したパラメータActを、設定部220に送る。
【0064】
設定部220は、ゆらぎ方程式を用いて、移動量(MX,MY,MZ)を決定する。具体的には、設定部220は、上記評価の結果(つまり、パラメータAct)に基づき、移動部260による移動量(つまり、MX,MY,MZ)を設定する。より詳しくは、設定部220における更新部221が、ゆらぎ方程式を用いて、当該ゆらぎ方程式の制御パラメータPを更新する。設定部220における移動量算出部222が、更新された制御パラメータPに基づいて、移動量を算出する。
【0065】
自動組付け装置1が利用するゆらぎ方程式は、式(17)を拡張した方程式である。当該方程式の構成については、後述する式(6)に基づいて説明する。また、自動組付け装置1は、制御パラメータPとして、後述する振幅X1(移動の幅を表す変数),推力X2(ワークに対するネジの押付け力を表す変数),角度X3(ネジの組込み方向に垂直となる面内における移動方向を示したの変数)の3つのパラメータを用いる。また、以下では、振幅X1をパラメータX1、推力X2をパラメータX2、角度X3をパラメータX3とも称する。なお、制御部20の詳細については、以降において順次説明する。
【0066】
<制御構造>
図5は、自動組付け装置1によるネジ締め付け動作の処理の流れを示したフローチャートである。まず始めに、組付け部13は、以下のような状態にある。直動軸131,132は、それぞれ原点位置にある。直動軸133は、後述する所定の供給高さにある。ネジ締めドライバ135は、回転を停止している。ネジ吸着機構136は、真空吸引を行っており、ビット1351にネジ800が装着されている。スカラロボット12は、関節128,129の駆動により、図1における左側に退避した状態にあり、基部11のワーク設置位置上空は開放されている。以上の状態において、外部の搬送装置によりワーク900が搬入され、基部11上のワーク設置位置に設置される。ワーク900が設置されると、制御部20は、図5のフローを開始する。
【0067】
ステップS2において、制御部20は、規定本数のネジを締めたかどうかの判定を行なう。具体的には、制御部20は、ワーク900の穴の数と締結済み本数とを比較して、締結済み本数がワーク900の穴の数と等しいか否かを判断する。
【0068】
制御部20は、締結済み本数がワーク900の穴の数と等しくなければ、規定本数のネジを締めていないと判断し(ステップS2においてNO)、ステップS4において、スカラロボット12を既定の穴位置へ移動させる制御を行なう。具体的には、制御部20は、ワーク900が所定位置に置かれたときの各穴位置にネジ締めドライバ135の軸を一致させるための関節128,129の角度の組をあらかじめ記憶部230に格納しており、次の穴位置に対する関節128,129の角度を記憶部230から読み出して、ロボット制御部21に目標として指示する。これにより、スカラロボット12は、組付け部13を移動し、ネジ締めドライバ135の軸がワーク900の穴の所定位置の上空に移動する。この結果、前述のワーク900の設置位置誤差により、ネジ締めドライバ135の軸とワーク900の穴とは±1.5mm以内の位置ずれを持つ。
【0069】
なお、上記比較に必要なワーク900の穴の数(本実施の形態では10)および締結済み本数は、予め記憶部230に格納されている。また、締結済み本数は、図5の制御フローの開始時に0クリアされ、後述のステップS12に入るたびに1ずつ加算される。
【0070】
ステップS6において、制御部20は、後述する図6のフローによるネジ締め動作の制御を開始する。当該ネジ締め動作の制御は、図5のフローと並行して実行される。制御部20は、ネジ締め動作が開始されると、ステップS8において、ネジ締め動作の完了を待つ。具体的には、制御部20は、後述の図6のフローが完了するまで、図5に示した処理を停止して待機する。
【0071】
ステップS10において、制御部20は、ビット1351を退避させる制御を行なう。具体的には、制御部20は、まず、直動軸131,132,133を駆動させて各々の原点位置へと直動軸131,132,133を移動させる。ステップS12において、制御部20は、次のネジを取得するための制御を行なう。
【0072】
制御部20は、スカラロボット12の関節128,129を駆動して、スカラロボット12を所定の供給姿勢へと移動させる。「所定の供給姿勢」とは、直動軸131,132が原点位置にあるときにネジ締めドライバ135の軸がネジ供給機構14の供給位置上に位置する関節角度の組合せである。当該組合せは、予め記憶部230に格納されている。さらに、制御部20は、直動軸133を所定の供給高さに下降させる。この場合の所定の供給高さは、ビット1351およびネジ吸着機構136が供給位置に供給されているネジ800の頭部に接触する高さである。なお、ネジ吸着機構136は真空吸引を行っているため、ネジ800は上方へ吸引され、ネジ800の頭部の十字穴がビット1351と噛み合う。次いで、制御部20は、直動軸133を駆動して、直動軸133を原点位置に移動させる。ネジ供給機構14は、ネジ800が吸着され取り去られたことを検知すると、次のネジ800を供給位置に供給する。
【0073】
制御部20は、締結済み本数がワーク900の穴の数と等しければ規定本数のネジを締めたと判断し(ステップS2においてYES)、ステップS14において、スカラロボット12を退避させる制御を行なう。具体的には、制御部20は、スカラロボット12を上記開始前の退避位置に移動させる制御を行なう。以上により自動組付け装置1によるワーク900への所定本数のネジ締めが完了する。ネジ締めが完了すると、外部の搬送装置によりワーク900が搬出される。
【0074】
図6は、図5のステップS6の詳細な処理の流れを示したフローチャートである。図6の制御フローは、組付け部13がネジ締めドライバ135の軸とワーク900の穴との位置誤差を適切に補正してネジ締めを行なうためのアルゴリズムである。制御部20は、内部計算のために、変数として、振幅X1と、推力X2と,角度X3と,位相PHIXと、位相PHIYとを記憶しており、下記の各計算により各々の値を更新する。また、制御部20は、式(1)〜(15)と、各々が定数である、アトラクタ座標(X11,X21)〜(X15,X25)、アトラクタ値X31〜X35、判定距離DISG、制御周期CYCC、振動周期CYCS、閾値である許容力FMAX、および円周率π等を予め記憶している。アトラクタ座標(X11,X21)〜(X15,X25)の各々は、押付け力の基準値と、移動の幅の基準値との組で構成される。アトラクタ値X31〜X35の各々は、移動方向についての基準値である。
【0075】
図6のフロー開始時点で、制御部20は、以下の初期化を行なう。制御部20は、振幅X1と推力X2とを、後述するアトラクタAt1の値に合わせて、X1=X11,X2=X21に設定する。制御部20は、角度X3,位相PHIX,PHIYを、それぞれ0に設定する。制御部20は、位置PX,PY、PZを0に設定する。図6のフロー開始時点で、直動軸131,132は原点位置にあり、ネジ締めドライバ135の軸線とワーク900の穴中心とが所定の誤差範囲内(本実施の形態では±1.5mm以内)の値だけずれた状態にある。
【0076】
図6のフロー開始後、ステップS102において、制御部20は、ネジ800の先がワーク900に接触しているかどうかの判定を行なう。具体的には、制御部20は、力センサ134から力FZを読み出し、所定の閾値FTより大きいか否かを判定する。当該閾値FTは、1.0Nであり、予め制御部20に格納されている。
【0077】
制御部20は、力FZが閾値FTより大きい場合に、ネジ800の先がワーク900に接触していると判断し(ステップS102においてYES)、ステップS104において、パラメータX1,X2,X3の更新を行なう。具体的には、制御部20は、記憶部230に格納している以下の各種パラメータ(パラメータX1,X2,X3除く)の更新計算を、後述する式(5)〜(15)で示す手順に従って実行することにより、振幅X1、推力X2、角度X3を更新する。
【0078】
後述の計算の結果、力センサ134からの出力に基づいて、ネジ800の先がワーク900の穴に入るにつれて振幅X1を減少させ、推力X2を増加させる変化が生じる。これにより、自動組付け装置1は、ネジ800の先が穴に入っていくと横移動の振幅を狭めつつ押付を強める。このため、自動組付け装置1は、ネジ800を倒すことなく、ネジ800の先を穴の中心に精度良く収束させることができる。
【0079】
逆に、ネジ800の先がワーク900の穴に入らない場合は、振幅X1を増大させ、推力X2を減少させる変化が生じる。これにより、自動組付け装置1は、ネジ800の先が穴に入らないと、軽い押付け状態でより広い範囲を探索するため、ワーク900を傷つけず、かつ大きなずれ量に対しても探索を行なうことができる。
【0080】
また、角度X3は、ネジ800の先がワーク900の穴に合わされていく間は固定され、ネジ800の先がワーク900の穴と長時間合わない場合は、別の角度に変化するように振舞う。これにより、自動組付け装置1は、穴がない方向に探索方位を固定することがなく、効率的に探索を行なうことができる。
【0081】
ステップS106において、制御部20は、ネジ締め開始の条件を満たしたか否かを判断する。具体的には、制御部20は、ステップS104にて更新した振幅X1と推力X2とが、それぞれ所定の値X1Gおよび所定の値X2Gに十分近いかどうかを、下記の式(1)で算出されるDIFが所定の判定値DIFGより小さいか否かで判断する。
【0082】
【数2】
【0083】
上記DIFが所定の判定値DIFGより小さい場合、すなわち(X1,X2)がアトラクタ座標(X15,X25)に近い場合、制御部20は、ネジ800がワーク900の中心に一致したと判断して、ネジ締め開始の条件を満たしたと判断する。この場合、制御部20は、処理をステップS108に進める。
【0084】
一方、DISが所定の判定値DIFGより小さくない場合、制御部20は、(X1,X2)がアトラクタ座標(X15,X25)に近くないと判断し、ネジ締め開始の条件を満たしていないと判断する。この場合、制御部20は、処理をステップS118に進める。なお、アトラクタ座標(X15,X25)は、後述するアトラクタAt5の位置を示している。ステップS118において、制御部20は、位相更新の計算を行なう。
【0085】
図7は、図6のステップS118の処理の詳細を示したフローチャートである。詳しくは、図7は、位相更新の処理の流れを示したフローチャートである。制御部20は、図7に示す制御フローによって、位相PHIXおよび位相PHIYを更新する。位相PHIX,PHIYは、ラジアン[rad]の単位で表される値であり、後述のS55において振動動作を生成するための入力値である。位相PHIXとPHIYとの更新処理は実質的に同じであるため、以下では両者を代表して、PHIXの更新処理について説明する。
【0086】
ステップS202において、制御部20は、反力が大きいかの判定を行なう。具体的には、制御部20は、前回の移動量MXと最新の力センサ出力FXとの積を計算し、積の符号が負の場合であって、かつFXの絶対値が所定の許容力FMAXよりも大きい場合に、反力が大きいと判定する。この場合、制御部20は、処理をステップS204に進める。なお、積の符号が負となるのは、移動方向と力の向きとが逆の場合である。積の符号が負でないか、またはFXの絶対値が許容力FMAXよりも小さい場合、制御部20は、反力が大きくないと判定する。この場合、制御部20は、処理をステップS206に進める。ステップS206において、制御部20は、以下の式(2)による位相進めの計算を行なう。
【0087】
PHIX=PHIX+2π/(CYCS/CYCC) … (2)
CYCSは、ステップS120により出力する振動動作の周期である。本実施の形態においては、CYCS=300[msec]である。制御部20は、制御周期CYCC毎に上記計算を行なうので、PHIXは周期CYCSの間に0から2πまで変化する。さらに制御部20は、計算後のPHIXが2πより大きいか否かを判断し、PHIXが2πより大きい場合にはPHIXを0にクリアする。このような処理により、PHIXは0〜2πの間で繰返し増加する。なお、本実施の形態では、制御周期CYCCは、2[msec]である。このように、位相PHIXは、制御周期CYCC毎に予め定められた規則に基づき変化する。具体的には、2[msec]毎に、PHIXは、π/75だけ進むことになる。
【0088】
ステップS204において、制御部20は、以下の位相リセットの処理を行なう。制御部20は、MXが0より小さい場合、PHIXを3π/2に書き換える。制御部20は、MXが0より大きい場合、PHIXをπ/2に書き換える。当該書き換え処理により、次回のステップS120における移動量の算出において、ネジ800の移動方向が反転されて直前の移動と反対の方向にネジ800が進むことになる。以上により、PHIXの位相更新が完了する。なお、PHIYについては上記処理でPHIXをPHIYに、FXをFYに置き換えた処理が行われる。
【0089】
許容力FMAXは、ネジ吸着機構136が吸着しているネジ800の先端を横方向に押したときに、吸着状態を保てなくなってネジ800が落下するときの力の大きさである。なお、許容力FMAXは、予め実験により求めた値である。以上の処理により、ネジ800に対してネジ吸着機構136の吸着力を超えるような横方向の力を加えることが防止され、ネジの外れが防止できる。それゆえ、ネジ800の組付け処理の信頼性を高めることができる。
【0090】
再度、図6を参照して、ステップS120において、制御部20は、探索用の移動量の計算を行なう。具体的には、制御部20の設定部220は、直動軸131,132,133の移動量MX,MY,MZを以下の式(3.1),(3.2),(3.3)により算出する。
【0091】
MX=X1×cos(PHIX)×cos(X3) … (3.1)
MY=X1× cos(PHIY)×sin(X3) … (3.2)
MZ=GZ×(FZ−X2) … (3.3)
GZは、Z方向の力フィードバックのゲイン定数である。数式(3.1),(3.2)により、直動軸131および直動軸132は、先端に取り付けられたネジ締めドライバ135を、振幅X1、水平面内の角度X3,周期CYCSの正弦波型の速度(2msec当たりの移動量)で駆動する。
【0092】
このように、自動組付け装置1では、設定部220が、移動の幅を示す変数(X1×cos(X3),X1×sin(X3))に予め定められた位相(PHIX,PHIY)を有する正弦関数を乗じた値を、移動の量(MX,MY)として設定する。なお、正弦関数の代わりに、余弦関数を乗じてもよい。
【0093】
なお、角度X3が更新されない間は、ネジ800は、各回の移動において、角度X3で規定される方向に、順次位置を更新しつつ移動することになる。ただし、ステップS204において位相PHIXまたは位相PHIYがリセットされた場合には、速度(2msec当たりの移動量)を示すベクトルの向きが前回とは反対向きとなる。直動軸133は、ネジ800の先からの反力FZを、推力X2に保って押付けるように動作する。
【0094】
さらに、制御部20は、範囲制限のための計算を行なう。具体的に説明すると、以下のとおりである。設定部220は、ネジ800の組込み方向に垂直な方向における移動によって、ネジ800が、ネジ800がワーク900に最初に接触した位置から予め定められた距離以上離れたか否かを判断する。設定部220は、予め定められた距離以上離れたと判断すると、最初に接触した位置から当該予め定められた距離未満の範囲内にネジ800が位置するように、移動の方向および移動の量を設定する。
【0095】
さらに詳しく説明すると、以下のとおりである、制御部20は、以下の式(3.4)と式(3.5)とにより、PXとPYとを総合した、開始位置からの距離が所定の閾値DISRを越えると、開始位置PX=0,PY=0に戻る方向への移動量MRを加える。
【0096】
【数3】
【0097】
【数4】
【0098】
式(3.4)の右辺の第2項において、PX/|PX|はPXの符号を表し、右辺の第2項全体はPXが正の時は負、PXが負の時は正の値となる。Sはステップ関数であり、S(x)はx<0において0、x≧0において1を出力する。したがって、式(3.4)および式(3.5)におけるステップ関数の項は、PXとPYとを総合した距離がDISR以上のときに1、当該距離がDISR未満のとき0となる。このため、右辺の第2項全体は、距離がDISR以上のときだけ、移動量MX,MYを所定量であるMRだけ小さくする。つまり、PXおよびPYを0(開始位置)に近づける作用をする。このような処理により、ネジ800の先の位置PX、PYが初期値0から際限なく離れてしまうことを防止できる。それゆえ、穴の探索失敗が防止されるとともに、所定誤差内にある穴を探索する効率が向上する。なお、閾値DISRは1.5mmである。
【0099】
制御部20は、移動量MX,MY,MZを、それぞれ記憶部230に格納している目標位置PX,PY,PZに加算することにより、目標位置PX,PY,PZを更新する。制御部20は、算出した移動量MX,MY,MZを、組付け制御部22に指令し、これにより直動軸131,132,133が駆動する。その後、制御部20は、所定の制御周期CYCCだけ待機した後、ステップS102に再度進む。つまり、移動部260は、予め定められた周期(制御周期CYCC)毎に移動を実行することになる。
【0100】
制御部20は、ネジ締め開始の条件を満たしたと判断した場合(ステップS106においてYES)、ステップS108において、ネジ締め開始処理を行なう。具体的には、制御部20は、ネジ締めドライバ135に対して締結開始の指令を送る。当該指令により、ネジ締めドライバ135は、ビット1351の回転を開始し、トルク管理に基づいたネジ締め制御を行なう。
【0101】
ステップS110において、制御部20は、ネジ締め用の移動量の計算を行なう。具体的には、制御部20は、以下の力フィードバック計算による移動量MX,MY,MZの算出を行なう。
【0102】
MX=GX×FX … (4.1)
MY=GY×FY … (4.2)
MZ=GZ×(FZ−FZF) … (4.3)
GX,GY,GZは、それぞれX,Y,Z方向の力フィードバックのゲイン定数である。推力FZFは、締結用の押付け力であり定数である。本発明において推力FZFは、20[N]である。GX,GY,GZおよびFZFは、予め記憶部230に格納されている。制御部20は、算出した移動量MX,MY,MZに基づく指令を、組付け制御部22に送信する。組付け制御部22は、当該指令に基づき、直動軸131,132,133を駆動させる。制御部20は、移動量MX,MY,MZを、それぞれ記憶部230に記憶している目標位置PX,PY,PZに加算し、目標位置PX,PY,PZを更新する。その後、制御部20は、所定の制御周期CYCCだけ待機した後、ステップS112に処理を進める。
【0103】
ステップS112において、制御部20は、ネジ締め中止判定を行なう。制御部20は、ネジ締めドライバ135の出力を読出し、エラー停止またはタイムオーバー出力が出されている場合には、ネジ締め中止と判断し(ステップS112においてYES)、ステップS102に処理を進める。これにより、ネジ締め開始後に異常が発覚した場合でも、再度探索動作からやり直すこととなり、ネジ締めの信頼性が高められる。
【0104】
制御部20は、ネジ締め中止と判断しなかった場合、ステップS114において、ネジ締め完了判定を行なう。制御部20は、ネジ締めドライバ135の出力を読出し、完了信号がオン状態か否かを判断する。完了信号がオン状態(フラグが立っている状態)の場合、制御部20は、ネジ締め完了と判断し(ステップS114においてYES)、図6のネジ締めフローを完了する。制御部20は、完了信号がオフ状態(フラグが立っていない状態)の場合、ネジ締め完了と判断せず(ステップS114においてNO)、処理をステップS110に進める。
【0105】
制御部20は、力FZが閾値FTより大きくない場合に、ネジ800の先がワーク900に接触していないと判断し(ステップS102においてNO)、ステップS116において、降下用の移動量計算を行なう。具体的には、制御部20は、MX=0、MY=0とする。すなわち、制御部20は、直動軸131,132を移動させない。また、制御部20は、MZ=−ZDとする。すなわち、制御部20は、直動軸133を一定量ZDだけ降下させる制御を行なう。制御部20は、算出した移動量MX,MY,MZに基づく指令を、組付け制御部22に送信する。組付け制御部22は、当該指令に基づき、直動軸131,132,133を駆動させる。
【0106】
制御部20は、移動量MX,MY,MZを、それぞれ記憶部230に格納している目標位置PX,PY,PZに加算し、目標位置PX,PY,PZを更新する。その後、制御部20は、制御周期CYCCだけ待機した後、ステップS102に再度進む。ネジ800の先がワーク900に接触していない場合に直動軸131および132の移動量を0とする理由は、ネジ800の倒れを防止するためである。
【0107】
図8は、ネジ吸着機構136に吸着したネジ800をワーク900に組付ける作業の遷移を示した図である。図8を参照して、ネジ800の先端部802(以下、「ネジ先802」とも称する)がワーク900の穴700に入りかけた状態で、ネジ800を図の横方向に移動させると、ネジ800の先側面がワーク900に押される。このときネジ800の先下面がワーク900に接触していない状態ではネジ800をワーク900に垂直に保とうとする反力FXおよびFYが弱い。反力FXおよびFYが弱いと、ステップS118における力制限が正しく作用せず、ネジ800が倒れて作業が失敗する虞がある。
【0108】
また、ZDは、高速化のため、ワーク900の衝撃許容範囲でなるべく大きな値を設定する。ZDの実際の設定方法としては、力センサ134で衝撃量を見ながら、ZDを増加させて繰り返し下降動作を行い、力FZのピーク値がワーク900の許容値程度になったところでZDを確定する。
【0109】
<パラメータX1,X2,X3の更新処理の詳細>
以下では、ステップS104におけるパラメータ更新の詳細を説明する。パラメータ更新は、分子のブラウン運動等を記述するランジュバン方程式を元に拡張した式(5)および式(12)を利用する。具体的には、パラメータ更新は、振幅X1、推力X2および角度X3を、ランダム性と基準値(アトラクタ座標)への収束性との複合作用により、ワーク位置および反力情報に基づいて変化させる計算である。式(5)および式(12)の計算に必要な中間計算値は、後述の式(6)〜(11)および式(13)〜(15)により、式(5)および式(12)の計算の前に算出される。振幅X1および推力X2は、下記の式(5)により更新される。
【0110】
(X1,X2)=(X1,X2)+dF(X1,X2)×Act+UG×(U1,U2)+(BG1,BG2)×(Act−Act0) … (5)
式(5)におけるdF(X1,X2)は後述する式(6)〜(8)で定義される関数である。Actは、後述する式(9)で算出されるアクティビティ値である。U1、U2は、正規分布パターンを持つノイズ生成器から生成されるノイズ値である。U1およびU2は、期待値0、標準偏差1の乱数として生成される。ノイズゲインUGは、ノイズU1,U2の影響の大きさを決める定数であり、予め記憶部230に格納されている。
【0111】
なお、式(17)に関する説明において述べたように、Actは、評価の結果を表すパラメータ(第1の変数)である。また、UG×(U1,U2)は、パラメータActの増減に相反して増減するノイズμを表す項である。dF(X1,X2)は、アトラクタを有する制御関数f(P)である。
【0112】
式(5)に示したゆらぎ方程式(第1のゆらぎ方程式)は、右辺の第4項として、Actと予め定められた定数Act0との差分を含む項をさらに備える。BG1、BG2は、バイアスゲイン定数である。Act0は、アクティビティActの基底値となる定数である。式(5)の右辺の第4項は、アクティビティActの大きさによって作業の進む方向または戻る方向に、振幅X1および推力X2を変化させる作用をする。具体的には、本実施の形態においては、BG1=−0.06、BG2=0.06、Act0=1.0である。これにより、アクティビティActがAct0より大きいときには、振幅X1を減少させ、推力X2を増加させる変化が加わる。逆に、アクティビティActがAct0より小さいときには、振幅X1を増加させ、推力X2を減少させる変化が加わる。
【0113】
振幅X1(第2の変数)について述べると、設定部220は、ActがAct0よりも大きい場合には、振幅X1を小さく設定し、ActがAct0よりも小さい場合には、振幅X1を大きく設定する。
【0114】
次に、式(5)における関数dF(X1,X2)について説明する。dF(X1,X2)は、以下の式(6)に示すように、関数F(X1,X2)を、X1方向およびX2方向に微分した値からなるベクトルを出力する関数である。
【0115】
【数5】
【0116】
F(X1,X2)は、X1,X2で構成する2次元空間中において、以下の予め設定されたi個のアトラクタ座標(X11,X21)〜(X1i,X2i)のそれぞれを中心とするガウス分布Gn(X1,X2)を重ね合わせた、混合ガウス関数である。
【0117】
F(X1,X2)=G1(X1,X2)+G2(X1,X2)+ … +Gi(X1,X2) … (7)
Gn(X1,X2)=exp(−0.75×((X1−X1n)^2+(X2−X2n)^2))) … (8)
式(8)において、GnおよびX1n,X2n中のnは1〜iのどれかの整数である。本実施の形態では、アトラクタ数i=5であり、アトラクタAt1〜At5が存在する。アトラクタAt1〜At5の座標(X11,X21)〜(X15,X25)は、記憶部230に予め格納されている。なお、“^(ハットマーク)”は、べき乗計算を示す演算子である。
【0118】
図9は、関数F(X1,X2)の出力を、X1,X2平面上の高さとしてプロットした曲面をグラフ化した図である。図9(a)は、X1,X2平面を垂直に見たときの等高線図であり、図9(b)はX1,X2方向に等間隔でF(X1,X2)をプロットした斜視図である。図9を参照して、F(X1,X2)は、At1(X11,X21)〜At5(X15,X25)をそれぞれ中心とする5個のガウス分布の凹み形状を重ね合わせた形状となっている。式(2)のdF(X1,X2)は、図9における曲面上の位置(X1,X2)における傾斜量を表している。すなわち、式(5)におけるdF(X1,X2)×Actの項の作用は、図9の斜面によるパラメータX1,X2の移動として表現されている。当該項は、X1,X2が最寄のアトラクタ座標(X1n,X2n)に近づくように作用し、その作用(傾斜)はアクティビティActによって増減する。
【0119】
アトラクタ座標(X11,X21)〜(X15,X25)は、人がネジ締め作業を行なう際の状態変化に合わせた配置されている。人は、まず弱い推力でネジ800をワーク900に押し当てて、横に広い範囲で動かしてネジ先802を穴700に入れる。ネジ800が穴700に入ると人はネジ800の推力を強め、狭い範囲でネジを動かして穴700の中心とネジ先802を一致させる。これに相当するように、アトラクタ位置(X11,X21)は、大きい振幅と小さい推力との座標を持ち、アトラクタ位置(X15,X25)は、小さい振幅と大きい推力との座標を持ち、残りのアトラクタ座標(X12,X22)〜(X14,X24)は、上記2点間を概ね等間隔に補間するように配置されている。具体的な(X11,X21)〜(X15,X25)の値のうちX21,X25は、人のネジ締め作業を力センサによって測定した値を元に設定する。また、X11は、装置の仕様に基づいて決定すればよい。X15は、X25以上の圧力が加わった場合における実際の移動量に基づいて決定すればよい。
【0120】
アクティビティActは、より具体的には、作業が進展しているかどうかを評価する評価関数であり、以下の式(9)で記述される。
【0121】
Act=K×VZ+S(VF−VFG)×BO … (9)
式(9)の右辺第1項において、Kは定数である。VZは、直近の過去における位置PZの変動の大きさを評価する関数であり、以下の式(10.1)で定義される。
【0122】
VZ=ME2Z−MEZ^2 … (10.1)
MEZは、位置PZの指数移動平均である。ME2Zは、PZの2乗の指数移動平均である。MEZおよびME2Zは、忘却係数λZに基づいて、それぞれ以下の式(10.2),(10.3)により更新される。
【0123】
MEZ=λZ×MEZ+(1−λZ)×PZ … (10.2)
ME2Z=λZ×ME2Z+(1−λZ)×PZ^2 … (10.3)
以上の式に基づくVZは、位置PZの分散を表す。PZが時間とともに少しずつ変動する場合には、VZは小さな値をとり、短時間の内に上下に大きく変動した場合には、VZは増大する。
【0124】
式(9)の右辺第2項において、Sはステップ関数であり、S(x)はx<0において0、x≧0において1を出力する。閾値VFGおよびボーナス量BOは、定数である。力変動VFは、横方向における力の変動の激しさを評価した値であり、以下の式(11.1)で定義される。したがって、式(9)の右辺第2項は、VF≧VFGのときBOを返し、VF<VFGのとき0を返す。これにより、横方向の力の変動が大きいときだけ、Actはボーナス量BOだけ大きな値をとる。
【0125】
【数6】
【0126】
MEXは、反力FXの指数移動平均である。ME2Xは、反力FXの2乗の指数移動平均である。MEYは、反力FYの指数移動平均である。ME2Yは、反力FYの2乗の指数移動平均である。MEX,ME2X,MEY,ME2Yは、忘却係数λXYに基づいて、それぞれ以下の式(11.2),(11.3),(11.4),(11.5)により更新される。
【0127】
MEX=λXY×MEX+(1−λXY)×FX … (11.2)
ME2X=λXY×ME2X+(1−λXY)×FX^2 … (11.3)
MEY=λXY×MEY+(1−λXY)×FY … (11.4)
ME2Y=λXY×ME2Y+(1−λXY)×FY^2 … (11.5)
以上の構成による式(9)の右辺第2項は、ネジ800と穴700との芯出しが完了した時にアクティビティActを増大させるための項である。ネジ800がワーク900の穴底に一致すると、XおよびY方向に移動させようとしたときの力変動VFが増加する。この力変動VFを予め測定しておき、軸が一致したときの力変動VFよりやや低い値に、閾値VFGを設定しておく。閾値VFGは、予め定めて記憶部230に格納されている。軸が一致すると、VF≧VFGとなるため、アクティビティActが増大し内部状態(X1,X2)がアトラクタAt5に向かって素早く変化する。この結果、芯出しがされると、内部状態(X1,X2)がアトラクタ値(X15,X25)に接近して、ステップS106においてネジ締め開始の条件を満たした(YES)と判断される。
【0128】
さらに、制御部20は、算出したActに対して、以下の丸め処理を行なう。制御部20は、Actが所定の上限値ActMAXより大きいか否かを判断し、Act>ActMAXであった場合、Act=ActMAXの代入処理を行なう。制御部20は、Actが所定の上限値ActMINより小さいか否かを判断し、Act<ActMINであった場合には、Act=ActMINの代入処理を行なう。本実施の形態では、ActMAX=2.0、ActMIN=0.9であり、これらの値は予め記憶部230に格納されている。
【0129】
以上により、式(5)に代入されるアクティビティActが算出される。アクティビティActは、ワーク900の上面に沿って動こうとするネジ先802の、位置および力変動の激しさを示す指標となる。
【0130】
また、角度X3は、以下の式(12)に示すゆらぎ方程式(第2のゆらぎ方程式)により更新される。なお、F’(X3)は、F(X3)の微分を表わすものではない。上述したF(X1,X2)と異なる関数であることを示すために、記号「’」を用いている。
【0131】
X3=X3+dF’(X3)×Act+UG3×U3 … (12)
dF’(X3)は、関数F’(X3)を、X3方向に微分する関数である。U3は、期待値0、標準偏差1のノイズ生成器から生成される乱数である。UG3は、ノイズU3の影響度を決める定数であり、予め記憶部230に格納されている。
【0132】
【数7】
【0133】
F’(X3)は、以下の予め設定されたi個のアトラクタ値X31〜X3iのそれぞれを中心とするガウス分布G’n(X3)を重ね合わせた、混合ガウス関数である。
【0134】
F’(X3)=G’1(X3)+G’2(X3)+ … +G’i(X3) … (14)
G’n(X3)=exp(−0.75×(X3−X3n)^2) … (15)
本実施の形態においては、i=5であり、5個のアトラクタ値X31〜X35が存在する。アトラクタ値X31〜X35は、0〜2πを5等分するように配置されており、X31=0、X32=2π/5、X33=4π/5、X34=6π/5、X35=8π/5、である。以上の計算の結果、角度X3は、以下のように振舞う。
【0135】
ネジ先802がワーク900の穴に入る方向に進んでアクティビティActが大きいとき、角度X3は、アトラクタ値X31〜X35のうち一番近い値に引き込まれてほぼ一定の値を保つ。ネジ先802がワーク900の穴700に一致せずアクティビティActが小さいとき、角度X3は、ノイズU3の影響を大きく受けて0〜2πの間でランダムに変化する。このため、ネジ先802がワーク900の穴700に入りにくい場合には、角度X3が変化して、より広い範囲を探そうとする挙動が発生する。
【0136】
<ネジ締め動作のまとめ>
次に、図6に示したフローによるネジ締め動作を、図10および図11を用いて説明する。
【0137】
図10は、ネジ締めドライバ135の先端周辺(つまり、ネジ吸着機構136が設けられている箇所)を表す図である。より詳しくは、図10は、ワーク900へのネジ800の組付け作業の遷移を示した図である。
【0138】
図11は、パラメータの時系列変化をグラフ化した図である。図11は、横軸が時間、縦軸が各パラメータの単位で描かれている。図11において、アクティビティAct、振幅X1、推力X2、および位置PZは左軸でプロットしており、下端が0である。一方、力FXおよび位置PXは、右軸でプロットしており、グラフ右側に記した0位置が0である。力FZと位置PYとは、それぞれ力FX、位置PXと同様の挙動を示すが、図11においては示していない。図11におけるFXの0線(右端縦軸)の上下の点線が、ステップS118における処理で用いる許容力FMAXを表す。
【0139】
まず、ネジ先802が空中にあるときはステップS116の計算により、制御部20は、ネジ800を高速で降下させる。具体的には、制御部20は、ネジ800の組込み方向における移動の量(制御周期CYCC毎の移動量)をネジ800がワーク900に接触しているときの移動の量よりも増加させる。
【0140】
ネジ先802が空中にあるのは、ネジ締めフロー開始直後(図10(a))、およびステップS104,106,118,120による探索移動によってネジ先802が穴700に入るとき(図10(c))である。図11においては、図10(c)は時間が短いため識別できない。
【0141】
ネジ先802がワーク900に接触すると、制御部20は、ステップS104,106,118,120の計算によって、ネジ先802をワーク900に押付けつつ横に滑らせて、穴700の探索を行なう(図10(b))。探索動作は、「反力測定」→「アクティビティ算出(ステップS104)」→「内部状態(X1,X2,X3、他)更新(ステップS104)」→「作業状態判断(ステップS106)」→「ネジ800の移動(ステップS120)」→「反力測定」→ … の繰り返しにより実行される。
【0142】
位置PX,PYは正弦波形状で駆動され、摩擦力により反対方向に力FX、FYが発生する。FXの絶対値がFMAXより大きく、かつPXの移動と反対方向に発生した場合(図11におけるRESET)、ステップS118の処理によりPXの移動方向が反転され、ネジ800は逆方向に移動し始める。制御部20は、位置PZおよび反力FX,FYの変化に基づきステップS104において内部状態を変化させ、始めは弱い押付で広い範囲を探し、穴700に入るにつれて推力X2を強く、かつ振幅X1を狭くしていく。
【0143】
ネジ先802がワーク900の穴700に入るとネジ800の位置が拘束されるため、ステップS120による振動動作を行った際に位置PZの変動が激しくなる。このため、式(9)によって、アクティビティActが増加する。アクティビティActが増加すると、式(5)にて振幅X1が減少し、推力X2が増加していく。
【0144】
アクティビティActが1よりも大きな値をとり続けると、パラメータ(X1,X2)は、(X11,X21)から離れ、(X15,X25)に向かって遷移する。さらに、ネジ先802が穴700の底に一致した状態(図10(d))になると、式(9)におけるVFが増加してVFGよりも大きくなり、式(9)の右辺第2項が0からBOに変化する。この様子は、図11におけるアクティビティActの階段状の変化として、探索動作の終了直前に現れている。
【0145】
式(9)の右辺第2項がBOに変化することに基づくアクティビティActの増加によって、パラメータ(X1,X2)が(X15,X25)に向かう変化が加速される。パラメータ(X1,X2)が(X15,X25)に十分近い状態になると、制御部20は、ステップS106においてネジ800がワーク900の穴に一致したと判断し、ネジ締め開始の条件を満たした(ステップS106においてYES)と判断する。これにより、ステップS108において、ネジ締めが開始される。制御部20は、ネジ締めを開始させると、ネジ締めの中断または完了までネジ締めを続行させる。
【0146】
以上の構成により、以下の特徴を有する自動組付け装置1が実現される。
・自動組付け装置1は、ネジ800の半径程度までの誤差に対して、ネジ先802を動かして穴700の位置を探索する。自動組付け装置1は、探索が完了した後にネジ締めを行なう。したがって、ネジ締めの失敗が少なく、かつ高信頼のネジ締め装置が実現できる。
【0147】
・自動組付け装置1は、反力と位置変動とを元に算出した作業の進行度の評価(アクティビティ)が低い場合にランダム性を増加させ、水平移動の振幅を増加させて探索を行なう。それゆえ、自動組付け装置1は、ネジ800と穴700との初期ずれ量が未知の状況において、徐々に範囲を広げて探索を行なうことができる。したがって、探自動組付け装置1は、探索失敗を極力減らしてネジ締めを達成できる。また、自動組付け装置1は、ネジ800と穴700との初期ずれ量が小さい場合には、反力と位置の変動とが増加してアクティビティを増加させ、パラメータが振幅を減少させ推力を増す方向(図9で左上方向)に変化させる。これにより、自動組付け装置1は、探索を収束させ、素早くネジ締結を開始する。それゆえ、自動組付け装置1は、素早く探索を完了してネジ締めを行なうことができる。さらに、図16に示すバリ990や局所的に高い摩擦力が生じる箇所等がある場合にも、制御部20の評価部210の動作によって、押付け力を下げ、かつ横移動幅を広げて探索できる。それゆえ、ネジ800は、バリ990や局所的に高い摩擦力が生じる箇所を乗越えるか、あるいは回り込んで穴700に到達ことができる。したがって、自動組付け装置1は、探索の信頼性を向上できる。
【0148】
・探索中にネジ先802が穴700から外れた場合、反力が低下することによって、アクティビティが低下する。このため、パラメータは、振幅を増加させ、かつ推力を減らす方向(図9で右下方向)に変化する。それゆえ、自動組付け装置1は、自動的に広域の探索に再度移行するため、さらに信頼性が高められる。
【0149】
・自動組付け装置1は、ネジ先802が穴700に入ったか否かを反力の上昇に基づいて判定するので、画像等による非接触の方式と比べて誤検出が少ない。また、自動組付け装置1は、ネジ800の挿入と並行して、探索およびフローに示した判定処理を行なう。それゆえ、自動組付け装置1は、測定時間が増加することなく、高速な組付け処理を実現できる。
【0150】
・自動組付け装置1は、ネジ800がワーク900と接触することによりネジ800が倒れかけた場合に、ゴム部材1361を備えたネジ吸着機構136によって、ネジ800を垂直に戻す反力を発生させる。それゆえ、自動組付け装置1は、ネジ倒れによる組付けの失敗を防止できる。また、自動組付け装置1は、力センサ134によって、ネジ800が倒れかけている状態を正確に認識することができる。
【0151】
・自動組付け装置1は、横方向に過大な抗力を受けた場合に抗力の方向に移動する。それゆえ、自動組付け装置1は、探索移動中にネジ800を倒すことがない。このため、自動組付け装置1は、信頼性が高い。
【0152】
・自動組付け装置1は、ネジ先802がワーク900に押付けられていないときには、ネジ800を横方向に動かさない。それゆえ、自動組付け装置1は、ネジ800を倒すことがない。このため、自動組付け装置1は、信頼性が高い。また、自動組付け装置1は、ネジ先802がワーク900に押付けられていないときには、ネジ800を高速で下降させる。それゆえ、自動組付け装置1は、作業時間を短縮できる。このとき、ネジ締めドライバ135内の衝撃緩和機構によってワーク900の衝撃を緩和するため、自動組付け装置1は、ワーク900を傷つけることがない。
【0153】
・自動組付け装置1は、ネジ先802の位置が開始位置から所定距離以上離れた場合には、ネジ800の位置を戻す作用を有する。それゆえ、自動組付け装置1は、探索により際限なく移動することがない。したがって、自動組付け装置1は、トラブルを起こすことがなく、かつ開始位置近傍を効率よく探索することができる。
【0154】
<変形例>
上述した自動組付け装置1の一部を変更して、以下のような構成とすることも可能である。なお、以下では、自動組付け装置1の一部を変更した自動組付け装置を、説明の便宜上、「自動組付け装置M」と称し、上述した自動組付け装置1と区別する。
【0155】
図12は、自動組付け装置Mの一部の断面と、ワークの断面とを示した図である。図12を参照して、ネジを、より全長の長いネジ800Aとし、ワークをより穴の深いワーク900Aとする。ネジ800Aは、M3で、ネジ長18mmである。ワーク900Aは、ワーク910とワーク920とで構成される。ワーク910は、上側のワーク911と下側のワーク912の2層で構成され、ともに同じ径(φ3.8mm)のバカ穴が開けられている。ワーク920は、上側のワーク921と下側のワーク922との2層で構成されている。ワーク911とワーク912とは、事前に組付けられ一体となっている。同様に、ワーク921とワーク922とは、事前に組付けられ一体となっている。
【0156】
自動組付け装置Mは、ステップS118の力制限の判定に使用される許容力FMAX(閾値)だけが、自動組付け装置1とは異なっている。許容力FMAXはネジ吸着機構136に吸着されているネジ800の先端を横から押したときにネジが外れる限界の力であり、ネジの長さによって変化する。したがって、変更後の自動組付け装置においても適切な許容力FMAXを事前に測定し、記憶部230に予め格納しておく。自動組付け装置Mは、その他の構成は、自動組付け装置1と同一である。
【0157】
自動組付け装置Mによるネジ締め動作は以下の特徴をさらに有する。ワーク900Aがワーク911,912,921,922の4層構成となっていることから、新たにワーク同士の穴位置ずれが発生しうる。これによりネジ800Aを穴に入れる際、ワーク911とワーク912との間、ワーク912とワーク921との間において、ネジ800Aがワーク900Aの穴700Aに引っかかる場合がある。このとき、図6のフローによるネジ締め動作では、ネジ先802Aがワーク900Aに押付けられていれば探索動作を行ない(ステップS104,106,118,120)、離れていれば下降動作を行なう(ステップS116)。ワーク900Aのいずれの層間にずれがあってネジ800Aが何回引っかかるかは未知であるが、ネジ先802Aが穴底に当たってステップS106のネジ締め開始の条件判定されるまで探索と下降とが繰り返されるので、ネジ締め開始を誤判定することがない。このため、自動組付け装置Mは、信頼性の高いネジ締めが実現できる。
【0158】
また、自動組付け装置Mを、以下のような構成にしてもよい。力センサ134を、3軸方向の並進力に加えてZ軸周りのトルクTZを測定可能な4軸の力センサとする。また、図6に示したフローのステップS110において式(4.1)〜(4.3)の計算を行なう前に、新しいアクティビティAct2を上記4軸の力センサで検出した反トルクTZに基づいて算出するように、制御部20を構成する。また、反トルクTZが減少するほどAct2が大きな値を出力するように、制御部20を構成する。制御部20は、当該アクティビティAct2と、ランダム生成したノイズ信号と、式(14)と同様の式とに基づいて、推力X2を変化させる。当該推力X2を、式(4.3)においてFZFの代わりに使用した以下の式(16)によって、移動量MZを計算する。
【0159】
MZ=GZ×(FZ−X2) … (16)
この方法を用いると、反トルクTZを減少させるように推力X2が変化する。したがって、最適な推力X2が選択されることにより、摩擦抵抗を極小化してより高速にネジ締めを行なう、自動組付け装置を実現できる。
【0160】
また、自動組付け装置Mを、以下のような構成にしてもよい。上述した式(5)において、ノイズU1,U2として正規分布ノイズの代わりに、べき分布ノイズを使用するように、制御部20を構成してもよい。べき分布ノイズは、低確率で、正規分布の通常上限(3σ)に比べて非常に大きな値を出力する。この結果、振幅X1と推力X2とは低確率で非常に大きく変化するようになる。したがって、自動組付け装置Mは、探索動作が長時間行われたときに、振幅X1と推力X2とがより広い範囲で変化しやすくなる。自動組付け装置Mは、このような振幅X1と推力X2との特性を用いるため、ネジ締めドライバ135とワーク900,900Aとの穴位置との初期ずれ量が自動組付け装置1で説明したよりもさらに大きくなるような装置条件において、広い範囲での探索を、より効率的に行なうことができる。
【0161】
また、上記においては、ネジ800の組込み方向に垂直となる面内で、移動部260が設定部220により設定された移動の量だけネジ800を移動させる例を挙げて説明したが、ネジ800の代わりにワーク900を移動させる構成としてもよい。また、ネジ800とワーク900とを移動させる構成としてもよい。
【0162】
[実施の形態2]
本発明に係る自動組付け装置の他の実施態様について、図13を参照して説明すると以下のとおりである。本実施の形態に係る自動組付け装置は、挿入式の樹脂ピンをワークに挿入する点において、ネジ800をワーク900に挿入する構成を有する実施の形態1の自動組付け装置1装置とは異なる。
【0163】
図13は、本実施の形態に係る自動組付け装置1Aの一部を示した図である。図13を参照して、自動組付け装置1Aは、ネジ締めドライバ135の代わりに、把持機構139を持つ。ネジ供給機構14はネジ800の代わりに樹脂ピン600を供給する機構である。ワーク900Bは2層の板状のワーク930,940からなり、ワーク930とワーク940との重なる位置に同一径の穴が設けられている。
【0164】
樹脂ピン600は、板状の上部から下方向に固定用の爪が出た形状の樹脂製の固定ピンである。樹脂ピン600をワーク900Bの穴に挿入すると爪の引っ掛かりによって、ワーク930とワーク940とが固定される。把持機構139は、真空吸着式の部品把持機構である。把持機構139の下面には樹脂ピン600の上部と勘合する凹形状が形成されている。凹形状の内部に吸引用の真空源へと接続される穴が設けられている。
【0165】
自動組付け装置1Aの制御動作は、図6に示したフローにてネジ締めドライバ135を操作してネジの回転を開始および異常読出しを行なう処理を実行しないこと以外は、実施の形態1に係る自動組付け装置1と同一である。このような自動組付け装置1Aにより、挿入型の樹脂ピンを、位置ずれのある設置条件で、高信頼に自動挿入することができる。
【0166】
<制御部20のハードウェア構成>
図14は、実施の形態1、2における制御部20として機能するコンピュータシステム300のハードウェア構成を表わすブロック図である。
【0167】
コンピュータシステム300は、主たる構成要素として、プログラムを実行するCPU310と、コンピュータシステム300の使用者による指示の入力を受けるマウス320およびキーボード330と、CPU310によるプログラムの実行により生成されたデータ、又はマウス320若しくはキーボード330を介して入力されたデータを揮発的に格納するRAM340と、データを不揮発的に格納するハードディスク350と、DVD−ROM駆動装置360と、モニタ370と、通信IF380とを含む。各構成要素は、相互にデータバスによって接続されている。DVD−ROM駆動装置360には、DVD−ROM361が装着される。
【0168】
コンピュータシステム300における処理は、各ハードウェアおよびCPU310により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク350に予め記憶されている場合がある。また、ソフトウェアは、DVD−ROM361その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、DVD−ROM駆動装置360その他の読取装置によりその記憶媒体から読取られて、あるいは、通信IF380を介してダウンロードされた後、ハードディスク350に一旦格納される。そのソフトウェアは、CPU310によってハードディスク350から読み出され、RAM340に実行可能なプログラムの形式で格納される。CPU310は、そのプログラムを実行する。
【0169】
同図に示されるコンピュータシステム300を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、RAM340、ハードディスク350、DVD−ROM361その他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム300の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【0170】
なお、記録媒体としては、DVD-ROM、CD−ROM、FD(Flexible Disk)、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、IC(Integrated Circuit)カード(メモリカードを含む)、光カード、マスクROM、EPROM(Electronically Programmable Read-Only Memory)、EEPROM(Electronically Erasable Programmable Read-Only Memory)、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。また、記録媒体は、当該プログラム等をコンピュータが読取可能な一時的でない媒体である。
【0171】
ここでいうプログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【0172】
<付記>
(1)自動組付け装置は、挿入部品を把持する把持手段と、挿入部品とワークとの接触力を検出する力検出手段と、挿入部品の位置を変動させる変動手段と、変動手段の位置を変動させる量を算出するための算出手段と、ノイズ生成手段と、組付けが進んだかどうかを評価する評価手段と、探索動作の指標となる探索値を記憶する探索値記憶手段と、前記探索値の既定の基準値を記憶する基準記憶手段と、前記探索値を繰り返し更新する更新手段とを備える。当該自動組付け装置は、(a)前記評価手段は前記変動手段から得た挿入部品の位置と前記力検出手段から得た接触力とに基づいて組付けが進んだかどうかの評価となる変数Actを算出し、(b)前記評価手段は変数Actを組付けが進んだ場合には増加させ、組付けが進まない場合には減少させるように構成され、(c)前記更新手段は前記基準値と、前記評価手段が算出した変数Actと、前記ノイズ生成手段が生成したノイズμとに基づいて前記探索値を更新し、(d)前記更新手段は前記変数Actが増加するとノイズμの作用に対して相対的に探索値が基準値に近づく作用を増加させ、また変数Actが減少するとノイズμの作用に対して相対的に探索値が基準値に近づく作用を減少させるように構成され、(e)前記算出手段は前記探索値に基づいて変動手段による位置変動量を算出し、前記変動手段は前記位置変動量に基づいて挿入部品を移動させるように構成する。
【0173】
(2)前記評価手段は、挿入部品の挿入方向の位置変動率の増減に対応して前記変数Actを増減させる。さらに、前記評価手段は、挿入方向に垂直な面内方向の接触力の変動率の増減に対応して前記変数Actを増減させて算出する。
【0174】
(3)前記探索値は、挿入部品の押付け力Fと、移動幅Aとのセットで構成される。前記基準値は、押付け力の基準値と、移動幅の基準値とのセットで構成される。前記変動手段は、挿入部品を押付け力Fでワークに押付けつつ挿入軸に垂直な面内で移動幅Aの略振動動作を行なう。
【0175】
(4)前記更新手段は、さらに基底値Act0を予め記憶しており、前記探索値を更新する際に、前記変数Actが基底値Act0よりも大きい場合には探索値を狭域かつ高精度の動作を生成する状態へと変化させ、前記変数Actが基底値Act0よりも小さい場合には探索値を広域かつ素早い動作を生成する状態へと変化させる。
【0176】
(5)前記探索値は、さらに探索方向θを加えて構成される。前記基準値は、さらに探索方向の基準値を加えて構成される。前記更新手段は、さらに、探索方向θを上記基準値と上記変数Actとノイズμとに基づいて更新する。前記算出手段は、さらに、挿入軸に垂直な面内の探索方向θに沿って挿入部品を移動させることにより、部品組付けを行なう。
【0177】
(6)前記算出手段は、挿入部品の挿入方向に直交する方向の接触力が所定の閾値より大きい場合に、直行方向の力に沿って挿入部品を移動させるように、前記位置変動量を算出する。
【0178】
(7)前記算出手段は、前記力検出手段の出力を元に挿入部品とワークとの接触の有無を判定し、接触が検知されない間は挿入部品の挿入方向の移動量を増加させ、挿入方向に直交する方向の移動量を0とするように前記位置変動量を算出する。
【0179】
(8)前記算出手段は、前記位置変動量の累積値が所定の値より大きくなったときに、位置変動量の累積値を減少させるように位置変動量を変化させる。
【0180】
(9)前記挿入部品はネジであり、前記自動組付け装置はネジ締め用のドライバをさらに備えている。
【0181】
(10)前記評価手段はさらに、ネジ締めの反トルクに基づいて変数Actを算出する。
【0182】
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0183】
本発明は、挿入部品の部品組付けを行なう自動組付け装置全般に利用可能である。
【符号の説明】
【0184】
1,1A 自動組付け装置、11 基部、12 スカラロボット、13 組付け部、14 ネジ供給機構、20 制御部、21 ロボット制御部、22 組付け制御部、70,700,700A 穴、121,122,123 リンク、128,129,128,129 関節、131,132,133 直動軸、134 力センサ、135 ネジ締めドライバ、136 ネジ吸着機構、139 把持機構、210 評価部、220 設定部、221 更新部、222 移動量算出部、230 記憶部、240 接触圧検出部、240 接触圧検知部、250 トルク検出部、260 移動部、900,900A,900B,901,902,910,911,912,920,921,922,930,940 ワーク、990 バリ、1351 ビット、1361 ゴム部材。
【技術分野】
【0001】
本発明は、ネジや樹脂ピン等の挿入部品を自動で組付ける自動組付け装置に関する。
【背景技術】
【0002】
従来、組立ての自動化手段として産業用ロボット等が利用されている。これらの自動組立においては、組付け部品同士の位置合わせ手段として、位置決め機構や冶具による部品位置規制や、カメラと画像認識によるワーク位置測定等が利用されている。しかしながら、これらの手段では部品を外形や代表部分で規制あるいは測定するため、部品内部の寸法公差による組付け挿入部の位置誤差等を把握できない。それゆえ、従来の手段では、精度が不足する場合があった。当該問題点に対する対策として、多点を個別に測定して位置を補正する方式が行われていた。しかしながら、測定回数が増えると作業時間が延びる問題があった。
【0003】
従来、組立ての代表的な工程であるネジ締めにおいて、自動式のネジ締めドライバと直動式のロボットを組合せた自動ネジ締め機が製品化され、かつ使用されている。しかしながら、これらの自動ネジ締め機は、ワークのばらつき等によってネジ穴の位置が設計位置からずれている場合、適切にネジの位置を補正してネジを締めることができなかった。具体的には、従来の自動ネジ締め機は、ネジ径の略1/10程度を超える位置ずれがあると、正しくネジ締めできず、斜め噛み込み等の不完全なネジ締めをしたり、エラー停止する。このため、人手による補正が必要になっていた。
【0004】
このような問題点を解消すべく、特許文献1では、力制御式のロボットを使用し、かつネジを通して受けた反力を元にドライバの位置を修正することによって、ネジと穴とのずれを修正している。これにより特許文献1では、当該修正によって、高信頼の自動ネジ締めを実現している。特許文献1の修正方法では、ネジ先が穴に入りかかっている場合に、ずれの方向を検知してネジの位置を補正することにより、正しくネジ締めを行なうことができる。
【0005】
しかしながら、特許文献1の修正方法では、以下のような問題点が生じる。図15は、ネジがワークの穴周囲の平面部分に接触している状態を示した図である。図16は、ワークの穴周囲の平面部分にバリが生じている状態を示した図である。図15を参照して、ネジ800の先端部802における平坦面890がワーク900の穴周囲の平面部分に接触している場合、特許文献1の修正方法では、反力によってずれの方向を検知することができないため、正しくネジ締めを行なうことができなかった。さらに、図16を参照して、ネジ800が穴700の周囲のバリ990に乗り上げた場合には、特許文献1の修正方法では、ネジ800を動かすことに対して大きな摩擦抵抗が発生するため、ネジ800を穴700へ位置合わせすることができなかった。
【0006】
また、従来、未知の目標位置を探索する方法として、ニューラルネットワーク、学習アルゴリズム、または遺伝アルゴリズムを適用した方法や、特許文献2のような適応制御方法が開発されている。特許文献2には、生物を模した状態変化により、ランダム動作と非ランダム動作と評価関数とを組合せて、状況に適用し最適化するためのアルゴリズムが開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−331428号公報
【特許文献2】特開2005−285016号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ニューラルネットワーク、学習および遺伝アルゴリズムについては、繰返し作業によって作業対象の性質を学習し、探索の効率を向上させるものである。しかしながら、組付け作業においてワーク位置ばらつきは方向性がなく、また摩擦ばらつき等のワーク個体差に対して、予め最適化された学習結果では十分に対応できない。
【0009】
また、特許文献2に示されたアルゴリズムによれば、作業対象が未知の状態であってもランダム性を増減させつつ探索を行なうことによって、所望の作業を達成することができる。しかしながら、当該制御手法を具体的に生産等の物理的作業に適用した例は従来なく、アルゴリズム上のパラメータと装置の入出力手段との組合せ方法は特定されていない。このため、当該制御手法を装置制御に適用することができなかった。
【0010】
本発明は、上記の問題点に鑑みなされたものであって、その目的は、部品のワークへの組付け工程において、ワークが位置および/または寸法のばらつきを有する場合でも、部品の組付けを高信頼かつ高速で行なえる自動組付け装置、自動組付け方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【0011】
本発明のある局面に従うと、自動組付け装置は、部品をワークに組付ける自動組付け装置である。自動組付け装置は、部品およびワークの少なくとも一方を、部品とワークとが接触した状態で移動させる移動手段と、ワークに対する部品の接触圧を検出する接触圧検出手段と、接触圧に基づいて部品の組付けの進捗度を評価する評価手段と、評価の結果に基づき、移動手段による移動の量を設定する設定手段とを備える。
【0012】
好ましくは、自動組付け装置は、評価の結果に基づいた演算を行なう第1の項と、乱数を用いて定義される第2の項とを含む、第1のゆらぎ方程式を格納した記憶手段をさらに備える。設定手段は、第1のゆらぎ方程式を用いて移動の量を決定する。
【0013】
好ましくは、第1の項は、アトラクタを有する制御関数と評価の結果を表す第1の変数との積で表される。第2の項は、第1の変数の増減に相反して増減するノイズを表す項である。
【0014】
好ましくは、設定手段は、第1のゆらぎ方程式を用いて、当該第1のゆらぎ方程式の制御パラメータである第2の変数を更新する。設定手段は、更新された第2の変数に基づいて、移動の量を算出する。制御関数は、第2の変数をアトラクタに近づける作用を有する。評価手段は、接触圧が増加すると第1の変数の値を増加させることによって作用を増大させ、接触圧が減少すると第1の変数の値を減少させることによって作用を減少させる。
【0015】
好ましくは、第2の変数は、ワークに対する部品の押付け力を表す変数と、移動の幅を表す変数とで構成される。アトラクタは、押付け力の基準値と、移動の幅の基準値とで構成される。設定手段は、移動の幅を示す変数に予め定められた位相を有する正弦関数または余弦関数を乗じた値を、移動の量として設定する。移動手段は、部品の組込み方向に垂直となる面内で、設定された移動の量だけ部品およびワークの少なくとも一方を移動させる。
【0016】
好ましくは、移動手段は、予め定められた周期毎に移動を実行する。予め定められた位相は、周期毎に予め定められた規則に基づき変化する。
【0017】
好ましくは、第1のゆらぎ方程式は、第1の変数と予め定められた定数との差分を含む第3の項をさらに含む。設定手段は、第1の変数が定数よりも大きい場合には、部品の押付け力を表す変数を大きく設定し、移動の幅を表す変数を小さく設定し、第1の変数が定数よりも小さい場合には、部品の押付け力を表す変数を小さく設定し、移動の幅を表す変数を大きく設定する。
【0018】
好ましくは、第2の変数は、部品の組込み方向に垂直となる面内における移動方向を示した第3の変数をさらに含む。アトラクタは、移動方向についての基準値をさらに含む。記憶手段は、評価の結果に基づいた演算を行なう第1の項と、乱数を用いて定義される第2の項とを含む、第2のゆらぎ方程式をさらに格納している。設定手段は、第2のゆらぎ方程式を用いて、第3の変数を更新する。移動手段は、第3の変数が更新されると、当該更新後の第3の変数が表す移動方向に、部品およびワークの少なくとも一方を移動させる。
【0019】
好ましくは、接触圧は、部品の組込み方向の接触圧と、部品の組込み方向に垂直な方向の接触圧とを含む。設定手段は、垂直な方向の接触圧が予め定められた第1の閾値よりも大きいと判断すると、位相を変化させることにより移動の方向を反転させる。
【0020】
好ましくは、移動手段は、部品とワークとが接触していない状態において、部品およびワークの少なくとも一方を移動させる。設定手段は、部品がワークに接触していない状態では、部品の組込み方向における移動の量を部品がワークに接触しているときの移動の量よりも増加させ、部品の組込み方向に垂直な方向における移動の量を0に設定する。
【0021】
設定手段は、部品の組込み方向に垂直な方向における移動によって、部品が、当該部品がワークに最初に接触した位置から予め定められた距離以上離れたか否かを判断する。設定手段は、予め定められた距離以上離れたと判断すると、最初に接触した位置から予め定められた距離未満の範囲内に部品が位置するように、移動の方向および移動の量を設定する。
【0022】
好ましくは、部品は、ネジである。自動組付け装置は、ネジを締めるためのドライバをさらに備える。
【0023】
好ましくは、自動組付け装置は、ネジを締める際の締付けトルクを検出するためのトルク検出手段をさらに備える。評価手段は、締付けトルクと接触圧とに基づいて部品の組付けの進捗度を評価する。
【0024】
本発明の他の局面に従うと、自動組付け方法は、部品をワークに組付ける自動組付け装置における自動組付け方法である。自動組付け方法は、自動組付け装置における移動装置が、部品およびワークの少なくとも一方を、部品とワークとが接触した状態で移動させるステップと、自動組付け装置における圧力センサが、ワークに対する部品の接触圧を検出するステップと、自動組付け装置における制御装置が、接触圧に基づいて部品の組付けの進捗度を評価するステップと、制御装置が、評価の結果に基づき、移動の量を設定するステップとを備える。
【0025】
本発明のさらに他の局面に従うと、プログラムは、部品をワークに組付ける自動組付け装置を制御するためのプログラムである。プログラムは、部品およびワークの少なくとも一方を、部品とワークとが接触した状態で移動させるステップと、ワークに対する部品の接触圧を取得するステップと、接触圧に基づいて部品の組付けの進捗度を評価するステップと、評価の結果に基づき、移動の量を設定するステップとを、自動組付け装置に実行させる。
【発明の効果】
【0026】
上記の発明によれば、部品のワークへの組付け工程において、ワークが位置および/または寸法のばらつきを有する場合でも、部品の組付けを高信頼かつ高速で行なえる。
【図面の簡単な説明】
【0027】
【図1】自動組付け装置の概略構成を示した図である。
【図2】ネジ締めドライバの先端部と、吸着機構と、ワークとの断面を示した断面図である。
【図3】自動組付け装置の制御系の構成を示した図である。
【図4】自動組付け装置の機能的構成を示した機能ブロック図である。
【図5】自動組付け装置によるネジ締め付け動作の処理の流れを示したフローチャートである。
【図6】図5のステップS6の詳細な処理の流れを示したフローチャートである。
【図7】図6のステップS118の処理の詳細を示したフローチャートである。
【図8】ネジ吸着機構に吸着したネジをワークに組付ける作業の遷移を示した図である。
【図9】関数F(X1,X2)の出力を、X1,X2平面上の高さとしてプロットした曲面をグラフ化した図である。
【図10】ネジ締めドライバ135の先端周辺を表す図である。
【図11】パラメータの時系列変化をグラフ化した図である。
【図12】自動組付け装置Mの一部の断面と、ワークの断面とを示した図である。
【図13】他の自動組付け装置の一部を示した図である。
【図14】制御部として機能するコンピュータシステムのハードウェア構成を表わすブロック図である。
【図15】ネジがワークの穴周囲の平面部分に接触している状態を示した図である。
【図16】ワークの穴周囲の平面部分にバリが生じている状態を示した図である。
【発明を実施するための形態】
【0028】
以下、図面を参照しつつ、本発明の各実施の形態に係る自動組付け装置について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0029】
[実施の形態1]
図1は、本実施の形態に係る自動組付け装置1の概略構成を示した図である。図1を参照して、自動組付け装置1は、部品をワークに組付ける装置である。具体的には、自動組付け装置1は、ネジ800をワーク900のネジ穴に対して締め付けるための自動ネジ締め装置である。
【0030】
自動組付け装置1は、基部11と、スカラロボット12と、組付け部13と、ネジ供給機構14とを備える。スカラロボット12は、リンク121と、関節128と、リンク122と、関節129と、リンク123とをこの順に備える。組付け部13は、直動軸131と、直動軸132と、直動軸133と、力センサ134と、ネジ締めドライバ135と、ネジ吸着機構136と、衝撃緩和機構(図示せず)とを備える。
【0031】
基部11は、金属製の土台である。基部11は、直方体形状を有している。基部11は、上面の寸法が約1500mm×約1500mmである。
【0032】
スカラロボット12は、SCARA(Selective Compliance Assembly Robot Arm)型のロボットである。スカラロボット12は、鉛直方向の回転軸を持ち、かつ先端部を水平面内で移動可能とする。リンク121は、基部11に固定されている。リンク121とリンク122とは関節128によって接続されている。リンク122とリンク123とは関節129によって接続されている。スカラロボット12は、図示しないロボット制御部21(図3参照)によって関節128および129の角度を制御することにより、所定の位置に先端部を移動させる。
【0033】
関節128と129との距離は、450mmである。関節129と、直動軸131,132を原点位置にしたときのネジ締めドライバ135の軸との距離は、550mmである。スカラロボット12は、関節128を中心として半径1000mmの範囲内にネジ締めドライバ135を移動できる。
【0034】
組付け部13は、後述する組付け処理と、ネジ締め動作とを行なうための機構である。組付け部13は、スカラロボット12のリンク123の先端に固定され、スカラロボット12によって移動する。
【0035】
直動軸131,132,133は、ネジ800を移動させる。直動軸131,132,133は、直動型アクチュエータである。直動軸131,132,133は、モーターとボールネジとで構成される。
【0036】
直動軸133の基部は、リンク123に固定されている。直動軸133は、先端側を図1の上下方向(z軸方向)に駆動する。直動軸132の基部は、直動軸133の先端側に固定されている。直動軸132は、先端側を図1の左右方向(y軸方向)に駆動する。直動軸131の基部は、直動軸132の先端側に固定されている。直動軸131は、先端側を図1の紙面垂直方向(z軸とy軸とに垂直な方向(以下、「x方向」と称する))に駆動する。
【0037】
直動軸131および直動軸132は、20mmのストロークを持ち、ストロークの中央を原点とする動作をする。直動軸133は、50mmのストロークを持ち、ストローク上端を原点と動作をする。直動軸131,132,133は、図示しない組付け制御部22(図3参照)の制御により、それぞれ、先端側を指定された位置に移動する。
【0038】
力センサ134は、ワーク900に対するネジ800の接触圧を検出する。力センサ134は、x軸、y軸、およびz軸の3軸方向に加えられた力の大きさを検出する3軸力覚センサである。以下では、x軸に加えられた力の大きさを「力FX」と、y軸に加えられた力の大きさを「力FY」と、z軸に加えられた力の大きさを「力FZ」と称する。
【0039】
力センサ134の基部は、直動軸131の先端側に固定されている。力センサ134のx,y,zの3軸は、各々直動軸131,132,133の駆動方向と平行となるように取り付けられている。力センサ134の力測定レンジはx,y,zの各方向に±100Nである。力センサ134は、1msごとに力FX,FY,FZを測定し、後述の制御部20(図3参照)からの読取り処理に応じて、制御部20に出力する。力センサ134の出力は、図1の状態(すなわち、先端にネジ締めドライバ135が搭載された状態)で、力FX,FY,FZが0になるようオフセット調整されている。
【0040】
ネジ締めドライバ135は、トルク管理による自動ネジ締めが可能なドライバである。ネジ締めドライバ135は、力センサ134の先端側に取り付けられている。ネジ締めドライバ135は、ネジ締め開始の指示を受けると、先端のビット1351(図2参照)を回転させてネジ締めを行なう。ネジ締めドライバ135は、ビット1351からの反トルクが所定の完了トルクに達するとビット1351の回転を停止し、ネジ締めが完了したことを表す完了信号を制御部20に出力する。
【0041】
ビット1351の付け根には、バネによる衝撃緩和機構が内蔵されている。衝撃緩和機構は、ネジの押し込み方向の力に応じてビット1351の突き出し量を短縮する。これによって、衝撃緩衝機構は、直動軸133が駆動されてビット1351がワーク900に接触するときの衝撃を緩和する。また、衝撃緩和機構により、Z軸位置変動時の反力変化が緩和され、後述する探索移動中の押付け力となる力FZを一定に保つ制御が安定しやすくなる。
【0042】
ネジ締めドライバ135は、異常判定機能を持つ。ネジ締めドライバ135は、ネジ締め中に所定の締結回転角度より少ない回転でトルクが上昇した場合、エラー信号を制御部20に対して出力するとともに、ビット1351の回転を停止する。ネジ締めドライバ135は、ネジ締め開始後に所定時間が経過してもトルクが上昇しない場合には、タイムオーバーしたことを表す信号を制御部20に対して出力するとともに、ビット1351の回転を停止する。
【0043】
図2は、ネジ締めドライバ135の先端部と、ネジ吸着機構136と、ワーク900との断面を示した断面図である。図2を参照して、ネジ吸着機構136は、ネジ800を把持する把持手段としての機能を果たす。具体的には、ネジ吸着機構136は、負圧によりネジ800をビット1351に吸着する機構である。ネジ吸着機構136は、ビット1351の付け根に取り付けられている。ネジ吸着機構136は、図示しない空圧パイプにより、外部の負圧源に接続されている。ネジ吸着機構136は、先端にゴム部材1361を備える。ネジ吸着機構136は、ゴム部材1361がネジ800の頭部に接触すると、空圧パイプによる吸引処理によりゴム部材1361は当該頭部に密着する。これにより、負圧による密閉空間が形成される。
【0044】
また、ネジ800がビット1351に対して傾斜した場合でも、ゴム部材1361の弾性によってゴム部材1361が変形し追従するため密閉が保たれる。それゆえ、吸着力は、維持される。さらに、ネジ800がビット1351に対して傾斜した場合、当該傾斜を無くそうとする反力がゴム部材1361から発生する。
【0045】
ネジ供給機構14は、一般的な自動式のネジ供給機である。ネジ供給機構14は、予め内部にストックした複数のネジを整列した後、1個のネジを取り出す。さらに、ネジ供給機構14は、取り出したネジの頭部を上に向けた状態で、ネジ供給機構14上面の所定の供給位置にネジを移動させる。
【0046】
ネジ供給機構14は、略直方体の形状を有する。ネジ供給機構14は、基部11上のワーク900の設置範囲に隣接して設置されている。ネジ供給機構14は、スカラロボット12を駆動することによって、ネジ締めドライバ135をネジ供給機構14の供給位置上へ移動させることができる。ネジ供給機構14は、供給位置にネジがあるかどうかを検知するセンサを持つ。ネジ供給機構14は、ネジが取り去られると内部機構を駆動して次のネジを供給位置に移動させる。
【0047】
ネジ800は、M3、ネジ長6mm、バインド頭のメートルネジである。なお、ネジ800のサイズや種別は、これに限定されるものではない。
【0048】
ワーク900は、ネジ800により締結される部材である。ワーク900は、ともに長方形平板状のワーク901とワーク902とからなる。ワーク901は、ワーク902に対して、上面と外周を覆う形で乗せられており、横方向に一定の誤差範囲内で位置決めされている。
【0049】
ワーク901とワーク902とには、上面外周に沿って10箇所に、締結用の穴が開けられている。ワーク901の厚みは1.0mmであり、ワーク900の全体厚みは40mmである。ワーク901の穴は、φ3.8のバカ穴である。ワーク902の穴は、M3のメネジである。
【0050】
ワーク900は、図示しない外部の搬送装置により、基部11上の所定位置に設置される。また自動組付け装置1によるネジ締めが終わると、ワーク900は、外部の搬送装置により搬出される。基部11上の所定位置に設置されたワーク900の穴の位置は、以下の要因による誤差を持つ。
【0051】
・外部の搬送装置がワーク900を設置する動作のばらつき
・ワーク902に対するワーク901のガタつき、
・ワーク901およびワーク902の寸法公差
以上の累積として、基部11上の所定位置に設置されたワーク901およびワーク902の穴の位置は、その設計上の基準位置を中心に、±1.5mmの範囲のばらつきを持つ。
【0052】
<制御系の構成>
図3は、自動組付け装置1の制御系の構成を示した図である。自動組付け装置1は、制御部20と、ロボット制御部21と、組付け制御部22と、ネジ供給機構14と、ネジ締めドライバ135と、力センサ134と、ネジ吸着機構136と、関節128と、関節129と、直動軸131と、直動軸132と、直動軸133とを備える。
【0053】
制御部20は、それぞれ後述する、移動量の設定、ノイズμの生成、組付けの進捗度の評価、各種パラメータの記憶、当該パラメータの更新を行なうための計算機である。具体的には、制御部20は、一般的なPC(Personal Computer)である(図14参照)。
【0054】
制御部20は、後述する自動組付け装置1の制御フロー(図5)を実行するためのアルゴリズムと、後述するネジ締め動作の制御フロー(図6および図7)を実行するためのアルゴリズムと、後述する計算式および当該計算式に用いる各種パラメータを、予め記憶部230(図4参照)に記憶している。
【0055】
制御部20は、ロボット制御部21,組付け制御部22、ネジ締めドライバ135および力センサ134と通信線で接続され、当該各機器の状態読取りおよび制御を行なう。具体的には、制御部20は、ロボット制御部21に対して、スカラロボット12の関節128および129の角度読取りと目標角度との指令を行なう。制御部20は、組付け制御部22に対して、直動軸131,132,133の位置の取得と目標位置との指令を行なう。制御部20は、ネジ締めドライバ135に対して、異常状態および完了状態の読取りと、締結開始の指示とを行なう。制御部20は、力センサ134に対して、最新の力FX、FY,FZの読取りを行なう。制御部20は、計算パラメータとして、直動軸131,132,133の各々の目標位置PX,PY,PZと、その移動量MX,MY,MZを記憶しており、制御計算によって更新する。
【0056】
<機能ブロック>
図4は、自動組付け装置1の機能的構成を示した機能ブロック図である。図4を参照して、自動組付け装置1は、制御部20と、接触圧検知部240と、トルク検出部250と、移動部260とを備える。制御部20は、評価部210と、設定部220と、記憶部230とを備える。設定部220は、更新部221と、移動量算出部222とを備える。
【0057】
接触圧検出部240は、力センサ134に対応する。接触圧検出部240は、ワーク900に対するネジ800の接触圧を検出し、検出結果を制御部20に送る。
【0058】
トルク検出部250は、ネジ締め付けドライバ135に対応する。トルク検出部250は、ネジ800を締める際の締付けトルクを検出し、検出結果を制御部20に送る。移動部260は、直動軸131,132,133に対応する。移動部260は、制御部20からの指示に基づき動作する。
【0059】
記憶部230には、上記計算式として、ゆらぎ方程式が格納されている。ここで、ゆらぎ方程式の基本形について、式(17)に基づいて説明する。
【0060】
【数1】
【0061】
式(17)において、Pは、制御パラメータ(第2の変数)である。ゆらぎ方程式は、右辺において、上記評価の結果に基づいた演算を行なう第1項と、乱数を用いて定義される第2項とを含む。第1項は、アトラクタを有する制御関数f(P)と、上記評価の結果を表すパラメータAct(第1の変数)との積で表される。第2項は、パラメータActの増減に相反して増減するノイズμを表す項である。なお、以下では、パラメータActを、「アクティビティAct」、「変数Act」とも称する。
【0062】
より詳しく説明すると、制御関数f(P)は、手本データ(つまり、アトラクタ)に近づける作用を有する制御関数である。ノイズμは、ランダムに変化する成分(ゆらぎ)である。
【0063】
評価部210は、接触圧検出部240によって検出された接触圧に基づいて、ネジ800の組付けの進捗度を評価する。具体的には、評価部210は、パラメータActの値を算出する。より詳しくは、評価部210は、接触圧が増加するとパラメータActの値を増加させ、接触圧が減少するとパラメータActの値を減少させる。評価部210は、算出したパラメータActを、設定部220に送る。
【0064】
設定部220は、ゆらぎ方程式を用いて、移動量(MX,MY,MZ)を決定する。具体的には、設定部220は、上記評価の結果(つまり、パラメータAct)に基づき、移動部260による移動量(つまり、MX,MY,MZ)を設定する。より詳しくは、設定部220における更新部221が、ゆらぎ方程式を用いて、当該ゆらぎ方程式の制御パラメータPを更新する。設定部220における移動量算出部222が、更新された制御パラメータPに基づいて、移動量を算出する。
【0065】
自動組付け装置1が利用するゆらぎ方程式は、式(17)を拡張した方程式である。当該方程式の構成については、後述する式(6)に基づいて説明する。また、自動組付け装置1は、制御パラメータPとして、後述する振幅X1(移動の幅を表す変数),推力X2(ワークに対するネジの押付け力を表す変数),角度X3(ネジの組込み方向に垂直となる面内における移動方向を示したの変数)の3つのパラメータを用いる。また、以下では、振幅X1をパラメータX1、推力X2をパラメータX2、角度X3をパラメータX3とも称する。なお、制御部20の詳細については、以降において順次説明する。
【0066】
<制御構造>
図5は、自動組付け装置1によるネジ締め付け動作の処理の流れを示したフローチャートである。まず始めに、組付け部13は、以下のような状態にある。直動軸131,132は、それぞれ原点位置にある。直動軸133は、後述する所定の供給高さにある。ネジ締めドライバ135は、回転を停止している。ネジ吸着機構136は、真空吸引を行っており、ビット1351にネジ800が装着されている。スカラロボット12は、関節128,129の駆動により、図1における左側に退避した状態にあり、基部11のワーク設置位置上空は開放されている。以上の状態において、外部の搬送装置によりワーク900が搬入され、基部11上のワーク設置位置に設置される。ワーク900が設置されると、制御部20は、図5のフローを開始する。
【0067】
ステップS2において、制御部20は、規定本数のネジを締めたかどうかの判定を行なう。具体的には、制御部20は、ワーク900の穴の数と締結済み本数とを比較して、締結済み本数がワーク900の穴の数と等しいか否かを判断する。
【0068】
制御部20は、締結済み本数がワーク900の穴の数と等しくなければ、規定本数のネジを締めていないと判断し(ステップS2においてNO)、ステップS4において、スカラロボット12を既定の穴位置へ移動させる制御を行なう。具体的には、制御部20は、ワーク900が所定位置に置かれたときの各穴位置にネジ締めドライバ135の軸を一致させるための関節128,129の角度の組をあらかじめ記憶部230に格納しており、次の穴位置に対する関節128,129の角度を記憶部230から読み出して、ロボット制御部21に目標として指示する。これにより、スカラロボット12は、組付け部13を移動し、ネジ締めドライバ135の軸がワーク900の穴の所定位置の上空に移動する。この結果、前述のワーク900の設置位置誤差により、ネジ締めドライバ135の軸とワーク900の穴とは±1.5mm以内の位置ずれを持つ。
【0069】
なお、上記比較に必要なワーク900の穴の数(本実施の形態では10)および締結済み本数は、予め記憶部230に格納されている。また、締結済み本数は、図5の制御フローの開始時に0クリアされ、後述のステップS12に入るたびに1ずつ加算される。
【0070】
ステップS6において、制御部20は、後述する図6のフローによるネジ締め動作の制御を開始する。当該ネジ締め動作の制御は、図5のフローと並行して実行される。制御部20は、ネジ締め動作が開始されると、ステップS8において、ネジ締め動作の完了を待つ。具体的には、制御部20は、後述の図6のフローが完了するまで、図5に示した処理を停止して待機する。
【0071】
ステップS10において、制御部20は、ビット1351を退避させる制御を行なう。具体的には、制御部20は、まず、直動軸131,132,133を駆動させて各々の原点位置へと直動軸131,132,133を移動させる。ステップS12において、制御部20は、次のネジを取得するための制御を行なう。
【0072】
制御部20は、スカラロボット12の関節128,129を駆動して、スカラロボット12を所定の供給姿勢へと移動させる。「所定の供給姿勢」とは、直動軸131,132が原点位置にあるときにネジ締めドライバ135の軸がネジ供給機構14の供給位置上に位置する関節角度の組合せである。当該組合せは、予め記憶部230に格納されている。さらに、制御部20は、直動軸133を所定の供給高さに下降させる。この場合の所定の供給高さは、ビット1351およびネジ吸着機構136が供給位置に供給されているネジ800の頭部に接触する高さである。なお、ネジ吸着機構136は真空吸引を行っているため、ネジ800は上方へ吸引され、ネジ800の頭部の十字穴がビット1351と噛み合う。次いで、制御部20は、直動軸133を駆動して、直動軸133を原点位置に移動させる。ネジ供給機構14は、ネジ800が吸着され取り去られたことを検知すると、次のネジ800を供給位置に供給する。
【0073】
制御部20は、締結済み本数がワーク900の穴の数と等しければ規定本数のネジを締めたと判断し(ステップS2においてYES)、ステップS14において、スカラロボット12を退避させる制御を行なう。具体的には、制御部20は、スカラロボット12を上記開始前の退避位置に移動させる制御を行なう。以上により自動組付け装置1によるワーク900への所定本数のネジ締めが完了する。ネジ締めが完了すると、外部の搬送装置によりワーク900が搬出される。
【0074】
図6は、図5のステップS6の詳細な処理の流れを示したフローチャートである。図6の制御フローは、組付け部13がネジ締めドライバ135の軸とワーク900の穴との位置誤差を適切に補正してネジ締めを行なうためのアルゴリズムである。制御部20は、内部計算のために、変数として、振幅X1と、推力X2と,角度X3と,位相PHIXと、位相PHIYとを記憶しており、下記の各計算により各々の値を更新する。また、制御部20は、式(1)〜(15)と、各々が定数である、アトラクタ座標(X11,X21)〜(X15,X25)、アトラクタ値X31〜X35、判定距離DISG、制御周期CYCC、振動周期CYCS、閾値である許容力FMAX、および円周率π等を予め記憶している。アトラクタ座標(X11,X21)〜(X15,X25)の各々は、押付け力の基準値と、移動の幅の基準値との組で構成される。アトラクタ値X31〜X35の各々は、移動方向についての基準値である。
【0075】
図6のフロー開始時点で、制御部20は、以下の初期化を行なう。制御部20は、振幅X1と推力X2とを、後述するアトラクタAt1の値に合わせて、X1=X11,X2=X21に設定する。制御部20は、角度X3,位相PHIX,PHIYを、それぞれ0に設定する。制御部20は、位置PX,PY、PZを0に設定する。図6のフロー開始時点で、直動軸131,132は原点位置にあり、ネジ締めドライバ135の軸線とワーク900の穴中心とが所定の誤差範囲内(本実施の形態では±1.5mm以内)の値だけずれた状態にある。
【0076】
図6のフロー開始後、ステップS102において、制御部20は、ネジ800の先がワーク900に接触しているかどうかの判定を行なう。具体的には、制御部20は、力センサ134から力FZを読み出し、所定の閾値FTより大きいか否かを判定する。当該閾値FTは、1.0Nであり、予め制御部20に格納されている。
【0077】
制御部20は、力FZが閾値FTより大きい場合に、ネジ800の先がワーク900に接触していると判断し(ステップS102においてYES)、ステップS104において、パラメータX1,X2,X3の更新を行なう。具体的には、制御部20は、記憶部230に格納している以下の各種パラメータ(パラメータX1,X2,X3除く)の更新計算を、後述する式(5)〜(15)で示す手順に従って実行することにより、振幅X1、推力X2、角度X3を更新する。
【0078】
後述の計算の結果、力センサ134からの出力に基づいて、ネジ800の先がワーク900の穴に入るにつれて振幅X1を減少させ、推力X2を増加させる変化が生じる。これにより、自動組付け装置1は、ネジ800の先が穴に入っていくと横移動の振幅を狭めつつ押付を強める。このため、自動組付け装置1は、ネジ800を倒すことなく、ネジ800の先を穴の中心に精度良く収束させることができる。
【0079】
逆に、ネジ800の先がワーク900の穴に入らない場合は、振幅X1を増大させ、推力X2を減少させる変化が生じる。これにより、自動組付け装置1は、ネジ800の先が穴に入らないと、軽い押付け状態でより広い範囲を探索するため、ワーク900を傷つけず、かつ大きなずれ量に対しても探索を行なうことができる。
【0080】
また、角度X3は、ネジ800の先がワーク900の穴に合わされていく間は固定され、ネジ800の先がワーク900の穴と長時間合わない場合は、別の角度に変化するように振舞う。これにより、自動組付け装置1は、穴がない方向に探索方位を固定することがなく、効率的に探索を行なうことができる。
【0081】
ステップS106において、制御部20は、ネジ締め開始の条件を満たしたか否かを判断する。具体的には、制御部20は、ステップS104にて更新した振幅X1と推力X2とが、それぞれ所定の値X1Gおよび所定の値X2Gに十分近いかどうかを、下記の式(1)で算出されるDIFが所定の判定値DIFGより小さいか否かで判断する。
【0082】
【数2】
【0083】
上記DIFが所定の判定値DIFGより小さい場合、すなわち(X1,X2)がアトラクタ座標(X15,X25)に近い場合、制御部20は、ネジ800がワーク900の中心に一致したと判断して、ネジ締め開始の条件を満たしたと判断する。この場合、制御部20は、処理をステップS108に進める。
【0084】
一方、DISが所定の判定値DIFGより小さくない場合、制御部20は、(X1,X2)がアトラクタ座標(X15,X25)に近くないと判断し、ネジ締め開始の条件を満たしていないと判断する。この場合、制御部20は、処理をステップS118に進める。なお、アトラクタ座標(X15,X25)は、後述するアトラクタAt5の位置を示している。ステップS118において、制御部20は、位相更新の計算を行なう。
【0085】
図7は、図6のステップS118の処理の詳細を示したフローチャートである。詳しくは、図7は、位相更新の処理の流れを示したフローチャートである。制御部20は、図7に示す制御フローによって、位相PHIXおよび位相PHIYを更新する。位相PHIX,PHIYは、ラジアン[rad]の単位で表される値であり、後述のS55において振動動作を生成するための入力値である。位相PHIXとPHIYとの更新処理は実質的に同じであるため、以下では両者を代表して、PHIXの更新処理について説明する。
【0086】
ステップS202において、制御部20は、反力が大きいかの判定を行なう。具体的には、制御部20は、前回の移動量MXと最新の力センサ出力FXとの積を計算し、積の符号が負の場合であって、かつFXの絶対値が所定の許容力FMAXよりも大きい場合に、反力が大きいと判定する。この場合、制御部20は、処理をステップS204に進める。なお、積の符号が負となるのは、移動方向と力の向きとが逆の場合である。積の符号が負でないか、またはFXの絶対値が許容力FMAXよりも小さい場合、制御部20は、反力が大きくないと判定する。この場合、制御部20は、処理をステップS206に進める。ステップS206において、制御部20は、以下の式(2)による位相進めの計算を行なう。
【0087】
PHIX=PHIX+2π/(CYCS/CYCC) … (2)
CYCSは、ステップS120により出力する振動動作の周期である。本実施の形態においては、CYCS=300[msec]である。制御部20は、制御周期CYCC毎に上記計算を行なうので、PHIXは周期CYCSの間に0から2πまで変化する。さらに制御部20は、計算後のPHIXが2πより大きいか否かを判断し、PHIXが2πより大きい場合にはPHIXを0にクリアする。このような処理により、PHIXは0〜2πの間で繰返し増加する。なお、本実施の形態では、制御周期CYCCは、2[msec]である。このように、位相PHIXは、制御周期CYCC毎に予め定められた規則に基づき変化する。具体的には、2[msec]毎に、PHIXは、π/75だけ進むことになる。
【0088】
ステップS204において、制御部20は、以下の位相リセットの処理を行なう。制御部20は、MXが0より小さい場合、PHIXを3π/2に書き換える。制御部20は、MXが0より大きい場合、PHIXをπ/2に書き換える。当該書き換え処理により、次回のステップS120における移動量の算出において、ネジ800の移動方向が反転されて直前の移動と反対の方向にネジ800が進むことになる。以上により、PHIXの位相更新が完了する。なお、PHIYについては上記処理でPHIXをPHIYに、FXをFYに置き換えた処理が行われる。
【0089】
許容力FMAXは、ネジ吸着機構136が吸着しているネジ800の先端を横方向に押したときに、吸着状態を保てなくなってネジ800が落下するときの力の大きさである。なお、許容力FMAXは、予め実験により求めた値である。以上の処理により、ネジ800に対してネジ吸着機構136の吸着力を超えるような横方向の力を加えることが防止され、ネジの外れが防止できる。それゆえ、ネジ800の組付け処理の信頼性を高めることができる。
【0090】
再度、図6を参照して、ステップS120において、制御部20は、探索用の移動量の計算を行なう。具体的には、制御部20の設定部220は、直動軸131,132,133の移動量MX,MY,MZを以下の式(3.1),(3.2),(3.3)により算出する。
【0091】
MX=X1×cos(PHIX)×cos(X3) … (3.1)
MY=X1× cos(PHIY)×sin(X3) … (3.2)
MZ=GZ×(FZ−X2) … (3.3)
GZは、Z方向の力フィードバックのゲイン定数である。数式(3.1),(3.2)により、直動軸131および直動軸132は、先端に取り付けられたネジ締めドライバ135を、振幅X1、水平面内の角度X3,周期CYCSの正弦波型の速度(2msec当たりの移動量)で駆動する。
【0092】
このように、自動組付け装置1では、設定部220が、移動の幅を示す変数(X1×cos(X3),X1×sin(X3))に予め定められた位相(PHIX,PHIY)を有する正弦関数を乗じた値を、移動の量(MX,MY)として設定する。なお、正弦関数の代わりに、余弦関数を乗じてもよい。
【0093】
なお、角度X3が更新されない間は、ネジ800は、各回の移動において、角度X3で規定される方向に、順次位置を更新しつつ移動することになる。ただし、ステップS204において位相PHIXまたは位相PHIYがリセットされた場合には、速度(2msec当たりの移動量)を示すベクトルの向きが前回とは反対向きとなる。直動軸133は、ネジ800の先からの反力FZを、推力X2に保って押付けるように動作する。
【0094】
さらに、制御部20は、範囲制限のための計算を行なう。具体的に説明すると、以下のとおりである。設定部220は、ネジ800の組込み方向に垂直な方向における移動によって、ネジ800が、ネジ800がワーク900に最初に接触した位置から予め定められた距離以上離れたか否かを判断する。設定部220は、予め定められた距離以上離れたと判断すると、最初に接触した位置から当該予め定められた距離未満の範囲内にネジ800が位置するように、移動の方向および移動の量を設定する。
【0095】
さらに詳しく説明すると、以下のとおりである、制御部20は、以下の式(3.4)と式(3.5)とにより、PXとPYとを総合した、開始位置からの距離が所定の閾値DISRを越えると、開始位置PX=0,PY=0に戻る方向への移動量MRを加える。
【0096】
【数3】
【0097】
【数4】
【0098】
式(3.4)の右辺の第2項において、PX/|PX|はPXの符号を表し、右辺の第2項全体はPXが正の時は負、PXが負の時は正の値となる。Sはステップ関数であり、S(x)はx<0において0、x≧0において1を出力する。したがって、式(3.4)および式(3.5)におけるステップ関数の項は、PXとPYとを総合した距離がDISR以上のときに1、当該距離がDISR未満のとき0となる。このため、右辺の第2項全体は、距離がDISR以上のときだけ、移動量MX,MYを所定量であるMRだけ小さくする。つまり、PXおよびPYを0(開始位置)に近づける作用をする。このような処理により、ネジ800の先の位置PX、PYが初期値0から際限なく離れてしまうことを防止できる。それゆえ、穴の探索失敗が防止されるとともに、所定誤差内にある穴を探索する効率が向上する。なお、閾値DISRは1.5mmである。
【0099】
制御部20は、移動量MX,MY,MZを、それぞれ記憶部230に格納している目標位置PX,PY,PZに加算することにより、目標位置PX,PY,PZを更新する。制御部20は、算出した移動量MX,MY,MZを、組付け制御部22に指令し、これにより直動軸131,132,133が駆動する。その後、制御部20は、所定の制御周期CYCCだけ待機した後、ステップS102に再度進む。つまり、移動部260は、予め定められた周期(制御周期CYCC)毎に移動を実行することになる。
【0100】
制御部20は、ネジ締め開始の条件を満たしたと判断した場合(ステップS106においてYES)、ステップS108において、ネジ締め開始処理を行なう。具体的には、制御部20は、ネジ締めドライバ135に対して締結開始の指令を送る。当該指令により、ネジ締めドライバ135は、ビット1351の回転を開始し、トルク管理に基づいたネジ締め制御を行なう。
【0101】
ステップS110において、制御部20は、ネジ締め用の移動量の計算を行なう。具体的には、制御部20は、以下の力フィードバック計算による移動量MX,MY,MZの算出を行なう。
【0102】
MX=GX×FX … (4.1)
MY=GY×FY … (4.2)
MZ=GZ×(FZ−FZF) … (4.3)
GX,GY,GZは、それぞれX,Y,Z方向の力フィードバックのゲイン定数である。推力FZFは、締結用の押付け力であり定数である。本発明において推力FZFは、20[N]である。GX,GY,GZおよびFZFは、予め記憶部230に格納されている。制御部20は、算出した移動量MX,MY,MZに基づく指令を、組付け制御部22に送信する。組付け制御部22は、当該指令に基づき、直動軸131,132,133を駆動させる。制御部20は、移動量MX,MY,MZを、それぞれ記憶部230に記憶している目標位置PX,PY,PZに加算し、目標位置PX,PY,PZを更新する。その後、制御部20は、所定の制御周期CYCCだけ待機した後、ステップS112に処理を進める。
【0103】
ステップS112において、制御部20は、ネジ締め中止判定を行なう。制御部20は、ネジ締めドライバ135の出力を読出し、エラー停止またはタイムオーバー出力が出されている場合には、ネジ締め中止と判断し(ステップS112においてYES)、ステップS102に処理を進める。これにより、ネジ締め開始後に異常が発覚した場合でも、再度探索動作からやり直すこととなり、ネジ締めの信頼性が高められる。
【0104】
制御部20は、ネジ締め中止と判断しなかった場合、ステップS114において、ネジ締め完了判定を行なう。制御部20は、ネジ締めドライバ135の出力を読出し、完了信号がオン状態か否かを判断する。完了信号がオン状態(フラグが立っている状態)の場合、制御部20は、ネジ締め完了と判断し(ステップS114においてYES)、図6のネジ締めフローを完了する。制御部20は、完了信号がオフ状態(フラグが立っていない状態)の場合、ネジ締め完了と判断せず(ステップS114においてNO)、処理をステップS110に進める。
【0105】
制御部20は、力FZが閾値FTより大きくない場合に、ネジ800の先がワーク900に接触していないと判断し(ステップS102においてNO)、ステップS116において、降下用の移動量計算を行なう。具体的には、制御部20は、MX=0、MY=0とする。すなわち、制御部20は、直動軸131,132を移動させない。また、制御部20は、MZ=−ZDとする。すなわち、制御部20は、直動軸133を一定量ZDだけ降下させる制御を行なう。制御部20は、算出した移動量MX,MY,MZに基づく指令を、組付け制御部22に送信する。組付け制御部22は、当該指令に基づき、直動軸131,132,133を駆動させる。
【0106】
制御部20は、移動量MX,MY,MZを、それぞれ記憶部230に格納している目標位置PX,PY,PZに加算し、目標位置PX,PY,PZを更新する。その後、制御部20は、制御周期CYCCだけ待機した後、ステップS102に再度進む。ネジ800の先がワーク900に接触していない場合に直動軸131および132の移動量を0とする理由は、ネジ800の倒れを防止するためである。
【0107】
図8は、ネジ吸着機構136に吸着したネジ800をワーク900に組付ける作業の遷移を示した図である。図8を参照して、ネジ800の先端部802(以下、「ネジ先802」とも称する)がワーク900の穴700に入りかけた状態で、ネジ800を図の横方向に移動させると、ネジ800の先側面がワーク900に押される。このときネジ800の先下面がワーク900に接触していない状態ではネジ800をワーク900に垂直に保とうとする反力FXおよびFYが弱い。反力FXおよびFYが弱いと、ステップS118における力制限が正しく作用せず、ネジ800が倒れて作業が失敗する虞がある。
【0108】
また、ZDは、高速化のため、ワーク900の衝撃許容範囲でなるべく大きな値を設定する。ZDの実際の設定方法としては、力センサ134で衝撃量を見ながら、ZDを増加させて繰り返し下降動作を行い、力FZのピーク値がワーク900の許容値程度になったところでZDを確定する。
【0109】
<パラメータX1,X2,X3の更新処理の詳細>
以下では、ステップS104におけるパラメータ更新の詳細を説明する。パラメータ更新は、分子のブラウン運動等を記述するランジュバン方程式を元に拡張した式(5)および式(12)を利用する。具体的には、パラメータ更新は、振幅X1、推力X2および角度X3を、ランダム性と基準値(アトラクタ座標)への収束性との複合作用により、ワーク位置および反力情報に基づいて変化させる計算である。式(5)および式(12)の計算に必要な中間計算値は、後述の式(6)〜(11)および式(13)〜(15)により、式(5)および式(12)の計算の前に算出される。振幅X1および推力X2は、下記の式(5)により更新される。
【0110】
(X1,X2)=(X1,X2)+dF(X1,X2)×Act+UG×(U1,U2)+(BG1,BG2)×(Act−Act0) … (5)
式(5)におけるdF(X1,X2)は後述する式(6)〜(8)で定義される関数である。Actは、後述する式(9)で算出されるアクティビティ値である。U1、U2は、正規分布パターンを持つノイズ生成器から生成されるノイズ値である。U1およびU2は、期待値0、標準偏差1の乱数として生成される。ノイズゲインUGは、ノイズU1,U2の影響の大きさを決める定数であり、予め記憶部230に格納されている。
【0111】
なお、式(17)に関する説明において述べたように、Actは、評価の結果を表すパラメータ(第1の変数)である。また、UG×(U1,U2)は、パラメータActの増減に相反して増減するノイズμを表す項である。dF(X1,X2)は、アトラクタを有する制御関数f(P)である。
【0112】
式(5)に示したゆらぎ方程式(第1のゆらぎ方程式)は、右辺の第4項として、Actと予め定められた定数Act0との差分を含む項をさらに備える。BG1、BG2は、バイアスゲイン定数である。Act0は、アクティビティActの基底値となる定数である。式(5)の右辺の第4項は、アクティビティActの大きさによって作業の進む方向または戻る方向に、振幅X1および推力X2を変化させる作用をする。具体的には、本実施の形態においては、BG1=−0.06、BG2=0.06、Act0=1.0である。これにより、アクティビティActがAct0より大きいときには、振幅X1を減少させ、推力X2を増加させる変化が加わる。逆に、アクティビティActがAct0より小さいときには、振幅X1を増加させ、推力X2を減少させる変化が加わる。
【0113】
振幅X1(第2の変数)について述べると、設定部220は、ActがAct0よりも大きい場合には、振幅X1を小さく設定し、ActがAct0よりも小さい場合には、振幅X1を大きく設定する。
【0114】
次に、式(5)における関数dF(X1,X2)について説明する。dF(X1,X2)は、以下の式(6)に示すように、関数F(X1,X2)を、X1方向およびX2方向に微分した値からなるベクトルを出力する関数である。
【0115】
【数5】
【0116】
F(X1,X2)は、X1,X2で構成する2次元空間中において、以下の予め設定されたi個のアトラクタ座標(X11,X21)〜(X1i,X2i)のそれぞれを中心とするガウス分布Gn(X1,X2)を重ね合わせた、混合ガウス関数である。
【0117】
F(X1,X2)=G1(X1,X2)+G2(X1,X2)+ … +Gi(X1,X2) … (7)
Gn(X1,X2)=exp(−0.75×((X1−X1n)^2+(X2−X2n)^2))) … (8)
式(8)において、GnおよびX1n,X2n中のnは1〜iのどれかの整数である。本実施の形態では、アトラクタ数i=5であり、アトラクタAt1〜At5が存在する。アトラクタAt1〜At5の座標(X11,X21)〜(X15,X25)は、記憶部230に予め格納されている。なお、“^(ハットマーク)”は、べき乗計算を示す演算子である。
【0118】
図9は、関数F(X1,X2)の出力を、X1,X2平面上の高さとしてプロットした曲面をグラフ化した図である。図9(a)は、X1,X2平面を垂直に見たときの等高線図であり、図9(b)はX1,X2方向に等間隔でF(X1,X2)をプロットした斜視図である。図9を参照して、F(X1,X2)は、At1(X11,X21)〜At5(X15,X25)をそれぞれ中心とする5個のガウス分布の凹み形状を重ね合わせた形状となっている。式(2)のdF(X1,X2)は、図9における曲面上の位置(X1,X2)における傾斜量を表している。すなわち、式(5)におけるdF(X1,X2)×Actの項の作用は、図9の斜面によるパラメータX1,X2の移動として表現されている。当該項は、X1,X2が最寄のアトラクタ座標(X1n,X2n)に近づくように作用し、その作用(傾斜)はアクティビティActによって増減する。
【0119】
アトラクタ座標(X11,X21)〜(X15,X25)は、人がネジ締め作業を行なう際の状態変化に合わせた配置されている。人は、まず弱い推力でネジ800をワーク900に押し当てて、横に広い範囲で動かしてネジ先802を穴700に入れる。ネジ800が穴700に入ると人はネジ800の推力を強め、狭い範囲でネジを動かして穴700の中心とネジ先802を一致させる。これに相当するように、アトラクタ位置(X11,X21)は、大きい振幅と小さい推力との座標を持ち、アトラクタ位置(X15,X25)は、小さい振幅と大きい推力との座標を持ち、残りのアトラクタ座標(X12,X22)〜(X14,X24)は、上記2点間を概ね等間隔に補間するように配置されている。具体的な(X11,X21)〜(X15,X25)の値のうちX21,X25は、人のネジ締め作業を力センサによって測定した値を元に設定する。また、X11は、装置の仕様に基づいて決定すればよい。X15は、X25以上の圧力が加わった場合における実際の移動量に基づいて決定すればよい。
【0120】
アクティビティActは、より具体的には、作業が進展しているかどうかを評価する評価関数であり、以下の式(9)で記述される。
【0121】
Act=K×VZ+S(VF−VFG)×BO … (9)
式(9)の右辺第1項において、Kは定数である。VZは、直近の過去における位置PZの変動の大きさを評価する関数であり、以下の式(10.1)で定義される。
【0122】
VZ=ME2Z−MEZ^2 … (10.1)
MEZは、位置PZの指数移動平均である。ME2Zは、PZの2乗の指数移動平均である。MEZおよびME2Zは、忘却係数λZに基づいて、それぞれ以下の式(10.2),(10.3)により更新される。
【0123】
MEZ=λZ×MEZ+(1−λZ)×PZ … (10.2)
ME2Z=λZ×ME2Z+(1−λZ)×PZ^2 … (10.3)
以上の式に基づくVZは、位置PZの分散を表す。PZが時間とともに少しずつ変動する場合には、VZは小さな値をとり、短時間の内に上下に大きく変動した場合には、VZは増大する。
【0124】
式(9)の右辺第2項において、Sはステップ関数であり、S(x)はx<0において0、x≧0において1を出力する。閾値VFGおよびボーナス量BOは、定数である。力変動VFは、横方向における力の変動の激しさを評価した値であり、以下の式(11.1)で定義される。したがって、式(9)の右辺第2項は、VF≧VFGのときBOを返し、VF<VFGのとき0を返す。これにより、横方向の力の変動が大きいときだけ、Actはボーナス量BOだけ大きな値をとる。
【0125】
【数6】
【0126】
MEXは、反力FXの指数移動平均である。ME2Xは、反力FXの2乗の指数移動平均である。MEYは、反力FYの指数移動平均である。ME2Yは、反力FYの2乗の指数移動平均である。MEX,ME2X,MEY,ME2Yは、忘却係数λXYに基づいて、それぞれ以下の式(11.2),(11.3),(11.4),(11.5)により更新される。
【0127】
MEX=λXY×MEX+(1−λXY)×FX … (11.2)
ME2X=λXY×ME2X+(1−λXY)×FX^2 … (11.3)
MEY=λXY×MEY+(1−λXY)×FY … (11.4)
ME2Y=λXY×ME2Y+(1−λXY)×FY^2 … (11.5)
以上の構成による式(9)の右辺第2項は、ネジ800と穴700との芯出しが完了した時にアクティビティActを増大させるための項である。ネジ800がワーク900の穴底に一致すると、XおよびY方向に移動させようとしたときの力変動VFが増加する。この力変動VFを予め測定しておき、軸が一致したときの力変動VFよりやや低い値に、閾値VFGを設定しておく。閾値VFGは、予め定めて記憶部230に格納されている。軸が一致すると、VF≧VFGとなるため、アクティビティActが増大し内部状態(X1,X2)がアトラクタAt5に向かって素早く変化する。この結果、芯出しがされると、内部状態(X1,X2)がアトラクタ値(X15,X25)に接近して、ステップS106においてネジ締め開始の条件を満たした(YES)と判断される。
【0128】
さらに、制御部20は、算出したActに対して、以下の丸め処理を行なう。制御部20は、Actが所定の上限値ActMAXより大きいか否かを判断し、Act>ActMAXであった場合、Act=ActMAXの代入処理を行なう。制御部20は、Actが所定の上限値ActMINより小さいか否かを判断し、Act<ActMINであった場合には、Act=ActMINの代入処理を行なう。本実施の形態では、ActMAX=2.0、ActMIN=0.9であり、これらの値は予め記憶部230に格納されている。
【0129】
以上により、式(5)に代入されるアクティビティActが算出される。アクティビティActは、ワーク900の上面に沿って動こうとするネジ先802の、位置および力変動の激しさを示す指標となる。
【0130】
また、角度X3は、以下の式(12)に示すゆらぎ方程式(第2のゆらぎ方程式)により更新される。なお、F’(X3)は、F(X3)の微分を表わすものではない。上述したF(X1,X2)と異なる関数であることを示すために、記号「’」を用いている。
【0131】
X3=X3+dF’(X3)×Act+UG3×U3 … (12)
dF’(X3)は、関数F’(X3)を、X3方向に微分する関数である。U3は、期待値0、標準偏差1のノイズ生成器から生成される乱数である。UG3は、ノイズU3の影響度を決める定数であり、予め記憶部230に格納されている。
【0132】
【数7】
【0133】
F’(X3)は、以下の予め設定されたi個のアトラクタ値X31〜X3iのそれぞれを中心とするガウス分布G’n(X3)を重ね合わせた、混合ガウス関数である。
【0134】
F’(X3)=G’1(X3)+G’2(X3)+ … +G’i(X3) … (14)
G’n(X3)=exp(−0.75×(X3−X3n)^2) … (15)
本実施の形態においては、i=5であり、5個のアトラクタ値X31〜X35が存在する。アトラクタ値X31〜X35は、0〜2πを5等分するように配置されており、X31=0、X32=2π/5、X33=4π/5、X34=6π/5、X35=8π/5、である。以上の計算の結果、角度X3は、以下のように振舞う。
【0135】
ネジ先802がワーク900の穴に入る方向に進んでアクティビティActが大きいとき、角度X3は、アトラクタ値X31〜X35のうち一番近い値に引き込まれてほぼ一定の値を保つ。ネジ先802がワーク900の穴700に一致せずアクティビティActが小さいとき、角度X3は、ノイズU3の影響を大きく受けて0〜2πの間でランダムに変化する。このため、ネジ先802がワーク900の穴700に入りにくい場合には、角度X3が変化して、より広い範囲を探そうとする挙動が発生する。
【0136】
<ネジ締め動作のまとめ>
次に、図6に示したフローによるネジ締め動作を、図10および図11を用いて説明する。
【0137】
図10は、ネジ締めドライバ135の先端周辺(つまり、ネジ吸着機構136が設けられている箇所)を表す図である。より詳しくは、図10は、ワーク900へのネジ800の組付け作業の遷移を示した図である。
【0138】
図11は、パラメータの時系列変化をグラフ化した図である。図11は、横軸が時間、縦軸が各パラメータの単位で描かれている。図11において、アクティビティAct、振幅X1、推力X2、および位置PZは左軸でプロットしており、下端が0である。一方、力FXおよび位置PXは、右軸でプロットしており、グラフ右側に記した0位置が0である。力FZと位置PYとは、それぞれ力FX、位置PXと同様の挙動を示すが、図11においては示していない。図11におけるFXの0線(右端縦軸)の上下の点線が、ステップS118における処理で用いる許容力FMAXを表す。
【0139】
まず、ネジ先802が空中にあるときはステップS116の計算により、制御部20は、ネジ800を高速で降下させる。具体的には、制御部20は、ネジ800の組込み方向における移動の量(制御周期CYCC毎の移動量)をネジ800がワーク900に接触しているときの移動の量よりも増加させる。
【0140】
ネジ先802が空中にあるのは、ネジ締めフロー開始直後(図10(a))、およびステップS104,106,118,120による探索移動によってネジ先802が穴700に入るとき(図10(c))である。図11においては、図10(c)は時間が短いため識別できない。
【0141】
ネジ先802がワーク900に接触すると、制御部20は、ステップS104,106,118,120の計算によって、ネジ先802をワーク900に押付けつつ横に滑らせて、穴700の探索を行なう(図10(b))。探索動作は、「反力測定」→「アクティビティ算出(ステップS104)」→「内部状態(X1,X2,X3、他)更新(ステップS104)」→「作業状態判断(ステップS106)」→「ネジ800の移動(ステップS120)」→「反力測定」→ … の繰り返しにより実行される。
【0142】
位置PX,PYは正弦波形状で駆動され、摩擦力により反対方向に力FX、FYが発生する。FXの絶対値がFMAXより大きく、かつPXの移動と反対方向に発生した場合(図11におけるRESET)、ステップS118の処理によりPXの移動方向が反転され、ネジ800は逆方向に移動し始める。制御部20は、位置PZおよび反力FX,FYの変化に基づきステップS104において内部状態を変化させ、始めは弱い押付で広い範囲を探し、穴700に入るにつれて推力X2を強く、かつ振幅X1を狭くしていく。
【0143】
ネジ先802がワーク900の穴700に入るとネジ800の位置が拘束されるため、ステップS120による振動動作を行った際に位置PZの変動が激しくなる。このため、式(9)によって、アクティビティActが増加する。アクティビティActが増加すると、式(5)にて振幅X1が減少し、推力X2が増加していく。
【0144】
アクティビティActが1よりも大きな値をとり続けると、パラメータ(X1,X2)は、(X11,X21)から離れ、(X15,X25)に向かって遷移する。さらに、ネジ先802が穴700の底に一致した状態(図10(d))になると、式(9)におけるVFが増加してVFGよりも大きくなり、式(9)の右辺第2項が0からBOに変化する。この様子は、図11におけるアクティビティActの階段状の変化として、探索動作の終了直前に現れている。
【0145】
式(9)の右辺第2項がBOに変化することに基づくアクティビティActの増加によって、パラメータ(X1,X2)が(X15,X25)に向かう変化が加速される。パラメータ(X1,X2)が(X15,X25)に十分近い状態になると、制御部20は、ステップS106においてネジ800がワーク900の穴に一致したと判断し、ネジ締め開始の条件を満たした(ステップS106においてYES)と判断する。これにより、ステップS108において、ネジ締めが開始される。制御部20は、ネジ締めを開始させると、ネジ締めの中断または完了までネジ締めを続行させる。
【0146】
以上の構成により、以下の特徴を有する自動組付け装置1が実現される。
・自動組付け装置1は、ネジ800の半径程度までの誤差に対して、ネジ先802を動かして穴700の位置を探索する。自動組付け装置1は、探索が完了した後にネジ締めを行なう。したがって、ネジ締めの失敗が少なく、かつ高信頼のネジ締め装置が実現できる。
【0147】
・自動組付け装置1は、反力と位置変動とを元に算出した作業の進行度の評価(アクティビティ)が低い場合にランダム性を増加させ、水平移動の振幅を増加させて探索を行なう。それゆえ、自動組付け装置1は、ネジ800と穴700との初期ずれ量が未知の状況において、徐々に範囲を広げて探索を行なうことができる。したがって、探自動組付け装置1は、探索失敗を極力減らしてネジ締めを達成できる。また、自動組付け装置1は、ネジ800と穴700との初期ずれ量が小さい場合には、反力と位置の変動とが増加してアクティビティを増加させ、パラメータが振幅を減少させ推力を増す方向(図9で左上方向)に変化させる。これにより、自動組付け装置1は、探索を収束させ、素早くネジ締結を開始する。それゆえ、自動組付け装置1は、素早く探索を完了してネジ締めを行なうことができる。さらに、図16に示すバリ990や局所的に高い摩擦力が生じる箇所等がある場合にも、制御部20の評価部210の動作によって、押付け力を下げ、かつ横移動幅を広げて探索できる。それゆえ、ネジ800は、バリ990や局所的に高い摩擦力が生じる箇所を乗越えるか、あるいは回り込んで穴700に到達ことができる。したがって、自動組付け装置1は、探索の信頼性を向上できる。
【0148】
・探索中にネジ先802が穴700から外れた場合、反力が低下することによって、アクティビティが低下する。このため、パラメータは、振幅を増加させ、かつ推力を減らす方向(図9で右下方向)に変化する。それゆえ、自動組付け装置1は、自動的に広域の探索に再度移行するため、さらに信頼性が高められる。
【0149】
・自動組付け装置1は、ネジ先802が穴700に入ったか否かを反力の上昇に基づいて判定するので、画像等による非接触の方式と比べて誤検出が少ない。また、自動組付け装置1は、ネジ800の挿入と並行して、探索およびフローに示した判定処理を行なう。それゆえ、自動組付け装置1は、測定時間が増加することなく、高速な組付け処理を実現できる。
【0150】
・自動組付け装置1は、ネジ800がワーク900と接触することによりネジ800が倒れかけた場合に、ゴム部材1361を備えたネジ吸着機構136によって、ネジ800を垂直に戻す反力を発生させる。それゆえ、自動組付け装置1は、ネジ倒れによる組付けの失敗を防止できる。また、自動組付け装置1は、力センサ134によって、ネジ800が倒れかけている状態を正確に認識することができる。
【0151】
・自動組付け装置1は、横方向に過大な抗力を受けた場合に抗力の方向に移動する。それゆえ、自動組付け装置1は、探索移動中にネジ800を倒すことがない。このため、自動組付け装置1は、信頼性が高い。
【0152】
・自動組付け装置1は、ネジ先802がワーク900に押付けられていないときには、ネジ800を横方向に動かさない。それゆえ、自動組付け装置1は、ネジ800を倒すことがない。このため、自動組付け装置1は、信頼性が高い。また、自動組付け装置1は、ネジ先802がワーク900に押付けられていないときには、ネジ800を高速で下降させる。それゆえ、自動組付け装置1は、作業時間を短縮できる。このとき、ネジ締めドライバ135内の衝撃緩和機構によってワーク900の衝撃を緩和するため、自動組付け装置1は、ワーク900を傷つけることがない。
【0153】
・自動組付け装置1は、ネジ先802の位置が開始位置から所定距離以上離れた場合には、ネジ800の位置を戻す作用を有する。それゆえ、自動組付け装置1は、探索により際限なく移動することがない。したがって、自動組付け装置1は、トラブルを起こすことがなく、かつ開始位置近傍を効率よく探索することができる。
【0154】
<変形例>
上述した自動組付け装置1の一部を変更して、以下のような構成とすることも可能である。なお、以下では、自動組付け装置1の一部を変更した自動組付け装置を、説明の便宜上、「自動組付け装置M」と称し、上述した自動組付け装置1と区別する。
【0155】
図12は、自動組付け装置Mの一部の断面と、ワークの断面とを示した図である。図12を参照して、ネジを、より全長の長いネジ800Aとし、ワークをより穴の深いワーク900Aとする。ネジ800Aは、M3で、ネジ長18mmである。ワーク900Aは、ワーク910とワーク920とで構成される。ワーク910は、上側のワーク911と下側のワーク912の2層で構成され、ともに同じ径(φ3.8mm)のバカ穴が開けられている。ワーク920は、上側のワーク921と下側のワーク922との2層で構成されている。ワーク911とワーク912とは、事前に組付けられ一体となっている。同様に、ワーク921とワーク922とは、事前に組付けられ一体となっている。
【0156】
自動組付け装置Mは、ステップS118の力制限の判定に使用される許容力FMAX(閾値)だけが、自動組付け装置1とは異なっている。許容力FMAXはネジ吸着機構136に吸着されているネジ800の先端を横から押したときにネジが外れる限界の力であり、ネジの長さによって変化する。したがって、変更後の自動組付け装置においても適切な許容力FMAXを事前に測定し、記憶部230に予め格納しておく。自動組付け装置Mは、その他の構成は、自動組付け装置1と同一である。
【0157】
自動組付け装置Mによるネジ締め動作は以下の特徴をさらに有する。ワーク900Aがワーク911,912,921,922の4層構成となっていることから、新たにワーク同士の穴位置ずれが発生しうる。これによりネジ800Aを穴に入れる際、ワーク911とワーク912との間、ワーク912とワーク921との間において、ネジ800Aがワーク900Aの穴700Aに引っかかる場合がある。このとき、図6のフローによるネジ締め動作では、ネジ先802Aがワーク900Aに押付けられていれば探索動作を行ない(ステップS104,106,118,120)、離れていれば下降動作を行なう(ステップS116)。ワーク900Aのいずれの層間にずれがあってネジ800Aが何回引っかかるかは未知であるが、ネジ先802Aが穴底に当たってステップS106のネジ締め開始の条件判定されるまで探索と下降とが繰り返されるので、ネジ締め開始を誤判定することがない。このため、自動組付け装置Mは、信頼性の高いネジ締めが実現できる。
【0158】
また、自動組付け装置Mを、以下のような構成にしてもよい。力センサ134を、3軸方向の並進力に加えてZ軸周りのトルクTZを測定可能な4軸の力センサとする。また、図6に示したフローのステップS110において式(4.1)〜(4.3)の計算を行なう前に、新しいアクティビティAct2を上記4軸の力センサで検出した反トルクTZに基づいて算出するように、制御部20を構成する。また、反トルクTZが減少するほどAct2が大きな値を出力するように、制御部20を構成する。制御部20は、当該アクティビティAct2と、ランダム生成したノイズ信号と、式(14)と同様の式とに基づいて、推力X2を変化させる。当該推力X2を、式(4.3)においてFZFの代わりに使用した以下の式(16)によって、移動量MZを計算する。
【0159】
MZ=GZ×(FZ−X2) … (16)
この方法を用いると、反トルクTZを減少させるように推力X2が変化する。したがって、最適な推力X2が選択されることにより、摩擦抵抗を極小化してより高速にネジ締めを行なう、自動組付け装置を実現できる。
【0160】
また、自動組付け装置Mを、以下のような構成にしてもよい。上述した式(5)において、ノイズU1,U2として正規分布ノイズの代わりに、べき分布ノイズを使用するように、制御部20を構成してもよい。べき分布ノイズは、低確率で、正規分布の通常上限(3σ)に比べて非常に大きな値を出力する。この結果、振幅X1と推力X2とは低確率で非常に大きく変化するようになる。したがって、自動組付け装置Mは、探索動作が長時間行われたときに、振幅X1と推力X2とがより広い範囲で変化しやすくなる。自動組付け装置Mは、このような振幅X1と推力X2との特性を用いるため、ネジ締めドライバ135とワーク900,900Aとの穴位置との初期ずれ量が自動組付け装置1で説明したよりもさらに大きくなるような装置条件において、広い範囲での探索を、より効率的に行なうことができる。
【0161】
また、上記においては、ネジ800の組込み方向に垂直となる面内で、移動部260が設定部220により設定された移動の量だけネジ800を移動させる例を挙げて説明したが、ネジ800の代わりにワーク900を移動させる構成としてもよい。また、ネジ800とワーク900とを移動させる構成としてもよい。
【0162】
[実施の形態2]
本発明に係る自動組付け装置の他の実施態様について、図13を参照して説明すると以下のとおりである。本実施の形態に係る自動組付け装置は、挿入式の樹脂ピンをワークに挿入する点において、ネジ800をワーク900に挿入する構成を有する実施の形態1の自動組付け装置1装置とは異なる。
【0163】
図13は、本実施の形態に係る自動組付け装置1Aの一部を示した図である。図13を参照して、自動組付け装置1Aは、ネジ締めドライバ135の代わりに、把持機構139を持つ。ネジ供給機構14はネジ800の代わりに樹脂ピン600を供給する機構である。ワーク900Bは2層の板状のワーク930,940からなり、ワーク930とワーク940との重なる位置に同一径の穴が設けられている。
【0164】
樹脂ピン600は、板状の上部から下方向に固定用の爪が出た形状の樹脂製の固定ピンである。樹脂ピン600をワーク900Bの穴に挿入すると爪の引っ掛かりによって、ワーク930とワーク940とが固定される。把持機構139は、真空吸着式の部品把持機構である。把持機構139の下面には樹脂ピン600の上部と勘合する凹形状が形成されている。凹形状の内部に吸引用の真空源へと接続される穴が設けられている。
【0165】
自動組付け装置1Aの制御動作は、図6に示したフローにてネジ締めドライバ135を操作してネジの回転を開始および異常読出しを行なう処理を実行しないこと以外は、実施の形態1に係る自動組付け装置1と同一である。このような自動組付け装置1Aにより、挿入型の樹脂ピンを、位置ずれのある設置条件で、高信頼に自動挿入することができる。
【0166】
<制御部20のハードウェア構成>
図14は、実施の形態1、2における制御部20として機能するコンピュータシステム300のハードウェア構成を表わすブロック図である。
【0167】
コンピュータシステム300は、主たる構成要素として、プログラムを実行するCPU310と、コンピュータシステム300の使用者による指示の入力を受けるマウス320およびキーボード330と、CPU310によるプログラムの実行により生成されたデータ、又はマウス320若しくはキーボード330を介して入力されたデータを揮発的に格納するRAM340と、データを不揮発的に格納するハードディスク350と、DVD−ROM駆動装置360と、モニタ370と、通信IF380とを含む。各構成要素は、相互にデータバスによって接続されている。DVD−ROM駆動装置360には、DVD−ROM361が装着される。
【0168】
コンピュータシステム300における処理は、各ハードウェアおよびCPU310により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク350に予め記憶されている場合がある。また、ソフトウェアは、DVD−ROM361その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、DVD−ROM駆動装置360その他の読取装置によりその記憶媒体から読取られて、あるいは、通信IF380を介してダウンロードされた後、ハードディスク350に一旦格納される。そのソフトウェアは、CPU310によってハードディスク350から読み出され、RAM340に実行可能なプログラムの形式で格納される。CPU310は、そのプログラムを実行する。
【0169】
同図に示されるコンピュータシステム300を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、RAM340、ハードディスク350、DVD−ROM361その他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム300の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【0170】
なお、記録媒体としては、DVD-ROM、CD−ROM、FD(Flexible Disk)、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、IC(Integrated Circuit)カード(メモリカードを含む)、光カード、マスクROM、EPROM(Electronically Programmable Read-Only Memory)、EEPROM(Electronically Erasable Programmable Read-Only Memory)、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。また、記録媒体は、当該プログラム等をコンピュータが読取可能な一時的でない媒体である。
【0171】
ここでいうプログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【0172】
<付記>
(1)自動組付け装置は、挿入部品を把持する把持手段と、挿入部品とワークとの接触力を検出する力検出手段と、挿入部品の位置を変動させる変動手段と、変動手段の位置を変動させる量を算出するための算出手段と、ノイズ生成手段と、組付けが進んだかどうかを評価する評価手段と、探索動作の指標となる探索値を記憶する探索値記憶手段と、前記探索値の既定の基準値を記憶する基準記憶手段と、前記探索値を繰り返し更新する更新手段とを備える。当該自動組付け装置は、(a)前記評価手段は前記変動手段から得た挿入部品の位置と前記力検出手段から得た接触力とに基づいて組付けが進んだかどうかの評価となる変数Actを算出し、(b)前記評価手段は変数Actを組付けが進んだ場合には増加させ、組付けが進まない場合には減少させるように構成され、(c)前記更新手段は前記基準値と、前記評価手段が算出した変数Actと、前記ノイズ生成手段が生成したノイズμとに基づいて前記探索値を更新し、(d)前記更新手段は前記変数Actが増加するとノイズμの作用に対して相対的に探索値が基準値に近づく作用を増加させ、また変数Actが減少するとノイズμの作用に対して相対的に探索値が基準値に近づく作用を減少させるように構成され、(e)前記算出手段は前記探索値に基づいて変動手段による位置変動量を算出し、前記変動手段は前記位置変動量に基づいて挿入部品を移動させるように構成する。
【0173】
(2)前記評価手段は、挿入部品の挿入方向の位置変動率の増減に対応して前記変数Actを増減させる。さらに、前記評価手段は、挿入方向に垂直な面内方向の接触力の変動率の増減に対応して前記変数Actを増減させて算出する。
【0174】
(3)前記探索値は、挿入部品の押付け力Fと、移動幅Aとのセットで構成される。前記基準値は、押付け力の基準値と、移動幅の基準値とのセットで構成される。前記変動手段は、挿入部品を押付け力Fでワークに押付けつつ挿入軸に垂直な面内で移動幅Aの略振動動作を行なう。
【0175】
(4)前記更新手段は、さらに基底値Act0を予め記憶しており、前記探索値を更新する際に、前記変数Actが基底値Act0よりも大きい場合には探索値を狭域かつ高精度の動作を生成する状態へと変化させ、前記変数Actが基底値Act0よりも小さい場合には探索値を広域かつ素早い動作を生成する状態へと変化させる。
【0176】
(5)前記探索値は、さらに探索方向θを加えて構成される。前記基準値は、さらに探索方向の基準値を加えて構成される。前記更新手段は、さらに、探索方向θを上記基準値と上記変数Actとノイズμとに基づいて更新する。前記算出手段は、さらに、挿入軸に垂直な面内の探索方向θに沿って挿入部品を移動させることにより、部品組付けを行なう。
【0177】
(6)前記算出手段は、挿入部品の挿入方向に直交する方向の接触力が所定の閾値より大きい場合に、直行方向の力に沿って挿入部品を移動させるように、前記位置変動量を算出する。
【0178】
(7)前記算出手段は、前記力検出手段の出力を元に挿入部品とワークとの接触の有無を判定し、接触が検知されない間は挿入部品の挿入方向の移動量を増加させ、挿入方向に直交する方向の移動量を0とするように前記位置変動量を算出する。
【0179】
(8)前記算出手段は、前記位置変動量の累積値が所定の値より大きくなったときに、位置変動量の累積値を減少させるように位置変動量を変化させる。
【0180】
(9)前記挿入部品はネジであり、前記自動組付け装置はネジ締め用のドライバをさらに備えている。
【0181】
(10)前記評価手段はさらに、ネジ締めの反トルクに基づいて変数Actを算出する。
【0182】
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0183】
本発明は、挿入部品の部品組付けを行なう自動組付け装置全般に利用可能である。
【符号の説明】
【0184】
1,1A 自動組付け装置、11 基部、12 スカラロボット、13 組付け部、14 ネジ供給機構、20 制御部、21 ロボット制御部、22 組付け制御部、70,700,700A 穴、121,122,123 リンク、128,129,128,129 関節、131,132,133 直動軸、134 力センサ、135 ネジ締めドライバ、136 ネジ吸着機構、139 把持機構、210 評価部、220 設定部、221 更新部、222 移動量算出部、230 記憶部、240 接触圧検出部、240 接触圧検知部、250 トルク検出部、260 移動部、900,900A,900B,901,902,910,911,912,920,921,922,930,940 ワーク、990 バリ、1351 ビット、1361 ゴム部材。
【特許請求の範囲】
【請求項1】
部品をワークに組付ける自動組付け装置であって、
前記部品および前記ワークの少なくとも一方を、前記部品と前記ワークとが接触した状態で移動させる移動手段と、
前記ワークに対する前記部品の接触圧を検出する接触圧検出手段と、
前記接触圧に基づいて前記部品の組付けの進捗度を評価する評価手段と、
前記評価の結果に基づき、前記移動手段による移動の量を設定する設定手段とを備える、自動組付け装置。
【請求項2】
前記評価の結果に基づいた演算を行なう第1の項と、乱数を用いて定義される第2の項とを含む、第1のゆらぎ方程式を格納した記憶手段をさらに備え、
前記設定手段は、前記第1のゆらぎ方程式を用いて前記移動の量を決定する、請求項1に記載の自動組付け装置。
【請求項3】
前記第1の項は、アトラクタを有する制御関数と前記評価の結果を表す第1の変数との積で表され、
前記第2の項は、前記第1の変数の増減に相反して増減するノイズを表す項である、請求項2に記載の自動組付け装置。
【請求項4】
前記設定手段は、
前記第1のゆらぎ方程式を用いて、当該第1のゆらぎ方程式の制御パラメータである第2の変数を更新し、
前記更新された第2の変数に基づいて、前記移動の量を算出し、
前記制御関数は、前記第2の変数を前記アトラクタに近づける作用を有し、
前記評価手段は、前記接触圧が増加すると前記第1の変数の値を増加させることによって前記作用を増大させ、前記接触圧が減少すると前記第1の変数の値を減少させることによって前記作用を減少させる、請求項3に記載の自動組付け装置。
【請求項5】
前記第2の変数は、前記ワークに対する前記部品の押付け力を表す変数と、前記移動の幅を表す変数とで構成され、
前記アトラクタは、前記押付け力の基準値と、前記移動の幅の基準値とで構成され、
前記設定手段は、前記移動の幅を示す変数に予め定められた位相を有する正弦関数または余弦関数を乗じた値を、前記移動の量として設定し、
前記移動手段は、前記部品の組込み方向に垂直となる面内で、前記設定された移動の量だけ前記部品および前記ワークの少なくとも一方を移動させる、請求項4に記載の自動組付け装置。
【請求項6】
前記移動手段は、予め定められた周期毎に前記移動を実行し、
前記予め定められた位相は、前記周期毎に予め定められた規則に基づき変化する、請求項5に記載の自動組付け装置。
【請求項7】
前記第1のゆらぎ方程式は、前記第1の変数と予め定められた定数との差分を含む第3の項をさらに含み、
前記設定手段は、前記第1の変数が前記定数よりも大きい場合には、前記部品の押付け力を表す変数を大きく設定し、前記移動の幅を表す変数を小さく設定し、前記第1の変数が前記定数よりも小さい場合には、前記部品の押付け力を表す変数を小さく設定し、前記移動の幅を表す変数を大きく設定する、請求項5に記載の自動組付け装置。
【請求項8】
前記第2の変数は、前記部品の組込み方向に垂直となる面内における移動方向を示した第3の変数をさらに含み、
前記アトラクタは、前記移動方向についての基準値をさらに含み、
前記記憶手段は、前記評価の結果に基づいた演算を行なう第1の項と、乱数を用いて定義される第2の項とを含む、第2のゆらぎ方程式をさらに格納しており、
前記設定手段は、前記第2のゆらぎ方程式を用いて、前記第3の変数を更新し、
前記移動手段は、前記第3の変数が更新されると、当該更新後の第3の変数が表す移動方向に、前記部品および前記ワークの少なくとも一方を移動させる、請求項3から7のいずれか1項に記載の自動組付け装置。
【請求項9】
前記接触圧は、前記部品の組込み方向の接触圧と、前記部品の組込み方向に垂直な方向の接触圧とを含み、
前記設定手段は、前記垂直な方向の接触圧が予め定められた第1の閾値よりも大きいと判断すると、前記位相を変化させることにより移動の方向を反転させる、請求項6に記載の自動組付け装置。
【請求項10】
前記移動手段は、前記部品と前記ワークとが接触していない状態において、前記部品および前記ワークの少なくとも一方を移動させ、
前記設定手段は、前記部品が前記ワークに接触していない状態では、前記部品の組込み方向における移動の量を前記部品が前記ワークに接触しているときの移動の量よりも増加させ、前記部品の組込み方向に垂直な方向における移動の量を0に設定する、請求項1から9のいずれか1項に記載の自動組付け装置。
【請求項11】
前記設定手段は、
前記部品の組込み方向に垂直な方向における移動によって、前記部品が、当該部品が前記ワークに最初に接触した位置から予め定められた距離以上離れたか否かを判断し、
前記予め定められた距離以上離れたと判断すると、前記最初に接触した位置から前記予め定められた距離未満の範囲内に前記部品が位置するように、前記移動の方向および前記移動の量を設定する、請求項1から10のいずれか1項に記載の自動組付け装置。
【請求項12】
前記部品は、ネジであり、
前記自動組付け装置は、前記ネジを締めるためのドライバをさらに備える、請求項1から11のいずれか1項に記載の自動組付け装置。
【請求項13】
前記自動組付け装置は、前記ネジを締める際の締付けトルクを検出するためのトルク検出手段をさらに備え、
前記評価手段は、前記締付けトルクと前記接触圧とに基づいて前記部品の組付けの進捗度を評価する、請求項1から12のいずれか1項に記載の自動組付け装置。
【請求項14】
部品をワークに組付ける自動組付け装置における自動組付け方法であって、
前記自動組付け装置における移動装置が、前記部品および前記ワークの少なくとも一方を、前記部品と前記ワークとが接触した状態で移動させるステップと、
前記自動組付け装置における圧力センサが、前記ワークに対する前記部品の接触圧を検出するステップと、
前記自動組付け装置における制御装置が、前記接触圧に基づいて前記部品の組付けの進捗度を評価するステップと、
前記制御装置が、前記評価の結果に基づき、前記移動の量を設定するステップとを備える、自動組付け方法。
【請求項15】
部品をワークに組付ける自動組付け装置を制御するためのプログラムであって、
前記部品および前記ワークの少なくとも一方を、前記部品と前記ワークとが接触した状態で移動させるステップと、
前記ワークに対する前記部品の接触圧を取得するステップと、
前記接触圧に基づいて前記部品の組付けの進捗度を評価するステップと、
前記評価の結果に基づき、前記移動の量を設定するステップとを、前記自動組付け装置に実行させる、プログラム。
【請求項1】
部品をワークに組付ける自動組付け装置であって、
前記部品および前記ワークの少なくとも一方を、前記部品と前記ワークとが接触した状態で移動させる移動手段と、
前記ワークに対する前記部品の接触圧を検出する接触圧検出手段と、
前記接触圧に基づいて前記部品の組付けの進捗度を評価する評価手段と、
前記評価の結果に基づき、前記移動手段による移動の量を設定する設定手段とを備える、自動組付け装置。
【請求項2】
前記評価の結果に基づいた演算を行なう第1の項と、乱数を用いて定義される第2の項とを含む、第1のゆらぎ方程式を格納した記憶手段をさらに備え、
前記設定手段は、前記第1のゆらぎ方程式を用いて前記移動の量を決定する、請求項1に記載の自動組付け装置。
【請求項3】
前記第1の項は、アトラクタを有する制御関数と前記評価の結果を表す第1の変数との積で表され、
前記第2の項は、前記第1の変数の増減に相反して増減するノイズを表す項である、請求項2に記載の自動組付け装置。
【請求項4】
前記設定手段は、
前記第1のゆらぎ方程式を用いて、当該第1のゆらぎ方程式の制御パラメータである第2の変数を更新し、
前記更新された第2の変数に基づいて、前記移動の量を算出し、
前記制御関数は、前記第2の変数を前記アトラクタに近づける作用を有し、
前記評価手段は、前記接触圧が増加すると前記第1の変数の値を増加させることによって前記作用を増大させ、前記接触圧が減少すると前記第1の変数の値を減少させることによって前記作用を減少させる、請求項3に記載の自動組付け装置。
【請求項5】
前記第2の変数は、前記ワークに対する前記部品の押付け力を表す変数と、前記移動の幅を表す変数とで構成され、
前記アトラクタは、前記押付け力の基準値と、前記移動の幅の基準値とで構成され、
前記設定手段は、前記移動の幅を示す変数に予め定められた位相を有する正弦関数または余弦関数を乗じた値を、前記移動の量として設定し、
前記移動手段は、前記部品の組込み方向に垂直となる面内で、前記設定された移動の量だけ前記部品および前記ワークの少なくとも一方を移動させる、請求項4に記載の自動組付け装置。
【請求項6】
前記移動手段は、予め定められた周期毎に前記移動を実行し、
前記予め定められた位相は、前記周期毎に予め定められた規則に基づき変化する、請求項5に記載の自動組付け装置。
【請求項7】
前記第1のゆらぎ方程式は、前記第1の変数と予め定められた定数との差分を含む第3の項をさらに含み、
前記設定手段は、前記第1の変数が前記定数よりも大きい場合には、前記部品の押付け力を表す変数を大きく設定し、前記移動の幅を表す変数を小さく設定し、前記第1の変数が前記定数よりも小さい場合には、前記部品の押付け力を表す変数を小さく設定し、前記移動の幅を表す変数を大きく設定する、請求項5に記載の自動組付け装置。
【請求項8】
前記第2の変数は、前記部品の組込み方向に垂直となる面内における移動方向を示した第3の変数をさらに含み、
前記アトラクタは、前記移動方向についての基準値をさらに含み、
前記記憶手段は、前記評価の結果に基づいた演算を行なう第1の項と、乱数を用いて定義される第2の項とを含む、第2のゆらぎ方程式をさらに格納しており、
前記設定手段は、前記第2のゆらぎ方程式を用いて、前記第3の変数を更新し、
前記移動手段は、前記第3の変数が更新されると、当該更新後の第3の変数が表す移動方向に、前記部品および前記ワークの少なくとも一方を移動させる、請求項3から7のいずれか1項に記載の自動組付け装置。
【請求項9】
前記接触圧は、前記部品の組込み方向の接触圧と、前記部品の組込み方向に垂直な方向の接触圧とを含み、
前記設定手段は、前記垂直な方向の接触圧が予め定められた第1の閾値よりも大きいと判断すると、前記位相を変化させることにより移動の方向を反転させる、請求項6に記載の自動組付け装置。
【請求項10】
前記移動手段は、前記部品と前記ワークとが接触していない状態において、前記部品および前記ワークの少なくとも一方を移動させ、
前記設定手段は、前記部品が前記ワークに接触していない状態では、前記部品の組込み方向における移動の量を前記部品が前記ワークに接触しているときの移動の量よりも増加させ、前記部品の組込み方向に垂直な方向における移動の量を0に設定する、請求項1から9のいずれか1項に記載の自動組付け装置。
【請求項11】
前記設定手段は、
前記部品の組込み方向に垂直な方向における移動によって、前記部品が、当該部品が前記ワークに最初に接触した位置から予め定められた距離以上離れたか否かを判断し、
前記予め定められた距離以上離れたと判断すると、前記最初に接触した位置から前記予め定められた距離未満の範囲内に前記部品が位置するように、前記移動の方向および前記移動の量を設定する、請求項1から10のいずれか1項に記載の自動組付け装置。
【請求項12】
前記部品は、ネジであり、
前記自動組付け装置は、前記ネジを締めるためのドライバをさらに備える、請求項1から11のいずれか1項に記載の自動組付け装置。
【請求項13】
前記自動組付け装置は、前記ネジを締める際の締付けトルクを検出するためのトルク検出手段をさらに備え、
前記評価手段は、前記締付けトルクと前記接触圧とに基づいて前記部品の組付けの進捗度を評価する、請求項1から12のいずれか1項に記載の自動組付け装置。
【請求項14】
部品をワークに組付ける自動組付け装置における自動組付け方法であって、
前記自動組付け装置における移動装置が、前記部品および前記ワークの少なくとも一方を、前記部品と前記ワークとが接触した状態で移動させるステップと、
前記自動組付け装置における圧力センサが、前記ワークに対する前記部品の接触圧を検出するステップと、
前記自動組付け装置における制御装置が、前記接触圧に基づいて前記部品の組付けの進捗度を評価するステップと、
前記制御装置が、前記評価の結果に基づき、前記移動の量を設定するステップとを備える、自動組付け方法。
【請求項15】
部品をワークに組付ける自動組付け装置を制御するためのプログラムであって、
前記部品および前記ワークの少なくとも一方を、前記部品と前記ワークとが接触した状態で移動させるステップと、
前記ワークに対する前記部品の接触圧を取得するステップと、
前記接触圧に基づいて前記部品の組付けの進捗度を評価するステップと、
前記評価の結果に基づき、前記移動の量を設定するステップとを、前記自動組付け装置に実行させる、プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−86341(P2012−86341A)
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願番号】特願2010−237613(P2010−237613)
【出願日】平成22年10月22日(2010.10.22)
【出願人】(000005049)シャープ株式会社 (33,933)
【出願人】(504176911)国立大学法人大阪大学 (1,536)
【Fターム(参考)】
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願日】平成22年10月22日(2010.10.22)
【出願人】(000005049)シャープ株式会社 (33,933)
【出願人】(504176911)国立大学法人大阪大学 (1,536)
【Fターム(参考)】
[ Back to top ]