(57)【要約】【課題】大きな誤差なく教示内容の情報を取得することができるロボットを提供すること。【解決手段】ロボットは、アームと、アームを動作させる制御装置と、を含み、制御装置は、作業対象物の移動を時系列に撮像した複数の第１画像を受け、複数の第１画像から、作業対象物の運動状態が変化したときの第２画像を抽出し、抽出した第２画像を用いて、ビジュアルサーボによりアームを動作させる。【選択図】図３
2015221485.tif 000002
【特許請求の範囲】
【請求項１】
アームと、
前記アームを動作させる制御装置と、
を含み、
前記制御装置は、
作業対象物の移動を時系列に撮像した複数の第１画像を受け、
複数の前記第１画像から、前記作業対象物の運動状態が変化したときの第２画像を抽出し、
抽出した前記第２画像を用いて、ビジュアルサーボにより前記アームを動作させる、
ロボット。
【請求項２】
請求項１に記載のロボットであって、
前記作業対象物の運動状態は、前記作業対象物の移動状態である、
ロボット。
【請求項３】
請求項２に記載のロボットであって、
前記作業対象物の移動状態が変化した時の前記第２画像は、前記作業対象物の速度が変化した時の画像である、
ロボット。
【請求項４】
請求項１に記載のロボットであって、
前記作業対象物の運動状態は、前記作業対象物の接触状態である、
ロボット。
【請求項５】
請求項１乃至４のいずれか一項に記載のロボットであって、
前記第２画像は、入力受付部から入力された複数の前記第１画像から選択された画像である、
ロボット。
【請求項６】
撮像部と、
アームを備えるロボットと、
前記アームを動作させる制御装置と、
を具備し、
前記制御装置は、
作業対象物の移動を前記撮像部によって時系列に撮像された複数の第１画像を受け、
複数の前記第１画像から、前記作業対象物の運動状態が変化したときの第２画像を抽出し、
抽出した前記第２画像を用いて、ビジュアルサーボにより前記アームを動作させる、
ロボットシステム。
【請求項７】
作業対象物の移動を時系列に撮像した複数の第１画像を受け、
複数の前記第１画像から、前記作業対象物の運動状態が変化したときの第２画像を抽出し、
抽出した前記第２画像を用いて、ビジュアルサーボによりロボットのアームを動作させる、
制御装置。
【請求項８】
作業対象物の移動を時系列に撮像した複数の第１画像を受け、
複数の前記第１画像から、前記作業対象物の運動状態が変化したときの第２画像を抽出し、
抽出した前記第２画像を用いて、ビジュアルサーボによりロボットのアームを動作させる、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット、ロボットシステム、制御装置、及び制御方法に関する。
【背景技術】
【０００２】
撮像部により撮像された撮像画像に基づいたビジュアルサーボによってロボットを動作させる技術が研究・開発されている。そして、ロボットを動作させるためには、予め当該動作をロボットに教示する必要がある。
【０００３】
教示する方法としては、例えば、特許文献１に記載の方法が考えられる。特許文献１では、教示者が３次元ポインティングデバイスを通してワークを直接操作し、作業を実施することで得られる教示データを順次入力している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−８５２４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、この教示方法では、３次元ポインティングデバイスを用いてワークの位置及び姿勢を算出するため、３次元ポインティングデバイスの位置及び姿勢やワークの位置及び姿勢を正確に把握する必要がある。そのため、それらの位置及び姿勢が正確に把握できなければ、ロボットへの動作の教示内容に大きな誤差が生じてしまうおそれがある。
【０００６】
そこで本発明は、上記従来技術の問題に鑑みてなされたものであり、大きな誤差なく教示内容の情報を取得することができるロボット、ロボットシステム、制御装置、及び制御方法を提供する。
【課題を解決するための手段】
【０００７】
本発明の一態様は、アームと、前記アームを動作させる制御装置と、を含み、前記制御装置は、作業対象物の移動を時系列に撮像した複数の第１画像を受け、複数の前記第１画像から、前記作業対象物の運動状態が変化したときの第２画像を抽出し、抽出した前記第２画像を用いて、ビジュアルサーボにより前記アームを動作させる、ロボットである。
この構成により、ロボットは、作業対象物の移動を時系列に撮像した複数の第１画像を受け、複数の第１画像から、作業対象物の運動状態が変化したときの第２画像を抽出し、抽出した第２画像を用いて、ビジュアルサーボによりアームを動作させる。これにより、ロボットは、大きな誤差なく教示内容の情報を取得することができる。その結果、ロボットは、教示された動作をビジュアルサーボによって行うことができる。
【０００８】
また、本発明の他の態様は、ロボットにおいて、前記作業対象物の運動状態は、前記作業対象物の移動状態である、構成が用いられてもよい。
この構成により、ロボットは、作業対象物の移動状態が変化したときの第２画像を抽出し、抽出した第２画像を用いて、ビジュアルサーボによりアームを動作させる。これにより、ロボットは、作業対象物の移動状態が変化した時の第２画像に基づく教示内容を取得することができる。
【０００９】
また、本発明の他の態様は、ロボットにおいて、前記作業対象物の移動状態が変化した時の前記第２画像は、前記作業対象物の速度が変化した時の画像である、構成が用いられてもよい。
この構成により、ロボットは、作業対象物の速度が変化した時の画像を抽出し、抽出した画像を用いて、ビジュアルサーボによりアームを動作させる。これにより、ロボットは、作業対象物の速度が変化した時の第２画像に基づく教示内容を取得することができる。
【００１０】
また、本発明の他の態様は、ロボットにおいて、前記作業対象物の運動状態は、前記作業対象物の接触状態である、構成が用いられてもよい。
この構成により、ロボットは、作業対象物の接触状態が変化した時の第２画像を抽出し、抽出した第２画像を用いて、ビジュアルサーボによりアームを動作させる。これにより、ロボットは、作業対象物の接触状態が変化した時の第２画像に基づく教示内容を取得することができる。
【００１１】
また、本発明の他の態様は、ロボットにおいて、前記第２画像は、入力受付部から入力された複数の前記第１画像から選択された画像である、構成が用いられてもよい。
この構成により、ロボットは、入力受付部から入力された複数の第１画像を第２画像として用いて、ビジュアルサーボによりアームを動作させる。これにより、ロボットは、ユーザーが所望する教示内容を容易に取得することができる。
【００１２】
また、本発明の他の態様は、撮像部と、アームを備えるロボットと、前記アームを動作させる制御装置と、を具備し、前記制御装置は、作業対象物の移動を前記撮像部によって時系列に撮像された複数の第１画像を受け、複数の前記第１画像から、前記作業対象物の運動状態が変化したときの第２画像を抽出し、抽出した前記第２画像を用いて、ビジュアルサーボにより前記アームを動作させる、ロボットシステムである。
この構成により、ロボットシステムは、作業対象物の移動を撮像部によって時系列に撮像された複数の第１画像を受け、複数の第１画像から、作業対象物の運動状態が変化したときの第２画像を抽出し、抽出した第２画像を用いて、ビジュアルサーボによりアームを動作させる。これにより、ロボットシステムは、大きな誤差なく教示内容の情報を取得することができる。
【００１３】
また、本発明の他の態様は、作業対象物の移動を時系列に撮像した複数の第１画像を受け、複数の前記第１画像から、前記作業対象物の運動状態が変化したときの第２画像を抽出し、抽出した前記第２画像を用いて、ビジュアルサーボによりロボットのアームを動作させる、制御装置である。
この構成により、制御装置は、作業対象物の移動を時系列に撮像した複数の第１画像を受け、複数の第１画像から、作業対象物の運動状態が変化したときの第２画像を抽出し、抽出した第２画像を用いて、ビジュアルサーボによりロボットのアームを動作させる。これにより、制御装置は、大きな誤差なく教示内容の情報を取得することができる。
【００１４】
また、本発明の他の態様は、作業対象物の移動を時系列に撮像した複数の第１画像を受け、複数の前記第１画像から、前記作業対象物の運動状態が変化したときの第２画像を抽出し、抽出した前記第２画像を用いて、ビジュアルサーボによりロボットのアームを動作させる、制御方法である。
この構成により、制御方法は、作業対象物の移動を時系列に撮像した複数の第１画像を受け、複数の第１画像から、作業対象物の運動状態が変化したときの第２画像を抽出し、抽出した第２画像を用いて、ビジュアルサーボによりロボットのアームを動作させる。これにより、制御方法は、大きな誤差なく教示内容の情報を取得することができる。
【００１５】
以上により、ロボット、ロボットシステム、制御装置、及び制御方法は、作業対象物の移動を時系列に撮像した複数の第１画像を受け、複数の第１画像から、作業対象物の運動状態が変化したときの第２画像を抽出し、抽出した第２画像を用いて、ビジュアルサーボによりアームを動作させる。これにより、ロボット、ロボットシステム、制御装置、及び制御方法は、大きな誤差なく教示内容の情報を取得することができる。
【図面の簡単な説明】
【００１６】
【図１】第１実施形態に係るロボットシステム１の一例を示す構成図である。
【図２】制御装置３０のハードウェア構成の一例を示す図である。
【図３】制御装置３０の機能構成の一例を示す図である。
【図４】制御部３６による目標画像を抽出する処理の流れの一例を示すフローチャートである。
【図５】第１撮像画像の異なる時刻におけるフレームを例示する図である。
【図６】第１撮像画像から目標画像として抽出されたフレームを例示する図である。
【図７】ロボットシステム１において使用する座標系を例示する図である。
【図８】制御部３６が目標画像に基づくビジュアルサーボによってロボット２０を動作させる処理の流れの一例を示すフローチャートである。
【図９】制御部３６のロボット制御部４２が行う目標画像に基づいたロボット制御処理の流れの一例を示すフローチャートである。
【図１０】第２実施形態に係るロボットシステム２の一例を示す構成図である。
【発明を実施するための形態】
【００１７】
＜第１実施形態＞
以下、本発明の第１実施形態について、図面を参照して説明する。図１は、第１実施形態に係るロボットシステム１の一例を示す構成図である。ロボットシステム１は、第１撮像部１１と、第２撮像部１２と、ロボット２０と、制御装置３０を具備する。
【００１８】
ロボットシステム１は、第１撮像部１１が、作業対象Ｍ１が組付対象Ｏ１に組み付けられる様子を時系列に撮像した複数の画像（複数の第１画像）として撮像し、撮像された複数の画像に基づいて作業対象Ｍ２を組付対象Ｏ２に組み付ける作業に係る動作を制御装置３０に教示する。作業対象Ｍ１は、組付対象Ｏ１へ所定の状態で組み付けられることで使用される部材であり、例えば、プラグである。作業対象Ｍ２は、組付対象Ｏ２へ所定の状態で組み付けられることで使用される部材であり、例えば、プラグである。なお、作業対象Ｍ１と作業対象Ｍ２は、同じ形状の部材であるが、大きさは同じでもよく、異なっていてもよい。また、作業対象Ｍ１と作業対象Ｍ２は、それぞれ作業対象物の一例である。なお、本実施形態では、時系列に撮像した複数の画像の一例として、複数の静止画像から構成される動画像を用いて説明する。
【００１９】
組付対象Ｏ１は、作業対象Ｍ１が所定の状態で組み付けられることで使用される部材であり、例えば、コンセントである。組付対象Ｏ２は、作業対象Ｍ２が所定の状態で組み付けられることで使用される部材であり、例えば、コンセントである。なお、組付対象Ｏ１と組付対象Ｏ２は、同じ形状の部材であるが、大きさは同じでもよく、異なっていてもよい。また、作業対象Ｍ１と作業対象Ｍ２の大きさが異なっていた場合、組付対象Ｏ１と組付対象Ｏ２の大きさの比率は、作業対象Ｍ１と作業対象Ｍ２の大きさの比率と同じである方が好ましい。
【００２０】
以下では、上記の教示の一例として、ユーザーＵが手を用いて作業対象Ｍ１を組付対象Ｏ１に組み付ける様子を第１撮像部１１により撮像する場合について説明するが、ユーザーＵが手を用いて組み付けるのに代えて、他の何らかの方法によって組み付ける様子を第１撮像部１１により撮像してもよい。
【００２１】
ロボットシステム１は、制御装置３０に教示された動作に基づいて作業対象Ｍ２を組付対象Ｏ２に組み付ける作業をロボット２０に行わせる。この時、ロボットシステム１は、第２撮像部１２により撮像された撮像画像に基づいてビジュアルサーボによりロボット２０を制御する。なお、以下の説明では、作業対象Ｍ２は、予めロボット２０の把持部ＨＮＤ（エンドエフェクター）に把持されていることを前提とするが、予め作業対象Ｍ２が把持部ＨＮＤに把持されていない状態であってもよい。その場合、ロボットシステム１は、第２撮像部１２により撮像された撮像画像に基づいて作業対象Ｍ２の位置及び姿勢を検出し、検出された位置及び姿勢に基づいて作業対象Ｍ２を把持する。
【００２２】
第１撮像部１１は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（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）等のハードウェア機能部であってもよい。
【００４０】
制御装置３０は、少なくとも１フレーム以上の目標画像に基づくビジュアルサーボのループの中にコンプライアントモーション制御を組み込むことで、作業対象Ｍ２及び組付対象Ｏ２を破壊することなく作業対象Ｍ２を組付対象Ｏ２に対して相対移動させる。また、制御装置３０は、図示しない計時部を備えており、計時部により計時されたタイミングで、画像取得部３５から第２撮像画像を取得し、それと同じタイミングでロボット２０の力センサー２２から、力センサー２２により検出された力及びモーメントを示す情報を取得する。
【００４１】
画像取得部３５は、第１撮像部１１により撮像された第１撮像画像を取得する。そして、画像取得部３５は、取得された第１撮像画像を記憶部３２に記憶させる。画像取得部３５は、第２撮像部１２により撮像された第２撮像画像を取得する。画像取得部３５は、取得された第２撮像画像を制御部３６に出力する。
制御部３６は、目標画像抽出部４１とロボット制御部４２を備える。
【００４２】
目標画像抽出部４１は、記憶部３２により記憶された第１撮像画像を読み込み、読み込まれた第１撮像画像に基づいて、所定の条件を満たすフレームを目標画像として抽出する。所定の条件とは、作業対象Ｍ１の運動状態が変化したことである。具体的には、作業対象Ｍ１の移動状態が変化したことであり、例えば、速度が変化したこと等である。速度としては、例えば、並進移動速度や、回転角速度が挙げられる。
【００４３】
すなわち、目標画像抽出部４１は、例えば、作業対象Ｍ１の並進移動速度がゼロになった時点におけるフレームを目標画像として抽出する。なお、作業対象Ｍ１の運動状態が変化すればよいので、所定の条件は、作業対象Ｍ２の移動状態が変化したことであることに代えて、作業対象Ｍ１と組付対象Ｏ１の間の接触状態が変化（例えば、点接触から面接触への変化や、非接触状態から接触状態への変化等）したことであってもよく、作業対象Ｍ１の速度が所定の範囲内から逸脱すること、作業対象Ｍ１の速度の絶対値が所定の閾値以上又は所定の閾値以下になったこと等、他の何らかの条件であってもよい。また、所定の条件は、作業対象Ｍ１の速度の絶対値がゼロからノンゼロ、又はノンゼロからゼロになったことであってもよい。また、所定の条件は、作業対象Ｍ１の移動の仕方が変化することであってもよい。目標画像抽出部４１は、抽出された目標画像を記憶部３２に時系列順に記憶させる。
【００４４】
ロボット制御部４２は、画像取得部３５から第２撮像画像を取得する。ロボット制御部４２は、記憶部３２から時系列順に目標画像を読み込む。ロボット制御部４２は、力センサー２２から把持部ＨＮＤ（又は作業対象Ｍ２）に対して働いた力及びモーメントを示す情報を取得する。ロボット制御部４２は、第２撮像画像と、目標画像と、把持部ＨＮＤに対して働いた力及びモーメントを示す情報とに基づいて、コンプライアントモーション制御を組み合わせたビジュアルサーボによってロボット２０を制御するための制御信号を生成し、生成された制御信号をロボット２０に出力することでロボット２０を制御する。
【００４５】
以下、図４を参照して、制御部３６による目標画像を抽出する処理について説明する。図４は、制御部３６による目標画像を抽出する処理の流れの一例を示すフローチャートである。まず、制御部３６は、ユーザーが作業対象Ｍ１と組付対象Ｏ１を組み付ける作業の様子を第１撮像部１１が撮像するように第１撮像部１１を制御する（ステップＳ１００）。なお、第１撮像部１１により撮像される第１撮像画像は、動画像であるとしたが、これに代えて、半動画であってもよい。
【００４６】
次に、画像取得部３５は、第１撮像部１１から第１撮像画像を取得し、取得された第１撮像画像を記憶部３２に記憶させる（ステップＳ１１０）。次に、目標画像抽出部４１は、記憶部３２により記憶された第１撮像画像を読み込む（ステップＳ１２０）。
【００４７】
ここで、図５を参照して、第１撮像画像について説明する。図５は、第１撮像画像の異なる時刻におけるフレームを例示する図である。なお、図５において、作業対象Ｍ１及び組付対象Ｏ１を把持しているユーザーの手を省略した。
【００４８】
図５（Ａ）には、ユーザーにより組付対象Ｏ１に対して作業対象Ｍ１が近づけられている状態が撮像されたフレームの一例を示す。図５（Ａ）において、作業対象Ｍ１は、ユーザーにより矢印の方向に向けて並進移動させられ、組付対象Ｏ１に近づくように移動している状態である。また、図５（Ｂ）には、図５（Ａ）に示したフレームから時間が経過した後の作業対象Ｍ１及び組付対象Ｏ１の状態が撮像されたフレームの一例を示す。図５（Ｂ）において、作業対象Ｍ１は、ユーザーにより矢印の方向に向けて並進させられ、組付対象Ｏ１に嵌め込まれる直前の状態である。
【００４９】
また、図５（Ｃ）には、図５（Ｂ）に示したフレームから時間が経過した後の作業対象Ｍ１及び組付対象Ｏ１の状態が撮像されたフレームの一例を示す。図５（Ｃ）において、作業対象Ｍ１は、ユーザーにより組付対象Ｏ１に嵌め込まれ、矢印の方向に回転させられる直前の状態である。また、図５（Ｄ）には、図５（Ｃ）に示したフレームから時間が経過した後の作業対象Ｍ１及び組付対象Ｏ１の状態が撮像されたフレームの一例を示す。図５（Ｄ）において、作業対象Ｍ１は、組付対象Ｏ１に回転により組み付けられ、作業対象Ｍ１を組付対象Ｏ１に組み付ける作業が完了した状態を示す。
【００５０】
次に、目標画像抽出部４１は、読み込まれた第１撮像画像から少なくとも１フレーム以上の目標画像を抽出する（ステップＳ１３０）。
【００５１】
ここで、図６を参照して、目標画像抽出部４１が第１撮像画像から少なくとも１フレーム以上の目標画像を抽出する処理について説明する。図６は、第１撮像画像から目標画像として抽出されたフレームを例示する図である。目標画像抽出部４１は、第１撮像画像から所定の条件を満たすフレームを目標画像として抽出（キャプチャ）する。つまり、この一例において、目標画像抽出部４１は、作業対象Ｍ１の速度がゼロになった時のフレームを目標画像として抽出する。
【００５２】
より具体的には、目標画像抽出部４１は、例えば、時系列順に並ぶ各フレームから作業対象Ｍ１をパターンマッチング等によって検出し、検出された作業対象Ｍ１が所定時間分のフレームにおいて位置及び姿勢が変化しない（所定誤差の範囲内において変化しない）か否かを判定し、変化していないと判定した場合、作業対象Ｍ１の速度がゼロになったと判定し、当該判定に用いたフレームのいずれか１フレーム（例えば、最後のフレーム等）を目標画像として抽出する。
【００５３】
図５に示した第１撮像画像の場合、作業対象Ｍ１の移動状態が変化したフレームは、作業対象Ｍ１が組付対象Ｏ１に嵌め込まれた時のフレームと、作業対象Ｍ１が回転させられることで組付対象Ｏ１に組み付けが完了した時のフレームとの２つである。図６（Ａ）には、作業対象Ｍ１が組付対象Ｏ１に嵌め込まれた時のフレームの一例を示す。作業対象Ｍ１が組付対象Ｏ１に嵌め込まれた時、作業対象Ｍ１の並進移動速度は、ゼロになる。目標画像抽出部４１は、作業対象Ｍ１の並進移動速度が所定時間分のフレームにおいてゼロであると判定した場合、当該判定に用いたフレームの最後のフレームを目標画像として抽出する。
【００５４】
また、図６（Ｂ）には、作業対象Ｍ１が回転させられることで組付対象Ｏ１に組み付けが完了した時のフレームの一例を示す。作業対象Ｍ１が回転させられることで組付対象Ｏ１に組み付けが完了した時、作業対象Ｍ１の回転角速度は、ゼロになる。目標画像抽出部４１は、作業対象Ｍ１の回転角速度が所定時間分のフレームにおいてゼロであると判定した場合、当該判定に用いたフレームの最後のフレームを目標画像として抽出する。
【００５５】
なお、目標画像抽出部４１は、作業対象Ｍ１の速度がゼロになった時のフレームを目標画像として抽出する構成であるとしたが、これに代えて、作業対象Ｍ１の速度がゼロになった時のフレームとともに、第１撮像画像から所定時間経過毎のフレームを目標画像として抽出する構成であってもよい。また、目標画像抽出部４１は、速度がゼロになった時のフレームを目標画像として抽出する構成に加えて、速度とは異なる何らかの作業対象Ｍ１に係る物理量がゼロになった時のフレームを目標画像として抽出する構成であってもよい。
【００５６】
次に、目標画像抽出部４１は、抽出された目標画像を時系列順に記憶部３２に記憶させる（ステップＳ１４０）。すなわち、目標画像抽出部４１は、この一例において、図６（Ａ）に示した目標画像と、図６（Ｂ）に示した目標画像とを時系列順に記憶部３２に記憶させる。
【００５７】
ここで、図６（Ａ）及び図６（Ｂ）に示したような目標画像に基づいて制御装置３０により行われるロボット制御についての具体例について説明する。以下、説明の便宜上、目標画像が表す状態であって作業対象Ｍ１と組付対象Ｏ１の状態を、単に目標画像が表す状態と称する。制御装置３０は、例えば、目標画像に基づいたビジュアルサーボによってロボット２０を制御する。制御装置３０は、ロボット２０と、ロボット２０の把持部ＨＮＤが把持している作業対象Ｍ２と、ロボット２０により作業対象Ｍ２が組み付けられる組付対象Ｏ２とが含まれる範囲が撮像された第２撮像画像に基づいて、作業対象Ｍ２と組付対象Ｏ２と力センサー２２の相対的な位置関係を導出する。
【００５８】
従って、制御装置３０は、導出された相対的な位置関係と、抽出された少なくとも１フレーム以上の目標画像とに基づいて、目標画像が表す状態を実現させるようにロボット２０を制御する。より具体的には、制御装置３０は、把持部ＨＮＤ及びマニピュレーターＭＮＰによって作業対象Ｍ２を組付対象Ｏ２に対して相対移動させることで、目標画像が表す状態を実現させるようにロボット２０を制御する。
【００５９】
また、制御装置３０は、作業対象Ｍ２を組付対象Ｏ２に対して相対移動させる際、ロボット２０が把持部ＨＮＤにより把持している作業対象Ｍ２を回転させるように、ロボット２０を制御する場合がある。この場合、制御装置３０は、作業対象Ｍ２を、作業対象Ｍ２に設定された所定位置（以下、回転中心位置と称する）を中心として回転させるようにロボット２０を制御する。なお、以下では、回転中心位置における作業対象Ｍ２の姿勢を、回転中心姿勢と称する。
【００６０】
この制御において、制御装置３０は、作業対象Ｍ２と力センサー２２の相対的な位置及び姿勢（相対的な位置関係）が変化した場合であっても、第２撮像画像から相対的な位置関係が変化した後の回転中心位置及び回転中心姿勢を検出する。そして、制御装置３０は、ロボット２０に作業対象Ｍ２を回転させる動作を行わせる際、検出された回転中心位置を中心として、回転中心姿勢を基準に作業対象Ｍ２を回転させるようにロボット２０を制御する。また、制御装置３０は、ロボット２０に作業対象Ｍ２を並進させる際、検出された回転中心姿勢を基準に並進させるようにロボット２０を制御する。
【００６１】
なお、回転中心位置は、ユーザー（例えば、図１におけるユーザーＵ等）により作業対象Ｍ２上の任意の位置に設定（制御装置３０の記憶部３２に記憶）される。また、回転中心姿勢は、回転中心位置における作業対象Ｍ２の姿勢としたが、作業対象Ｍ２の姿勢と対応付けられた姿勢であれば、作業対象Ｍ２の姿勢と一致していなくてもよい。
このように、本実施形態における制御装置３０は、目標画像に基づくビジュアルサーボによってロボット２０を動作させる構成とするが、これに代えて、目標画像に基づいた他の何らかのロボット制御によってロボット２０を動作させる構成であってもよい。
【００６２】
ここで、制御装置３０が前記のビジュアルサーボによるロボット制御を行う際に使用する座標系について図７を参照して説明する。図７は、ロボットシステム１において使用する座標系を例示する図である。なお、以下の説明では、「＿」の後に記載した文字が、「＿」の手前の文字の下付き添え字を表すとして説明する。
【００６３】
制御装置３０は、図７に示したように、７つの三次元直交座標系、すなわち、撮像部座標系Σ＿ｃと、作業座標系Σ＿ｗと、ツール座標系Σ＿ｔと、重心座標系Σ＿ｇと、作業対象座標系Σ＿ｍと、外力座標系Σ＿ｅと、組付対象座標系Σ＿ｏを用いて、ロボット２０が所定の作業を行うように制御するための処理を行う。これら７つの座標系の原点及び座標軸の方向は、ユーザーにより制御装置３０に設定（記憶又は登録）される。
【００６４】
これら７つの座標系の原点はいずれも、対象Ｘ（今の場合、第２撮像部１２、ロボット２０の支持台、力センサー２２、作業対象Ｍ２の重心、作業対象Ｍ２の回転中心、作業対象Ｍ２、組付対象Ｏ２）の位置を表すように、対象Ｘに付随して動くように設定される。また、これら７つの座標系の座標軸の方向はいずれも、対象Ｘの姿勢を表すように、対象Ｘの姿勢変化に付随して動くように設定される。なお、ユーザーは、対象Ｘの位置と座標系の原点の位置を対応付けることができ、さらに、対象Ｘの傾きと座標系の方向を対応付けることができる前提で、対象Ｘに対して設定する座標系の原点の位置と座標軸の方向を任意の位置と方向に設定してもよい。
【００６５】
撮像部座標系Σ＿ｃは、第２撮像部１２の位置（例えば、撮像素子上の予め決められた位置を原点とする）及び姿勢を表す座標系である。
作業座標系Σ＿ｗは、ロボット２０の支持台の位置及び姿勢を表す座標系である。
ツール座標系Σ＿ｔは、力センサー２２の位置（例えば、力センサー２２の重心や、力センサー２２の位置を示すマーカーの位置を原点とする）及び姿勢に設定された座標系である。なお、本実施形態において、ツール座標系Σ＿ｔは、説明を簡略化するため、力センサー２２の位置及び姿勢を表すとともに、把持部ＨＮＤの位置及び姿勢を表す。
【００６６】
一般的には、力センサー２２の位置及び姿勢を表すセンサー座標系と、把持部ＨＮＤの位置及び姿勢を表す手先（把持部）座標系とは一致せず、制御装置３０は、作業座標系とセンサー座標系との相対的な位置関係と、センサー座標系と手先座標系との相対的な位置関係とを用いて、作業座標系と手先座標系との相対的な位置関係を算出し、算出された作業座標系と手先座標系との相対的な位置関係に基づいたロボット２０の制御を行う。
【００６７】
重心座標系Σ＿ｇは、作業対象Ｍ２の重心の位置及び姿勢を表す座標系である。
作業対象座標系Σ＿ｍは、作業対象Ｍ２（例えば、初期状態において把持部ＨＮＤから最も離れた作業対象Ｍ２上の位置等）の位置及び姿勢を表す座標系である。
外力座標系Σ＿ｅは、対象物に働く外力及び外モーメントを定義する座標系である。又、本実施形態では、コンプライアントモーション制御による運動を定義する座標系を外力座標系Σ＿ｅと一致させる。すなわち、コンプライアントモーション制御による回転運動は外力座標系Σ＿ｅの姿勢を基準として、外力座標系Σ＿ｅの原点周りの回転で表される。ただし、これらは一致させなくともよく、ユーザーが任意に配置することが可能である。
【００６８】
なお、以下では、区別する必要が無い限り、対象物に働く外力（すなわち、力センサーによって検出される外力）を単に力と称し、外モーメント（すなわち、力センサーによって検出されるモーメント）をモーメントと称する。上述したように、回転中心位置は、ユーザーにより任意の位置に設定することができるが、本実施形態では、作業対象Ｍ２上の所定位置に設定されたものとして説明する。
【００６９】
組付対象座標系Σ＿ｏは、組付対象Ｏ２（例えば、作業対象Ｍ２に最も近い組付対象Ｏ２上の位置）の位置及び姿勢を表す座標系である。
以下の説明では、座標系が対象Ｘに付随して動くため、座標系ａにおける座標系ｂの原点の位置を、座標系ｂが設定された対象Ｘの位置として説明する。例えば、作業座標系Σ＿ｗにおける作業対象座標系Σ＿ｍの原点の位置を、作業座標系Σ＿ｗにおける作業対象Ｍ２の位置と称する。これと同様に、座標系ａにおける座標系ｂの姿勢を、座標系ｂが設定された対象Ｘの姿勢として説明する。例えば、作業座標系Σ＿ｗにおける作業対象座標系Σ＿ｍの姿勢を、作業座標系Σ＿ｗにおける作業対象Ｍ２の姿勢と称する。
【００７０】
ここで、より具体的な説明を記載する前に、制御装置３０が行う処理について説明するために用いる数式の表記法を示す。まず、以下の説明では、「＾」の後に記載した文字が、「＾」の手前の文字の上付き添え字を表すとして説明する。また、「（→）」が付記された一番手前の文字をベクトルとして説明する。また、「（＾）」が付記された一番手前の文字を行列として説明する。
【００７１】
これらの表記法の下では、座標系ａにおいて、座標系ｂが設定された対象Ｘの位置を表すベクトルを、位置ベクトルｐ＿ｂ＾ａ（→）と表す。位置ベクトルｐ＿ｂ＾ａ（→）は、以下の式（１）に示したように、座標系ｂにおける対象Ｘのｘ座標ｘ＾ｂ、ｙ座標ｙ＾ｂ、ｚ座標ｚ＾ｂで定義される。
【００７２】
【数１】
2015221485.tif 000003
【００７３】
位置ベクトルの表記法と同様に、座標系ａにおいて座標系ｂが設定された対象Ｘの姿勢を表すベクトルを、姿勢ベクトルｏ＿ｂ＾ａ（→）と表す。姿勢ベクトルｏ＿ｂ＾ａ（→）は、以下の式（２）に示したように、その成分を、オイラー角（α＿ｂ＾ａ，β＿ｂ＾ａ，γ＿ｂ＾ａ）を用いて以下の式（２）のように表す。
【００７４】
【数２】
2015221485.tif 000004
【００７５】
ここで、オイラー角は座標系ａのｘ軸、ｙ軸及びｚ軸を、それぞれ座標系ｂのｘ軸、ｙ軸及びｚ軸に一致させるために、座標系ａのｚ軸、ｙ軸及びｘ軸周りに回転させる角度として定義され、それぞれγ＿ｂ＾ａ、β＿ｂ＾ａ及びα＿ｂ＾ａと表す。
【００７６】
座標系ｂの姿勢で表された対象Ｘの位置や姿勢を、座標系ａの姿勢で表された対象Ｘの位置や姿勢に回転させる時の回転行列を、回転行列Ｒ＿ｂ＾ａ（＾）と表す。尚、上述のオイラー角と回転行列の間には以下に示した式（３）の関係がある。
【００７７】
【数３】
2015221485.tif 000005
【００７８】
ここで、上記の式（１）〜（３）で示したベクトルは、以下の変換式（４）〜（６）で添え字の上下を入れ替えることができる。
【００７９】
【数４】
2015221485.tif 000006
【００８０】
【数５】
2015221485.tif 000007
【００８１】
【数６】
2015221485.tif 000008
【００８２】
ここで、［Ｒ＿ｂ＾ａ（＾）］＾Ｔは、Ｒ＿ａ＾ｂの転置行列を表す。すなわち、回転行列の添え字は、回転行列を転置することによって入れ替えることができ、ベクトルの添え字は、回転行列によって入れ替えることができる。なお、以下では、座標系ａにおいて座標系ｂが設定された対象Ｘの位置を示す位置ベクトルｐ＿ｂ＾ａ（→）を、必要がある場合を除いて、単に座標系ａにおける対象Ｘの位置と称する。例えば、撮像部座標系Σ＿ｃにおいて表された組付対象Ｏ２に設定された組付対象座標系Σ＿ｏの原点の位置を示す位置ベクトルｐ＿ｏ＾ｃ（→）を、単に撮像部座標系Σ＿ｃにおける組付対象Ｏ２の位置と称する。
【００８３】
位置の場合と同様に、以下では、座標系ａにおいて座標系ｂが設定された対象Ｘの姿勢を示す姿勢ベクトルｏ＿ｂ＾ａ（→）を、必要がある場合を除いて、単に座標系ａにおける対象Ｘの姿勢と称する。例えば、撮像部座標系Σ＿ｃにおいて表された組付対象Ｏ２に設定された組付対象座標系Σ＿ｏの姿勢を示す姿勢ベクトルｏ＿ｏ＾ｃ（→）を、単に撮像部座標系Σ＿ｃにおける組付対象Ｏ２の姿勢と称する。
【００８４】
以下、図８を参照して、制御部３６が目標画像に基づくビジュアルサーボによってロボット２０を動作させる処理について説明する。図８は、制御部３６が目標画像に基づくビジュアルサーボによってロボット２０を動作させる処理の流れの一例を示すフローチャートである。まず、ロボット制御部４２は、入力受付部３３を介してユーザーから入力された位置と姿勢であって、図１に示したように設置された状態の作業対象座標系Σ＿ｍにおける組付対象Ｏ２の位置ｐ＿ｏ＾ｍ（→）と姿勢ｏ＿ｏ＾ｍ（→）を設定する（ステップＳ２００）。
【００８５】
次に、ロボット制御部４２は、入力受付部３３を介してユーザーから入力された回転中心位置と回転中心姿勢であって、作業対象座標系Σ＿ｍにおける回転中心位置ｐ＿ｅ＾ｍ（→）と回転中心姿勢ｏ＿ｅ＾ｍ（→）を設定する（ステップＳ２１０）。ステップＳ２００からステップＳ２１０までが、ユーザーにより行われる制御装置３０への初期設定である。次に、ロボット制御部４２は、記憶部３２から時系列順に目標画像を読み込む（ステップＳ２２０）。
【００８６】
次に、ロボット制御部４２は、ステップＳ２２０で読み込まれた目標画像を時系列順に選択し、選択された目標画像に基づいてステップＳ２４０の処理を繰り返し行う（ステップＳ２３０）。制御部３６の各機能部は、選択された目標画像と、設定された組付対象Ｏ２の位置ｐ＿ｏ＾ｍ（→）と姿勢ｏ＿ｏ＾ｍ（→）と、作業対象座標系Σ＿ｍにおける回転中心位置ｐ＿ｅ＾ｍ（→）と回転中心姿勢ｏ＿ｅ＾ｍ（→）とに基づいたビジュアルサーボによってロボット２０を動作させるロボット制御処理を行う（ステップＳ２４０）。
【００８７】
ここで、図９を参照して、制御部３６のロボット制御部４２が行う目標画像に基づいたロボット制御処理について説明する。図９は、制御部３６のロボット制御部４２が行う目標画像に基づいたロボット制御処理の流れの一例を示すフローチャートである。ここから、ステップＳ２３０の後に、第２撮像部１２による撮像が開始され、制御部３６が画像取得部３５から第２撮像画像を取得したものとして説明する。制御部３６が第２撮像画像を取得した後、ロボット制御部４２は、画像取得部３５により取得された第２撮像画像に基づいて、撮像部座標系Σ＿ｃにおける組付対象Ｏ２の位置ｐ＿ｏ＾ｃ（→）と姿勢ｏ＿ｏ＾ｃ（→）を検出する（ステップＳ３００）。
【００８８】
次に、ロボット制御部４２は、図８に示したフローチャートにおけるステップＳ２００の処理で設定された作業対象座標系Σ＿ｍにおける組付対象Ｏ２の位置ｐ＿ｏ＾ｍ（→）及び姿勢ｏ＿ｏ＾ｍ（→）と、ステップＳ３００で検出された撮像部座標系Σ＿ｃにおける組付対象Ｏ２の位置ｐ＿ｏ＾ｃ（→）及び姿勢ｏ＿ｏ＾ｃ（→）と、選択された目標画像とに基づいて、以下に示した式（７）から、選択された目標画像が表す作業対象Ｍ２と組付対象Ｏ２の状態における作業対象Ｍ２の目標位置と姿勢であって、撮像部座標系Σ＿ｃにおける作業対象Ｍ２の目標位置ｐ＿ｍ＾ｃ（ｄ）（→）と姿勢ｏ＿ｍ＾ｃ（ｄ）（→）を算出する（ステップＳ３１０）。目標位置とは、ロボット制御部４２が導出した動作完了時の撮像部座標系Σ＿ｃにおける作業対象Ｍ２の位置である。また、以下では、ロボット制御部４２が導出した動作完了時の撮像部座標系Σ＿ｃにおける作業対象Ｍ２の姿勢を目標姿勢と称する。
【００８９】
【数７】
2015221485.tif 000009
【００９０】
より具体的には、ロボット制御部４２は、目標画像に基づいて、作業対象Ｍ２と組付対象Ｏ２の間の撮像部座標系Σ＿ｃにおける相対位置及び姿勢を検出する。なお、第１撮像部１１の撮像部座標系と第２撮像部１２の撮像部座標系Σ＿ｃとは、キャリブレーション等によって対応付けられているものとする。そして、ロボット制御部４２は、検出された作業対象Ｍ２と組付対象Ｏ２の間の撮像部座標系Σ＿ｃにおける相対位置及び姿勢と、ステップＳ２００の処理で設定された作業対象座標系Σ＿ｍにおける組付対象Ｏ２の位置ｐ＿ｏ＾ｍ（→）及び姿勢ｏ＿ｏ＾ｍ（→）と、ステップＳ３００で検出された撮像部座標系Σ＿ｃにおける組付対象Ｏ２の位置ｐ＿ｏ＾ｃ（→）及び姿勢ｏ＿ｏ＾ｃ（→）とに基づいて、上記の式（７）から、選択された目標画像が表す作業対象Ｍ２と組付対象Ｏ２の状態における作業対象Ｍ２の目標位置と姿勢であって、撮像部座標系Σ＿ｃにおける作業対象Ｍ２の目標位置ｐ＿ｍ＾ｃ（ｄ）（→）と姿勢ｏ＿ｍ＾ｃ（ｄ）（→）を算出する。
【００９１】
ここで、撮像部座標系Σ＿ｃにおける作業対象Ｍ２の目標位置ｐ＿ｍ＾ｃ（ｄ）（→）及び姿勢ｏ＿ｍ＾ｃ（ｄ）（→）の「（ｄ）」は、ステップＳ３２０でロボット制御部４２により検出される撮像部座標系Σ＿ｃにおける作業対象Ｍ２の位置ｐ＿ｍ＾ｃ（→）及び姿勢ｏ＿ｍ＾ｃ（→）と区別するために付記したラベルである。
【００９２】
ステップＳ３００からステップＳ３１０までの処理は、制御部３６が、第２撮像部１２と組付対象Ｏ２の相対的な位置及び姿勢と、選択された目標画像が表す状態であって、作業対象Ｍ２と組付対象Ｏ２の状態における作業対象Ｍ２と組付対象Ｏ２の相対的な位置関係（位置及び姿勢）とに基づいて、選択された目標画像が表す状態における作業対象Ｍ２と、第２撮像部１２との相対的な位置及び姿勢を間接的に算出するための処理である。
【００９３】
次に、ロボット制御部４２は、取得された第２撮像画像から、撮像部座標系Σ＿ｃにおける作業対象Ｍ２の位置ｐ＿ｍ＾ｃ（→）と姿勢ｏ＿ｍ＾ｃ（→）を検出する（ステップＳ３２０）。次に、ロボット制御部４２は、取得された第２撮像画像から、ツール座標系Σ＿ｔにおける第２撮像部１２の位置ｐ＿ｃ＾ｔ（→）と姿勢ｏ＿ｃ＾ｔ（→）を検出する（ステップＳ３３０）。
【００９４】
次に、ロボット制御部４２は、ステップＳ３２０で算出された撮像部座標系Σ＿ｃにおける作業対象Ｍ２の位置ｐ＿ｍ＾ｃ（→）及び姿勢ｏ＿ｍ＾ｃ（→）と、ステップＳ３３０で算出されたツール座標系Σ＿ｔにおける第２撮像部１２の位置ｐ＿ｃ＾ｔ（→）及び姿勢ｏ＿ｃ＾ｔ（→）に基づいて、以下に示した式（８）から、ツール座標系Σ＿ｔにおける回転中心の位置ｐ＿ｅ＾ｔ（→）と姿勢ｏ＿ｅ＾ｔ（→）を算出する（ステップＳ３４０）。
【００９５】
【数８】
2015221485.tif 000010
【００９６】
ここで、ステップＳ３４０の処理は、力センサー２２と上述の回転中心位置及び回転中心姿勢の相対的な位置関係の変化を検出する処理である。ステップＳ３４０において算出されたツール座標系Σ＿ｔにおける回転中心の位置ｐ＿ｅ＾ｔ（→）と姿勢ｏ＿ｅ＾ｔ（→）が、前のルーチンで算出された値と異なることは、力センサー２２と回転中心位置及び回転中心姿勢の相対的な位置関係が、外力によって変化させられたことを示す。制御部３６は、この変化を検出することで、外力によって力センサー２２に対する回転中心位置及び回転中心姿勢が変化されたとしても、変化された後の力センサー２２に対する回転中心位置及び回転中心姿勢に基づいて、ロボット２０が常に回転中心位置を中心として、回転中心姿勢を基準に作業対象Ｍ２を回転するように制御することができる。
【００９７】
次に、ロボット制御部４２は、順運動学に基づいて、作業座標系Σ＿ｗにおける力センサー２２の位置ｐ＿ｔ＾ｗ（→）と姿勢ｏ＿ｔ＾ｗ（→）を算出する（ステップＳ３５０）。次に、ロボット制御部４２は、ステップＳ３４０で算出されたツール座標系Σ＿ｔにおける回転中心位置ｐ＿ｅ＾ｔ（→）と回転中心姿勢ｏ＿ｅ＾ｔ（→）と、ステップＳ３５０で算出された作業座標系Σ＿ｗにおける力センサー２２の位置ｐ＿ｔ＾ｗ（→）及び姿勢ｏ＿ｔ＾ｗ（→）に基づいて、以下に示した式（９）から、外力座標系Σ＿ｅにおけるロボット２０の支持台の位置ｐ＿ｗ＾ｅ（→）と姿勢ｏ＿ｗ＾ｅ（→）を算出する（ステップＳ３６０）。
【００９８】
【数９】
2015221485.tif 000011
【００９９】
ここで、制御部３６は、ステップＳ３６０の処理によって、外力座標系Σ＿ｅにおけるロボット２０の支持台の位置ｐ＿ｗ＾ｅ（→）と姿勢ｏ＿ｗ＾ｅ（→）を算出することで、力センサー２２に働いた力及びモーメントにより回転中心位置に働いた力及びモーメントを、次のステップＳ３７０の処理で算出することができる。
【０１００】
次に、ロボット制御部４２は、力センサー２２により検出された力とモーメントであって、ツール座標系Σ＿ｔにおける力ｆ＾ｔ（→）とモーメントｍ＾ｔ（→）に基づいて、以下に示したニュートン・オイラー方程式（１０）から、外力座標系Σ＿ｅにおける力（すなわち、回転中心位置に働いた力）ｆ＾ｅ（→）とモーメント（すなわち、回転中心位置に生じたモーメント）ｍ＾ｅ（→）を算出する（ステップＳ３７０）。
【０１０１】
【数１０】
2015221485.tif 000012
【０１０２】
ここで、上記の式（１０）における上段式は、作業対象Ｍ２の回転中心位置に働いた外力の成分ｆ＾ｅ（→）が、力センサー２２によって検出された力の成分ｆ＾ｔ（→）から、重力による成分ｍＥ（＾）ｇ（→）とロボット２０のマニピュレーターＭＮＰによる慣性運動による成分ｍＥ（＾）ｐ＿ｃ＾ｗ（→）（・・）を差し引いた成分で表されることを示している。なお、「（・・）」が付記された一番手前の文字は、時間について二回微分された変数を表している。また、行列Ｅ（＾）は、単位行列であり、ベクトルｇ（→）は、重力加速度を表すベクトルであり、スカラーｍは、作業対象Ｍ２の質量を表す。
【０１０３】
前記の上段式と同様に、下段式は、作業対象Ｍ２に働いた外力により回転中心に生じたモーメントｍ＾ｅが、ねじりモーメントの成分Ｉ（＾）ｏ＿ｃ＾ｗ（→）（・・）と、コリオリの力によるモーメントの成分ｏ＿ｃ＾ｗ（→）（・）×Ｉ（＾）ｏ＿ｃ＾ｗ（→）（・）と、力センサー２２により検出されたモーメントｍ＾ｔ（→）と、力センサー２２によって検出された力の成分ｆ＾ｔ（→）によるモーメントの成分ｐ＿ｅ＾ｔ（→）×ｆ＾ｔ（→）を加算したものから、重力によるモーメントの成分ｐ＿ｇ＾ｔ（→）×ｍＲ＿ｗ＾ｔ（＾）ｇ（→）を差し引いた成分で表されることを示している。
【０１０４】
次に、ロボット制御部４２は、ステップＳ３７０で算出された外力座標系Σ＿ｅにおける力ｆ＾ｅ（→）及びモーメントｍ＾ｅ（→）に基づいて、以下に示した式（１１）から、外力座標系Σ＿ｅにおける作業対象Ｍ２の緩和動作量の微小緩和移動量Δｐ＾ｅ（→）と微小緩和回転量Δｏ＾ｅ（→）を算出する（ステップＳ３８０）。
【０１０５】
【数１１】
2015221485.tif 000013
【０１０６】
ここで、ステップＳ３８０で用いられる式（１１）のΔＰ＾ｅ（→）及びΔＯ＾ｅ（→）は、それぞれΔｐ＾ｅ（→）及びΔｏ＾ｅ（→）をラプラス変換したものである。また、式（１１）は、作業対象Ｍ２に設定されている回転中心位置が外力を受けたときに、その外力を緩和させる方向に移動するべき動作量（微小移動量及び微小回転量）を決定する運動モデルに依って異なる。
【０１０７】
本実施形態では、上記の式（１１）に示したように、微小移動量に関する慣性質量行列Ｍ＿ｐ（＾）、ダンパー係数行列Ｄ＿ｐ（＾）、バネ乗数行列Ｋ＿ｐ（＾）と、微小回転量に関する慣性質量行列Ｍ＿ｏ（＾）、ダンパー係数行列Ｄ＿ｏ（＾）、バネ乗数行列Ｋ＿ｏ（＾）とによって表される運動モデルを採用している。
【０１０８】
このような運動モデルによって行われる制御は、コンプライアントモーション制御のうちインピーダンス制御と呼ばれる。なお、スカラーｓは、ラプラス変換に用いる変数である。コンプライアントモーション制御としては、インピーダンス制御に限定されるものではなく、例えばスティフネス制御やダンピング制御を適用しても良い。
【０１０９】
次に、ロボット制御部４２は、ステップＳ３８０で算出された外力座標系Σ＿ｅにおける作業対象Ｍ２の緩和動作量に基づいて、以下に示した式（１２）から、作業座標系Σ＿ｗにおける力センサー２２の緩和動作量として微小緩和移動量Δｐ＿ｔ＾ｗ（ｉ）（→）と微小緩和回転量Δｏ＿ｔ＾ｗ（ｉ）（→）を算出する（ステップＳ３９０）。
【０１１０】
【数１２】
2015221485.tif 000014
【０１１１】
ここで、緩和動作量である微小緩和移動量Δｐ＿ｔ＾ｗ（ｉ）（→）と微小緩和回転量Δｏ＿ｔ＾ｗ（ｉ）（→）における「（ｉ）」は、緩和動作量と目標動作量を区別するためのラベルである。制御部３６のロボット制御部４２は、ステップＳ３８０からステップＳ３９０までの処理によりロボット制御部４２が算出した作業座標系Σ＿ｗにおける緩和動作量に基づいて、回転中心位置に働いた力及びモーメントが緩和される位置まで、力センサー２２の位置及び姿勢を移動するようにロボット２０を制御することができる。
【０１１２】
次に、ロボット制御部４２は、ステップＳ３１０で算出された目標画像が表す作業対象Ｍ２と組付対象Ｏ２の状態の撮像部座標系Σ＿ｃにおける作業対象Ｍ２の目標位置ｐ＿ｍ＾ｃ（ｄ）（→）及び姿勢ｏ＿ｍ＾ｃ（ｄ）（→）と、ステップＳ３２０で検出された撮像部座標系Σ＿ｃにおける作業対象Ｍ２の位置ｐ＿ｍ＾ｃ（→）と姿勢ｏ＿ｍ＾ｃ（→）に基づいて、以下に示した式（１３）から、作業対象Ｍ２を目標位置及び姿勢に移動させるための目標動作量であって、撮像部座標系Σ＿ｃにおける目標動作量として微小目標移動量Δｐ＿ｍ＾ｃ（→）と微小目標回転量Δｏ＿ｍ＾ｃ（→）を算出する（ステップＳ４００）。
【０１１３】
【数１３】
2015221485.tif 000015
【０１１４】
次に、ロボット制御部４２は、ステップＳ４００で算出された撮像部座標系Σ＿ｃにおける作業対象Ｍ２の目標動作量に基づいて、以下に示した式（１４）から、作業座標系Σ＿ｗにおける力センサー２２の目標動作量として微小目標移動量Δｐ＿ｔ＾ｗ（ｖ）（→）と微小目標回転量Δｏ＿ｔ＾ｗ（ｖ）（→）を算出する（ステップＳ４１０）。
【０１１５】
【数１４】
2015221485.tif 000016
【０１１６】
ここで、目標動作量である微小目標移動量Δｐ＿ｔ＾ｗ（ｖ）（→）と微小目標回転量Δｏ＿ｔ＾ｗ（ｖ）（→）における「（ｖ）」は、目標動作量と緩和動作量を区別するためのラベルである。
【０１１７】
次に、ロボット制御部４２は、ステップＳ３９０で算出された緩和動作量と、ステップＳ４１０で算出された目標動作量を、以下に示した式（１５）のように加算した加算微小移動量Δｐ＿ｔ＾ｗ（→）及び加算微小回転量Δｏ＿ｔ＾ｗ（→）を算出する（ステップＳ４２０）。
【０１１８】
【数１５】
2015221485.tif 000017
【０１１９】
次に、ロボット制御部４２は、ステップＳ４２０で算出された加算微小移動量Δｐ＿ｔ＾ｗ（→）及び加算微小回転量Δｏ＿ｔ＾ｗ（→）の両方が、それぞれに対する所定の閾値未満か否かを判定する（ステップＳ４３０）。なお、前記のそれぞれに対する所定の閾値は、それぞれが別に設定される。ロボット制御部４２は、加算微小移動量Δｐ＿ｔ＾ｗ（→）及び加算微小回転量Δｏ＿ｔ＾ｗ（→）の両方が、それぞれに対する所定の閾値未満であると判定した場合（ステップＳ４３０−Ｙｅｓ）、作業対象Ｍ２をこれ以上動かす必要がないと判断して処理を終了する。
【０１２０】
一方、ロボット制御部４２が加算微小移動量Δｐ＿ｔ＾ｗ（→）及び加算微小回転量Δｏ＿ｔ＾ｗ（→）のうちいずれか一方又は両方が、それぞれに対する所定の閾値未満ではないと判定した場合（ステップＳ４３０−Ｎｏ）、ロボット制御部４２は、ステップＳ３９０で算出された緩和動作量と、ステップＳ４１０で算出された目標動作量とに基づいて、以下に示した式（１６）から、作業座標系Σ＿ｗにおける力センサー２２の目標位置ｐ＿ｔ＾ｗ（ｄ）（→）及び姿勢ｏ＿ｔ＾ｗ（ｄ）（→）を算出する（ステップＳ４４０）。
【０１２１】
【数１６】
2015221485.tif 000018
【０１２２】
なお、ロボット制御部４２は、ステップＳ４２０で算出された加算微小移動量Δｐ＿ｔ＾ｗ（→）及び加算微小回転量Δｏ＿ｔ＾ｗ（→）の両方が、それぞれに対する所定の閾値未満か否かを判定する構成に代えて、ステップＳ４１０で算出された微小目標移動量Δｐ＿ｔ＾ｗ（ｖ）（→）と微小目標回転量Δｏ＿ｔ＾ｗ（ｖ）（→）の両方が、それぞれに対する所定の閾値未満であるか否かを判定する構成であってもよい。また、ロボット制御部４２は、ロボット２０に行わせる動作毎の性質に応じて、Δｐ＿ｔ＾ｗ（→）（ｉ）、Δｏ＿ｔ＾ｗ（ｉ）、Δｐ＿ｔ＾ｗ（→）（ｖ）及びΔｏ＿ｔ＾ｗ（ｖ）で構成される任意の関数を用いて、前記関数から得られる値が所定の閾値未満か否か（作業対象Ｍ２をこれ以上動かす必要があるか否か）を判定する構成であってもよい。
【０１２３】
次に、ロボット制御部４２は、力センサー２２の位置及び姿勢が、ステップＳ４４０で算出された作業座標系Σ＿ｗにおける力センサー２２の目標位置ｐ＿ｔ＾ｗ（ｄ）（→）及び姿勢ｏ＿ｔ＾ｗ（ｄ）（→）と一致するように、力センサー２２を移動させるようにロボット２０を制御する（ステップＳ４５０）。制御部３６は、ステップＳ３００〜ステップＳ４５０の処理を、ステップＳ４３０の判定によって作業対象Ｍ２をこれ以上動かす必要がないと判断されるまで繰り返すことで、目標画像が表す状態を実現するための動作をロボット２０が行うように制御する。
【０１２４】
なお、ロボット制御部４２は、ステップＳ３３０からステップＳ３６０までの処理において、例えば、力センサー２２がマニピュレーターＭＮＰの内部に備えられ、外部から見えず、第２撮像部１２により力センサー２２を撮像することができない場合、上述した力センサー２２の位置を示すマーカーを備える構成としてもよく、ユーザーにより設定された力センサー２２と回転中心位置及び回転中心姿勢の初期状態における相対的な位置関係に基づいて、以下に示した式（１７）〜式（１９）から、外力座標系Σ＿ｅにおける力センサー２２の位置ｐ＿ｔ＾ｅ（→）と姿勢ｏ＿ｔ＾ｅ（→）を逐次計算する構成としてもよい。
【０１２５】
【数１７】
2015221485.tif 000019
【０１２６】
【数１８】
2015221485.tif 000020
【０１２７】
【数１９】
2015221485.tif 000021
【０１２８】
上記の式（１７）〜式（１９）は、第２撮像画像から検出される作業対象Ｍ２の移動量から、ロボット２０自身が動いた量を差し引くことで、力センサー２２と作業対象Ｍ２の相対的な位置関係がずれた量を算出する式である。なお、ロボット２０自身が動いた量は、制御部３６によりロボット２０の初期状態に基づいて算出される。ユーザーにより設定された力センサー２２と回転中心位置及び回転中心姿勢の初期状態における相対的な位置関係及び上記の式（１７）〜（１９）を用いる構成は、作業対象Ｍ２と力センサー２２が第２撮像部１２の撮像範囲に収まらない場合、すなわち、力センサー２２の位置を示すマーカーを用いていても力センサー２２の位置を検出できない場合であっても、作業対象Ｍ２の位置及び姿勢と力センサー２２の位置及び姿勢を追跡できるため、有用である。
【０１２９】
ロボット制御部４２は、上記の式（１７）〜式（１９）を用いた逐次計算をすることによって、第２撮像部１２により力センサー２２を撮像することができない場合であっても、第２撮像部１２により力センサー２２を撮像できる場合と同様にステップＳ３３０からステップＳ３６０の処理を行うことができる。その結果として、制御部３６は、力センサー２２と作業対象Ｍ２に設定された所定位置との相対的な位置関係に基づいて、ロボット２０が動作を行うようにロボット２０を制御することができる。なお、第２撮像部１２により力センサー２２が撮像することができない場合とは、例えば、力センサー２２がマニピュレーターＭＮＰの部材に覆われていた場合や、第２撮像部１２の画角から力センサー２２を含むマニピュレーターＭＮＰが外れてしまうような場合等である。
【０１３０】
＜第１実施形態の変形例１＞
以下、本発明の第１実施形態の変形例１について説明する。第１実施形態の変形例１に係る制御装置３０の制御部３６は、第１撮像画像から抽出された目標画像を選択し、選択された目標画像に基づいてビジュアルサーボを行う構成に代えて、第１撮像画像から抽出された目標画像とともに、ユーザーにより入力受付部３３から受け付けた静止画像を目標画像として選択し、選択された目標画像に基づいてビジュアルサーボを行う。
【０１３１】
これにより、制御部３６は、第１撮像画像から所定の条件によって抽出することができない作業対象Ｍ２と組付対象Ｏ２の状態を表す目標画像に基づいて、ビジュアルサーボを行うことができる。その結果として、ユーザーは、制御部３６に対して、より詳細なロボット２０の動作を、より簡易に教示することができる。
【０１３２】
＜第１実施形態の変形例２＞
以下、本発明の第１実施形態の変形例２について説明する。第１実施形態の変形例２に係る制御装置３０の制御部３６は、第１撮像画像から所定の条件を満たしたフレームを目標画像として抽出する。所定の条件とは、例えば、作業対象Ｍ１が所定時間静止していることである。
【０１３３】
これにより、ユーザーは、第１撮像部１１により第１撮像画像が撮像される際、制御部３６に対して教示したい動作に係る状態毎に、作業対象Ｍ２を少なくとも所定時間以上静止させることで、所望の目標画像を制御部３６に抽出させることができる。その結果として、ユーザーは、制御部３６に対して、より詳細なロボット２０の動作を、より簡易に教示することができる。
【０１３４】
以上説明したように、第１実施形態に係るロボットシステム１は、作業対象Ｍ１の移動を時系列に撮像した複数の第１撮像画像を受け、複数の第１撮像画像から、作業対象Ｍ１の運動状態が変化したときのフレームを目標画像として抽出し、抽出した目標画像を用いて、ビジュアルサーボによりマニピュレーターＭＮＰを動作させる。これにより、ロボットシステム１は、大きな誤差なく教示内容の情報を取得することができる。その結果、ロボットは、教示された動作をビジュアルサーボによって行うことができる。また、ロボットシステム１は、動作の教示を容易に行うことができる。
【０１３５】
また、ロボットシステム１は、作業対象Ｍ１の移動状態が変化したときのフレームを目標画像として抽出し、抽出した目標画像を用いて、ビジュアルサーボによりマニピュレーターＭＮＰを動作させる。これにより、ロボットシステム１は、作業対象Ｍ１の移動状態が変化した時の目標画像に基づく教示内容を取得することができる。
【０１３６】
また、ロボットシステム１は、作業対象Ｍ１の速度が変化した時のフレームを目標画像として抽出し、抽出した目標画像を用いて、ビジュアルサーボによりマニピュレーターＭＮＰを動作させる。これにより、ロボットシステム１は、作業対象Ｍ１の速度が変化した時の目標画像に基づく教示内容を取得することができる。
【０１３７】
また、ロボットシステム１は、作業対象Ｍ１の接触状態が変化した時のフレームを目標画像として抽出し、抽出した目標画像を用いて、ビジュアルサーボによりマニピュレーターＭＮＰを動作させる。これにより、ロボットシステム１は、作業対象Ｍ１の接触状態が変化した時の目標画像に基づく教示内容を取得することができる。
【０１３８】
また、ロボットシステム１は、作業対象Ｍ１の速度がゼロになった時のフレームを用いて、ビジュアルサーボによりマニピュレーターＭＮＰを移動させることで作業対象Ｍ２を組付対象Ｏ２に組み付ける。これにより、ロボットシステム１は、作業対象Ｍ２の速度がゼロになった時のフレームを目標画像として使用することで、速度がゼロになった時を１つの動作の区切りとすることができる。
【０１３９】
また、ロボットシステム１は、第１撮像画像からユーザーにより所望の場面が抽出された抽出画像を目標画像として用いて、ビジュアルサーボによりマニピュレーターＭＮＰを移動させることで作業対象Ｍ２を組付対象Ｏ２に組み付ける。これにより、ロボットシステム１は、より詳細な教示内容を取得することができる。
【０１４０】
＜第２実施形態＞
以下、本発明の第２実施形態について、図面を参照して説明する。第２実施形態に係るロボットシステム２は、ロボット２０として単腕ロボットを具備する構成に代えて、ロボット２５として双腕ロボットを具備する構成である。なお、第２実施形態では、第１実施形態と同様な構成部には、同じ符号を付して説明を省略する。
【０１４１】
図１０は、第２実施形態に係るロボットシステム２の一例を示す構成図である。ロボットシステム２は、第１撮像部１１と、第２撮像部１２と、ロボット２５と、制御装置３０とを具備する。第２実施形態において、組付対象Ｏ２は、テーブル等の台の上に治具等によって設置されており、双腕ロボットであるロボット２５のいずれか一方の腕によって、第１実施形態で説明した目標画像に基づくビジュアルサーボにより作業対象Ｍ２が組み付けられる。なお、組付対象Ｏ２は、ロボット２５の把持部ＨＮＤ２によって把持され、把持部ＨＮＤ１によって第１実施形態で説明した目標画像に基づくビジュアルサーボによる作業対象Ｍ２の組付対象Ｏ２への組み付けに係る動作が行われるとしてもよい。また、この場合、把持部ＨＮＤ１と把持部ＨＮＤ２の役割が逆であってもよい。
【０１４２】
ロボット２５は、例えば、把持部ＨＮＤ１と、把持部ＨＮＤ２と、力センサー２２と、マニピュレーターＭＮＰ１と、マニピュレーターＭＮＰ２と、図示しない複数のアクチュエーターとを、図１０に示したように、それぞれの腕に備えた双腕ロボットである。
【０１４３】
ロボット２５の各腕は、６軸垂直多関節型となっており、一方の腕が支持台とマニピュレーターＭＮＰ１と把持部ＨＮＤ１とがアクチュエーターによる連携した動作よって６軸の自由度の動作を行うことができ、他方の腕が支持台とマニピュレーターＭＮＰ２と把持部ＨＮＤ２とがアクチュエーターによる連携した動作よって６軸の自由度の動作を行うことができる。なお、ロボット２０の各腕は、５自由度（５軸）以下で動作するものであってもよいし、７自由度（７軸）以上で動作するものであってもよい。
【０１４４】
ロボット２５は、第１実施形態において説明した制御装置３０によって制御される動作を、把持部ＨＮＤ１及びマニピュレーターＭＮＰ１を備えた腕によって行うとするが、把持部ＨＮＤ２及びマニピュレーターＭＮＰ２を備えた腕によって同様の動作が行われてもよい。なお、マニピュレーターＭＮＰ１（又はマニピュレーターＭＮＰ１及び把持部ＨＮＤ１）、マニピュレーターＭＮＰ２（又はマニピュレーターＭＮＰ２及び把持部ＨＮＤ２）は、それぞれアームの一例である。ロボット２５は、例えばケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、ロボット２５と制御装置３０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続されてもよい。
【０１４５】
また、ロボット２５は、図１０に示したようにロボット２５がロボット２５の内部に搭載された制御装置３０によって制御される構成とするが、この構成に代えて、制御装置３０がロボット２５の外部に設置されている構成であってもよい。
【０１４６】
以上説明したように、第２実施形態に係るロボットシステム２のロボット２５は、双腕ロボットであり、第１撮像部１１により撮像された第１撮像画像から少なくとも１フレーム以上の目標画像を抽出し、抽出された目標画像に基づいて双腕ロボットの２つの腕のうちいずれか一方又は両方によって作業対象Ｍ２を組付対象Ｏ２に組み付ける作業を行うため、第１実施形態と同様の効果を得ることができる。
【０１４７】
なお、上記の実施形態において、第１撮像部１１が第１撮像画像を撮像し、第２撮像部１２が第２撮像画像を撮像する構成としたが、これに代えて、第１撮像部１１又は第２撮像部１２のうちいずれか一方によって第１撮像画像及び第２撮像画像の両方を撮像する構成であってもよい。その場合、第１撮像画像を撮像するタイミングは、必ず第２撮像画像を撮像するタイミングの前となる。
【０１４８】
また、以上に説明した装置（例えば、ロボットシステム１、２）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１４９】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１５０】
１、２  ロボットシステム、１１  第１撮像部、１２  第２撮像部、２０、２５  ロボット、２２  力センサー、３０  制御装置、３１  ＣＰＵ、３２  記憶部、３３  入力受付部、３４  通信部、３５  画像取得部、３６  制御部、４１  目標画像抽出部、４２  ロボット制御部
【図１】
2015221485.tif 000022
【図２】
2015221485.tif 000023
【図３】
2015221485.tif 000024
【図４】
2015221485.tif 000025
【図５】
2015221485.tif 000026
【図６】
2015221485.tif 000027
【図７】
2015221485.tif 000028
【図８】
2015221485.tif 000029
【図９】
2015221485.tif 000030
【図１０】
2015221485.tif 000031