(57)【要約】【課題】専用の測定器を用いなくても、ロボットアームの先端軸とロボットハンドの把持中心軸とが一致するようロボットハンドの交換を可能とする。【解決手段】ロボットハンド３００Ｂがロボットアームの先端部に着脱可能である。ロボットアームとロボットハンド３００Ｂとの間には力覚センサ４００Ｂが配置される。ハンド支持台６００Ｂに配置された芯出し装置７００Ｂは、円筒部材７０１と、円筒部材７０１の中心軸のずれ量に応じた抗力を円筒部材７０１に付与するばね７０２と、を有する。ロボットハンド３００Ｂに円筒部材７０１を把持させて、ロボットハンド３００Ｂを先端軸Ｃ１を中心に回転させたときの力覚センサ４００Ｂにより検出された力検出結果に基づき、先端軸Ｃ１に対するロボットハンド３００Ｂの把持中心軸Ｃ２の軸ずれを求めて、軸ずれの分、ロボットアームの先端部に対するロボットハンド３００Ｂの位置を補正する。【選択図】図２
2016030308.tif 000002
【特許請求の範囲】
【請求項１】
ロボットハンドと、
先端軸を中心に回転可能に構成された先端部を有し、前記ロボットハンドが前記先端部に着脱可能に構成されたロボットアームと、
前記ロボットハンドに作用する、前記先端軸の延びる方向に対して直交する方向の力を検出する力覚センサと、
前記ロボットアームの先端部に対して取り外された前記ロボットハンドを支持可能なハンド支持台と、
前記ハンド支持台に配置された芯出し装置と、
前記ロボットハンド及び前記ロボットアームを制御する制御部と、を備え、
前記芯出し装置は、
前記ハンド支持台に支持された前記ロボットハンドによって把持可能な位置に配置された把持部材と、
前記ロボットハンドにより前記把持部材が把持された際に、前記把持部材の中心軸のずれ量に応じた抗力を前記把持部材に付与する抗力付与部材と、を有し、
前記制御部は、
前記ハンド支持台に支持された前記ロボットハンドを前記ロボットアームの先端部に装着させ、前記ロボットハンドに前記把持部材を把持させて、前記ロボットハンドを前記先端軸を中心に回転させたときの前記力覚センサにより検出された力検出結果に基づき、前記先端軸に対する前記ロボットハンドの把持中心軸の軸ずれを求めて、軸ずれの分、前記ロボットアームの先端部に対する前記ロボットハンドの位置を補正することを特徴とするロボットシステム。
【請求項２】
前記芯出し装置は、前記把持部材の中心軸を中心に回転可能に、かつ前記ロボットハンドにより前記把持部材が把持された際に前記把持部材の中心軸と前記ロボットハンドの把持中心軸とが一致するよう前記把持部材の中心軸の延びる方向に対して直交する方向にスライド可能に、前記把持部材を支持する支持機構を有し、
前記抗力付与部材は、一軸方向に前記把持部材を付勢し、前記把持部材がスライドした際の前記把持部材の前記一軸方向のスライド量に応じた伸縮量で伸縮して、該伸縮量に応じた弾性力を前記把持部材に付与する弾性部材であり、
前記制御部は、前記ロボットハンドを前記先端軸を中心に回転させて回転角度に対応する前記力覚センサの力検出結果を取得し、前記力検出結果に基づき、前記先端軸に対する前記把持中心軸の軸ずれ量及び軸ずれ方向を求め、前記軸ずれ量及び前記軸ずれ方向の分、前記ロボットアームの先端部に対する前記ロボットハンドの位置を補正することを特徴とする請求項１に記載のロボットシステム。
【請求項３】
前記制御部は、前記ロボットアームの先端部に対する前記ロボットハンドの位置を補正するに際し、前記ロボットハンドを前記ロボットアームの先端部から取り外され、前記軸ずれ量及び前記軸ずれ方向を修正した位置に前記ロボットアームの先端部を移動させ、再び、前記ハンド支持台に支持された前記ロボットハンドを前記ロボットアームの先端部に装着させることを特徴とする請求項１又は２に記載のロボットシステム。
【請求項４】
前記制御部は、前記力覚センサの力検出結果から、力が最大となる最大値、及び力が最小となる最小値を求め、前記最大値、前記最小値、及び前記弾性部材の弾性定数を用いて、前記軸ずれ量を求め、前記最大値となる前記先端軸の角度から前記軸ずれ方向を求めることを特徴とする請求項２又は３に記載のロボットシステム。
【請求項５】
前記制御部は、前記ロボットハンドを前記先端軸を中心に回転させた際に、前記先端軸の回転角度と、その時の前記力覚センサの力検出結果とを示す座標空間における座標点を、前記先端軸の回転角度を変化させて複数取得し、該複数の座標点を結ぶ近似曲線を求め、該近似曲線を用いて前記最大値と前記最小値とを求めることを特徴とする請求項４に記載のロボットシステム。
【請求項６】
前記ハンド支持台が架台に載置され、
前記支持機構は、
前記架台に対して水平方向に直動可能な第１スライダと、
前記第１スライダの直動方向に対して交差する水平方向に直動可能であり、前記把持部材の中心軸を中心に回転自在に軸受を介して前記把持部材を支持する第２スライダと、を有し、
前記弾性部材は、前記一軸方向として、前記第２スライダの直動方向と平行な方向に、前記第２スライダを付勢することを特徴とする請求項２乃至４のいずれか１項に記載のロボットシステム。
【請求項７】
前記弾性部材がばねであることを特徴とする請求項２乃至５のいずれか１項に記載のロボットシステム。
【請求項８】
前記力覚センサが前記ロボットハンドに設けられていることを特徴とする請求項１乃至７のいずれか１項に記載のロボットシステム。
【請求項９】
ロボットハンドと、先端軸を中心に回転可能に構成された先端部を有し、前記ロボットハンドが前記先端部に着脱可能に構成されたロボットアームと、前記ロボットハンドに作用する、前記先端軸の延びる方向に対して直交する方向の力を検出する力覚センサと、前記ロボットアームの先端部に対して取り外された前記ロボットハンドを支持可能なハンド支持台と、前記ハンド支持台に配置された芯出し装置と、を備えたロボットシステムを、制御部により制御するロボットシステム制御方法であって、
前記芯出し装置は、
前記ハンド支持台に支持された前記ロボットハンドによって把持可能な位置に配置された把持部材と、
前記ロボットハンドにより前記把持部材が把持された際に、前記把持部材の中心軸のずれ量に応じた抗力を前記把持部材に付与する抗力付与部材と、を有しており、
前記制御部が、前記ハンド支持台に支持された前記ロボットハンドを前記ロボットアームの先端部に装着させる工程と、
前記制御部が、前記ロボットハンドに前記把持部材を把持させて前記ロボットハンドを前記先端軸を中心に回転させたときの前記力覚センサにより検出された力検出結果を取得する工程と、
前記制御部が、前記力検出結果に基づき、前記先端軸に対する前記ロボットハンドの把持中心軸の軸ずれを求めて、軸ずれの分、前記ロボットアームの先端部に対する前記ロボットハンドの位置を補正する工程と、を備えたことを特徴とするロボットシステム制御方法。
【請求項１０】
コンピュータに、請求項９に記載のロボットシステム制御方法の各工程を実行させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアームに対してロボットハンドを着脱可能としたロボットシステム、ロボットシステム制御方法、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
近年、小型で複雑な構造をした製品の組み立てに対して、ロボットシステムを利用した自動化の要求が高まってきている。製品の組み立てには、複雑な動作で正確な力制御を伴う組み立てが必要となる。このような要求に対し、以前から、垂直多関節型のロボットアームの先端に、物体を把持する可動機構部を備えるロボットハンドと、ロボットハンドに加わる力を検知する力覚センサとを搭載したロボットシステムが知られている（特許文献１参照）。
【０００３】
特許文献１に記載のロボットシステムでは、異なるサイズの部品を扱う場合、ロボットシステムに複数の種類のロボットハンドを用意し、把持したい部品に合わせてロボットハンドを自動で交換している。ロボットハンドを自動で交換するために、ロボットアームの先端に、ロボットハンドを装着し、ロボットアームに対してロボットハンドを接続する機能を持ったハンドチェンジャーを搭載している。
【０００４】
また、従来、ロボットが特定の位相を持った円筒部品同士を組み立てる場合、ロボットが円筒部品同士の位相を一致させてから嵌合作業を行う。具体的には、ロボットハンドで把持した円筒部品の中心軸と組み付け先の円筒部品の中心軸が一致するところまで、把持している円筒部品を移動する。その後、組み付け先の円筒部品の位相と一致するように、ロボットアームの先端軸を回転してから組立を行っている。
【０００５】
ところが、ロボットアームの先端の回転を伴う組立時、ロボットアームの先端軸（回転軸）とロボットハンドにて把持した円筒部品の中心軸とのずれ量が大きいと、部品同士の中心軸が、軸ずれ分だけずれてしまうため、組立が失敗してしまうことがある。なお、以降、ロボットアームの先端軸とロボットハンドにて把持した部品の中心軸とのずれを「軸ずれ」と呼ぶ。この軸ずれは、ロボットアームの先端に対してロボットハンドがずれて装着されることに起因する。つまり、軸ずれは、ロボットアームの先端軸に対するロボットハンドの把持中心軸のずれである。
【０００６】
そこで、同軸度を測定する専用の測定器をロボットシステム内に設け、ロボットアームの先端軸を回転させたときのロボットハンドの把持中心軸のずれを測定する方法が提案されている（特許文献２参照）。
【０００７】
特許文献２に記載の軸ずれ測定方法について更に具体的に説明する。まず、軸ずれ測定専用の測定器をロボットシステム内に配置する。次にコントローラが、ロボットシステムを測定モードに切り替える。ロボットシステムが測定モードに切り替わると、ロボットアームの先端を、ロボットハンドの軸ずれを測定可能なポイントまで動作させる。測定ポイントへの移動が完了したら、コントローラは、ロボットハンドのフィンガーを測定器に当接させる。測定器は、その時の値をコントローラに出力する。測定器からの出力信号を受け取ったコントローラは、その値をコントローラ内のメモリに保存する。各フィンガーで同様の動作を行う。測定結果の（最大値−最小値）を計算することで、ロボットアームに対するロボットハンドの軸ずれ方向と軸ずれ量を測定する。
【０００８】
更に、ロボットアームの先端とロボットハンドとの間に駆動源を持ったＸＹステージなどの位置補正機構を設け、軸ずれ方向と軸ずれ量を受け取ったコントローラが、位置補正機構にずれ方向とずれ量を吸収する方向に移動する指令を送る。指令を受け取った位置補正機構は軸ずれ方向を吸収する方向に軸ずれ量移動し、ロボットアームの先端軸とロボットハンドの把持中心軸の軸合わせを行う。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−１７２６０号公報
【特許文献２】特開２００３−３０２２１８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１には、軸ずれの補正方法については記載されていない。また、特許文献２に示された軸ずれ測定方法により軸ずれを測定した測定結果を用いて軸ずれを補正する方法には次の問題があった。
【００１１】
即ち、特許文献２では、軸ずれの測定のためには、軸ずれの測定のための専用の外部の測定器が必要となっていた。そのため、ロボットの作業対象のワークが位置決めされる近傍に、軸ずれの測定のための専用の測定器を設置する必要があり、ロボットの作業スペースが制限される。そして、スペースが制限されると、組み立てるワーク（部品）を置くスペースが少なくなるだけでなく、ロボットアームの選択できる姿勢が制限されることにもなり、ロボットの作業性が低下する要因となっていた。また、専用の外部の測定器が必要となるため、測定器とコントローラとを結合するために余分な配線も必要となっていた。また専用の測定器を必要とするため、コストが増大する要因となっていた。
【００１２】
そこで、本発明は、専用の測定器を用いることなく、ロボットアームの先端軸とロボットハンドの把持中心軸とが一致するよう、ロボットハンドの交換を可能とすることにある。
【課題を解決するための手段】
【００１３】
本発明のロボットシステムは、ロボットハンドと、先端軸を中心に回転可能に構成された先端部を有し、前記ロボットハンドが前記先端部に着脱可能に構成されたロボットアームと、前記ロボットハンドに作用する、前記先端軸の延びる方向に対して直交する方向の力を検出する力覚センサと、前記ロボットアームの先端部に対して取り外された前記ロボットハンドを支持可能なハンド支持台と、前記ハンド支持台に配置された芯出し装置と、前記ロボットハンド及び前記ロボットアームを制御する制御部と、を備え、前記芯出し装置は、前記ハンド支持台に支持された前記ロボットハンドによって把持可能な位置に配置された把持部材と、前記ロボットハンドにより前記把持部材が把持された際に、前記把持部材の中心軸のずれ量に応じた抗力を前記把持部材に付与する抗力付与部材と、を有し、前記制御部は、前記ハンド支持台に支持された前記ロボットハンドを前記ロボットアームの先端部に装着させ、前記ロボットハンドに前記把持部材を把持させて、前記ロボットハンドを前記先端軸を中心に回転させたときの前記力覚センサにより検出された力検出結果に基づき、前記先端軸に対する前記ロボットハンドの把持中心軸の軸ずれを求めて、軸ずれの分、前記ロボットアームの先端部に対する前記ロボットハンドの位置を補正することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ロボットアームとロボットハンドとの間に設けた力覚センサを有効活用することにより、ロボットハンドの軸ずれの計測が可能となる。そのため、ロボットハンドの軸ずれを計測するための専用の測定器が不要となる。また、ロボットハンドの軸ずれを計測するための専用の測定器が不要となるため、ロボットの周囲のスペースが制約されなくなり、ロボットの作業が妨げられず、生産性が向上する。さらに、専用の測定器が不要となるため、余分な機構、配線も不要となり、コストを下げることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係るロボットシステムを示す概略図である。
【図２】本発明の実施形態に係るロボットシステムの要部を示す説明図である。
【図３】本発明の実施形態に係るロボットシステムの要部を示す説明図である。
【図４】本発明の実施形態に係るロボットシステムの上位コントローラの概略構成を示すブロック図である。
【図５】本発明の実施形態に係るロボットシステムの制御システムによる制御動作を示すフローチャートである。
【図６】本発明の実施形態に係るロボットシステムの制御システムによる制御動作を示すフローチャートである。
【図７】本発明の実施形態に係るロボットシステムにおいてロボットアームに対するロボットハンドの装着位置を補正する前の状態を示す説明図である。
【図８】本発明の実施形態に係るロボットシステムにおいてロボットアームの先端軸を中心にロボットハンドを回転させた場合の説明図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図１は、本発明の実施形態に係るロボットシステムを示す概略図である。ロボットシステム１００は、ロボットアーム２００と、複数のロボットハンド３００Ａ，３００Ｂと、各ロボットハンド３００Ａ，３００Ｂに取り付けられた力覚センサ４００Ａ，４００Ｂと、を備えている。
【００１７】
本実施形態では、ロボットアーム２００が６軸の垂直多関節のロボットアーム場合について説明するがこれに限定するものではない。例えば、ロボットアーム２００が３軸直行型のロボットアームでもよいし、或いは、４軸水平多関節のロボットアームなど、ロボットハンド３００Ａ（３００Ｂ）を移動可能なロボットであればよい。
【００１８】
ロボットアーム２００は、基端部を構成するベース部２０１と、複数のリンク２０２〜２０６と、先端部を構成するハンドチェンジャー２０７とを有する。これらベース部２０１、複数のリンク２０２〜２０６及びハンドチェンジャー２０７が関節Ｊ１〜Ｊ６で連結されている。ロボットアーム２００のベース部２０１は、架台８００に固定（支持）されている。架台８００は、ロボットアーム２００を支持するのに十分な剛性、強度を持つ。例えば、光学定盤、作業用架台などが挙げられる。ロボットアーム２００の先端部を構成するハンドチェンジャー２０７は、リンク２０６に対して関節Ｊ６で先端軸Ｃ１を中心に回転可能に連結されている。
【００１９】
ハンドチェンジャー２０７には、力覚センサ４００Ａ（４００Ｂ）ごとロボットハンド３００Ａ（３００Ｂ）が着脱可能（取り付け、取り外しが可能）となっている。図１では、ロボットアーム２００のハンドチェンジャー２０７には、ロボットハンド３００Ａが装着されている。ロボットアーム２００、並びにロボットアーム２００に装着されたロボットハンド３００Ａ及び力覚センサ４００Ａによりロボットが構成されている。ロボットハンド３００Ａとロボットハンド３００Ｂとは、互いに異なる種類（例えば、サイズや形状）のワークを把持可能に構成されており、ロボットハンド３００Ａは、図１に示すワークＷを把持可能に構成されている。ワークＷとは異なる種類のワークを把持させる場合には、ロボットアーム２００からロボットハンド３００Ａを取り外し、ロボットアーム２００にロボットハンド３００Ｂを装着させる。つまり、ロボットハンドを付け替える。
【００２０】
また、ロボットシステム１００は、ハンド支持台６００Ａ，６００Ｂと、各ハンド支持台６００Ａ，６００Ｂの内側に配置された芯出し装置７００Ｂ（ハンド支持台６００Ａについては不図示）と、を備えている。
【００２１】
ハンド支持台６００Ａの内側に配置された不図示の芯出し装置、及びハンド支持台６００Ｂの内側に配置された芯出し装置７００Ｂは、架台８００上に設置されている。芯出し装置７００Ｂは、組立に使用していないロボットハンド３００Ｂ、つまりハンド支持台６００Ｂに支持されているロボットハンド３００Ｂに対応して設置されている。ハンド支持台６００Ａの内側に配置された不図示の芯出し装置も同様に、ロボットハンド３００Ａに対応して設置されている。
【００２２】
ロボットシステム１００では、ロボットアーム２００の先端部とロボットハンド３００Ａとの間に力覚センサ４００Ａが配置されている。これにより、力覚センサ４００Ａは、ロボットハンド３００Ａに作用する、先端軸Ｃ１の延びる方向に対して直交する方向の力を検出する。なお、ハンドチェンジャー２０７にロボットハンド３００Ｂが装着されている場合には、ロボットアーム２００の先端部とロボットハンド３００Ｂとの間に力覚センサ４００Ｂが配置されていることとなる。これにより、力覚センサ４００Ｂは、ロボットハンド３００Ｂに作用する、先端軸Ｃ１の延びる方向に対して直交する方向の力を検出する。
【００２３】
また、ロボットシステム１００は、ロボットアーム２００、及びロボットアーム２００の先端部に装着されたロボットハンド３００Ａ（３００Ｂ）を制御する制御部である制御システム５００を備えている。
【００２４】
制御システム５００は、ワークＷの組立作業を行う際には、力覚センサ４００Ａの検出結果に基づき、インピーダンス制御（力制御）を行う。なお、図１では、ロボットアーム２００の先端部には、ロボットハンド３００Ａが装着されている。したがって、制御システム５００は、ロボットハンド３００Ａを制御するが、ロボットアーム２００の先端部にロボットハンド３００Ｂが装着されている場合には、ロボットハンド３００Ｂを制御する。
【００２５】
制御システム５００は、上位コントローラ５０１と、上位コントローラ５０１の指令に従ってロボットアーム２００（ハンドチェンジャー２０７を含む）の動作を制御する下位コントローラ５０２と、を有している。また、制御システム５００は、上位コントローラ５０１の指令に従って、ロボットアーム２００に装着されたロボットハンド３００Ａの動作を制御する下位コントローラ５０３を有している。また、制御システム５００は、装着されている力覚センサ４００Ａに電流を供給して、力覚センサ４００Ａから検出力に対応する電気信号を入力する下位コントローラ５０４を有している。下位コントローラ５０２は、ロボットアーム２００（ハンドチェンジャー２０７を含む）に配線で接続され、下位コントローラ５０３は、ロボットハンド３００Ａに配線で接続され、下位コントローラ５０４は、力覚センサ４００Ａに配線で接続されている。
【００２６】
上位コントローラ５０１は、コンピュータで構成されており、ロボットアーム２００とロボットハンド３００Ａ（３００Ｂ）のそれぞれの制御を統括する。
【００２７】
下位コントローラ５０２は、ロボットアーム２００の筐体の内部又は外部に設置される。下位コントローラ５０２は、ロボットアーム２００の各モータを駆動するための不図示のモータドライバ回路、ロボットアーム２００のモータをサーボ制御する際に演算を行うための不図示のＣＰＵを有する。また、下位コントローラ５０２は、ロボットアーム２００の各モータに電力供給するための不図示の電源部を有する。
【００２８】
下位コントローラ５０２は、上位コントローラ５０１と通信する通信機能を備えている。下位コントローラ５０２は、上位コントローラ５０１から目標位置への移動の制御指令を受信すると、現在位置との差分を演算し、ロボットアーム２００の先端部に設定した点（いわゆる、ツールセンターポイント）Ｐを目標位置へと動作させる。この点Ｐは、先端軸Ｃ１上に設定されている。目標位置到達後は、下位コントローラ５０２から次の制御指令を受信するまで、その位置を保持しつづける。
【００２９】
図２は、本発明の実施形態に係るロボットシステムのハンドチェンジャー、ロボットハンド、力覚センサ、ハンド支持台及び芯出し装置を示す説明図である。図３は、本発明の実施形態に係るロボットシステムのロボットハンド及び力覚センサを示す説明図である。図２ではロボットハンド３００Ｂ、力覚センサ４００Ｂ、ハンド支持台６００Ｂ及び芯出し装置７００Ｂについて図示し、図３ではロボットハンド３００Ｂ及び力覚センサ４００Ｂについて図示している。図３（ａ）は、ロボットハンド３００Ｂの説明図、図３（ｂ）は、力覚センサ４００Ｂの説明図である。ロボットハンド３００Ａ、力覚センサ４００Ａ、ハンド支持台６００Ａ、及びハンド支持台６００Ａに配置した不図示の芯出し装置は、ロボットハンド３００Ｂ、力覚センサ４００Ｂ、ハンド支持台６００Ｂ及び芯出し装置７００Ｂと略同様の構成である。よって、ロボットハンド３００Ａ、力覚センサ４００Ａ、ハンド支持台６００Ａ、及びハンド支持台６００Ａに配置した不図示の芯出し装置については、説明を省略する。
【００３０】
図２及び図３に示すように、ロボットハンド３００Ｂは、ロボットハンド３００Ｂで物体を把持するための複数のフィンガー３０１，３０２，３０３と、全フィンガー３０１，３０２，３０３を駆動する駆動源３０４と、これらを支える支持部３０５とを有する。力覚センサ４００Ｂは、底部３０６と支持部３０５との間に配置され、駆動源３０４を介して支持部３０５に支持されており、ロボットハンド３００Ｂ、即ちフィンガー３０１，３０２，３０３に加わる外力を検出するように構成されている。
【００３１】
ロボットハンド３００Ｂに電気的に接続された下位コントローラ５０３（図１）は、上位コントローラ５０１（図１）からの指令に従い、複数のフィンガー３０１，３０２，３０３の開閉動作を制御する。
【００３２】
支持部３０５は、ロボットハンド３００Ｂの筐体である。駆動源３０４は、フィンガー３０１，３０２，３０３を駆動するための不図示の電磁モータや、モータの出力軸からフィンガー３０１，３０２，３０３にモータの動力を伝達するための不図示のギア及びカムなどで構成されている。不図示のカムは、駆動源３０４の回転力を直線動作に変換できるように、またフィンガー３０１，３０２，３０３が同期して動作するように設計されている。
【００３３】
また、ロボットハンド３００Ｂはフィンガー３０１，３０２，３０３がロボットハンド３００Ｂの把持中心軸Ｃ２を中心に１２０°の等間隔に配置されている。駆動源３０４は、単一のモータでフィンガー３０１，３０２，３０３が開閉運動をするように、フィンガー３０１，３０２，３０３を駆動する。例えば、モータの出力軸にカムを接続し、その先にフィンガー３０１，３０２，３０３を把持中心軸Ｃ２に対してのみ動作するように不図示のリニアガイドを連結し、リニアガイドの上に不図示のガイドブロックを接続する。そして、それぞれガイドブロックにフィンガー３０１，３０２，３０３が固定された構造が挙げられる。このような構造にすることで、モータを駆動させると、フィンガー３０１，３０２，３０３がロボットハンド３００Ｂの把持中心軸Ｃ２に近接する把持方向又は把持中心軸Ｃ２から離間する解放方向に動作する。つまり、モータの回転の向きで把持中心軸Ｃ２に接近する把持方向の動きと、離間する解放方向の動きを制御することができる。
【００３４】
下位コントローラ５０３は、ロボットハンド３００Ｂの筐体の内部又は外部に配置される。ロボットハンド３００Ｂの外部に配置される場合、ロボットハンド３００Ｂの筐体外周面に搭載されていてもよいし、ロボットハンド３００Ｂが取り付けられたロボットアーム２００に搭載されていてもよい。下位コントローラ５０３は、不図示のモータを駆動する不図示のモータドライバ回路、ロボットハンド３００Ｂの不図示のモータをサーボ制御する際に演算を行う不図示のＣＰＵ、ロボットハンド３００Ｂに電力供給する不図示の電源部を備える。更に下位コントローラ５０３は、上位コントローラ５０１と通信する通信機能を具備している。これらの構成によって、下位コントローラ５０３は、上位コントローラ５０１から位置、速度などの制御指令を受信すると、ＣＰＵはそれに従って必要な指令トルクを計算する。そして、これらの結果を不図示のモータドライバ回路により、指令トルクに対応した出力電流に変換することにより、ロボットハンド３００Ｂのモータを駆動制御する。
【００３５】
軸ずれの測定結果は、下位コントローラ５０３の内部か、または上位コントローラ５０１の内部のメモリに保存される。また、下位コントローラ５０３又は上位コントローラ５０１はメモリ内に保存された数値同士を加算減算する機能が備えられている。
【００３６】
次に、力覚センサ４００Ｂについて説明する。力覚センサ４００Ｂは、例えば非接触の磁気式変位センサなどが用いられる。力覚センサ４００Ｂが非接触の磁気式変位センサである場合、力覚センサ４００Ｂは、力覚センサの筐体そのものである弾性体４０１を有する。弾性体４０１の一方の面が底部３０６に接続され、弾性体４０１の他方の面が支持部３０５（駆動源３０４）に接続されている。弾性体４０１は、例えばステンレスなど金属で形成される。また、弾性体４０１は中空構造となっており、弾性体４０１を介して対向する面のそれぞれに、磁石４０２とホール素子４０３が固定されている。
【００３７】
力覚センサ４００Ｂの仕組みについて、図３（ｂ）を用いて説明する。フィンガー３０１，３０２，３０３に外力が加わると、力覚センサ４００Ｂの弾性体４０１が外力に比例した量を変形する。そして、弾性体４０１の変形によって、磁石４０２とホール素子４０３の相対位置が変化する。ホール素子４０３と磁石４０２の位置関係は、互いに逆であってもかまわない。ホール素子４０３は、磁石４０２との相対位置が変化したことによる磁束密度の変化を検出し電圧信号として出力する。このようにして弾性体４０１によって支えられたフィンガー３０１，３０２，３０３に加わった外力を弾性体４０１の変位として検出する。
【００３８】
なお、力覚センサ４００Ｂは、非接触の磁気式変位センサに限定するものではなく、例えば歪みゲージを用いて弾性体の歪みを検出するもの等、別の検出方式により力を検出するものであってもよい。
【００３９】
力覚センサ４００Ｂの力検出結果である出力信号は、下位コントローラ５０４の不図示のＣＰＵに送信される。下位コントローラ５０４の不図示のＣＰＵは、出力信号をＡ／Ｄ変換した後、演算処理によりフィンガー３０１，３０２，３０３に加わった外力の値として演算する。
【００４０】
部品組立作業時、上位コントローラ５０１は、下位コントローラ５０３が演算した力検出結果（外力の値）を取得する。そして、上位コントローラ５０１は、外力の値に基づき、ロボットアーム２００の下位コントローラ５０２への指令値を調整して、ロボットハンド３００Ｂの位置決めを行うべく、ロボットアーム２００を駆動制御する。
【００４１】
図２に示すハンドチェンジャー２０７は、リンク２０６に対して先端軸Ｃ１まわりに回転駆動される本体２１０と、ロボットハンド３００Ｂの底部３０６を保持するための爪２１１，２１２，２１３と、を備えている。各爪２１１，２１２，２１３は、本体２１０に揺動可能に支持されており、不図示の駆動源からの出力を不図示の駆動伝達機構を介して開閉駆動される。不図示の駆動源は、例えば電磁モータなどが挙げられる。不図示の駆動源は、下位コントローラ５０２から開閉の指令を受け取ると、指令に合わせて、爪２１１，２１２，２１３を開閉駆動する。更に、ハンドチェンジャー２０７は、先端軸Ｃ１に対する把持中心軸Ｃ２の軸ずれを吸収するのに十分なガタを持っている。また、ハンドチェンジャー２０７は、ロボットハンド３００Ｂを保持（装着）している状態では、部品組立動作時にロボットハンド３００Ｂに加わる力に対して十分な保持力を持っており、ずれることはない。例えば、ロボットハンド３００Ｂに加わる水平方向の力が２０［Ｎ］、ハンドチェンジャー２０７とロボットハンド３００Ｂが接する面の摩擦係数が０．２とする。この場合、３本の爪２１１，２１２，２１３の合計で、少なくとも１００［Ｎ］、垂直方向にロボットハンド３００Ｂを保持する力が必要となる。なお、ここでは、電磁モータを用いて説明を行ったが、真空吸着や電磁力による固定など、ロボットアーム２００に対して、ロボットハンド３００Ｂ（３００Ａ）を着脱可能な機構であればよい。
【００４２】
各ハンド支持台６００Ａ，６００Ｂは、略ボックス形状に形成され、架台８００に載置され、上面において対応するロボットハンド３００Ａ，３００Ｂを支持可能に構成されている。つまり、ハンド支持台６００Ａにはロボットハンド３００Ａ、ハンド支持台６００Ｂにはロボットハンド３００Ｂが支持可能となっている。図１では、ロボットハンド３００Ａはロボットアーム２００のハンドチェンジャー２０７に装着されているので、ロボットアーム２００のハンドチェンジャー２０７に対して取り外されたロボットハンド３００Ｂは、ハンド支持台６００Ｂに支持されている。
【００４３】
ロボットハンド３００Ｂは、底部３０６が上を向き、且つ把持中心軸Ｃ２が架台８００の面に対して垂直となるように、ハンド支持台６００Ｂに支持される。具体的には、ハンド支持台６００Ｂの上面には、開口部が形成されており、ロボットハンド３００Ｂの支持部３０５が、ハンド支持台６００Ｂの上面に支持され、フィンガー３０１，３０２，３０３がハンド支持台６００Ｂの開口部を通じて内側に垂下する。その際、ロボットハンド３００Ｂは、ハンド支持台６００Ｂの開口部との隙間の分、ハンド支持台６００Ｂに対して水平方向に移動自在となっている。
【００４４】
芯出し装置７００Ｂは、架台８００上であって、ロボットハンド３００Ｂを支持するハンド支持台６００Ｂの内側に配置されている。芯出し装置７００Ｂは、把持部材である円筒部材７０１と、抗力付与部材であり弾性部材でもあるばね７０２と、支持機構であるオルダム機構７０３と、を有している。
【００４５】
円筒部材７０１は、外周面が円筒形状であり、内部は中実でも中空でもどちらでも構わない。円筒部材７０１は、ハンド支持台６００Ｂに支持されたロボットハンド３００Ｂ（フィンガー３０１，３０２，３０３）によって把持可能な位置に配置されている。つまり、円筒部材７０１は、ロボットハンド３００Ｂをハンド支持台６００Ｂに設置した際に、フィンガー３０１，３０２，３０３の把持面の内側に位置するように配置されている。円筒部材７０１は、ロボットハンド３００Ｂが下位コントローラ５０３から把持の指令を受け、閉じ方向（把持方向）にフィンガー３０１，３０２，３０３が移動した際に、円筒部材７０１を安定して把持可能な位置に配置されている。
【００４６】
オルダム機構７０３は、円筒部材７０１が中心軸Ｃ３を中心に自転可能（回転可能）なように円筒部材７０１の下部を支持する、深溝玉軸受や円筒コロ軸受などの軸受７０４を有する。
【００４７】
また、オルダム機構７０３は、架台８００に対して水平方向であるＹ軸方向に直動可能なスライダ（第１スライダ）７０５を有する。また、オルダム機構７０３は、スライダ７０５の直動方向であるＹ軸方向に対して交差（直交）する水平方向であるＸ軸方向に直動可能なスライダ（第２スライダ）７０６を有する。２つのスライダ７０５，７０６は、互いに直交方向となるように配置されている。
【００４８】
ここで、オルダム機構７０３の原点として、水平方向にＸ軸及びＹ軸が規定され、Ｘ軸及びＹ軸に直交する垂直方向にＺ軸が規定されている。
【００４９】
スライダ７０６は、軸受７０４を支持することで、円筒部材７０１を、円筒部材７０１の中心軸Ｃ３を中心に回転自在に軸受７０４を介して支持する。これにより、オルダム機構７０３は、円筒部材７０１の水平方向（Ｘ軸方向及びＹ軸方向）のずれを吸収することができる。
【００５０】
このように、オルダム機構７０３は、円筒部材７０１の中心軸Ｃ３を中心に回転可能に円筒部材７０１を支持する。また、オルダム機構７０３は、ロボットハンド３００Ｂにより円筒部材７０１が把持された際に中心軸Ｃ３と把持中心軸Ｃ２とが一致するよう中心軸Ｃ３の延びる方向に対して直交するＸ軸方向及びＹ軸方向にスライド可能に円筒部材７０１を支持する。
【００５１】
また、スライダ７０５に対してスライダ７０６のスライドするＸ軸方向に抗力（弾性力）が働くように、スライダ７０６にばね７０２の一端が接続され、スライダ７０５にばね７０２の他端が接続されている。このばね７０２は、スライダ７０５がＹ軸方向にスライドした際には変位しないが、一軸方向であるＸ軸方向の基準位置（Ｘ＝０）に対するスライダ７０６のスライド量に応じた伸縮量（変位量）で伸縮（変位）する。即ち、ばね７０２は、Ｘ軸方向の基準位置（Ｘ＝０）に対するスライダ７０６のＸ軸方向のスライド量（移動量）に比例した抗力（弾性力）を発生する。
【００５２】
ばね７０２の抗力（弾性力）は、スライダ７０６を介して円筒部材７０１に付与され、円筒部材７０１を把持しているロボットハンド３００Ｂに付与される。よって、力覚センサ４００Ｂは、ロボットハンド３００Ｂが円筒部材７０１を把持した際に、ばね７０２のＸ軸方向の基準位置（Ｘ＝０）に対する伸縮量に応じた抗力（弾性力）を検出することとなる。
【００５３】
円筒部材７０１、即ちばね７０２にかかる負荷（力）が０のとき、円筒部材７０１の中心軸Ｃ３はＺ軸に重なり、そのときの中心軸Ｃ３のＸ，Ｙの位置は、Ｘ＝０，Ｙ＝０、即ちオルダム機構７０３の座標系の原点となる。
【００５４】
ばね７０２は、Ｘ軸方向の基準位置（Ｘ＝０）に対する中心軸Ｃ３の軸ずれ分の変位をばね７０２に与えたときに、力覚センサ４００Ｂで十分に力検出可能なばね定数（弾性定数）を持つ。例えば、起こりえる最大の軸ずれ量が０．５［ｍｍ］であり、力覚センサ４００Ｂの最大検出力が０〜２０［Ｎ］とすると、ばね定数は０．５ｍｍ／２０Ｎである。また、ばね７０２は、ロボット及び芯出し装置７００Ｂに対して十分に剛性が低い。
【００５５】
このように、ばね７０２は、一軸方向であるＸ軸方向、即ちスライダ７０６の直動方向と平行な方向に、スライダ７０６を付勢する。具体的には、ばね７０２は、円筒部材７０１がスライドした際の円筒部材７０１のＸ軸方向のスライド量に応じた伸縮量で伸縮して、この伸縮量に応じた抗力（弾性力）を円筒部材７０１に付与する。これにより、ばね７０２は、ロボットハンド３００Ｂにより円筒部材７０１が把持された際に、円筒部材７０１の中心軸Ｃ３の軸ずれに応じた抗力を円筒部材７０１に付与する。
【００５６】
次に、制御システム５００の上位コントローラ５０１の構成について説明する。図４は、本発明の実施形態に係るロボットシステム１００の上位コントローラ５０１の概略構成を示すブロック図である。図４に示す上位コントローラ５０１はコンピュータで構成されている。上位コントローラ５０１は、演算部（制御部）としてのＣＰＵ（Central  Processing  Unit）５１１を備えている。また、上位コントローラ５０１は、記憶部として、ＲＯＭ（Read  Only  Memory）５１２、ＲＡＭ（Random  Access  Memory）５１３、ＨＤＤ（Hard  Disk  Drive）５１４を備えている。また、上位コントローラ５０１は、記録ディスクドライブ５１５及び各種のインタフェース５２１〜５２４を備えている。
【００５７】
ＣＰＵ５１１には、ＲＯＭ５１２、ＲＯＭ５１３、ＨＤＤ５１４、記録ディスクドライブ５１５及びインタフェース５２１〜５２４が、バス５２０を介して接続されている。ＲＯＭ５１２には、ＢＩＯＳ等の起動プログラムが格納されている。ＲＡＭ５１３は、ＣＰＵ５１１の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【００５８】
ＨＤＤ５１４には、プログラム５３１が格納（記録）されている。そして、ＣＰＵ５１１がプログラム５３１を読み出して実行することにより、後述するロボットシステム制御方法の各工程を実行する。
【００５９】
記録ディスクドライブ５１５は、記録ディスク５３２に記録された各種データやプログラム等を読み出すことができる。
【００６０】
インタフェース５２１には、下位コントローラ５０２が接続され、ＣＰＵ５１１は、ロボットアーム２００の動作を制御することができる。
【００６１】
インタフェース５２２には、下位コントローラ５０３が接続され、ＣＰＵ５１１は、ロボットアーム２００に装着されたロボットハンド３００Ｂの動作を制御することができる。
【００６２】
インタフェース５２３には、下位コントローラ５０４が接続され、ＣＰＵ５１１は、ロボットアーム２００に接続された力覚センサ４００Ｂから、ロボットハンド３００Ｂに作用する力の力検出結果を取得することができる。
【００６３】
インタフェース５２４には、ＵＳＢメモリ等の書き換え可能な不揮発性メモリ、或いは外付けＨＤＤ等の外部記憶装置９００が接続されている。
【００６４】
次に、制御システム５００によるロボットシステム制御方法について説明する。上位コントローラ５０１のＣＰＵ５１１は、プログラム５３１を読み出して実行することにより、下位コントローラ５０２〜５０４と協働して、以下に説明する処理を実行する。
【００６５】
図５及び図６は、本発明の実施形態に係るロボットシステムの制御システムによる制御動作を示すフローチャートである。
【００６６】
まず、ロボットアーム２００には、ロボットハンド３００Ａが装着されおり、ロボットハンド３００Ｂは、ハンド支持台６００Ｂに支持されているものとする。
【００６７】
なお、図示は省略しているが、上位コントローラ５０１のＨＤＤ５１４や外部記憶装置９００等のメモリには、ロボット言語で作成されたロボットプログラムが格納されている。
【００６８】
ＣＰＵ５１１は、ロボットプログラムを読み出し、ロボットプログラムの各ステップの指令に従ってロボットアーム２００及びロボットハンド３００Ａを制御し、ロボットアーム２００及びロボットハンド３００Ａに組立動作（通常動作）を行わせる（Ｓ１）。例えば、部品が置かれている位置にロボットハンド３００Ａを移動させる動作を行う。
【００６９】
ＣＰＵ５１１は、実行しようとするロボットプログラムのステップがハンド交換実行指令であるか否かを判断する（Ｓ２）。
【００７０】
ＣＰＵ５１１は、ハンド交換実行指令ではない場合（Ｓ２：Ｎｏ）、ステップＳ１の処理に戻る。
【００７１】
ＣＰＵ５１１は、ハンド交換実行指令である場合（Ｓ２：Ｙｅｓ）、ロボットハンド３００Ａをロボットハンド３００Ｂに交換するロボットハンド交換モードに移行して、ロボットハンド３００Ｂに組み替える（Ｓ３）。その後、ＣＰＵ５１１は、ロボットプログラムに従って動作する組立動作（通常動作）に戻る。
【００７２】
以下、ロボットハンド交換モードの動作について詳細に説明する。ＣＰＵ５１１は、下位コントローラ５０２に指令を送り、ロボットアーム２００の点Ｐを、指令された位置（ハンド支持台６００Ａの上方）に移動させる（Ｓ１１）。
【００７３】
次に、ＣＰＵ５１１は、下位コントローラ５０２に指令を送り、指令された方向、即ち爪２１１，２１２，２１３を開く方向にハンドチェンジャー２０７を動作させる（Ｓ１２）。これにより、ロボットハンド３００Ａからロボットアーム２００を切り離し、ロボットハンド３００Ａをハンド支持台６００Ａに設置する。
【００７４】
次に、ＣＰＵ５１１は、下位コントローラ５０２に指令を送り、ロボットアーム２００の点Ｐを、指令された位置（ハンド支持台６００Ｂの上方）に移動させる（Ｓ１３）。
【００７５】
次に、ＣＰＵ５１１は、下位コントローラ５０２に指令を送り、指令された方向、即ち爪２１１，２１２，２１３を閉じる方向にハンドチェンジャー２０７を動作させる（Ｓ１４）。これにより、ＣＰＵ５１１は、ハンド支持台６００Ｂに支持されたロボットハンド３００Ｂをロボットアーム２００のハンドチェンジャー２０７に接続（装着）させる。
【００７６】
次に、ＣＰＵ５１１は、下位コントローラ５０３に指令を送り、ロボットハンド３００Ｂのフィンガー３０１，３０２，３０３を閉方向（把持方向）に動作させ、芯出し装置７００Ｂの円筒部材７０１を把持させる（Ｓ１５）。
【００７７】
図７は、本発明の実施形態に係るロボットシステムにおいてロボットアームに対するロボットハンドの装着位置を補正する前の状態を示す説明図である。ステップＳ１５においてフィンガー３０１，３０２，３０３により円筒部材７０１を把持させた場合、円筒部材７０１がＸ，Ｙ軸方向にスライドして、ロボットハンド３００Ｂの把持中心軸Ｃ２と円筒部材７０１の中心軸Ｃ３とが一致する。このとき、ロボットアーム２００の先端軸Ｃ１に対する把持中心軸Ｃ２（中心軸Ｃ３）のずれ量をＬａとする。
【００７８】
次に、ＣＰＵ５１１は、ロボットアーム２００の先端部であるハンドチェンジャー２０７を、先端軸Ｃ１を中心に所定角度（例えば１０［°］）回転させる（Ｓ１６）。つまり、円筒部材７０１を把持した状態でロボットハンド３００Ｂを先端軸Ｃ１を中心に回転させる。
【００７９】
図８は、先端軸Ｃ１を中心に円筒部材７０１即ちロボットハンド３００Ｂを回転させた場合の説明図である。図８（ａ）は、ロボットハンド３００Ｂに円筒部材７０１を把持させた初期状態を示す説明図である。図８（ｂ）は、ロボットハンド３００Ｂを先端軸Ｃ１を中心に回転させて検出した力が最大値となった状態を示す説明図である。図８（ｃ）は、ロボットハンド３００Ｂの回転によって得られる、回転角度に対し、力覚センサ４００Ｂにより検出された力を示すグラフである。
【００８０】
円筒部材７０１の中心軸Ｃ３（把持中心軸Ｃ２）は、ロボットアーム２００の先端軸Ｃ１に対するずれの分、偏芯している。そのため、ロボットアーム２００の先端軸Ｃ１を中心にロボットハンド３００Ｂを回転させると、オルダム機構７０３のスライダ７０５，７０６がＸ，Ｙ軸方向にスライドしながら、円筒部材７０１がＸ，Ｙ軸方向に移動する。つまり、ロボットハンド３００Ｂの把持中心軸Ｃ２（円筒部材７０１の中心軸Ｃ３）が先端軸Ｃ１を中心に回転（公転）する。図８（ａ）及び図８（ｂ）では、この中心軸Ｃ２，Ｃ３の軌跡を、ＬＣで図示している。この軌跡ＬＣは、先端軸Ｃ１を中心とする円で表され、その半径は、先端軸Ｃ１に対する把持中心軸Ｃ２の軸ずれ量であり、Ｌａとする。つまり、この軌跡ＬＣの半径を求めることで、軸ずれ量Ｌａが求まる。
【００８１】
オルダム機構７０３のスライダ７０６がスライドすると、ばね７０２は、引っ張られ又は圧縮されて、抗力を発生する。抗力が発生すると、力覚センサ４００Ｂの弾性体４０１は、図３（ｂ）に示すように弾性変形を引き起こす。なお、図３（ｂ）では弾性体４０１が極端に変形しているものとして図示されているが、実際は数μオーダーの変形量である。弾性体４０１が弾性変形を引き起こすと、変形量に応じて力覚センサ４００Ｂから上位コントローラ５０１に抗力の値を示すデータ（力検出結果）が出力される。抗力は、ロボットアーム２００、ロボットハンド３００Ｂ、ハンドチェンジャー２０７の許容荷重よりも十分に小さい力である。例えば数Ｎ程度の力を指す。
【００８２】
次に、ＣＰＵ５１１は、ロボットアーム２００の先端軸Ｃ１の位相（角度）θに対応する力覚センサ４００Ｂの出力値Ｆを取得し、ＨＤＤ５１４や外部記憶装置９００等の記憶部に記録する（Ｓ１７）。
【００８３】
ステップＳ１６とステップＳ１７を、ロボットアーム２００のハンドチェンジャー２０７が先端軸Ｃ１を中心に１回転するまで繰り返す。ここでは一度の測定で１０°ずつ回転させているため、３６回繰り返す。
【００８４】
本実施形態では、所定角度１０°等間隔に測定しているが、これに限らず、測定精度を上げるために可能な限り測定点を増やしてもよい。
【００８５】
以上の動作により、ＣＰＵ５１１は、ロボットハンド３００Ｂを先端軸Ｃ１を中心に１回転以下回転させて、例えば図８（ｃ）に示すような、先端軸Ｃ１の回転角度θに対応する力覚センサ４００Ｂの力検出結果Ｆを取得する。
【００８６】
次に、力検出結果Ｆに基づく軸ずれベクトル（Ｌａ，θａ）の計算方法について説明する。
【００８７】
まず、ＣＰＵ５１１は、仮想の座標平面上に、横軸にロボットアーム２００の先端軸Ｃ１の位相（角度）θ、縦軸に力覚センサ４００Ｂの出力値Ｆのグラフを作成する。その際、ＣＰＵ５１１は、ロボットアーム２００の先端軸Ｃ１の位相θ１、θ２、…、θ３６と力覚センサ４００Ｂの出力値Ｆ１、Ｆ２、…、Ｆ３６を仮想の座標平面上にプロットする（図８（ｃ）参照）。即ち、ＣＰＵ５１１は、ロボットハンド３００Ｂを先端軸Ｃ１を中心に回転させた際に、先端軸Ｃ１の回転角度θと、その時の力覚センサ４００Ｂの力検出結果Ｆとを示す座標空間（仮想の座標平面空間）における座標点（θ，Ｆ）を複数取得する。
【００８８】
次に、ＣＰＵ５１１は、プロットした点を結ぶ近似曲線を求める。近似曲線の種類は問わないが、通常、ロボットアーム２００の先端軸Ｃ１を３６０°回転した際のずれ量の推移は、１回転分の正弦波に近い形となるため、正弦波に近い曲線となるような近似式を使用する。例えば、近似曲線の種類としては、３次以上の多項式近似式が挙げられる。この近似式のことを先端軸回転量と力覚センサ出力の関係式でＦ（θ）とする。
【００８９】
次に、ＣＰＵ５１１は、関係式Ｆ（θ）より、力覚センサ４００Ｂの出力値が最大となったときの値（最大値）Ｆｍａｘを求める。同様に、ＣＰＵ５１１は、力覚センサ４００Ｂの出力値が最小となったときの最小値Ｆｍｉｎを求める（Ｓ１８）。即ち、ＣＰＵ５１１は、力覚センサ４００Ｂの力検出結果から、力が最大となる最大値Ｆｍａｘ及び力が最小となる最小値Ｆｍｉｎを求める（抽出する）。
【００９０】
ＣＰＵ５１１は、最大値Ｆｍａｘ、最小値Ｆｍｉｎ、及びばね７０２のばね定数（弾性定数）ｋを用いて、先端軸Ｃ１に対する把持中心軸Ｃ２の軸ずれ量Ｌａを求める（Ｓ１９）。
【００９１】
ここで、ばね７０２の伸縮量Ｌと力覚センサ４００Ｂの出力値Ｆとの間には、Ｆ＝ｋ×Ｌの関係が成り立つ。
【００９２】
ばね７０２を、先端軸Ｃ１の位置からＸ軸方向の正の方向に軸ずれ量Ｌａに相当する伸縮量だけ伸長させると、最大値Ｆｍａｘとなり、逆に負の方向に軸ずれ量Ｌａに相当する伸縮量だけ圧縮させると、最小値Ｆｍｉｎとなる。軸ずれ量Ｌａは正の値であるので、Ｆ＝ｋ×Ｌの関係式から、｜Ｆｍａｘ−Ｆｍｉｎ｜／２＝ｋ×Ｌａであり、その結果、Ｌａ＝｜Ｆｍａｘ−Ｆｍｉｎ｜／（２×ｋ）となる。
【００９３】
よって、ＣＰＵ５１１は、｜Ｆｍａｘ−Ｆｍｉｎ｜／（２×ｋ）より、軸ずれ量Ｌａを算出する（Ｓ１９）。
【００９４】
次に、ＣＰＵ５１１は、作成したロボットアーム２００の先端軸Ｃ１の位相と軸ずれ量の関係式Ｆ（θ）において、力覚センサ４００Ｂの出力値が最大値Ｆｍａｘとなったときの先端軸Ｃ１の回転角度θｂを求める（抽出する）（Ｓ２０）。次に、ＣＰＵ５１１は、軸ずれベクトルの位相成分（軸ずれ方向）θａを、θａ＝θｂ×（−１）の関係式から求める（Ｓ２１）。つまり、ＣＰＵ５１１は、最大値Ｆｍａｘとなる先端軸Ｃ１の角度θｂから軸ずれ方向（角度）θａを求める。
【００９５】
これらステップＳ２０，Ｓ２１により、２次元の軸ずれベクトル（Ｌａ，θａ）が求まる。つまり、ＣＰＵ５１１は、取得した力検出結果Ｆに基づき、先端軸Ｃ１に対する把持中心軸Ｃ２の軸ずれ量Ｌａ及び軸ずれ方向θａを求める。以上、ＣＰＵ５１１は、力覚センサ４００Ｂにより検出された力検出結果Ｆに基づき、先端軸Ｃ１に対する把持中心軸Ｃ２の軸ずれ（本実施形態では、２次元の軸ずれベクトル（Ｌａ，θａ））を求める。
【００９６】
ＣＰＵ５１１は、軸ずれベクトル（Ｌａ，θａ）をＨＤＤ５１４や外部記憶装置９００等のメモリに記録する（Ｓ２２）。ＣＰＵ５１１は、ロボットアーム２００の先端軸Ｃ１の軸中心を原点とする横軸ｘ，縦軸ｙの平面を作成し、軸ずれベクトル（Ｌａ，θａ）を描く。
【００９７】
次に、ＣＰＵ５１１は、この軸ずれの分（軸ずれベクトル（Ｌａ，θａ）の分）、以下の各工程によりロボットアーム２００のハンドチェンジャー２０７に対するロボットハンド３００Ｂの位置を補正する。
【００９８】
以上、ロボットアーム２００とロボットハンド３００Ｂとの間に設けた力覚センサ４００Ｂを有効活用することにより、ロボットハンド３００Ｂの軸ずれの計測が可能となる。そのため、ロボットハンド３００Ｂの軸ずれを計測するための専用の測定器が不要となる。また、ロボットハンド３００Ｂの軸ずれを計測するための専用の測定器が不要となるため、ロボットの周囲のスペースが制約されなくなり、ロボットの作業が妨げられず、生産性が向上する。さらに、専用の測定器が不要となるため、余分な機構、配線も不要となり、コストを下げることができる。
【００９９】
なお、ロボットアーム２００とロボットハンド３００Ｂとの間にＸＹスライダを配置して、軸ずれベクトル（Ｌａ，θａ）の分、ロボットハンド３００Ｂの位置を補正するように構成してもよいが、本実施形態では、別の方法をとる。即ち、本実施形態では、ロボットアーム２００（即ち、ロボット）の軽量化を図るため、ＸＹスライダを省略している。
【０１００】
まず、ＣＰＵ５１１は、ロボットアーム２００の先端軸Ｃ１まわりの位相を、軸ずれ測定開始時の位相θ＝０°に戻す（Ｓ２３）。つまり、ステップＳ１４でロボットアーム２００のハンドチェンジャー２０７にロボットハンド３００Ｂを装着したときの初期状態に戻す。
【０１０１】
次に、ＣＰＵ５１１は、ロボットハンド３００Ｂ、即ちフィンガー３０１，３０２，３０３が円筒部材７０１を解放するようフィンガー３０１，３０２，３０３を開方向に動作させる。この際、軸ずれベクトルの大きさ（軸ずれ量Ｌａ）よりもフィンガー３０１，３０２，３０３を十分大きく開く。次に、ＣＰＵ５１１は、ハンドチェンジャー２０７の爪２１１，２１２，２１３を開く方向に動作させる（Ｓ２４）。これにより、ロボットハンド３００Ｂをロボットアーム２００のハンドチェンジャー２０７から取り外す。
【０１０２】
次に、ＣＰＵ５１１は、ロボットアーム２００のハンドチェンジャー２０７がロボットハンド３００Ｂから離れる方向でかつ垂直方向に、わずかに動くようロボットアーム２００を動作させる（Ｓ２５）。
【０１０３】
次に、ＣＰＵ５１１は、ロボットアーム２００の先端軸Ｃ１が軸ずれベクトル（Ｌａ，θａ）分修正した位置に移動するよう、ロボットアーム２００を動作させる（Ｓ２６）。つまり、ＣＰＵ５１１は、軸ずれ量及び軸ずれ方向を修正した位置にロボットアーム２００の先端部に設定した点Ｐを移動させる。
【０１０４】
この動作の間、ロボットアーム２００のハンドチェンジャー２０７はロボットハンド３００Ｂから離れる方向且つ垂直方向に事前に移動しているため、ロボットアーム２００がロボットハンド３００Ｂに干渉（衝突）することはない。
【０１０５】
次に、ＣＰＵ５１１は、ロボットアーム２００のハンドチェンジャー２０７がロボットハンド３００Ｂに近づく方向且つ垂直方向に移動してロボットハンド３００Ｂに接触するよう、ロボットアーム２００を動作させる（Ｓ２７）。
【０１０６】
次に、ＣＰＵ５１１は、ハンドチェンジャー２０７の爪２１１，２１２，２１３を閉方向に動作させ、再び、ロボットハンド３００Ｂをハンドチェンジャー２０７に接続（装着）させる（Ｓ２８）。
【０１０７】
なお、ロボットハンド３００Ｂからロボットハンド３００Ａに付け替える場合も同様に動作すればよい。
【０１０８】
以上の動作により、ロボットアーム２００の先端軸Ｃ１を軸ずれベクトル分移動させ、ロボットハンド３００Ｂをハンドチェンジャー２０７でつかみ直すことで、ロボットハンド３００Ｂの軸ずれを補正することができる。よって、ロボットアーム２００とロボットハンド３００Ｂとの間に軸ずれの補正を行うための専用の位置補正機構を設ける必要がない。これにより、ロボットアーム２００の先端が軽くなるので、例えば直線動作時の振動などが発生するのを抑制でき、部品組み立てに重要な性能である、ロボットアーム２００の静定時間を短くすることができる。このように、ロボットアーム２００及びロボットハンド３００Ｂによる作業性が向上するので、ロボットシステム１００による生産性が向上する。
【０１０９】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。
【０１１０】
上記実施形態では、力覚センサ４００Ａ（４００Ｂ）がロボットハンド３００Ａ（３００Ｂ）とハンドチェンジャー２０７の間に配置されている場合について説明したが、これに限定するものではない。例えば、力覚センサを、ロボットアーム２００の先端とハンドチェンジャー２０７との間など、ロボットアーム２００の先端を回転させた際に、ばねの力の変化を検知することが可能な位置であればよい。つまり、ロボットアーム２００に力覚センサが設けられている場合であってもよい。
【０１１１】
また、上記実施形態では、軸ずれを測定する際、ロボットアーム２００の先端軸Ｃ１を３６０°回転させているが、正弦波の山と谷の両方が検出できた時点、つまり１８０°回転した時点で測定を終了してもよい。
【０１１２】
また、上記実施形態では、把持部材が円筒部材７０１である場合について説明したが、正多角形柱部材など、軸受の回転中心軸とロボットハンドの把持中心軸が一致する形状であればよい。
【０１１３】
また、上記実施形態では、弾性部材がばねである場合について説明したが、これに限定するものではなく、ゴム等、他の弾性部材であってもよい。また、把持部材に抗力を付与することができる抗力付与部材であれば、弾性部材以外の部材であってもよい。
【０１１４】
また、上記実施形態では、ばねが１つの場合について説明したが、これに限定するものではなく、一軸方向に力を付与するものであれば、複数のばね（抗力付与部材）であてもよい。
【０１１５】
また、複数のばね（抗力付与部材）で互いに直交（交差）する方向に力を付与するようにしてもよい。
【０１１６】
上記実施形態の各処理動作は具体的にはＣＰＵ５１１により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を上位コントローラに供給し、上位コントローラを構成するコンピュータ（ＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１１７】
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ５１４であり、ＨＤＤ５１４にプログラム５３１が格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図４に示すＲＯＭ５１２、記録ディスク５３２、外部記憶装置９００等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、書き換え可能な不揮発性のメモリ（例えばＵＳＢメモリ）、ＲＯＭ等を用いることができる。
【０１１８】
また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【０１１９】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１２０】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
【０１２１】
また、上記実施形態では、コンピュータがＨＤＤ等の記録媒体に記録されたプログラムを実行することにより、処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をＡＳＩＣやＦＰＧＡ等の専用ＬＳＩで構成してもよい。なお、ＡＳＩＣはApplication  Specific  Integrated  Circuit、ＦＰＧＡはField-Programmable  Gate  Arrayの頭字語である。
【符号の説明】
【０１２２】
１００…ロボットシステム、２００…ロボットアーム、２０７…ハンドチェンジャー（先端部）、３００Ａ，３００Ｂ…ロボットハンド、４００Ａ，４００Ｂ…力覚センサ、５００…制御システム（制御部）、６００Ａ，６００Ｂ…ハンド支持台、７００Ｂ…芯出し装置、７０１…円筒部材（把持部材）、７０２…ばね（抗力付与部材，弾性部材）、７０３…オルダム機構（支持機構）、８００…架台、Ｃ１…先端軸、Ｃ２…把持中心軸、Ｃ３…中心軸
【図１】
2016030308.tif 000003
【図２】
2016030308.tif 000004
【図３】
2016030308.tif 000005
【図４】
2016030308.tif 000006
【図５】
2016030308.tif 000007
【図６】
2016030308.tif 000008
【図７】
2016030308.tif 000009
【図８】
2016030308.tif 000010