ロボットの先端部の手先効果器により把持された作業対象物を被作業対象物に組み付ける作業を教示するロボットの教示システムであって、前記ロボットに取り付けられ、弾性的に変位可能な接触プローブと、前記ロボットに取り付けられ、前記接触プローブと前記被作業対象物との接触を検出する外力検出器と、前記ロボットの動作を制御する位置速度制御部と、前記接触プローブの接触状態が検出された場合、前記接触プローブの位置に基づいて接触位置を導出する接触位置計算部と、複数の前記接触位置から前記被作業対象物の位置姿勢を計算する位置姿勢計算部と、前記計算された前記被作業対象物の位置姿勢に基づき前記ロボットの組み付け作業プログラムを生成する作業プログラム生成部を備えたことを特徴とするロボットの教示システム。前記ロボットを操作可能な教示ペンダントを備え、前記ロボットは前記教示ペンダントによる指令により接触位置検出動作を行い前記接触プローブと前記被作業対象物とを接触させることを特徴とする請求項1記載のロボットの教示システム。前記接触位置検出動作にて、少なくとも前記被作業対象物上の、前記作業対象物を前記被作業対象物に組み付ける際に前記作業対象物と接触する部分に前記接触プローブを接触させることを特徴とする請求項2記載のロボットの教示システム。前記被作業対象物上の穴部に前記作業対象物を嵌合する作業を教示するに際し、前記位置姿勢計算部にて、前記接触位置計算部にて導出した、前記穴部の内側面上の複数箇所に前記接触プローブを接触させた際の接触位置から前記穴部の中心軸を求め、前記接触位置計算部にて導出した、前記被作業対象物の上面の複数箇所に前記接触プローブを接触させた際の接触位置から前記被作業対象物の上面の平面を求め、前記中心軸と前記平面との交点を求めることで前記被作業対象物の位置姿勢を計算することを特徴とする請求項1乃至3のいずれか1項記載のロボットの教示システム。前記接触位置計算部は、前記接触プローブの位置および前記外力検出器の検出値を所定の周期で記録可能であって、前記接触プローブの接触状態が検出された場合、記録された前記外力検出器の検出値に基づいて前記接触プローブの接触時点を求め、記録された該接触時点における前記接触プローブの位置を前記接触位置として導出することを特徴とする請求項1乃至4のいずれか1項記載のロボットの教示システム。前記接触位置計算部は、前記外力検出器の検出値が所定値を超えたとき、前記接触プローブが接触状態であるとすることを特徴とする請求項5記載のロボットの教示システム。前記接触位置計算部は、前記記録された前記外力検出器の検出値の時間微分が変化した時点を前記接触時点として求めることを特徴とする請求項5または6に記載のロボットの教示システム。前記接触位置計算部は、前記接触位置の導出に際し、記録された前記接触プローブの位置及び記録された前記外力検出器の検出値に対して同じ時間的特性を有するノイズ低減フィルタリング処理を行うことを特徴とする請求項5乃至7のいずれか1項記載のロボットの教示システム。前記教示ペンダントによる指令は、教示者が前記教示ペンダントを操作して送出するジョグ指令であることを特徴とする請求項2記載のロボットの教示システム。前記教示ペンダントによる指令は、教示者が前記教示ペンダントを操作して送出する自動検出コマンドであることを特徴とする請求項2記載のロボットの教示システム。前記ロボットは、前記接触プローブおよび前記被作業対象物を撮像するカメラを備えたことを特徴とする請求項1乃至10のいずれか1項記載のロボットの教示システム。前記接触プローブの接触状態が検出された場合、前記教示ペンダント上に表示することを特徴とする請求項2または3記載のロボットの教示システム。前記接触プローブは、前記ロボットへの取り付け及び該ロボットからの取り外しを可能とするか、又は、ロボットに格納可能に構成されていることを特徴とする請求項1乃至12のいずれか1項記載のロボットの教示システム。ロボットの先端部の手先効果器により把持された作業対象物を被作業対象物に組み付ける作業を教示するロボットの教示方法であって、弾性的に変位可能な接触プローブを前記ロボットに取り付け、前記接触プローブを前記被作業対象物の複数箇所に接触させて、各々の接触位置を導出し、複数の前記接触位置から前記被作業対象物の位置姿勢を計算し、前記計算された前記被作業対象物の位置姿勢に基づき前記ロボットの組み付け作業プログラムを生成することを特徴とするロボットの教示方法。教示者が前記ロボットの制御コントローラに接続された教示ペンダントを操作して前記ロボットに対してジョグ指令を送出し、前記接触プローブを前記被作業対象物に接触させることを特徴とする請求項14記載のロボットの教示方法。教示者が前記ロボットの制御コントローラに接続された教示ペンダントを操作して前記ロボットに対して自動検出コマンドを送出し、前記接触プローブを前記被作業対象物に接触させることを特徴とする請求項14記載のロボットの教示方法。特許文献1の方法では、ソフトフローティングのために、ロボットの制御アルゴリズムにおける位置ループゲインKpと速度ループゲインKvを調整する必要があり、通常の教示者には容易に調整できない。また、接触位置の登録は、ロボットの押付け力と反力がバランスした位置を教示者が人為的に判断し登録するため、施行毎に変動し、精密嵌合に要求されるような精度で、正確に接触位置を教示することは難しい。更に、ロボットの動作中に一ループゲインKp、または速度ループゲインKvを動的に変更する切替えることは困難であり、ソフトフローティング状態への切替時間を必要とするため教示時間が長大化する。また、特許文献2の方法は、安定な力制御をするために大きな操作力が必要である。また精密な位置の調整が難しく、特許文献1同様、正確に接触位置を教示することは難しい。更に特許文献1同様、位置制御状態から力制御状態への切替処理を必要とするため、教示時間が長大化する。更に特許文献1、特許文献2の方法は、各々の制御方法により接触位置を教示することが出来るが、いずれも制御的にロボットと作業対象物の間で接触状態を作り出すものであり、ロボットの発生力と作業に必要な力はバランスがとれず過大力が発生しセンサやワークの破損を生じるという可能性を常にはらんでいる。破損に至らずとも、過大力により教示した作業対象物の位置がずれることで一から再教示が必要となり非常に煩雑である。また、直接ワーク同士が接触を伴う作業を実際のワークを用いて教示することは、把持したワークの位置がずれてしまうことがあり、その場合は一から再教示を行う必要がある。更に教示者が力感覚を直接感じることができないため、作業が成功した状態を作り出すこと自体が困難を伴うことであった。また、特許文献3の方法では、検出対象物体と接触検出子の接触状況を電気的に出力する手段を取っており、プラスチックや樹脂など通電しない材質に対して接触検出信号が得られないため、接触位置の検出を行うことができず、接触位置検出方法としての汎用性を欠くものである。また、接触検出した瞬間に移動停止するためロボットの減速機に多大な負荷を与え、故障の原因となる。更に、本手法の技術的意義は、CADシステムにおけるオフラインプログラムの実機との位置誤差を修正するための位置検出であり、予めCADシステムで作業教示をしておくことが前提条件で、接触作業の教示を簡易化することは困難である。そこで、本発明は、力制御やソフトフローティングを用いることなく、またワークを把持したロボットで作業そのものと同等の動作を必要とすることなく、組立作業の教示を行うことができるロボットの教示システムおよび教示方法を提供することを目的とする。上記課題を解決するため、本発明の一の観点によれば、次のように構成したのである。請求項1に記載の発明は、ロボットの先端部の手先効果器により把持された作業対象物を被作業対象物に組み付ける作業を教示するロボットの教示システムであって、前記ロボットに取り付けられ、弾性的に変位可能な接触プローブと、前記ロボットに取り付けられ、前記接触プローブと前記被作業対象物との接触を検出する外力検出器と、前記ロボットの動作を制御する位置速度制御部と、前記接触プローブの接触状態が検出された場合、前記接触プローブの位置に基づいて接触位置を導出する接触位置計算部と、複数の前記接触位置から前記被作業対象物の位置姿勢を計算する位置姿勢計算部と、前記計算された前記被作業対象物の位置姿勢に基づき前記ロボットの組み付け作業プログラムを生成する作業プログラム生成部を備えたことを特徴とするものである。請求項2に記載の発明は、前記ロボットを操作可能な教示ペンダントを備え、前記ロボットは前記教示ペンダントによる指令により接触位置検出動作を行い前記接触プローブと前記被作業対象物とを接触させることを特徴とするものである。請求項3に記載の発明は、前記接触位置検出動作にて、少なくとも前記被作業対象物上の、前記作業対象物を前記被作業対象物に組み付ける際に前記作業対象物と接触する部分に前記接触プローブを接触させることを特徴とするものである。請求項4に記載の発明は、前記被作業対象物上の穴部に前記作業対象物を嵌合する作業を教示するに際し、前記位置姿勢計算部にて、前記接触位置計算部にて導出した、前記穴部の内側面上の複数箇所に前記接触プローブを接触させた際の接触位置から前記穴部の中心軸を求め、前記接触位置計算部にて導出した、前記被作業対象物の上面の複数箇所に前記接触プローブを接触させた際の接触位置から前記被作業対象物の上面の平面を求め、前記中心軸と前記平面との交点を求めることで前記被作業対象物の位置姿勢を計算することを特徴とするものである。請求項5に記載の発明は、前記接触位置計算部は、前記接触プローブの位置および前記外力検出器の検出値を所定の周期で記録可能であって、前記接触プローブの接触状態が検出された場合、記録された前記外力検出器の検出値に基づいて前記接触プローブの接触時点を求め、記録された該接触時点における前記接触プローブの位置を前記接触位置として導出することを特徴とするものである。請求項6に記載の発明は、前記接触位置計算部は、前記外力検出器の検出値が所定値を超えたとき、前記接触プローブが接触状態であるとすることを特徴とするものである。請求項7に記載の発明は、前記接触位置計算部は、前記記録された前記外力検出器の検出値の時間微分が変化した時点を前記接触時点として求めることを特徴とするものである。請求項8に記載の発明は、前記接触位置計算部は、前記接触位置の導出に際し、記録された前記接触プローブの位置及び記録された前記外力検出器の検出値に対して同じ時間的特性を有するノイズ低減フィルタリング処理を行うことを特徴とするものである。請求項9に記載の発明は、前記教示ペンダントによる指令は、教示者が前記教示ペンダントを操作して送出するジョグ指令であることを特徴とするものである。請求項10に記載の発明は、前記教示ペンダントによる指令は、教示者が前記教示ペンダントを操作して送出する自動検出コマンドであることを特徴とするものである。請求項11に記載の発明は、前記ロボットは、前記接触プローブおよび前記被作業対象物を撮像するカメラを備えたことを特徴とするものである。請求項12に記載の発明は、前記接触プローブの接触状態が検出された場合、前記教示ペンダント上に表示することを特徴とするものである。請求項13に記載の発明は、前記接触プローブは、前記ロボットへの取り付け及び該ロボットからの取り外しを可能とするか、又は、ロボットに格納可能に構成されていることを特徴とするものである。請求項14に記載の発明は、ロボットの先端部の手先効果器により把持された作業対象物を被作業対象物に組み付ける作業を教示するロボットの教示方法であって、弾性的に変位可能な接触プローブを前記ロボットに取り付け、前記接触プローブを前記被作業対象物の複数箇所に接触させて、各々の接触位置を導出し、複数の前記接触位置から前記被作業対象物の位置姿勢を計算し、前記計算された前記被作業対象物の位置姿勢に基づき前記ロボットの組み付け作業プログラムを生成することを特徴とするものである。請求項15に記載の発明は、教示者が前記ロボットの制御コントローラに接続された教示ペンダントを操作して前記ロボットに対してジョグ指令を送出し、前記接触プローブを前記被作業対象物に接触させることを特徴とするものである。請求項16に記載の発明は、教示者が前記ロボットの制御コントローラに接続された教示ペンダントを操作して前記ロボットに対して自動検出コマンドを送出し、前記接触プローブを前記被作業対象物に接触させることを特徴とするものである。本発明によれば、力制御やソフトフローティングを用いることなく、位置制御を用いてロボットを誘導し、作業対象物の特定箇所を所定回数だけ接触させるだけで組立作業の教示を行うことが出来、教示作業の効率が飛躍的に向上する。通常の位置制御を用いるため、力制御やソフトフローティングの知識を持たない教示者でも容易に組立作業を教示することが出来る。また、ワークを把持して直接接触作業を伴うことなく教示を実現できるため、教示作業の失敗の可能性が低く、複雑なワーク同士でも特徴点をタッチングすることによりワークの位置情報を得るだけで作業に必要な一連の動きをロボットコントローラで生成できるという効果がある。以下、本発明の実施の形態について図を参照して説明する。なお、同一の構成については同一の符号を付することにより、重複説明を適宜省略する。<第1実施形態>まず、図1を参照しつつ、本発明の第1実施形態に係るロボットの教示システムの構成について説明する。図1は、本発明の第1実施形態に係る、ロボットの教示システムの構成図である。本実施形態は、精密嵌合の教示に関して、位置制御を用いてロボットを被作業対象物付近まで誘導し、被作業対象物の特定箇所を所定回数だけ接触位置検出し、ロボットのアプローチ位置から挿入完了までの作業プログラムを自動生成する手順について説明する。ここでは、精密嵌合の説明として、ロボットによって組付けする部品作業対象物と、作業対象物が組付けられる部品被作業対象物という一般的な嵌合作業を例に説明するが、これは発明内容としての汎用性を示すためで、具体的には電子機器のケーブルコネクタやカバーなど組立作業の対象となる各種部品を指す。図1においてロボット1はロボット制御コントローラ6により制御されるサーボモータ図示せずにより駆動する。各サーボモータには位置情報を取得するエンコーダ図示せずが備えられており、位置情報をロボット制御コントローラ6へフィードバックされる。なお、図1に示されるロボット1は、6軸の垂直多関節型ロボットを模式的に描いたものであるが、軸数や軸構成を任意に変更したロボット1に対しても本発明を適用することが可能である。ロボット1の先端部には、作業対象物51及び被作業対象物52に対して作業を行う手先効果器3が搭載されている。手先効果器3は、例えばグリッパがあるが、接触作業を行うための装置であればこれに限定されない。手先効果器3には、被作業対象物52と接触して位置検出するための接触プローブ4が接続されている。接触プローブ4は取外し可能で、プローブ長手方向、または長手方向以外の2方向の曲げのいずれかに対して弾性変形領域を持つ。接触プローブ4は、接触位置検出動作に伴い被作業対象物52と接触する際に手先効果器3もしくはロボット1と被作業対象物52とが干渉しない程度の長さを持つ。更に先端部には対象物との接触部を持つ本実施形態では球形。また、ロボットの作業性を損なわないように、プローブは必要な時のみ突き出す収納式であっても良い。ロボットの先端部フランジ部には、被作業対象物52との接触を検出できる外力検出器2が設置されている。外力検出器2は、具体的には、接触状態を導通により電気的に検出するセンサ、接触センサ、薄型圧力センサ、トルク指令値と負荷トルクとの差で表される外乱トルクを用いた力検出器などであるがこれに限定されない。ロボット制御コントローラ6は、ロボット1、手先効果器3の制御を行うと同時に、ロボット1に内在するエンコーダの位置情報や外力検出器2の検出データなどを受信し、必要なデータ処理を行うものである。ここで、ロボット制御コントローラ6の内部構成を図2を用いて説明する。本実施形態におけるロボット制御コントローラ6は、従来から知られた位置速度制御を行う位置速度制御部66に加えて、受信したエンコーダの位置情報や外力検出器2の力検出データから接触位置を計算する接触位置計算部61と、所定数の接触位置から被作業対象物の位置姿勢を計算する被作業対象物の位置姿勢計算部62と、計算した被作業対象物の位置姿勢から作業プログラムを計算する作業プログラム計算部63と、計算した作業プログラムの良否を確認する作業プログラム確認部64と、作成した作業プログラムからロボット1に位置速度指令を送信する上位指令生成部65とで構成される。接触位置を求める際には、外力検出器の力検出データの変化を計算し、変化時点の接触プローブ先端位置を接触位置として算出する。接触プローブ先端位置はロボット1のエンコーダの位置情報と接触プローブの取付け位置、方向、およびプローブの寸法から計算して求める。また、より精度良く接触位置を計算するために、接触位置検出動作における接触プローブのアプローチ方向に応じて、プローブ先端球の中心位置に先端球の半径を加算してプローブ先端位置を計算しても良い以下では、プローブ先端位置をプローブ先端球中心位置とする。上位指令生成部65は、作業プログラムの他に、教示ペンダント7からのジョグ指令を受け付けることが出来、ジョグ指令に応じてロボット1に位置速度指令を送信する。ジョグ指令とは、教示ペンダント7のキーを押下している間だけキーに割り当てられたロボットの所定の関節軸を動作させる動作指令である。位置速度制御部66は、上位指令生成部65において計算された位置速度指令と、ロボット1の各関節を駆動するサーボモータのエンコーダによる各関節軸の位置情報から位置速度制御を行い、サーボモータ図示せずを駆動する。教示ペンダント7は、教示者8がキー操作し、ロボット1の作業プログラムの教示や再生を行う際に使用される。図3は本発明の第1の実施形態に係る教示方法の処理手順を示すフローチャートである。図3を用いて本発明の手順を説明する。ステップS1で、接触プローブ4、手先効果器3のツールデータ取付け位置姿勢、及び寸法情報から計算する位置姿勢情報の入力を行う。例えば教示者8が、教示ペンダント7を用いて数値を入力する。入力値として、通常は設計値を用いれば良いが、正確なツールデータ取付け位置、寸法情報が分からない場合には、別途キャリブレーションしても良く、例えば次のような方法がある。ロボット座標系に対する位置、及び姿勢が既知のキャリブレーション用治具に対して、キャリブレーション対象物接触プローブの先端部、もしくは手先効果器の特定部例えば、手先効果器の先端の姿勢を変化させながら、所定回数だけ接触させ、接触時点での、ロボット1のフランジ部位置、及び姿勢と、キャリブレーション用治具の位置、及び姿勢の差ベクトルを、キャリブレーション対象物接触プローブ、もしくは手先効果器のツールデータ設計寸法、取付け位置とするのである。ロボットのフランジ部の位置、及び姿勢は、ロボットの各関節軸のエンコーダ位置情報とリンク設計寸法より計算する。ロボット座標系はロボットの第1軸を原点として、前後にX方向、左右にY方向、上下にZ方向を取る直交座標系である。例えば、図14のように、ロボット座標系のZ負方向に接触プローブをキャリブレーション治具のXY平面101に接触動作させ、位置検出した際のロボット1のフランジ部のZ方向位置とキャリブレーション用治具のZ方向位置の差から、ツールデータ設計寸法、取付け位置のZ方向位置が取得できるのである。次に、プローブ先端位置を変化させて、キャリブレーション治具のYZ平面102に接触させ、位置検出した際のロボット1のフランジ部のX方向位置とキャリブレーション用治具のX方向位置の差から、ツールデータの設計寸法、取付け位置のX方向位置が取得できるのである。同様に、キャリブレーション治具XZ平面103に接触させて、ツールデータの設計寸法、取付け位置のY方向位置が取得できるのである。次に、ステップS2で、教示者8が教示ペンダント7を用いてロボット1を操作し、作業対象物51を把持し、被作業対象物52へのアプローチ位置RTApまで移動させる作業を教示するRTAPはロボット座標上におけるアプローチ位置のX、Y及びZ座標値と、Rx、Ry、及びRzの回転角度を規定する同次変換行列である。教示手順は通常の位置教示を行う場合と同様で、教示者8が教示ペンダント7のキーを操作してロボット1を動作させて、位置教示を行う。被作業対象物52へのアプローチ位置とは、作業対象物51を把持して被作業対象物52へ嵌合作業する場合に、作業対象物51の底面と被作業対象物52の穴面が所定距離離れた位置で、垂直方向には作業対象物51の底面が被作業対象物52の穴面から数センチ上方の位置で、前後左右方向には作業対象物51の中心位置が被作業対象物52の穴の中心位置に1cm程度の精度で、大まかに目視による位置合わせされた位置である。次に、作業対象物51を放し、ステップS3で、位置検出モードに切替え、教示者8が教示ペンダント7を使ってロボットを動作させることで接触プローブ4の先端部を被作業対象物52の所定箇所に所定回数だけ接触させ、接触位置検出し、被作業対象物52の位置姿勢を取得する。位置検出モードへの切替えとは、接触位置検出において、外力検出値の変化を監視する機能を無効から有効に切り替えることである。例えば、手先効果器3で作業対象物51を把持した際にも外力検出器2の検出値の変化があるが、この場合は接触位置検出を行う必要がないので、外力検出器2の検出値の監視を行っていない。位置検出モードへの切替え処理は外力検出値の監視の有効無効を切替るのみであり、ロボットの動作中に動的に切替えても誤検出したり、ロボットの動作に影響を及ぼしたりすることは無く、これにより処理時間が増加することは無い。接触位置検出の処理は、外力検出器2の検出データとエンコーダの位置情報に基づいて、接触位置計算部61において行われ、被作業対象物の位置姿勢が、接触位置に基づいて、被作業対象物の位置姿勢計算部62において求められる。接触位置検出部61において、接触が検出されると、接触状態である旨が教示ペンダント7の画面に表示されることで、教示者8は正常に位置検出が行われたことを認識してロボットを次の接触箇所に移動させることができ、過大な押し込み量を与える事無く効率的に接触位置検出が出来るのである。ここでステップS3での接触位置検出の手法について図4から図6を用いて説明する。図4は接触位置検出の手順を示すフローチャートである。まずステップS31で教示者8が教示ペンダント7によりロボットをジョグ操作して位置検出動作を開始する。続いてステップS32でプローブ先端位置と外力検出器の検出値の監視を開始する。プローブ先端位置は、前述のようにロボットの各軸のエンコーダの位置情報を順変換したロボット先端位置プローブ取り付け位置と接触プローブの取付け位置、方向、およびプローブの寸法とから求めることができる。ステップS33で外力検出値が設定閾値F0を超えているかを一定の周期で監視する。力センサの値がF0を超えた場合には接触と判断し、ステップS34にて接触状態である旨が教示ペンダント7の画面に表示される。この表示を確認した作業者がジョグ操作を止めることでロボットは減速停止する。減速停止する事により、ロボットの減速機等への機構的な負荷を軽減する事が出来る。また、減速時の移動距離は検出プローブの柔軟性により吸収されるため、対象物を移動させたり、損傷させたりすることは無い。なお、F0は、プローブ4が接触状態にあることを高い確率で判定可能にするためロボットアームに通常生じ得る振動ロボットの動作による機械的振動や力センサの計測において発生する電気的ノイズ等に起因する力よりも大きな値に設定するが、教示ペンダント7などを用いて外部から変更可能にしてもよい。ステップS32、ステップS33の処理のサンプリング周期は、必要とする接触位置検出の分解能を満たすように設定する。具体的にはサンプリング周期を必要とする位置検出の分解能を検出動作速度で除した値よりも小さい値になるように設定する。サンプリング周期が決定している場合には検出速度により位置検出分解能が決定する。ステップS35でプローブ先端位置と外力検出値の記録を終了する。接触位置計算部61は、ステップS36~S38で記録したプローブ先端位置と外力検出器の値とから、プローブ4が接触位置を計算する処理を行う。図4のステップS33では、振動などの外乱によって接触を誤検出する恐れを排除し、確実に接触状態を検出可能にするため、F0を、プローブが物体に接触した際に発生する通常の力よりも大きい値に設定している。このため、図5に示すように、ステップS33で判断した接触判断位置x1は、外力の値の立ち上がり位置として求められるプローブの実際の接触位置x2とは異なり、ロボットアームの動作方向により進んだ位置となっている。かくして、本実施例では、接触状態であると検出された後に、記録されている外力検出値とプローブ位置の履歴とから実際の接触位置を計算する処理を行うようにしている。この様な手法をとる事により、プローブの接触を誤検出することなく、かつ高精度に検出することが出来る。図5、図6は接触位置の検出処理の説明図である。これらの図を用いて図4のステップS36~S38における接触位置検出処理を順を追って説明する。ステップS36で、外力検出器2により検出された外力検出値にローパスフィルタをかけ、外力検出値に重畳しているノイズ成分を除去する。ローパスフィルタとして、シャープなカットオフ周波数特性を有するのが好ましく、該カットオフ周波数は、ロボットの特性に応じて適宜変更可能である。また、本実施例では、プローブ4の先端位置の値に対してもローパスフィルタをかける。好ましくは、外力値に対して適用したものと同じ時間的特性を有するノイズ低減フィルタリング処理を実行する。これにより、同一遅れ信号同士を対応付けることができ、接触位置の検出精度を向上させることができる。次にステップS37で差分計算により外力検出値の時間微分を計算する。図6に示すように力センサ値の時間微分が0を超えるか又は0より小さくなった時点のプローブ先端位置を実際の接触位置x2とするステップS38。なお、外力検出値の時間微分が0を超える時点は、プローブが何とも接触していない状態から被作業対象物に接触した時点に相当し、外力検出値の時間微分が0より小さくなる時点は、プローブが被作業対象物に接触している状態から当該被作業対象物から離れて何とも接触していない状態に移行した時点に相当している。即ち、本実施例では、接触時と離れる時の2回、接触位置を検出する機会が存在しており、いずれの時点も接触位置の検出に用いることができる。接触時と離れる際の接触位置を比較し、一致していることを確認することで、接触位置検出処理の信頼性を高めることが出来る。接触時と離れる際の接触位置が不一致である場合として、例えば、接触動作に伴い被作業対象物が変形した、移動した等が想定される。接触検出結果をこの様な対象物の状態判別手段として応用することは容易に可能である。上記説明では、記録したプローブ先端位置と外力検出値から実際の接触位置を計算する処理について、ステップS37にて外力検出値の時間微分により実際の接触位置を求めたが、本発明はこの例に限定されるものではない。例えば、1外力検出器の検出値において接触判断した時点の時刻および外力検出値2接触判断した時点から所定時間前の時点の時刻および外力検出値この1と2から実際の接触から減速停止に到るまでの外力検出値の近似直線を求め、接触していない区間における近似直線を、同様に2つの時刻および外力検出値をサンプリングすることで計算し、両直線の交点における時刻と外力検出値から実際の接触位置を算出する等の方法がある。接触箇所、接触回数は被作業対象物の寸法や形状に応じて異なるが、図7に示すように、被作業対象物が円柱状の作業対象物を挿入される形状をしている場合を例にして、その位置姿勢の取得方法を説明する。教示者8が、教示ペンダント7でロボットをジョグ操作し、接触プローブ4を被作業対象物52の内側面に接触させ、接触位置計算部61での処理にて接触位置P11を得るP11はロボット座標系における接触位置のX、Y、及びZ座標値である。P11の接触位置から、基準座標系例えばロボット座標系のXY平面と平行に移動させて接触プローブ4を被作業対象物52の内側面に接触させ、P12、P13図示せずを得る。P11~P13から、例えば最小二乗円近似を用いて作業対象物が挿入される円の中心位置P14を得る。接触プローブ4をP14からZ方向に移動させ同様の手順により接触点P21~P23、並びに中心位置P24を得る。P14、P24より作業対象物の挿入軸穴の中心軸を求める。更に被作業対象物の上面の複数P31などの箇所に接触させ、挿入軸と被作業対象物の上面の平面との交点を求めることでロボット座標系に基づく被作業対象物の同次変換行列RTWを得ることが出来る。各接触位置からP14やP24、同次変換行列RTWを導出する処理は、被作業対象物の位置姿勢計算部62にて行われる。本ステップは被作業対象物の位置姿勢を求めるためのもので、被作業対象物の寸法、形状が変化した場合にも接触箇所と点数、及び位置姿勢の算出方法を変化させるだけで他の処理に影響を与えることは無い。また、本ステップステップS3で行う、教示者8が教示ペンダント7を使って接触プローブ4先端を被作業対象物52の所定箇所に所定回数だけ接触させ、接触位置検出し、被作業対象物52の位置姿勢を取得する過程において、図8のように、CCDカメラ9から取得する接触プローブ4、及び被作業対象物52の映像を参照し、教示ペンダント7に備えたタッチパネルを使うことで被作業対象物52の位置姿勢情報を取得するための接触位置検出を簡便に行うことも可能である。CCDカメラ9による映像を参照することで、教示者8は遠隔地からでも作業が可能となるため対人安全性を確保することが出来る。また、教示ペンダント7の画面にタッチパネルを使うことで、教示ペンダント7の操作に慣れていない教示者8でも、直感的に操作が出来、教示効率が向上する。CCDカメラ9の映像は図9-1のように教示ペンダント7に映し出され、移動指令入力キー72タッチパネル上に表示されたキーを押下することで、プローブ先端位置を所望する方向に移動させ、接触位置検出を行うことが出来る。CCDカメラ9は、ロボット1の各軸が回転しても接触プローブ4がCCDカメラ9の視界から外れることのないよう、ロボット1の手先方向に最も近いリンクに取付けられている。CCDカメラ9の映像上には、図9-2、図9-3のように動作中の状態、接触状態を表示させて、教示者8に接触状態が視覚的に分かる様にしておくことで、接触プローブ4が被作業対象物52に接触したまま、押し当てを続けてしまい接触プローブ4が塑性変形することが無いようにし、教示効率を向上させることが出来る。接触状態の表示は、接触位置計算部61で、接触があったと判断した時点で、接触状態であると処理し、教示ペンダント7の画面に表示する。更に、本ステップステップS3で行う、教示者8が教示ペンダント7を使って接触プローブ4先端を被作業対象物52の所定箇所に所定回数だけ接触させ、接触位置検出し、被作業対象物52の位置姿勢を取得する過程において、事前に与えられた被作業対象物52のCADデータをシミュレータ上に表示し、被作業対象物52の位置姿勢情報を取得するための接触位置検出を簡便に行うことも可能である。シミュレータ上にはロボット本体の幾何学モデルと運動学計算処理が備えられており、シミュレータ上のGUIを操作することで、PC上オフラインでロボットを動作させることが出来る。また、シミュレータは、位置検出プローブ、被作業対象物のCADデータを読み込み、シミュレータ上に表示出来る。シミュレータ上で、ロボットを動作させ、被作業対象物への位置検出動作プログラムを作成し、ロボット実機による被作業対象物の位置検出に適用する。また、ロボット実機で被作業対象物の位置検出した結果をシミュレータ上に表示し、被作業対象物の位置を修正し、修正された被作業対象物の位置で作業プログラムを検討することも可能となる。更に、被作業対象物の形状が単純な円筒等の場合には、与えられた被作業対象物の寸法から、被作業対象物の位置姿勢情報取得のための、接触位置情報をシミュレータ上に提示し、作業者に接触位置を示すことが出来る。次に、ステップS4において、ステップS3で求めた被作業対象物の位置姿勢RTW挿入開始位置から挿入完了位置までの作業プログラムを教示する。教示方法は、移動命令を絶対値として挿入開始位置RTWから被作業対象物への挿入量分だけ移動させた挿入完了位置RTENDを教示するか、もしくは相対量として被作業対象物への挿入量分だけ移動させる命令を教示する。次に、ステップS5において、ステップS2で教示したアプローチ位置RTApと、ステップS3で取得した被作業対象物の位置姿勢RTW挿入開始位置、及びステップS4で取得した挿入完了位置RTENDに基づいて、アプローチ位置から挿入完了位置までの作業プログラムを生成する。作業プログラムの生成は、作業プログラム生成部63において行われる。嵌合作業では、真上から作業対象物を被作業対象物に挿入する動作が必要であるため、図7のようにアプローチ位置RTApと、被作業対象物の位置姿勢RTWの間に経由点RTVIAを設け、被作業対象物の位置RTWに垂直に移動できるような経路を生成する。ここで経由点RTVIAは、ステップS3において計算した被作業対象物の挿入軸上に存在し、アプローチ位置RTApと同じ高さの位置としている。経路の生成は、アプローチ位置RTApと経由点RTVIA、経由点RTVIAと被作業対象物の位置RTW挿入開始位置、及び被作業対象物の位置RTW挿入開始位置と挿入完了位置RTENDの各々の2点間を直線で結び、台形補間などの一般的な方法を用いて行う。最後に、ステップS6において、ステップS5で作成したアプローチ位置から挿入開始完了までの作業プログラムについて、干渉の有無や生成した軌跡の妥当性を確認する。作業プログラムの確認は、作業プログラム確認部64において行われる。干渉の有無とは、ステップS4において作成した、アプローチ位置RTApから被作業対象物の位置RTW挿入開始位置の間の作業プログラムにおいて、ロボット1、手先効果器3、もしくは接触プローブ4と被作業対象物52との物理的な干渉が無いことを確認することで、オフラインシミュレータ上に取得した被作業対象物52の位置姿勢を描画し、作成した作業プログラムを実行させ、目視で干渉の有無を確認する方法、または干渉確認対象とするロボット1、手先効果器3、もしくは接触プローブ4と被作業対象物52を直方体や球でモデリングし、距離計算し、距離が0以下になっていた場合には干渉と判断する方法がある。一方、軌跡の妥当性とは、ステップS5において作成した、アプローチ位置RTApから挿入完了位置RTENDの間の作業プログラムにおいて、アプローチ位置RTApから経由点RTVIA、被作業対象物の位置RTW挿入開始位置を経由して挿入完了位置RTENDまで直線で補間されていることを確認することで、干渉の有無と同様にオフラインシミュレータ上で目視確認するか、軌跡を出力し表計算ソフトなどでプロットし、良否判定する。以上の手順を踏むことにより、制御やソフトフローティングを用いることなく、位置制御を用いてロボットを誘導し、被作業対象物の特定箇所を所定回数だけ接触させるだけで組立作業の教示を行うことが出来、教示作業の効率が飛躍的に向上する。<第2実施形態>次に、図11を参照しつつ、本発明の第2実施形態に係るロボットの教示システムについて説明する。図11は本発明の第2実施形態に係るロボット制御コントローラの構成図である。この第2実施形態に係るロボット制御コントローラ6は、被作業対象物の位置姿勢計算部62に代わって、被作業対象物の位置姿勢自動計算部67を有する点で、第1実施形態に係るロボット制御コントローラ6図2と異なるが、他の構成は同様に構成される。つまり、第2実施形態は、第1実施形態のステップS3において説明した、教示者8が教示ペンダント7を使って接触プローブ4の先端部を被作業対象物52の所定箇所に所定回数だけ接触させて接触位置検出し、被作業対象物52の位置姿勢情報を取得する過程を自動化するものである。以下では、説明の便宜上、重複説明を適宜省略し、第1実施形態と異なる点を中心に説明することとする。図12は本発明の第2の実施形態に係る教示方法の処理手順を示すフローチャートである。図12を用いて本発明の手順を説明する。ステップS21で、アプローチ位置、被作業対象物の設計寸法を入力する。この寸法は、後に示す被作業対象物52の位置姿勢自動検出における検出動作生成のために使用し、必要な設計寸法は被作業対象物の形状に応じて異なるが、例えば、本実施形態のように円柱状の作業対象物を挿入される形状であれば、作業対象物用の穴の半径、深さの設計寸法を入力する。次に、ステップS22で、教示者8が、教示ペンダント7をジョグ操作し、図13-1に示すように、接触プローブ4の先端球を被作業対象物52の位置姿勢自動検出を開始する位置RTAP’に移動させる。RTAP’は被作業対象物52の中心軸と上面が交差する位置、かつ非作業対象物52の上面と垂直になるようなプローブ姿勢にする。RTAP’の位置、及び姿勢は、それぞれ1cm、1°程度の精度で大まかに目視位置合わせされている。1cm、1°程度位置ずれしていても、後の位置検出精度に影響は無い。また、RTAP’の位置姿勢は後の位置姿勢自動検出において初期位置として使用する値で、上記の限りでは無い。次に、ステップ23において、位置検出モードに切替え、ステップS21で入力した被作業対象物52の寸法、およびステップS22の検出開始位置を用いて、自動で、接触プローブ4の先端部を被作業対象物52の所定箇所に所定回数だけ接触させて接触位置検出し、被作業対象物の位置姿勢を取得する。接触位置検出の操作は、教示者8が教示ペンダント7を操作し、自動検出コマンドを被作業対象物の位置姿勢自動計算部67に送ることで行われる。被作業対象物の位置姿勢自動計算部67では、接触位置計算部61で接触があったと判断した時点で、接触状態であると処理し、接触プローブ4を次の接触点へ移動させる。これにより接触位置検出は連続的に、時間をロスすること無く、効率良く行われる。なお接触位置計算部61での接触位置検出の処理は第1実施形態で説明した手順図4~図6参照と同様であるため、ここでは説明を割愛する。接触箇所、接触回数は被作業対象物の寸法形状に応じて異なるが、本実施形態の場合は次のように計算できる。図13-1~図13-3を用いて、円柱状の作業対象物を挿入される被作業対象物の位置姿勢の自動取得方法を説明する。RTAP’の接触プローブ姿勢からロボット座標系のY軸、もしくはX軸周りにθ1だけ回転させ、Z軸負方向挿入方向に、被作業対象物の穴の深さの1/3程度だけ移動したP10’に移動する。次に、図13-1のようにP10’におけるプローブ姿勢を維持したまま、被作業対象物の内側面に接触プローブ4の先端部が接触するように移動し、接触した時点のプローブ先端位置P11’を得る。次に図13-2のように、P10’の位置で接触プローブをロボット座標系のY軸、もしくはX軸周りにθ2だけ回転させ、プローブ姿勢を維持したまま、ロボット座標系のXY平面と平行に移動させて被作業対象物の別の内側面に接触プローブ4の先端部を接触させ、P12’を得る。θ1、θ2は、接触位置検出動作において、手先効果器や接触プローブの先端以外の箇所が被作業対象物と干渉すること無く、接触プローブの先端が弾性方向に被作業対象物と接触するために接触プローブがとる角度であって、干渉が発生しない値であればよい。同様にして、別の接触位置P13’図示せずを得、実施形態1のステップS3と同様に最小二乗円近似を用いて作業対象物が挿入される円の中心位置P14’を得る。次に、P10’の位置から更にZ軸負方向挿入方向に、被作業対象物の深さの1/3程度だけ移動したP20’図示せずに移動し、同様の手順で、接触位置P21’、P22’、P23’、並びに中心位置P24’を得る。P14’、P24’より作業対象物の挿入軸穴の中心軸を求める。次に図13-3のように、RTAP’の位置から、Z軸正方向に、被作業対象物の深さの1/3だけ移動させ、更に被作業対象物の半径方向に所定距離だけ移動したP30’に移動する。移動距離は、図のように被作業対象物の上面に接触できるように、被作業対象物の内径以上、外径未満となるような距離とする。P30’の位置でプローブ姿勢を維持したまま、被作業対象物の上面に接触プローブ4の先端部が接触するように接触プローブ4を移動し、接触した時点のプローブ先端位置を複数P31’など得る。挿入軸とP31’などから被接触対象物の同次変換行列RTWを得ることが出来る。ステップS24以降の処理は、図3のステップS4以降の処理と同様であるため、ここでは説明を割愛する。以上の手順を踏むことにより、接触位置検出を用いて被作業対象物の位置姿勢を取得する処理において、被作業対象物の寸法情報と、被作業対象物の位置姿勢検出を開始する位置を教示するだけで、接触位置検出を繰り返し実行し、被作業対象物の位置姿勢を算出する処理を自動化することが出来る。