(57)【特許請求の範囲】
【請求項１】
把持部を有するロボットであって、
第１の点における把持物を把持しない前記把持部の第１撮像情報と、
前記第１の点とは異なる第２の点における前記把持物を把持しない前記把持部の第２撮像情報と、
前記第１の点における前記把持部に把持された前記把持物の第３撮像情報と、
に基づいて動作し、
前記第１撮像情報、前記第２撮像情報、及び前記第３撮像情報を予め設定されている期待値と比較し、比較の結果に応じてずれ量を補正する補正量を算出する第４制御部を有することを特徴とするロボット。
【請求項２】
請求項１に記載のロボットにおいて、
前記第１撮像情報、前記第２撮像情報、及び前記第３撮像情報は、位置姿勢情報であることを特徴とするロボット。
【請求項３】
請求項１又は２に記載のロボットにおいて、
撮像部を有し、
前記把持部は、第１方向と第２方向とに並んで配置され、前記把持物を把持する先端部と、前記先端部に対して前記第１方向及び前記第２方向のそれぞれに直交する第３方向の位置に配置された基端部とを有する複数の爪部を有し、
前記第１の点において、前記撮像部で撮像される前記把持部の姿勢は、前記爪部の前記先端部側の前記第３方向の位置に前記撮像部が配置されていることを特徴とするロボット。
【請求項４】
請求項３に記載のロボットにおいて、
前記撮像部は、複数台設けられていることを特徴とするロボット。
【請求項５】
請求項３又は４に記載のロボットにおいて、
前記撮像部は、ステレオカメラであることを特徴とするロボット。
【請求項６】
請求項１から５のいずれか一項に記載のロボットにおいて、
前記第２撮像情報は、前記把持部の形状又は前記把持部に設けられたマーカーの画像を用いていることを特徴とするロボット。
【請求項７】
把持部を有するロボットを制御するロボットの制御方法であって、
第１の点における把持物を把持しない前記把持部の第１撮像情報と、
前記第１の点とは異なる第２の点における前記把持物を把持しない前記把持部の第２撮像情報と、
前記第１の点における前記把持部に把持された前記把持物の第３撮像情報と、
に基づいてロボットを制御し、
前記第１撮像情報、前記第２撮像情報、及び前記第３撮像情報を予め設定されている期待値と比較し、比較の結果に応じてずれ量を補正する補正量を算出することを特徴とするロボットの制御方法。
【請求項８】
把持部を有するロボットを制御するロボットの制御装置であって、
第１の点における把持物を把持しない前記把持部の第１撮像情報と、
前記第１の点とは異なる第２の点における前記把持物を把持しない前記把持部の第２撮像情報と、
前記第１の点における前記把持部に把持された前記把持物の第３撮像情報と、
に基づいてロボットを制御し、
前記第１撮像情報、前記第２撮像情報、及び前記第３撮像情報を予め設定されている期待値と比較し、比較の結果に応じてずれ量を補正する補正量を算出する第４制御部を有することを特徴とするロボットの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、ロボットの制御方法、及びロボットの制御装置に関する。
【背景技術】
【０００２】
ロボットが組立作業を行う際に、把持している物体の位置姿勢が期待した位置姿勢からずれていると、組立作業に悪影響を及ぼすことが多い。ずれを検出する手段として、把持している物体を撮像部で撮像し、把持している把持部と把持物との位置姿勢の関係を算出することが有効であるが、その基準となるロボット座標系と撮像部座標系とのずれは場所によって異なるため、ずれ量も均一ではなくなり、一つの補正量では期待する精度がでないおそれがある。そのため、把持物把持後も微妙にずれ、把持物を組付けることができないおそれがある。
【０００３】
例えば、位置ずれ量をデータベースに保存し、動作時にその値を使う多関節ロボットのツール位置補正方法が開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−８２１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載のツール位置補正方法では、位置ずれ量を計測する場合に撮像部から把持部が見える状態となっているが、双腕ロボットなど撮像部の配置によっては、必ずしもそのような状況となるとは限らないおそれがある。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００７】
［適用例１］本適用例に係るロボットは、把持部を有するロボットであって、第１の点における把持物を把持しない前記把持部の第１撮像情報と、前記第１の点とは異なる第２の点における前記把持物を把持しない前記把持部の第２撮像情報と、前記第１の点における前記把持部に把持された前記把持物の第３撮像情報と、に基づき動作することを特徴とする。
【０００８】
本適用例によれば、把持部と把持部が把持している把持物との関係を、第１の点（例えば、確認位置）と第２の点（例えば、目標位置）との位置で各撮像情報を算出するので、これによって、組立時（目標位置）のずれを低減することができる。したがって、高精度の組立を可能とするロボットを提供することができる。
【０００９】
［適用例２］上記適用例に記載のロボットは、前記第１撮像情報、前記第２撮像情報、及び前記第３撮像情報は、位置姿勢情報であることが好ましい。
【００１０】
本適用例によれば、各撮像情報が位置姿勢情報であるため、把持部と把持物との位置姿勢を容易に確認することができる。
【００１１】
［適用例３］上記適用例に記載のロボットは、前記第１撮像情報、前記第２撮像情報、及び前記第３撮像情報を予め設定されている各期待値と比較し、前記比較の結果に応じてずれ量を補正する各補正量を算出する第４制御部をさらに有することが好ましい。
【００１２】
本適用例によれば、第１の点と第２の点との位置で各撮像情報を補正するので、これによって、組立時のずれを低減することができる。
【００１３】
［適用例４］上記適用例に記載のロボットは、撮像部を有し、前記把持部は、第１方向と第２方向とに並んで配置され、前記把持物を把持する先端部と、前記先端部に対して前記第１方向及び前記第２方向のそれぞれに直交する第３方向の位置に配置された基端部とを有する複数の爪部を有し、前記第１の点において、前記撮像部で撮像される前記把持部の姿勢は、前記爪部の前記先端部側の前記第３方向の位置に前記撮像部が配置されていることが好ましい。
【００１４】
本適用例によれば、撮像部の撮像方向に把持物の裏面（把持部や爪部と重ならない面）を見せることができる。これにより、撮像部と把持物との間には遮蔽物がなく、把持部自体で把持物を隠すことが少なくなる。その結果、把持物の裏側の輪郭形状を撮像することができる。
【００１５】
［適用例５］上記適用例に記載のロボットは、前記撮像部は、複数台設けられていることが好ましい。
【００１６】
本適用例によれば、複数の撮像部を有することで、撮像部による画像の解像度を上げることができ、精度の良い画像を作成することができる。これにより、位置精度の高い位置姿勢を得ることができる。
【００１７】
［適用例６］上記適用例に記載のロボットは、前記撮像部は、ステレオカメラであることが好ましい。
【００１８】
本適用例によれば、撮像部と把持物との間には遮蔽物がなく、把持部自体で把持物を隠すことが少なくなる。
【００１９】
［適用例７］上記適用例に記載のロボットは、前記第２撮像情報は、前記把持部の形状又は前記把持部に設けられたマーカーの画像を用いていることが好ましい。
【００２０】
本適用例によれば、第２撮像情報の算出を容易に行うことができる。
【００２１】
［適用例８］本適用例に係るロボットの制御方法は、把持部を有するロボットを制御するロボットの制御方法であって、第１の点における把持物を把持しない前記把持部の第１撮像情報と、前記第１の点と異なる第２の点における前記把持物を把持しない前記把持部の第２撮像情報と、前記第１の点における前記把持部に把持された前記把持物の第３撮像情報と、に基づきロボットを制御することを特徴とする。
【００２２】
本適用例によれば、把持部と把持部が把持している把持物との関係を、第１の点と第２の点との位置で各撮像情報を算出するので、これによって、組立時のずれを低減することができる。したがって、高精度の組立を可能とするロボットを制御するロボットの制御方法を提供することができる。
【００２３】
［適用例９］上記適用例に記載のロボットの制御方法は、前記第１撮像情報、前記第２撮像情報、及び前記第３撮像情報を予め設定されている各期待値と比較し、前記比較の結果に応じてずれ量を補正する各補正量を算出することをさらに有することが好ましい。
【００２４】
本適用例によれば、第１の点と第２の点との位置で各撮像情報を補正するので、これによって、組立時のずれを低減することができる。
【００２５】
［適用例１０］本適用例に係るロボットの制御装置は、把持部を有するロボットを制御するロボットの制御装置であって、第１の点における把持物を把持しない前記把持部の第１撮像情報と、前記第１の点とは異なる第２の点における前記把持物を把持しない前記把持部の第２撮像情報と、前記第１の点における前記把持部に把持された前記把持物の第３撮像情報と、に基づきロボットを制御することを特徴とする。
【００２６】
本適用例によれば、把持部と把持部が把持している把持物との関係を、第１の点と第２の点との位置で各撮像情報を算出するので、これによって、組立時のずれを低減することができる。したがって、高精度の組立を可能とするロボットを制御するロボットの制御装置を提供することができる。
【００２７】
［適用例１１］上記適用例に記載のロボットの制御装置は、前記第１撮像情報、前記第２撮像情報、及び前記第３撮像情報を予め設定されている各期待値と比較し、前記比較の結果に応じてずれ量を補正する各補正量を算出する第４制御部をさらに有することが好ましい。
【００２８】
本適用例によれば、第１の点と第２の点との位置で各撮像情報を補正するので、これによって、組立時のずれを低減することができる。
【図面の簡単な説明】
【００２９】
【図１】第１実施形態に係るロボットの利用状況の一例を示す図。
【図２】第１実施形態に係る制御装置のハードウェア構成の一例を示す図。
【図３】第１実施形態に係る制御装置の機能構成の一例を示す図。
【図４】第１実施形態に係るハンドによる物体の把持方法の一例を説明する図。
【図５】第１実施形態に係る確認位置でのハンドを示す図。
【図６】第１実施形態に係る目標位置でのハンドを示す図。
【図７】第１実施形態に係る確認位置でのハンドを示す図。
【図８】第１実施形態に係るロボットのロボット制御部により実行される事前処理の流れの一例を示すフローチャート。
【図９】第１実施形態に係るロボットのロボット制御部により実行される組み付け処理の流れの一例を示すフローチャート。
【図１０】第１実施形態に係るハンドの位置姿勢を示す図。（Ａ）はハンドの目標位置を示す図、（Ｂ）はハンドの位置姿勢の補正を示す図。
【図１１】第２実施形態に係るハンドの移動位置を示す図。
【図１２】第２実施形態に係るロボットのロボット制御部により実行される組み付け処理の流れの一例を示すフローチャート。
【発明を実施するための形態】
【００３０】
（第１実施形態）
以下、本発明を具体化した実施形態について図面に従って説明する。なお、使用する図面は、説明する部分が認識可能な状態となるように、適宜拡大又は縮小して表示している。
図１は、本実施形態に係るロボットの利用状況の一例を示す図である。
本実施形態に係るロボット２は、カメラ（撮像部）１０と、制御装置１２とを備えている。撮像部１０は、ロボット２に搭載されている。カメラ１０は、把持された物体（把持物）ＯＢＪを撮像する（図７参照）。カメラ１０は、ハンド（把持部）ＨＮＤ１に把持された物体ＯＢＪの位置姿勢が変更されることにより撮像する。
【００３１】
カメラ１０は、複数台設けられていてもよい。これによれば、複数のカメラ１０を有することで、カメラ１０による画像の解像度を上げることができ、精度の良い画像を作成することができる。これにより、位置精度の高い位置姿勢（３次元位置姿勢）を得ることができる。
【００３２】
カメラ１０は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）等を備えたカメラである。また、カメラ１０は、例えば、２台のカメラによって構成されるステレオカメラであるが、３台以上のカメラによって構成されているものとしてもよいし、１台のカメラにより二次元画像を撮像するものとしてもよい。またカメラは、可動型であり、上下、左右に可動する。これによれば、カメラ１０と物体ＯＢＪとの間には遮蔽物がなく、ハンドＨＮＤ１自体で物体ＯＢＪを隠すことが少なくなる。
【００３３】
カメラ１０は、例えばケーブルによって制御装置１２と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal Serial Bus）等の規格によって行われる。なお、カメラ１０と制御装置１２とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続されてもよい。物体ＯＢＪは、設置面Ｍ上に予め設置されている。「設置面Ｍ」とは、例えば、テーブル上の面等である。カメラ１０は、その物体ＯＢＪを撮像可能な位置に設置される。カメラ１０は、物体ＯＢＪを撮像し、撮像した物体ＯＢＪの撮像画像を、通信により制御装置１２へ出力する。
【００３４】
ロボット２は、例えば、図１に示したように、ハンドＨＮＤ１と、ハンドＨＮＤ２と、力センサー１４と、アーム部ＡＲＭ１と、アーム部ＡＲＭ２と、図示しない複数のアクチュエーターとを、ロボットの基軸の左右の腕に備えた双腕ロボットである。ロボットの基軸は、回転軸を有し回転する。ロボット２の各腕は、６軸垂直多関節型となっており、一方の腕が支持台とアーム部ＡＲＭ１と把持部ＨＮＤ１とがアクチュエーターによる連携した動作よって６軸の自由度の動作を行うことができ、他方の腕が支持台とアーム部ＡＲＭ２とハンドＨＮＤ２とがアクチュエーターによる連携した動作よって６軸の自由度の動作を行うことができる。なお、ロボット２の各腕は、５自由度（５軸）以下で動作するものであってもよいし、７自由度（７軸）以上で動作するものであってもよい。以下では、ハンドＨＮＤ１及びアーム部ＡＲＭ１を備えた腕によって行われるロボット２の動作について説明するが、ハンドＨＮＤ２及びアーム部ＡＲＭ２を備えた腕によって同様の動作が行われてもよい。ハンドＨＮＤ１は、物体ＯＢＪを把持する。なお、「ハンドＨＮＤ１」は、特許請求の範囲における「把持部」の一例である。ロボット２は、例えばケーブルによって制御装置１２と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、ロボット２と制御装置１２とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続されてもよい。また、図１に示したロボット２は、双腕のロボットであるが、単腕のロボットとして実施されてもよい。
【００３５】
ロボット２のハンドＨＮＤ１は、物体ＯＢＪを把持又は挟持可能な爪部５２を備える（図４参照）。力センサー１４は、ロボット２のハンドＨＮＤ１とアーム部ＡＲＭ１との間に備えられており、ハンドＨＮＤ１に作用する力やモーメントを検出する。力センサー１４は、検出した力やモーメントを示す情報を、通信により制御装置１２へ出力する。力センサー１４により検出された力やモーメントを示す情報は、例えば、ロボット制御部１６によるロボット２のインピーダンス制御等に用いられる。
【００３６】
ロボット２は、物体ＯＢＪの三次元位置及び姿勢に基づいた制御信号を制御装置１２から取得し、取得した制御信号に基づいて、物体ＯＢＪに対して所定の作業を行う。所定の作業とは、例えば、ロボット２のハンドＨＮＤ１により物体ＯＢＪを把持し、把持された物体ＯＢＪを現在設置されている位置から、他の位置へと移動させることや、移動させた後に別の装置に組み付けを行うこと等の作業である。
【００３７】
カメラ１０は、物体ＯＢＪを把持したハンドＨＮＤ１以外に設置されていてもよい。これによれば、物体ＯＢＪを把持したときに、物体ＯＢＪがカメラ１０との接近した位置関係により、物体ＯＢＪの一部形状しか撮像ができないことを回避できる。
【００３８】
制御装置１２は、カメラ１０で撮像した画像を画像処理する。制御装置１２は、物体ＯＢＪの位置姿勢を算出する。制御装置１２は、ロボット２が所定の作業を行うように制御する。より具体的には、制御装置１２は、カメラ１０により撮像された物体ＯＢＪの撮像画像に基づいて、物体ＯＢＪの三次元位置及び姿勢を導出する。そして、制御装置１２は、導出された物体ＯＢＪの三次元位置及び姿勢に基づいて、ロボット２にハンドＨＮＤ１で物体ＯＢＪを把持させる。その後、制御装置１２は、把持させた物体ＯＢＪに対して所定の作業を行うように、ロボット２を制御する。
【００３９】
次に、図２を参照することで、制御装置１２のハードウェア構成について説明する。
図２は、本実施形態に係る制御装置１２のハードウェア構成の一例を示す図である。制御装置１２は、例えば、ＣＰＵ（Central Processing Unit）２０と、記憶部２２と、入力受付部２４と、通信部２６とを備え、通信部２６を介してカメラ１０等と通信を行う。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。ＣＰＵ２０は、記憶部２２に格納された各種プログラムを実行する。記憶部２２は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、ＲＯＭ（Read-Only Memory）、ＲＡＭ（Random Access Memory）などを含み、制御装置１２が処理する各種情報や画像、プログラムを格納する。なお、記憶部２２は、制御装置１２に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
【００４０】
入力受付部２４は、例えば、キーボードやマウス、タッチパッド、その他の入力装置である。なお、入力受付部２４は、表示部として機能してもよく、さらに、タッチパネルとして構成されてもよい。通信部２６は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
【００４１】
次に、図３を参照することで、制御装置１２の機能構成について説明する。
図３は、本実施形態に係る制御装置１２の機能構成の一例を示す図である。制御装置１２は、例えば、画像取得部３０と、三次元位置姿勢導出部３２と、ロボット制御部１６とを備える。これらの機能部のうち一部又は全部は、例えば、ＣＰＵ２０が、記憶部２２に記憶された各種プログラムを実行することで実現される。また、これらの機能部のうち一部又は全部は、ＬＳＩ（Large Scale Integration）やＡＳＩＣ（Application Specific Integrated Circuit）等のハードウェア機能部であってもよい。
【００４２】
画像取得部３０は、カメラ１０により撮像された撮像画像を取得し、取得した撮像画像を三次元位置姿勢導出部３２に出力する。なお、画像取得部３０は、取得した撮像画像を記憶部２２に記憶し、三次元位置姿勢導出部３２が記憶部２２から撮像画像を読み込むものとしてもよい。三次元位置姿勢導出部３２は、画像取得部３０から取得した撮像画像に基づいて、物体ＯＢＪの三次元位置及び姿勢を導出する。そして、三次元位置姿勢導出部３２は、導出した物体ＯＢＪの三次元位置及び姿勢をロボット制御部１６へ出力する。
【００４３】
ロボット制御部１６は、三次元位置姿勢導出部３２から取得した物体ＯＢＪの三次元位置及び姿勢に基づいて、ロボット２がハンドＨＮＤ１によって物体ＯＢＪを把持するように、ロボット２を制御する。
【００４４】
ロボット制御部１６は、登録手段と、把持手段と、移動手段と、補正手段と、組み付け手段と、を備えている。
登録手段は、物体ＯＢＪを組み付け面ＭＳに組み付ける位置姿勢となるように、ハンドＨＮＤ１の目標位置を登録する（図１０（Ａ）参照）。
把持手段は、ハンドＨＮＤ１で物体ＯＢＪを把持する。
移動手段は、物体ＯＢＪを把持した状態で、物体ＯＢＪの輪郭形状をカメラ１０で撮像可能な位置に移動させる（図１１参照）。
補正手段は、物体ＯＢＪを組み付け面ＭＳに組み付ける位置姿勢となるように、ハンドＨＮＤ１の目標位置を補正する（図１０（Ｂ）参照）。
組み付け手段は、物体ＯＢＪを組み付け面ＭＳに組み付ける（図１０（Ｂ）参照）。
【００４５】
ロボット制御部１６は、第１制御部と、第２制御部と、第３制御部と、第４制御部とを備えている。
第１制御部は、ハンドＨＮＤ１の移動経路上に設定した確認位置（第１の点）で、カメラ１０で撮像された、物体ＯＢＪを把持しないハンドＨＮＤ１の画像を用いて位置姿勢情報（第１撮像情報）を算出する。
第２制御部は、移動経路上の確認位置と異なる位置に設定した目標位置（第２の点）で、カメラ１０で撮像された、物体ＯＢＪを把持しないハンドＨＮＤ１の画像を用いて位置姿勢情報（第２撮像情報）を算出する。
第３制御部は、確認位置で、カメラ１０で撮像された、ハンドＨＮＤ１に把持された物体ＯＢＪの画像を用いて位置姿勢情報（第３撮像情報）を算出する。
【００４６】
第４制御部は、各位置姿勢情報を予め設定されている各期待値と比較し、比較の結果に応じてずれ量を補正する各補正量を算出する。これによれば、確認位置と目標位置とで各位置姿勢情報を補正するので、これによって、組立時のずれを低減することができる。なお、補正量のデータベースをハンドＨＮＤ１の移動経路（稼動範囲）にて取得してもよい。これによれば、誤差が少なくなり、物体ＯＢＪの把持後も、把持誤差を加味して組立が可能である。
【００４７】
図４は、本実施形態に係るハンドＨＮＤ１による物体ＯＢＪの把持方法の一例を説明する図である。図４の上段図は、ハンドＨＮＤ１と設置面Ｍ上に設置された物体ＯＢＪとの間の位置関係を、設置面Ｍに対して真横から見た断面図である。また、図４の下段図は、ハンドＨＮＤ１と設置面Ｍ上に設置された物体ＯＢＪとの間の位置関係を、設置面Ｍに対して真上（例えば、物体ＯＢＪが設置された面側）から見た図である。なお、設置面Ｍは、物体ＯＢＪが設置された面であれば、テーブル面のように鉛直方向に対して直交する面である必要はなく、例えば、壁面等でもよい。
【００４８】
ハンドＨＮＤ１は、図４に示すように、第１方向（ｘ）と第２方向（ｙ）とに並んで配置され、物体ＯＢＪを把持する先端部５４と、先端部５４に対して第１方向（ｘ）及び第２方向（ｙ）のそれぞれに直交する第３方向（ｚ）の位置に配置された基端部５６とを有する複数の爪部５２を備えている。
ここで、図４を参照することにより、ハンドＨＮＤ１による物体ＯＢＪの把持方法について説明する。
【００４９】
まず、ロボット制御部１６は、物体ＯＢＪの三次元位置及び姿勢に基づいて、ロボット２のハンドＨＮＤ１を、設置面Ｍ上において図４の下段図で示した位置まで移動させる。ここで、図４の上下段図の座標軸は、設置面Ｍと物体ＯＢＪとの間の位置関係を示すための座標軸であって、ロボット座標系や撮像画像上の座標軸ではない。物体ＯＢＪが設置面Ｍ上に設置されている場合、図４の下段図で示したハンドＨＮＤ１の位置は、物体ＯＢＪの真上である。そして、ロボット制御部１６は、ハンドＨＮＤ１を、図４の上段図の矢印が示す方向（ｚ方向）に向けて移動させることで、物体ＯＢＪをハンドＨＮＤ１によって把持できる場所まで移動させる。
【００５０】
ロボット制御部１６は、ハンドＨＮＤ１が物体ＯＢＪを把持した後、所定の作業を行うようにロボット２を制御する。
【００５１】
（事前準備）
図５は、本実施形態に係る確認位置でのハンドＨＮＤ１を示す図である。図６は、本実施形態に係る目標位置でのハンドＨＮＤ１を示す図である。
最初に、把持する物体ＯＢＪを確認する確認位置に、物体ＯＢＪを把持していない状態でハンドＨＮＤ１を移動させ、ハンドＨＮＤ１の位置姿勢情報（第１撮像情報）を取得する。これにより、把持する物体ＯＢＪを確認する位置におけるハンドＨＮＤ１の位置姿勢情報を取得することができる。位置姿勢情報は、例えば３次元位置姿勢情報である。ハンドＨＮＤ１の位置姿勢情報の確認では、図５に示すように、ハンドＨＮＤ１の掌の位置姿勢を取得する。ハンドＨＮＤ１の位置姿勢情報の確認は、図５の矢印Ａに示す部分を計測してもよい。ハンドＨＮＤ１を移動させる位置は、例えば、後述するカメラ１０の光軸の交点と、カメラ１０間の基線を結ぶ直線上が考えられる。順運動学で求めたハンドＨＮＤ１の位置姿勢情報とカメラ座標系におけるハンドＨＮＤ１の位置姿勢情報との関係を知ることができる。
【００５２】
次に、組み付け面ＭＳ付近の目標位置にハンドＨＮＤ１を移動させ、ハンドＨＮＤ１の位置姿勢情報（第２撮像情報）を取得する。ハンドＨＮＤ１の位置姿勢情報の確認は、図６の矢印Ｂに示す部分を計測してもよい。また、組立を行う位置では、頭部のステレオカメラから、アームの遮蔽などにより、ハンドＨＮＤ１を観測することが困難となる場合がある。そのため、図６に示すように、治具３４の一部がカメラ１０から観測可能となるような治具を利用する。例えば、治具３４の一部にマーカー３６を貼り、マーカー３６をカメラ１０で計測する。この場合、治具３４の２つのマーカー３６から直線を算出する。２方向で治具３４を持たせ、２本の直線の交点を求めることにより、それをハンドＨＮＤ１の位置とする。２直線から面が構成できるので、その面の方向をハンドＨＮＤ１の掌の方向とすることができる。先と同様に、順運動学で求めたハンドＨＮＤ１の位置姿勢情報とカメラ座標系におけるハンドＨＮＤ１の位置姿勢情報との関係を知ることができる。これによれば、ハンドＨＮＤ１の位置姿勢情報の算出を容易に行うことができる。
【００５３】
（実際の動作時）
図７は、本実施形態に係る確認位置でのハンドＨＮＤ１を示す図である。
物体ＯＢＪを把持した状態で、物体ＯＢＪを確認する確認位置にハンドＨＮＤ１を移動させ、把持している物体ＯＢＪの位置姿勢情報（第３撮像情報）を取得する。これにより、カメラ座標系において、ハンドＨＮＤ１の位置姿勢情報と把持している物体ＯＢＪの位置姿勢情報との関係を取得することができる。ハンドＨＮＤ１の位置姿勢情報の確認では、図７に示すように、ハンドＨＮＤ１の掌の位置姿勢を取得する。
【００５４】
さらに、事前準備で求めておいた順運動学で求めたハンドＨＮＤ１の位置姿勢情報との関係を用いて、位置姿勢情報の補正を行う。なお、ロボットの繰り返し精度があると仮定している。
【００５５】
次に、目標位置にハンドＨＮＤ１の手先を移動させる。移動量は補正量を考慮して設定する。移動させた先は、事前準備で算出した補正量を考慮した位置姿勢となる。
【００５６】
なお、確認位置において、カメラ１０で撮像されるハンドＨＮＤ１の姿勢は、爪部５２の先端部５４側の第３方向（ｚ）の位置にカメラ１０が配置されていることが好ましい。これによれば、カメラ１０の撮像方向に物体ＯＢＪの裏面（ハンドＨＮＤ１や爪部５２と重ならない面）を見せることができる。これにより、カメラ１０と物体ＯＢＪとの間には遮蔽物がなく、ハンドＨＮＤ１自体で物体ＯＢＪを隠すことが少なくなる。その結果、物体ＯＢＪの裏側の輪郭形状を撮像することができる。
【００５７】
（実施例）
実施例として、ネジ締めプレートをネジ締めベースに組み込む作業を挙げる。
図８は、本実施形態に係るロボットのロボット制御部により実行される事前処理の流れの一例を示すフローチャートである。図９は、本実施形態に係るロボットのロボット制御部により実行される組み付け処理の流れの一例を示すフローチャートである。図１０は、本実施形態に係るハンドＨＮＤ１の位置姿勢を示す図である。図１０（Ａ）はハンドＨＮＤ１の目標位置を示す図、図１０（Ｂ）はハンドＨＮＤ１の位置姿勢の補正を示す図である。なお、物体ＯＢＪはネジ締めプレートであり、組み付け面ＭＳはネジ締めベースの組み付け面である。また、Ｗはワールド座標であり、Ｔは座標変換を示している。
【００５８】
以下、図８を参照することにより、ロボット制御部１６が、ロボット２に物体ＯＢＪを組み付け面ＭＳに組み付ける際に行う処理について説明する。以下では、ロボット２のハンドＨＮＤ１は、ロボット制御部１６により物体ＯＢＪの真上まで移動しているものとして説明する。
【００５９】
まず、図８に示すように、ステップＳ１０では、把持する物体ＯＢＪを確認する確認位置にハンドＨＮＤ１を移動する。
【００６０】
次に、ステップＳ２０では、ハンドＨＮＤ１の確認位置（第１の点）の位置姿勢情報（第１撮像情報）を取得する。図１０（Ｂ）に、WＴHND1´としてその作業を示している。これによれば、第１撮像情報が位置姿勢情報であるため、ハンドＨＮＤ１の位置姿勢を容易に確認することができる。
【００６１】
次に、ステップＳ３０では、ハンドＨＮＤ１の確認位置の位置姿勢情報を事前位置姿勢１として登録する。
【００６２】
次に、ステップＳ４０では、把持する物体ＯＢＪを組付ける目標位置付近にハンドＨＮＤ１を移動する。
【００６３】
次に、ステップＳ５０では、ハンドＨＮＤ１の目標位置（第２の点）の位置姿勢情報（第２撮像情報）を取得する。図１０（Ｂ）に、WＴHND1としてその作業を示している。これによれば、第２撮像情報が位置姿勢情報であるため、ハンドＨＮＤ１の位置姿勢を容易に確認することができる。
【００６４】
次に、ステップＳ６０では、ハンドＨＮＤ１の目標位置の位置姿勢情報を事前位置姿勢２として登録する。
【００６５】
以下、図９を参照することにより、ロボット制御部１６が、ロボット２に物体ＯＢＪを組み付け面ＭＳに組み付ける際に行う処理について説明する。以下では、ロボット２のハンドＨＮＤ１は、ロボット制御部１６により物体ＯＢＪの真上まで移動しているものとして説明する。
【００６６】
まず、図９に示すように、ステップＳ１１０では、物体ＯＢＪの登録を行う。具体的には、組み付け面ＭＳに対する物体ＯＢＪの位置姿勢を指定する。図１０（Ｂ）に、MSＴOBJとしてその作業を示している。ワールド座標Ｗでの組み付け面ＭＳの位置姿勢を指定する。図１０（Ｂ）に、WＴMSとしてその作業を示している。ワールド座標Ｗでの物体ＯＢＪの位置姿勢を算出する。例えば、WＴOBJ＝WＴMSMSＴOBJとしてその作業を表すことができる。物体ＯＢＪの確認位置の位置姿勢情報を取得する。例えば、図１０（Ｂ）に、WＴOBJ´としてその作業を示している。
【００６７】
次に、ステップＳ１２０では、物体ＯＢＪを把持する。
【００６８】
次に、ステップＳ１３０では、把持している物体ＯＢＪを確認する確認位置にハンドＨＮＤ１を移動する。
【００６９】
次に、ステップＳ１４０では、把持している物体ＯＢＪの位置姿勢情報（第３撮像情報）を取得する。これによれば、第３撮像情報が位置姿勢情報であるため、物体ＯＢＪの位置姿勢を容易に確認することができる。
【００７０】
次に、ステップＳ１５０では、ハンドＨＮＤ１の位置姿勢をハンドＨＮＤ１の事前位置姿勢１を用いて補正する。ハンドＨＮＤ１の事前位置姿勢１を用いてハンドＨＮＤ１の確認位置の補正量を算出する。図１０（Ｂ）に、ＴHND1´としてその作業を示している。ハンドＨＮＤ１の確認位置を補正する。例えば、ＴHND1´WＴHND1´としてその作業を表すことができる。
【００７１】
次に、ステップＳ１６０では、ハンドＨＮＤ１の位置姿勢と把持している物体ＯＢＪの位置姿勢との関係を算出する。
【００７２】
次に、ステップＳ１７０では、把持している物体ＯＢＪを目標位置に移動させるハンドＨＮＤ１の位置を算出する。物体ＯＢＪを目標位置に移動する変換を算出する。例えば、WＴOBJ´＝ＴWＴOBJ  、  Ｔ＝WＴOBJ´WＴOBJ-1としてその作業を表すことができる。ハンドＨＮＤ１の目標位置を算出する。例えば、WＴHND1＝ＴＴHND1´WＴHND1´としてその作業を表すことができる。
【００７３】
次に、ステップＳ１８０では、ハンドＨＮＤ１の位置姿勢をハンドＨＮＤ１の事前位置姿勢２を用いて補正する。ハンドＨＮＤ１の事前位置姿勢２を用いてハンドＨＮＤ１の目標位置の補正量を算出する。図１０（Ｂ）に、ＴHND1としてその作業を示している。ハンドＨＮＤ１の目標位置を補正する。例えば、ＴHND1WＴHND1としてその作業を表すことができる。
【００７４】
次に、ステップＳ１９０では、ハンドＨＮＤ１を補正した目標位置に移動する。
【００７５】
次に、ステップＳ２００では、組み付け動作を行う。これによれば、より理想に近い位置に、ネジ締めプレートを移動させることができる。
【００７６】
以上説明したように、本実施形態に係るロボット２は、ハンドＨＮＤ１とハンドＨＮＤ１が把持している物体ＯＢＪとの関係を、確認位置と目標位置とで各位置姿勢情報を算出するので、これによって、組立時のずれを低減することができる。したがって、高精度の組立を可能とするロボット２、ロボット２の制御方法、及びロボット２の制御装置１２を提供することができる。
【００７７】
（第２実施形態）
本実施形態のロボット２は、把持した物体ＯＢＪを一旦カメラ１０の撮像領域に、物体ＯＢＪの位置姿勢を変えて、撮像する点が、第１実施形態と異なっている。以下、第１実施形態と同じ構成部材には同一符号を付し、ここではそれらの説明を省略又は簡略化する。
【００７８】
図１１は、本実施形態に係るハンドＨＮＤ１の移動位置を示す図である。
複数台のカメラ１０は、２台のカメラ１０から構成されてもよい。ハンドＨＮＤ１に把持された物体ＯＢＪは、２台のカメラ１０の光軸４０の交点４２から２台のカメラ１０の位置を結ぶ直線４８上におろした垂線４４上にあってもよい。
【００７９】
また、ハンドＨＮＤ１に把持された物体ＯＢＪの重心４６は、２台のカメラ１０の光軸４０の交点４２から２台のカメラ１０の位置を結ぶ直線４８上におろした垂線４４上にあってもよい。
【００８０】
さらに、物体ＯＢＪを把持したハンドＨＮＤ１の爪部５２の開閉方向は、２台のカメラ１０の光軸４０の交点４２と、２台のカメラ１０の位置とを含む平面５０の法線方向であってもよい。これらによれば、カメラ１０と物体ＯＢＪとの間には遮蔽物がなく、ハンドＨＮＤ１自体で物体ＯＢＪを隠すことが少なくなる。
【００８１】
以下、図１２を参照することにより、ロボット制御部１６が、ロボット２に物体ＯＢＪを組み付け面ＭＳに組み付ける際に行う処理について説明する。
図１２は、本実施形態に係るロボット２のロボット制御部１６により実行される組み付け処理の流れの一例を示すフローチャートである。
【００８２】
まず、図１２に示すように、ステップＳ２１０では、登録工程として物体ＯＢＪを組み付け面ＭＳに組み付ける位置姿勢となるように、図１０（Ａ）に示すように、ハンドＨＮＤ１の目標位置を記憶部２２に登録する。
【００８３】
次に、ステップＳ２２０では、物体ＯＢＪと設置面Ｍとを検出するためのデータを記憶部２２に登録する。又は、設置面Ｍに対する物体ＯＢＪの３次元位置姿勢を記憶部２２に登録する。
【００８４】
次に、ステップＳ２３０では、設置面Ｍ、物体ＯＢＪの３次元位置姿勢を記憶部２２より取得する。
【００８５】
次に、ステップＳ２４０では、把持工程としてハンドＨＮＤ１で物体ＯＢＪを把持する。そして、把持している物体ＯＢＪをカメラ１０で観測可能となる位置姿勢を算出する。
【００８６】
次に、ステップＳ２５０では、移動工程として物体ＯＢＪを把持した状態で、物体ＯＢＪをカメラ１０で撮像可能な位置に移動させる。そして、把持している物体ＯＢＪを、カメラ１０の前に移動させ、把持している物体ＯＢＪの３次元位置姿勢を検出する。
【００８７】
次に、ステップＳ２６０では、物体ＯＢＪの３次元位置姿勢をカメラ１０より取得する。
【００８８】
次に、ステップＳ２７０では、物体ＯＢＪを把持しているハンドＨＮＤ１の位置姿勢を記憶部２２より取得する。
【００８９】
次に、ステップＳ２８０では、物体ＯＢＪとハンドＨＮＤ１の３次元位置姿勢の関係（設定値からのズレ）を取得する。
【００９０】
次に、ステップＳ２９０では、組み付け面ＭＳの３次元位置姿勢を記憶部２２より取得する。
【００９１】
次に、ステップＳ３００では、補正工程として物体ＯＢＪを組み付け面ＭＳに組み付ける位置姿勢となるように、ハンドＨＮＤ１の目標位置を補正する。設定値からのズレを補正したハンドＨＮＤ１の目標位置を算出する。把持している物体ＯＢＪが目標位置となるように、ハンドＨＮＤ１の位置姿勢を変化させる。
【００９２】
次に、ステップＳ３１０では、組み付け工程として物体ＯＢＪを組み付け面ＭＳに組み付ける。物体ＯＢＪのハンドＨＮＤ１に対する傾き（ズレ）をハンドＨＮＤ１の位置姿勢の補正を行うことで、図１０（Ｂ）に示すように、組み付ける際、物体ＯＢＪの組み付け面ＭＳに対する傾きを最小限にすることができる。そして、終了する。
【００９３】
以上説明したように、本実施形態に係るロボット２は、把持した物体ＯＢＪを一旦カメラ１０の撮像領域に、物体ＯＢＪの位置姿勢を変えて、撮像する。これにより、撮影する際、物体ＯＢＪのロボット２のハンドＨＮＤ１で隠れる量をできるだけ少ない状態で撮像することができる。そして、物体ＯＢＪのカメラ座標をワールド座標に変換することで、物体ＯＢＪとハンドＨＮＤ１との位置関係を把握することができる。その結果、ロボット２の物体ＯＢＪ把持状態において、物体ＯＢＪとハンドＨＮＤ１との位置ズレを補正して、誤差の少ない組み付けを行うことができる。
【００９４】
ハンドＨＮＤ１とカメラ１０との位置姿勢の関係やカメラ１０の視線方向が既知である場合に、ロボットが把持している物体ＯＢＪの状態を確認するためには、カメラ１０の視線に入るように、物体ＯＢＪを移動させればよい。その際、カメラ１０と物体ＯＢＪとの間にはできるだけ遮蔽物が少なく、ハンドＨＮＤ１自体で物体ＯＢＪを隠すことが少ない方が望ましい。
【００９５】
また、検出した物体ＯＢＪの位置姿勢とハンドＨＮＤ１の位置姿勢との関係を比較することで、その関係がデータベースに登録されている期待されている関係からずれているかどうかを検出することができる。
さらに、撮像部も頭、腰の回転で移動可能にしたので、無理な姿勢を取ることなく、対象物を撮像できるようになり、対象物の位置、姿勢を正確に取得することができるようになる。
【００９６】
なお、実施形態は上記に限定されず、以下のような形態で実施することもできる。
上記した実施形態において、ハンドＨＮＤ１の爪部５２の開閉方向と、撮像部１０の光軸４０の交点４２と、２つのカメラ１０位置とを含む平面５０の法線が一致することに限定されず、例えば、把持状態によっては、両者のなす角が略９０度となるようにしてもよい。
【００９７】
また、検出される物体ＯＢＪの形状は既知であるので、物体ＯＢＪの一部の画像から物体ＯＢＪとハンドＨＮＤ１との３次元位置姿勢の関係（設定値からのズレ）を取得してもよい。
【００９８】
さらに、カメラ１０の光軸４０の交点４２の算出は、光軸４０同士が交わることは稀であることから、中点法などで算出してもよい。
【００９９】
また、ビジュアルサーボと組み合わせることにより、ビジュアルサーボの動作開始位置が安定するので高精度の組立が期待できる。
【０１００】
以上、ロボット２、ロボット２の制御方法、及びロボット２の制御装置１２について、図示の実施形態に基づいて説明したが、本発明は、これに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物が付加されていてもよい。
【符号の説明】
【０１０１】
２…ロボット  １０…カメラ（撮像部）  １２…制御装置  １４…力センサー  １６…ロボット制御部  ２０…ＣＰＵ  ２２…記憶部  ２４…入力受付部  ２６…通信部  ３０…画像取得部  ３２…三次元位置姿勢導出部  ３４…治具  ３６…マーカー  ４０…光軸  ４２…交点  ４４…垂線  ４６…重心  ４８…直線  ５０…平面  ５２…爪部  ５４…先端部  ５６…基端部  ＡＲＭ１，ＡＲＭ２…アーム部  Ｂｕｓ…バス  ＨＮＤ１，ＨＮＤ２…ハンド（把持部）  Ｍ…設置面  ＭＳ…組み付け面  ＯＢＪ…物体（把持物）。
【図１】
0006578671.tif 000002
【図２】
0006578671.tif 000003
【図３】
0006578671.tif 000004
【図４】
0006578671.tif 000005
【図５】
0006578671.tif 000006
【図６】
0006578671.tif 000007
【図７】
0006578671.tif 000008
【図８】
0006578671.tif 000009
【図９】
0006578671.tif 000010
【図１０】
0006578671.tif 000011
【図１１】
0006578671.tif 000012
【図１２】
0006578671.tif 000013