(57)【要約】  ロボットシステム（１０）及びロボット（１４）の制御方法において、検出部（１２ａ）は、学習時に、ソケット（１６ｃ）をボルト（２４）の頭部（２６）の設定位置に接触させ、設定位置に対して設定動作範囲で回動させたときの接触状態を、学習用波形データとして検出する。学習部（１３ａ）は、検出された複数の学習用波形データを学習し、その学習結果を判断部（１２ｃ）に書き込む。判断部（１２ｃ）は、実作業時に、ソケット（１６ｃ）がボルト（２４）の頭部（２６）に接触したときの接触状態の変化を示す実波形データと、書き込まれた学習結果とに基づいて、ボルト（２４）に対するソケット（１６ｃ）のずれを認識する。
2019150726.tif 000002
【特許請求の範囲】
【請求項１】
ロボットのエンドエフェクタのワークに対する接触状態の変化をセンサが検知した際に、該センサが検知した前記接触状態の変化に基づき前記ワークに対する前記エンドエフェクタのずれ量を推定し、前記ロボット及び／又は前記エンドエフェクタを制御することで前記ずれ量を補正するロボットシステムにおいて、
前記ロボット及び／又は前記エンドエフェクタを制御する制御部と、該制御部によって前記エンドエフェクタの前記ワークに対する接触状態を変化させたときの前記接触状態の時間変化を示すデータを検出する検出部と、前記データを学習する学習部と、該学習部での前記データの学習結果を用いて、前記エンドエフェクタの前記ワークに対する実作業時での該エンドエフェクタの前記ワークに対する接触状態を判断する判断部とを有し、
前記検出部は、前記ワークの表面における複数の設定位置の各々について、予め、前記エンドエフェクタを前記設定位置に接触させたときに前記センサが検知した接触状態の変化と、該設定位置に対して設定動作範囲で前記エンドエフェクタを手探り動作させたときに前記センサが検知した接触状態の変化とを、学習用データとして検出し、
前記学習部は、検出された複数の前記学習用データを学習し、複数の前記学習用データの学習結果を前記判断部に書き込み、
前記判断部は、前記実作業時に、前記エンドエフェクタが前記ワークの表面に接触したときの前記センサが検出した接触状態の変化を取得し、取得した前記接触状態の変化と、書き込まれた前記学習結果とに基づいて、前記ワークに対する前記エンドエフェクタのずれを認識し、
前記制御部は、前記判断部での判断結果に基づいて前記ずれ量を推定することを特徴とするロボットシステム。
【請求項２】
請求項１記載のロボットシステムにおいて、
前記検出部は、前記実作業時に、前記エンドエフェクタを前記ワークの表面の任意の位置に接触させたときに前記センサが検知した接触状態の変化と、該任意の位置に対して任意の動作範囲で前記エンドエフェクタを手探り動作させたときに前記センサが検知した接触状態の変化とを、実データとして検出し、
前記判断部は、検出された前記実データと、書き込まれた前記学習結果に含まれる、該実データに類似している学習用データの学習結果とに基づいて、前記ワークに対する前記エンドエフェクタのずれを認識することを特徴とするロボットシステム。
【請求項３】
請求項２記載のロボットシステムにおいて、
複数の前記学習用データは、前記エンドエフェクタの前記ワークに対するずれの種類に応じて異なる特徴を有し、
前記学習部は、複数の前記学習用データについて、前記ずれの種類に応じた異なる特徴を学習し、
前記判断部は、前記実作業時には、前記学習結果を用いて、前記実データの示す接触状態を判断することで、前記実データに対応するずれの種類を特定し、書き込まれた前記学習結果に含まれる、特定した前記ずれの種類に応じた学習用データの学習結果と前記実データとを用いて、前記ワークに対する前記エンドエフェクタのずれを認識することを特徴とするロボットシステム。
【請求項４】
請求項１〜３のいずれか１項に記載のロボットシステムにおいて、
前記エンドエフェクタの前記ワークに対する接触状態が閾値を超えないように、前記制御部が前記ロボット及び／若しくは前記エンドエフェクタを制御するか、又は、外力可動機構によって前記エンドエフェクタを可動範囲内で移動させることにより、前記エンドエフェクタを前記ワークに接触させることを特徴とするロボットシステム。
【請求項５】
請求項１〜４のいずれか１項に記載のロボットシステムにおいて、
前記センサは、前記ロボットにおける前記エンドエフェクタの近傍に取り付けられた接触覚センサであることを特徴とするロボットシステム。
【請求項６】
請求項５記載のロボットシステムにおいて、
前記接触覚センサは、前記エンドエフェクタの中心軸と略同軸に前記ロボットに取り付けられているか、又は、該接触覚センサの軸が前記中心軸とは異なる状態で前記ロボットに取り付けられ、
前記接触覚センサの軸が前記中心軸と異なる場合、前記エンドエフェクタは、前記接触覚センサを介して前記ロボットに取り付けられていることを特徴とするロボットシステム。
【請求項７】
請求項１〜６のいずれか１項に記載のロボットシステムにおいて、
前記ワークは、対象物に組み立てられる部材、又は、該対象物に締め付けられる部材であり、
前記エンドエフェクタは、前記部材を前記対象物に組み立てる工具、又は、締め付ける工具であることを特徴とするロボットシステム。
【請求項８】
ロボットのエンドエフェクタのワークに対する接触状態の変化をセンサが検知した際に、該センサが検知した前記接触状態の変化に基づき前記ワークに対する前記エンドエフェクタのずれ量を推定し、前記ロボット及び／又は前記エンドエフェクタを制御することで前記ずれ量を補正するロボットの制御方法において、
前記ワークの表面における設定位置について、前記エンドエフェクタを前記設定位置に接触させたときに前記センサが検知した接触状態の変化と、該設定位置に対して設定動作範囲で前記エンドエフェクタを手探り動作させたときに前記センサが検知した接触状態の変化とを、学習用データとして検出部が検出する第１ステップと、
検出された前記学習用データを学習部が学習する第２ステップと、
前記第１ステップと前記第２ステップとの順に繰り返し実行した後に、前記学習部での複数の前記学習用データの学習結果を判断部に書き込む第３ステップと、
前記エンドエフェクタの前記ワークに対する実作業時に、前記エンドエフェクタが前記ワークの表面に接触したときの前記センサが検出した接触状態の変化を前記判断部が取得し、取得した前記接触状態の変化と、書き込まれた前記学習結果とに基づいて、前記ワークに対する前記エンドエフェクタのずれを認識する第４ステップと、
制御部が前記判断部での判断結果に基づいて前記ずれ量を推定する第５ステップと、
を有することを特徴とするロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットのエンドエフェクタをワークに接触させて作業を行う際に、エンドエフェクタのワークに対するずれ量を補正するロボットシステム及びロボットの制御方法に関する。
【背景技術】
【０００２】
従来より、ロボットのエンドエフェクタをワークに接触させて該ワークに対する作業を行う際、例えば、対象物とワークとの組立作業や締付作業において、ワークの公差、ワークの設置レイアウトのばらつき等の不定条件により、ワークに対して適切な作業を行えない場合がある。【０００３】
そこで、特許第４８５０９５６号公報、特許第６００６２５６号公報、及び、特開２０１７−９４４３８号公報には、ロボットと別個に設けたカメラを用いてエンドエフェクタ及びワークを撮像し、撮像した画像から基準位置や作業対象部位を画像認識することで、エンドエフェクタの目標位置を算出する非接触検知型の制御装置が開示されている。【０００４】
また、特開２０１５−１５５１２６号公報には、エンドエフェクタに複数又は多軸検出タイプの力覚センサを取り付けた状態で、エンドエフェクタを目標位置（中心位置）に収束させるような力覚値又はモーメント値を事前に設定し、その後の実作業において、ロボット又はエンドエフェクタに対して、事前に設定した力覚値又はモーメント値に追従させるフィードバック制御（力覚倣い制御）を行わせる接触検知型の制御装置が開示されている。
【発明の概要】
【０００５】
しかしながら、特許第４８５０９５６号公報、特許第６００６２５６号公報、及び、特開２０１７−９４４３８号公報の技術では、上述のカメラ、エンドエフェクタ及びワークの周辺を照らす照明装置、並びに、カメラが撮像した画像を処理する画像認識ソフトウェア等が必要とされる。また、ワークに対するエンドエフェクタのずれ量、照明装置の輝度変化、外乱光の遮断等、カメラが撮像した画像を安定化させるための専用のシステム機器や、撮像した画像を処理する専用のコンピュータ（ＰＣ）等の付帯機器も必要となる。この結果、ロボットの制御システムを構築するためのコストがかかる。
【０００６】
また、特開２０１５−１５５１２６号公報の技術では、事前に設定した力覚値又はモーメント値に追従するようにフィードバック制御を行うため、制御システムを廉価に構成することが可能である。しかしながら、エンドエフェクタのワークに対するずれ量に応じた力の変化を直接検出するため、ロボットの先端に力覚センサを設ける必要がある。この場合、実作業時における力覚センサの配置が制約を受ける。また、ワークのエンドエフェクタとの接触部分をＣ面に設定する必要がある等、ワークの表面をエンドエフェクタに対応させる必要がある。この結果、適用可能な作業が、ピンと穴との嵌め合い等の特定の作業に限られてしまう。さらに、エンドエフェクタとワークとの接触時のがたつきの影響を排除するために、実作業を行う毎に、専用の治具やロボットハンドを設ける必要があり、汎用性が低い。
【０００７】
本発明は、このような課題を考慮してなされたものであり、低コストで汎用性の高いロボットシステム及びロボットの制御方法を提供することを目的とする。
【０００８】
本発明は、ロボットのエンドエフェクタのワークに対する接触状態の変化をセンサが検知した際に、該センサが検知した前記接触状態の変化に基づき前記ワークに対する前記エンドエフェクタのずれ量を推定し、前記ロボット及び／又は前記エンドエフェクタを制御することで前記ずれ量を補正するロボットシステムに関する。
【０００９】
この場合、前記ロボットシステムは、前記ロボット及び／又は前記エンドエフェクタを制御する制御部と、該制御部によって前記エンドエフェクタの前記ワークに対する接触状態を変化させたときの前記接触状態の時間変化を示すデータを検出する検出部と、前記データを学習する学習部と、該学習部での前記データの学習結果を用いて、前記エンドエフェクタの前記ワークに対する実作業時での該エンドエフェクタの前記ワークに対する接触状態を判断する判断部とを有する。
【００１０】
そして、前記検出部は、前記ワークの表面における複数の設定位置の各々について、予め、前記エンドエフェクタを前記設定位置に接触させたときに前記センサが検知した接触状態の変化と、該設定位置に対して設定動作範囲で前記エンドエフェクタを手探り動作させたときに前記センサが検知した接触状態の変化とを、学習用データとして検出する。また、前記学習部は、検出された複数の前記学習用データを学習し、複数の前記学習用データの学習結果を前記判断部に書き込む。さらに、前記判断部は、前記実作業時に、前記エンドエフェクタが前記ワークの表面に接触したときの前記センサが検出した接触状態の変化を取得し、取得した前記接触状態の変化と、書き込まれた前記学習結果とに基づいて、前記ワークに対する前記エンドエフェクタのずれを認識する。前記制御部は、前記判断部での判断結果に基づいて前記ずれ量を推定する。
【００１１】
また、本発明は、ロボットのエンドエフェクタのワークに対する接触状態の変化をセンサが検知した際に、該センサが検知した前記接触状態の変化に基づき前記ワークに対する前記エンドエフェクタのずれ量を推定し、前記ロボット及び／又は前記エンドエフェクタを制御することで前記ずれ量を補正するロボットの制御方法に関する。この制御方法は、下記の第１〜第５ステップを有する。
【００１２】
すなわち、前記第１ステップでは、前記ワークの表面における設定位置について、前記エンドエフェクタを前記設定位置に接触させたときに前記センサが検知した接触状態の変化と、該設定位置に対して設定動作範囲で前記エンドエフェクタを手探り動作させたときに前記センサが検知した接触状態の変化とを、学習用データとして検出部が検出する。
【００１３】
前記第２ステップでは、検出された前記学習用データを学習部が学習する。
【００１４】
前記第３ステップでは、前記第１ステップと前記第２ステップとの順に繰り返し実行した後に、前記学習部での複数の前記学習用データの学習結果を判断部に書き込む。
【００１５】
前記第４ステップでは、前記エンドエフェクタの前記ワークに対する実作業時に、前記エンドエフェクタが前記ワークの表面に接触したときの前記センサが検出した接触状態の変化を前記判断部が取得し、取得した前記接触状態の変化と、書き込まれた前記学習結果とに基づいて、前記ワークに対する前記エンドエフェクタのずれを認識する。
【００１６】
前記第５ステップでは、制御部が前記判断部での判断結果に基づいて前記ずれ量を推定する。
【００１７】
このように、本発明によれば、前記エンドエフェクタの前記ワークに対するずれ量が多次元方向のずれ量であっても、単一の前記センサが検出した前記接触状態の変化に基づいて前記ワークに対する前記エンドエフェクタのずれを認識し、この認識結果（判断結果）に基づいて前記ずれ量を推定することができる。従って、本発明では、上記の各公報の技術と比較して、シンプルなシステム構成で前記ずれ量を推定可能であるため、低コストで高い実装性のシステムを構築することができる。
【００１８】
また、前記データ（前記学習用データ）が１次元の時間変化のロギングデータであるため、上記の各公報の技術と比較して、取得した前記接触状態の変化のデータの取り扱いが容易である。この結果、専用のコンピュータ（ＰＣ）を用いることなく、一般的なＦＡ機器において、前記接触状態（前記ずれ）を認識し、この認識結果（判断結果）を用いて前記ロボット及び/又は前記エンドエフェクタを制御することが可能となる。これにより、高いシステム稼働率を達成することができる。
【００１９】
さらに、人手による手探りの作業と同様の手法で、前記ロボットが前記ワークの複数の設定位置に対して前記エンドエフェクタを手探り動作させることで、前記学習部が複数の前記データを学習し、さらに、その学習結果と、前記実作業の際に取得された接触状態の変化とに基づいて前記ずれを認識する。これにより、前記ずれ量を容易に推定することができる。この結果、特開２０１５−１５５１２６号公報の技術と比較して、ワークの公差やワークの設置レイアウトのばらつき、ワークのがたつき等の外乱に対するロバスト性が向上する。
【００２０】
さらにまた、本発明では、上述の人工知能による学習機能を用いて、前記設定動作範囲での前記学習用データの獲得と、該学習用データの学習とを繰返し行うことで、自律的に接触状態の特徴を獲得し、前記ずれの認識や前記ずれ量の推定を行うことができる。これにより、該ずれ量を推定するための判断ロジックの開発や調整に必要な工数を少なくすることができる。この結果、システムの導入期間の短縮化を図ることができる。
【００２１】
このように、本発明によれば、上記の各公報の技術と比較して、低コストで汎用性の高いロボットシステム及びロボットの制御方法を実現することができる。
【００２２】
ここで、前記検出部は、前記実作業時に、前記エンドエフェクタを前記ワークの表面の任意の位置に接触させたときに前記センサが検知した接触状態の変化と、該任意の位置に対して任意の動作範囲で前記エンドエフェクタを手探り動作させたときに前記センサが検知した接触状態の変化とを、実データとして検出する。これにより、前記判断部は、検出された前記実データと、書き込まれた前記学習結果に含まれる、該実データに類似している学習用データの学習結果とに基づいて、前記ワークに対する前記エンドエフェクタのずれを認識する。この結果、前記制御部で前記ずれ量を精度良く推定することが可能となる。従って、本発明では、前記ずれ量を推定するための認識・判断処理システムを容易に構築することができる。
【００２３】
また、複数の前記学習用データは、前記エンドエフェクタの前記ワークに対するずれの種類に応じて異なる特徴を有する。そこで、前記学習部は、複数の前記学習用データについて、前記ずれの種類に応じた異なる特徴を学習する。前記判断部は、前記実作業時には、前記学習結果を用いて、前記実データの示す接触状態を判断することで、前記実データに対応するずれの種類を特定する。これにより、前記判断部は、書き込まれた前記学習結果に含まれる、特定した前記ずれの種類に応じた学習用データの学習結果と前記実データとを用いて、前記ワークに対する前記エンドエフェクタのずれを認識する。この結果、前記制御部において、前記ずれ量を一層精度良く推定することができる。
【００２４】
さらに、前記エンドエフェクタの前記ワークに対する前記接触状態が閾値を超えないように、前記制御部が前記ロボット及び／若しくは前記エンドエフェクタを制御するか、又は、外力可動機構によって前記エンドエフェクタを可動範囲内で移動させることにより、前記ワークを傷付けることなく前記エンドエフェクタを前記ワークに接触させることができる。
【００２５】
また、前記センサが前記ロボットにおける前記エンドエフェクタの近傍に取り付けられた接触覚センサであれば、前記接触状態の変化を容易に検出することができると共に、一層の低コスト化及び該センサの耐久性の向上を図ることができる。
【００２６】
この場合、前記接触覚センサは、前記エンドエフェクタの中心軸と略同軸に前記ロボットに取り付けられているか、又は、該接触覚センサの軸が前記中心軸とは異なる状態で前記ロボットに取り付けられてもよい。前記接触覚センサの軸が前記中心軸と異なる場合、前記エンドエフェクタは、前記接触覚センサを介して前記ロボットに取り付けられていればよい。いずれの場合でも、前記接触状態の変化を容易に検出することができる。
【００２７】
なお、前記ワークが対象物に組み立てられる部材、又は、該対象物に締め付けられる部材であり、前記エンドエフェクタが前記部材を前記対象物に組み立てる工具、又は、締め付ける工具であれば、前記対象物と前記部材との組立作業や締付作業において、前記ずれ量を容易に補正することができる。
【図面の簡単な説明】
【００２８】
【図１】本実施形態に係るロボットシステムの学習時の構成図である。
【図２】本実施形態に係るロボットシステムの実作業時の構成図である。
【図３】図１及び図２のソケットへの接触力と、該接触力によってナットランナがＺ方向に直動する場合を図示したロボットの構成図である。
【図４】図１〜図３のソケットをＺ方向に直動させる直動機構が設けられている場合を図示した概略斜視図である。
【図５】図４の直動機構の内部構成図である。
【図６】図１〜図３のナットランナをＺ方向に直動させる直動機構が設けられている場合を図示した概略構成図である。
【図７】図６の直動機構の概略構成図である。
【図８】図８Ａは、ナットランナのソケットとボルトとの接触前の状態を示す説明図であり、図８Ｂは、図８Ａのソケットとボルトとが嵌合したときの接触状態を示す説明図である。
【図９】図９Ａは、ボルトに対するソケットの平行ずれが発生しているときのソケットとボルトとの接触前の状態を示す説明図であり、図９Ｂは、図９Ａのソケットとボルトとの接触状態を示す説明図である。
【図１０】図１０Ａは、ボルトに対するソケットの傾斜ずれが発生しているときのソケットとボルトとの接触前の状態を示す説明図であり、図１０Ｂは、図１０Ａのソケットとボルトとの接触状態を示す説明図である。
【図１１】図１１Ａは、ボルトに対するソケットの位相ずれが発生しているときのソケットとボルトとの接触状態を示す説明図であり、図１１Ｂは、ソケットとボルトとの接触位置を図示した説明図である。
【図１２】図１２Ａは、ボルトに対するソケットの平行・傾斜ずれが発生しているときのソケットとボルトとの接触前の状態を示す説明図であり、図１２Ｂは、図１２Ａのソケットとボルトとの接触状態を示す説明図である。
【図１３】接触前の状態から接触状態に至るまでのソケットのボルトとの接触力の時間変化を示した図である。
【図１４】図１４Ａ〜図１４Ｃは、ソケットのボルトに対する手探り動作の一例を図示した説明図である。
【図１５】ボルトを組み付けるか又は締め付けるときにソケットに作用するトルクの変化を示した図である。
【図１６】ボルトを組み付けるか又は締め付けるときにソケットに作用するモーメントの時間変化を示した図である。
【図１７】図１のロボットシステムの学習時の動作を示すフローチャートである。
【図１８】図１のロボットシステムの実作業時の動作を示すフローチャートである。
【図１９】ボルトに対するソケットの接触状態を図示した説明図である。
【図２０】学習時に学習部が取得した学習用波形データの図である。
【図２１】実作業時のロボットシステムの動作の流れを概略的に図示した説明図である。
【図２２】実作業時に学習部が取得した実波形データの図である。
【図２３】ボルトに対するソケットのずれ量の補正動作を図示した説明図である。
【発明を実施するための形態】
【００２９】
以下、本発明に係るロボットシステム及びロボットの制御方法について好適な実施形態を例示し、添付の図面を参照しながら説明する。
【００３０】
［１．本実施形態の構成］
図１及び図２は、本実施形態に係るロボットシステム１０の構成図である。
【００３１】
＜１．１  ロボットシステム１０の概要＞
ロボットシステム１０は、制御装置１２と、学習装置１３と、制御装置１２又は学習装置１３によって制御されるロボット１４と、ロボット１４の先端部に装着されたロボットハンドやハンドツール等のエンドエフェクタとしてのナットランナ１６と、ロボット１４の先端部に取り付けられたセンサ１８とを備える。
【００３２】
制御装置１２は、ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）で構成され、図示しないメモリに格納されたプログラムを読み出して実行することにより、検出部１２ａ、制御部１２ｂ及び判断部１２ｃの機能を実現する。また、学習装置１３は、主にＰＣで構成され、図示しないメモリに格納されたプログラムを読み出して実行することにより、人工知能の学習機能を備えた学習部１３ａの機能を実現する。制御装置１２と学習装置１３とは、双方向でのデータ通信が可能である。この場合、図１の学習時には、学習装置１３がロボット１４を制御しつつ所定の深層学習を行い、その学習結果を制御装置１２に供給する。一方、学習後の図２の実作業時には、制御装置１２が学習結果を用いてロボット１４及びナットランナ１６を制御し、所定の作業を行わせる。
【００３３】
すなわち、図１の学習時には、学習部１３ａがロボット１４を制御し、検出部１２ａは、センサ１８の検知結果から、後述する波形データ（学習用波形データ）を生成（検出）する。学習部１３ａは、検出部１２ａで検出された学習用波形データ（学習用データ）を学習し、その学習結果を判断部１２ｃに書き込む。
【００３４】
一方、図２の実作業時には、制御部１２ｂがロボット１４及びナットランナ１６を制御し、検出部１２ａは、センサ１８の検知結果から、後述する波形データ（実波形データ）を検出する。判断部１２ｃは、学習結果を用いて、検出部１２ａで検出された実波形データ（実データ）に対して所定の認識処理（判断処理）を行う。制御部１２ｂは、判断部１２ｃでの認識結果（判断結果）に基づいて、ロボット１４及びナットランナ１６を制御することで、ロボット１４及びナットランナ１６に所定の作業を行わせる。
【００３５】
従って、本実施形態に係るロボットシステム１０は、学習時には、学習部１３ａが制御部１２ｂの機能を奏することに留意する。なお、ロボットシステム１０では、１台のＰＬＣで制御装置１２を実現してもよいし、又は、複数のＰＬＣを用いて、検出部１２ａ、制御部１２ｂ及び判断部１２ｃの各処理をそれぞれ割り当てることで、並列処理を行ってもよい。要は、学習部１３ａを有する学習装置１３と、検出部１２ａ、制御部１２ｂ及び判断部１２ｃを有する制御装置１２とが、処理負荷の観点から、別個の装置であればよい。すなわち、学習作業では、非常に多くのメモリ容量や演算容量を必要とするので、主として、ＰＣが学習装置１３として機能する。一方、実作業では、学習結果のパラメータを用いて、所定の認識処理と制御処理とが行われるため、必要最小限のメモリ容量と演算容量とがあればよい。従って、一般的なＦＡ機器であるＰＬＣが制御装置１２として機能する。
【００３６】
＜１．２  ロボットシステム１０の各部の構成＞
ここで、ロボットシステム１０の各部の構成について、詳しく説明する。
【００３７】
ロボット１４は、例えば、６軸の多関節ロボットであればよい。すなわち、ロボット１４は、基端部である取付台としての第１ベース１４ａ、第２ベース１４ｂ、第１アーム１４ｃ、第１関節部１４ｄ、第２アーム１４ｅ、第２関節部１４ｆ、及び、先端部であるエンドエフェクタ着脱部１４ｇを有し、この順に接続されている。エンドエフェクタ着脱部１４ｇには、センサ１８及びナットランナ１６が取り付けられている。
【００３８】
第２ベース１４ｂは、鉛直軸（重力方向のＺ軸）である第１軸ｊ１を中心に旋回可能（回転可能）に第１ベース１４ａに軸支されている。第１アーム１４ｃは、鉛直軸に直交する水平軸（Ｘ軸又はＹ軸）である第２軸ｊ２を中心に俯仰可能（回転可能）に第２ベース１４ｂに軸支されている。第１関節部１４ｄは、第２軸ｊ２と平行な第３軸ｊ３を中心に俯仰可能（回転可能）に第１アーム１４ｃの先端部に軸支されている。第２アーム１４ｅは、第１関節部１４ｄから第２アーム１４ｅの先端部に向かう方向（長手方向）に沿った第４軸ｊ４を中心に回転可能に第１関節部１４ｄに軸支されている。第２関節部１４ｆは、第３軸ｊ３と平行な第５軸ｊ５を中心に回転可能に第２アーム１４ｅの先端部に軸支されている。エンドエフェクタ着脱部１４ｇは、第２関節部１４ｆから先端部に向かう方向に沿った第６軸ｊ６を中心に回転可能に第２関節部１４ｆに軸支されている。
【００３９】
センサ１８は、例えば、６軸成分（Ｘ軸、Ｙ軸及びＺ軸の３軸方向の力成分、Ｘ軸、Ｙ軸及びＺ軸の３軸方向のモーメント成分）を検出可能な接触覚センサである。センサ１８は、第６軸ｊ６と略同軸になるように、該センサ１８の上面がエンドエフェクタ着脱部１４ｇの先端部に取り付けられる。センサ１８のエンドエフェクタ着脱部１４ｇとは反対の底面には、ナットランナ支持部材２０が取り付けられている。
【００４０】
ナットランナ支持部材２０は、第６軸ｊ６と直交する方向に延びる板状部材である。ナットランナ支持部材２０の一端部には、センサ１８の底面が取り付けられ、ナットランナ支持部材２０の他端部には、ナットランナ１６が第６軸ｊ６と略平行に取り付けられている。従って、ナットランナ１６は、ナットランナ支持部材２０及びセンサ１８を介して、エンドエフェクタ着脱部１４ｇに装着されている。なお、ナットランナ支持部材２０の両側面には、ナットランナ１６及びセンサ１８から引き出される不図示の配線を保持するための側板２２がナットランナ支持部材２０の長手方向に沿って設けられている。
【００４１】
ナットランナ１６は、ナットランナ支持部材２０に支持される柱状の駆動部１６ａと、駆動部１６ａから下方に延びるナットランナ１６の軸１６ｂの先端（下端）に取り付けられ、駆動部１６ａの駆動によって該軸１６ｂを中心に回転可能なソケット１６ｃとを有する。駆動部１６ａは、第６軸ｊ６と略平行にナットランナ支持部材２０を挿通した状態で支持されている。従って、ナットランナ１６の軸１６ｂは、第６軸ｊ６と略平行に下方に延びている。ソケット１６ｃは、ワークとしてのボルト２４の頭部２６に嵌合可能な凹部１６ｄを有する。また、ボルト２４は、不図示の作業台に配置された車体やモータ等の対象物２８のネジ孔に螺合される。
【００４２】
なお、本実施形態に係るロボットシステム１０は、ワークがボルト２４である場合に限定されることはなく、対象物２８に組み立てられる部材、又は、該対象物２８に締め付けられる部材でもよい。従って、ロボットシステム１０において、エンドエフェクタは、ナットランナ１６に限定されることはなく、上記の部材を対象物２８に組み立てるか、又は、締め付ける工具（ハンドツール）であってもよい。つまり、ロボットシステム１０では、締付作業だけでなく、ロボットハンドやハンドツール（エンドエフェクタ）による各種の組立作業、例えば、ダウエルピンの嵌合、カプラとコネクタとの嵌合、ボルトとタップ穴との軸合わせ、各種の軸部材と穴との嵌合、を行うことが可能である。また、ワークは、締付部材だけではなく、嵌合や組立に用いられる部品であってもよい。以下の説明では、一例として、ワークとしてのボルト２４がフランジ３０付きの六角ボルトであり、エンドエフェクタとしてのナットランナ１６のソケット１６ｃにおける六角形状の凹部１６ｄが、六角ボルトの頭部２６に嵌合する場合について説明する。
【００４３】
制御装置１２の制御部１２ｂは、ロボット１４に制御信号を供給することにより、ロボット１４内部の不図示のモータを駆動させ、モータの軸（第１〜第６軸ｊ１〜ｊ６）を回転させることにより、該ロボット１４を動作させる。これにより、例えば、ソケット１６ｃの凹部１６ｄを、ボルト２４の頭部２６に嵌合させることができる。また、制御部１２ｂは、ナットランナ１６に制御信号を供給することにより、ナットランナ１６の駆動部１６ａを駆動させ、軸１６ｂを中心にソケット１６ｃを回転させる。これにより、ソケット１６ｃの凹部１６ｄがボルト２４の頭部２６に嵌合している場合、対象物２８に対するボルト２４の組立作業や締付作業を行うことができる。
【００４４】
センサ１８は、ナットランナ１６のソケット１６ｃがボルト２４に接触したときに、ソケット１６ｃのボルト２４に対する接触状態の変化、具体的には、該ソケット１６ｃがボルト２４から受ける接触力（反力）の３軸成分、及び、接触力のモーメントの３軸成分を逐次検出し、これらの６軸成分の検出結果を制御装置１２に順次出力する。なお、センサ１８は、ボルト２４に対するソケット１６ｃの接触状態の変化を検出できればよいので、図１に示すように、ナットランナ１６と同軸に配置されてなくてもよい。勿論、ナットランナ１６と略同軸に配置されている場合は、接触力の変化を検知することが可能である。
【００４５】
なお、センサ１８は、第１〜第６軸ｊ１〜ｊ６の近傍に設けられ、モータのトルクを検出するトルクセンサであってもよい。この場合、複数のトルクセンサは、モータのトルクを検出し、その検出結果を制御装置１２に出力する。制御装置１２の検出部１２ａは、複数のトルクセンサの検出結果に基づいて、ボルト２４に対するソケット１６ｃの接触力の変化を推定すればよい。
【００４６】
さらに、センサ１８は、ソケット１６ｃのボルト２４に対する接触状態の変化を検出できればよいので、ソケット１６ｃとボルト２４との接触状態が変化するときに発生する音を検出するマイクロフォン等の音響センサや、ソケット１６ｃとボルト２４との接触状態が変化するときに発生する振動を検出する各種の振動センサでもよい。また、センサ１８が音響センサのような非接触式のセンサである場合には、ロボット１４に取り付けることなく、ソケット１６ｃ及びボルト２４の近傍に配置されていればよい。いずれの場合でも、制御装置１２の検出部１２ａは、センサ１８の検知結果からソケット１６ｃとボルト２４との接触状態の時間変化を波形データとして検出することが可能である。
【００４７】
以下の説明では、ロボット１４に取り付けられた接触覚センサをセンサ１８として用い、ソケット１６ｃのボルト２４に対する接触状態の変化をセンサ１８で検知する場合について説明する。
【００４８】
図１の学習時において、学習装置１３の学習部１３ａは、ロボット１４を制御することで、ソケット１６ｃをボルト２４の頭部２６に接触させる手探り動作を実行させる。
【００４９】
手探り動作とは、人手による手探りの作業と同様の手法で、ボルト２４の頭部２６に対してソケット１６ｃの接触状態を変化させることで、ソケット１６ｃの凹部１６ｄとボルト２４の頭部２６とを嵌合させるための作業をいう。従って、手探り動作は、エンドエフェクタ（ナットランナ１６）とワーク（ボルト２４）との接触状態を変化させるものであれば、どのような動作であってもよい。例えば、後述するボルト２４に対するソケット１６ｃの回動、ボルト２４に対してソケット１６ｃをＸ方向及びＹ方向に並進させる平動、ボルト２４の締付軸方向（Ｚ方向）での捻り、又は、回動と平動とを組み合わせた枢動によって、手探り動作を行わせることが可能である。さらに、エンドエフェクタ（ナットランナ１６）に不図示の振動付与機構を取り付け、エンドエフェクタとワークとを接触させた状態で、該振動付与機構からエンドエフェクタに各種の振動（例えば、超音波振動）を付与することにより、手探り動作を行わせることも可能である。
【００５０】
制御装置１２の検出部１２ａは、手探り動作の際に、センサ１８から入力された６軸成分に基づいて、例えば、接触力Ｆ（図３及び図４参照）のＺ軸成分（接触力Ｆｚ）の時間経過を学習用波形データとして検出し、検出した学習用波形データを学習部１３ａに供給する。学習部１３ａは、供給された学習用波形データの特徴を学習し、その学習結果を判断部１２ｃに書き込む。学習部１３ａの機能や手探り動作の詳細については後述する。
【００５１】
一方、図２の実作業時において、制御装置１２の制御部１２ｂは、ロボット１４及びナットランナ１６を制御することで、ソケット１６ｃとボルト２４の頭部２６とを嵌合させ、ボルト２４を対象物２８に螺合させる。この場合、検出部１２ａは、センサ１８から入力された６軸成分に基づいて、例えば、接触力Ｆｚの時間経過を、実波形データとして検出し、検出した実波形データを判断部１２ｃに供給する。
【００５２】
判断部１２ｃは、学習時に書き込まれた学習結果を用いて、供給された実波形データの示す接触状態を認識し、その認識結果から接触状態、すなわち、ボルト２４の頭部２６に対するソケット１６ｃのずれの有無を認識（判断）する。判断部１２ｃでの認識結果（判断結果）は、制御部１２ｂに供給される。制御部１２ｂは、供給された認識結果に基づいて、ボルト２４の頭部２６に対するソケット１６ｃのずれ量を推定し、推定したずれ量を制御量としてロボット１４及びナットランナ１６を制御する。これにより、対象物２８に対するボルト２４の組立作業や締付作業を正確に行うことが可能となる。判断部１２ｃの機能や実作業の詳細については、後述する。
【００５３】
なお、上記の説明では、検出部１２ａが学習時に学習用波形データを検出し、実作業時に実波形データを検出する処理等について説明した。本実施形態では、上記のような波形データの処理に代えて、数式処理等によるデータ処理を適用することも可能である。
【００５４】
この場合、例えば、検出部１２ａは、学習時に、センサ１８から逐次入力される６軸成分に基づき、接触力Ｆｚのデータを学習用データとして検出し、一方で、実作業時に、センサ１８から逐次入力される６軸成分に基づき、接触力Ｆｚのデータを実データとして検出すればよい。これにより、学習部１３ａは、深層学習により学習用データの特徴を学習し、その学習結果を判断部１２ｃに書き込むことができる。また、判断部１２ｃは、書き込まれた学習結果を用いて、数式処理等により、実データの示す接触状態を認識し、その認識結果からボルト２４の頭部２６に対するソケット１６ｃのずれの有無を認識することができる。
【００５５】
以下の説明では、学習時に検出部１２ａが学習用波形データを検出し、一方で、実作業時に検出部１２ａが実波形データを検出する場合について説明する。
【００５６】
図１及び図２では、ナットランナ１６周辺の構成を概略的に図示している。ここで、ナットランナ１６周辺の具体的な構成について、図３〜図７を参照しながら説明する。
【００５７】
図３に示すように、ソケット１６ｃがボルト２４の頭部２６（図１及び図２参照）に接触した場合、ソケット１６ｃは、接触力Ｆ（Ｆｚ）の負荷を受けることになる。この場合、ソケット１６ｃのボルト２４に対する接触力Ｆが閾値を超えない程度に、ボルト２４とソケット１６ｃとを接触させつつ、ソケット１６ｃの負荷を軽減させる必要がある。なお、閾値とは、ボルト２４が損傷しない程度の接触力Ｆの上限値（ボルト２４にかかる負荷の最大値）をいう。
【００５８】
そこで、ボルト２４との接触に伴うソケット１６ｃの負荷を軽減するためには、（１）センサ１８の検知結果に基づきロボット１４を制御することでナットランナ１６をＺ方向（図１〜図３の紙面の上方向）に移動させる、（２）ソケット１６ｃ又はナットランナ１６を上方向に移動させる、ことが考えられる。図４〜図７は、上記（２）の対応を具体化したものであり、外力可動機構としての直動機構２７（図４及び図５参照）又は直動機構２９（図６及び図７参照）をナットランナ１６に設けたものである。
【００５９】
図４及び図５の直動機構２７は、ソケット１６ｃのＺ方向へのストローク量（移動量）が、接触力Ｆ（Ｆｚ）の値に対して線形的に変化するように構成されている。この場合、直動機構２７は、ナットランナ１６の駆動部１６ａ及び軸１６ｂと、ソケット１６ｃとの間に設けられている。
【００６０】
直動機構２７は、Ｚ方向に延びる段付きのロッド２７ａを備える。ロッド２７ａの一端部は、ナットランナ１６の軸１６ｂに嵌合している。ロッド２７ａの他端部は、Ｚ方向に延びる筒状の連結部材２７ｂに挿入されている。連結部材２７ｂは、ロッド２７ａが挿入される連結部材２７ｂの一端部には、フランジが設けられている。連結部材２７ｂの他端部には、ソケット１６ｃの基端部が嵌合されている。
【００６１】
ロッド２７ａの径方向外側には、ロッド２７ａと連結部材２７ｂの一端部側を収容するベアリングホルダ２７ｃが配置されている。ベアリングホルダ２７ｃは、Ｚ方向に延びる段付きの筒状部材であり、駆動部１６ａ側の一端部には、フランジ２７ｄが形成されている。フランジ２７ｄは、駆動部１６ａに固定された一方の板体２７ｅと、ソケット１６ｃ側の他方の板体２７ｆとで挟まれている。この場合、２つの板体２７ｅ、２７ｆとフランジ２７ｄとをネジ部材２７ｇで一体に締結することにより、ベアリングホルダ２７ｃが駆動部１６ａに固定される。
【００６２】
ベアリングホルダ２７ｃの内周面のフランジ２７ｄ側と、ロッド２７ａの外周面の一端部側との間には、２つのベアリング２７ｈが設けられている。また、連結部材２７ｂの一端部（フランジ）は、ベアリングホルダ２７ｃの内周面に形成された突起２７ｉに係合している。これにより、ソケット１６ｃ及び連結部材２７ｂが、図５に示す位置よりもソケット１６ｃ側に突出することが阻止される。さらに、連結部材２７ｂの一端部とロッド２７ａの一端部との間には、スプリング２７ｊが介挿されている。スプリング２７ｊは、ソケット１６ｃに向かう方向（接触力Ｆｚとは逆方向）への弾発力を有する。
【００６３】
なお、駆動部１６ａ又はベアリングホルダ２７ｃをナットランナ支持部材２０（図１〜図３参照）に固定することにより、ナットランナ１６及び直動機構２７をナットランナ支持部材２０に支持することができる。
【００６４】
図４及び図５の直動機構２７では、ソケット１６ｃがボルト２４の頭部２６と接触して、ソケット１６ｃが接触力Ｆｚを受けた場合、該接触力Ｆｚは、ソケット１６ｃ及び連結部材２７ｂを介してスプリング２７ｊに伝わる。この結果、スプリング２７ｊは、接触力Ｆｚによって、弾発力に抗して駆動部１６ａ側に縮む。この場合、スプリング２７ｊは、接触力Ｆｚの値に対して、Ｚ方向に線形的に変形する。これにより、ソケット１６ｃ及び連結部材２７ｂのストローク量を、接触力Ｆｚに対して線形に変化させることができる。従って、スプリング２７ｊの縮み量がストローク量、すなわち、ソケット１６ｃの可動範囲となる。
【００６５】
一方、ソケット１６ｃとボルト２４の頭部２６との接触状態が解除された場合、スプリング２７ｊは、弾発力によって連結部材２７ｂをソケット１６ｃ側に変位させる。この結果、ソケット１６ｃ及び連結部材２７ｂは、図５の位置に復帰する。なお、駆動部１６ａが駆動して、軸１６ｂが回転した場合、ロッド２７ａ、連結部材２７ｂ及びソケット１６ｃは、一体に回転する。
【００６６】
図６及び図７に示す直動機構２９は、ナットランナ１６全体のＺ方向へのストローク量が、接触力Ｆ（Ｆｚ）の値に対して線形的に変化するように構成されている。この場合、直動機構２９は、ナットランナ１６の駆動部１６ａに設けられている。
【００６７】
直動機構２９は、ナットランナ支持部材２０と略平行に延び、駆動部１６ａの下端部に固定されるベース下板２９ａと、ナットランナ支持部材２０と略平行に延び、駆動部１６ａの中央部に固定されるベース上板２９ｂとを有する。ベース下板２９ａとベース上板２９ｂとは、Ｚ方向に延びる４本の直動ロッド２９ｃによって連結されている。この場合、４本の直動ロッド２９ｃは、ナットランナ支持部材２０をＺ方向に貫通して設けられた４つの筒状のホルダ２９ｄを挿通することで、ベース下板２９ａとベース上板２９ｂとを連結する。４本の直動ロッド２９ｃにおいて、ベース下板２９ａとホルダ２９ｄとの間には、スプリング２９ｅがそれぞれ介挿されている。各スプリング２９ｅは、ソケット１６ｃに向かう方向（接触力Ｆｚとは逆方向）への弾発力を有する。また、直動機構２９において、ベース下板２９ａからは、ナットランナ支持部材２０を貫通して上方に延びる複数本のロッド２９ｆが設けられている。また、直動機構２９は、ナットランナ支持部材２０に固定され、先端部がベース下板２９ａに連結されたダンパ２９ｇをさらに有する。
【００６８】
従って、ナットランナ１６及び直動機構２９は、ベース上板２９ｂ及びホルダ２９ｄを介して、ナットランナ支持部材２０に支持されている。
【００６９】
直動機構２９では、ソケット１６ｃがボルト２４の頭部２６（図１及び図２参照）と接触して、ソケット１６ｃが接触力Ｆ（Ｆｚ）を受けた場合、該接触力Ｆｚは、ソケット１６ｃ、軸１６ｂ、駆動部１６ａ、ベース下板２９ａを介して、各スプリング２９ｅ及びダンパ２９ｇに伝わる。この結果、各スプリング２９ｅは、接触力Ｆｚによって、弾発力に抗して上方に縮む。これにより、直動機構２９を構成するベース下板２９ａ、ベース上板２９ｂ、直動ロッド２９ｃ及びロッド２９ｆと、ベース下板２９ａ及びベース上板２９ｂに固定されたナットランナ１６とは、Ｚ方向に沿って、一体に上方に変位する。
【００７０】
この場合、スプリング２９ｅは、接触力Ｆｚの値に対して、Ｚ方向に線形的に変形する。これにより、ベース下板２９ａ、ベース上板２９ｂ、直動ロッド２９ｃ、ロッド２９ｆ及びナットランナ１６のストローク量を、接触力Ｆｚに対して線形に変化させることができる。従って、各スプリング２９ｅの縮み量がストローク量、すなわち、ナットランナ１６の可動範囲となる。また、ダンパ２９ｇは、接触力Ｆｚを受けることでナットランナ１６及びベース下板２９ａに発生する振動や衝撃を吸収する。
【００７１】
一方、ソケット１６ｃとボルト２４の頭部２６との接触状態が解除された場合、スプリング２９ｅは、弾発力によってベース下板２９ａを下方に変位させる。この結果、ベース下板２９ａ、ベース上板２９ｂ、直動ロッド２９ｃ、ロッド２９ｆ及びナットランナ１６は、図６及び図７の位置に復帰する。
【００７２】
なお、以下の説明では、図１及び図２の概略図に従って、ロボットシステム１０の構成及び動作について説明する。そのため、一部の説明では、直動機構２７、２９の構成及び動作を省略する場合があることに留意する。
【００７３】
［２．ソケット１６ｃとボルト２４とのずれに関する説明］
本実施形態に係るロボットシステム１０の動作説明に先立ち、ナットランナ１６を用いてボルト２４と対象物２８との組立作業又は締付作業を行う際、ナットランナ１６のソケット１６ｃとボルト２４との間で各種のずれが発生している場合の問題点等について、図８Ａ〜図１６を参照しながら説明する。ここでは、必要に応じて、図１及び図２も参照しながら説明する。
【００７４】
図８Ａ及び図８Ｂは、ソケット１６ｃとボルト２４との間で各種のずれが発生していない場合の説明図である。一方、図９Ａ〜図１２Ｂは、ソケット１６ｃとボルト２４との間で何らかのずれが発生している場合を図示した説明図である。
【００７５】
図８Ａの場合、ソケット１６ｃの中心軸３２（図１及び図２に示すナットランナ１６の軸１６ｂ）とボルト２４の中心軸３４とが略同軸であり、後述する各種のずれが発生していない。そのため、Ｚ軸に沿ってソケット１６ｃを下降させると、図８Ｂに示すように、ソケット１６ｃの凹部１６ｄとボルト２４の頭部２６とが嵌合する。図８Ｂでは、ソケット１６ｃとボルト２４との接触箇所を太い実線で図示している。すなわち、図８Ｂでは、ソケット１６ｃの凹部１６ｄとボルト２４の頭部２６とが面接触すると共に、ソケット１６ｃの先端とボルト２４の頭部２６のフランジ３０とが線接触又は面接触している。
【００７６】
一方、図９Ａ及び図９Ｂは、ボルト２４の中心軸３４に対してソケット１６ｃの中心軸３２がＹ方向に相対的にずれている場合を図示している。以下、２つの中心軸３２、３４が相対的に平行にずれている場合を「平行ずれ」と呼称する。この場合、Ｚ軸に沿ってソケット１６ｃを下降させると、図９Ｂに示すように、ソケット１６ｃの先端がボルト２４の頭部２６に当接し、ソケット１６ｃの凹部１６ｄとボルト２４の頭部２６とを嵌合させることができない。すなわち、ソケット１６ｃの先端とボルト２４の頭部２６とが線接触又は面接触している。また、平行ずれにおいて、ソケット１６ｃは、ボルト２４の頭部２６との接触箇所を中心に、矢印方向に回動する手探り動作が可能である。
【００７７】
図１０Ａ及び図１０Ｂは、ボルト２４の中心軸３４に対してソケット１６ｃの中心軸３２が角度θだけ傾斜している場合を図示している。以下、一方の中心軸に対して他方の中心軸が傾斜している場合を「傾斜ずれ」と呼称する。この場合、Ｚ軸に沿ってソケット１６ｃを下降させると、図１０Ｂに示すように、ボルト２４の頭部２６の一部がソケット１６ｃの凹部１６ｄに挿入され、ソケット１６ｃの先端がボルト２４の頭部２６のフランジ３０に当接している。しかしながら、ソケット１６ｃの凹部１６ｄとボルト２４の頭部２６とを嵌合させることができない。すなわち、ソケット１６ｃの先端とボルト２４の頭部２６のフランジ３０とが点接触又は線接触している。また、傾斜ずれにおいて、ソケット１６ｃは、ボルト２４の頭部２６のフランジ３０との接触箇所（図１０Ｂでは大きな点で示す箇所）を中心に、矢印方向に回動する手探り動作が可能である。
【００７８】
図１１Ａ及び図１１Ｂは、ソケット１６ｃの中心軸３２回りの位相と、ボルト２４の中心軸３４回りの位相とがずれている場合を図示している。以下、ソケット１６ｃの位相とボルト２４の位相とがずれている場合を「位相ずれ」と呼称する。この場合、Ｚ軸に沿ってソケット１６ｃを下降させると、ボルト２４の頭部２６の一部がソケット１６ｃの凹部１６ｄに挿入された状態となり、ソケット１６ｃの凹部１６ｄとボルト２４の頭部２６とを嵌合させることができない。すなわち、ソケット１６ｃの凹部１６ｄとボルト２４の頭部２６の６つの頂点とが点接触する状態となる。位相ずれにおいて、ソケット１６ｃの凹部１６ｄとボルト２４の頭部２６の各頂点とが点接触している場合、ボルト２４に対してソケット１６ｃを中心軸３２、３４回りに回転させることができない。なお、位相ずれにおいても、平行ずれが生じていれば、図９Ａ及び図９Ｂと同様の状況となる。
【００７９】
図１２Ａ及び図１２Ｂは、ボルト２４の中心軸３４に対してソケット１６ｃの中心軸３２がＹ方向に相対的にずれていると共に、ボルト２４の中心軸３４に対してソケット１６ｃの中心軸３２が角度θだけ傾斜している場合を図示している。すなわち、図１２Ａ及び図１２Ｂは、図９Ａ及び図９Ｂの平行ずれと、図１０Ａ及び図１０Ｂの傾斜ずれとの双方が発生している場合を図示したものである。以下、このようなずれを「平行・傾斜ずれ」と呼称する。この場合、Ｚ軸に沿ってソケット１６ｃを下降させると、図１２Ｂに示すように、ソケット１６ｃの先端がボルト２４の頭部２６に当接し、ソケット１６ｃの凹部１６ｄとボルト２４の頭部２６とを嵌合させることができない。すなわち、ソケット１６ｃの先端とボルト２４の頭部２６とが点接触又は線接触している。また、平行・傾斜ずれにおいて、ソケット１６ｃは、ボルト２４の頭部２６との接触箇所（図１２Ｂでは大きな点で示す箇所）を中心に、矢印方向に回動する手探り動作が可能である。
【００８０】
図１３は、図８Ａ〜図１２Ｂの場合において、ボルト２４に対してソケット１６ｃを下降させる場合に、ソケット１６ｃの下降開始からの経過時間と、ソケット１６ｃのボルト２４に対する接触力（反力）との関係を示す図である。図１３の接触力は、例えば、ソケット１６ｃがボルト２４から受ける反力のＺ方向成分（接触力Ｆｚ）である。ここで、ソケット１６ｃの下降開始の時点からソケット１６ｃがボルト２４の頭部２６に当接（接触）するまでの経過時間（ストローク）を到達時間と呼称する。
【００８１】
図１３に示すように、いずれの場合でも、接触力Ｆｚは、到達時間となるまでは略０レベルであり、一方で、到達時間後は、時間経過に伴って直線的に増加する。但し、到達時間後の接触力Ｆｚの時間変化（傾き）は、ずれの種類によって異なる特徴を有する。
【００８２】
具体的に、各種のずれが発生していない場合（図８Ａ及び図８Ｂ参照）は、図１３に実線で示すように、各種のずれが発生している場合（図９Ａ〜図１２Ｂ参照）と比較して、到達時間が最も長い。すなわち、各種のずれが発生していない場合は、ボルト２４の頭部２６に到達するまでのソケット１６ｃの移動距離が最も長いためである。従って、破線で示す平行ずれ（図９Ａ及び図９Ｂ参照）、二点鎖線で示す傾斜ずれ（図１０Ａ及び図１０Ｂ参照）、一点鎖線で示す位相ずれ（図１１Ａ及び図１１Ｂ参照）、並びに、点線で示す平行・傾斜ずれ（図１２Ａ及び図１２Ｂ参照）では、ずれが発生していない場合よりも到達時間が短い。
【００８３】
そのため、図１３について、到達時間及び接触力Ｆｚの傾きを比較することにより、ずれの種類を特定し、各種のずれの特徴を把握することができる。例えば、ずれが発生していない場合（図１３の実線）と、位相ずれの場合（図１３の一点鎖線）とでは、到達時間の違いを比較することで、両者を区別することができる。また、平行ずれの場合（図１３の破線）と、位相ずれの場合（図１３の一点鎖線）とでは、接触力Ｆｚの傾きを比較することで、両者を区別することができる。さらに、傾斜ずれの場合（図１３の二点鎖線）は、到達時間及び接触力Ｆｚの傾きの違いから、他の結果と区別することができる。平行・傾斜ずれの場合（図１３の点線）は、接触力Ｆｚの傾きが最も小さいという結果から、他の結果と区別することができる。
【００８４】
以上の結果より、各種のずれの特徴を予め特定しておけば、実際のソケット１６ｃによるボルト２４の組立作業又は締付作業（実作業）において、センサ１８が検出したボルト２４に対するソケット１６ｃの接触力Ｆｚと、各種のずれの特徴との比較に基づき、発生しているずれの種類を特定し、実際に発生しているずれ量を補正して、ソケット１６ｃとボルト２４とを正常に嵌合させることが可能になる。また、ソケット１６ｃとボルト２４とが嵌合したか否かを判断することも可能となる。
【００８５】
図１４Ａ〜図１４Ｃは、ロボット１４によるソケット１６ｃのボルト２４に対する手探り動作を図示した説明図である。図１４Ａ〜図１４Ｃは、一例として、平行ずれ（図９Ａ及び図９Ｂ参照）の場合を図示している。図１４Ａのソケット１６ｃとボルト２４との接触状態から、ロボット１４を制御することで、図１４Ａの紙面上、大きな点で示す接触箇所を中心に、反時計方向にソケット１６ｃが回動すると、図１４Ｂ及び図１４Ｃの状態となる。この場合、ボルト２４の頭部２６の上端と、ソケット１６ｃの下端との間隔が、ソケット１６ｃとボルト２４との干渉代ｄｉとなる。
【００８６】
ロボットシステム１０は、直動機構２７、２９（図４〜図７参照）を有するので、干渉代ｄｉの分だけスプリング２７ｊ、２９ｅが縮んで、ソケット１６ｃ又はナットランナ１６のＺ方向へのストローク量に変換される。これにより、手探り動作によってソケット１６ｃを回動させる場合、直動機構２７、２９が接触力Ｆｚの値に応じてソケット１６ｃ又はナットランナ１６をＺ方向に直動させるので、ソケット１６ｃの負荷を軽減することができる。
【００８７】
また、接触力Ｆｚは、スプリング２７ｊ、２９ｅ及びナットランナ支持部材２０等を介して、ナットランナ支持部材２０に取り付けられたセンサ１８に伝達される。これにより、センサ１８は、ソケット１６ｃの中心軸３２と同軸でなくても、接触力Ｆｚを容易に検知することができる。なお、ロボットシステム１０では、上記の平行ずれに限定されることはなく、他の種類のずれ（図１０Ａ〜図１２Ｂ参照）の場合でも、手探り動作を行った際に、ソケット１６ｃの負荷が軽減されると共に、接触力Ｆｚを検知することが可能である。
【００８８】
図１５は、ソケット１６ｃを中心軸３２回りに回転させて、ボルト２４を対象物２８に締め付ける場合の回転角度φとソケット１６ｃに作用するトルクとの関係を示す図である。この場合、回転角度φは、時間に応じた角度である。実線は、中心軸３２、３４が略同軸である状態（図８Ｂ参照）で、ソケット１６ｃを回転させたときの結果である。また、破線は、平行ずれ（図９Ｂ参照）や噛み込みが発生している状態で、ソケット１６ｃを回転させたときの結果である。さらに、一点鎖線は、ソケット１６ｃがボルト２４に接触していない状態で、該ソケット１６ｃを回転させたときの結果である。
【００８９】
図１５の実線の結果であれば、ソケット１６ｃを用いてボルト２４を正常に締め付けることが可能である。従って、実線の正常な結果と、実際の締付動作の結果とを比較することで、ずれの発生の有無や、組立作業又は締付作業の異常の発生の有無を検知することができる。
【００９０】
図１６は、ソケット１６ｃを用いてボルト２４を締め付ける場合に、ソケット１６ｃに作用するモーメントの時間変化を示した図である。実線は、ソケット１６ｃとボルト２４とが嵌合している状態での結果であり、破線は、位相ずれ（図１１Ａ及び図１１Ｂ参照）が発生している状態での結果である。図１６の実線の結果であれば、ソケット１６ｃを用いてボルト２４を正常に締め付けることが可能である。従って、実線の正常な結果と、実際の締付動作での結果とを比較することで、ソケット１６ｃとボルト２４とが正常な接触状態であるか否かを認識することが可能である。
【００９１】
［３．本実施形態の動作］
そこで、上記の知見を適用した本実施形態に係るロボットシステム１０の動作（ロボット１４の制御方法）について、図１７〜図２３を参照しながら説明する。この動作説明では、必要に応じて、図１〜図１６も参照しながら説明する。ここでは、実作業で発生するずれ量を補正して、ボルト２４を対象物２８に適切に締め付けるための動作について説明する。なお、図１７〜図２３の説明では、主として、傾斜ずれが発生している場合であって、センサ１８がソケット１６ｃのボルト２４に対する反力（接触力）を検出する場合について説明する。また、ボルト２４を対象物２８に組み立てる場合でも、図１７〜図２３と同様の動作であることに留意する。
【００９２】
ロボットシステム１０では、図１７のフローに従って、各種のずれ等の学習を行う。先ず、図１７のステップＳ１において、学習装置１３の学習部１３ａは、学習条件のデータに応じた制御信号をロボット１４に供給してモータを駆動させる。これにより、ロボット１４が動作を開始し、エンドエフェクタ着脱部１４ｇに装着したナットランナ１６の下降を開始させることで、ソケット１６ｃの位置制御を開始する。また、センサ１８は、ソケット１６ｃのボルト２４に対する接触状態（例えば、接触力（反力））の検出を開始する。センサ１８は、検出結果を制御装置１２に逐次出力する。なお、図１７では、後述する実作業で用いるソケット１６ｃ及びボルト２４と同じ種類のソケット１６ｃ及びボルト２４を使用する。
【００９３】
この場合、ソケット１６ｃがボルト２４の頭部２６に当接するまでは、略０レベルの検出結果がセンサ１８から制御装置１２に逐次出力される。また、制御装置１２の検出部１２ａは、ナットランナ１６の下降開始時刻からの計時を行い、センサ１８からの検出結果（接触力）と下降開始時刻からの経過時間とを紐付け、不図示のメモリに記憶する。
【００９４】
ソケット１６ｃがボルト２４に当接すると、ソケット１６ｃは、ボルト２４の頭部２６を押圧するため、ボルト２４から反力を受ける。ナットランナ１６には、反力（接触力）の値に応じてソケット１６ｃ又はナットランナ１６をＺ方向に直動させる直動機構２７、２９が設けられている。そのため、ソケット１６ｃがボルト２４から接触力を受けた場合でも、該ソケット１６ｃの負荷を軽減することができる。
【００９５】
センサ１８は、ナットランナ１６又は直動機構２７、２９からナットランナ支持部材２０を介して伝わる接触力を検出し、その検出結果を検出部１２ａに逐次出力する。検出部１２ａは、ソケット１６ｃのボルト２４の頭部２６に対する接触力の大きさ（例えば、Ｚ方向成分である接触力Ｆｚ）と経過時間との関係から、ソケット１６ｃがボルト２４に当接したことを認識することができる。すなわち、検出部１２ａは、経過時間と接触力Ｆｚとから、接触力Ｆｚの時間変化の結果を得ることができる。
【００９６】
次のステップＳ２（第１ステップ）において、学習部１３ａは、ソケット１６ｃとボルト２４の頭部２６とが当接している状態で、図１９に示すように、例えば、Ｙ−Ｚ平面上で、ソケット１６ｃとボルト２４の頭部２６との当接位置（大きな点で示す設定位置）を中心に、ソケット１６ｃが時計方向及び反時計方向に回動する手探り動作を行うように、ロボット１４を制御する。なお、図１９において、ｄは、中心軸３４と、ボルト２４の頭部２６に対するソケット１６ｃの接触箇所との間隔である。ステップＳ２での手探り動作において、設定位置に対してソケット１６ｃを回動させる方向の順序、及び、設定位置に対してソケット１６ｃを回動させる範囲（設定動作範囲）は、適宜設定すればよい。また、制御部１２ｂは、接触力が所定の閾値を超えないように、ロボット１４を制御して、ソケット１６ｃをボルト２４の頭部２６に接触させる。なお、閾値とは、ボルト２４が損傷しない程度の接触力の上限値（ボルト２４にかかる負荷の最大値）をいう。
【００９７】
この場合も、センサ１８は、ソケット１６ｃのボルト２４の頭部２６に対する接触力を逐次検出し、その検出結果を制御装置１２に出力する。検出部１２ａは、逐次入力されるセンサ１８の検出結果を経過時間と紐付けてメモリに記憶する。この結果、検出部１２ａは、図２０に示すような経過時間と接触力（Ｚ方向成分の接触力Ｆｚ）との関係を示す波形データ（学習用波形データ）を収集（検出）することができる。そして、検出部１２ａは、検出した学習用波形データを学習部１３ａに供給する。なお、ソケット１６ｃは、設定位置を中心に時計方向及び反時計方向に回動する手探り動作を行うので、学習用波形データの横軸である経過時間は、ボルト２４の中心軸３２に対する角度θに対応したものとなる。
【００９８】
次のステップＳ３（第２ステップ）において、学習部１３ａは、深層学習によって、収集した学習用波形データを学習する。この場合、学習部１３ａは、周知のニューラルネットワークにより、学習用波形データの特徴、すなわち、ずれによる接触力Ｆｚの時間変化の特徴（図２０の波形の傾向）を学習する。なお、深層学習の手法は公知であるため、その詳細な説明は省略する。
【００９９】
次のステップＳ４において、学習部１３ａは、学習用波形データに対する深層学習を繰り返し行うかどうかを判断する。実作業で想定される各種のずれに応じた波形の学習が完了していない場合、学習部１３ａは、さらなる学習が必要と判断する（ステップＳ４：ＹＥＳ）。そして、学習部１３ａは、ステップＳ１に戻り、さらなる学習を行うための手探り動作を行う。
【０１００】
図１３、図１５及び図１６に示すように、ずれの種類によって、接触力Ｆｚの時間変化（傾き）、トルクの変化及びモーメントの時間変化は、それぞれ異なる。そのため、ステップＳ１〜Ｓ４の処理を繰り返し行うことにより、学習部１３ａは、同じずれに対する波形の特徴や、異なるずれの種類に対する波形の特徴を確実に学習することができる。つまり、学習部１３ａは、ずれの種類毎に、ステップＳ１〜Ｓ４の処理を繰り返し行うことで、各種のずれに応じた特徴を学習することができる。
【０１０１】
なお、図２０は、ステップＳ１〜Ｓ４の処理を繰り返し行ったときの複数の学習用波形データを重ね合わせたものである。また、本実施形態では、ボルト２４の頭部２６の表面における設定位置を変更して、ステップＳ１〜Ｓ４の処理を行うことにより、複数の設定位置毎に学習用波形データを取得し、学習部１３ａでずれの特徴を学習することができる。さらに、本実施形態では、ステップＳ１〜Ｓ４の処理を繰り返し行うことで、検出部１２ａは、図１３、図１５及び図１６の結果を学習用波形データとして検出し、学習部１３ａは、これらの学習用波形データを学習することも可能である。
【０１０２】
一方、実作業で想定される各種のずれに応じた波形の学習が十分に行われたと判断した場合（ステップＳ４：ＮＯ）、学習部１３ａは、次のステップＳ５に進む。ステップＳ５において、学習部１３ａは、学習用波形データを用いた深層学習を終了すると共に、ソケット１６ｃとボルト２４との接触動作の終了をロボット１４に指示する。これにより、ロボット１４は、ナットランナ１６を上方に退避させ、ボルト２４の頭部２６からソケット１６ｃを離間させる。
【０１０３】
このようにして学習用波形データを収集し、波形の特徴を予め学習した後のステップＳ６（第３ステップ）において、学習部１３ａは、複数の学習用波形データの学習結果を判断部１２ｃに書き込む。その後、ロボットシステム１０では、図１８のフローチャートに示す実作業が行われる。図２１は、実作業のプロセスの概要を図示した説明図であり、図１８の各ステップに概ね対応している。
【０１０４】
図１８のステップＳ１１において、制御部１２ｂは、ロボット１４を制御して、ナットランナ１６を下降させ、ソケット１６ｃをボルト２４の頭部２６に当接させることで、ソケット１６ｃを用いたボルト２４の締付動作を開始させる。これにより、次のステップＳ１２において、ナットランナ１６の駆動部１６ａが駆動して、軸１６ｂ及びソケット１６ｃが中心軸３２回りに回転し、対象物２８に対するボルト２４の締付けが行われる。
【０１０５】
次のステップＳ１３において、検出部１２ａは、図１５に示すソケット１６ｃに作用するトルクの波形データ（実波形データ）を収集（検出）する。なお、検出部１２ａは、センサ１８が検出したモーメント成分を用いて、トルクを算出することができる。検出された実波形データは、判断部１２ｃに供給される。
【０１０６】
次のステップＳ１４において、判断部１２ｃは、供給された実波形データと、事前に書き込まれた学習結果のうち、トルクに関する学習用波形データの学習結果とに基づいて、実波形データが何らかのずれのある異常波形であるか否かを判断する。この場合、実波形データが、例えば、図１５の破線で示す波形データであれば、判断部１２ｃは、異常波形と判断し（ステップＳ１４：ＹＥＳ）、ステップＳ１５に進む。
【０１０７】
次のステップＳ１５において、判断部１２ｃは、異常波形であったため、ボルト２４に対してソケット１６ｃのずれを補正し、正常な締付状態に修正するためのリトライモードを起動する。
【０１０８】
リトライモードにおいて、ステップＳ１６では、制御部１２ｂは、判断部１２ｃでの判断結果に基づき、ロボット１４を制御して、ボルト２４に対するソケット１６ｃの手探り動作を実行させる。この場合、図１７のステップＳ２と同様の手探り動作を行えばよい。
【０１０９】
これにより、ステップＳ１７において、センサ１８がソケット１６ｃのボルト２４に対する接触状態を検知し、その検知結果を検出部１２ａに逐次出力する。この結果、検出部１２ａは、図２２に示す接触力Ｆｚと時間との関係を示す実波形データを検出することができる。そして、検出部１２ａは、検出した実波形データを判断部１２ｃに供給する。
【０１１０】
ステップＳ１８（第４ステップ）において、判断部１２ｃに実波形データが供給されると、次のステップＳ１９において、判断部１２ｃは、供給された実波形データと、事前に書き込まれた学習結果のうち、接触力に関する学習用波形データ（図２０参照）の学習結果とに基づいて、実波形データの示すソケット１６ｃとボルト２４との接触状態、すなわち、ソケット１６ｃのボルト２４に対するずれを認識すると共に、ずれの種類を特定する。判断部１２ｃでの当該ずれに対する認識結果（判断結果）は、制御部１２ｂに供給される。
【０１１１】
次のステップＳ２０（第５ステップ）において、制御部１２ｂは、ステップＳ１９の認識結果（判断結果）に基づいて、ボルト２４に対するソケット１６ｃのずれ量を算出（推定）する。次のステップＳ２１において、制御部１２ｂは、推定したずれ量を制御量としてロボット１４を制御することで、図２１及び図２３に示すように、ソケット１６ｃの中心軸３２とボルト２４の中心軸３４とが略同軸となるように、ずれ量を補正する。
【０１１２】
次のステップＳ２２において、判断部１２ｃは、ステップＳ２１によるソケット１６ｃの位置を補正した結果、ソケット１６ｃとボルト２４とが嵌合したか否かを判断する。この場合、例えば、図１３に示すような実波形データを検出部１２ａで検出し、判断部１２ｃにおいて、検出された波形データと、図１３に応じた学習用波形データの学習結果とに基づいて、ソケット１６ｃとボルト２４との嵌合の有無を判断すればよい。
【０１１３】
ソケット１６ｃとボルト２４とが嵌合していないと判断される場合（ステップＳ２２：ＮＯ）、ステップＳ１６に戻り、リトライモードが引き続き実行される。一方、ソケット１６ｃとボルト２４とが嵌合していると判断される場合（ステップＳ２２：ＹＥＳ）、ステップＳ２３に進み、判断部１２ｃは、リトライモードを完了させると共に、ステップＳ２２での判断結果を制御部１２ｂに通知する。制御部１２ｂは、ナットランナ１６を制御することで、軸１６ｂ及びソケット１６ｃを回転させ、ボルト２４の締付作業を実行する。
【０１１４】
そして、対象物２８とボルト２４とが螺合して、該ボルト２４の締付けが完了した場合（ステップＳ２４：ＹＥＳ）、ステップＳ２５において、制御部１２ｂは、ナットランナ１６の駆動を停止させると共に、ロボット１４を制御してナットランナ１６を上方に退避させ、ボルト２４の頭部２６からソケット１６ｃを離間させる。これにより、ボルト２４に対する一連の締付動作が完了する。なお、ステップＳ２４でのボルト２４の締付けの完了の判断は、例えば、センサ１８で検出される接触力が所定値に到達した場合に締付け完了と判断するか、又は、締付作業の開始から所定時間経過したときに締付け完了と判断すればよい。
【０１１５】
なお、ステップＳ２４でボルト２４の締付けが完了していないと判断した場合（ステップＳ２４：ＮＯ）、ステップＳ１２に戻り、ステップＳ１２以降の処理が再度実行される。また、ステップＳ１４で実波形データが異常波形でなかった場合（ステップＳ１４：ＮＯ）、判断部１２ｃは、ソケット１６ｃとボルト２４とが嵌合していると判断し、ステップＳ１５〜Ｓ２３の処理をスキップし、ステップＳ２４の処理を実行する。
【０１１６】
このように、上記の動作では、ステップＳ１４でずれの発生を示す異常な実波形データである場合のみステップＳ１５〜Ｓ２２のリトライモードが起動して、ずれの補正を行うので、サイクルタイムの影響を最小限に抑えながら、ボルト２４の締付けの成功率を高めることができる。
【０１１７】
上記の動作説明では、主として、傾斜ずれ（図１０Ａ及び図１０Ｂ参照）の場合について説明した。一方、平行ずれ（図９Ａ及び図９Ｂ参照）の場合は、ステップＳ２１において、ロボット１４を制御し、２つの中心軸３２、３４が略同軸となるように、ソケット１６ｃをＸ方向又はＹ方向に沿って平行移動させればよい。また、位相ずれ（図１１Ａ及び図１１Ｂ参照）の場合は、ステップＳ２１において、ナットランナ１６を制御し、ソケット１６ｃの凹部１６ｄと、ボルト２４の頭部２６とが同相となるように、ソケット１６ｃを中心軸３２回りに回転させればよい。さらに、平行・傾斜ずれ（図１２Ａ及び図１２Ｂ参照）の場合は、ステップＳ２１において、傾斜ずれ及び平行ずれでのずれ量の補正方法を適用することで、２つの中心軸３２、３４を略同軸に補正すればよい。
【０１１８】
［４．本実施形態の効果］
以上説明したように、本実施形態に係るロボットシステム１０及びロボット１４の制御方法によれば、ナットランナ１６の軸１６ｂに取り付けられたソケット１６ｃのボルト２４に対するずれ量が、多次元方向のずれ量であっても、単一のセンサ１８が検出したソケット１６ｃとボルト２４との接触状態の変化に基づいて、ボルト２４に対するソケット１６ｃのずれを認識し、この認識結果（判断結果）に基づいて、ずれ量を推定することができる。従って、本実施形態では、上記の各公報の技術と比較して、シンプルなシステム構成でずれ量を推定可能である。この結果、低コストで高い実装性のシステムを構築することができる。
【０１１９】
また、学習用波形データが１次元の時間変化のロギングデータであるため、上記の各公報の技術と比較して、取得した接触状態の変化のデータの取り扱いが容易である。この結果、専用のコンピュータ（ＰＣ）を用いることなく、一般的なＦＡ機器において、接触状態（ずれ）を認識し、この認識結果（判断結果）を用いてロボット１４及び／又はナットランナ１６を制御することが可能となる。これにより、高いシステム稼働率を達成することができる。
【０１２０】
さらに、人手による手探りの作業と同様の手法で、ロボット１４がボルト２４の複数の設定位置に対してソケット１６ｃを手探り動作させることで、学習部１３ａが複数の学習用波形データを学習し、さらに、判断部１２ｃにおいて、その学習結果と、実作業の際に取得された接触状態の変化（実波形データ）とに基づいて、ずれを認識する。これにより、制御部１２ｂにおいて、ずれ量を容易に推定することができる。この結果、特開２０１５−１５５１２６号公報の技術と比較して、ボルト２４の公差やボルト２４の設置レイアウトのばらつき、ボルト２４のがたつき等の外乱に対するロバスト性が向上する。
【０１２１】
さらにまた、本実施形態では、人工知能による学習機能を用いて、設定動作範囲での学習用波形データの獲得と、該学習用波形データの学習とを繰返し行うことで、自律的に接触状態の特徴を獲得し、ずれの認識やずれ量の推定を行うことができる。これにより、該ずれ量を推定するための判断ロジックの開発や調整に必要な工数を少なくすることができる。この結果、ロボットシステム１０の導入期間の短縮化を図ることができる。
【０１２２】
このように、本実施形態では、上記の各公報の技術と比較して、低コストで汎用性の高いロボットシステム１０及びロボット１４の制御方法を実現することができる。
【０１２３】
ここで、検出部１２ａは、実作業時に、ソケット１６ｃをボルト２４の表面の任意の位置に接触させたときにセンサ１８が検知した接触状態の変化と、該任意の位置に対して任意の動作範囲でソケット１６ｃを手探り動作させたときにセンサ１８が検知した接触状態の変化とを、実波形データとして検出する。これにより、判断部１２ｃは、検出された実波形データと、書き込まれた学習結果に含まれる、該実波形データに類似している学習用波形データの学習結果とに基づいて、ボルト２４に対するソケット１６ｃのずれを認識する。この結果、制御部１２ｂでずれ量を精度良く推定することが可能となる。従って、本実施形態では、ずれ量を推定するための認識・判断処理システムを容易に構築することができる。
【０１２４】
また、複数の学習用波形データは、ソケット１６ｃのボルト２４に対するずれの種類に応じて異なる特徴を有する。そこで、学習部１３ａは、複数の学習用波形データについて、ずれの種類に応じた異なる特徴を学習する。判断部１２ｃは、実作業時には、学習結果を用いて、実波形データの示す接触状態を判断することで、実波形データに対応するずれの種類を特定する。これにより、判断部１２ｃは、書き込まれた学習結果に含まれる、特定したずれの種類に応じた学習用波形データの学習結果と実波形データとを用いて、ボルト２４に対するソケット１６ｃのずれを認識する。この結果、制御部１２ｂにおいて、ずれ量を一層精度良く推定することができる。
【０１２５】
さらに、ソケット１６ｃのボルト２４に対する接触状態が閾値を超えないように、制御部１２ｂがロボット１４及び／若しくはナットランナ１６を制御するか、又は、直動機構２７、２９によってソケット１６ｃ若しくはナットランナ１６を可動範囲内（スプリング２７ｊ、２９ｅの縮み量の範囲内）で移動させることにより、ボルト２４を傷付けることなくソケット１６ｃをボルト２４に接触させることができる。
【０１２６】
また、センサ１８がロボット１４におけるナットランナ１６の近傍に取り付けられた接触覚センサであるため、接触状態の変化を容易に検出することができると共に、一層の低コスト化及び該センサ１８の耐久性の向上を図ることができる。
【０１２７】
この場合、センサ１８は、中心軸３２と略同軸にロボット１４に取り付けられているか、又は、該センサ１８の軸が中心軸３２とは異なる状態でロボット１４に取り付けられてもよい。センサ１８の軸が中心軸３２と異なる場合、ナットランナ１６は、センサ１８を介してロボット１４に取り付けられる。いずれの場合でも、接触状態の変化を容易に検出することができる。
【０１２８】
さらに、本実施形態では、ソケット１６ｃを用いてボルト２４を組み立てるか、又は、締め付けるので、対象物２８とボルト２４との組立作業や締付作業において、ずれ量を容易に補正することができる。
【０１２９】
なお、本発明は、上述の実施形態に限らず、この明細書の記載内容に基づき、種々の構成を採り得ることは勿論である。
【図１】
2019150726.tif 000003
【図２】
2019150726.tif 000004
【図３】
2019150726.tif 000005
【図４】
2019150726.tif 000006
【図５】
2019150726.tif 000007
【図６】
2019150726.tif 000008
【図７】
2019150726.tif 000009
【図８】
2019150726.tif 000010
【図９】
2019150726.tif 000011
【図１０】
2019150726.tif 000012
【図１１】
2019150726.tif 000013
【図１２】
2019150726.tif 000014
【図１３】
2019150726.tif 000015
【図１４】
2019150726.tif 000016
【図１５】
2019150726.tif 000017
【図１６】
2019150726.tif 000018
【図１７】
2019150726.tif 000019
【図１８】
2019150726.tif 000020
【図１９】
2019150726.tif 000021
【図２０】
2019150726.tif 000022
【図２１】
2019150726.tif 000023
【図２２】
2019150726.tif 000024
【図２３】
2019150726.tif 000025
【国際調査報告】
2019150726.tif 000026
2019150726.tif 000027
2019150726.tif 000028
2019150726.tif 000029