(57)【要約】【課題】部品の種別毎に必要であったロボットの動作範囲や力覚センサ出力の許容範囲に関する作業者の初期設定作業を省略することができ、作業者による教示作業の負担を軽減させることができるロボットの教示装置、及びロボットの制御装置を提供する。【解決手段】経路教示系１２７は、被組付ワーク１５０への組み付けが完了した状態の組付ワーク１４０をロボットハンド１０２に把持させ、組付ワーク１４０に過大な力が作用しないロボットハンド１０２の位置姿勢を探索しながら、ロボットハンド１０２に組付ワーク１４０の引抜動作を実行させる。経路教示系１２７は、その引抜動作の際に、ロボットハンド１０２の引抜移動経路を取得する。経路教示系１２７は、取得した引抜移動経路を時系列逆順に辿る経路を、組付作業経路として生成し、その生成した組付作業経路を動作制御部１２１に教示する。【選択図】図３
2011110688.tif 000002
【特許請求の範囲】
【請求項１】
ロボットハンドの位置姿勢を検出可能であり、被組付ワークに設けられた被挿入部に組付ワークを挿入して前記被組付ワークに前記組付ワークを組み付ける際の前記ロボットハンドの移動経路である組付作業経路を、前記ロボットハンドの動作を制御する動作制御部に教示する経路教示部
を備えるロボットの教示装置であって、
前記経路教示部は、
前記被組付ワークに組み付けられた前記組付ワークを予め把持している前記ロボットハンドに、予め設定された引抜方向への前記組付ワークの引抜動作を実行させ、
その引抜動作の際に、前記ロボットハンドの把持によって前記組付ワークに生じる反力が最小となるような引抜移動経路を、前記組付ワークに生じる反力を検出するための力覚検出手段からの信号を用いて探索し、
その探索した前記引抜移動経路の時系列逆順を前記組付作業経路として前記動作制御部に教示する
ことを特徴とするロボットの教示装置。
【請求項２】
前記経路教示部は、前記ロボットハンドに前記引抜動作を実行させる際に、
前記引抜方向に沿う第１並進軸に対して直交しかつ互いに直交する第２及び第３並進軸のそれぞれに沿う並進運動と、前記第１並進軸、前記第２並進軸及び前記第３並進軸のそれぞれの軸周りへの回転運動とを、前記組付ワークを把持している状態の前記ロボットハンドに実行させ、
これらの並進運動及び回転運動によって前記組付ワークに生じる反力が最小となる前記ロボットハンドの位置姿勢を探索し、その探索した位置姿勢を、前記引抜移動経路の起点でありかつ前記組付作業経路の終点である引抜開始位置姿勢として記憶する
ことを特徴とする請求項１記載のロボットの教示装置。
【請求項３】
前記経路教示部は、
前記ロボットハンドに前記引抜動作を実行させているときに、前記組付ワークに生じる反力が前記引抜動作の開始時点から増加したことを検出した際に、
前記第２及び第３並進軸のそれぞれに沿う並進運動、及び前記第１並進軸から第３並進軸までのそれぞれの軸周りへの回転運動を、前記組付ワークを把持している状態の前記ロボットハンドに実行させ、
これらの並進運動及び回転運動によって前記組付ワークに生じる反力が最小となる前記ロボットハンドの位置姿勢を探索し、その探索した位置姿勢を中間位置姿勢として記憶し、その記憶した中間位置姿勢で前記ロボットハンドの前記引抜動作を続行させる
ことを特徴とする請求項２記載のロボットの教示装置。
【請求項４】
前記経路教示部は、
前記ロボットハンドに前記引抜動作を実行させているときに、予め設定された目標位置に前記ロボットハンドが到達したか否かを監視し、
前記目標位置に前記ロボットハンドが到達したことを検出した際に、その際の前記ロボットハンドの位置姿勢を、前記引抜移動経路の終点でありかつ前記組付作業経路の起点である引抜終了位置姿勢として記憶する
ことを特徴とする請求項１から請求項３までのいずれか１項に記載のロボットの教示装置。
【請求項５】
前記経路教示部は、
前記ロボットハンドに前記引抜動作を実行させているときに、前記組付ワークに生じる前記引抜方向への反力が減少方向へ変化したことを、前記力覚検出手段を介して検出した場合に、前記被挿入部における前記引抜方向に対する直交面の挿入中心位置を探索して、その挿入中心位置の情報を記憶し、
その記憶した前記挿入中心位置の情報に基づいて、前記引抜移動経路を調整する
ことを特徴とする請求項１から請求項４までのいずれか１項に記載のロボットの教示装置。
【請求項６】
前記経路教示部には、前記引抜方向についての前記力覚検出手段の信号のレベルであり、前記組付ワークの重量に対応する重量対応レベルが予め設定され、
前記経路教示部は、
前記ロボットハンドに前記引抜動作を実行させているときに、前記引抜方向についての前記力覚検出手段の信号のレベルが、前記重量対応レベルであることを、前記力覚検出手段を介して検出した場合に、前記被挿入部における前記引抜方向に対する直交面の挿入中心位置を探索して、その挿入中心位置の情報を記憶し、
その記憶した前記挿入中心位置の情報に基づいて、前記引抜移動経路を調整する
ことを特徴とする請求項１から請求項４までのいずれか１項に記載のロボットの教示装置。
【請求項７】
前記経路教示部は、
前記引抜動作としての第１引抜動作を前記ロボットハンドに実行させているときに、前記組付ワークに生じる反力のうち前記引抜方向としての第１引抜方向への反力が増加方向に変化したことを、前記力覚検出手段を介して検出した場合に、前記第１引抜動作を前記ロボットハンドに停止させ、
前記第１引抜方向とは異なる方向であり予め設定された第２引抜方向へ向けた引抜動作である第２引抜動作を前記ロボットハンドに実行させる
ことを特徴とする請求項１から請求項６までのいずれか１項に記載のロボットの教示装置。
【請求項８】
前記経路教示部は、前記ロボットハンドに前記第２引抜動作を実行させる際に、
前記第２引抜方向に沿う第４並進軸に対して直交しかつ互いに直交する第５及び第６並進軸のそれぞれに沿う並進運動と、前記第４並進軸、前記第５並進軸及び前記第６並進軸のそれぞれに対する軸周りへの回転運動とを、前記組付ワークを把持している前記ロボットハンドに実行させ、
これらの並進運動及び回転運動によって前記組付ワークに生じる反力が最小となる前記ロボットハンドの位置姿勢を探索し、その探索した位置姿勢を方向変更位置姿勢として記憶し、その方向変更位置姿勢を前記引抜移動経路に含める
ことを特徴とする請求項７記載のロボットの教示装置。
【請求項９】
前記経路教示部は、
前記引抜動作の姿勢の前記ロボットハンドに前記組付ワークの把持及び把持解除を繰り返し実行させて、前記引抜動作の姿勢の前記ロボットハンドが前記引抜移動経路の起点で前記組付ワークを把持している状態、及びその把持を解除している状態の両方の状態での前記力覚検出手段の信号レベルを除去するための開閉対応調整値を取得し、
前記力覚検出手段の信号レベルを前記開閉対応調整値で調整して、前記組付ワークに生じる反力を監視する
ことを特徴とする請求項１から請求項８までのいずれか１項に記載のロボットの教示装置。
【請求項１０】
前記経路教示部は、
前記引抜動作の姿勢の前記ロボットハンドが前記組付ワークを空中で把持しているときに、そのときの前記力覚検出手段の信号レベルを除去するための重量対応調整値を取得し、
前記力覚検出手段の信号レベルを前記重量対応調整値で調整して、前記組付ワークに生じる反力を監視する
ことを特徴とする請求項１から請求項８までのいずれか１項に記載のロボットの教示装置。
【請求項１１】
前記経路教示部には、前記組付ワーク、前記被組付ワーク及び前記ロボットハンドのそれぞれの３次元形状に関する３次元形状情報を予め記憶しているオフラインプログラミング装置の前記３次元形状情報に基づく演算処理によって、前記組付ワークの引抜方向と前記ロボットハンドの引抜開始位置とを含む初期設定情報が与えられ、
前記経路教示部は、前記初期設定情報に基づいて、前記ロボットハンドに前記引抜開始位置へ移動させて、その後に前記被組付ワークに組み付けられた前記組付ワークを前記ロボットハンドに把持させ、前記ロボットハンドに前記引抜方向への前記引抜動作を実行させる
ことを特徴とする請求項１から請求項１０までのいずれか１項に記載のロボットの教示装置。
【請求項１２】
前記経路教示部は、前記ロボットハンドの移動経路を生成する際に、前記力覚検出手段の信号と、前記引抜方向との少なくともいずれか一方を表示機器に表示するための表示情報を生成する
ことを特徴とする請求項１から請求項１１までのいずれか１項に記載のロボットの教示装置。
【請求項１３】
前記経路教示部は、前記被組付ワークが載置された被組付ワーク治具と、前記ロボットハンドとの少なくともいずれか一方に取り付けられた前記力覚検出手段を介して、前記組付ワークに生じる反力を監視する
ことを特徴とする請求項１から請求項１２までのいずれか１項に記載のロボットの教示装置。
【請求項１４】
ロボットハンドの動作を制御する動作制御部と、
請求項１から請求項１３までのいずれか１項に記載のロボットの教示装置の経路教示部と
を備えることを特徴とするロボットの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、位置姿勢を変更可能な多関節型ロボットの作業経路（作業軌道）を取得する機能を有するロボットの教示装置、及びロボットの制御装置に関する。
【背景技術】
【０００２】
一般的に、ロボットハンドを有するロボットに所望の作業を行わせるには、作業経路の開始姿勢、中間姿勢、及び終了姿勢等のロボットの挙動が変化する場面での位置姿勢（位置、高さ及び傾き）を定義するための教示が必要である。特に、ワーク同士の接触を伴う組付作業では、挿入ミスを低減させるために、各場面での位置姿勢を精確に教示する必要がある。
【０００３】
ここで、一般的なロボットの教示作業について説明する。はじめに、作業者が制御装置に接続されたティーチングボックスを用いて、ロボットハンドを所望の位置姿勢に移動させ、その位置姿勢を示すデータをロボットプログラム上に記憶させる。そして、それらの位置姿勢を繋ぐ経路（軌道）を満足する複数のサーボモータへの動作指令を制御装置に計算させる。
【０００４】
例えば、組付作業についての一般的な作業定義では、作業員がティーチングボックスを用いて、組付開始位置及び組付終了位置を教示し、ロボットハンドが教示点間を移動する命令を適切に定義することによって、組付作業に関するロボットプログラムが定義される。これらの組付開始位置から組付終了位置までのロボットハンドの移動は、ロボットハンドのフィンガー部（又は組付ワーク）が直線を描くように移動命令を定義するのが一般的である。なお、組付作業の途中で組付ワークの姿勢を変えながら、組付ワークを被組付ワークに組み付ける場合には、組付開始位置姿勢と組付終了位置姿勢との間に経由点を適宜追加する必要がある。
【０００５】
上記のようなロボットの教示作業において、作業者による目視での教示作業は、時間のかかる困難なものであり、作業者が良好な視野を確保できない場合も多い。そこで、ロボットの手首部若しくは関節部、又は部品治具等に取り付けられた力覚センサ（力覚検出手段）を介して、制御装置が、ロボットと部品との接触状態を検知し、その検知した接触状態に応じた制御を行う技術が知られている。
【０００６】
このような技術の一例として、特許文献１に示すような従来のロボットの教示装置では、作業者が予備教示としての組付作業開始時の位置姿勢の教示を比較的粗めに行った後に、ロボットコントローラが力制御による自動運転を行う。この自動運転の際に、ロボットコントローラが、組付作業が成功した場合の組付開始時及び組付終了時のロボットハンドの位置姿勢の情報を記憶し、これらの位置姿勢の情報が、教示作業によって定義される情報の代わりに用いられる。
【０００７】
なお、特許文献１に示す従来装置以外の技術としては、例えば特許文献２に示すような組立ロボットの自動教示方法及びその装置がある。このものでは、駆動装置が、ＣＡＤ等の幾何データと非接触型センサからの信号とを用いて組付開始位置の近傍までロボットを移動させる。その後、駆動装置が接触型センサからの信号に応じて組付開始位置の最終調整を行う。この最終調整が完了した時点の位置を教示点決定手段が教示点として記憶する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平８−１９４５２１号公報
【特許文献２】特開平９−１４６６２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記の特許文献１に示すような従来装置において、力制御による組付作業を実現するには、センサキャリブレーション（力覚センサの適合作業）や、ロボットを安全に動かすための動作範囲や、力覚センサ出力の許容範囲の設定作業といった初期設定作業が必要である。特に、ロボットの力制御中において、組付方向以外へのロボットの移動量や姿勢の変更量が比較的大きい場合には、組付が成功することを妨げずかつ作業者が意図しない姿勢（作業成功が見込めない途中姿勢や、他機器との干渉の危険がある姿勢）となることを禁止するためのロボットの動作範囲について、初期設定作業を行うことは困難である。
【００１０】
また、ワークの押し込みが必要な組付作業では、正常な組付動作中でもノイズと比較して大きな反力がワークに生じるため、正常な組付状態と、噛付き等の異常が発生している組付状態とを区別するための力覚センサ出力の許容範囲を設定することは困難である。
【００１１】
従って、特許文献１に示すような従来装置では、初期設定段階で、ロボットの動作範囲や力覚センサ出力の許容範囲を精確に設定する必要があるため、部品の種別毎に異なる初期設定作業は、作業者の経験に依存する部分が大きかった。即ち、この初期設定作業には、作業者が限られるという問題や、経験を有する作業者が長時間拘束されるという問題があった。
【００１２】
この発明は、上記のような課題を解決するためになされたものであり、部品の種別毎に必要であったロボットの動作範囲や力覚センサ出力の許容範囲に関する作業者の初期設定作業を省略することができ、作業者による教示作業の負担を軽減させることができるロボットの教示装置、及びロボットの制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１３】
この発明のロボットの教示装置は、ロボットハンドの位置姿勢を検出可能であり、被組付ワークに設けられた被挿入部に組付ワークを挿入して前記被組付ワークに前記組付ワークを組み付ける際の前記ロボットハンドの移動経路である組付作業経路を、前記ロボットハンドの動作を制御する動作制御部に教示する経路教示部を備えるものであって、前記経路教示部は、前記被組付ワークに組み付けられた前記組付ワークを予め把持している前記ロボットハンドに、予め設定された引抜方向への前記組付ワークの引抜動作を実行させ、その引抜動作の際に、前記ロボットハンドの把持によって前記組付ワークに生じる反力が最小となるような引抜移動経路を、前記組付ワークに生じる反力を検出するための力覚検出手段からの信号を用いて探索し、その探索した前記引抜移動経路の時系列逆順を前記組付作業経路として前記動作制御部に教示するものである。
【発明の効果】
【００１４】
この発明のロボットの教示装置によれば、経路教示部が、ロボットハンドによる引抜動作の際に探索した引抜移動経路から組付作業経路を取得して動作制御部に教示するので、引抜動作の最中にロボットハンドが組付作業の失敗する姿勢を取ることがなく、また、引抜方向への組付ワークの反力に基づいて組付作業の完了を判断しないため、ロボットの動作可能範囲や力覚センサ出力の許容範囲に関する作業者の初期設定作業を省略することができ、作業者による教示作業の負担を軽減させることができる。
【図面の簡単な説明】
【００１５】
【図１】この発明の実施の形態１によるロボットを示す構成図である。
【図２】図１の力覚センサの検出軸を説明するための説明図である。
【図３】図１の制御装置本体をより具体的に示すブロック図である。
【図４】図３の経路教示系の教示処理を示すフローチャートである。
【図５】引抜動作におけるロボットハンドの初期状態を示す断面図である。
【図６】引抜動作におけるロボットハンドの把持状態を示す断面図である。
【図７】この発明の実施の形態２による被組付ワーク治具及び力覚センサを示す断面図である。
【図８】この発明の実施の形態３によるロボットの制御装置を示すブロック図である。
【図９】この発明の実施の形態３による組付ワーク及び被組付ワークの組付状態の一例を示す断面図である。
【図１０】この発明の実施の形態３による力覚センサの出力の変化を示すグラフである。
【図１１】この発明の実施の形態３による組付ワーク及び被組付ワークの組付状態の他の例を示す断面図である。
【図１２】この発明の実施の形態４によるロボットの制御装置を示すブロック図である。
【図１３】図１２のオフラインプログラミング装置で用いられる座標系を説明するための説明図である。
【図１４】この発明の実施の形態５による経路教示系の教示処理を示すフローチャートである。
【図１５】この発明の実施の形態５による力覚センサの出力の変化を示すグラフである。
【図１６】この発明の実施の形態６によるロボットの制御装置を示すブロック図である。
【図１７】この発明の実施の形態６による力覚センサの出力の変化を示すグラフである。
【図１８】この発明の実施の形態７によるロボットの制御装置が生成した表示情報の表示状態の一例を説明するための説明図である。
【発明を実施するための形態】
【００１６】
以下、この発明を実施するための形態について、図面を参照して説明する。
実施の形態１．
図１は、この発明の実施の形態１によるロボットを示す構成図である。
図１において、ロボット１００は、垂直多関節型ロボットである。また、ロボット１００は、組付ワーク１４０及び被組付ワーク１５０の組付作業を行う。この組付作業とは、図２に示すように、被組付ワーク１５０に設けられた被挿入部１５０ａに組付ワーク１４０を挿入して、被組付ワーク１５０に組付ワーク１４０を組み付ける作業である。
【００１７】
また、ロボット１００は、ロボットアーム１０１と、ロボットハンド１０２とを有している。ロボットハンド１０２は、ロボットアーム１０１の手首部に設けられている。ロボットハンド１０２は、対向配置された一対のフィンガー部を有している。また、ロボットハンド１０２は、一対のフィンガー部が組付ワーク１４０をその側方から挟み込むことによって、組付ワーク１４０を把持（挟持・握持）可能である。
【００１８】
ロボットアーム１０１の複数の関節部のそれぞれには、ロボットアーム１０１の位置姿勢を変化させるためのサーボモータと、サーボモータの駆動量を検出するためのエンコーダとが取り付けられている（いずれも図示せず）。ロボットアーム１０１の手首部には、力覚検出手段としての力覚センサ１１０が取り付けられている。力覚センサ１１０は、ロボットハンド１０２に接触した物体に生じる反力（応力・ひずみ）を検出するためのセンサである。
【００１９】
具体的に、力覚センサ１１０は、図２に示すように、並進３軸方向の力成分（Ｘ軸，Ｙ軸，Ｚ軸）と、並進３軸の軸回りのモーメント成分（Ｒｘ，Ｒｙ，Ｒｚ）とのそれぞれに応じた信号、即ち６軸成分値の信号を生成する。なお、図２に示す座標系は、ロボット１００が設けられた作業空間に対応付けられた（固定された）座標系である。また、図２の例では、図２の上方が引抜方向であり、その引抜方向に沿うＺ軸が第１並進軸である。また、Ｚ軸に対して直交するＸ軸が第２並進軸であり、Ｘ軸及びＺ軸の両方に対して直交するＹ軸が第３並進軸である。
【００２０】
ロボット１００の動作は、制御装置本体１２０によって制御される。制御装置本体１２０は、力覚センサ１１０を介して、ロボットハンド１０２に接触した物体に生じる反力を検出する。また、制御装置本体１２０は、ロボットアーム１０１のエンコーダを介して、ロボットハンド１０２の位置姿勢（位置、高さ及び傾き）を監視し、ロボットハンド１０２の位置姿勢を検出可能である。
【００２１】
さらに、制御装置本体１２０は、演算処理部（ＣＰＵ）、記憶部（ＲＯＭ、ＲＡＭ及びハードディスク等）及び信号入出力部を持ったハードウェア（図示せず）により構成することができる。また、制御装置本体１２０は、所定の動作を定義したロボットプログラムを例えば汎用コンピュータ等（図示せず）から受けて、予め記憶している。
【００２２】
さらに、制御装置本体１２０は、予め記憶しているロボットプログラムに基づいて、ロボット１００の動作を制御する。また、制御装置本体１２０は、ティーチングボックス（手動操作盤）１３０を介して入力された作業者からの移動命令に従って、ロボット１００の動作を制御する。
【００２３】
ここで、制御装置本体１２０に記憶されたロボットプログラムについて説明する。このロボットプログラムは、ロボットハンド１０２（手先）の位置姿勢を示す具体的な座標値の羅列である。制御装置本体１２０は、汎用コンピュータから受けたロボットプログラムを、記憶部に一旦記憶した上で、そのロボットプログラムの座標値を先頭から順に読み出す。そして、制御装置本体１２０は、座標値を順に読み出した後に、ロボットハンド１０２が順番にその座標値に到達するように、ロボットアーム１０１のサーボモータを駆動させて、ロボットアーム１０１をなす複数のリンクを回動させる。
【００２４】
なお、このようなロボットプログラムには、例えば、条件分岐、繰り返し、サブルーチン、関数及びプロシージャ等を用いた構造化プログラミング文法により記述され、ロボット１００を動作させるための命令語が組み合されたロボット言語による算譜を用いることができる。
【００２５】
また、制御装置本体１２０は、力覚センサ１１０から６軸成分値の情報（以下、「力覚センサ１１０の出力」ともいう）を取得し、例えば、その６軸成分値が一定のものとなるようなロボットハンド１０２の座標値を算出して、ロボットハンド１０２の次の移動先の座標値を生成する。これにより、制御装置本体１２０は、力覚センサ１１０からの６軸成分値の取得、取得した６軸成分値を用いた所定の演算に基づくロボットハンド１０２の移動量の算出、ロボットハンド１０２の移動先の座標値の生成、及びロボットハンド１０２の移動という一連の制御ループ（即ち経路教示系１２７の一連の動作）を実行可能となっている。
【００２６】
次に、図３は、図１の制御装置本体１２０をより具体的に示すブロック図である。図３において、制御装置本体１２０は、組付開始位置と、組付終了位置と、必要に応じて組付作業中の姿勢変更位置とを定義することによって、組付作業経路を自動生成する。また、制御装置本体１２０には、組付ワーク１４０の引抜方向の情報と、ロボットハンド１０２の引抜動作に関する目標位置の情報とが予め設定されている。また、制御装置本体１２０は、動作制御部１２１、位置姿勢探索部１２２、引抜位置姿勢生成部１２３、目標位置到達判定部１２４、力覚センサ出力判定部１２５及び作業経路生成部１２６を有している。
【００２７】
位置姿勢探索部１２２、引抜位置姿勢生成部１２３、目標位置到達判定部１２４、力覚センサ出力判定部１２５及び作業経路生成部１２６は、経路教示部としての経路教示系１２７を構成している。経路教示系１２７は、被組付ワーク１５０に組付ワーク１４０を組み付ける際のロボットハンド１０２の移動経路である組付作業経路を、動作制御部１２１に教示する。また、経路教示系１２７は、組付作業経路を動作制御部１２１に教示する際に、動作制御部１２１に動作指令を送り、ロボットハンド１０２の位置姿勢を変更させる。
【００２８】
動作制御部１２１は、制御装置本体１２０におけるロボット１００の動作制御に関する機能を担う。位置姿勢探索部１２２は、ロボットハンド１０２の引抜開始位置姿勢（最適な位置姿勢）についての探索処理を実行可能である。この引抜開始位置姿勢とは、組付ワーク１４０の引抜方向の位置は変化せず、組付ワーク１４０の引抜方向以外（図２におけるＺ方向以外の方向、即ちＸ、Ｙ、Ｒｘ、Ｒｙ及びＲｚの各方向）への力覚センサ１１０の出力が最小となる（十分に小さい）位置姿勢である。この引抜開始位置姿勢は、引抜移動経路の起点であり、かつ組付作業経路の終点でもある。
【００２９】
引抜位置姿勢生成部１２３は、組付ワーク１４０をＺ方向（引抜方向）のみに一定量移動させるためのロボットハンド１０２の位置姿勢（位置、高さ及び角度）を算出して、その算出した座標値へ向けてロボットハンド１０２を移動させる。目標位置到達判定部１２４は、ロボットハンド１０２の引抜動作の際に、予め設定された目標位置としての引抜終了位置にロボットハンド１０２が到達したか否かを判定する。また、目標位置到達判定部１２４は、ロボットハンド１０２が到達したことを確認した場合に、その時点のロボットハンド１０２の位置姿勢を引抜終了位置姿勢として記憶する。この引抜終了位置姿勢は、引抜移動経路の終点であり、かつ組付作業経路の起点でもある。
【００３０】
力覚センサ出力判定部１２５は、ロボットハンド１０２の引抜動作の際に、初期状態（ロボットハンド１０２を開いた状態）での力覚センサ１１０の出力（初期値）を基準値（＝０）として設定する。また、力覚センサ出力判定部１２５は、ロボットハンド１０２の引抜動作中の力覚センサ１１０の出力の絶対値、即ち初期状態で設定した基準値からの相対値を監視し、その監視している力覚センサ１１０の出力の絶対値に基づいて、引抜動作中にロボットハンド１０２の姿勢変更を行うか否かを判定する。
【００３１】
さらに、力覚センサ出力判定部１２５は、引抜動作中にロボットハンド１０２の姿勢変更を行うと判定した場合には、位置姿勢探索部１２２に探索処理を実行させる。作業経路生成部１２６は、位置姿勢探索部１２２及び目標位置到達判定部１２４が記憶したロボットハンド１０２の位置姿勢を時系列逆順に繋ぎ、ロボットハンド１０２の組付作業経路を生成する。
【００３２】
次に、この位置姿勢探索部１２２による組付位置姿勢の探索処理の一例について説明する。まず、位置姿勢探索部１２２は、Ｘ軸方向にロボットハンド１０２を微小量ｄｘだけ動かし、力覚センサ１１０の出力の変化量ΔＦを、Ｚ軸方向以外の５次元ベクトルとして取得する。即ち、変化量ΔＦは、Ｘ，Ｙ軸方向の力覚センサ１１０の出力の変化量ΔＦｘ，ΔＦｙと、各軸のローテーションＲｘ，Ｒｙ，Ｒｚの力覚センサ１１０の出力の変化量ΔＭｘ，ΔＭｙ，ΔＭｚとの５つの要素により定まる。
【００３３】
そして、位置姿勢探索部１２２は、変化量ΔＦの各要素をｄｘで除したベクトルΔＦ／ｄｘを算出する。これと同様に、位置姿勢探索部１２２は、Ｙ，Ｒｘ，Ｒｙ，Ｒｚ方向のそれぞれに、ロボットハンド１０２を微小量ｄｙ，ｄＲｘ，ｄＲｙ，ｄＲｚのそれぞれだけ移動させて、ベクトルΔＦ／ｄｙ，ΔＦ／ｄＲｘ，ΔＦ／ｄＲｙ，ΔＦ／ｄＲｚを算出する。
【００３４】
即ち、位置姿勢探索部１２２は、引抜方向に沿うＺ軸に対して直交し、かつ互いに直交するＸ軸及びＹ軸に沿う並進運動と、Ｘ軸、Ｙ軸及びＺ軸のそれぞれの軸周りへの回転運動を、組付ワーク１４０を把持しているロボットハンド１０２に実行させる。ここで、ロボットハンド１０２の移動量が比較的少なければ、ΔＦ／ｄ＊（但し、＊＝ｘ，ｙ，Ｒｘ，Ｒｙ，Ｒｚ）に線形性の特性がある。これにより、位置姿勢探索部１２２は、現在の力覚センサ１１０の出力のうちＺ方向以外の出力が０となるロボットハンド１０２の移動量を、５変数の連立１次方程式を解いて算出する。
【００３５】
続いて、位置姿勢探索部１２２は、算出したロボットハンド１０２の移動量分、ロボットハンド１０２を移動させる。そして、位置姿勢探索部１２２は、移動させた後のロボットハンド１０２の位置姿勢で、力覚センサ１１０の出力が最小値（≒０）であるか、又は力覚センサ１１０の出力の絶対値が基準値から増加していない（十分に小さい）ことを確認した場合には、現在のロボットハンド１０２の位置姿勢を引抜開始位置姿勢として記憶する。
【００３６】
従って、位置姿勢探索部１２２は、探索処理の前段階として、ロボットハンド１０２を開いた状態で（組付ワーク１４０を把持していない状態で）力覚センサ１１０の出力を基準値として設定する。そして、位置姿勢探索部１２２は、ロボットハンド１０２が組付ワーク１４０を把持している状態で、力覚センサ１１０の出力の絶対値（Ｚ軸方向以外の各軸の出力の絶対値）が基準値と同等になるように（十分に小さくなるように）、組付ワーク１４０を把持した状態のロボットハンド１０２を各方向へ移動させる。位置姿勢探索部１２２は、力覚センサ１１０の出力が最小となるロボットハンド１０２の位置姿勢を、引抜開始位置姿勢として記憶する。
【００３７】
次に、経路教示系１２７の教示処理の一連の動作について説明する。図４は、図３の経路教示系１２７の教示処理を示すフローチャートである。図５は、引抜動作におけるロボットハンド１０２の初期状態を示す断面図である。図６は、引抜動作におけるロボットハンド１０２の把持状態（挟持状態）を示す断面図である。
【００３８】
まず、図５に示すように、組付ワーク１４０が被組付ワーク１５０に組み付けられている状況（ワーク同士の所望の組付作業が完了した状況）が作業者によって予め用意される。そして、ロボットハンド１０２が、組付ワーク１４０を把持可能な位置に、作業者のティーチングボックス１３０の手動操作等によって移動される。このときのロボット１００の位置姿勢が教示開始位置姿勢となる。なお、この状態では、ロボットハンド１０２と組付ワーク１４０とが正対している必要はない。
【００３９】
続いて、作業者による手動操作等によって、ロボットハンド１０２が、図６に示すように閉状態となり、組付ワーク１４０を把持する。このとき、力覚センサ１１０が組付ワーク１４０に生じる反力に応じた信号を生成する。なお、図６に示す状態では、ロボットハンド１０２と組付ワーク１４０の姿勢とが正対していないため、ロボットハンド１０２と組付ワーク１４０の姿勢とが正対している場合に比べて、組付ワーク１４０に生じる反力が大きくなり、力覚センサ１１０の出力の絶対値が基準値から増加方向に変化する。
【００４０】
そして、図４において、位置姿勢探索部１２２は、力覚センサ１１０の出力の絶対値が基準値から増加方向へ変化したことを検出する（ステップＳ１０１）。この後に、位置姿勢探索部１２２は、ロボットハンド１０２に並進運動及び回転運動を実行させる（ステップＳ１０２）。
【００４１】
このときに、位置姿勢探索部１２２は、ロボットハンド１０２の並進運動及び回転運動に伴うＺ方向以外の力覚センサ１１０の出力の変動を監視して、力覚センサ１１０の出力の絶対値が最小となるロボットハンド１０２の位置姿勢を探索する（ステップＳ１０３）。そして、位置姿勢探索部１２２は、力覚センサ１１０の出力の絶対値について基準値（＝０）からの相対値が十分に小さいロボットハンド１０２の位置姿勢を検出すると、そのロボットハンド１０２の位置姿勢を引抜開始位置姿勢Ｐ０として記憶する（ステップＳ１０４）。
【００４２】
位置姿勢探索部１２２が引抜開始位置姿勢Ｐ０を探索して記憶した後に、引抜位置姿勢生成部１２３は、組付ワーク１４０をＺ方向のみに一定量移動させるためのロボットハンド１０２の位置姿勢を計算し、動作制御部１２１に移動指令を送って、ロボットハンド１０２をＺ方向のみへ一定量移動させる（ステップＳ１０５）。
【００４３】
ここで、以上の説明では、図２に示す座標系のＺ方向を組付ワーク１４０の引抜方向として定義したが、ロボットハンド１０２が精確に組付ワーク１４０を把持している（組付ワーク１４０の座標系とロボットハンド１０２の座標系との座標変換が常に一定である）ものとして、ロボットハンド１０２の座標系の基で組付ワーク１４０の引抜方向を定義することもできる。
【００４４】
また、以降の説明では、引抜開始位置姿勢Ｐ０の探索終了後は、ロボットハンド１０２が組付ワーク１４０を精確に把持しているものとし、組付ワーク１４０の座標系とロボットハンド１０２の座標系との座標変換が常に一定であるものとする。但し、組付ワーク１４０の姿勢を変更させながら一定方向に引き抜く場合等、必ずしも組付ワーク１４０の引抜方向がワーク座標系で定義されるとは限らない。この場合には、組付ワーク１４０の引抜方向は、組付ワーク１４０の座標系やロボットハンド１０２の座標系の基では一定方向ではない。
【００４５】
引抜位置姿勢生成部１２３がロボットハンド１０２をＺ方向へ移動させているときに、目標位置到達判定部１２４は、ロボットハンド１０２の位置姿勢を監視し、ロボットハンド１０２が目標位置に到達したか否かを判定する（ステップＳ１０６）。この判定は、例えば、ロボットハンド１０２が組付ワーク１４０を引き抜くのに十分な高さに達したか否かにより行う。即ち、目標位置到達判定部１２４は、ロボットハンド１０２が組付ワーク１４０を把持した状態で、被組付ワーク１５０の上面から、予め設定された高さ（組付ワーク１４０の高さ寸法以上の高さ）に達したか否かで判定する。
【００４６】
そして、目標位置到達判定部１２４が目標位置に到達していないと判定した場合には（ステップＳ１０６のＮＯ方向）、力覚センサ出力判定部１２５は、Ｚ方向以外の力覚センサ１１０の出力の絶対値が基準値から増加したか否か（又はセンサ出力の絶対値が十分に小さいか否か）を判定する（ステップＳ１０７）。力覚センサ出力判定部１２５が力覚センサ１１０の出力が基準値と同等であることを確認した場合には（ステップＳ１０７のＮＯ方向）、引抜位置姿勢生成部１２３は、再度Ｚ方向へロボットハンド１０２を移動させる（ステップＳ１０５）。これとともに、目標位置到達判定部１２４は、ロボットハンド１０２が目標位置に到達したか否かを判定する（ステップＳ１０６）。
【００４７】
他方、力覚センサ出力判定部１２５がＺ方向以外の力覚センサ１１０の出力の絶対値が基準値から増加したこと（又はセンサ出力の絶対値が十分に小さくないこと）を確認した場合には（ステップＳ１０７のＹＥＳ方向）、位置姿勢探索部１２２は、そのときのロボットハンド１０２の位置において力覚センサ１１０の出力の絶対値（組付ワーク１４０に生じる反力）が最小となるロボットハンド１０２の位置姿勢を探索する（ステップＳ１０８）。このときの位置姿勢探索部１２２の位置姿勢の探索処理については、引抜開始位置姿勢Ｐ０についての探索処理と同様である。
【００４８】
そして、位置姿勢探索部１２２は、このときのロボットハンド１０２の位置において力覚センサ１１０の出力の絶対値が最小となるロボットハンド１０２の位置姿勢を検知した場合には、その位置姿勢を中間位置姿勢Ｐ１として記憶する（ステップＳ１０９）。この後に、位置姿勢探索部１２２は、ロボットハンド１０２の位置姿勢を中間位置姿勢Ｐ１に変更させて、引抜位置姿勢生成部１２３は、再度Ｚ方向へロボットハンド１０２を移動させる（ステップＳ１０５）。そして、目標位置到達判定部１２４は、再度ロボットハンド１０２が目標位置に到達したか否かを判定する（ステップＳ１０６）。
【００４９】
以降、目標位置到達判定部１２４が目標位置に到達したと判定するまで、位置姿勢探索部１２２は、中間位置姿勢を探索し、その探索した位置姿勢をＰ２，Ｐ３，Ｐ４，・・・，Ｐｋ−２，Ｐｋ−１として記憶する（ステップＳ１０５〜Ｓ１０９の繰り返し）。そして、引抜位置姿勢生成部１２３は、ロボットハンド１０２のＺ方向への移動を繰り返す。
【００５０】
この後、目標位置到達判定部１２４は、ロボットハンド１０２が目標位置に到達したと判定した場合には（ステップＳ１０６のＹＥＳ方向）、その時点のロボットハンド１０２の位置姿勢を引抜完了位置姿勢Ｐｋとして記憶する（ステップＳ１１０）。そして、作業経路生成部１２６は、位置姿勢探索部１２２及び目標位置到達判定部１２４が記憶したロボットハンド１０２の各位置姿勢を繋ぐ経路である引抜移動経路を時系列逆順に繋ぐ経路、即ちＰｋ→Ｐｋ−１→Ｐｋ−２→・・・→Ｐ２→Ｐ１→Ｐ０のようにロボットハンド１０２が移動する経路を組付作業経路として記憶する（ステップＳ１１１）。この後に、作業経路生成部１２６は、動作制御部１２１に組付作業経路を教示して、経路教示系１２７の教示処理を終了する。
【００５１】
従って、経路教示系１２７は、被組付ワーク１５０への組み付けが完了した状態の組付ワーク１４０をロボットハンド１０２に把持させ、組付ワーク１４０に過大な力が作用しないロボットハンド１０２の位置姿勢を探索しながら、ロボットハンド１０２に組付ワーク１４０の引抜動作を実行させ、その引抜動作の際に、ロボットハンド１０２の引抜移動経路を取得する。そして、経路教示系１２７は、取得した引抜移動経路を時系列逆順に辿る経路を、組付作業経路として生成し、その生成した組付作業経路を動作制御部１２１に教示する。
【００５２】
なお、ロボット１００に組付ワーク１４０の組付作業を行わせるには、取得した組付作業経路上をロボット１００に動作させる（ティーチングプレイバック）方式を採用してもよい。又は、取得した組付作業経路を基に、例えばコンプライアンス制御等の力制御による組付動作を採用してもよい。
【００５３】
上記のような実施の形態１のロボットの教示装置によれば、経路教示系１２７が、ロボットハンド１０２による引抜動作の際に探索した引抜移動経路から組付作業経路を取得する。そして、経路教示系１２７が、その取得した組付作業経路を動作制御部１２１に教示する。この構成により、引抜動作の最中にロボットハンド１０２が組付作業の失敗する姿勢を取ることがなく、また、引抜方向への組付ワーク１４０の反力に基づいて組付作業の完了を判断しない。この結果、ロボット１００の動作可能範囲や力覚センサ１１０の出力の許容範囲に関する作業者の初期設定作業を省略することができ、作業者による教示作業の負担を軽減させることができる。
【００５４】
これに加えて、ロボットプログラム作成の簡素化と生産ラインの立ち上げの迅速化とを図ることができるとともに、力覚センサ１１０のロボット１００への適合作業が不要となることから、作業者による教示作業の作業性をより向上させることができる。
【００５５】
また、作業者が組付ワーク１４０の引抜方向と引抜完了位置（目標位置）とを設定し、ロボットハンド１０２を組付ワーク１４０の組付位置付近に移動させれば、経路教示系１２７は、力覚センサ１１０の出力に基づいて組付作業経路を自動生成する。この構成により、従来の目視での作業者による教示と比較して、組付ワーク１４０に対して不必要な力が掛からないロボットハンド１０２の組付作業経路を得ることができる。
【００５６】
さらに、ロボット１００の組付作業時に力制御を用いる場合には、得られた作業経路を中心軸とする空間をロボット１００の動作可能範囲として設定することによって、過不足のない適切なロボット１００の動作可能範囲を設定することができる。
【００５７】
ここで、特許文献２に示すような従来装置では、姿勢の調整や、組付動作中の姿勢変更が考慮されていない。このため、姿勢の調整や、組付中に姿勢変更を伴う組付作業には、特許文献２に示すような従来装置を適応できないという問題があった。
これに対して、上記のような実施の形態１のロボットの教示装置によれば、経路教示系１２７が、ロボットハンド１０２の引抜動作中に力覚センサ１１０の出力の絶対値が増加したことを検出した場合に、ロボットハンド１０２の中間位置姿勢を探索して記憶し、その記憶した中間位置姿勢でロボットハンド１０２の引抜動作を続行させる。この構成により、姿勢変更を伴うロボットハンド１０２の引抜動作であっても、経路教示系１２７が姿勢変更後の最適な位置姿勢を探索する。このため、姿勢の調整や、組付中に姿勢変更を伴う組付作業であっても、変更後の位置姿勢を自動的に検出して、動作制御部１２１に教示することができ、作業員による中間位置姿勢（経由点）についての教示作業を不要とすることができる。
【００５８】
これに加えて、経路教示系１２７が姿勢変更に必要な位置姿勢のみを記憶するため、動作経路を単位時間毎のロボットハンド１０２の位置姿勢で定義する手法と比較して、制御装置本体１２０における必要な記憶領域を抑えることができる。また、組付ワーク１４０の被組付ワーク１５０への挿入方向を真直ぐに組付可能な場合等の作業中に姿勢変更（再探索処理）が必要ない場合には、位置姿勢探索は初回（Ｐ０）のみに行われるので作業経路の生成が短時間で完了し、かつ必要な記憶領域を抑える効果がある。
【００５９】
なお、実施の形態１の引抜開始位置姿勢及び中間位置姿勢の探索方法は、最適な位置姿勢の探索方法の一例であり、引抜開始位置姿勢及び中間位置姿勢の探索方法には、力覚センサ１１０の出力の統計的データ解析や、接触状態のモデル化等を利用してもよく、本発明は、実施の形態１の探索方法に限られるものではない。
【００６０】
実施の形態２．
実施の形態１では、ロボット１００のロボットアーム１０１の手首部（先端部）に力覚センサ１１０が取り付けられていた。これに対して、実施の形態２では、被組付ワーク１５０が載置された被組付ワーク治具２００の底部に力覚センサ２１０が取り付けられている。
【００６１】
図７は、この発明の実施の形態２による被組付ワーク治具２００及び力覚センサ２１０を示す断面図である。図７において、実施の形態２では、被組付ワーク治具２００による固定にがたつきが少なければ、経路教示系１２７は、実施の形態１と同様の動作で引抜移動経路及び組付作業経路を取得することができる。つまり、経路教示系１２７は、ロボットハンド１０２の引抜動作における力覚センサ２１０の出力の初期値を、基準値として取得することによって、ロボットハンド１０２の引抜移動経路を探索可能である。これにより、力覚センサ２１０のロボットハンド１０２への適合作業は不要である。
【００６２】
ここで、実施の形態１のように、ロボット１００側に力覚センサ１１０を取り付けた場合には、ロボット１００の稼働中に、力覚センサ１１０のセンサケーブルが擦れたり、ロボット１００の可動部にセンサケーブルが挟まれたりする等、センサケーブルの干渉や取回しが問題となる場合がある。
これに対して、上記のような実施の形態２のロボットの教示装置によれば、被組付ワーク治具２００側に力覚センサ２１０が取り付けられているので、センサケーブルがロボットハンド１０２から分離されることにより、ロボット１００の稼動によるセンサケーブルの干渉や取回しの問題を解消することができる。
【００６３】
また、ロボットアーム１０１の手首部に力覚センサ１１０を取り付ける場合と比較して、力覚センサ２１０の取り外しや交換を容易に行うことができる。さらに、ロボット１００の衝突等の不測の動作によって、力覚センサ２１０が損壊する可能性を低減させることができる。
【００６４】
なお、実施の形態１では、力覚センサ１１０がロボットアーム１０１の手首部に取り付けられ、実施の形態２では、力覚センサ１１０が被組付ワーク治具２００の底部に取り付けられていた。しかしながら、力覚センサ１１０をロボットアーム１０１の手首部と被組付ワーク治具２００との両方に取り付けてもよい。
【００６５】
実施の形態３．
実施の形態３では、力覚センサ出力判定部１２５は、ロボットハンド１０２に引抜動作を実行させているときに、力覚センサ１１０のＺ方向への出力の変化を監視し、力覚センサ１１０のＺ方向への出力の絶対値が減少方向へ変化したか否かを検出可能である。そして、力覚センサ出力判定部１２５は、力覚センサ１１０のＺ方向への出力の絶対値が減少方向へ変化したことを検出した場合に、組付ワーク１４０の一部分又は全体が被挿入部１５０ａの内壁（ワークの外面同士が接触する箇所）を抜けてテーパ部１５０ｂに移動したと判断し、中心位置探索部１２８にテーパ部１５０ｂの開口面における中心位置を探索させる。
【００６６】
図８は、この発明の実施の形態３によるロボットの制御装置を示すブロック図である。図８において、実施の形態３の力覚センサ出力判定部１２５は、ロボットハンド１０２の引抜動作中における力覚センサ１１０のＺ方向への出力を取得して摩擦対応レベルとして記憶する。また、力覚センサ出力判定部１２５は、力覚センサ１１０のＺ方向への出力の絶対値が摩擦対応レベルよりもよりも小さくなったか否か、即ち摩擦対応レベルから減少方向へ変化したか否かを監視する。
【００６７】
実施の形態３の経路教示系１２７は、中心位置探索部１２８をさらに有している。中心位置探索部１２８は、力覚センサ出力判定部１２５が力覚センサ１１０のＺ方向への出力の絶対値が摩擦対応レベルから減少方向へ変化したことを検出した場合に、被挿入部１５０ａにおける引抜方向に対する直交面（開口面）の中心位置である挿入中心位置（最適挿入位置）を探索して、その挿入中心位置の情報を記憶する。
【００６８】
この挿入中心位置とは、ロボットハンド１０２のＺ方向の位置及び姿勢（並進方向の軸周りモーメント）が同一であり、ロボットハンド１０２をＸ軸及びＹ軸に沿って移動させたときに組付ワーク１４０と被組付ワーク１５０とが接触するまでの移動距離が最長となるロボットハンド１０２の位置である。
【００６９】
図９は、この発明の実施の形態３による組付ワーク１４０及び被組付ワーク１５０の組付状態の一例を示す断面図である。図９において、実施の形態３の被組付ワーク１５０における被挿入部１５０ａの開口周縁部には、組付ワーク１４０との組み付けを容易にするためのテーパ部（切り欠き）１５０ｂが設けられている。ここで、実施の形態３では、組付ワーク１４０の外面が被組付ワーク１５０の被挿入部１５０ａの内壁に密着状態（嵌め合いがきつい状態）で組み付けられている。他の構成は、実施の形態１，２と同様である。
【００７０】
次に、中心位置探索部１２８による挿入中心位置の探索処理について説明する。引抜位置姿勢生成部１２３がロボットハンド１０２の引抜動作を続けて、組付ワーク１４０の先端（図８の下端）が被挿入部１５０ａのテーパ部１５０ｂに達すると、組付ワーク１４０と被組付ワーク１５０との接触による摩擦が無くなり、力覚センサ１１０のＺ方向の出力が組付ワーク１４０の重さ程度になる。即ち、図１０に示すように、力覚センサ１１０のＺ方向の出力の絶対値が摩擦対応レベルよりも減少する。
【００７１】
そして、力覚センサ出力判定部１２５が、力覚センサ１１０のＺ方向の出力の絶対値が摩擦対応レベルから減少方向に変化したこと（組付ワーク１４０の全体に生じる引抜方向への反力が減少方向に変化したこと：立ち下がり）を検出して、その後に、力覚センサ１１０のＺ方向の出力の減少方向への変化が消滅したことを検出すると、中心位置探索部１２８が挿入中心位置の探索処理を開始する。従って、力覚センサ出力判定部１２５が、組付ワーク１４０に生じる引抜方向への反力が減少方向に変化して摩擦による力が消滅したと判定すると、中心位置探索部１２８が、挿入中心位置の探索処理を開始する。
【００７２】
まず、中心位置探索部１２８は、力覚センサ１１０を介して組付ワーク１４０の外面と被挿入部１５０ａの内壁との接触を検出するまで、Ｘ軸のプラス側の方向へロボットハンド１０２を移動させる。そして、中心位置探索部１２８は、組付ワーク１４０の外面と被挿入部１５０ａの内壁との接触を検出すると、ロボットハンド１０２の移動を停止させて、このときのロボットハンド１０２の位置を位置ＰＸ＋として記憶する。
【００７３】
続いて、中心位置探索部１２８は、力覚センサ１１０を介して組付ワーク１４０の外面と被挿入部１５０ａの内壁との接触を検出するまで、Ｘ軸のマイナス側の方向へロボットハンド１０２を移動させる。そして、中心位置探索部１２８は、組付ワーク１４０の外面と被挿入部１５０ａの内壁との接触を検出すると、ロボットハンド１０２の移動を停止させて、このときのロボットハンド１０２の位置を位置ＰＸ−として記憶する。この後に、中心位置探索部１２８は、位置ＰＸ＋と位置ＰＸ−との中間地点にロボットハンド１０２を移動させる。
【００７４】
また、中心位置探索部１２８は、Ｘ軸での動作と同様に、力覚センサ１１０を介して組付ワーク１４０の外面と被挿入部１５０ａの内壁との接触を検出するまで、Ｙ軸のプラス側及びマイナス側のそれぞれの方向へロボットハンド１０２を移動させる。そして、中心位置探索部１２８は、組付ワーク１４０の外面と被挿入部１５０ａの内壁との接触を検出すると、ロボットハンド１０２の移動を停止させて、そのときのロボットハンド１０２の位置を、それぞれ位置ＰＹ＋及び位置ＰＹ−として記憶する。
【００７５】
最後に、中心位置探索部１２８は、位置ＰＸ＋と位置ＰＸ−との中間地点で、かつ位置ＰＹ＋と位置ＰＹ−との中間地点を挿入中心位置として記憶する。これにより、中心位置探索部１２８による挿入中心位置の探索処理が終了する。
【００７６】
中心位置探索部１２８による挿入中心位置の探索処理の後には、実施の形態１と同様に、目標位置到達判定部１２４が目標位置に到達したと判定するまで、力覚センサ出力判定部１２５が力覚センサ１１０の出力の絶対値が十分に小さいことを確認しながら、引抜位置姿勢生成部１２３が、ロボットハンド１０２に引抜動作を繰り返し実行させる。このときに、力覚センサ出力判定部１２５が、力覚センサ１１０の出力の絶対値が大きいと判定したときには、組付ワーク１４０をテーパ部１５０ｂまで引き抜いていないと判断して、位置姿勢探索部１２２が挿入中心位置の探索処理を再度実行する。
【００７７】
そして、目標位置到達判定部１２４が目標位置に到達したと判定した場合には、作業経路生成部１２６は、位置姿勢探索部１２２及び目標位置到達判定部１２４が記憶したロボットハンド１０２の各位置姿勢を繋いで、引抜移動経路を取得する。続いて、作業経路生成部１２６は、中心位置探索部１２８が記憶した挿入中心位置に基づいて、引抜移動経路における位置を調整（補正）する。具体的に、作業経路生成部１２６は、中心位置探索部１２８が記憶した挿入中心位置へのＸ−Ｙ平面上のロボットハンド１０２の並進移動量を、位置姿勢探索部１２２が記憶した一部又は全部の位置姿勢に足し加えて調整する。
【００７８】
次に、図１１に示すように、組付ワーク１４０が被組付ワーク１５０の被挿入部１５０ａに遊嵌状態（嵌め合いが緩い状態）で組み付けられている場合の中心位置探索部１２８による挿入中心位置の探索処理について説明する。ここで、実施の形態３の力覚センサ出力判定部１２５には、図１０に示すように、ロボットハンド１０２が空中で組付ワーク１４０を把持している状態の力覚センサ１１０のＺ軸方向の出力（力覚センサ１１０の信号のレベル）が重量対応レベルとして予め設定されている。この重量対応レベルとは、組付ワーク１４０の重量に対応する力覚センサ１１０のＺ軸方向の出力である。
【００７９】
力覚センサ出力判定部１２５は、ロボットハンド１０２に引抜動作をさせているときに、力覚センサ１１０のＺ軸方向の出力の絶対値が重量対応レベルと同等であるかどうかを監視する。そして、力覚センサ出力判定部１２５が力覚センサ１１０のＺ軸方向の出力が重量対応レベルと同等であることを検出すると、中心位置探索部１２８が挿入中心位置の探索処理を実行する。この場合の探索処理は、図９に示す場合の探索処理と同様である。
【００８０】
上記のような実施の形態３のロボットの教示装置によれば、ロボットハンド１０２に引抜動作を実行させているときに、経路教示系１２７は、組付ワーク１４０に生じる引抜方向への反力が減少方向に変化して摩擦による力が消滅したと判定すると、挿入中心位置を探索して記憶する。そして、経路教示系１２７は、挿入中心位置に基づいて、引抜移動経路を調整する。この構成により、ロボット１００による組付ワーク１４０及び被組付ワーク１５０の組付作業の際に、調整後の引抜移動経路に基づく組付作業経路が用いられ、被組付ワーク１５０の被挿入部１５０ａにおける開口面の中心（テーパ中心）に組付ワーク１４０を移動させて組付作業を開始する。この結果、組付ワーク１４０がテーパ部１５０ｂに誘い込まれて、組付ワーク１４０及び被組付ワーク１５０の引き込みが強くなり、組付作業の成功率を向上させることができる。
【００８１】
また、経路教示系１２７は、力覚センサ１１０の引抜方向への出力が重量対応レベルと同等であることを検出した際に、ロボット１００が被組付ワーク１５０の被挿入部１５０ａの中心（部品公差の中心）に組付ワーク１４０を移動させて組み付けを行う。この構成により、ワーク同士の嵌め合いが緩い場合でも、被挿入部１５０ａの開口面においては、組付ワーク１４０及び被組付ワーク１５０の引き込みが強くなり、作業成功率を向上させることができる。
【００８２】
なお、実施の形態３における図９に示す例の探索処理では、力覚センサ１１０のＺ方向の出力の絶対値が摩擦対応レベルから減少方向に変化したこと、及び、その後に力覚センサ１１０の出力の減少方向への変化が一定となったことを開始条件としていた。しかしながら、図１１に示す例の探索処理のように、組付ワーク１４０に生じる引抜方向への反力が重量対応レベルと同等となったことを開始条件としてもよい。
【００８３】
実施の形態４．
実施の形態１〜３では、組付ワーク１４０の引抜方向、及び引抜動作の目標位置に関する初期設定と、組付完了位置（教示開始位置）までロボットハンド１０２を移動させるといった初期操作とを作業者が行うことを想定していた。これに対して、実施の形態４では、オフラインプログラミング装置３００によって、ロボットハンド１０２による組付ワーク１４０の引抜方向及び引抜開始位置等を含む初期設定情報が経路教示系１２７に自動的に与えられる。
【００８４】
図１２は、この発明の実施の形態４によるロボットの制御装置を示すブロック図である。図１２において、実施の形態４の制御装置本体１２０には、オフラインプログラミング装置３００が接続されている。オフラインプログラミング装置３００は、組付ワーク１４０と、被組付ワーク１５０と、ロボットハンド１０２と、ロボット１００の設置環境とのそれぞれの３次元形状に関する３次元形状情報としてのＣＡＤデータを予め記憶している。
【００８５】
また、オフラインプログラミング装置３００は、組付ワーク１４０の引抜方向・組付方向と、ロボットハンド１０２の引抜開始位置と、ロボットハンド１０２の引抜動作の際の目標位置とを含む初期設定情報について、ＣＡＤデータに基づく演算処理を行う。さらに、オフラインプログラミング装置３００は、ＣＡＤデータに基づく演算処理結果である初期設定情報を、経路教示系１２７（位置姿勢探索部１２２）に与える。実施の形態４の経路教示系１２７は、オフラインプログラミング装置３００によって与えられた初期設定情報を用いて、ロボットハンド１０２の組付作業経路の探索処理を行う。他の構成は、実施の形態１〜３と同様である。
【００８６】
次に、オフラインプログラミング装置３００によるＣＡＤデータに基づく演算処理について、より具体的に説明する。まず、実施の形態１〜３では、組付ワーク１４０の引抜方向をＺ軸とした図２に示すような座標系で説明したが、実施の形態４では、世界座標系（Ｘｓ，Ｙｓ，Ｚｓ）と、ワーク座標系（Ｘｗ，Ｙｗ，Ｚｗ）と、ロボット座標系（Ｘｒ，Ｙｒ，Ｚｒ）とを、図１３に示すように定義して説明する。なお、図１３では、各軸周りのローテーションを省略して示す。
【００８７】
図１３における世界座標系は、ロボット１００が設けられた作業空間に対応付けられた（固定された）座標系である。また、ワーク座標系は、組付ワーク１４０の姿勢に対応付けられた座標系である。さらに、ロボット座標系は、ロボットハンド１０２の姿勢に対応付けられた座標系である。これらの座標系において、組付ワーク１４０の姿勢が変更されれば、世界座標系とワーク座標系との関係は変化し、ロボットハンド１０２の位置姿勢が変化すれば、世界座標系とロボット座標系の関係とは変化する。
【００８８】
なお、世界座標系は、被組付ワーク１５０又は被組付ワーク治具２００の姿勢に対応付けられた座標系として扱うこともできる。また、説明を簡単にするため、組付ワーク１４０をロボットハンド１０２が正対して把持した（掴んだ）とき、ワーク座標系とロボット座標系との関係は、座標軸の単位ベクトルが同一で原点が異なっているものとする。さらに、以下では、Ｚ方向を引抜方向・組付方向とした例について説明する。
【００８９】
ここで、組付ワーク１４０の組付方式は、ワーク座標系に基づく第１の組付方式と、世界座標系に基づく第２の組付方式との２種に大別される。従って、オフラインプログラミング装置３００は、組付ワーク１４０の組付方式毎に適した定義を行うために、組付ワーク１４０の姿勢によらず、組付ワーク１４０の組付方向が、ワーク座標系のＺｗ方向であるか、世界座標系のＺｓ方向であるかを、ＣＡＤデータから組付作業を分析して判断する。
【００９０】
第１の組付方式とは、組付ワーク１４０の組付方向がワーク座標系のＺｗ方向であり、組付ワーク１４０の組付進行面が常に一定である方式である。具体的に、組付ワーク１４０の姿勢を変更せずに世界座標系において直線を描くように組み付ける単純な組付作業や、組付ワーク１４０の姿勢が変更するにつれ組付ワーク１４０の進行方向が世界座標系の基では変化する組付作業である。
【００９１】
一般的に、第１の組付方式についての引抜方向を正確に定義するためには、引抜位置姿勢生成部１２３に外部センサ等を用いてワーク座標系を入力して認識させる必要がある。これに対して、経路教示系１２７がロボットハンド１０２に引抜動作を実行させる際には、組付ワーク１４０とロボットハンド１０２とが正対しているため、ロボット座標系のＺｒ方向を組付ワーク１４０の引抜方向として問題がない（ロボット座標系は通常では動作制御部１２１等から取得可能である）。即ち、引抜位置姿勢生成部１２３にワーク座標系を認識させる必要はない。
【００９２】
そして、オフラインプログラミング装置３００は、目標位置についてロボット座標系のＺｒの座標値で指定する。例えば、引抜開始位置としてのワーク把持位置Ｐ０−１（引抜開始位置姿勢Ｐ０が探索される前の位置）に組付ワーク１４０の長さＬと、適当なオフセット量ｌとをロボット座標系のＺｒ方向に加えた値が目標位置として指定される。即ち、オフラインプログラミング装置３００は、組付ワーク１４０の引抜量（組付ワーク１４０の高さ寸法＋オフセット量ｌ）で目標位置を設定する。
【００９３】
次に、第２の組付方式とは、組付ワーク１４０の組付方向が世界座標系のＺｓ方向であり、被組付ワーク１５０や被組付ワーク治具２００に対して組付ワーク１４０の組付方向が一定であるが、組付ワーク１４０の姿勢を変更させる方式である。この第２の組付方式に関して、オフラインプログラミング装置３００は、目標位置を世界座標系のＺｓの座標値で指定する。例えば、ワーク把持位置Ｐ０−１に組付ワーク１４０の長さＬと、適当なオフセット量ｌとを世界座標系のＺｓ方向に加えた値が目標位置として指定される。
【００９４】
上記のような実施の形態４のロボットの教示装置によれば、組付ワーク１４０の引抜方向、目標位置、及びワーク把持位置までロボットハンド１０２を移動させるといった初期設定情報がオフラインプログラミング装置３００によって自動的に経路教示系１２７に与えられる。この構成により、作業者の負担をより軽減させることができ、作業者の教示作業効率をより向上させることができる。
【００９５】
ここで、一般的には、組付ワーク、被組付ワーク、ロボットハンド及び治具等の３次元形状や法線方向に基づいて、ロボットハンドにおける組付ワークの把持位置や、ロボットハンドにおける組付ワークを把持するまでのアプローチ方向や、組付ワークの組付位置や組付経路等をオフライン（シミュレーション）上で生成する方法が知られている。しかしながら、このような方法では、実環境とオフライン環境との相違によりオフライン上で生成した位置姿勢では、組付作業等の必要精度の高い作業の実現は困難であり、実環境での調整が必要であった。
これに対して、実施の形態４のロボットの教示装置では、引抜動作の際に最初にロボットハンド１０２が組付ワーク１４０を把持する位置姿勢は、位置姿勢探索部１２２によって、ロボットハンド１０２と組付ワーク１４０とがほぼ正対する位置姿勢に調整され、引抜開始位置姿勢Ｐ０として記憶される。従って、事前に与えられるワーク把持位置Ｐ０−１は、ロボットハンド１０２が組付ワーク１４０を不完全でも把持できれば精度的に十分であり、実環境とオフライン環境との相違による把持位置のずれは殆ど問題にならない。
【００９６】
実施の形態５．
これまでの実施の形態１〜４では、座標系の違いはあれ、組付ワーク１４０の引抜方向は常に一定であった。これに対して、実施の形態５では、組付ワーク１４０の引抜方向をロボットハンド１０２の引抜動作中に変更する。即ち、組付ワーク１４０の引抜方向・組付方向について、方向転換する。
【００９７】
実施の形態５では、ロボットハンド１０２の引抜動作開始時の組付ワーク１４０の引抜方向（変更前の引抜方向）を第１引抜方向とし、変更後の組付ワーク１４０の引抜方向を第２引抜方向として説明する。この第１引抜方向は、２段階からなる組付ワーク１４０の組付行程のうち、後の行程の組付方向に対応するものである。これに対して、第２引抜方向は、２段階からなる組付ワーク１４０の組付行程のうち、先の行程の組付方向に対応するものである。また、ロボットハンド１０２の引抜動作について、第１引抜方向への引抜動作を第１引抜動作とし、第２引抜方向への引抜動作を第２引抜動作として説明する。
【００９８】
実施の形態５の力覚センサ出力判定部１２５は、図１５に示すように、力覚センサ１１０の出力のうち第１引抜方向（Ｚ方向）の出力の絶対値が増加方向に変化したとき（組付ワーク１４０と被組付ワーク１５０との摩擦で発生する量と比較して十分に大きくなったとき）に、引抜方向を変更する位置にロボットハンド１０２が到達したと判定する。
【００９９】
ここで、摩擦による組付ワーク１４０の反力は、ロボットハンド１０２の引抜移動速度に依存する。このことから、ロボットハンド１０２の引抜移動速度が一定ならば、組付ワーク１４０の反力もほぼ一定である。他方、方向転換の際に組付ワーク１４０に生じる反力（押し付け力）は、組付ワーク１４０が被挿入部１５０ａの内壁に当ってからのロボットハンド１０２の第１引抜方向への移動距離に比例する。
【０１００】
また、組付ワーク１４０が被挿入部１５０ａの内壁へ押し付けられた場合に、その押し付けによる組付ワーク１４０の反力の増加率及び増加量は、被挿入部１５０ａの内壁との摩擦による反力の増加率及び増加量に比べて大きい。このような反力の増加率及び増加量の違いを利用して、力覚センサ出力判定部１２５は、ロボットハンド１０２の引抜動作中に、引抜方向を変更する位置にロボットハンド１０２が到達したと判定する。
【０１０１】
例えば、一定量引抜後（例えば１，２回引抜動作を実行した後）に、力覚センサ出力判定部１２５は、第１引抜方向の力の立ち上がりを検出するか、又は反力の絶対量が所定量に達したか否かを検出することにより、ロボットハンド１０２が組付ワーク１４０の引抜方向を変更する位置に到達したことを判定可能である。なお、一般的なワークの組付作業において、摩擦による反力は１Ｎ以下であり、押し付けによる反力は５Ｎ以上である。このことから、摩擦による反力と、押し付けによる反力とを区別して検出可能である。
【０１０２】
次に、力覚センサ出力判定部１２５がロボットハンド１０２について引抜方向の変更位置に到達したことを判定した後に、引抜位置姿勢生成部１２３は、組付ワーク１４０の引抜方向を、現在までの第１引抜方向とは異なる向きの第２引抜方向に変更する。
【０１０３】
この変更後の引抜方向、即ち第２引抜方向は、世界座標系やワーク座標系で予め作業者が与えてもよく、又は実施の形態４におけるオフラインプログラミング装置３００のＣＡＤデータに基づく演算処理によって自動設定してもよい。引抜方向が変更された際に、位置姿勢探索部１２２は、引抜方向を変更することになった位置姿勢周りで、第２引抜方向以外の力覚センサ１１０の出力の絶対値が最小となる位置姿勢を探索し、その探索した位置姿勢を方向変更位置姿勢として記憶する。
【０１０４】
従って、ロボットハンド１０２の第１引抜動作において、組付ワーク１４０を第１引抜方向で被挿入部１５０ａの内壁に押し付けた際の位置姿勢は、引抜移動経路及び組付作業経路から除外される。他の構成は、実施の形態１〜４の構成と同様である。
【０１０５】
次に、動作について説明する。ここでは、経路教示系１２７における機能ブロック１２２〜１２６，１２８の個々の動作を一括して、経路教示系１２７の動作として説明する。図１４は、この発明の実施の形態５による経路教示系１２７の教示処理を示すフローチャートである。
【０１０６】
なお、図１４に示すステップＳ２０１，Ｓ２０６の動作は、実施の形態１における図４に示すステップＳ１０１〜Ｓ１０４の一連の動作と同様である。また、図１４に示すステップＳ２０４，Ｓ２１０の動作は、実施の形態１における図４に示すステップＳ１０８，Ｓ１０９の一連の動作と同様である。
【０１０７】
図１４において、経路教示系１２７は、引抜開始位置姿勢Ｐ０を探索し、その引抜開始位置姿勢Ｐ０を記憶する（ステップＳ２０１）。そして、経路教示系１２７は、第１引抜方向へロボットハンド１０２を移動させる（ステップＳ２０２）。このロボットハンド１０２の移動中に、経路教示系１２７は、第１引抜方向以外への力覚センサ１１０の出力の絶対値が増加したか否かを確認する（ステップＳ２０３）。
【０１０８】
このときに、経路教示系１２７は、第１引抜方向以外への力覚センサ１１０の出力の絶対値が増加したことを確認した場合には（ステップＳ２０３のＹＥＳ方向）、第１引抜動作における中間位置姿勢である第１中間位置姿勢Ｐ１を探索し、その第１中間位置姿勢Ｐ１を記憶する（ステップＳ２０４）。そして、経路教示系１２７は、再度、第１引抜方向へロボットハンド１０２を移動させる（ステップＳ２０２）。
【０１０９】
また、経路教示系１２７は、第１引抜方向以外への力覚センサ１１０の出力の絶対値が増加していないことを確認した場合には（ステップＳ２０３のＮＯ方向）、第１引抜方向への力覚センサ１１０の出力の絶対値が増加したか否かを確認する（ステップＳ２０５）。このときに、経路教示系１２７は、第１引抜方向への力覚センサ１１０の出力の絶対値が増加していないことを確認した場合には、引き続き、第１引抜方向へロボットハンド１０２を移動させる（ステップＳ２０２）。
【０１１０】
さらに、経路教示系１２７は、第１引抜方向への力覚センサ１１０の出力の絶対値が増加したことを確認した場合には（ステップＳ２０５のＹＥＳ方向）、方向変更位置姿勢Ｐｎを探索し、その方向変更位置姿勢Ｐｎを記憶する（ステップＳ２０６）。ここで、方向変更位置姿勢Ｐｎを探索する際に、経路教示系１２７は、第２引抜方向に沿う第４並進軸に対して直交しかつ互いに直交する第５及び第６並進軸（いずれも図示せず）のそれぞれに沿う並進運動と、第４並進軸、第５並進軸及び第６並進軸のそれぞれの軸周りへの回転運動とを、ロボットハンド１０２に実行させる。
【０１１１】
そして、経路教示系１２７は、ロボットハンド１０２の位置姿勢を方向変更位置姿勢Ｐｎとさせて、第２引抜方向へロボットハンド１０２を移動させ（ステップＳ２０７）、ロボットハンド１０２が目標位置に到達したか否かを確認する（ステップＳ２０８）。
【０１１２】
このときに、経路教示系１２７は、ロボットハンド１０２が目標位置に到達していないことを確認した場合には（ステップＳ２０８のＮＯ方向）、第２引抜方向以外への力覚センサ１１０の出力の絶対値が増加したか否かを確認する（ステップＳ２０９）。この際に、経路教示系１２７は、第２引抜方向以外への力覚センサ１１０の出力の絶対値が増加していないことを確認した場合には（ステップＳ２０９のＮＯ方向）、再度、第２引抜方向へロボットハンド１０２を移動させる（ステップＳ２０７）。
【０１１３】
また、経路教示系１２７は、第２引抜方向以外への力覚センサ１１０の出力の絶対値が増加したことを確認した場合には（ステップＳ２０９のＹＥＳ方向）、第１引抜動作における中間位置姿勢である第２中間位置姿勢ＰＮ１を探索し、その第２中間位置姿勢ＰＮ１を記憶する（ステップＳ２１０）。そして、経路教示系１２７は、再度、第２引抜方向へロボットハンド１０２を移動させる（ステップＳ２０７）。
【０１１４】
さらに、経路教示系１２７は、ロボットハンド１０２が目標位置に到達したことを確認した場合には（ステップＳ２０８のＹＥＳ方向）、その時点のロボットハンド１０２の位置姿勢を引抜完了位置姿勢Ｐｋとして記憶する（ステップＳ２１１）。そして、経路教示系１２７は、記憶したロボットハンド１０２の各位置姿勢を繋ぐ経路である引抜移動経路を時系列逆順に繋ぐ経路、即ちＰｋ→Ｐｋ−１→Ｐｋ−２→・・・Ｐｎ２→Ｐｎ１→Ｐｎ→・・・→Ｐ２→Ｐ１→Ｐ０のようにロボットハンド１０２が移動する経路を組付作業経路として記憶する（ステップＳ２１２）。この後に、経路教示系１２７は、動作制御部１２１に組付作業経路を教示して、一連の教示処理を終了する。
【０１１５】
上記のような実施の形態５のロボットの教示装置によれば、経路教示系１２７は、ロボットハンド１０２の引抜動作中に、引抜方向を第１引抜方向から第２引抜方向に変更する。この構成により、組付ワーク１４０の組付方向の変更を伴う組付作業であっても、その作業の組付作業経路を自動生成することができる。
例えば、組付ワーク１４０の形状がＬ字状であり、Ｌ字の短辺部側から組付ワーク１４０を被挿入部１５０ａに挿入して、組付ワーク１４０のＬ字の短辺部の先端を、被挿入部１５０ａの底部に設けられた溝に嵌め込むような組付作業であっても、その作業の組付作業経路を自動生成することができる。
【０１１６】
また、経路教示系１２７は、引抜方向を第１引抜方向から第２引抜方向に変更する際に、方向変更位置姿勢を探索して記憶し、その方向変更位置姿勢をロボットハンド１０２の引抜移動経路に含める。この構成により、組付ワーク１４０に対して不必要な力が掛からないロボットハンド１０２の組付作業経路を得ることができる。
【０１１７】
なお、実施の形態５では、第１引抜方向と第２引抜方向との２種類の引抜方向が予め設定されていた。しかしながら、この引抜方向は、３種類以上であってもよい。このように引抜方向を追加する場合、例えば、図１４におけるステップＳ２０２〜Ｓ２０６の一連の動作を、追加する引抜方向に対応させて、図１４における全体の動作に追加すればよい。従って、組付ワーク１４０の組付行程が３段階以上であっても、組付作業経路を自動生成することができる。
【０１１８】
また、図２に示すようなＲｘ、Ｒｙ及びＲｚのうちのいずれかの方向を第１又は第２引抜方向とした場合には、それらの引抜方向へ組付ワーク１４０を回転させることができ、ねじ込み動作を伴う組付ワークの組付作業についても適用できる。
【０１１９】
実施の形態６．
実施の形態６では、力覚センサ１１０の出力をより精確に扱うために、力覚出力調整部１２９が、組付ワーク１４０とロボットハンド１０２とが正対した姿勢で力覚センサ１１０の出力（信号レベル）を調整する。
【０１２０】
ここで、力覚センサ１１０の姿勢や、ロボットハンド１０２の重心位置及び重さ等は未知情報である。このため、力覚センサ１１０の絶対出力から、組付ワーク１４０に掛かっている力を算出することは困難である。なお、従来技術では、適当な時点での力覚センサの絶対出力が基準値として設定され、その基準値からの力覚センサの出力の相対量が力覚センサの出力として用いられる。
【０１２１】
ロボットハンド１０２の引抜動作中に組付ワーク１４０に掛かっている力を精確に検出するためには、引抜動作中のロボットハンド１０２の姿勢で組付ワーク１４０を空中で把持した状態における力覚センサ１１０の絶対出力を除去するためのオフセット量（開閉対応調整値、及び重量対応調整値）で、力覚センサ１１０の出力を調整する必要がある。
【０１２２】
なお、本明細書において、「オフセット量を修正する」とは、その時点での力覚センサ１１０の絶対出力を除去（相殺）するオフセット量で、力覚センサ１１０の出力を調整することを指す。つまり、実施の形態６の経路教示系１２７は、オフセット量を修正することにより、力覚センサ１１０の出力の絶対値と基準値との相対量を除去して、その修正した後の力覚センサ１１０の出力の信号レベルを「０」として扱う。
【０１２３】
図１６は、この発明の実施の形態６によるロボットの制御装置を示すブロック図である。図１６において、経路教示系１２７は、力覚出力調整部１２９をさらに有している。力覚出力調整部１２９は、ロボットハンド１０２の引抜動作を実行する際に、オフセット量を取得するとともに、そのオフセット量を修正する。つまり、経路教示系１２７は、力覚センサ１１０の出力をオフセット量で調整して、ロボットハンド１０２の把持によって組付ワーク１４０に生じる反力を監視する。他の構成は、実施の形態１〜５と同様である。
【０１２４】
次に、力覚出力調整部１２９によるオフセット量の取得・修正処理について説明する。まず、力覚出力調整部１２９は、図１７に示すように、位置姿勢探索部１２２が引抜開始位置姿勢Ｐ０を探索した後に、その引抜開始位置姿勢Ｐ０でロボットハンド１０２が組付ワーク１４０を把持しているときに、力覚センサ１１０の出力を除去するためのオフセット量を算出して、オフセット量を取得する。そして、力覚出力調整部１２９は、ロボットハンド１０２を開状態とさせる（ロボットハンド１０２を開き、組付ワーク１４０を放す）。この状態で、力覚出力調整部１２９は、力覚センサ１１０の出力が基準値（＝０）と同等でない場合には、オフセット量を修正する。
【０１２５】
その後、力覚出力調整部１２９は、ロボットハンド１０２を閉状態とさせ（組付ワーク１４０を把持させ）、力覚センサ１１０の出力が基準値と同等である（十分に小さい）ことを確認すると、位置姿勢探索部１２２に、再度、引抜開始位置姿勢Ｐ０を探索させて、新たに探索した位置姿勢で引抜開始位置姿勢Ｐ０を上書きする。そして、力覚出力調整部１２９は、ロボットハンド１０２の開閉によらず力覚センサ１１０の出力が一定となる位置姿勢になるまで、ロボットハンド１０２の開閉と、より最適な引抜開始位置姿勢Ｐ０の探索とを位置姿勢探索部１２２に繰り返し実行させる。
【０１２６】
ロボットハンド１０２の開閉によらず力覚センサ１１０の出力が一定となる引抜開始位置姿勢Ｐ０を位置姿勢探索部１２２が取得すると、力覚出力調整部１２９は、ロボットハンド１０２を開状態とさせ、ロボットハンド１０２の現在の引抜開始位置姿勢Ｐ０から、世界座標系で同じ姿勢（位置は異なる）の適当な位置姿勢にロボットハンド１０２を移動させる。そして、力覚出力調整部１２９は、ロボットハンド１０２に組付ワーク１４０を空中で把持させて、この状態で力覚センサ１１０の出力が基準値と同等でない場合には、この状態でオフセット量を修正する。
【０１２７】
ここで、ロボットハンド１０２に組付ワーク１４０を空中で把持させるには、組付完了位置からロボットハンド１０２を移動させた後に、作業者がロボットハンド１０２に組付ワーク１４０を把持させてもよい。又は、事前に組付ワーク１４０の把持・持上げ動作が動作制御部１２１に定義されている場合には、その把持・持上げ動作を動作制御部１２１に実行させてもよい。なお、ロボットハンド１０２における把持・持上げ動作から組付動作は一連の動作であるため、連続して動作させることに支障はなく、組付開始位置（引抜終了位置）の付近ではロボットハンド１０２の開閉によらず力覚センサ１１０の出力が一定となる姿勢を取るのが一般的であるため、衝突等の問題は生じない。
【０１２８】
また、ロボットハンド１０２に組付ワーク１４０を空中で把持させた状態でオフセット量を修正した後に、力覚出力調整部１２９は、ロボットハンド１０２を開状態とさせて組付ワーク１４０の把持を解除させ、ロボットハンド１０２を引抜開始位置姿勢Ｐ０の位置に移動させる。これにより、力覚出力調整部１２９の力覚出力調整部１２９によるオフセット量の取得・修正処理が終了する。この後に、経路教示系１２７は、実施の形態１〜５と同様に、引抜動作経路及び組付作業経路の探索を行う。
【０１２９】
従って、オフセット量の修正後には、位置姿勢変化によるロボットハンド１０２の重心位置移動の影響や、組付ワーク１４０の重さの影響が力覚センサ１１０の出力から除去される。
【０１３０】
上記のような実施の形態６のロボットの教示装置によれば、経路教示系１２７は、力覚センサ１１０の出力をオフセット量で調整して、ロボットハンド１０２の把持によって組付ワーク１４０に生じる反力を監視する。この構成により、ロボットハンド１０２の重さや組付ワーク１４０の重さによる影響を力覚センサ１１０の出力から除去することができ、より精度の高い（組付ワーク１４０に掛かる力が小さい）組付作業経路を得ることができる。
【０１３１】
なお、実施の形態６では、オフセット量が開閉対応調整値及び重量対応調整値の両方を含んでおり、開閉対応調整値及び重量対応調整値の両方で力覚センサ１１０の出力を調整した。しかしながら、この例に限定するものではなく、開閉対応調整値及び重量対応調整値のいずれか一方で力覚センサ１１０の出力を調整してもよい。
【０１３２】
実施の形態７．
実施の形態７のロボットの制御装置にける制御装置本体１２０は、例えばロボットハンド１０２の引抜移動経路の探索処理等の際に、力覚センサ１１０の出力状況と、組付ワーク１４０の引抜方向との少なくともいずれか一方を表示するための表示情報を生成する。そして、制御装置本体１２０は、生成した表示情報をティーチングボックス１３０に送り、ティーチングボックス１３０の表示部（表示機器）に図１８に示すような画像（グラフ）を表示させる。他の構成は、実施の形態１〜６と同様である。
【０１３３】
上記のような実施の形態７のロボットの教示装置によれば、ロボットハンド１０２及び制御装置本体１２０の動作の過程や、何らかのエラー状態を作業者に表示することができ、作業性をより向上させることができる。
【０１３４】
なお、実施の形態７の図１８の画像において、力覚センサ１１０の出力状況（縦軸）と、組付ワーク１４０の引抜方向（横軸）とのいずれか一方を省略し、他方を数値表示してもよい。
【０１３５】
また、実施の形態１〜７では、垂直多関節型ロボットについて説明したが、この発明は、水平多関節型ロボットについても適用することができる。さらに、実施の形態１〜７では、指部材型（挟持型）のロボットハンドの教示について説明したが、この発明は、真空又は磁力把持型のロボットハンド（吸着把持型のロボットハンド）の教示についても適用することができる。
【０１３６】
また、実施の形態１〜７では、経路教示系１２７における機能ブロック１２２〜１２６，１２８，１２９が制御装置本体１２０に組み込まれていた。しかしながら、経路教示系１２７として、制御装置本体１２０から独立したハードウェアウェアを用いてもよい。例えば、ティーチングボックス１３０に、その一機能として経路教示系１２７が組み込まれてもよい。
【０１３７】
さらに、経路教示系１２７の機能ブロック１２１〜１２６，１２８，１２９には、機能的にそれぞれ独立したハードウェア若しくはソフトウェアを用いてもよく、又は一部若しくは全部の機能ブロックを併合させたハードウェア若しくはソフトウェアを用いてもよい。ここで、経路教示系１２７における機能ブロック１２２〜１２６，１２８，１２９のうちの少なくともいずれかにソフトウェアを用いた場合には、機械装置の設計が不要となることから、システム構築を容易にすることができる。
【符号の説明】
【０１３８】
１００  ロボット、１０２  ロボットハンド、１１０，２１０  力覚センサ（力覚検出手段）、１２０  制御装置本体、１２１  動作制御部、１２２  位置姿勢探索部、１２３  引抜位置姿勢生成部、１２４  目標位置到達判定部、１２５  力覚センサ出力判定部、１２６  作業経路生成部、１２７  経路教示系（経路教示部）、１２８  中心位置探索部、１２９  力覚出力調整部、１３０  ティーチングボックス、１４０  組付ワーク、１５０  被組付ワーク、１５０ａ  挿入部、１５０ｂ  テーパ部、２００  被組付ワーク治具、３００  オフラインプログラミング装置。
【図１】
2011110688.tif 000003
【図２】
2011110688.tif 000004
【図３】
2011110688.tif 000005
【図４】
2011110688.tif 000006
【図５】
2011110688.tif 000007
【図６】
2011110688.tif 000008
【図７】
2011110688.tif 000009
【図８】
2011110688.tif 000010
【図９】
2011110688.tif 000011
【図１０】
2011110688.tif 000012
【図１１】
2011110688.tif 000013
【図１２】
2011110688.tif 000014
【図１３】
2011110688.tif 000015
【図１４】
2011110688.tif 000016
【図１５】
2011110688.tif 000017
【図１６】
2011110688.tif 000018
【図１７】
2011110688.tif 000019
【図１８】
2011110688.tif 000020