(57)【要約】【課題】第１対象物に関する作業を精度よく行うことができるロボットを提供すること。【解決手段】アームを備え、第１対象物を含まない第１範囲が撮像された第１画像と、前記第１範囲の少なくとも一部と重なる範囲であって前記第１対象物を含む第２範囲が撮像された第２画像とを用いて検出された前記第１対象物の位置に基づいて前記アームを動かす、ロボット。【選択図】図３
2018034245.tif 000002
【特許請求の範囲】
【請求項１】
アームを備え、
第１対象物を含まない第１範囲が撮像された第１画像と、前記第１範囲の少なくとも一部と重なる範囲であって前記第１対象物を含む第２範囲が撮像された第２画像とを用いて検出された前記第１対象物の位置に基づいて前記アームを動かす、
ロボット。
【請求項２】
前記第１画像と前記第２画像との差分に基づく差分画像が生成され、生成された前記差分画像を用いて検出された前記第１対象物の位置に基づいて前記アームを動かす、
請求項１に記載のロボット。
【請求項３】
前記第１画像と前記第２画像とを用いて検出された前記第１対象物の位置と、前記アームを動かす移動量に関するゲインであってビジュアルサーボの前記ゲインとに基づいて前記アームを動かす、
請求項１又は２に記載のロボット。
【請求項４】
前記第１対象物は、前記アームにより把持されており、
前記第１画像と前記第２画像とを用いて検出された前記第１対象物の位置と、前記第１対象物の位置を変化させる目標となる目標位置との差に基づいて前記アームを動かす、
請求項１から３のうちいずれか一項に記載のロボット。
【請求項５】
前記第１対象物は、前記アームにより第２対象物に組み付ける物体であり、
前記第２対象物を含まない第３範囲が撮像された第３画像、及び前記第３範囲の少なくとも一部と重なる範囲であって前記第２対象物を含む第４範囲が撮像された第４画像を用いて検出された前記第２対象物の位置と、当該位置と前記目標位置との相対的な位置を示す目標位置情報とに基づいて前記第１対象物と前記第２対象物とを組み付ける、
請求項４に記載のロボット。
【請求項６】
前記第３画像は、前記第２画像である、
請求項５に記載のロボット。
【請求項７】
前記第１画像と前記第２画像とを用いて検出された前記第１対象物の姿勢に基づいて前記アームを動かす、
請求項１から６のうちいずれか一項に記載のロボット。
【請求項８】
前記第１画像と前記第２画像とを用いて検出された前記第１対象物の姿勢と、前記第１対象物の姿勢を変化させる目標となる目標姿勢との差に基づいて前記アームを動かす、
請求項７に記載のロボット。
【請求項９】
前記第１対象物は、前記アームにより把持された第２対象物が組み付けられる物体であり、
前記第１画像と前記第２画像とを用いて検出された前記第１対象物の位置と、当該位置と前記第２対象物の位置を変化させる目標となる目標位置との相対的な位置を示す目標位置情報と、前記第２対象物の位置とに基づいて前記アームを動かす、
請求項１から３のうちいずれか一項に記載のロボット。
【請求項１０】
前記第１画像と前記第２画像とを用いて検出された前記第１対象物の位置と、前記目標位置情報と、前記第２対象物を含まない第３範囲が撮像された第３画像、及び前記第３範囲の少なくとも一部と重なる範囲であって前記第２対象物を含む第４範囲が撮像された第４画像を用いて検出された前記第２対象物の位置とに基づいて前記第１対象物と前記第２対象物とを組み付ける、
請求項９に記載のロボット。
【請求項１１】
前記第１画像と前記第２画像とを用いて検出された前記第１対象物の姿勢と、当該姿勢と前記第２対象物の姿勢を変化させる目標となる目標姿勢との相対的な姿勢を示す目標姿勢情報とに基づいて前記アームを動かす、
請求項９又は１０に記載のロボット。
【請求項１２】
請求項１から１１のうちいずれか一項に記載のロボットを制御する、
ロボット制御装置。
【請求項１３】
請求項１から１１のうちいずれか一項に記載のロボットと、
前記ロボットを制御するロボット制御装置と、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット、ロボット制御装置、及びロボットシステムに関する。
【背景技術】
【０００２】
撮像部により撮像された撮像画像に基づいてロボットを制御する技術の研究や開発が行われている。
【０００３】
これに関し、第１の撮像装置が対象物を撮像して得た第１の撮像画像と、第１の撮像装置が撮像した空間に対応する第１の仮想空間における対象物のモデル画像との相違度を示す第１の相違度を、第１の仮想空間における対象物の複数の異なる姿勢毎に算出し、第１の撮像装置とは異なる位置に配置された第２の撮像装置が対象物を撮像して得た第２の撮像画像と、第２の撮像装置が撮像した空間に対応する第２の仮想空間における対象物のモデル画像との相違度を示す第２の相違度を、第２の仮想空間における対象物の複数の姿勢毎に算出し、算出した複数の第１の相違度と、算出した複数の第２の相違度とに基づいて第１の撮像座標系における対象物の姿勢を推定する姿勢検出装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１６１９３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような姿勢検出装置では、対象物が撮像された撮像画像に含まれる当該対象物以外の背景（例えば、対象物を組み付ける物体）等が当該対象物として誤検出されてしまう場合があった。その結果、当該姿勢検出装置は、当該対象物の位置を精度よく検出することができない場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、アームを備え、第１対象物を含まない第１範囲が撮像された第１画像と、前記第１範囲の少なくとも一部と重なる範囲であって前記第１対象物を含む第２範囲が撮像された第２画像とを用いて検出された前記第１対象物の位置に基づいて前記アームを動かす、ロボットである。
この構成により、ロボットは、第１対象物を含まない第１範囲が撮像された第１画像と、第１範囲の少なくとも一部と重なる範囲であって第１対象物を含む第２範囲が撮像された第２画像とを用いて検出された第１対象物の位置に基づいてアームを動かす。これにより、ロボットは、第１対象物に関する作業を精度よく行うことができる。
【０００７】
また、本発明の他の態様は、ロボットにおいて、前記第１画像と前記第２画像との差分に基づく差分画像が生成され、生成された前記差分画像を用いて検出された前記第１対象物の位置に基づいて前記アームを動かす、構成が用いられてもよい。
この構成により、ロボットは、第１画像と第２画像との差分に基づく差分画像が生成され、生成された差分画像を用いて検出された第１対象物の位置に基づいてアームを動かす。これにより、ロボットは、差分画像を用いて検出された第１対象物の位置に基づいて、第１対象物に関する作業を精度よく行うことができる。
【０００８】
また、本発明の他の態様は、ロボットにおいて、前記第１画像と前記第２画像とを用いて検出された前記第１対象物の位置と、前記アームを動かす移動量に関するゲインであってビジュアルサーボの前記ゲインとに基づいて前記アームを動かす、構成が用いられてもよい。
この構成により、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、アームを動かす移動量に関するゲインであってビジュアルサーボのゲインとに基づいてアームを動かす。これにより、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、ゲインとに基づいて、第１対象物に関する作業を精度よく行うことができる。
【０００９】
また、本発明の他の態様は、ロボットにおいて、前記第１対象物は、前記アームにより把持されており、前記第１画像と前記第２画像とを用いて検出された前記第１対象物の位置と、前記第１対象物の位置を変化させる目標となる目標位置との差に基づいて前記アームを動かす、構成が用いられてもよい。
この構成により、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、第１対象物の位置を変化させる目標となる目標位置との差に基づいてアームを動かす。これにより、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と目標位置との差に基づいて、第１対象物に関する作業を精度よく行うことができる。
【００１０】
また、本発明の他の態様は、ロボットにおいて、前記第１対象物は、前記アームにより第２対象物に組み付ける物体であり、前記第２対象物を含まない第３範囲が撮像された第３画像、及び前記第３範囲の少なくとも一部と重なる範囲であって前記第２対象物を含む第４範囲が撮像された第４画像を用いて検出された前記第２対象物の位置と、当該位置と前記目標位置との相対的な位置を示す目標位置情報とに基づいて前記第１対象物と前記第２対象物とを組み付ける、構成が用いられてもよい。
この構成により、ロボットは、第３画像、及び第４画像を用いて検出された第２対象物の位置と、目標位置情報とに基づいて第１対象物と第２対象物とを組み付ける。これにより、ロボットは、第３画像、及び第４画像を用いて検出された第２対象物の位置と、目標位置情報とに基づいて、第１対象物と第２対象物とを組み付ける作業を精度よく行うことができる。
【００１１】
また、本発明の他の態様は、ロボットにおいて、前記第３画像は、前記第２画像である、構成が用いられてもよい。
この構成により、ロボットでは、第３画像は、第２画像である。これにより、ロボットは、第１対象物の位置に基づく作業に要する時間を短縮することができる。
【００１２】
また、本発明の他の態様は、ロボットにおいて、前記第１画像と前記第２画像とを用いて検出された前記第１対象物の姿勢に基づいて前記アームを動かす、構成が用いられてもよい。
この構成により、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の姿勢に基づいてアームを動かす。これにより、ロボットは、第１対象物の位置及び姿勢に基づいて、第１対象物に関する作業を精度よく行うことができる。
【００１３】
また、本発明の他の態様は、ロボットにおいて、前記第１画像と前記第２画像とを用いて検出された前記第１対象物の姿勢と、前記第１対象物の姿勢を変化させる目標となる目標姿勢との差に基づいて前記アームを動かす、構成が用いられてもよい。
この構成により、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の姿勢と、第１対象物の姿勢を変化させる目標となる目標姿勢との差に基づいてアームを動かす。これにより、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の姿勢と、目標姿勢との差に基づいて、第１対象物に関する作業を精度よく行うことができる。
【００１４】
また、本発明の他の態様は、ロボットにおいて、前記第１対象物は、前記アームにより把持された第２対象物が組み付けられる物体であり、前記第１画像と前記第２画像とを用いて検出された前記第１対象物の位置と、当該位置と前記第２対象物の位置を変化させる目標となる目標位置との相対的な位置を示す目標位置情報と、前記第２対象物の位置とに基づいて前記アームを動かす、構成が用いられてもよい。
この構成により、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、目標位置情報と、第２対象物の位置とに基づいてアームを動かす。これにより、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、目標位置情報と、第２対象物の位置とに基づいて、第１対象物に関する作業を精度よく行うことができる。
【００１５】
また、本発明の他の態様は、ロボットにおいて、前記第１画像と前記第２画像とを用いて検出された前記第１対象物の位置と、前記目標位置情報と、前記第２対象物を含まない第３範囲が撮像された第３画像、及び前記第３範囲の少なくとも一部と重なる範囲であって前記第２対象物を含む第４範囲が撮像された第４画像を用いて検出された前記第２対象物の位置とに基づいて前記第１対象物と前記第２対象物とを組み付ける、構成が用いられてもよい。
この構成により、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、目標位置情報と、第３画像、及び第４画像を用いて検出された第２対象物の位置とに基づいて前記第１対象物と前記第２対象物とを組み付ける。これにより、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、目標位置情報と、第３画像、及び第４画像を用いて検出された第２対象物の位置とに基づいて、第１対象物に関する作業を精度よく行うことができる。
【００１６】
また、本発明の他の態様は、ロボットにおいて、前記第１画像と前記第２画像とを用いて検出された前記第１対象物の姿勢と、当該姿勢と前記第２対象物の姿勢を変化させる目標となる目標姿勢との相対的な姿勢を示す目標姿勢情報とに基づいて前記アームを動かす、構成が用いられてもよい。
この構成により、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の姿勢と、目標姿勢情報とに基づいてアームを動かす。これにより、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の姿勢と、目標姿勢情報とに基づいて、第１対象物に関する作業を精度よく行うことができる。
【００１７】
また、本発明の他の態様は、上記に記載のロボットを制御する、ロボット制御装置である。
この構成により、ロボット制御装置は、第１対象物を含まない第１範囲が撮像された第１画像と、第１範囲の少なくとも一部と重なる範囲であって第１対象物を含む第２範囲が撮像された第２画像とを用いて検出された第１対象物の位置に基づいてアームを動かす。これにより、ロボット制御装置は、第１対象物に関する作業をロボットに精度よく行わせることができる。
【００１８】
また、本発明の他の態様は、上記に記載のロボットと、上記に記載のロボット制御装置と、を備えるロボットシステムである。
この構成により、ロボットシステムは、第１対象物を含まない第１範囲が撮像された第１画像と、第１範囲の少なくとも一部と重なる範囲であって第１対象物を含む第２範囲が撮像された第２画像とを用いて検出された第１対象物の位置に基づいてアームを動かす。これにより、ロボットシステムは、第１対象物に関する作業をロボットに精度よく行わせることができる。
【００１９】
以上により、ロボットは、第１対象物を含む範囲が撮像された第１画像と、第１対象物を含まない当該範囲が撮像された第２画像とを用いて検出された第１対象物の位置に基づいてアームを動かす。これにより、ロボットは、第１対象物の位置に基づいて行う作業を精度よく行うことができる。
また、ロボット制御装置、及びロボットシステムは、第１対象物を含まない第１範囲が撮像された第１画像と、第１範囲の少なくとも一部と重なる範囲であって第１対象物を含む第２範囲が撮像された第２画像とを用いて検出された第１対象物の位置に基づいてアームを動かす。これにより、ロボット制御装置、及びロボットシステムは、第１対象物に関する作業をロボットに精度よく行わせることができる。
【図面の簡単な説明】
【００２０】
【図１】実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図３】ロボット制御装置３０の機能構成の一例を示す図である。
【図４】ロボット制御装置３０がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
【図５】第１画像の一例である。
【図６】第２画像の一例である。
【図７】第４画像の一例である。
【図８】位置姿勢算出部４６が生成した第１差分画像の一例である。
【図９】位置姿勢算出部４６が生成した第２差分画像の一例である。
【図１０】ロボット制御装置３０がロボット２０に所定の作業を行わせる処理の流れの他の例を示す図である。
【図１１】実施形態の変形例２に係るロボットシステム２の構成の一例を示す図である。
【図１２】実施形態の変形例２に係るロボットシステム２の構成の他の例を示す図である。
【発明を実施するための形態】
【００２１】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００２２】
＜ロボットシステムの構成＞
まず、ロボットシステム１の構成について説明する。
図１は、実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、撮像部１０と、ロボット２０と、ロボット制御装置３０を備える。
【００２３】
撮像部１０は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。この一例において、撮像部１０は、ロボット２０が作業可能な領域である作業領域を含む範囲である撮像範囲を撮像可能な位置に設置される。
【００２４】
撮像部１０は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。なお、撮像部１０は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２５】
ロボット２０は、アームＡと、アームＡを支持する支持台Ｂを備える単腕ロボットである。単腕ロボットは、この一例におけるアームＡのような１本のアーム（腕）を備えるロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、２本以上のアーム（例えば、２本以上のアームＡ）を備えるロボットである。なお、複腕ロボットのうち、２本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本のアームを備える双腕ロボットであってもよく、３本以上のアーム（例えば、３本以上のアームＡ）を備える複腕ロボットであってもよい。また、ロボット２０は、スカラロボット、直交座標ロボット、円筒型ロボット等の他のロボットであってもよい。直交座標ロボットは、例えば、ガントリロボットである。
【００２６】
アームＡは、エンドエフェクターＥと、マニピュレーターＭを備える。
エンドエフェクターＥは、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、エンドエフェクターＥは、当該指部を備えるエンドエフェクターに代えて、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクターや、他のエンドエフェクターであってもよい。
【００２７】
エンドエフェクターＥは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、エンドエフェクターＥは、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２８】
マニピュレーターＭは、６つの関節を備える。また、当該６つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターＭを備えるアームＡは、６軸垂直多関節型のアームである。アームＡは、支持台Ｂと、エンドエフェクターＥと、マニピュレーターＭと、マニピュレーターＭが備える６つの関節それぞれのアクチュエーターとによる連携した動作によって６軸の自由度の動作を行う。なお、アームＡは、５軸以下の自由度で動作する構成であってもよく、７軸以上の自由度で動作する構成であってもよい。
【００２９】
マニピュレーターＭが備える６つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、マニピュレーターＭを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、マニピュレーターＭが備える６つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３０】
ロボット制御装置３０は、この一例において、ロボット２０を制御する（動作させる）コントローラーである。ロボット制御装置３０は、撮像部１０に前述の作業領域を含む範囲を撮像させる。ロボット制御装置３０は、撮像部１０が撮像した撮像画像を撮像部１０から取得する。ロボット制御装置３０は、取得した撮像画像に基づいて、ロボット２０に所定の作業を行わせる。
【００３１】
＜ロボットが行う所定の作業の概要＞
以下、ロボット２０が行う所定の作業の概要について説明する。
【００３２】
図１に示したように、ロボット２０は、エンドエフェクターＥにより予め操作対象物Ｎを把持している。なお、ロボット２０は、所定の作業において、所定の配置場所に配置された操作対象物ＮをエンドエフェクターＥにより把持する構成であってもよい。
【００３３】
操作対象物Ｎは、作業領域の床面に設置された治具Ｆに支持された組付対象物Ｏに組み付ける物体である。操作対象物Ｎは、例えば、製品に組み付けるプレート、ネジ、ボルト等の産業用の部品や部材である。図１では、図の簡略化のため、操作対象物Ｎを、エンドエフェクターＥの指部により把持可能な程度の高さを有する六角柱形状の物体として表している。なお、操作対象物Ｎは、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。また、操作対象物Ｎの形状は、六角柱形状に代えて、他の形状であってもよい。操作対象物Ｎは、組付対象物Ｏが第２対象物の一例である場合における第１対象物の一例であり、組付対象物Ｏが第１対象物の一例である場合における第２対象物の一例である。
【００３４】
組付対象物Ｏは、操作対象物Ｎが組み付けられる凹部を有する物体である。組付対象物Ｏは、例えば、製品に組み付けるプレート、ネジ、ボルト等の産業用の部品や部材である。なお、組付対象物Ｏは、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。また、組付対象物Ｏの形状は、図１に示した形状に代えて、他の形状であってもよい。また、組付対象物Ｏは、前述した通り、作業領域の床面に設置された治具Ｆに支持されている。なお、組付対象物Ｏは、これに代えて、テーブルや何らかの台等の他の場所に設置される構成であってもよい。また、治具Ｆは、当該床面に設置される構成に代えて、作業領域内におけるテーブルや何らかの台等の他の場所に設置される構成であってもよい。組付対象物Ｏは、操作対象物Ｎが第１対象物の一例である場合における第２対象物の一例であり、操作対象物Ｎが第２対象物の一例である場合における第１対象物の一例である。
【００３５】
この一例において、ロボット２０は、エンドエフェクターＥにより把持された操作対象物Ｎを、組付対象物Ｏに組み付ける作業を所定の作業として行う。図１に示した輪郭ＶＮは、操作対象物Ｎが組付対象物Ｏに組み付けられた場合における操作対象物Ｎの輪郭を表している。なお、ロボット２０は、これに代えて、他の作業を所定の作業として行う構成であってもよい。
【００３６】
ここで、以下では、説明を簡略化するため、ロボット２０が所定の作業を行う間、ロボット２０が、操作対象物Ｎを撮像部１０の光軸に直交する平面に沿って動かす場合について説明する。すなわち、操作対象物Ｎは、この一例において、組付対象物Ｏに組み付けられるまでの間、当該平面に沿った二次元運動を行う。なお、ロボット２０が所定の作業を行う間、ロボット２０は、作業領域内において操作対象物Ｎに三次元運動を行わせる構成であってもよい。この場合、撮像部１０は、例えば、ステレオカメラ、ライトフィールドカメラ等の三次元情報を取得可能な画像を撮像可能なカメラである。
【００３７】
＜ロボット制御装置がロボットに所定の作業を行わせる処理の概要＞
以下、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理の概要について説明する。
【００３８】
ロボット制御装置３０は、エンドエフェクターＥに予め対応付けられた位置に、エンドエフェクターＥとともに動く制御点Ｔを設定する。エンドエフェクターＥに予め対応付けられた位置は、ロボット座標系ＲＣにおける位置である。エンドエフェクターＥに予め対応付けられた位置は、例えば、エンドエフェクターＥにより把持された操作対象物Ｎの重心の位置である。
【００３９】
制御点Ｔは、例えば、ＴＣＰ（Tool  Center  Point）である。なお、制御点Ｔは、ＴＣＰに代えて、アームＡの一部に対応付けられた仮想的な点等の他の仮想的な点であってもよい。すなわち、制御点Ｔは、エンドエフェクターＥに対応付けられた位置に代えて、エンドエフェクターＥの他の部位の位置に設定される構成であってもよく、マニピュレーターＭに対応付けられた何らかの位置に設定される構成であってもよい。
【００４０】
制御点Ｔには、制御点Ｔの位置を示す情報である制御点位置情報と、制御点Ｔの姿勢を示す情報である制御点姿勢情報とが対応付けられている。当該位置は、ロボット座標系ＲＣにおける位置である。当該姿勢は、ロボット座標系ＲＣにおける姿勢である。なお、制御点Ｔには、これらに加えて、他の情報が対応付けられる構成であってもよい。制御点位置情報及び制御点姿勢情報をロボット制御装置３０が指定（決定）すると、制御点Ｔの位置及び姿勢が決まる。当該位置及び当該姿勢は、ロボット座標系ＲＣにおける位置及び姿勢である。ロボット制御装置３０は、アームＡを動作させ、ロボット制御装置３０が指定した制御点位置情報が示す位置に制御点Ｔの位置を一致させるとともに、ロボット制御装置３０が指定した制御点姿勢情報が示す姿勢に制御点Ｔの姿勢を一致させる。以下では、説明の便宜上、ロボット制御装置３０が指定した制御点位置情報が示す位置を目標位置と称し、ロボット制御装置３０が指定した制御点姿勢情報が示す姿勢を目標姿勢と称して説明する。すなわち、ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報を指定することにより、ロボット２０を動作させ、制御点Ｔの位置及び姿勢を目標位置及び目標姿勢と一致させる。
【００４１】
この一例において、制御点Ｔの位置は、制御点座標系ＴＣの原点のロボット座標系ＲＣにおける位置によって表される。また、制御点Ｔの姿勢は、制御点座標系ＴＣの各座標軸のロボット座標系ＲＣにおける方向によって表される。制御点座標系ＴＣは、制御点Ｔとともに動くように制御点Ｔに対応付けられた三次元局所座標系である。
【００４２】
ロボット制御装置３０は、ユーザーから予め入力された制御点設定情報に基づいて制御点Ｔを設定する。制御点設定情報は、例えば、エンドエフェクターＥの重心の位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報である。なお、制御点設定情報は、これに代えて、エンドエフェクターＥに対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、マニピュレーターＭに対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、ロボット２０の他の部位に対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよい。
【００４３】
ここで、ロボット制御装置３０は、第１対象物を含まない第１範囲が撮像された第１画像と、第１範囲の少なくとも一部と重なる範囲であって第１対象物を含む第２範囲が撮像された第２画像とを用いて検出された操作対象物Ｎの位置に基づいてアームＡを動かす。この一例において、撮像部１０が撮像可能な範囲が変化しないため、第２範囲は、第１範囲と同じ範囲である。また、以下では、一例として、第１対象物が操作対象物Ｎである場合について説明する。これにより、ロボット制御装置３０は、第１対象物（この一例において、操作対象物Ｎ）に関する作業（この一例において、前述の所定の作業）を精度よく行うことができる。なお、第１対象物は、操作対象物Ｎに代えて、組付対象物Ｏであってもよい。
【００４４】
＜ロボット制御装置のハードウェア構成＞
以下、図２を参照し、ロボット制御装置３０のハードウェア構成について説明する。図２は、ロボット制御装置３０のハードウェア構成の一例を示す図である。
【００４５】
ロボット制御装置３０は、例えば、ＣＰＵ（Central  Processing  Unit）３１と、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５を備える。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。また、ロボット制御装置３０は、通信部３４を介してロボット２０と通信を行う。
【００４６】
ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
記憶部３２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。なお、記憶部３２は、ロボット制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部３２は、ロボット制御装置３０が処理する各種情報、各種プログラム、各種画像等を格納する。
【００４７】
入力受付部３３は、例えば、表示部３５と一体に構成されたタッチパネルである。なお、入力受付部３３は、キーボードやマウス、タッチパッド、その他の入力装置であってもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部３５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００４８】
＜ロボット制御装置の機能構成＞
以下、図３を参照し、ロボット制御装置３０の機能構成について説明する。図３は、ロボット制御装置３０の機能構成の一例を示す図である。
【００４９】
ロボット制御装置３０は、記憶部３２と、制御部３６を備える。
【００５０】
制御部３６は、ロボット制御装置３０の全体を制御する。制御部３６は、撮像制御部４０と、画像取得部４２と、位置姿勢算出部４６と、ロボット制御部５０を備える。制御部３６が備えるこれらの機能部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００５１】
撮像制御部４０は、撮像部１０が撮像可能な範囲を撮像部１０に撮像させる。
画像取得部４２は、撮像部１０が撮像した撮像画像を撮像部１０から取得する。
位置姿勢算出部４６は、画像取得部４２が撮像部１０から取得した撮像画像に基づいて、操作対象物Ｎの位置及び姿勢を算出する。また、位置姿勢算出部４６は、画像取得部４２が撮像部１０から取得した撮像画像に基づいて、組付対象物Ｏの位置及び姿勢を算出する。なお、位置姿勢算出部４６は、当該撮像画像に基づいて、操作対象物Ｎの位置と、組付対象物Ｏの位置とを算出する構成であってもよい。この場合、操作対象物Ｎの姿勢と、組付対象物Ｏの姿勢とは、固定されており、変化しない。
ロボット制御部５０は、位置姿勢算出部４６が算出した操作対象物Ｎの位置及び姿勢と、位置姿勢算出部４６が算出した組付対象物Ｏの位置及び姿勢とに基づいて、ロボット２０に所定の作業を行わせる。
【００５２】
＜ロボット制御装置がロボットに所定の作業を行わせる処理＞
以下、図４を参照し、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理について説明する。図４は、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
【００５３】
以下では、図４に示したフローチャートにおけるステップＳ１３０の処理が行われるよりも前の時間帯では、前述した治具Ｆに組付対象物Ｏが取り付けられておらず（すなわち、組付対象物Ｏが治具Ｆに支持されておらず）、撮像部１０が撮像可能な範囲に組付対象物Ｏが含まれていない場合を例に挙げて説明する。また、以下では、当該フローチャートにおけるステップＳ１６０の処理が行われるよりも前の時間帯では、エンドエフェクターＥ、エンドエフェクターＥにより把持された操作対象物Ｎ、マニピュレーターＭのそれぞれが当該範囲に含まれていない場合を例に挙げて説明する。すなわち、当該時間帯では、エンドエフェクターＥ、エンドエフェクターＥにより把持された操作対象物Ｎ、マニピュレーターＭのそれぞれは、この一例において、撮像部１０の画角の範囲外に位置している。
【００５４】
撮像制御部４０は、撮像部１０が撮像可能な範囲を撮像部１０に撮像させる（ステップＳ１１０）。以下では、説明の便宜上、ステップＳ１１０において撮像部１０が撮像した範囲を第１範囲と称して説明する。次に、画像取得部４２は、ステップＳ１１０において撮像部１０が撮像した撮像画像を第１画像として取得する（ステップＳ１２０）。ここで、図５を参照し、第１画像について説明する。
【００５５】
図５は、第１画像の一例である。図５に示した第１画像Ｐ１は、第１画像の一例である。前述した通り、この一例における第１範囲には、組付対象物Ｏ、エンドエフェクターＥにより把持された操作対象物Ｎ、エンドエフェクターＥ、マニピュレーターＭのそれぞれが含まれていない。このため、第１画像Ｐ１には、図５に示したように、治具Ｆと、図示しない他の物体（例えば、床面や作業台等）が含まれている。
【００５６】
ステップＳ１２０の処理が行われた後、撮像制御部４０は、ユーザー又は他の装置によって治具Ｆに組付対象物Ｏが取り付けられるまで（組付対象物Ｏが治具Ｆに支持されるまで）待機する（ステップＳ１３０）。図１に示した組付対象物Ｏ及び治具Ｆの状態は、ステップＳ１３０においてユーザー又は他の装置によって治具Ｆに組付対象物Ｏが取り付けられた後（組付対象物Ｏが治具Ｆに支持された後）の状態である。
【００５７】
ステップＳ１３０において治具Ｆに組付対象物Ｏが取り付けられた後、撮像制御部４０は、撮像部１０が撮像可能な範囲を撮像部１０に撮像させる（ステップＳ１４０）。以下では、説明の便宜上、ステップＳ１４０において撮像部１０が撮像した範囲を第２範囲と称して説明する。前述した通り、第２範囲は、この一例における撮像部１０の撮像可能な範囲が変化しないため、第１範囲と同じ範囲である。次に、画像取得部４２は、ステップＳ１４０において撮像部１０が撮像した撮像画像を第２画像として撮像部１０から取得する（ステップＳ１５０）。ここで、図６を参照し、第２画像について説明する。
【００５８】
図６は、第２画像の一例である。図６に示した第２画像Ｐ２は、第２画像の一例である。この一例における第２範囲では、治具Ｆに組付対象物Ｏが取り付けられており、エンドエフェクターＥにより把持された操作対象物Ｎ、エンドエフェクターＥ、マニピュレーターＭのそれぞれが含まれていない。このため、第２画像Ｐ２には、図６に示したように、治具Ｆと、治具Ｆに支持された組付対象物Ｏと、図示しない他の物体（床面や作業台等）が含まれている。図６に示した輪郭ＶＮは、操作対象物Ｎが組付対象物Ｏに組み付けられた場合における操作対象物Ｎの輪郭を表している。
【００５９】
ここで、第２画像Ｐ２は、操作対象物Ｎが含まれていない画像であるため、操作対象物Ｎを含まない第３範囲が撮像部１０により撮像された第３画像として利用することができる。このため、以下では、一例として、ロボット制御装置３０が第２画像Ｐ２を第３画像としても利用する場合について説明する。なお、ロボット制御装置３０は、ステップＳ１５０の処理が行われた後からステップＳ１６０の処理が行われる前までの時間帯において、撮像部１０に撮像可能な範囲を第３範囲として撮像部１０に再び撮像させる構成であってもよい。この場合、ロボット制御装置３０は、撮像部１０が撮像した画像を第３画像として撮像部１０から取得する。この一例において、撮像部１０の撮像可能な範囲が変化しないため、第３範囲は、第１範囲と同じ範囲である。
【００６０】
ステップＳ１５０の処理が行われた後、ロボット制御部５０は、記憶部３２に予め記憶された初期位置姿勢情報を記憶部３２から読み出す。初期位置姿勢情報は、予め決められた初期位置及び初期姿勢を示す情報である。初期位置及び初期姿勢は、制御点Ｔの位置及び姿勢を初期位置及び初期姿勢と一致させた場合において撮像部１０の撮像可能な範囲の内側に操作対象物Ｎの全体が含まれる位置及び姿勢であれば、如何なる位置及び姿勢であってもよい。ロボット制御部５０は、読み出した初期位置姿勢情報に基づいてロボット２０を動作させ、制御点Ｔの位置及び姿勢を初期位置及び初期姿勢と一致させることにより、撮像部１０が撮像可能な範囲の内側に操作対象物Ｎを移動させる（ステップＳ１６０）。
【００６１】
次に、撮像制御部４０は、撮像部１０が撮像可能な範囲を撮像部１０に撮像させる（ステップＳ１７０）。以下では、説明の便宜上、ステップＳ１７０において撮像部１０が撮像した範囲を第４範囲と称して説明する。次に、画像取得部４２は、ステップＳ１７０において撮像部１０が撮像した撮像画像を第４画像として取得する（ステップＳ１８０）。ここで、図７を参照し、第４画像について説明する。
【００６２】
図７は、第４画像の一例である。図７に示した第４画像Ｐ４は、第４画像の一例である。この一例における第４範囲では、治具Ｆに組付対象物Ｏが取り付けられており、且つエンドエフェクターＥにより把持された操作対象物Ｎが含まれている。このため、第４画像Ｐ４には、図７に示したように、治具Ｆと、治具Ｆに支持された組付対象物Ｏと、エンドエフェクターＥにより把持された操作対象物Ｎと、エンドエフェクターＥと、図示しないマニピュレーターＭの一部と、図示しない他の物体（床面や作業台等）が含まれている。図７に示した輪郭ＶＮは、操作対象物Ｎが組付対象物Ｏに組み付けられた場合における操作対象物Ｎの輪郭を表している。
【００６３】
ステップＳ１８０の処理が行われた後、位置姿勢算出部４６は、画像取得部４２が取得した第１画像Ｐ１及び第２画像Ｐ２に基づいて、第１差分画像を生成する。また、位置姿勢算出部４６は、第３画像（この一例において、第２画像Ｐ２）及び第４画像Ｐ４に基づいて、第２差分画像を生成する（ステップＳ１９０）。ここで、ステップＳ１９０の処理について説明する。
【００６４】
まず、第１差分画像について説明する。以下では、撮像部１０により撮像された撮像画像上におけるある画素を示す座標を（ｘ１，ｙ１）によって表すことにより、当該差分の算出方法について具体的に説明する。位置姿勢算出部４６は、撮像部１０により撮像される撮像画像上の各画素の数が同数であり、当該各画素の配置（位置）が同一である画像を第１差分画像として生成する。また、位置姿勢算出部４６は、第１画像Ｐ１上における座標（ｘ１，ｙ１）が示す画素の画素値ｐ１（ｘ１，ｙ１）と、第２画像Ｐ２上における座標（ｘ１，ｙ１）が示す画素の画素値ｐ２（ｘ１，ｙ１）との差分を第１差分として算出する。ある画素の画素値は、例えば、当該画素の輝度値である。なお、ある画素の画素値は、当該画素の明度値、当該画素の彩度値等の当該画素に対応付けられた他の値であってもよい。位置姿勢算出部４６は、このような第１差分の算出を、第１画像Ｐ１及び第２画像Ｐ２のすべての画素のそれぞれに対して行う。
【００６５】
位置姿勢算出部４６は、算出した複数の第１差分のうち所定の第１閾値ｐｔ以上の第１差分のそれぞれに対応する画素の画素値の平均値を算出する。第１閾値ｐｔは、例えば、５程度である。なお、第１閾値は、５に代えて、５より小さい値でもよく、５より大きい値であってもよい。位置姿勢算出部４６は、算出した当該平均値が、撮像部１０により撮像された撮像画像における画素値の最大値と、当該画素値の最小値との中間値以上か否かを判定する。以下では、一例として、当該最大値が２５５であり、当該最小値が０である場合について説明する。位置姿勢算出部４６は、当該平均値が当該中間値以上である場合、以下において説明する処理において用いる所定の画素値ｐｘを、０と設定する。一方、位置姿勢算出部４６は、当該平均値が当該中間値未満である場合、以下において説明する処理において用いる所定の画素値ｐｘを、２５５と設定する。以下では、一例として、当該平均値が当該中間値以上である場合について説明する。なお、上記において説明したｐｘの値である０、２５５のうちいずれか一方又は両方は、一例に過ぎず、他の値であってもよい。
【００６６】
また、位置姿勢算出部４６は、算出した複数の第１差分のそれぞれについて、第１差分が所定の第１閾値ｐｔ未満であるか否かを判定する。ここで、再び前述した第１画像Ｐ１上における座標（ｘ１，ｙ１）が示す画素、及び第２画像Ｐ２上における座標（ｘ１，ｙ１）が示す画素を例に挙げて説明する。位置姿勢算出部４６は、これらの画素に基づく第１差分が第１閾値ｐｔ未満であると判定した場合、生成した第１差分画像上における座標（ｘ１，ｙ１）が示す画素の画素値ｐｓ（ｘ１，ｙ１）を、前述した所定の画素値ｐｘ（この一例において、０）に変化させる。一方、位置姿勢算出部４６は、当該第１差分が第１閾値ｐｔ以上であると判定した場合、画素値ｐｓ（ｘ１，ｙ１）を、画素値ｐ２（ｘ１，ｙ１）に変化させる。位置姿勢算出部４６は、このような第１差分に基づく第１差分画像上の画素値の変化を、第１画像Ｐ１、第２画像Ｐ２、第１差分画像それぞれのすべての画素のそれぞれに対して行う。すなわち、撮像部１０により撮像された撮像画像上の任意の画素を示す座標を（ｘ，ｙ）と表した場合、第１差分画像上における座標（ｘ，ｙ）が示す画素の画素値ｐｓ（ｘ，ｙ）は、以下の式（１）のように表される。
【００６７】
【数１】
2018034245.tif 000003
【００６８】
すなわち、位置姿勢算出部４６により生成される第１差分画像は、第２画像Ｐ２のうち組付対象物Ｏの画像部分以外の画像部分である背景を、第１画像Ｐ１を用いて第２画像Ｐ２から除去した画像である。図８は、位置姿勢算出部４６が生成した第１差分画像の一例である。図８に示した第１差分画像Ｐ１２は、第１差分画像の一例である。ここで、図８においてドットが描かれた領域は、黒く塗り潰された領域を表している。図８に示したように、第１差分画像Ｐ１２には、組付対象物Ｏが含まれている。第１差分画像Ｐ１２のうち組付対象物Ｏの画像部分以外の画像部分は、この一例において、所定の画素値ｐｘが０であるため、黒く塗り潰されている。これにより、ロボット制御装置３０は、撮像部１０により撮像された撮像画像の中から、組付対象物Ｏの画像部分のみを抽出することができる。
【００６９】
位置姿勢算出部４６は、このような第１差分画像の生成方法と同じ方法を用いて、第３画像（この一例において、第２画像Ｐ２）及び第４画像Ｐ４に基づいて、第２差分画像を生成する。すなわち、当該生成方法の説明における「第１画像Ｐ１」を「第３画像」、「第２画像Ｐ２」を「第４画像Ｐ４」、「画素値ｐ１（ｘ１，ｙ１）」を「画素値ｐ３（ｘ１，ｙ１）」、「画素値ｐ２（ｘ１，ｙ１）」を「画素値ｐ４（ｘ１，ｙ１）」、「画素値ｐ１（ｘ，ｙ）」を「画素値ｐ３（ｘ，ｙ）」、「画素値ｐ２（ｘ，ｙ）」を「画素値ｐ４（ｘ，ｙ）」とそれぞれ読み替えた場合の説明が、第２差分画像を生成する方法である。このため、以下では、当該方法の説明を省略する。
【００７０】
第１差分画像と同様に、位置姿勢算出部４６により生成される第２差分画像は、第４画像Ｐ４のうちエンドエフェクターＥにより把持された操作対象物Ｎ、エンドエフェクターＥ、マニピュレーターＭそれぞれの画像部分以外の画像部分である背景を、第３画像を用いて第４画像Ｐ４から除去した画像である。図９は、位置姿勢算出部４６が生成した第２差分画像の一例である。ここで、図９においてドットが描かれた領域は、黒く塗り潰された領域を表している。図９に示した第２差分画像Ｐ３４は、第２差分画像の一例である。図９に示したように、第２差分画像Ｐ３４には、エンドエフェクターＥにより把持された操作対象物Ｎ、エンドエフェクターＥ、マニピュレーターＭ（図９において不図示）のそれぞれが含まれている。第２差分画像Ｐ３４のうち操作対象物Ｎ、エンドエフェクターＥ、マニピュレーターＭのそれぞれの画像部分以外の画像部分は、この一例において、所定の画素値ｐｘが０であるため、黒く塗り潰されている。これにより、ロボット制御装置３０は、撮像部１０により撮像された撮像画像の中から、操作対象物Ｎ、エンドエフェクターＥ、マニピュレーターＭのそれぞれの画像部分のみを抽出することができる。
【００７１】
ステップＳ１９０の処理が行われた後、位置姿勢算出部４６は、ステップＳ１９０において生成した第１差分画像Ｐ１２に基づいて、組付対象物Ｏの位置及び姿勢を算出する。また、位置姿勢算出部４６は、ステップＳ１９０において生成した第２差分画像Ｐ３４に基づいて、操作対象物Ｎの位置及び姿勢を算出する（ステップＳ２００）。ここで、ステップＳ２００の処理について説明する。
【００７２】
まず、組付対象物Ｏの位置及び姿勢を算出する処理について説明する。位置姿勢算出部４６は、記憶部３２に予め記憶された組付対象物モデルを記憶部３２から読み出す。組付対象物モデルは、組付対象物Ｏの輪郭を表す画像（例えば、ＣＧ（Computer  Graphics）等）である。位置姿勢算出部４６は、この一例において、ステップＳ１９０において生成した第１差分画像Ｐ１２に対してエッジ検出を行う。そして、位置姿勢算出部４６は、検出されたエッジと、読み出した組付対象物モデルとに基づくパターンマッチングにより組付対象物Ｏの位置及び姿勢を算出する。当該位置及び姿勢は、第１差分画像Ｐ１２上の位置を表す座標系（すなわち、撮像部１０により撮像された撮像画像上の位置を表す座標系）である撮像部座標系ＣＣにおける位置及び姿勢である。なお、位置姿勢算出部４６は、エッジ検出及びパターンマッチングに代えて、他の方法によって組付対象物Ｏの撮像部座標系ＣＣにおける位置及び姿勢を算出する構成であってもよい。
【００７３】
また、位置姿勢算出部４６は、記憶部３２に予め記憶された操作対象物モデルを記憶部３２から読み出す。操作対象物モデルは、操作対象物Ｎの輪郭を表す画像（例えば、ＣＧ等）である。位置姿勢算出部４６は、この一例において、ステップＳ１９０において生成した第２差分画像Ｐ３４に対してエッジ検出を行う。そして、位置姿勢算出部４６は、検出されたエッジと、読み出した操作対象物モデルとに基づくパターンマッチングにより操作対象物Ｎの位置及び姿勢を算出する。当該位置及び姿勢は、第２差分画像Ｐ３４上の位置を表す座標系（すなわち、撮像部１０により撮像された撮像画像上の位置を表す座標系）である撮像部座標系ＣＣにおける位置及び姿勢である。なお、位置姿勢算出部４６は、エッジ検出及びパターンマッチングに代えて、他の方法によって操作対象物Ｎの撮像部座標系ＣＣにおける位置及び姿勢を算出する構成であってもよい。
【００７４】
ステップＳ２００の処理が行われた後、ロボット制御部５０は、記憶部３２に予め記憶された目標位置情報及び目標姿勢情報を読み出す。目標位置情報は、組付対象物Ｏに操作対象物Ｎが組み付けられた状態における組付対象物Ｏの位置と操作対象物Ｎの位置との相対的な位置を示す情報である。また、目標姿勢情報は、組付対象物Ｏに操作対象物Ｎが組み付けられた状態における組付対象物Ｏの姿勢と操作対象物Ｎの姿勢との相対的な姿勢を示す情報である。ロボット制御部５０は、読み出した目標位置情報と、ステップＳ２００において位置姿勢算出部４６が算出した組付対象物Ｏの位置とに基づいて、組付対象物Ｏに操作対象物Ｎが組み付けられた状態における操作対象物Ｎの撮像部座標系ＣＣにおける位置を、操作対象物Ｎの位置を変化させる目標となる目標位置として算出する。また、ロボット制御部５０は、読み出した目標姿勢情報と、ステップＳ２００において位置姿勢算出部４６が算出した組付対象物Ｏの姿勢とに基づいて、組付対象物Ｏに操作対象物Ｎが組み付けられた状態における操作対象物Ｎの撮像部座標系ＣＣにおける姿勢を、操作対象物Ｎの姿勢を変化させる目標となる目標姿勢として算出する。そして、ロボット制御部５０は、算出した目標位置と、ステップＳ２００において位置姿勢算出部４６が算出した操作対象物Ｎの位置との差分を表すベクトルを、操作対象物Ｎの位置を変化させる第１移動量として算出する。また、ロボット制御装置３０は、算出した目標姿勢と、ステップＳ２００において位置姿勢算出部４６が算出した操作対象物Ｎの姿勢との差分を表すベクトルを、操作対象物Ｎの姿勢を変化させる第２移動量として算出する（ステップＳ２１０）。以下では、説明の便宜上、第１移動量及び第２移動量を区別する必要がない限り、まとめて移動量と称して説明する。
【００７５】
次に、ロボット制御部５０は、撮像部座標系ＣＣの姿勢とロボット座標系ＲＣの姿勢との相対的な姿勢に基づいて、ステップＳ２１０において算出した移動量を、ロボット座標系ＲＣにおける移動量に変換する（ステップＳ２２０）。より具体的には、ロボット制御部５０は、記憶部３２に予め記憶された当該姿勢を示す情報を読み出し、読み出した当該情報に基づいて、ステップＳ２１０において算出した移動量を、ロボット座標系ＲＣにおける移動量に変換する。次に、ロボット制御部５０は、ステップＳ２２０において変換した移動量に基づいてロボット２０を動作させ、操作対象物Ｎを組付対象物Ｏに組み付け（ステップＳ２３０）、処理を終了する。
【００７６】
このように、ロボット制御装置３０は、第１対象物（この一例において、操作対象物Ｎ）を含まない第１範囲が撮像された第１画像と、第１範囲の少なくとも一部と重なる範囲であって第１対象物を含む第２範囲が撮像された第２画像とを用いて検出された操作対象物Ｎの位置に基づいてアームＡを動かす。これにより、ロボット制御装置３０は、第１対象物に関する作業（この一例において、前述の所定の作業）を精度よく行うことができる。
【００７７】
なお、ロボット制御装置３０は、第１差分画像Ｐ１２から組付対象物Ｏの位置及び姿勢と、第２差分画像Ｐ３４から操作対象物Ｎの位置及び姿勢とを算出する構成に代えて、第１差分画像Ｐ１２から組付対象物Ｏの位置と、第２差分画像Ｐ３４から操作対象物Ｎの位置とを算出する構成であってもよい。この場合、ロボット制御装置３０は、算出した組付対象物Ｏの位置と、操作対象物Ｎの位置と、目標位置情報とに基づいて、前述の第１移動量をステップＳ２１０において撮像部座標系ＣＣにおける移動量として算出する。そして、ロボット制御装置３０は、算出した当該移動量をロボット座標系ＲＣにおける移動量に変換し、変換した当該移動量に基づいてロボット２０を動作させ、操作対象物Ｎを組付対象物Ｏに組み付ける。また、当該場合、前述した通り、操作対象物Ｎの姿勢と、組付対象物Ｏの姿勢とは、固定されており、変化しない。
【００７８】
また、ロボット制御装置３０は、第１差分画像Ｐ１２から組付対象物Ｏの位置及び姿勢と、第２差分画像Ｐ３４から操作対象物Ｎの位置及び姿勢とを算出する構成に代えて、第１差分画像Ｐ１２から組付対象物Ｏの位置及び姿勢を算出する構成であってもよい。この場合、ステップＳ１６０〜ステップＳ１８０の処理は、省略される。また、当該場合、ロボット制御装置３０は、操作対象物Ｎの位置及び姿勢を示す情報が予め記憶している、又は他の装置から当該情報を取得する。
【００７９】
また、ロボット制御装置３０は、第１差分画像Ｐ１２から組付対象物Ｏの位置及び姿勢と、第２差分画像Ｐ３４から操作対象物Ｎの位置及び姿勢とを算出する構成に代えて、第１差分画像Ｐ１２から組付対象物Ｏの位置を算出する構成であってもよい。この場合、ステップＳ１６０〜ステップＳ１８０の処理は、省略される。また、当該場合、ロボット制御装置３０は、操作対象物Ｎの位置を示す情報が予め記憶している、又は他の装置から当該情報を取得する。また、当該場合、操作対象物Ｎの姿勢と、組付対象物Ｏの姿勢とは、固定されており、変化しない。
【００８０】
また、ロボット制御装置３０は、第１差分画像Ｐ１２から組付対象物Ｏの位置及び姿勢と、第２差分画像Ｐ３４から操作対象物Ｎの位置及び姿勢とを算出する構成に代えて、第２差分画像Ｐ３４から操作対象物Ｎの位置及び姿勢を算出する構成であってもよい。この場合、ステップＳ１１０〜ステップＳ１２０の処理は、省略される。また、当該場合、ロボット制御装置３０は、組付対象物Ｏの位置及び姿勢を示す情報が予め記憶している、又は他の装置から当該情報を取得する。
【００８１】
また、ロボット制御装置３０は、第１差分画像Ｐ１２から組付対象物Ｏの位置及び姿勢と、第２差分画像Ｐ３４から操作対象物Ｎの位置及び姿勢とを算出する構成に代えて、第２差分画像Ｐ３４から操作対象物Ｎの位置を算出する構成であってもよい。この場合、ステップＳ１１０〜ステップＳ１２０の処理は、省略される。また、当該場合、ロボット制御装置３０は、組付対象物Ｏの位置を示す情報が予め記憶している、又は他の装置から当該情報を取得する。また、当該場合、操作対象物Ｎの姿勢と、組付対象物Ｏの姿勢とは、固定されており、変化しない。
【００８２】
また、組付対象物Ｏは、治具Ｆに支持される構成に代えて、ロボット２０以外の他のロボットによって把持される構成であってもよい。この場合、ステップＳ１３０において、組付対象物Ｏは、当該ロボットによって撮像部１０が撮像可能な範囲の内側に移動させられる。
【００８３】
＜実施形態の変形例１＞
以下、図１０を参照し、実施形態の変形例について説明する。なお、実施形態の変形例１では、実施形態と同様な構成部に対して同じ符号を付して説明を省略する。
【００８４】
実施形態の変形例１では、ロボット制御装置３０は、ロボット制御部５０に所定の作業を行わせる際、図４に示したフローチャートの処理に代えて、図１０に示したフローチャートの処理を行う。具体的には、実施形態におけるロボット制御装置３０は、撮像部１０により撮像された第１画像Ｐ１、第２画像Ｐ２、第３画像、第４画像Ｐ４のそれぞれに基づく位置制御によってロボット２０を動作させ、操作対象物Ｎを組付対象物Ｏに組み付ける構成であった。一方、実施形態の変形例１におけるロボット制御装置３０は、撮像部１０により撮像された第１画像Ｐ１、第２画像Ｐ２、第３画像、第４画像Ｐ４のそれぞれに基づくビジュアルサーボによってロボット２０を動作させ、操作対象物Ｎを組付対象物Ｏに組み付ける。
【００８５】
図１０は、ロボット制御装置３０がロボット２０に所定の作業を行わせる処理の流れの他の例を示す図である。なお、図１０に示したステップＳ１１０〜ステップＳ２１０の処理は、図４に示したステップＳ１１０〜ステップＳ２１０の処理と同様の処理であるため、説明を省略する。
【００８６】
ステップＳ２１０の処理が行われた後、ロボット制御部５０は、ステップＳ２１０において位置姿勢算出部４６が算出した移動量の大きさが所定の閾値未満であるか否かを判定する（ステップＳ２４０）。移動量の大きさは、この一例において、移動量を表すベクトルのノルムの平方根である。なお、移動量の大きさは、これに代えて、当該ノルム等の当該ベクトルに基づく他の量であってもよい。ここで、ステップＳ２４０の処理について説明する。
【００８７】
ロボット制御部５０は、ステップＳ２１０において位置姿勢算出部４６が算出した移動量のうちの第１移動量を表すベクトルのノルムの平方根を第１残差として算出する。以下では、一例として、当該ベクトルが有する成分を、撮像部座標系ＣＣにおけるＸ軸方向に操作対象物Ｎを並進させるＸ方向並進量Δｘ、撮像部座標系ＣＣにおけるＹ軸方向に操作対象物Ｎを並進させるＹ方向並進量Δｙ、撮像部座標系ＣＣにおけるＺ軸方向に操作対象物Ｎを並進させるＺ方向並進量Δｚのそれぞれを有する場合について説明する。この場合、当該平方根は、以下の式（２）にように表される。
【００８８】
【数２】
2018034245.tif 000004
【００８９】
また、ロボット制御部５０は、ステップＳ２１０において位置姿勢算出部４６が算出した移動量のうちの第２移動量を表すベクトルのノルムの平方根を第２残差として算出する。以下では、一例として、当該ベクトルが有する成分を、撮像部座標系ＣＣにおけるＵ軸方向に操作対象物Ｎを回転させるＵ方向回転量Δｕ、撮像部座標系ＣＣにおけるＶ軸方向に操作対象物Ｎを回転させるＶ方向回転量Δｖ、撮像部座標系ＣＣにおけるＷ軸方向に操作対象物Ｎを回転させるＷ方向並進量Δｗのそれぞれを有する場合について説明する。この場合、当該平方根は、以下の式（３）にように表される。なお、当該Ｕ軸は、撮像部座標系ＣＣにおけるＸ軸周りの回転量を表す座標軸であり、当該Ｖ軸は、撮像部座標系ＣＣにおけるＹ軸周りの回転量を表す座標軸であり、当該Ｗ軸は、撮像部座標系ＣＣにおけるＺ軸周りの回転量を表す座標軸である。
【００９０】
【数３】
2018034245.tif 000005
【００９１】
そして、ロボット制御部５０は、ステップＳ２４０において、算出した第１残差が所定の第２閾値ｔｈ１未満であり、且つ算出した第２残差が所定の第３閾値ｔｈ２未満であるか否かを判定することにより、ステップＳ２１０において位置姿勢算出部４６が算出した移動量の大きさが所定の閾値未満であるか否かを判定する。なお、ロボット制御部５０は、ステップＳ２４０において、算出した第１残差が所定の第２閾値ｔｈ１未満であるか否かを判定すること、又は算出した第２残差が所定の第３閾値ｔｈ２未満であるか否かを判定することのいずれか一方により、ステップＳ２１０において位置姿勢算出部４６が算出した移動量の大きさが所定の閾値未満であるか否かを判定する構成であってもよい。
【００９２】
ステップＳ２４０において、位置姿勢算出部４６が算出した移動量の大きさが所定の閾値未満であると判定した場合（ステップＳ２４０−ＹＥＳ）、ロボット制御部５０は、組付対象物Ｏに操作対象物Ｎが組み付けられたと判定し、処理を終了する。一方、位置姿勢算出部４６が算出した移動量の大きさが所定の閾値以上であると判定した場合（ステップＳ２４０−ＮＯ）、ロボット制御部５０は、撮像部座標系ＣＣの姿勢とロボット座標系ＲＣの姿勢との相対的な姿勢に基づいて、ステップＳ２１０において算出した第１移動量及び第２移動量のそれぞれを、ロボット座標系ＲＣにおける第１移動量及び第２移動量に変換する（ステップＳ２５０）。より具体的には、ロボット制御部５０は、記憶部３２に予め記憶された当該姿勢を示す情報を読み出し、読み出した当該情報に基づいて、ステップＳ２１０において算出した移動量を、ロボット座標系ＲＣにおける移動量に変換する。
【００９３】
次に、ロボット制御部５０は、ステップＳ２５０において変換した第１移動量及び第２移動量のそれぞれに対し、操作対象物Ｎ（すなわち、アームＡ）を動かす移動量に関する所定のゲインであってビジュアルサーボのゲインを乗算する（ステップＳ２６０）。ゲインは、０より大きく１より小さい値であれば、如何なる値であってもよい。なお、第１移動量に乗算するゲインと、第２移動量に乗算するゲインとは、同じ値であってもよく、異なる値であってもよい。
【００９４】
次に、ロボット制御部５０は、ステップＳ２６０においてゲインが乗算された第１移動量及び第２移動量に基づいてロボット２０を動作させ、操作対象物Ｎを組付対象物Ｏに近づける（ステップＳ２７０）。そして、撮像制御部４０は、ステップＳ１７０に遷移し、再び撮像部１０に撮像可能な範囲を撮像部１０に撮像させる。
【００９５】
このように、実施形態の変形例１におけるロボット制御装置３０は、第１画像Ｐ１と第２画像Ｐ２とを用いて検出された第１対象物（この一例において、操作対象物Ｎ）の位置と、アームＡを動かす移動量（すなわち、操作対象物Ｎを動かす移動量）に関するゲインとに基づいてアームＡを動かす。これにより、ロボット制御装置３０は、第１画像Ｐ１と第２画像Ｐ２とを用いて検出された第１対象物の位置と、ゲインとに基づいて、第１対象物に関する作業（この一例において、前述の所定の作業）を精度よくロボット２０に行わせることができる。すなわち、ロボット制御装置３０は、ビジュアルサーボによってロボット２０を動作させ、当該作業をロボット２０に精度よく行わせることができる。また、ロボット制御装置３０は、ステップＳ２５０における移動量の変換において無視できないほどの変換誤差が発生する場合であっても、このようなビジュアルサーボ（すなわち、フィードバック制御）により、組付対象物Ｏに操作対象物Ｎを精度よく組み付けることができる。その結果、組付対象物Ｏに操作対象物Ｎが組み付けられた場合にステップＳ２４０において移動量の大きさが所定の閾値未満になることが保証される。
【００９６】
＜実施形態の変形例２＞
以下、図１１を参照し、実施形態の変形例２について説明する。なお、実施形態の変形例２では、実施形態と同様な構成部に対して同じ符号を付して説明を省略する。
【００９７】
図１１は、実施形態の変形例２に係るロボットシステム２の構成の一例を示す図である。ロボットシステム２は、ロボット制御装置３０を内蔵するロボット６０を備える。
【００９８】
ロボット６０は、第１アームと、第２アームと、第１アーム及び第２アームを支持する支持台と、当該支持台の内側にロボット制御装置３０を備える双腕ロボットである。なお、ロボット６０は、双腕ロボットに代えて、３本以上のアームを備える複腕ロボットであってもよい。
【００９９】
第１アームは、第１エンドエフェクターＥ１と、第１マニピュレーターＭ１を備える。
【０１００】
第１エンドエフェクターＥ１は、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、第１エンドエフェクターＥ１は、当該指部を備えるエンドエフェクターに代えて、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクターや、他のエンドエフェクターであってもよい。
【０１０１】
第１エンドエフェクターＥ１は、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、第１エンドエフェクターＥ１は、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第１エンドエフェクターＥ１は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【０１０２】
第１マニピュレーターＭ１は、７つの関節と、第１撮像部６１を備える。また、当該７つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、第１マニピュレーターＭ１を備える第１アームは、７軸垂直多関節型のアームである。第１アームは、支持台と、第１エンドエフェクターＥ１と、第１マニピュレーターＭ１と、第１マニピュレーターＭ１が備える７つの関節それぞれのアクチュエーターとによる連携した動作によって７軸の自由度の動作を行う。なお、第１アームは、６軸以下の自由度で動作する構成であってもよく、８軸以上の自由度で動作する構成であってもよい。
【０１０３】
第１アームが７軸の自由度で動作する場合、第１アームは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これにより第１アームは、例えば、動作が滑らかになり、更に第１アームの周辺に存在する物体との干渉を容易に回避することができる。また、第１アームが７軸の自由度で動作する場合、第１アームの制御は、第１アームが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
【０１０４】
第１マニピュレーターＭ１が備える７つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、第１マニピュレーターＭ１を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第１マニピュレーターＭ１が備える７つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【０１０５】
第１撮像部６１は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。この一例において、第１撮像部６１は、第１マニピュレーターＭ１の一部に備えられる。そのため、第１撮像部６１は、第１アームの動きに応じて移動する。また、第１撮像部６１が撮像可能な範囲は、第１アームの動きに応じて変化する。第１撮像部６１は、当該範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。
【０１０６】
また、第１撮像部６１は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第１撮像部６１は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【０１０７】
第２アームは、第２エンドエフェクターＥ２と、第２マニピュレーターＭ２を備える。
【０１０８】
第２エンドエフェクターＥ２は、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、第２エンドエフェクターＥ２は、当該指部を備えるエンドエフェクターに代えて、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクターや、他のエンドエフェクターであってもよい。
【０１０９】
第２エンドエフェクターＥ２は、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、第２エンドエフェクターＥ２は、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第２エンドエフェクターＥ２は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【０１１０】
第２マニピュレーターＭ２は、７つの関節と、第２撮像部６２を備える。また、当該７つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、第２マニピュレーターＭ２を備える第２アームは、７軸垂直多関節型のアームである。第２アームは、支持台と、第２エンドエフェクターＥ２と、第２マニピュレーターＭ２と、第２マニピュレーターＭ２が備える７つの関節それぞれのアクチュエーターとによる連携した動作によって７軸の自由度の動作を行う。なお、第２アームは、６軸以下の自由度で動作する構成であってもよく、８軸以上の自由度で動作する構成であってもよい。
【０１１１】
第２アームが７軸の自由度で動作する場合、第２アームは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これにより第２アームは、例えば、動作が滑らかになり、更に第２アームの周辺に存在する物体との干渉を容易に回避することができる。また、第２アームが７軸の自由度で動作する場合、第２アームの制御は、第２アームが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
【０１１２】
第２マニピュレーターＭ２が備える７つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、第２マニピュレーターＭ２を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第２マニピュレーターＭ２が備える７つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【０１１３】
第２撮像部６２は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。この一例において、第２撮像部６２は、第２マニピュレーターＭ２の一部に備えられる。そのため、第２撮像部６２は、第２アームの動きに応じて移動する。また、第２撮像部６２が撮像可能な範囲は、第２アームの動きに応じて変化する。第２撮像部６２は、当該範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。
【０１１４】
また、第２撮像部６２は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第２撮像部６２は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【０１１５】
また、ロボット６０は、第３撮像部６３と、第４撮像部６４を備える。
第３撮像部６３は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第３撮像部６３は、前述の作業領域を含む範囲であって第４撮像部６４が撮像可能な範囲を第４撮像部６４とともにステレオ撮像可能な部位に備えられる。第３撮像部６３は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第３撮像部６３は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【０１１６】
第４撮像部６４は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第４撮像部６４は、作業領域を含む範囲であって第３撮像部６３が撮像可能な範囲を第３撮像部６３とともにステレオ撮像可能な部位に備えられる。第４撮像部６４は、ケーブルによって通信可能にロボット制御装置３０と接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第４撮像部６４は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【０１１７】
上記で説明したロボット６０が備える各機能部は、この一例において、ロボット６０に内蔵されたロボット制御装置３０から制御信号を取得する。そして、当該各機能部は、取得した制御信号に基づいた動作を行う。なお、ロボット６０は、ロボット制御装置３０を内蔵する構成に代えて、外部に設置されたロボット制御装置３０により制御される構成であってもよい。この場合、ロボット６０と、ロボット制御装置３０とは、ロボットシステムを構成する。また、ロボット６０は、第１撮像部６１と第２撮像部６２のいずれか一方又は両方を備えない構成であってもよい。
【０１１８】
ここで、この一例における操作対象物Ｎは、図１に示したように、第１アームの第１エンドエフェクターＥ１によって予め把持されている。従って、ロボット制御装置３０は、第１アームを実施形態におけるアームＡと同様に制御する。また、この一例におけるロボット制御装置３０は、実施形態における撮像部１０に代えて、第３撮像部６３及び第４撮像部６４に作業領域をステレオ撮像させ、第３撮像部６３及び第４撮像部６４のそれぞれから第１画像Ｐ１、第２画像Ｐ２、第３画像、第４画像Ｐ４のそれぞれを取得する。この場合、ロボット制御装置３０は、第３撮像部６３によって撮像された第１画像Ｐ１、第２画像Ｐ２、第３画像、第４画像Ｐ４に基づいて第１差分画像及び第２差分画像を生成するとともに、第４撮像部６４によって撮像された第１画像Ｐ１、第２画像Ｐ２、第３画像、第４画像Ｐ４に基づいて第１差分画像及び第２差分画像を生成する。そして、ロボット制御装置３０は、これらの第１差分画像及び第２差分画像に基づいて、撮像部座標系ＣＣにおける組付対象物Ｏの位置及び姿勢と、撮像部座標系ＣＣにおける操作対象物Ｎの位置及び姿勢とを算出する。当該組付対象物Ｏの位置及び姿勢は、２枚の第１差分画像（すなわち、ステレオ画像）に基づいて算出された三次元位置及び三次元姿勢である。また、当該操作対象物Ｎの位置及び姿勢は、２枚の第２差分画像（すなわち、ステレオ画像）に基づいて算出された三次元位置及び三次元姿勢である。
【０１１９】
また、この一例における組付対象物Ｏは、図１に示したように、第２アームの第２エンドエフェクターＥ２によって予め把持されている。従って、ロボット制御装置３０は、前述のステップＳ１３０において、第２アームを動作させ、第３撮像部６３及び第４撮像部６４がステレオ撮像可能な範囲の内側に組付対象物Ｏを移動させる。これにより、ロボット制御装置３０は、図４又は図１０に示したステップＳ１３０の処理において、ユーザーが組付対象物Ｏを治具Ｆに取り付けるまで待機する処理を省略することができる。その結果、ロボット制御装置３０は、ユーザーに作業を行わせることなく、ロボット２０に所定の作業を行わせることができる。
【０１２０】
このように、実施形態の変形例２におけるロボット制御装置３０は、単腕ロボットであるロボット２０に代えて、双腕ロボットであるロボット６０を制御する場合であっても、第１対象物（この一例において、操作対象物Ｎ）を含まない第１範囲が撮像された第１画像と、第１範囲の少なくとも一部と重なる範囲であって第１対象物を含む第２範囲が撮像された第２画像とを用いて検出された第１対象物の位置に基づいてアーム（この一例において、第１アーム）を動かす。これにより、ロボット制御装置３０は、第１対象物に関する作業をロボット６０に精度よく行わせることができる。
【０１２１】
なお、ロボット制御装置３０は、ステップＳ２２０において変換した移動量、又はステップＳ２６０においてゲインを乗算した移動量に基づいて第１アームを動かす構成に代えて、ステップＳ２２０において変換した移動量、又はステップＳ２６０においてゲインを乗算した移動量に基づいて第２アームを動かす構成であってもよい。すなわち、ロボット制御装置３０は、第２アームを動作させ、操作対象物Ｎに対して組付対象物Ｏを組み付ける作業を所定の作業としてロボット６０に行わせる構成であってもよい。
【０１２２】
また、ロボットシステム２では、実施形態同様に、組付対象物Ｏが治具Ｆに取り付けられる構成であってもよい。この場合、ロボット６０は、第１アームと第２アームのいずれか一方又は両方によって操作対象物Ｎを予め把持する。
【０１２３】
また、ロボットシステム２は、図１２に示したように、撮像部１０を更に備える構成であってもよい。図１２は、実施形態の変形例２に係るロボットシステム２の構成の他の例を示す図である。この場合、ロボット制御装置３０は、撮像部１０により前述の第１画像Ｐ１、第２画像Ｐ２、第３画像、第４画像Ｐ４のそれぞれを撮像し、撮像部１０から第１画像Ｐ１、第２画像Ｐ２、第３画像、第４画像Ｐ４のそれぞれを取得する。
【０１２４】
以上のように、ロボット（この一例において、ロボット２０又はロボット６０）は、第１対象物（この一例において、操作対象物Ｎ）を含まない第１範囲が撮像された第１画像（この一例において、第１画像Ｐ１）と、第１範囲の少なくとも一部と重なる範囲であって第１対象物を含む第２範囲が撮像された第２画像（この一例において、第２画像Ｐ２）とを用いて検出された第１対象物の位置に基づいてアーム（この一例において、アームＡ又は第１アーム）を動かす。これにより、ロボットは、第１対象物に関する作業（この一例において、所定の作業）を精度よく行うことができる。
【０１２５】
また、ロボットは、第１画像と第２画像との差分に基づく差分画像（この一例において、第１差分画像Ｐ１２、第２差分画像Ｐ３４）が生成され、生成された差分画像を用いて検出された第１対象物の位置に基づいてアームを動かす。これにより、ロボットは、差分画像を用いて検出された第１対象物の位置に基づいて、第１対象物に関する作業を精度よく行うことができる。
【０１２６】
また、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、アームを動かす移動量に関するゲインであってビジュアルサーボのゲインとに基づいてアームを動かす。これにより、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、ゲインとに基づいて、第１対象物に関する作業を精度よく行うことができる。
【０１２７】
また、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、第１対象物の位置を変化させる目標となる目標位置との差に基づいてアームを動かす。これにより、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と目標位置との差に基づいて、第１対象物に関する作業を精度よく行うことができる。
【０１２８】
また、ロボットは、第３画像（この一例において、第２画像Ｐ２）、及び第４画像（この一例において、第４画像Ｐ４）を用いて検出された第２対象物（この一例において、組付対象物Ｏ）の位置と、目標位置情報とに基づいて第１対象物と第２対象物とを組み付ける。これにより、ロボットは、第３画像、及び第４画像を用いて検出された第２対象物の位置と、目標位置情報とに基づいて、第１対象物と第２対象物とを組み付ける作業を精度よく行うことができる。
【０１２９】
また、ロボットは、では、第３画像は、第２画像である。これにより、ロボットは、第１対象物の位置に基づく作業に要する時間を短縮することができる。
【０１３０】
また、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の姿勢に基づいてアームを動かす。これにより、ロボットは、第１対象物の位置及び姿勢に基づいて、第１対象物に関する作業を精度よく行うことができる。
【０１３１】
また、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の姿勢と、第１対象物の姿勢を変化させる目標となる目標姿勢との差に基づいてアームを動かす。これにより、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の姿勢と、目標姿勢との差に基づいて、第１対象物に関する作業を精度よく行うことができる。
【０１３２】
また、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、目標位置情報と、第２対象物の位置とに基づいてアームを動かす。これにより、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、目標位置情報と、第２対象物の位置とに基づいて、第１対象物に関する作業を精度よく行うことができる。
【０１３３】
また、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、目標位置情報と、第３画像、及び第４画像を用いて検出された第２対象物の位置とに基づいて前記第１対象物と前記第２対象物とを組み付ける。これにより、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の位置と、目標位置情報と、第３画像、及び第４画像を用いて検出された第２対象物の位置とに基づいて、第１対象物に関する作業を精度よく行うことができる。
【０１３４】
また、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の姿勢と、目標姿勢情報とに基づいてアームを動かす。これにより、ロボットは、第１画像と第２画像とを用いて検出された第１対象物の姿勢と、目標姿勢情報とに基づいて、第１対象物に関する作業を精度よく行うことができる。
【０１３５】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１３６】
また、以上に説明した装置（例えば、ロボット制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１３７】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１３８】
１、２…ロボットシステム、１０…撮像部、２０、６０…ロボット、３０…ロボット制御装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…制御部、４０…撮像制御部、４２…画像取得部、４６…位置姿勢算出部、５０…ロボット制御部、６１…第１撮像部、６２…第２撮像部、６３…第３撮像部、６４…第４撮像部
【図１】
2018034245.tif 000006
【図２】
2018034245.tif 000007
【図３】
2018034245.tif 000008
【図４】
2018034245.tif 000009
【図５】
2018034245.tif 000010
【図６】
2018034245.tif 000011
【図７】
2018034245.tif 000012
【図８】
2018034245.tif 000013
【図９】
2018034245.tif 000014
【図１０】
2018034245.tif 000015
【図１１】
2018034245.tif 000016
【図１２】
2018034245.tif 000017