(57)【要約】【課題】機械的なキャリブレーションを行うことなく、第１ロボットと第２ロボットを１台の撮像部により撮像した画像に基づいて高い精度で動作させることができる制御装置を提供すること。【解決手段】撮像部により撮像した第１画像および第１ロボット座標系に基づいて第１ロボットを動作させ、前記第１ロボット座標系とは異なる第２ロボット座標系および前記撮像部により撮像した第２画像に基づいて第２ロボットを動作させる、制御装置。【選択図】図３
2017119321.tif 000002
【特許請求の範囲】
【請求項１】
撮像部により撮像した第１画像及び第１ロボット座標系に基づいて第１ロボットを動作させ、
前記第１ロボット座標系とは異なる第２ロボット座標系及び前記撮像部により撮像した第２画像に基づいて第２ロボットを動作させる、
制御装置。
【請求項２】
前記第１画像と前記第２画像は同じ画像である、
請求項１に記載の制御装置。
【請求項３】
前記撮像部は、前記第１ロボットに設けられている、
請求項１又は２に記載の制御装置。
【請求項４】
前記撮像部を移動させることにより、前記第１ロボット座標系と前記撮像部の撮像部座標系とを対応付けるとともに、前記第２ロボット座標系と前記撮像部座標系とを対応付ける、
請求項３に記載の制御装置。
【請求項５】
前記撮像部を移動させることにより、前記第１ロボット座標系と前記撮像部の撮像部座標系とを対応付ける、
請求項３に記載の制御装置。
【請求項６】
前記撮像部を固定して前記第２ロボットにより対象物を移動させることにより、前記第２ロボット座標系と前記撮像部座標系とを対応付ける、
請求項５に記載の制御装置。
【請求項７】
前記第１ロボットと、
前記第２ロボットと、
請求項１から６のうちいずれか一項に記載の制御装置と、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置、及びロボットシステムに関する。
【背景技術】
【０００２】
撮像部により撮像した撮像画像に基づいてロボットに作業を行わせる制御装置の研究や開発が行われている。
【０００３】
これに関し、カメラとロボットアームをそれぞれ１台ずつ含むロボットシステムにおいて、当該カメラによって撮像された画像に基づいて、ロボットアームを基準としたワークの位置及び姿勢情報を特定し、ロボットアームを制御するロボットコントローラーが知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１８０７２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このようなロボットコントローラーでは、１台のカメラによって撮像された画像に基づいて２台以上のロボットアームを制御することは、これらのロボットアーム同士の機械的なキャリブレーションを行わない限り困難であった。また、これらのロボットアーム同士の機械的なキャリブレーションは、手間が掛かることに加えて、所望の精度を出すことが困難であった。機械的なキャリブレーションは、ここでは、複数のロボットアームのそれぞれの設置位置を調整する（変化させる）ことによる複数のロボットアームの相対的な位置及び姿勢の調整のことである。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、撮像部により撮像した第１画像及び第１ロボット座標系に基づいて第１ロボットを動作させ、前記第１ロボット座標系とは異なる第２ロボット座標系及び前記撮像部により撮像した第２画像に基づいて第２ロボットを動作させる、制御装置である。
この構成により、制御装置は、撮像部により撮像した第１画像及び第１ロボット座標系に基づいて第１ロボットを動作させ、第１ロボット座標系とは異なる第２ロボット座標系及び撮像部により撮像した第２画像に基づいて第２ロボットを動作させる。これにより、制御装置は、機械的なキャリブレーションを行うことなく、第１ロボットと第２ロボットを１台の撮像部により撮像した画像に基づいて高い精度で動作させることができる。
【０００７】
また、本発明の他の態様は、制御装置において、前記第１画像と前記第２画像は同じ画像である、構成が用いられてもよい。
この構成により、制御装置は、撮像部により撮像した第１画像及び第１ロボット座標系に基づいて第１ロボットを動作させ、第２ロボット座標系及び当該第１画像に基づいて第２ロボットを動作させる。これにより、制御装置は、機械的なキャリブレーションを行うことなく、容易に第１ロボットと第２ロボットを１台の撮像部により撮像した第１画像に基づいて動作させることができる。
【０００８】
また、本発明の他の態様は、制御装置において、前記撮像部は、前記第１ロボットに設けられている、構成が用いられてもよい。
この構成により、制御装置は、第１ロボットに設けられた撮像部により撮像した第１画像及び第１ロボット座標系に基づいて第１ロボットを動作させ、第２ロボット座標系及び撮像部により撮像した第２画像に基づいて第２ロボットを動作させる。これにより、制御装置は、機械的なキャリブレーションを行うことなく、容易に第１ロボットと第２ロボットを第１ロボットに設けられた撮像部により撮像した画像に基づいて動作させることができる。
【０００９】
また、本発明の他の態様は、制御装置において、前記撮像部を移動させることにより、前記第１ロボット座標系と前記撮像部の撮像部座標系とを対応付けるとともに、前記第２ロボット座標系と前記撮像部座標系とを対応付ける、構成が用いられてもよい。
この構成により、制御装置は、撮像部を移動させることにより、第１ロボット座標系と撮像部の撮像部座標系とを対応付けるとともに、第２ロボット座標系と撮像部座標系とを対応付ける。これにより、制御装置は、第１画像及び第１ロボット座標系に基づいて第１ロボットを高い精度で動作させることができるとともに、第２画像及び第２ロボット座標系に基づいて第２ロボットを高い精度で動作させることができる。
【００１０】
また、本発明の他の態様は、制御装置において、前記撮像部を移動させることにより、前記第１ロボット座標系と前記撮像部の撮像部座標系とを対応付ける、構成が用いられてもよい。
この構成により、制御装置は、撮像部を移動させることにより、第１ロボット座標系と撮像部の撮像部座標系とを対応付ける。これにより、制御装置は、第１画像及び第１ロボット座標系に基づいて、第１ロボットを高い精度で動作させることができる。
【００１１】
また、本発明の他の態様は、制御装置において、前記撮像部を固定して前記第２ロボットにより対象物を移動させることにより、前記第２ロボット座標系と前記撮像部座標系とを対応付ける、構成が用いられてもよい。
この構成により、制御装置は、撮像部を固定して第２ロボットにより対象物を移動させることにより、第２ロボット座標系と撮像部座標系とを対応付ける。これにより、制御装置は、第２画像及び第２ロボット座標系に基づいて、第２ロボットを高い精度で動作させることができる。
【００１２】
また、本発明の他の態様は、前記第１ロボットと、前記第２ロボットと、上記に記載の制御装置と、を備えるロボットシステムである。
この構成により、ロボットシステムは、撮像部により撮像した第１画像及び第１ロボット座標系に基づいて第１ロボットを動作させ、第１ロボット座標系とは異なる第２ロボット座標系及び撮像部により撮像した第２画像に基づいて第２ロボットを動作させる。これにより、ロボットシステムは、機械的なキャリブレーションを行うことなく、容易に第１ロボットと第２ロボットを１台の撮像部により撮像した画像に基づいて動作させることができる。
【００１３】
以上により、制御装置、及びロボットシステムは、撮像部により撮像した第１画像及び第１ロボット座標系に基づいて第１ロボットを動作させ、第１ロボット座標系とは異なる第２ロボット座標系及び撮像部により撮像した第２画像に基づいて第２ロボットを動作させる。これにより、制御装置、及びロボットシステムは、機械的なキャリブレーションを行うことなく、容易に第１ロボットと第２ロボットを１台の撮像部により撮像した画像に基づいて動作させることができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】制御装置３０のハードウェア構成の一例を示す図である。
【図３】制御装置３０の機能構成の一例を示す図である。
【図４】制御装置３０がダブルキャリブレーションを行う処理の流れの一例を示すフローチャートである。
【図５】第１作業及び第２作業が行われる際のロボットシステム１の構成の一例を示す図である。
【図６】第１作業及び第２作業において制御装置３０が行う処理の流れの一例を示すフローチャートである。
【図７】制御装置３０がダブルキャリブレーションを行う際のロボットシステム１の構成の一例を示す図である。
【図８】制御装置３０がダブルキャリブレーションを行う処理の変形例の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００１６】
＜ロボットシステムの構成＞
まず、ロボットシステム１の構成について説明する。
図１は、実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、第１ロボット１１と、第２ロボット１２と、制御装置３０を備える。
【００１７】
第１ロボット２１は、スカラロボットである。なお、第１ロボット１１は、スカラロボットに代えて、直角座標ロボットや単腕ロボット、複腕ロボット等の他のロボットであってもよい。直角座標ロボットは、例えば、ガントリロボットである。
【００１８】
図１に示した例において、第１ロボット１１は、床面に設置されている。なお、第１ロボット１１は、床面に代えて、壁面や天井面、テーブルや治具、台の上面等に設置される構成であってもよい。以下では、説明の便宜上、第１ロボット１１が設置されている面に直交する方向であって、第１ロボット１１から当該面に向かう方向を下と称し、当該方向と反対の方向を上と称して説明する。第１ロボット１１が設置されている面に直交する方向であって、第１ロボット１１の重心から当該面に向かう方向は、例えば、ワールド座標系におけるＺ軸の負の方向、又はロボット１１のロボット座標系ＲＣにおけるＺ軸の負の方向である。
【００１９】
第１ロボット１１は、床面に設置された支持台Ｂ１と、支持台Ｂ１に第１軸ＡＸ１１周りに回動可能に支持された第１アームＡ１１と、第１アームＡ１１に第２軸ＡＸ１２周りに回動可能に支持された第２アームＡ１２と、第２アームＡ１２に第３軸ＡＸ１３周りに回動可能かつ第３軸ＡＸ１３の軸方向に並進可能に支持されたシャフトＳ１を備える。
シャフトＳ１は、円柱形状の軸体である。シャフトＳ１の周表面には、図示しないボールねじ溝とスプライン溝とがそれぞれ形成される。シャフトＳ１は、第２アームＡ１２の端部のうちの第１アームＡ１１と反対側の端部を上下に貫通し、設けられている。また、シャフトＳ１には、この一例において、シャフトＳ１の端部のうちの上側の端部に当該円柱の半径よりも大きな半径の円盤形状のフランジが設けられている。当該円柱の中心軸は、当該フランジの中心軸と一致している。
【００２０】
シャフトＳ１のフランジが設けられていない方の端部には、エンドエフェクターの取り付けが可能な第１作業部Ｆ１が設けられている。以下では、一例として、第１作業部Ｆ１を下から上に向かって見た場合における第１作業部Ｆ１の形状が、シャフトＳ１の中心軸と中心が一致する円である場合について説明する。なお、当該形状は、円に代えて、他の形状であってもよい。
【００２１】
第１作業部Ｆ１の位置には、第１作業部Ｆ１とともに動くＴＣＰ（Tool  Center  Point）である制御点Ｔ１が設定される。第１作業部Ｆ１の位置は、第１作業部Ｆ１を下から上に向かって見た場合の第１作業部Ｆ１の形状である円の中心の位置である。なお、制御点Ｔ１が設定される位置は、第１作業部Ｆ１の位置に代えて、第１作業部Ｆ１に対応付けられた他の位置であってもよい。この一例において、当該円の中心の位置は、第１作業部Ｆ１の位置を表す。なお、第１作業部Ｆ１の位置は、これに代えて、他の位置によって表される構成であってもよい。
【００２２】
制御点Ｔ１には、制御点Ｔ１の位置及び姿勢（すなわち、第１作業部Ｆ１の位置及び姿勢）を表す三次元局所座標系である制御点座標系ＴＣ１が設定される。制御点Ｔ１の位置及び姿勢は、制御点Ｔ１の第１ロボット座標系ＲＣ１における位置及び姿勢のことである。第１ロボット座標系ＲＣ１は、第１ロボット１１のロボット座標系のことである。制御点座標系ＴＣ１の原点は、制御点Ｔ１の位置、すなわち第１作業部Ｆ１の位置を表す。また、制御点座標系ＴＣ１の各座標軸の方向は、制御点Ｔ１の姿勢、すなわち第１作業部Ｆ１の姿勢を表す。以下では、一例として、制御点座標系ＴＣ１におけるＺ軸と、シャフトＳ１の中心軸とを一致させている場合について説明する。なお、制御点座標系ＴＣ１におけるＺ軸は、必ずしもシャフトＳ１の中心軸と一致している必要はない。
【００２３】
支持台Ｂ１は、床面に固定されている。
【００２４】
第１アームＡ１１は、第１軸ＡＸ１１周りに回動するので、水平方向に移動する。水平方向は、この一例において、上下方向と直交する方向である。水平方向は、例えば、ワールド座標系におけるＸＹ平面に沿った方向、又は第１ロボット１１のロボット座標系である第１ロボット座標系ＲＣ１におけるＸＹ平面に沿った方向である。
【００２５】
第２アームＡ１２は、第２軸ＡＸ２周りに回動するので、水平方向に移動する。第２アームＡ１２は、図示しない上下動アクチュエーターと回動アクチュエーターとを備えてシャフトＳ１を支持する。上下動アクチュエーターは、シャフトＳ１のボールねじ溝の外周部に設けられたボールねじナットをタイミングベルト等で回動させることにより、シャフトＳ１を上下方向に移動（昇降）させる。回動アクチュエーターは、シャフトＳ１のスプライン溝の外周部に設けられたボールスプラインナットをタイミングベルト等で回動させることにより、シャフトＳ１の中心軸周りにシャフトＳ１を回動させる。
【００２６】
撮像部２０は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。この一例において、撮像部２０は、第１ロボット１１が作業を行うことが可能な領域を含む範囲を撮像可能な位置に設置される。なお、撮像部２０は、これに代えて、第２ロボット１２が備える構成であってもよく、第１ロボット１１及び第２ロボット１２と別体としてロボットシステム１が備える構成であってもよい。以下では、一例として、撮像部２０が上から下に向かって当該範囲を撮像するように第１ロボット１１に設けられている場合について説明する。なお、撮像部２０は、これに代えて、他の方向に向かって当該範囲を撮像する構成であってもよい。
【００２７】
第１ロボット１１が備える各アクチュエーター及び撮像部２０のそれぞれは、ケーブルによって制御装置３０と通信可能に接続されている。これにより、当該各アクチュエーター及び撮像部２０のそれぞれは、制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、当該アクチュエーター及び撮像部２０のうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００２８】
第２ロボット１２は、スカラロボットである。なお、第２ロボット１２は、スカラロボットに代えて、直角座標ロボットや単腕ロボット、複腕ロボット等の他のロボットであってもよい。
【００２９】
図１に示した例において、第２ロボット１２は、第１ロボット１１が設置されている床面のうちの第１ロボット１１が設置されている位置と異なる位置に設置されている。また第２ロボット１２は、第１ロボット１１が作業を行うことが可能な領域を含む図１に示した領域ＡＲにおいて作業が行える位置に設置される。なお、第２ロボット１２は、当該床面に代えて、他の床面や壁面、天井面、テーブルや治具、台の上面等に設置される構成であってもよい。
【００３０】
第２ロボット１２は、床面に設置された支持台Ｂ２と、支持台Ｂ２に第１軸ＡＸ２１周りに回動可能に支持された第１アームＡ２１と、第１アームＡ２１に第２軸ＡＸ２２周りに回動可能に支持された第２アームＡ２２と、第２アームＡ２２に第３軸ＡＸ２３周りに回動可能かつ第３軸ＡＸ２３の軸方向に並進可能に支持されたシャフトＳ２を備える。
シャフトＳ２は、円柱形状の軸体である。シャフトＳ２の周表面には、図示しないボールねじ溝とスプライン溝とがそれぞれ形成される。シャフトＳ２は、第２アームＡ２２の端部のうちの第１アームＡ２１と反対側の端部を上下に貫通し、設けられている。また、シャフトＳ２には、この一例において、シャフトＳ２の端部のうちの上側の端部に当該円柱の半径よりも大きな半径の円盤形状のフランジが設けられている。当該円柱の中心軸は、当該フランジの中心軸と一致している。
【００３１】
シャフトＳ２のフランジが設けられていない方の端部には、エンドエフェクターの取り付けが可能な第２作業部Ｆ２が設けられている。以下では、一例として、第２作業部Ｆ２を下から上に向かって見た場合における第２作業部Ｆ２の形状が、シャフトＳ２の中心軸と中心が一致する円である場合について説明する。なお、当該形状は、円に代えて、他の形状であってもよい。
【００３２】
第２作業部Ｆ２の位置には、第２作業部Ｆ２とともに動くＴＣＰである制御点Ｔ２が設定される。第２作業部Ｆ２の位置は、第２作業部Ｆ２を下から上に向かって見た場合の第２作業部Ｆ２の形状である円の中心の位置である。なお、制御点Ｔ２が設定される位置は、第２作業部Ｆ２の位置に代えて、第２作業部Ｆ２に対応付けられた他の位置であってもよい。この一例において、当該円の中心の位置は、第２作業部Ｆ２の位置を表す。なお、第２作業部Ｆ２の位置は、これに代えて、他の位置によって表される構成であってもよい。
【００３３】
制御点Ｔ２には、制御点Ｔ２の位置及び姿勢（すなわち、第２作業部Ｆ２の位置及び姿勢）を表す三次元局所座標系である制御点座標系ＴＣ２が設定される。制御点Ｔ２の位置及び姿勢は、制御点Ｔ２の第２ロボット座標系ＲＣ２における位置及び姿勢のことである。第２ロボット座標系ＲＣ２は、第２ロボット１２のロボット座標系のことである。制御点座標系ＴＣ２の原点は、制御点Ｔ２の位置、すなわち第２作業部Ｆ２の位置を表す。また、制御点座標系ＴＣ２の各座標軸の方向は、制御点Ｔ２の姿勢、すなわち第２作業部Ｆ２の姿勢を表す。以下では、一例として、制御点座標系ＴＣ２におけるＺ軸と、シャフトＳ２の中心軸とを一致させている場合について説明する。なお、制御点座標系ＴＣ２におけるＺ軸は、必ずしもシャフトＳ２の中心軸と一致している必要はない。
【００３４】
支持台Ｂ２は、床面に固定されている。
【００３５】
第１アームＡ２１は、第１軸ＡＸ２１周りに回動するので、水平方向に移動する。水平方向は、この一例において、上下方向と直交する方向である。水平方向は、例えば、ワールド座標系におけるＸＹ平面に沿った方向、又は第２ロボット１２のロボット座標系である第２ロボット座標系ＲＣ２におけるＸＹ平面に沿った方向である。
【００３６】
第２アームＡ２２は、第２軸ＡＸ２２周りに回動するので、水平方向に移動する。第２アームＡ２２は、図示しない上下動アクチュエーターと回動アクチュエーターとを備えてシャフトＳ２を支持する。上下動アクチュエーターは、シャフトＳ２のボールねじ溝の外周部に設けられたボールねじナットをタイミングベルト等で回動させることにより、シャフトＳ２を上下方向に移動（昇降）させる。回動アクチュエーターは、シャフトＳ２のスプライン溝の外周部に設けられたボールスプラインナットをタイミングベルト等で回動させることにより、シャフトＳ２の中心軸周りにシャフトＳ２を回動させる。
【００３７】
第２ロボット１２が備える各アクチュエーターはそれぞれ、ケーブルによって制御装置３０と通信可能に接続されている。これにより、これらのアクチュエーターはそれぞれ、制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、これらのアクチュエーターの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００３８】
制御装置３０は、第１ロボット１１に制御信号を送信することにより、第１ロボット１１を動作させる。これにより、制御装置３０は、第１ロボット１１に所定の作業である第１作業を行わせる。また、制御装置３０は、第２ロボット１２に制御信号を送信することにより、第２ロボット１２を動作させる。これにより、制御装置３０は、第２ロボット１２に第１作業と異なる所定の作業である第２作業を行わせる。すなわち、制御装置３０は、第１ロボット１１と第２ロボット１２の２台を制御する制御装置である。なお、制御装置３０は、これに代えて、３台以上のロボットを制御する構成であってもよい。また、制御装置３０は、第１ロボット１１及び第２ロボット１２の外部に設置される構成に代えて、第１ロボット１１と第２ロボット１２のうちいずれか一方に内蔵される構成であってもよい。
【００３９】
＜第１ロボット及び第２ロボットと制御装置とのキャリブレーションの概要＞
以下、この一例における第１ロボット１１及び第２ロボット１２と制御装置３０とのキャリブレーションの概要について説明する。
【００４０】
制御装置３０は、撮像部２０により撮像された撮像画像に基づいて、第１ロボット１１に第１作業を行わせるとともに、第２ロボット１２に第２作業を行わせる。この際、制御装置３０は、第１ロボット１１に第１作業を行わせるためには、撮像部座標系ＣＣの各座標が示す位置と、第１ロボット座標系ＲＣ１の各座標が示す位置とがキャリブレーションにより対応づけられている必要がある。撮像部座標系ＣＣは、撮像部２０により撮像された撮像画像上の位置を表す座標系である。また、制御装置３０は、第２ロボット１２に精度の高い第２作業を行わせるためには、撮像部座標系ＣＣの各座標が示す位置と、第２ロボット座標系ＲＣ２の各座標が示す位置とがキャリブレーションにより対応づけられている必要がある。
【００４１】
制御装置３０と異なる制御装置Ｘ（例えば、従来の制御装置）では、撮像部座標系ＣＣの各座標が示す位置と、第１ロボット座標系ＲＣ１の各座標が示す位置とを対応づけるとともに、撮像部座標系ＣＣの各座標が示す位置と、第２ロボット座標系ＲＣ２の各座標が示す位置とを対応づけるキャリブレーションであるダブルキャリブレーションを行うことができない又は困難であった。なお、このダブルキャリブレーションという呼称は、本実施形態において当該キャリブレーションを他のキャリブレーションと区別するための便宜上の呼称である。
【００４２】
このような理由により、制御装置Ｘでは、撮像画像Ｘ１１上の位置を表す座標系である撮像部座標系Ｘ１Ｃの各座標が示す位置と、第１ロボット座標系ＲＣ１の各座標が示す位置とがキャリブレーションにより対応づけられるとともに、撮像画像Ｘ２１上の位置を表す座標系である撮像部座標系Ｘ２Ｃの各座標が示す位置と、第２ロボット座標系ＲＣ２の各座標が示す位置とがキャリブレーションにより対応づけられる。撮像画像Ｘ１１は、第１ロボット１１に対応する撮像部Ｘ１が撮像した撮像画像である。撮像画像Ｘ２１は、第２ロボット１２に対応する撮像部Ｘ２が撮像した撮像画像である。撮像部Ｘ２は、撮像部Ｘ１ではない他の撮像部である。
【００４３】
この場合、制御装置Ｘは、撮像画像Ｘ１１に基づいて第１ロボット１１に第１作業を高い精度で行わせるとともに、撮像画像Ｘ２１に基づいて第２ロボット１２に第２作業を高い精度で行わせることができる。しかし、この場合であっても、例えば、第１作業と第２作業によって、第１ロボット１１と第２ロボット１２に協調作業を行わせる場合、第１ロボット座標系ＲＣ１の各座標が示す位置と第２ロボット座標系ＲＣ２の各座標が示す位置とが、機械的なキャリブレーションによって対応付けられていない限り、制御装置Ｘは、当該協調作業を高い精度で行うことが困難である。機械的なキャリブレーションは、この一例において、複数のロボットのそれぞれの設置位置を調整する（変化させる）ことによる複数のロボット同士の相対的な位置及び姿勢の調整のことである。
【００４４】
協調作業は、例えば、ある対象物Ｏを第１ロボット１１に把持させる作業が第１作業であり、第１作業において第１ロボット１１が把持した対象物Ｏに対して第２ロボット１２が研磨を行う作業が第２作業である場合のように、ワールド座標系において対応づいている１以上の位置に対して２以上のロボットが行う作業である。当該１以上の位置は、例えば、ワールド座標系において座標が同じ位置や、ワールド座標系において相対的な位置が決まっている複数の位置等である。
【００４５】
これに対し、制御装置３０は、前述したようにダブルキャリブレーションを行うことができる。このため、制御装置３０は、撮像部Ｘ１と撮像部Ｘ２という２台の撮像部を用意することなく、１台の撮像部２０により撮像された撮像画像に基づいて、第１ロボット１１に高い精度で第１作業を行わせることができるとともに、第２ロボット１２に高い精度で第２作業を行わせることができる。これにより、制御装置３０は、制御装置３０が制御するロボットの台数と同じ台数の撮像部を用意する必要がなく、複数のロボットに作業を行わせるために要する金銭的なコストを抑制することができ、更に複数の撮像部を設置するために要する時間と手間を減少させることができる。
【００４６】
また、制御装置３０は、ダブルキャリブレーションにより、撮像部座標系ＣＣの各座標が示す位置を媒介にして、第１ロボット座標系ＲＣ１の各座標が示す位置と第２ロボット座標系ＲＣ２の各座標が示す位置とが対応付けられるため、機械的なキャリブレーションを行うことなく、容易に第１ロボットと第２ロボットを１台の撮像部により撮像した画像に基づいて、協調作業を第１ロボット１１と第２ロボット１２に行わせることができる。
【００４７】
図１に示した例では、制御装置３０は、前述の領域ＡＲ内に設けられた３つの基準点である基準点Ｐ１〜基準点Ｐ３を撮像部２０に撮像させる。基準点Ｐ１〜基準点Ｐ３のそれぞれは、例えば、突起物の先端であってもよく、物体やマーカーであってもよい。マーカーは、物体の一部であってもよく、物体に設けられた印であってもよい。制御装置３０は、撮像部２０に撮像された撮像画像に基づいてダブルキャリブレーションを行う。以下では、制御装置３０がダブルキャリブレーションを行う処理について説明する。また、以下では、ダブルキャリブレーションが行われた制御装置３０が第１ロボット１１に第１作業を行わせるとともに、第２ロボット１２に第２作業を行わせる処理について説明する。
【００４８】
＜制御装置のハードウェア構成＞
以下、図２を参照し、制御装置３０のハードウェア構成について説明する。図２は、制御装置３０のハードウェア構成の一例を示す図である。制御装置３０は、例えば、ＣＰＵ（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）等のハードウェア機能部であってもよい。
【００５３】
撮像制御部４０は、撮像部２０が撮像可能な範囲を撮像部２０に撮像させる。この一例において、撮像範囲は、領域ＡＲを含む範囲である。
画像取得部４１は、撮像部２０が撮像した撮像画像を撮像部２０から取得する。
位置算出部４２は、画像取得部４１が取得した撮像画像に基づいて、撮像画像に含まれる物体やマーカー等の位置を算出する。なお、位置算出部４２は、撮像画像に基づいて、撮像画像に含まれる物体やマーカー等の位置及び姿勢を算出する構成であってもよい。
【００５４】
第１対応付部４３は、画像取得部４１が取得した撮像画像に基づいて、撮像部座標系ＣＣの各座標が示す位置と、第１ロボット座標系ＲＣ１の各座標が示す位置とを対応付ける。
第２対応付部４４は、画像取得部４１が取得した撮像画像に基づいて、撮像部座標系ＣＣの各座標が示す位置と、第２ロボット座標系ＲＣ２の各座標が示す位置とを対応付ける。
【００５５】
第１ロボット制御部４５は、位置算出部４２が算出した位置に基づいて、第１ロボット１１を動作させる。
第２ロボット制御部４６は、位置算出部４２が算出した位置に基づいて、第２ロボット１２を動作させる。
【００５６】
＜制御装置がダブルキャリブレーションを行う処理＞
以下、図４を参照し、制御装置３０がダブルキャリブレーションを行う処理について説明する。図４は、制御装置３０がダブルキャリブレーションを行う処理の流れの一例を示すフローチャートである。
【００５７】
以下では、一例として、制御装置３０がダブルキャリブレーションによって、撮像部座標系ＣＣの二次元位置と第１ロボット座標系ＲＣ１の二次元位置とを対応付けるとともに、撮像部座標系ＣＣの二次元位置と第２ロボット座標系ＲＣ２の二次元位置とを対応付ける場合について説明する。二次元位置は、二次元以上の座標系においてＸ座標及びＹ座標によって示される位置のことである。この場合、撮像部２０は、単眼のカメラであってもステレオカメラであってもよく、ライトフィールドカメラであってもよい。
【００５８】
なお、制御装置３０は、ダブルキャリブレーションによって、撮像部座標系ＣＣの三次元位置と第１ロボット座標系ＲＣ１の三次元位置とを対応付けるとともに、撮像部座標系ＣＣの三次元位置と第２ロボット座標系ＲＣ２の三次元位置とを対応付ける構成であってもよい。三次元位置は、三次元以上の座標系においてＸ座標、Ｙ座標、Ｚ座標のそれぞれによって示される位置のことである。この場合、撮像部２０は、ステレオカメラであってもよく、ライトフィールドカメラであってもよい。
【００５９】
この一例において、制御装置３０は、入力受付部３３を介して、動作モードをダブルキャリブレーションモードに切り替える操作を受け付けることによって図４に示したフローチャートの処理を開始する。
【００６０】
動作モードがダブルキャリブレーションモードに切り替えられた後、第１ロボット制御部４５は、記憶部３２に予め記憶された撮像部情報を記憶部３２から読み出す。撮像部情報は、制御点Ｔ１の位置及び姿勢と撮像部２０の位置及び姿勢との相対的な位置及び姿勢を示す情報である。また、第１ロボット制御部４５は、記憶部３２に予め記憶された撮像位置姿勢情報を記憶部３２から読み出す。撮像位置姿勢情報は、所定の撮像位置及び撮像姿勢を示す情報である。撮像位置は、撮像部２０の位置を一致させる位置であり、領域ＡＲを含む範囲を撮像可能な位置であれば如何なる位置であってもよい。撮像姿勢は、撮像位置における撮像部２０の姿勢を一致させる姿勢であり、領域ＡＲを含む範囲を撮像可能な姿勢であれば如何なる姿勢であってもよい。第１ロボット制御部４５は、制御点Ｔ１を移動させ、読み出した撮像部情報及び撮像位置姿勢情報に基づいて、撮像位置姿勢情報が示す撮像位置及び撮像姿勢と、撮像部２０の位置及び姿勢とを一致させる（ステップＳ１１０）。
【００６１】
次に、撮像制御部４０は、撮像部２０に領域ＡＲを含む範囲を撮像させる（ステップＳ１２０）。次に、画像取得部４１は、ステップＳ１２０において撮像部２０が撮像した撮像画像を撮像部２０から取得する（ステップＳ１３０）。前述したように、領域ＡＲには、基準点Ｐ１〜基準点Ｐ３のそれぞれが設けられている。このため、撮像画像には、基準点Ｐ１〜基準点Ｐ３のそれぞれが含まれている（撮像されている）。
【００６２】
次に、位置算出部４２は、ステップＳ１３０において画像取得部４１が取得した撮像画像に基づいて、例えば、パターンマッチング等によって基準点Ｐ１〜基準点Ｐ３のそれぞれの撮像部座標系ＣＣにおける位置を算出する（ステップＳ１４０）。前述した通り、この一例において、当該位置は、撮像部座標系ＣＣにおける二次元位置である。
【００６３】
次に、第１対応付部４３は、記憶部３２から第１基準情報を読み出す（ステップＳ１４５）。第１基準情報は、記憶部３２に予め記憶された基準点Ｐ１〜基準点Ｐ３のそれぞれの第１ロボット座標系ＲＣ１における位置を示す情報である。また、第１基準情報は、オンラインティーチングによる教示やダイレクトティーチングによる教示等によって記憶部３２に予め記憶された情報である。
【００６４】
オンラインティーチングによる教示は、ティーチングペンダントや制御装置３０が有するジョグキーを用いてロボットのＴＣＰを所望の位置に移動させ、所望の位置における当該ＴＣＰの第１ロボット座標系ＲＣ１における位置及び姿勢を制御装置３０に記憶させることである。当該ロボットは、この一例において、第１ロボット１１や第２ロボット１２のことである。制御装置３０は、当該ＴＣＰの位置及び姿勢を順運動学を用いて算出することができる。ダイレクトティーチングによる教示は、ユーザーが手によってロボットのＴＣＰを所望の位置に移動させ、所望の位置における当該ＴＣＰの第１ロボット座標系ＲＣ１における位置及び姿勢を制御装置３０に記憶させることである。
【００６５】
例えば、第１基準情報がダイレクトティーチングによる教示によって記憶される場合、ユーザーは、シャフトＳ１を手で移動させ、制御点Ｔ１を基準点Ｐ１〜基準点Ｐ３のそれぞれの位置に一致させる毎に、記憶部３２に現在の制御点Ｔ１の第１ロボット座標系ＲＣ１における位置を示す情報を第１基準情報として記憶させる。前述した通り、この一例において、第１基準情報が示す位置はそれぞれ、第１ロボット座標系ＲＣ１における二次元位置である。
【００６６】
ステップＳ１４５において記憶部３２から第１基準情報を読み出した後、第１ロボット制御部４５は、読み出した第１基準情報が示す位置であって基準点Ｐ１〜基準点Ｐ３のそれぞれの第１ロボット座標系ＲＣ１における位置と、ステップＳ１４０において位置算出部４２が算出した位置であって基準点Ｐ１〜基準点Ｐ３のそれぞれの撮像部座標系ＣＣにおける位置とに基づいて、第１ロボット座標系ＲＣ１における各座標が示す位置と撮像部座標系ＣＣにおける各座標が示す位置とを対応付ける第１対応付処理を行う（ステップＳ１５０）。
【００６７】
次に、第２対応付部４４は、記憶部３２から第２基準情報を読み出す（ステップＳ１６０）。第２基準情報は、記憶部３２に予め記憶された基準点Ｐ１〜基準点Ｐ３のそれぞれの第２ロボット座標系ＲＣ２における位置を示す情報である。また、第２基準情報は、オンラインティーチングによる教示やダイレクトティーチングによる教示等によって記憶部３２に予め記憶された情報である。
【００６８】
例えば、第２基準情報がダイレクトティーチングによる教示によって記憶される場合、ユーザーは、シャフトＳ２を手で移動させ、制御点Ｔ２を基準点Ｐ１〜基準点Ｐ３のそれぞれの位置に一致させる毎に、記憶部３２に現在の制御点Ｔ２の第２ロボット座標系ＲＣ２における位置を示す情報を第２基準情報として記憶させる。前述した通り、この一例において、第２基準情報が示す位置はそれぞれ、第２ロボット座標系ＲＣ２における二次元位置である。
【００６９】
ステップＳ１６０において記憶部３２から第２基準情報を読み出した後、第２対応付部４４は、読み出した第２基準情報が示す位置であって基準点Ｐ１〜基準点Ｐ３のそれぞれの第２ロボット座標系ＲＣ２における位置と、ステップＳ１４０において位置算出部４２が算出した位置であって基準点Ｐ１〜基準点Ｐ３のそれぞれの撮像部座標系ＣＣにおける位置とに基づいて、第２ロボット座標系ＲＣ２における各座標が示す位置と撮像部座標系ＣＣにおける各座標が示す位置とを対応付ける第２対応付処理を行う（ステップＳ１７０）。
【００７０】
以上のように、制御装置３０は、ダブルキャリブレーションを行う。なお、ステップＳ１５０の処理が行われた後であってステップＳ１７０の処理が行われる前の間において、制御装置３０は、再びステップＳ１２０〜ステップＳ１４０の処理を行う構成であってもよい。また、制御装置３０は、ステップＳ１４５及びステップＳ１５０の処理と、ステップＳ１６０及びステップＳ１７０の処理とを入れ替えて図４に示したフローチャートの処理を行う構成であってもよく、これらの処理を並列に行う構成であってもよい。また、領域ＡＲに設けられた基準点は、２以上であればよく、この一例のように３つである必要はない。
【００７１】
また、この一例では、制御装置３０がダブルキャリブレーションによって、撮像部座標系ＣＣの二次元位置と第１ロボット座標系ＲＣ１の二次元位置とを対応付けるとともに、撮像部座標系ＣＣの二次元位置と第２ロボット座標系ＲＣ２の二次元位置とを対応付ける場合について説明したが、制御装置３０は、これに代えて、撮像部座標系ＣＣの二次元位置と、３以上のロボット座標系の二次元位置とを対応付ける構成であってもよい。３以上のロボット座標系は、それぞれが互いに異なる３以上のロボットそれぞれのロボット座標系である。この場合、制御装置３０は、これら３以上のロボットのそれぞれを制御する。
【００７２】
また、制御装置３０は、Ｍ台の撮像部の一部又は全部とＮ台のロボットの一部又は全部との任意の組み合わせ毎に、それぞれの組み合わせに含まれる撮像部の撮像部座標系のそれぞれの二次元位置と、それぞれの組み合わせに含まれるロボットのロボット座標系のそれぞれの二次元位置とを対応付ける構成であってもよい。この場合、制御装置３０は、Ｎ台のロボットのそれぞれを制御する。ここで、Ｍ、Ｎはそれぞれ１以上の整数である。
【００７３】
＜第１作業及び第２作業において制御装置が行う処理＞
以下、図５及び図６を参照し、第１作業及び第２作業において制御装置が行う処理について説明する。
【００７４】
まず、第１作業及び第２作業が行われる際のロボットシステム１の構成について説明する。図５は、第１作業及び第２作業が行われる際のロボットシステム１の構成の一例を示す図である。
【００７５】
図５に示した例では、第１ロボット１１の第１作業部Ｆ１には、エンドエフェクターＥ１が取り付けられている。エンドエフェクターＥ１は、空気を吸引することによって物体を吸着させることが可能な真空グリッパーである。なお、エンドエフェクターＥ１は、これに代えて、物体を把持可能な指部を備えたエンドエフェクター等の他のエンドエフェクターであってもよい。図５では、エンドエフェクターＥ１により対象物ＯＢが持ち上げられている。
【００７６】
対象物ＯＢは、例えば、産業用の部品や部材、装置等である。なお、対象物ＯＢは、これに代えて、産業用ではない日用品の部品や部材、装置であってもよく、医療用の部品や部材、装置であってもよく、細胞等の生体であってもよい。図５に示した例では、対象物ＯＢは、直方体形状の物体として表されている。なお、対象物ＯＢの形状は、直方体形状に代えて、他の形状であってもよい。
【００７７】
また、図５に示した例では、第２ロボット１２の第２作業部Ｆ２には、エンドエフェクターＥ２が取り付けられている。エンドエフェクターＥ２は、空気を吸引することによって物体を吸着させることが可能な真空グリッパーである。なお、エンドエフェクターＥ２は、これに代えて、物体を把持可能な指部を備えたエンドエフェクター等の他のエンドエフェクターであってもよい。
【００７８】
図５に示した領域ＡＲからは、領域ＡＲから基準点Ｐ１〜基準点Ｐ３のそれぞれが撤去されている。また、領域ＡＲには、領域ＡＲ内における所定の配置位置にマーカーＭＫが設けられている。この配置位置は、対象物ＯＢを配置する位置である。マーカーＭＫは、配置位置を示す印である。
【００７９】
この一例において、第１ロボット１１は、第１作業として、エンドエフェクターＥによって予め持ち上げている対象物ＯＢをマーカーＭＫが示す配置位置に配置する作業を行う。また、第２ロボット１２は、第２作業として、第１ロボット１１が配置位置に配置した対象物ＯＢをエンドエフェクターＥ２によって持ち上げ、図示しない所定の給材領域に給材する作業を行う。
【００８０】
次に、第１作業及び第２作業において制御装置３０が行う処理について説明する。図６は、第１作業及び第２作業において制御装置３０が行う処理の流れの一例を示すフローチャートである。図６に示したフローチャートの処理は、エンドエフェクターＥ１に対象物ＯＢを持ち上げさせた後の処理である。なお、制御装置３０は、第１作業において、エンドエフェクターＥ１によって対象物ＯＢを持ち上げさせる構成であってもよい。
【００８１】
第１ロボット制御部４５は、記憶部３２から撮像部情報を読み出す。また、第１ロボット制御部４５は、記憶部３２から撮像位置姿勢情報を読み出す。そして、第１ロボット制御部４５は、制御点Ｔ１を移動させ、読み出した撮像部情報及び撮像位置姿勢情報に基づいて、撮像位置姿勢情報が示す撮像位置及び撮像姿勢と、撮像部２０の位置及び姿勢とを一致させる（ステップＳ２１０）。なお、ステップＳ２１０において記憶部３２から読み出した撮像部情報が、ダブルキャリブレーションを行った際に記憶部３２から読み出した撮像部情報と一致しない場合、制御装置３０は、再びダブルキャリブレーションを行う必要がある。また、ステップＳ２１０において記憶部３２から読み出した撮像位置姿勢情報が、ダブルキャリブレーションを行った際に記憶部３２から読み出した撮像位置姿勢情報と一致しない場合、制御装置３０は、再びダブルキャリブレーションを行う必要がある。
【００８２】
次に、撮像制御部４０は、撮像部２０に領域ＡＲを含む範囲を撮像させる（ステップＳ２２０）。次に、画像取得部４１は、ステップＳ２２０において撮像部２０が撮像した撮像画像を撮像部２０から取得する（ステップＳ２３０）。前述したように、領域ＡＲには、マーカーＭＫが設けられている。このため、撮像画像には、マーカーＭＫが含まれている（撮像されている）。当該撮像画像は、第１画像の一例である。
【００８３】
次に、位置算出部４２は、ステップＳ２３０において画像取得部４１が取得した撮像画像に基づいて、例えば、パターンマッチング等によってマーカーＭＫの第１ロボット座標系ＲＣ１における位置を算出する（ステップＳ２４０）。前述した通り、この一例において、当該位置は、撮像部座標系ＣＣにおける二次元位置である。制御装置３０は、ダブルキャリブレーションによって撮像部座標系ＣＣの各座標が示す位置と第１ロボット座標系ＲＣ１における各座標が示す位置とが対応付けられているため、このような撮像画像に基づいたマーカーＭＫの第１ロボット座標系ＲＣ１における位置の算出を行うことができる。
【００８４】
次に、第１ロボット制御部４５は、記憶部３２に予め記憶された形状情報を記憶部３２から読み出す。形状情報は、エンドエフェクターＥ１及び対象物ＯＢそれぞれの形状を示す情報である。また、第１ロボット制御部４５は、記憶部３２に予め記憶された吸着位置情報を記憶部３２から読み出す。吸着位置情報は、対象物ＯＢの位置から、対象物ＯＢが有する面上の位置であってエンドエフェクターＥ１が吸着する所定の吸着位置までの相対的な位置を示す情報である。対象物ＯＢの位置は、この一例において、対象物ＯＢが有する面のうちのエンドエフェクターＥ１に吸着されている面に対向する面の中心の位置によって表される。第１ロボット制御部４５は、読み出した形状情報及び吸着位置情報に基づいて、制御点Ｔ１と対象物ＯＢの位置との相対的な位置を算出する。第１ロボット制御部４５は、制御点Ｔ１を移動させ、算出した当該位置とステップＳ２４０において算出した位置とに基づいて、対象物ＯＢの位置と領域ＡＲ内の配置位置とを一致させる。これにより、第１ロボット制御部４５は、対象物ＯＢを配置位置に配置する（ステップＳ２５０）。なお、第１ロボット制御部４５は、キャリブレーションによって第１ロボット座標系ＲＣ１におけるＺ軸方向の位置であって領域ＡＲ内のマーカーＭＫが設けられている面の位置を予め記憶している。第１ロボット制御部４５は、対象物ＯＢを配置位置に配置した後、制御点Ｔ１を図示しない所定の待機位置に移動させる。所定の待機位置は、領域ＡＲにおいて第２ロボット１２が第２作業を行う場合に、第２ロボット１２が第１ロボット１１に接触しない位置であれば、如何なる位置であってもよい。
【００８５】
次に、第２ロボット制御部４６は、記憶部３２に予め記憶された形状情報を記憶部３２から読み出す。また、第２ロボット制御部４６は、記憶部３２に予め記憶された吸着位置情報を記憶部３２から読み出す。第２ロボット制御部４６は、読み出した形状情報及び吸着位置情報に基づいて、エンドエフェクターＥ２によって対象物ＯＢの吸着位置を吸着した場合における制御点Ｔ２と対象物ＯＢの位置との相対的な位置を算出する。第２ロボット制御部４６は、制御点Ｔ２を移動させ、算出した当該位置とステップＳ２４０において算出した位置とに基づいて、領域ＡＲ内の配置位置に配置されている対象物ＯＢの吸着位置をエンドエフェクターＥ２によって吸着する。そして、第２ロボット制御部４６は、対象物ＯＢを持ち上げる（ステップＳ２６０）。なお、第２ロボット制御部４６は、キャリブレーションによって第２ロボット座標系ＲＣ２におけるＺ軸方向の位置であって領域ＡＲ内のマーカーＭＫが設けられている面の位置を予め記憶している。
【００８６】
次に、第２ロボット制御部４６は、記憶部３２に予め記憶された給材領域情報を読み出す。給材領域情報は、図示しない給材領域の位置を示す情報である。第２ロボット制御部４６は、読み出した給材領域情報に基づいて対象物ＯＢを給材領域に給材し（ステップＳ２７０）、処理を終了する。
【００８７】
なお、制御装置３０は、ステップＳ２５０の処理が行われた後であってステップＳ２６０の処理が行われる前の間に、ステップＳ２１０〜ステップＳ２３０の処理を再び行い、領域ＡＲ内に配置された対象物ＯＢの第２ロボット座標系ＲＣ２における位置を、新たに撮像された撮像画像に基づいて算出する構成であってもよい。この場合、制御装置３０は、例えば、パターンマッチング等によって当該位置を算出する。これにより、制御装置３０は、第１作業における振動等によって対象物ＯＢの位置が配置位置からずれていた場合であっても、精度よく第２作業を行うことができる。当該撮像画像は、第２画像の一例である。
【００８８】
以上のように、制御装置３０は、撮像部２０により撮像した撮像画像及び第１ロボット座標系ＲＣ１に基づいて第１ロボット１１を動作させ、第１ロボット座標系ＲＣ１とは異なる第２ロボット座標系ＲＣ２及び撮像画像に基づいて第２ロボット１２を動作させる。これにより、制御装置３０は、機械的なキャリブレーションを行うことなく、容易に第１ロボット１１と第２ロボット１２を１台の撮像部２０により撮像した撮像画像に基づいて動作させることができる。
【００８９】
＜制御装置がダブルキャリブレーションを行う処理の変形例＞
以下、図７及び図８を参照し、制御装置３０がダブルキャリブレーションを行う処理の変形例について説明する。
【００９０】
まず、制御装置３０がダブルキャリブレーションを行う際のロボットシステム１の構成について説明する。図７は、制御装置３０がダブルキャリブレーションを行う際のロボットシステム１の構成の一例を示す図である。
【００９１】
図７に示した構成において撮像部２０が設けられた上下方向における位置は、図１に示した構成において撮像部２０が設けられた上下方向における位置よりも上側である。より具体的には、撮像部２０は、領域ＡＲを含む範囲を撮像可能な位置であり、更にシャフトＳ２の上側の端部に設けられたフランジの上面を撮像可能な位置に設けられる。また、この一例では、当該フランジの上面には、マーカーＭＫ２が設けられる。マーカーＭＫ２は、制御点Ｔ２の位置を示すマーカーである。当該位置は、ワールド座標系における二次元位置である。なお、マーカーＭＫ２は、制御点Ｔ１の位置を示すマーカーであれば、如何なるマーカーであってもよい。当該フランジは、第２ロボット１２により移動させる対象物の一例である。
【００９２】
次に、制御装置３０がダブルキャリブレーションを行う処理の変形例について説明する。図８は、制御装置３０がダブルキャリブレーションを行う処理の変形例の流れの一例を示すフローチャートである。以下では、図８に示したステップＳ１１０〜ステップＳ１５０の処理が、図４に示したステップＳ１１０〜ステップＳ１５０の処理と一部を除いて同様な処理であるため、説明を省略する。当該一部は、ステップＳ１１０の処理の一部のことである。図８に示したステップＳ１１０の処理において、制御装置３０は、撮像部２０の位置及び姿勢を撮像位置及び撮像姿勢に一致させた後、撮像部２０の位置及び姿勢が変わらないように固定する。
【００９３】
ステップＳ１５０の処理が行われた後、制御部３６は、複数の基準位置のそれぞれ毎に、ステップＳ３７０〜ステップＳ４００の処理を繰り返し行う（ステップＳ３６０）。基準位置は、ダブルキャリブレーションにおいて制御装置３０が制御点Ｔ２の位置を一致させる位置であって領域ＡＲ内の位置である。以下では、一例として基準位置は、基準位置Ｐ１１〜基準位置Ｐ１３の３つである場合について説明する。なお、基準位置は、２つ以上であればよく、３つである必要はない。
【００９４】
第２ロボット制御部４６は、制御点Ｔ２を移動させ、制御点Ｔ２の位置をステップＳ３６０において選択された基準位置（基準位置Ｐ１１〜基準位置Ｐ１３のいずれか）と一致させる（ステップＳ３７０）。次に、撮像制御部４０は、撮像部２０に領域ＡＲを含む範囲であってシャフトＳ２の上側の端部に設けられたフランジの上面を含む範囲を撮像させる（ステップＳ３８０）。次に、画像取得部４１は、ステップＳ３８０において撮像部２０が撮像した撮像画像を撮像部２０から取得する（ステップＳ３８５）。前述したように、当該フランジの上面には、マーカーＭＫ２が設けられている。このため、撮像画像には、マーカーＭＫ２が含まれている（撮像されている）。
【００９５】
次に、位置算出部４２は、ステップＳ３８５において画像取得部４１が取得した撮像画像に基づいてマーカーＭＫ２が示す位置、すなわち制御点Ｔ２の撮像部座標系ＣＣにおける位置を算出する。また、位置算出部４２は、順運動学に基づいて、現在の制御点Ｔ２の第２ロボット座標系ＲＣ２における位置を算出する（ステップＳ３９０）。次に、第２対応付部４４は、ステップＳ３９０において算出した制御点Ｔ２の撮像部座標系ＣＣにおける位置と制御点Ｔ２の第２ロボット座標系ＲＣ２における位置とを対応付ける（ステップＳ４００）。
【００９６】
このように、基準位置毎にステップＳ３７０〜ステップＳ４００の処理を繰り返すことにより。第２対応付部４４は、撮像部座標系ＣＣにおける各座標が示す位置と第２ロボット座標系ＲＣ２における各座標が示す位置とを対応付ける。すべての基準位置についてステップＳ３７０〜ステップＳ４００の処理を繰り返した後、第２ロボット制御部４６は、処理を終了する。
【００９７】
以上のように、制御装置３０は、図４において説明した方法とは異なる方法によってダブルキャリブレーションを行う。なお、この一例におけるダブルキャリブレーションにおいて、マーカーＭＫ２は、シャフトＳ２に取り付けられたエンドエフェクターによって把持又は吸着された対象物の一部に設けられている構成であってもよい。この場合、制御装置３０は、制御点Ｔ２の位置とマーカーＭＫ２の位置との相対的な位置を示す情報を用いて、ステップＳ３９０の処理を行う。なお、マーカーＭＫ２は、当該対象物の一部そのものであってもよい。また、制御装置３０は、ステップＳ３９０において、シャフトＳ２の上側の端部に設けられたフランジをマーカーＭＫ２の代わりにパターンマッチング等により検出し、当該フランジの位置に基づいて制御点Ｔ２の撮像部座標系ＣＣにおける位置を算出する構成であってもよい。当該フランジの位置は、当該フランジの上面の中心である。この場合、制御装置３０は、当該フランジの位置と制御点Ｔ２の位置との相対的な位置に基づいて制御点Ｔ２の撮像部座標系ＣＣにおける位置を算出する。
【００９８】
以上説明したように、実施形態における制御装置３０は、撮像部（この一例において、撮像部２０）により撮像した第１画像及び第１ロボット座標系（この一例において、第１ロボット座標系ＲＣ１）に基づいて第１ロボット（この一例において、第１ロボット１１）を動作させ、第１ロボット座標系とは異なる第２ロボット座標系（この一例において、第２ロボット座標系ＲＣ２）及び撮像部により撮像した第２画像に基づいて第２ロボット（この一例において、第２ロボット１２）を動作させる。これにより、制御装置３０は、機械的なキャリブレーションを行うことなく、第１ロボットと第２ロボットを１台の撮像部により撮像した画像に基づいて高い精度で動作させることができる。
【００９９】
また、制御装置３０は、撮像部により撮像した第１画像及び第１ロボット座標系に基づいて第１ロボットを動作させ、第２ロボット座標系及び当該第１画像に基づいて第２ロボットを動作させる。これにより、制御装置３０は、機械的なキャリブレーションを行うことなく、容易に第１ロボットと第２ロボットを１台の撮像部により撮像した第１画像に基づいて動作させることができる。
【０１００】
また、制御装置３０は、第１ロボットに設けられた撮像部により撮像した第１画像及び第１ロボット座標系に基づいて第１ロボットを動作させ、第２ロボット座標系及び撮像部により撮像した第２画像に基づいて第２ロボットを動作させる。これにより、制御装置３０は、機械的なキャリブレーションを行うことなく、容易に第１ロボットと第２ロボットを第１ロボットに設けられた撮像部により撮像した画像に基づいて動作させることができる。
【０１０１】
また、制御装置３０は、撮像部を移動させることにより、第１ロボット座標系と撮像部の撮像部座標系とを対応付けるとともに、第２ロボット座標系と撮像部座標系とを対応付ける。これにより、制御装置３０は、第１画像及び第１ロボット座標系に基づいて第１ロボットを高い精度で動作させることができるとともに、第２画像及び第２ロボット座標系に基づいて第２ロボットを高い精度で動作させることができる。
【０１０２】
また、制御装置３０は、撮像部を移動させることにより、第１ロボット座標系と撮像部の撮像部座標系とを対応付ける。これにより、制御装置３０は、第１画像及び第１ロボット座標系に基づいて、第１ロボットを高い精度で動作させることができる。
【０１０３】
また、制御装置３０は、撮像部を固定して第２ロボットにより対象物を移動させることにより、第２ロボット座標系と撮像部座標系とを対応付ける。これにより、制御装置３０は、第２画像及び第２ロボット座標系に基づいて、第２ロボットを高い精度で動作させることができる。
【０１０４】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１０５】
また、以上に説明した装置（例えば、制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１０６】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１０７】
１…ロボットシステム、１１…第１ロボット、１２…第２ロボット、２０…撮像部、３０…制御装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…制御部、４０…撮像制御部、４１…画像取得部、４２…位置算出部、４３…第１対応付部、４４…第２対応付部、４５…第１ロボット制御部、４６…第２ロボット制御部
【図１】
2017119321.tif 000003
【図２】
2017119321.tif 000004
【図３】
2017119321.tif 000005
【図４】
2017119321.tif 000006
【図５】
2017119321.tif 000007
【図６】
2017119321.tif 000008
【図７】
2017119321.tif 000009
【図８】
2017119321.tif 000010