(57)【特許請求の範囲】
【請求項１】
ねじの頭部の溝に嵌合する、ドライバービットの先端部の係合部が磁化されているドライバーをアーム部によって把持し、
前記溝に前記先端部を接触させて前記ドライバーを、ドライバーユニットの移動方向に加速する正の加速度である第１の加速度で加速して移動させ、前記ドライバーを、前記ドライバーユニットの移動方向に加速する負の加速度である第２の加速度で減速して停止させ、
前記溝と前記先端部を嵌合させる、
ことを特徴とするロボット。
【請求項２】
前記ねじが吸着された前記ドライバーを所定の角度に傾けて、前記ねじが吸着された前記ドライバーを撮像し、撮像した画像を用いて前記ドライバーの前記係合部と前記ねじの頭部頂面の溝との嵌合の状態を判別し、
前記判別結果が前記ドライバーの前記係合部と前記ねじの頭部頂面の溝とが正しく嵌合している場合、前記ねじが吸着された前記ドライバーを、ねじ締めを行う対象物のねじ溝に向けて移動させてねじ締めを行う
ことを特徴とする請求項１に記載のロボット。
【請求項３】
前記所定の角度は、
前記ねじを、取り付ける対象物のねじ溝の角度である
ことを特徴とする請求項２に記載のロボット。
【請求項４】
撮像装置を備え、
前記撮像装置が撮像したアーム部を所定の角度に傾けた場合の画像と、テンプレート画像データとの類似度に基づき、前記ドライバーの前記係合部と前記ねじの頭部頂面の溝との嵌合の状態を判別する
ことを特徴とする請求項１から請求項３のいずれか１項に記載のロボット。
【請求項５】
前記ドライバーを把持しているアーム部を所定の速度で回転させた状態で、前記ドライバービットの先端の係合部を前記ねじの頭部頂面の溝に押しつける
ことを特徴とする請求項１から請求項４のいずれか１項に記載のロボット。
【請求項６】
前記ドライバーは電動ドライバーである
ことを特徴とする請求項１から請求項５のいずれか１項に記載のロボット。
【請求項７】
ロボットを制御するロボット制御装置であって、
ねじの頭部の溝に嵌合する、ドライバービットの先端部の係合部が磁化されているドライバーをロボットのアーム部によって把持させ、
前記溝に前記先端部を接触させて前記ドライバーを、ドライバーユニットの移動方向に加速する正の加速度である第１の加速度で加速して移動させ、前記ドライバーを、前記ドライバーユニットの移動方向に加速する負の加速度である第２の加速度で減速して停止させ、
前記溝と前記先端部を嵌合させる、
ことを特徴とするロボット制御装置。
【請求項８】
ロボットに、ねじの頭部の溝に嵌合する、ドライバービットの先端部の係合部が磁化されているドライバーをアーム部によって把持させる工程と、
前記ロボットに、前記溝に前記先端部を接触させて前記ドライバーを、ドライバーユニットの移動方向に加速する正の加速度である第１の加速度で加速して移動させ、前記ドライバーを、前記ドライバーユニットの移動方向に加速する負の加速度である第２の加速度で減速して移動させる工程と、
前記ロボットに、前記溝と前記先端部を嵌合させる工程と、
を有することを特徴とするロボット制御方法。
【請求項９】
ドライバービットの先端の係合部が磁化されているドライバーを把持するアーム部を制御する処理をコンピューターに実行させるためのプログラムであり、
ねじの頭部の溝に嵌合する、ドライバービットの先端部の係合部が磁化されているドライバーをアーム部によって把持させる手順と、
前記溝に前記先端部を接触させて前記ドライバーを、ドライバーユニットの移動方向に加速する正の加速度である第１の加速度で加速して移動させ、前記ドライバーを、前記ドライバーユニットの移動方向に加速する負の加速度である第２の加速度で減速して停止させる手順と、
前記溝と前記先端部を嵌合させる手順と、
を実行させるためのロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、ロボット制御装置、ロボット制御方法およびロボット制御プログラムに関する。
【背景技術】
【０００２】
近年、製造現場等では、スカラロボットや多軸ロボット等が製品の組み立てや検査等に用いられている。製品の組み立てや検査を行うときに物体を運搬する場合、ロボットは、物体を吸着したり、アームにより把持したりする。
【０００３】
このような産業用ロボットにおいては、自動組立その他の作業工程において、不特定で多様な姿勢をとる対象物を所定の姿勢で効率的に掴み取ることが要求されている。このような産業用ロボットは、ロボットのエンドエフェクターにドライバーを取り付け、人間に代わって、産業用ロボットがねじ締めを自動的に行っている。
【０００４】
特許文献１に記載のねじ締め機は、複数のドライバーユニットが上下に昇降するドライバー台に設置され、さらに、複数のドライバーユニットの複数のドライバービットをドライバー台と一体に昇降する案内台に配置されている。そして、特許文献１に記載の発明は、この案内台を水平方向に振動させることで、ドライバーユニットから延びるねじ締め工具を振動させる。この案内台の振動により、特許文献１に記載の発明は、ねじの頭部とドライバービットとが係合するようにしていた。
【０００５】
また、特許文献２に記載の発明は、ねじ締め機構にねじ供給機構からねじを供給する。そして、ねじ締め機構の制御部は、ねじ締め機能に加えるトルクを制御して、ねじを仮締めした後に本締めを行わせていた。そして、特許文献２に記載の発明は、このように制御されるねじ締め機構をロボットのエンドエフェクターに設けることで、各種のねじに対応していた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−７１８６７号公報
【特許文献２】特開昭６４−１１７４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の発明では、複数のドライバーユニットを、ねじを締め付ける対象に合わせて予めドライバー台に設置し、複数のドライバービットを、ねじを締め付ける対象に合わせて予め案内台に設置していた。このため、ねじを締め付ける対象に合わせて、特許文献１に記載のねじ締め機を導入する必要があり、汎用性に欠ける。また、ドライバー台や案内台が、ねじとねじを締め付ける対象に合わせて専用に作られているため、汎用的なドライバーを使用することができない。
【０００８】
また、特許文献２に記載の発明では、ねじ締め付け機構がねじ供給機構を備え、さらにめじ締め機構も専用であるため、汎用性に欠ける。また、ねじ締め機構をエンドエフェクターに取り付けた場合、エンドエフェクターごと取替えなければ、他の作業に対応することが出来ないため、作業を変更するのに時間を要し、更には取替えに関わる煩雑な作業が必要となってしまう。
【０００９】
本発明は、上記の課題に鑑みてなされたものであって、汎用的なドライバーを用いた場合でも締め付け不良の発生を防ぐロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明のロボットは、ねじの頭部の溝に嵌合する、ドライバービットの先端部の係合部が磁化されているドライバーをアーム部によって把持し、前記溝に前記先端部を接触させて前記ドライバーを、ドライバーユニットの移動方向に加速する正の加速度である第１の加速度で加速して移動させ、前記ドライバーを、前記ドライバーユニットの移動方向に加速する負の加速度である第２の加速度で減速して停止させ、前記溝と前記先端部を嵌合させる。
また、上記目的を達成するため、本発明のロボット制御装置は、ロボットを制御するロボット制御装置であって、ねじの頭部の溝に嵌合する、ドライバービットの先端部の係合部が磁化されているドライバーをロボットのアーム部によって把持させ、前記溝に前記先端部を接触させて前記ドライバーを、ドライバーユニットの移動方向に加速する正の加速度である第１の加速度で加速して移動させ、前記ドライバーを、前記ドライバーユニットの移動方向に加速する負の加速度である第２の加速度で減速して停止させ、前記溝と前記先端部を嵌合させる。
また、上記目的を達成するため、本発明のロボット制御方法は、ロボットに、ねじの頭部の溝に嵌合する、ドライバービットの先端部の係合部が磁化されているドライバーをアーム部によって把持させる工程と、
前記ロボットに、前記溝に前記先端部を接触させて前記ドライバーを、ドライバーユニットの移動方向に加速する正の加速度である第１の加速度で加速して移動させ、前記ドライバーを、前記ドライバーユニットの移動方向に加速する負の加速度である第２の加速度で減速して移動させる工程と、前記ロボットに、前記溝と前記先端部を嵌合させる工程と、を有する。
また、上記目的を達成するため、本発明のロボット制御プログラムは、ドライバービットの先端の係合部が磁化されているドライバーを把持するアーム部を制御する処理をコンピューターに実行させるためのプログラムであり、ねじの頭部の溝に嵌合する、ドライバービットの先端部の係合部が磁化されているドライバーをアーム部によって把持させる手順と、前記溝に前記先端部を接触させて前記ドライバーを、ドライバーユニットの移動方向に加速する正の加速度である第１の加速度で加速して移動させ、前記ドライバーを、前記ドライバーユニットの移動方向に加速する負の加速度である第２の加速度で減速して停止させる手順と、前記溝と前記先端部を嵌合させる手順と、を実行させる。
上記目的を達成するため、本発明のロボットは、ドライバービットの先端の係合部が磁化されているドライバーを把持するアーム部と、前記アーム部を制御する制御部と、を備え、前記制御部は、前記ドライバーの磁化されている前記係合部を、磁力により係合可能な頭部を有するねじの頭部頂面の溝に押しつけた状態で、前記アーム部を第１の所定の加速度で移動させる。
【００１１】
本発明によれば、ドライバービットの先端の係合部が磁化されているドライバーを、磁力により係合可能な頭部を有するねじの頭部頂面の溝に押しつけた状態で、アーム部を第１の所定の加速度で移動させる。このため、ドライバーの磁化されている係合部をねじの頭部頂面の溝に押しつけで正しく嵌合しなかった場合でも、第１の所定の加速度で移動させることにより、ねじがドライバーの係合部の形状とねじの頭部頂面の溝の形状とが嵌合する位置に誘導され、正しく嵌合する。このため、汎用的なドライバーを用いてもドライバーの係合部とねじの頭部頂面の溝とを正しく嵌合させることができる。
【００１２】
上記目的を達成するため、本発明のロボットにおいて、前記制御部は、前記アーム部を第１の加速度で加速して移動させ、前記アーム部を第２の加速度で減速して停止させるようにしてもよい。
【００１３】
本発明によれば、アーム部を第１の所定の加速度で移動させ、アーム部を第２の所定の加速度で移動させる。このため、第１の加速度で移動させてもドライバーの係合部とねじの頭部頂面の溝とが嵌合していない場合でも、第２の加速度で移動させることにより、ねじがドライバーの係合部の形状とねじの頭部頂面の溝の形状とが嵌合する位置に誘導され、正しく嵌合する。このため、汎用的なドライバーを用いてもドライバーの係合部とねじの頭部頂面の溝とを正しく嵌合させることができる。
【００１４】
上記目的を達成するため、本発明のロボットにおいて、前記第１の加速度は、ドライバーユニットの移動方向に対する正の加速度であり、前記第２の加速度は、前記ドライバーユニットの移動方向に対する負の加速度であるようしてもよい。
【００１５】
本発明によれば、第１の加速度は、ドライバーの移動方向に対する正の加速であり、第２の加速度は、ドライバーの移動方向に対して負の加速度であるので、ドライバーの係合部をねじの頭部頂面の溝に押しつけで正しく嵌合しなかった場合でも、これらの正の加速度による加速または負の加速度による減速により、ねじがドライバーの係合部の形状とねじの頭部頂面の溝の形状とが嵌合する位置に誘導され、正しく嵌合する。このため、汎用的なドライバーを用いてもドライバーの係合部とねじの頭部頂面の溝とを正しく嵌合させることができる。
【００１６】
上記目的を達成するため、本発明のロボットにおいて、前記制御部は、前記ねじが吸着された前記ドライバーを所定の角度に傾けて、前記ねじが吸着された前記ドライバーを撮像し、撮像した画像を用いて前記ドライバーの前記係合部と前記ねじの頭部頂面の溝との嵌合の状態を判別し、前記判別結果が前記ドライバーの前記係合部と前記ねじの頭部頂面の溝とが正しく嵌合している場合、前記ねじが吸着された前記ドライバーを、ねじ締めを行う対象物のねじ溝に向けて移動させてねじ締めを行うようにしてもよい。
【００１７】
本発明によれば、ねじが吸着されたドライバーを所定の角度に傾けて、ねじが吸着されたドライバーを撮像し、撮像した画像を用いてドライバーの係合部とねじの頭部頂面の溝との嵌合の状態を判別する。判別の結果、ドライバーの係合部とねじの頭部頂面の溝とが嵌合している場合、ねじ締めを行うようにしたので、汎用的なドライバーを用いてもドライバーの係合部とねじの頭部頂面の溝とを正しく嵌合させることができる。
【００１８】
上記目的を達成するため、本発明のロボットにおいて、前記所定の角度は、前記ねじを、取り付ける対象物のねじ溝の角度であるようにしてもよい。
【００１９】
本発明によれば、ねじを取り付ける対象物のねじ溝の角度に基づく角度に傾けて、ドライバーの係合部とねじの頭部頂面の溝との嵌合の状態を判別するようにしたので、実際のねじ締めを行う角度で嵌合の状態を判別できる。このため、汎用的なドライバーを用いてもドライバーの係合部とねじの頭部頂面の溝とを正しく嵌合されているか否かを判別することができる。また、判別後に、そのままねじ締めを行える。
【００２０】
上記目的を達成するため、本発明のロボットにおいて、撮像装置を備え、前記制御部は、前記撮像装置が撮像した前記アーム部を所定の角度に傾けた場合の画像と、テンプレート画像データとの類似度に基づき、前記ドライバーの前記係合部と前記ねじの頭部頂面の溝との嵌合の状態を判別するようにしてもよい。
【００２１】
本発明によれば、撮像装置が撮像したアーム部を所定の角度に傾けた場合の画像と、テンプレート画像データとの類似度に基づき、ドライバーの磁化されている係合部とねじの頭部頂面の溝との嵌合の状態を判別するようにしたので、ドライバーの磁化されている係合部とねじの頭部頂面の溝との嵌合の状態を明確に判別できる。このため、汎用的なドライバーを用いてもドライバーの係合部とねじの頭部頂面の溝とを正しく嵌合させることができる。
【００２２】
上記目的を達成するため、本発明のロボットにおいて、前記制御部は、前記ドライバーを把持している前記アーム部を所定の速度で回転させた状態で、前記ドライバービットの先端の係合部を前記ねじの頭部頂面の溝に押しつけるようにしてもよい。
【００２３】
本発明によれば、ドライバーを把持しているアーム部を所定の速度で回転させた状態で、ドライバービットの先端の係合部をねじの頭部頂面の溝に押しつけるようにしたので、ドライバーの係合部とねじの頭部頂面の溝とを嵌合させることができる。また、この処理でドライバーの係合部とねじの頭部頂面の溝とが、正しく嵌合しなかった場合でも、ドライバーを第１の所定の加速度で移動させるか、または、ドライバーを第２の所定の加速度で移動させることで、ドライバーの係合部とねじの頭部頂面の溝とを正しく嵌合させることができる。
【００２４】
上記目的を達成するため、本発明のロボットにおいて、前記ドライバーは電動ドライバーであるようにしてもよい。
【００２５】
本発明によれば、電動ドライバーを用いるため、汎用的なドライバーを用いてドライバーの係合部とねじの頭部頂面の溝とを正しく嵌合させることができる。
【００２６】
上記目的を達成するため、本発明のロボット制御装置は、ドライバービットの先端の係合部が磁化されているドライバーを把持するアーム部と、前記アーム部を制御する制御部と、を備え、前記制御部は、前記ドライバーの前記係合部を磁力により係合可能な頭部を有するねじの頭部頂面の溝に押しつけた状態で、前記ドライバーの前記係合部に前記ねじの頭部頂面の溝が嵌合した状態で磁力により生じる吸着力よりも小さく、前記ドライバーの前記係合部に前記ねじの頭部頂面の溝が当接した状態で磁力により生じる吸着力よりも大きい慣性力が前記ねじに作用する第１の所定の加速度で、前記ねじが吸着された前記ドライバーを移動させる。
【００２７】
上記目的を達成するため、本発明のロボット制御方法は、ドライバービットの先端の係合部が磁化されているドライバーを把持するアーム部を制御する制御部が、前記ドライバーの前記係合部を、磁力により係合可能な頭部を有するねじの頭部頂面の溝に押しつける工程と、前記ドライバーの前記係合部に前記ねじの頭部頂面の溝が嵌合した状態で磁力により生じる吸着力よりも小さく、前記ドライバーの前記係合部に前記ねじの頭部頂面の溝が当接した状態で磁力により生じる吸着力よりも大きい慣性力が前記ねじに作用する第１の所定の加速度で、前記ねじが吸着された前記ドライバーを移動させる工程と、を有する。
【００２８】
上記目的を達成するため、本発明のロボット制御プログラムは、ドライバービットの先端の係合部が磁化されているドライバーを把持するアーム部を制御する制御部が、前記ドライバーの磁化されている前記係合部を、磁力により係合可能な頭部を有するねじの頭部頂面の溝に押しつける工程と、前記ドライバーの前記係合部に前記ねじの頭部頂面の溝が嵌合した状態で磁力により生じる吸着力よりも小さく、前記ドライバーの前記係合部に前記ねじの頭部頂面の溝が当接した状態で磁力により生じる吸着力よりも大きい慣性力が前記ねじに作用する第１の所定の加速度で、前記ねじが吸着された前記ドライバーを移動させる工程と、を実行させる。
【００２９】
本発明によれば、ドライバービットの先端の係合部が磁化されているドライバーを、磁力により係合可能な頭部を有するねじの頭部頂面の溝に押しつけた状態で、アーム部を第１の所定の加速度で移動させる。このため、ドライバーの磁化されている係合部をねじの頭部頂面の溝に押しつけで正しく嵌合しなかった場合でも、第１の所定の加速度で移動させることにより、ねじがドライバーの係合部の形状とねじの頭部頂面の溝の形状とが嵌合する位置に誘導され、正しく嵌合する。このため、汎用的なドライバーを用いてもドライバーの係合部とねじの頭部頂面の溝とを正しく嵌合させることができるロボット制御装置、ロボット制御方法、およびロボット制御プログラムを提供できる。
【図面の簡単な説明】
【００３０】
【図１】第１実施形態に係るロボット１の概略構成を示す斜視図である。
【図２】同実施形態に係るアーム部２０と力センサー３０の概念図である。
【図３】同実施形態に係る制御部１００のブロック図である。
【図４】同実施形態に係るドライバーユニット５０の先端にねじ２１１を取り付け、ねじ締めを行うまでの動作のフローチャートである。
【図５】同実施形態に係るドライバーユニット５０の先端にねじ２１１を嵌合させる動作を説明する図である。
【図６】同実施形態に係るねじ２１１をねじ自動供給機の取り出し部のレール２０１から引き抜く動作を説明する図である。
【図７】同実施形態に係るねじ２１１を引き抜いた方向と同方向にねじ締めを行う対象部３０１まで移動させる動作を説明する図である。
【図８】同実施形態に係るねじ２１１を引き抜いた方向と逆方向にねじ締めを行う対象部３０１まで移動させる動作を説明する図である。
【図９】同実施形態に係るドライバーユニット５０の係合部５２にねじ２１１が嵌合しているか否かを説明する図である。
【図１０】同実施形態に係るねじ２１１の締め付け動作を説明する図である。
【図１１】同実施形態に係るドライバーユニット５０の移動中の速度の一例を説明する図である。
【図１２】同実施形態に係るドライバーユニット５０の係合部５２にねじ２１１が正しく嵌合している一例を説明する図である。
【図１３】同実施形態に係るドライバーユニット５０の係合部５２にねじ２１１が正しく嵌合していない一例を説明する図である。
【図１４】第２実施形態に係るドライバーユニット５０の先端にねじ２１１を取り付け、ねじ締めを行うまでの動作のフローチャートである。
【図１５】同実施形態に係るねじ締め付け対象物３０１が傾いている場合のねじ２１１の締め付け動作を説明する図である。
【図１６】第３実施形態に係るドライバーユニット５０の先端にねじ２１１を取り付け、ねじ締めを行うまでの動作のフローチャートである。
【図１７】第４実施形態に係るロボット１ａの概略構成を示す斜視図である。
【図１８】同実施形態に係るロボット１ａの動作のフローチャートである。
【発明を実施するための形態】
【００３１】
以下、本発明の実施形態について図面を参照して詳細に説明する。なお、本発明は斯かる実施形態に限定されず、その技術思想の範囲内で種々の変更が可能である。また、以下の図面においては、各構成をわかりやすくするために、実際の構造と各構造における縮尺や数等が異なっている。
【００３２】
［第１実施形態］
図１は、本実施形態に係るロボット１の概略構成を示す斜視図である。図１に示すように、ロボット１は、１本のアーム２を備えている。アーム２は、固定部１０、アーム部２０、力センサー３０、及びエンドエフェクター４０を備える。また、ロボット１は、制御部１００の制御により動作する。また、制御部１００には、撮像装置６０が接続されている。
【００３３】
ここでは、対象物としてねじ２１１を例示して説明する。なお、ねじの頭部形状は、例えば、なべ、皿、丸皿、トラス、バインド、低頭などである。また、ねじの溝または非貫通の溝の形状は、例えば、すわり（マイナス）、十字穴（プラス）、Ｓ形、プラスマイナス、六角穴、四角穴である。
また、ねじ２１１は、ねじ自動供給機の取り出し部のレール２０１上に予め配置されている。なお、ねじ自動供給機は、公知の技術（例えば、ＷＯ２００３／１０６３０７参照）により取り出し部のレール２０１上にねじ２１１を配置する。もしくは、予めレールにねじ２１１が配置されたマガジンを用いてもよい。
【００３４】
固定部１０は、例えば床、壁、天井、移動可能な台車の上などに固定される。固定部１０は、内部に、制御部１００（破線にて図示）を備える。
制御部１００は、アーム部２０、エンドエフェクター４０及びエンドエフェクターに取り付けられているドライバーユニット５０を制御する。制御部１００の詳細は後述する。なお、制御部１００は、固定部１０の内部ではなく、固定部１０の外部に設けるようにしてもよい。
【００３５】
アーム部２０は、第１フレーム２１、第２フレーム２２、第３フレーム２３、第４フレーム２４および第５フレーム２５から構成されている。第１フレーム２１は、回転屈折軸を介して、固定部１０に回転可能または屈折可能に接続されている。第２フレーム２２は、回転屈折軸を介して、第１フレーム２１および第３フレーム２３に接続されている。第３フレーム２３は、回転屈折軸を介して、第２フレーム２２および第４フレーム２４に接続されている。第４フレーム２４は、回転屈折軸を介して、第３フレーム２３および第５フレーム２５に接続されている。第５フレーム２５は、回転屈折軸を介して、第４フレーム２４に接続されている。アーム部２０は、制御部１００の制御によって、各フレーム２１〜２５が各回転屈折軸を中心に複合的に回転または屈折し、動く。
【００３６】
アーム部２０の第５フレーム２５のうち第４フレーム２４が設けられた他方には、エンドエフェクター４０が設けられている。エンドエフェクター４０は、直接的に、ドライバーユニット５０を把持する。なお、エンドエフェクター４０は、例えば、複数のフレームを有し、ドライバーユニット５０を把持できる構造である。
【００３７】
アーム部２０の第５フレーム２５とエンドエフェクター４０の間には、力センサー３０が介挿されている。力センサー３０は、アーム２のエンドエフェクター４０に加わる力の各空間成分（力成分という）とトルクの各空間成分（トルク成分という）を検出する。力センサー３０は、検出したアーム２のエンドエフェクター４０に加わる力成分とトルク成分を含む情報を制御部１００に出力する。
【００３８】
ドライバーユニット５０（ドライバーともいう）は、電動ドライバーである。ドライバーユニット５０は、ドライバービット５１を備え、ドライバービット５１の係合部５２（以下、ドライバーユニット５０の係合部５２という）は、磁化されている。
【００３９】
撮像装置６０は、ロボット１と同様に、床に対して水平に設置されている。撮像装置６０は、例えばＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）カメラである。撮像装置６０は、ドライバーユニット５０の係合部５２に吸着されたねじ２１１を撮影し、撮影したアナログ値の画像データを制御装置１００に出力する。
【００４０】
制御部１００は、ロボット１のアーム部２０、エンドエフェクター４０を後述するように制御する。また、制御部１００は、撮像装置６０が出力した画像データに基づき、後述するようにドライバーユニット５０の係合部５２に吸着されたねじ２１１が正しく嵌合しているか否かを判別する。制御部１００は、判別結果に基づき、ドライバーユニット５０の係合部５２に吸着されたねじ２１１が正しく嵌合している場合、ねじ２１１を、ねじ締めを行う対象物のねじ穴に締め付けるようにドライバーユニット５０を制御する。
【００４１】
図２は、本実施形態に係るアーム部２０と力センサー３０の概念図である。
図２に示すように、アーム２のアーム部２０は、回転部８２、８３及び８５と、屈折部８１、８４及び８６とを有している。そして、アーム２のアーム部２０は、エンドエフェクター４０との間に力センサー３０を有している。
【００４２】
屈折部８１は、固定部１０と第１フレーム２１との間に設けられている。回転部８２は、第１フレーム２１と第２フレーム２２との間に設けられている。回転部８３は、第２フレーム２２と第３フレーム２３との間に設けられている。屈折部８４は、第３フレーム２３と第４フレーム２４との間に設けられている。回転部８５は、第４フレーム２４と第５フレーム２５との間に設けられている。屈折部８６は、第５フレーム２５のうち第４フレーム２４が設けられた他方に設けられている。
【００４３】
図２に示すように、アーム部２０は、６自由度を有する６軸アームである。すなわち、アーム部２０の先端のエンドエフェクター４０は、これらの各軸の回転部と屈折部の動作により、移動する。そして、エンドエフェクター４０がドライバーユニット５０を把持している場合、力センサー３０が検出した外力には、このような各軸の回転部と屈折部の動作による成分が含まれている。このため、アーム部２０が６軸アームであるため、６つの変数で制御することが可能であり、例えば、位置（ｘ、ｙ、ｚ）の３つの変数（成分）、姿勢を表す角度（α、β、γ）の３つの成分（変数）に対応して制御することができる。
【００４４】
図３は、本実施形態に係る制御部１００のブロック図である。
図３に示すように、制御部１００は、画像取得部１０１、ねじ姿勢判別部１０２、センサー出力取得部１０３、アーム制御部１０４、駆動部１０５、記憶部１０６を備えている。
【００４５】
画像取得部１０１は、撮像装置６０が出力する画像データを取得し、取得した画像データをデジタルデータに変換する。画像取得部１０１は、変換した画像データを、ねじ姿勢判別部１０２に出力する。なお、撮像装置６０が出力する画像データがデジタル値の場合、画像取得部１０１は、取得した画像データを変換せずにそのままねじ姿勢判別部１０２に出力する。
【００４６】
ねじ姿勢判別部１０２は、記憶部１０６に記憶されているテンプレートマッチングを行うための画像データを読み出す。ねじ姿勢判別部１０２は、画像取得部１０１が出力した画像データと、記憶部１０６から読み出したテンプレートマッチングを行うための画像データとを用いて、公知のテンプレートマッチングを行う。ねじ姿勢判別部１０２は、テンプレートマッチングにより、ドライバーユニット５０の先端５２に、ねじ２１１が正しい姿勢で取り付けられているか否かを判別する。ねじ姿勢判別部１０２は、判別結果をアーム制御部１０４に出力する。なお、ドライバーユニット５０の先端５２に、ねじ２１１が正しい姿勢で取り付けられているとは、後述するように、ドライバーユニット５０の係合部５２とねじ２１１が、かみ合っている（嵌合している）状態である。
【００４７】
センサー出力取得部１０３は、力センサー３０が出力するアーム２のエンドエフェクター４０に加わる力成分とトルク成分を含む情報を取得し、取得した情報から力成分とトルク成分を抽出する。センサー出力取得部１０３は、抽出した力成分とトルク成分を示す情報をアーム制御部１０４に出力する。
【００４８】
アーム制御部１０４には、ねじ姿勢判別部１０２が出力する判別結果と、センサー出力取得部１０３が出力する力成分とトルク成分を示す情報とが入力される。アーム制御部１０４は、記憶部１０６に予め記憶されている制御情報を読み出す。アーム制御部１０４は、記憶部１０６から読み出した制御情報と、ねじ姿勢判別部１０２が出力する判別結果と、センサー出力取得部１０３が出力する力成分とトルク成分を示す情報とに基づき、後述するようにアーム部２０を制御する駆動信号を生成する。アーム制御部１０４は、生成した駆動信号を駆動部１０５に出力する。
【００４９】
駆動部１０５は、アーム制御部１０４が出力する駆動信号に応じて、ロボット１のアーム部２０を駆動する。
【００５０】
記憶部１０６には、テンプレートマッチングを行うための画像データと、ロボット１の制御情報とが予め記憶されている。また、記憶部１０６に記憶されているテンプレートマッチングを行うための画像データは、例えば、ねじ２１１の長さや重さ毎に、予め記憶しておくようにしてもよい。記憶部１０６に記憶されているテンプレートマッチングを行うための画像データは、後述するように、ドライバーユニット５０を所定の角度で傾けた場合のドライバーユニット５０の係合部５２とねじ２１１が正しく嵌合している状態の画像データである。あるいは、記憶部１０６に記憶されているテンプレートマッチングを行うための画像データは、ドライバーユニット５０を所定の角度で傾けた場合のドライバーユニット５０の係合部５２とねじ２１１の頭部頂面の溝または穴とが正しく嵌合していない状態の画像データである。
【００５１】
次に、ドライバーユニット５０の係合部５２にねじ２１１を取り付け、ねじ締めを行うまでの動作を、図４〜図１０を用いて説明する。
図４は、本実施形態に係るドライバーユニット５０の先端にねじ２１１を取り付け、ねじ締めを行うまでの動作のフローチャートである。
図５は、本実施形態に係るドライバーユニット５０の先端にねじ２１１を嵌合させる動作を説明する図である。図５（ａ）は、ドライバーユニットがｙ軸の高さｈ０の初期状態にある場合を説明する図である。図５（ｂ）は、ドライバーユニットがｙ軸の高さｈ１にある場合を説明する図である。図５（ｃ）は、ドライバーユニットがｙ軸の高さｈ２にある場合を説明する図である。
【００５２】
図６は、本実施形態に係るねじ２１１をねじ自動供給機の取り出し部のレール２０１から引き抜く動作を説明する図である。図７は、本実施形態に係るねじ２１１を引き抜いた方向と同方向にねじ締めを行う対象部３０１まで移動させる動作を説明する図である。また、図７において、一点破線で示したエンドエフェクター４０、ドライバーユニット５０、ドライバーユニット５０の係合部５２、および、ねじ２１１は、各位置−ｘ２、−ｘ３のドライバーユニット５０の係合部５２とねじ２１１の嵌合状態を表している。また、位置−ｘ２は位置−ｘ１より負方向であり、位置−ｘ３は位置−ｘ２より負方向である。
図８は、本実施形態に係るねじ２１１を引き抜いた方向と逆方向にねじ締めを行う対象部３０１まで移動させる動作を説明する図である。また、図８において、一点破線で示したエンドエフェクター４０、ドライバーユニット５０、ドライバーユニット５０の係合部５２、および、ねじ２１１は、各位置ｘ１１、ｘ１２、ｘ１３のドライバーユニット５０の係合部５２とねじ２１１の嵌合状態を表している。また、位置ｘ１１は位置−ｘ１より正方向であり、位置ｘ１２は位置ｘ１１より正方向であり、位置ｘ１３は位置ｘ１２より正方向である。
【００５３】
（ステップＳ１０１）
制御部１００のアーム制御部１０４は、記憶部１０６に予め記憶されているねじ締めの制御情報を読み出す。アーム制御部１０４は、読み出したねじ締めの制御情報に基づき、ドライバーユニット５０の駆動信号を生成し、生成した駆動信号を駆動部１０５に出力する。駆動部１０５は、アーム制御部１０４が出力する駆動信号に基づき、ドライバーユニット５０を、図５（ａ）〜図５（ｂ）のように、高さｈ０からｈ１に降下させる。すなわち、制御部１００は、ドライバーユニット５０の係合部５２を、ねじ自動供給機の取り出し部のレール２０１に向けて、ｙ軸負方向に移動させる。
以下、記憶部１０６から読み出したねじ締めの制御情報に基づき、アーム制御部１０４がドライバーユニット５０の駆動信号を生成し、生成した駆動信号を駆動部１０５に出力し、駆動部１０５が駆動信号に基づき、ドライバーユニット５０を駆動させる一連の動作を制御部１００が制御するとして説明する。ステップＳ１０１終了後、ステップＳ１０２に進む。
【００５４】
（ステップＳ１０２）
次に、制御部１００は、図５（ｃ）のように、アーム部２０を所定の回転数で回転させながら、ドライバーユニット５０の係合部５２をねじ自動供給機の取り出し部のレール２０１上に配置されたねじ２１１の先端に押し付けるように制御する。この場合、制御部１００は、係合部５２をねじ２１１の先端に押し付けた場合に、ドライバーユニット５０のドライバービット５１を回転させないトルクで押しつける。ドライバービット５１を回転させないトルクは、予め実験により、あるいはドライバーユニット５０の仕様に基づき算出する。あるいは、制御部１００は、ドライバーユニット５０を回転させずに降下させ、係合部５２をねじ２１１の先端に押し付けた場合に、ドライバーユニット５０のドライバービット５１を回転させるトルクで押しつけるようにしてもよい。ドライバービット５１を回転させるトルクは、予め実験により、あるいはドライバーユニット５０の仕様に基づき算出する。
アーム部２０を回転させながら、ねじ２１１の先端に押しつけるように降下させる理由は、ドライバーユニット５０の先端の凸部の形状と、ねじの凹部の形状とが嵌合し、正しく取り付けが行われるようにするためである。
この場合、制御部１００のセンサー出力取得部１０３は、力センサー４０が出力する力に関する情報を取得し、取得した力に関する情報をアーム制御部１０４に出力する。アーム制御部１０４は、センサー出力取得部１０３が出力する力に関する情報に基づき、ドライバーユニット５０の先端凸部を、ねじ２１１の凹部に押しつけるように駆動するための駆動信号を生成する。
この結果、制御部１００が、アーム部２０の先端に発生する力を制御し、ドライバーユニット５０の先端部を一定以上の力でねじに押し付ける。このように、ドライバーユニット５０の先端部を回転させることで、ドライバーユニット５０の先端の凸部の形状とねじの凹部の形状とが嵌合し、正しく取り付けが行われる。ステップＳ１０１終了後、ステップＳ１０２に進む。
【００５５】
（ステップＳ１０３）
次に、制御部１００は、駆動信号がねじ自動供給機の取り出し部のレール２０１からねじ２１１を引く抜く方向と、ねじ２１１を取り付ける対象までの移動方向が同じ方向に駆動する信号であるか否かを判別する。
ねじ自動供給機の取り出し部のレール２０１からねじ２１１を引く抜く方向と、ねじ２１１を取り付ける対象までの移動方向が同じ方向に駆動する信号である場合（ステップＳ１０３；Ｙｅｓ）、ステップＳ１０４に進む。ねじ自動供給機の取り出し部のレール２０１からねじ２１１を引く抜く方向と、ねじ２１１を取り付ける対象までの移動方向が同じ方向に駆動する信号でない場合（ステップＳ１０３；Ｎｏ）、ステップＳ１０７に進む。
【００５６】
（ステップＳ１０４）
ステップＳ１０４〜Ｓ１０６について、図６と図７を用いて説明する。
次に、図６のように、制御部１００は、アーム部２０を制御して、位置ｘ０から位置−ｘ１へ、ｘ軸負方向にねじ２１１をねじ自動供給機の取り出し部のレール２０１から引き抜く。この動作により、ねじ２１１は、ねじ自動供給機の取り出し部のレール２０１から抜けて自由な状態になる。
次に、図７のように、位置−ｘ１において、制御部１００は、アーム部２０を制御して、ドライバーユニット５０を、ねじを引き抜いた方向と同方向のｘ軸負方向に所定の加速度で加速（第１の所定の加速度）して、ドライバーユニット５０のねじ締めを行うｘ軸負方向の位置への移動を開始させる。ステップＳ１０４終了後、ステップＳ１０５に進む。
【００５７】
また、ドライバーユニット５０の係合部５２が鉛直下向きであることが望ましく、慣性力ｆ１に加えて、ねじ２１１にはたらく重力により、ねじ２１１はドライバーユニット５０の係合部５２に誘導され、正しく嵌合する。
また、ドライバーユニット５０が加速されるため、ねじ２１１に対してドライバーユニット５０の移動とは反対方向に慣性力ｆ１が働く。この時ドライバーユニット５０の先端とねじ２１１との間には互いに引き付けあう磁力が働いていているため、ねじ２１１が運動しようとする方向と反対方向に、ドライバーユニット５０とねじ２１１との間の摩擦力ｆ２がはたらく。
なお、ステップＳ１０２において、ねじ２１１がドライバーユニット５０の係合部５２に正しく嵌合されていた場合、ドライバーユニット５０の係合部５２の凸部の形状とねじ２１１の凹部の形状とが嵌合していている。このため、磁力による摩擦力ｆ２に加えて、ドライバーユニット５０の係合部５２とねじ２１１の頭部頂面の溝または穴とによる摩擦力が加わるので、この場合の摩擦力は摩擦力ｆ２より大きくなる。この結果、上述の慣性力ｆ１が摩擦力ｆ２より大きくならず、ねじ２１１がドライバーユニット５０に対して運動しないため、その位置が変わらない。
【００５８】
（ステップＳ１０５）
次に、位置−ｘ２において、制御部１００は、アーム部２０を制御して、ドライバーユニット５０の係合部５２を等速でｘ軸負方向に移動させ、ドライバーユニット５０を、ねじ締めを行う位置へ近づける。
なお、ドライバーユニット５０の等速は、ねじ２１１の長さ、大きさ、重さ、ねじ２１１の頭部頂面の溝または穴の凹部の形状、ねじ２１１の頭部頂面の溝または穴の凹部の深さなどに応じて、予め実験により求めるようにしてもよい。なお、等速は、例えば、ねじ２１１が、Ｍ３の長さ１０［ｍｍ］の場合、０．８［ｍ／ｓｅｃ］である。ステップＳ１０５終了後、ステップＳ１０６に進む。
【００５９】
（ステップＳ１０６）
次に、位置−ｘ３において、制御部１００は、アーム部２０を制御して、ドライバーユニット５０の係合部５２を急減速させて、ドライバーユニット５０を、ねじ締めを行う位置で、所定の加速度で急減速（第２の所定の加速度）して停止させる。
また、ドライバーユニット５０が急減速されるため、位置−ｘ３において、ねじ２１１に対してドライバーユニット５０の移動とは同じ方向に慣性力ｆ３が働く。
また、ドライバーユニット５０の係合部５２とねじ２１１との間には互いに引き付けあう磁力がはたらいているため、ねじ２１１が運動しようとする方向と反対方向に、ドライバーユニット５０とねじ２１１との間の摩擦力ｆ４がはたらく。
従って、上述の慣性力ｆ３が摩擦力ｆ４よりも大きくなるようにドライバーユニット５０を急減速させることで、ねじ２１１がドライバーユニット５０に対して運動する。
ステップＳ１０２において、ねじ２１１がドライバーユニット５０の係合部５２に正しく取り付けられていなかった場合でも、急減速により、ねじ２１１が、位置ｘ１の状態から位置ｘ４の状態のように、ドライバーユニット５０の係合部５２の凸部の形状とねじの頭部頂面の溝または穴の凹部の形状とが嵌合する位置に誘導され、正しく嵌合する。
【００６０】
また、ドライバーユニット５０の係合部５２が鉛直下向きであることが望ましく、慣性力ｆ３に加えて、ねじ２１１に働く重力により、ねじ２１１はドライバーユニット５０の下端に誘導され、正しく嵌合する。
なお、ステップ１０２において、ねじ２１１がドライバーユニット５０の係合部５２に正しく嵌合していた場合、ドライバーユニット５０の係合部５２の凸部の形状と、ねじ２１１の頭部頂面の溝または穴の凹部の形状とが嵌合している。このため、磁力による摩擦力ｆ４に加えて、ドライバーユニット５０の係合部５２とねじ２１１の頭部頂面の溝または穴とによる摩擦力が加わるので、この場合の摩擦力は摩擦力ｆ４より大きくなる。この結果、上述の慣性力ｆ３が摩擦力ｆ４より大きくならず、ねじ２１１がドライバーユニット５０に対して運動しないため、その位置が変わらない（ずれない）。
【００６１】
なお、ドライバーユニット５０を急減速させる際の加速度は、ドライバーユニット５０にねじ２１１を正しく取り付けて減速させた時にねじ２１１が運動せず、ねじ２１１を正しく取り付けていない時にねじ２１１が運動する値を、ロボット１の設計者かロボット１の制御情報の設計者が予め実験的に求める。または、ドライバーユニット５０を急減速させる際の加速度は、ドライバーユニット５０とねじ２１１の間にはたらく磁力及びそれらの間の摩擦係数、ねじ２１１の質量などから理論的に求めても良い。なお、急加速させる場合の加速度とは、例えば、ねじ２１１が、Ｍ３の長さ１０［ｍｍ］の場合、１１［ｍ／ｓｅｃ２］である。ステップＳ１０６終了後、ステップＳ１１０に進む。
【００６２】
（ステップＳ１０７）
ステップＳ１０７〜Ｓ１０９について、図６と図８を用いて説明する。
次に、図６のように、制御部１００は、アーム部２０を制御して、位置ｘ０から位置−ｘ１へ、ｘ軸負方向にねじ２１１をねじ自動供給機の取り出し部のレール２０１から引き抜く。この動作により、ねじ２１１は、ねじ自動供給機の取り出し部のレール２０１から抜けて自由な状態になる。
次に、図８のように、位置−ｘ１において、制御部１００は、アーム部２０を制御して、ドライバーユニット５０を、高さｈ２からｈ３に上昇させる。すなわち、制御部１００は、ドライバーユニット５０の係合部５２を、ねじ２１１がねじ自動供給機の取り出し部のレール２０１にぶつからないように、ｘ軸正方向に移動させる。
上昇後、位置−ｘ１において、制御部１００は、アーム部２０を制御して、ドライバーユニット５０を、ねじを引き抜いた方向と逆方向のｘ軸正方向に所定の加速度で急加速（第１の所定の加速度）して、ドライバーユニット５０のねじ締めを行うｘ軸正方向の位置への移動を開始させる。図８において、位置ｘ１１の図は、急加速により、ねじ２１１の姿勢が変化した後の図である。ステップＳ１０７終了後、ステップＳ１０８に進む。
【００６３】
また、ドライバーユニット５０が急加速されるため、ねじ２１１に対してドライバーユニット５０の移動とは反対方向に慣性力ｆ５が働く。また、この時ドライバーユニット５０の先端とねじ２１１との間には互いに引き付けあう磁力が働いていているため、ねじ２１１が運動しようとする方向と反対方向に、ドライバーユニット５０とねじ２１１との間の摩擦力ｆ６がはたらく。
従って、制御部１００は、上述の慣性力ｆ５が摩擦力ｆ６よりも大きくなるようにドライバーユニット５０を急加速させることで、ねじ２１１がドライバーユニット５０に対して運動する。
【００６４】
なお、ドライバーユニット５０を急加速させる際の加速度は、ドライバーユニット５０にねじ２１１を正しく嵌合させ、急加速させた場合にねじ２１１が運動せず、ねじ２１１を正しく嵌合されていない時にねじ２１１が運動する値を、ロボット１の設計者かロボット１の制御情報の設計者が実験的に求める。または、ドライバーユニット５０とねじ２１１の間に働く磁力及びそれらの間の摩擦係数、ねじの質量などから理論的に求めても良い。なお、急加速させる場合の加速度とは、例えば、ねじ２１１が、Ｍ３の長さ１０［ｍｍ］の場合、１１［ｍ／ｓｅｃ２］である。
【００６５】
また、ステップＳ１０２において、ねじ２１１がドライバーユニット５０の係合部５２に正しく嵌合されていた場合、ドライバーユニット５０の係合部５２の凸部の形状とねじ２１１の凹部の形状とが嵌合していている。このため、磁力による摩擦力ｆ６に加えて、ドライバーユニット５０の係合部５２とねじ２１１の頭部頂面の溝または穴とによる摩擦力が加わるので、この場合の摩擦力は摩擦力ｆ６より大きくなる。この結果、上述の慣性力ｆ５が摩擦力ｆ６より大きくならず、ねじ２１１がドライバーユニット５０に対して運動しないため、その位置が変わらない。
【００６６】
（ステップＳ１０８）
次に、位置ｘ１２において、制御部１００は、アーム部２０を制御して、ドライバーユニット５０の係合部５２を等速で移動させ、ドライバーユニット５０を、ねじ締めを行う位置へ近づける。
なお、ドライバーユニット５０の等速は、ねじ２１１の長さ、大きさ、重さ、ねじ２１１の頭部頂面の溝または穴の凹部の形状、ねじ２１１の頭部頂面の溝または穴の凹部の深さなどに応じて、予め実験により求めるようにしてもよい。なお、等速は、例えば、ねじ２１１が、Ｍ３の長さ１０［ｍｍ］の場合、０．８［ｍ／ｓｅｃ］である。ステップＳ１０８終了後、ステップＳ１０９に進む。
【００６７】
（ステップＳ１０９）
次に、位置ｘ１３において、制御部１００は、アーム部２０を制御して、ドライバーユニット５０の係合部５２を減速させて、ドライバーユニット５０を、ねじ締めを行う位置で、所定の加速度で減速（第２の所定の加速度）して停止させる。
【００６８】
位置ｘ１３において、ドライバーユニット５０が減速され、ねじ２１１に対してドライバーユニット５０の移動とは同じ方向に慣性力ｆ７が働く。
また、ドライバーユニット５０の係合部５２とねじ２１１との間には互いに引き付けあう磁力がはたらいているため、ねじ２１１が運動しようとする方向と反対方向に、ドライバーユニット５０とねじ２１１との間の摩擦力ｆ８がはたらく。
ステップ１０２において、ねじ２１１がドライバーユニット５０の係合部５２に正しく嵌合していた場合、ドライバーユニット５０の係合部５２の凸部の形状と、ねじ２１１の頭部頂面の溝または穴の凹部の形状とが嵌合している。このため、磁力による摩擦力ｆ８に加えて、ドライバーユニット５０の係合部５２とねじ２１１の頭部頂面の溝または穴とによる摩擦力が加わるので、この場合の摩擦力は摩擦力ｆ８より大きくなる。この結果、上述の慣性力ｆ７が摩擦力ｆ８より大きくならず、ねじ２１１がドライバーユニット５０に対して運動しないため、その位置が変わらない（ずれない）。ステップＳ１０９終了後、ステップＳ１１０に進む。
【００６９】
（ステップＳ１１０）
ねじ締めを行う位置上でドライバーユニット５０が停止した後、制御部１００は、ドライバーユニット５０をｘｙ平面で、図９（ｂ）、図９（ｃ）のように所定の角度θに傾ける。なお、所定の角度θとは、例えば、３０度や４５度であり、ねじ２１１が、ドライバーユニット５０の係合部５２に正しく嵌合してない場合に、ドライバーユニット５０を傾けることにより、ねじ１１の頭部頂面の溝または穴がドライバーユニット５０の係合部５２からずれる角度である。
図９は、本実施形態に係るドライバーユニット５０の係合部５２にねじ２１１が嵌合しているか否かを説明する図である。図９（ａ）は、ねじ締めを行う位置で停止させた場合のドライバーユニット５０の係合部５２とねじ２１１の嵌合状態を説明する図である。図９（ｂ）は、ドライバーユニット５０を角度θで傾けた場合、ねじ２１１が嵌合している状態を説明する図である。図９（ｃ）は、ドライバーユニット５０を角度θで傾けた場合、ねじ２１１が嵌合していない状態を説明する図である。
【００７０】
このように、ドライバーユニット５０を、姿勢を鉛直下向きではなく傾ける理由について説明する。ステップＳ１０２〜Ｓ１０５により、ねじ２１１がドライバーユニット５０の係合部５２に正しく取り付けられていた場合、ドライバーユニット５０を傾けることで、ドライバーユニット５０の係合部５２の凸部の形状とねじ２１１の頭部頂面の溝または穴の凹部の形状とが嵌合していて摩擦力ｆ９が大きくなる。この場合、ドライバーユニット５０の係合部５２とねじ２１１の頭部頂面の溝または穴とに働く摩擦力ｆ９は、ドライバーユニットの係合部５２による磁力に応じた摩擦力と、ドライバーユニット５０の係合部５２とねじ２１１の頭部頂面の溝または穴とに働く摩擦力との合力である。
この結果、ねじ２１１に作用する重力Ｇが摩擦力ｆ９より大きくならず、ねじ２１１がドライバーユニット５０の係合部５２に対して運動せず（ずれない）、図９（ｂ）のように、嵌合された位置が変わらない。すなわち、ドライバーユニット５０をｙ軸に対して角度θ傾けた場合、ねじ２１１もｙ軸に対して角度θで傾く。
【００７１】
一方、ねじ２１１がドライバーユニット５０の係合部５２に正しく取り付けられていない場合、ドライバーユニット５０の係合部５２と、ねじ２１１との間には磁力に応じた摩擦力ｆ１０のみが働く。この結果、ねじ２１１に生じる重力Ｇが摩擦力ｆ１０より大きくなり、ねじ２１１がドライバーユニット５０に対して運動し（ずれる）、図９（ｃ）のように嵌合された位置が、ねじ２１１の傾き角度θから、ねじ２１１’の角度θ以下、例えば０度に変化する。
図９（ｂ）と図９（ｃ）に示したように、ｙ軸に対して角度θで傾けることで、ねじ２１１が嵌合しているか否かが、画像データにおいて明確に分離する。このため、ステップＳ２０７で行う、ねじ姿勢判別のしきい値が設定しやすくなる効果がある。ステップＳ１１０終了後、ステップＳ１１１に進む。
【００７２】
（ステップＳ１１１）
制御部１００の画像取得部１０１は、撮像装置６０が出力した画像データを取得し、取得した画像データをデジタルデータに変換する。画像取得部１０１は、変換した画像データを、ねじ姿勢判別部１０２に出力する。
ねじ姿勢判別部１０２は、画像取得部１０１が出力する画像データから、公知のテンプレートマッチングなどにより、ドライバーユニット５０の係合部５２に、ねじ２１１が正しい姿勢で取り付けられているか否かを判別する。ねじ２１１が正しい姿勢で取り付けられている場合（ステップＳ１１１；Ｙｅｓ）、ステップＳ１１２に進む。ねじ２１１が正しい姿勢で取り付けられていない場合（ステップＳ１１１；Ｎｏ）、ステップＳ１１４に進む。
【００７３】
例えば、予めドライバーユニット５０の係合部５２にねじ２１１を正しく取り付けて撮影した画像データをテンプレート画像データとして、ロボット１の設計者かロボット１の制御情報の設計者が、予め記憶部１０６に記憶させておく。そして、ねじ姿勢判別部１０２は、テンプレートマッチング法により、記憶されているテンプレート画像データと、画像取得部１０１が出力した画像データとの類似度を算出する。ねじ姿勢判別部１０２は、算出した類似度の値の大小に応じて、ドライバーユニット５０の係合部５２に、ねじ２１１が正しい姿勢で嵌合しているか否かを判別する。
ねじ姿勢判別部１０２は、ドライバーユニット５０の係合部５２とねじ２１１とのずれ量が、ねじ締めにおいて許容される程度のずれである場合の類似度を予め実験的に求めて、その値をしきい値として設定しておく。そして、ねじ姿勢判別部１０２は、算出した類似度が、予め設定されているしきい値以上である場合は良、それ未満である場合は否と判別する。
【００７４】
このように、ドライバーユニット５０の係合部５２に嵌合しているねじ２１１を、撮像装置６０で撮影する場合、ドライバーユニット５０の姿勢を傾けることで、テンプレートとの類似度が二極化される。この結果、ねじ姿勢判別部１０２は良否判別を明確に行うことが可能となる。
なお、嵌合の良否判定は上述の方法に限られるものではなく、例えばエッジ抽出法などを用いてドライバーユニット５０の係合部５２とねじ２１１との関係を幾何学的に表し、それを用いて良否判定を行っても良い。この場合も、ドライバーユニット５０の係合部５２に嵌合されているねじ２１１を撮像装置６０で撮影する際に、ドライバーユニット５０の姿勢を傾けることで、これらの幾何学的な関係が二極化され、良否判別を明確に行うことが可能となる。
【００７５】
（ステップＳ１１２）
次に、制御部１００は、ドライバーユニット５０をｙ軸に対して傾きの無い状態（図１０（ａ））に戻す。ステップＳ１１２終了後、ステップＳ１１３に進む。
図１０は、本実施形態に係るねじ２１１の締め付け動作を説明する図である。図１０（ａ）は、急減速後にドライバーユニット５０を元の傾きに戻す動作を説明する図である。
図１０（ｂ）は、ねじ２１１を、ねじ締めを行う対象物３０１のねじ穴３１１に押しつける動作を説明する図である。
【００７６】
（ステップＳ１１３）
次に、制御部１００は、アーム部２０が把持するドライバーユニット５０をｙ軸負方向に移動させて、ねじ２１１を、ねじ締めを行う対象物３０１のねじ穴３１１に押し付ける。押しつけることで、電動ドライバーには、ドライバーユニット５０の係合部５２を回転させるトルクが発生する。このため、制御部１００は、ドライバーユニット５０の係合部５２に嵌合しているねじ２１１をねじ穴３１１に押しつけることで、ねじ締めを行う。
【００７７】
（ステップＳ１１４）
ステップＳ１１１でねじ２１１がドライバーユニット５０の係合部５２と正しく嵌合していない場合、制御部１００は、ドライバーユニット５０の係合部５２よりも大きな磁力を発生させる物体に吸着されているねじ２１１を近づけて、ねじ２１１を取り外す。ねじ２１１を取り外した後、ステップＳ１０１に戻る。
また、ねじ２１１を取り外す方法は上述の方法に限られるものではなく、例えばアーム部２０の先端を急加速又は急減速させて、ねじ２１１にはたらく慣性力が、ねじ２１１とドライバーユニット５０との間にはたらく摩擦力よりも大きくすることで、ねじ２１１を取り外してもよい。あるいは、制御部１００は、ステップＳ１０２〜Ｓ１０９の間、ドライバーユニット５０の係合部５２を磁化し、ステップＳ１１０のとき、ドライバーユニット５０の係合部５２を消磁することで、ねじ２１１を取り外すようにしてもよい。
【００７８】
図１１は、本実施形態に係るドライバーユニット５０の移動中の速度と加速度の一例を説明する図である。図１１（ａ）は、ドライバーユニット５０の移動中の速度の一例を説明する図である。図１１（ｂ）は、ドライバーユニット５０の移動中の加速度の一例を説明する図である。図１１（ａ）において、横軸は時間、縦軸は速度であり、符号ｇ１０１は、時間に対する速度の変化である。また、図１１（ｂ）において、横軸は時間、縦軸は加速度、符号ｇ１０２−１は、時刻ｔ２〜ｔ３における加速度を表し、符号ｇ１０２−２は、時刻ｔ４〜ｔ５における加速度を表している。
図１１（ａ）と図１１（ｂ）に示すように、時刻ｔ１〜ｔ２の期間、ドライバーユニット５０の速度は０である。この状態は、図５（ａ）〜図５（ｃ）に示した動作中であり、ｘ軸方向の速度が０である（図４のステップＳ１０１〜Ｓ１０２）。
図１１（ａ）に示すように、時刻ｔ２〜ｔ３の期間、ドライバーユニット５０の速度は、速度０から速度Ｖ１に向けて緩やかに増加する。（図４のステップＳ１０４）。そして、図１１（ｂ）に示すように、時刻ｔ２〜ｔ３の期間、加速度は、符号ｇ１０２−１のように正の加速度である。
図１１（ａ）と図１１（ｂ）に示すように、時刻ｔ３〜ｔ４の期間、ドライバーユニット５０の速度は、速度Ｖ１の等速である（図４のステップＳ１０５）。
図１１（ａ）に示すように、時刻ｔ４〜ｔ５の期間、ドライバーユニット５０の速度は、速度Ｖ１から速度０に向けて急激に減少する（図４のステップＳ１０６）。そして、図１１（ｂ）に示すように、時刻ｔ４〜ｔ５の期間、加速度は、符号ｇ１０２−２のように負の加速度である。
【００７９】
図１２は、本実施形態に係るドライバーユニット５０の係合部５２にねじ２１１が正しく嵌合している一例を説明する図である。図１３は、本実施形態に係るドライバーユニット５０の係合部５２にねじ２１１が正しく嵌合していない一例を説明する図である。
図１２に示すように、ドライバーユニット５０の係合部５２と、ねじ２１１が正しく嵌合している場合、ドライバーユニット５０をｙ軸に対して角度θ傾けると、ねじ２１１もｙ軸に対して角度θ傾く。
一方、図１３に示すように、ドライバーユニット５０の係合部５２と、ねじ２１１が正しく嵌合していない場合、ドライバーユニット５０をｙ軸に対して角度θ傾けると、ねじ２１１は、重力によりｙ軸負方向へ垂れたがる。例えば、図１３に示すように、ねじ２１１は、ｙ軸に対して角度−θ２１１傾く、この場合、ねじ２１１は、図１３に示すように、ドライバーユニット５０の係合部５２と磁力によりくっついていて、ねじ２１１の傾き角度は、ドライバーユニット５０の係合部５２のどこに接触しているかに左右される。
このように、ねじ２１１が、ドライバーユニット５０の係合部５２に正しく嵌合しているか否かを、ドライバーユニット５０を傾けることで、明確に分離することができる。なお、ねじ２１１が、ドライバーユニット５０の係合部５２に正しく嵌合しているか否かの判別を行う角度は、予めねじ締めを行うドライバーユニット５０と、ねじ２１１を用いて実測により設定するようにしてもよい。
【００８０】
以上のように、制御部１００は、ドライバー５０の磁化されている係合部５２を、ねじ２１１の頭部頂面の穴に押しつける。その後、制御部１００は、ドライバーユニット５０を、ドライバーユニット５０の移動とは反対方向に働く慣性力が、ドライバーユニット５０とねじ２１１との間に働く摩擦力ｆ２よりも大きくなるようにドライバーユニット５０を急加速して移動させる。このため、ドライバー５０の係合部５２をねじ２１１の頭部頂面の穴に押しつけで正しく嵌合しなかった場合でも、急加速により、ねじ２１１がドライバーユニット５０の先端の凸部の形状とねじの凹部の形状とが嵌合する位置に誘導され、正しく嵌合する。この結果、汎用的なドライバーを用いてもドライバー５０の係合部５２とねじ２１１の頭部頂面の溝または穴とを正しく嵌合させることができる。
さらに、アーム部２０を急加速して移動させても、ドライバー５０の係合部５２とねじ２１１の頭部頂面の穴とが正しく嵌合しなかった場合でも、アーム部２０を急減速により、ねじ２１１がドライバーユニット５０の先端の凸部の形状とねじの凹部の形状とが嵌合する位置に誘導され、正しく嵌合する。この結果、汎用的なドライバーを用いてもドライバー５０の係合部５２とねじ２１１の頭部頂面の溝または穴とを正しく嵌合させることができる。
【００８１】
なお、本実施形態では、ドライバーユニット５０をｙ軸に対して角度θ傾けて、ドライバーユニット５０の係合部５２とねじ２１１とが正しく嵌合しているか否かを判別する例を説明した。しかしながら、用途に応じて、例えば、ねじ２１１の頭部の嵌合部の深さが浅い場合、ドライバーユニット５０をｙ軸に対して角度θ傾けずに、ドライバーユニット５０の係合部５２とねじ２１１とが正しく嵌合しているか否かを判別するようにしてもよい。この場合、記憶部１０６には、テンプレートマッチングを行うための画像データは、ドライバーユニット５０を傾けていない場合のドライバーユニット５０の係合部５２とねじ２１１が正しく嵌合している状態の画像データを記憶しておくようにしてもよい。あるいは、記憶部１０６には、テンプレートマッチングを行うための画像データは、ドライバーユニット５０を所定の角度で傾けていない場合のドライバーユニット５０の係合部５２とねじ２１１が正しく嵌合していない状態の画像データを記憶しておくようにしてもよい。
【００８２】
また、本実施形態では、図７、図８および図１１に示したように、ドライバーユニット５０を急加速した後に等速で移動させ、その後、急減速する例を説明したが、等速の移動は行わなくてもよい。あるいは、ドライバーユニット５０を急加速した後に等速で移動させるようにしてもよい。あるいは、ドライバーユニット５０を等速で移動させた後、急減速するようにして、急加速を行わないようにしてもよい。すなわち、ドライバーユニット５０を急加速か急減速のいずれか１つを行うようにしてもよい。
【００８３】
また、本実施形態では、ドライバーユニット５０を急加速した後に等速で移動させ、その後、急減速した後、画像データにより、ねじ姿勢の判別を行う例を説明した。しかしながら、ねじ姿勢の判別を行った後に、ドライバーユニット５０の係合部５２とねじ２１１が正しく嵌合していない場合に、制御部１００は、ドライバーユニット５０を再度、等速で移動させた後、急減速を行うようにしてもよい。この場合、ねじ姿勢の判別を行う位置は、ねじ２１１を締め付ける対象物３０１のねじ穴３１１の真上ではなく、その手前、もしくは、ねじ穴３１１より先の位置で行うようにしてもよい。または、ねじ姿勢の判別を行う位置は、ねじ２１１を締め付ける対象物３０１のねじ穴３１１の真上で、ねじ姿勢の判別を行う。判別後、ドライバーユニット５０の係合部５２とねじ２１１が正しく嵌合していない場合のみ、制御部１００は、ドライバーユニット５０を所定の距離だけ等速で移動させ、その後、ねじ２１１を締め付ける対象物３０１のねじ穴３１１の真上に戻すように制御し、戻すときに急減速を行うようにしてもよい。
【００８４】
また、本実施形態では、ドライバーユニット５０としてプラスドライバー、ねじ２１１としてプラス形状の穴を持つねじを例に説明したが、他のねじでも同様の効果が得られる。例えば、すりわり（マイナス）の溝を有するねじの場合、制御部１００のアーム制御部１０４は、撮像装置６０が撮像した画像データを用いて、ねじ自動供給機の取り出し部のレール２０１上のねじ２１１のねじ頭部頂面のすりわりの角度を抽出する。そして、アーム制御部１０４は、抽出したねじ２１１のねじ頭部頂面のすりわりの角度に基づき、ドライバーユニット５０の係合部５２の角度をねじ２１１のねじ頭部頂面のすりわりの角度に合わせるような回転速度に制御する駆動信号を生成する。このようにして、ドライバーユニット５０の係合部５２の角度をねじ２１１のねじ頭部頂面のすりわりの角度に合わせるように制御するようにしてもよい。また、ドライバーユニット５０の係合部５２の角度をねじ２１１のねじ頭部頂面のすりわりの角度に合わせる回転速度は、例えば実測により算出するようにしてもよい。
また、六角穴を有するねじの場合、ドライバーユニット５０のドライバービット５１に六角棒スパナを用いる。この場合においても、制御部１００は、ドライバーユニット５０の係合部５２の六角形をねじ２１１のねじ頭部頂面の六角形の形状に合わせるように制御するようにしてもよい。
【００８５】
［第２実施形態］
第１実施形態では、ねじ締め対象物３０１のねじ穴３１１が、ｙ軸の下方（負方向）にあり、ねじ穴３１１がｘ軸に対して垂直である例を説明した。ねじ２１１の取り付け方向は下方に限られるものではなく、任意の方向への取り付けが可能である。なお、任意の方向とは、例えば、図１５（ｂ）に示すように、ｙ軸に対して角度θ１傾いた状態である。
図１４は、本実施形態に係るドライバーユニット５０の先端にねじ２１１を取り付け、ねじ締めを行うまでの動作のフローチャートである。本実施形態に係る制御部１００のブロックは、第１実施形態で示した図３と同じである。
【００８６】
図１５は、本実施形態に係るねじ締め付け対象物３０１が傾いている場合のねじ２１１の締め付け動作を説明する図である。図１５（ａ）は、急減速後にドライバーユニット５０を元の傾きに戻す動作を説明する図である。図１５（ｂ）は、ねじ２１１を、ねじ締めを行う対象物３０１のねじ穴３１１に押しつける動作を説明する図である。
図１４に示すように、ステップＳ２０１〜Ｓ２０９、およびＳ２１３は、第１実施形態のステップＳ１０１〜Ｓ１０９、およびＳ１１４と同じため、説明を省略する。
【００８７】
（ステップＳ２１０）
ねじ締めを行う位置上でドライバーユニット５０が停止した後、制御部１００は、ドライバーユニット５０をｘｙ平面で、図１５（ａ）に示すように所定の角度θ１に傾ける。なお、所定の角度θ１とは、ねじ締めを行う対象物３０１のねじ穴３１１の傾きの角度θ１である。ステップＳ２１０終了後、ステップＳ２１１に進む。
【００８８】
（ステップＳ２１１）
制御部１００の画像取得部１０１は、撮像装置６０が出力した画像データを取得し、取得した画像データをデジタルデータに変換する。画像取得部１０１は、変換した画像データを、ねじ姿勢判別部１０２に出力する。
ねじ姿勢判別部１０２は、画像取得部１０１が出力した画像データから、公知のテンプレートマッチングなどにより、ドライバーユニット５０の係合部５２に、ねじ２１１が正しい姿勢で取り付けられているか否かを判別する。ねじ２１１が正しい姿勢で取り付けられている場合（ステップＳ２１１；Ｙｅｓ）、ステップＳ２１２に進む。ねじ２１１が正しい姿勢で取り付けられていない場合（ステップＳ２１１；Ｎｏ）、ステップＳ２１３に進む。
【００８９】
（ステップＳ２１２）
次に制御部１００は、ドライバーユニット５０をｙ軸方向のマイナス方向に移動させて、ねじ２１１を、ねじ締めを行う対象物３０１のねじ穴３１１に押し付ける。押しつけることで、電動ドライバーは、ドライバーユニット５０の係合部５２を回転させるトルクが発生する。このため、制御部１００は、ドライバーユニット５０の係合部５２に嵌合しているねじ２１１をねじ穴３１１に押しつけることで、ねじ締めを行う。
【００９０】
なお、ドライバーユニット５０の先端を角度θ１で傾けても、ねじ２１１が磁力による吸着力で、ずれない場合、この角度θ１より大きな角度に傾けて、ねじ２１１とドライバーユニット５０の係合部５２が正しく嵌合しているか否かを判別するようにしてもよい。そして、ねじ姿勢判別後、ドライバーユニット５０の傾きを角度θ１に戻すようにしてもよい。
【００９１】
以上のように、ドライバー５０の係合部５２とねじ２１１の頭部頂面の穴とが正しく嵌合しているか否かの判別を、ねじ２１１を取り付ける対象物３０１のねじ穴３１１の傾きの角度に傾けて行う。この結果、ねじ２１１を取り付ける対象物３０１のねじ穴３１１の実際の傾き角度で、ドライバーユニット５０の係合部５２とねじ２１１の頭部頂面の穴とが正しく嵌合しているかを確認できる効果がある。また、判別の結果、ドライバーユニット５０の係合部５２とねじ２１１の頭部頂面の穴とが正しく嵌合している場合、傾けたドライバーユニット５０の傾きを戻さずに、そのまま、ねじ２１１を、ねじを取り付ける対象物３０１のねじ穴３１１に締め付けることができる効果もある。
また、第１実施形態と同様に、ドライバーユニット５０の係合部５２にねじ２１１の頭部頂面を押しつけた後、ドライバーユニット５０を急加速、急減速により、ねじ２１１がドライバーユニット５０の先端の凸部の形状とねじの凹部の形状とが嵌合する位置に誘導され、正しく嵌合する。この結果、汎用的なドライバーを用いてもドライバー５０の係合部５２とねじ２１１の頭部頂面の溝または穴とを正しく嵌合させることができる。
【００９２】
［第３実施形態］
第１実施形態と第２実施形態では、ドライバーユニット５０として電動ドライバーを用いる例を説明したが、本実施形態では、ドライバーユニット５０としてドライバーを用いる例を説明する。
ロボット１の構成図は、図１と同じであり、ドライバーユニット５０は、ドライバーである。ドライバーユニット５０の係合部５２は、磁化されている。
【００９３】
図１６は、本実施形態に係るドライバーユニット５０の先端にねじ２１１を取り付け、ねじ締めを行うまでの動作のフローチャートである。
ステップＳ３０１〜Ｓ３１２、およびＳ３１５は、第１実施形態のステップＳ１０１〜Ｓ１１２、およびＳ１１４と同様に処理を行う。
【００９４】
（ステップＳ３１３）
制御部１００は、ドライバーユニット５０の係合部５２を、ねじ２１１を締め付ける回転方向に回転させながら、ｙ軸負方向に移動させる。ステップＳ３１３終了後、ステップＳ３１４に進む。
（ステップＳ３１４）
制御部１００のアーム制御部１０４は、ねじ２１１を、ねじ締めを行う対象物３０１のねじ穴３１１にねじ締めを行うように、ドライバーユニット５０をｙ軸負方向に移動且つｘｚ平面で回転させる。また、制御部１００は、力センサー３０が出力するアーム２のエンドエフェクター４０に加わる力成分とトルク成分を含む情報に基づき、ねじ２１１がねじ穴３１１にねじ締めが完了したか否かを判別する。ねじ締めが完了したと判別されるまで、アーム制御部１０４は、ねじ締めを行う駆動信号を生成し、生成した駆動信号を駆動部１０５に出力する。
【００９５】
なお、本実施形態では、第１実施形態と同様に、ねじ締め付け対象物３０１のねじ穴３１１が、ｘ軸に対して垂直な場合の例を説明したが、ねじ穴３１１が斜めの場合、ステップＳ３０１からＳ３１１までは、第２実施形態のステップＳ２０１〜Ｓ２１１と同様に行う。そして、ステップＳ３１２を行わずに、ステップＳ３１３を行うようにしてもよい。
【００９６】
以上のように、ドライバーユニット５０としてドライバーを使用した場合でも、第１実施形態と同様に、ドライバーユニット５０の係合部５２にねじ２１１の頭部頂面を押しつけた後、ドライバーユニット５０を急加速、急減速するようにしている。このため、ドライバー５０の係合部５２とねじ２１１の頭部頂面の穴とが正しく嵌合しなかった場合でも、アーム部２０を急加速または急減速により、ねじ２１１がドライバーユニット５０の先端の凸部の形状とねじの凹部の形状とが嵌合する位置に誘導され、正しく嵌合する。この結果、汎用的なドライバーを用いてもドライバー５０の係合部５２とねじ２１１の頭部頂面の溝または穴とを正しく嵌合させることができる。また、ドライバーユニット５０を傾けて、ドライバーユニット５０の係合部５２とねじ２１１の頭部頂面とが正しく嵌合しているか否かを判別しているので、ドライバー５０の係合部５２とねじ２１１の頭部頂面の穴とを正しく嵌合させることができる。
【００９７】
［第４実施形態］
第１実施形態と第２実施形態では、ドライバーユニット５０として電動ドライバーを用いる例、第３実施形態では、ドライバーユニット５０としてドライバーを用いる例を説明したが、ドライバーユニット５０は、用途に応じて、ロボット１が持ち替えるようにしてもよい。
図１７は、本実施形態に係るロボット１ａの概略構成を示す斜視図である。
図１７に示すように、ドライバーユニット５０ａ〜５０ｃは、ドライバーユニット置台８０にセットされている。
ドライバーユニット５０ａ〜５０ｃは、ドライバービット５１の形状が異なる電動ドライバーまたはドライバーである。
また、制御部１００の記憶部１０６には、ドライバーユニット５０ａ〜５０ｃごとのテンプレートマッチングを行うための画像データが予め記憶されている。
【００９８】
図１８は、本実施形態に係るロボット１ａの動作のフローチャートである。
（ステップＳ４０１）
制御部１００は、記憶部１０６に記憶されている制御情報に基づき、アーム部２０の先端を、ドライバーユニット置台８０へ移動する。
【００９９】
（ステップＳ４０２）
制御部１００は、記憶部１０６に記憶されている制御情報に基づき、ねじ締めを行う対象物のねじ穴に合わせたドライバーユニット５０ａ〜５０ｃのうち１つを選択して把持する。
【０１００】
（ステップＳ４０３）
制御部１００のねじ姿勢判別部１０２は、把持したドライバーユニット５０ａ〜５０ｃに応じたテンプレートマッチングを行うための画像データを読み出す。
以下、ステップＳ４０４〜Ｓ４１７は、第１実施形態のステップＳ１０１〜Ｓ１１４と同様である。
【０１０１】
なお、本実施形態では、第１実施形態と同様に、ねじ締め付け対象物３０１のねじ穴３１１が、ｘ軸に対して垂直な場合の例を説明したが、ねじ穴３１１が斜めの場合、ステップＳ４０４〜Ｓ４１４は、第２実施形態のステップＳ２０１〜Ｓ２１１と同様に行う。そして、ステップＳ４１５を行わずに、ステップＳ４１６を行うようにしてもよい。
【０１０２】
以上のように、ドライバーユニット５０としてドライバーをねじ２１１に応じて持ち替えたでも、第１実施形態と同様に、ドライバーユニット５０の係合部５２にねじ２１１の頭部頂面を押しつけた後、ドライバーユニット５０を急加速、急減速により、ねじ２１１がドライバーユニット５０の先端の凸部の形状とねじの凹部の形状とが嵌合する位置に誘導され、正しく嵌合する。この結果、汎用的なドライバーを用いてもドライバー５０の係合部５２とねじ２１１の頭部頂面の溝または穴とを正しく嵌合させることができる。また、ドライバーユニット５０を傾けて、ドライバーユニット５０の係合部５２とねじ２１１の頭部頂面とが正しく嵌合しているか否かを判別しているので、ドライバー５０の係合部５２とねじ２１１の頭部頂面の穴とを正しく嵌合させることができる。
【０１０３】
なお、実施形態の図３の制御部の各部の機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピューターシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ等の可搬媒体、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）  Ｉ／Ｆ（インタフェース）を介して接続されるＵＳＢメモリー、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、サーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【符号の説明】
【０１０４】
１、１ａ・・・ロボット  ２・・・アーム  １０・・・固定部  ２０・・・アーム部
３０・・・力センサー  ４０・・・エンドエフェクター  
５０・・・ドライバーユニット  ５１・・・ドライバービット
５２・・・係合部  ６０・・・撮像装置  
８０・・・ドライバーユニット基台
８２、８３、８５・・・回転部
８１、８４、８６・・・屈折部
１００・・・制御部  １０１・・・画像取得部  １０２・・・ねじ姿勢判別部
１０３・・・センサー出力取得部  １０４・・・アーム制御部
１０５・・・駆動部  １０６・・・記憶部
２０１・・・ねじ  ２０１・・・ねじ自動供給機の取り出し部のレール
３０１・・・対象部  ３１１・・・ねじ穴
θ、θ１・・・ドライバーユニットの傾け角度
【図１】
0005895346.tif 000002
【図２】
0005895346.tif 000003
【図３】
0005895346.tif 000004
【図４】
0005895346.tif 000005
【図５】
0005895346.tif 000006
【図６】
0005895346.tif 000007
【図７】
0005895346.tif 000008
【図８】
0005895346.tif 000009
【図９】
0005895346.tif 000010
【図１０】
0005895346.tif 000011
【図１１】
0005895346.tif 000012
【図１２】
0005895346.tif 000013
【図１３】
0005895346.tif 000014
【図１４】
0005895346.tif 000015
【図１５】
0005895346.tif 000016
【図１６】
0005895346.tif 000017
【図１７】
0005895346.tif 000018
【図１８】
0005895346.tif 000019