(57)【要約】【課題】マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる画像処理装置を提供すること。【解決手段】マーカーが撮像された画像から、マーカーを検出する画像処理装置であって、前記マーカーを、複数のマーカー検出方法により検出可能であり、前記複数のマーカー検出方法のうちの一つの前記マーカー検出方法によって、前記マーカーを検出する、画像処理装置。【選択図】図１４
2017078877.tif 000002
【特許請求の範囲】
【請求項１】
マーカーが撮像された画像から、マーカーを検出する画像処理装置であって、
前記マーカーを、複数のマーカー検出方法により検出可能であり、前記複数のマーカー検出方法のうちの一つの前記マーカー検出方法によって、前記マーカーを検出する、
画像処理装置。
【請求項２】
前記マーカーは、第１マーカーと第２マーカーを含み、
前記第１マーカーの前記マーカー検出方法と、前記第２マーカーの前記マーカー検出方法とは異なる、
請求項１に記載の画像処理装置。
【請求項３】
前記複数のマーカー検出方法は、前記画像から前記マーカーを検出するための閾値を所定範囲で変化させて前記マーカーを検出する第１検出方法を含む、
請求項１又は２に記載の画像処理装置。
【請求項４】
前記複数のマーカー検出方法は、前記画像から前記マーカーを検出するための閾値として、最尤推定により求められた値を用いて前記マーカーを検出する第２検出方法を含む、
請求項１から３のうちいずれか一項に記載の画像処理装置。
【請求項５】
前記複数のマーカー検出方法は、前記画像から前記マーカーを検出するための閾値として、予め定められた値を用いて前記マーカーを検出する第３検出方法を含む、
請求項１から４のうちいずれか一項に記載の画像処理装置。
【請求項６】
前記閾値は、前記画像を二値化する閾値である、
請求項３から５のうちいずれか一項に記載の画像処理装置。
【請求項７】
前記閾値は、前記画像の色を判定する閾値である、
請求項３から６のうちいずれか一項に記載の画像処理装置。
【請求項８】
前記マーカーと、前記マーカー検出方法とを対応づけたテーブルに基づいて、前記マーカーを検出する、
請求項１から７のうちいずれか一項に記載の画像処理装置。
【請求項９】
前記画像に含まれる前記マーカーと、前記画像とは撮像条件が異なる画像に含まれる前記マーカーとに基づいて、前記マーカー検出方法を決定する、
請求項１から８のうちいずれか一項に記載の画像処理装置。
【請求項１０】
前記画像に含まれる前記マーカーを検出するための閾値と、前記画像とは撮像条件が異なる画像に含まれる前記マーカーを検出するための閾値とを表示部に表示させ、前記マーカー検出方法を編集可能である、
請求項１から９のうちいずれか一項に記載の画像処理装置。
【請求項１１】
請求項１から１０のうちいずれか一項に記載の画像処理装置を備える、
ロボット。
【請求項１２】
前記マーカーを含む範囲を前記画像として撮像する撮像部と、
請求項１１に記載のロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置、ロボット、及びロボットシステムに関する。
【背景技術】
【０００２】
画像からマーカーや対象物を検出し、検出したマーカーや対象物に応じて作業を行うロボットの研究や開発が行われている。
【０００３】
これに関し、マーカーを判別可能にするための閾値を用いて撮像画像を二値化し、二値化した撮像画像からマーカー候補を検出し、検出したマーカー候補から誤認識で検出したマーカー候補を除外する画像検出方法が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３０４７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、この画像検出方法では、撮像画像に含まれる複数のマーカーのそれぞれ毎に適した検出方法によって当該マーカーを検出することができず、マーカーの検出精度の向上と、マーカーの検出時間の短縮との両立が困難な場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、マーカーが撮像された画像から、マーカーを検出する画像処理装置であって、前記マーカーを、複数のマーカー検出方法により検出可能であり、前記複数のマーカー検出方法のうちの一つの前記マーカー検出方法によって、前記マーカーを検出する、画像処理装置である。
この構成により、画像処理装置は、複数のマーカー検出方法のうちの一つのマーカー検出方法によって、マーカーを検出する。これにより、画像処理装置は、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０００７】
また、本発明の他の態様は、画像処理装置において、前記マーカーは、第１マーカーと第２マーカーを含み、前記第１マーカーの前記マーカー検出方法と、前記第２マーカーの前記マーカー検出方法とは異なる、構成が用いられてもよい。
この構成により、画像処理装置は、第１マーカーと第２マーカーとを、それぞれ異なるマーカー検出方法によって検出する。これにより、画像処理装置は、マーカーに応じたマーカー検出方法によってマーカーを検出することができる。
【０００８】
また、本発明の他の態様は、画像処理装置において、前記複数のマーカー検出方法は、前記画像から前記マーカーを検出するための閾値を所定範囲で変化させて前記マーカーを検出する第１検出方法を含む、構成が用いられてもよい。
この構成により、画像処理装置は、複数のマーカーのうちの第１検出方法に対応付けられたマーカーを検出する際、画像からマーカーを検出するための閾値を所定範囲で変化させてマーカーを検出する。これにより、画像処理装置は、複数のマーカーのうちの第１検出方法に対応付けられたマーカーを検出する際、マーカーの検出精度を向上させることができる。
【０００９】
また、本発明の他の態様は、画像処理装置において、前記複数のマーカー検出方法は、前記画像から前記マーカーを検出するための閾値として、最尤推定により求められた値を用いて前記マーカーを検出する第２検出方法を含む、構成が用いられてもよい。
この構成により、画像処理装置は、複数のマーカーのうちの第２検出方法に対応付けられたマーカーを検出する際、画像からマーカーを検出するための閾値として、最尤推定により求められた値を用いてマーカーを検出する。これにより、画像処理装置は、複数のマーカーのうちの第２検出方法に対応付けられたマーカーを検出する際、マーカーの検出時間を短縮させることができる。
【００１０】
また、本発明の他の態様は、画像処理装置において、前記複数のマーカー検出方法は、前記画像から前記マーカーを検出するための閾値として、予め定められた値を用いて前記マーカーを検出する第３検出方法を含む、構成が用いられてもよい。
この構成により、画像処理装置は、複数のマーカーのうちの第３検出方法に対応付けられたマーカーを検出する際、画像からマーカーを検出するための閾値として、予め定められた値を用いてマーカーを検出する。これにより、画像処理装置は、複数のマーカーのうちの第３検出方法に対応付けられたマーカーを検出する際、マーカーの検出時間を短縮させることができる。
【００１１】
また、本発明の他の態様は、画像処理装置において、前記閾値は、前記画像を二値化する閾値である、構成が用いられてもよい。
この構成により、画像処理装置は、画像からマーカーを検出するための閾値であって当該画像を二値化する閾値を用いたマーカー検出方法によってマーカーを検出する。これにより、画像処理装置は、画像を二値化する閾値を用いたマーカー検出方法によって、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【００１２】
また、本発明の他の態様は、画像処理装置において、前記閾値は、前記画像の色を判定する閾値である、構成が用いられてもよい。
この構成により、画像処理装置は、画像からマーカーを検出するための閾値であって当該画像の色を判定する閾値を用いたマーカー検出方法によってマーカーを検出する。これにより、画像処理装置は、画像の色を判定する閾値を用いたマーカー検出方法によって、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【００１３】
また、本発明の他の態様は、画像処理装置において、前記マーカーと、前記マーカー検出方法とを対応づけたテーブルに基づいて、前記マーカーを検出する、構成が用いられてもよい。
この構成により、画像処理装置は、マーカーと、マーカー検出方法とを対応づけたテーブルに基づいて、マーカーを検出する。これにより、画像処理装置は、マーカーと、マーカー検出方法とを対応づけたテーブルに基づいて、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【００１４】
また、本発明の他の態様は、画像処理装置において、前記画像に含まれる前記マーカーと、前記画像とは撮像条件が異なる画像に含まれる前記マーカーとに基づいて、前記マーカー検出方法を決定する、構成が用いられてもよい。
この構成により、画像処理装置は、画像に含まれるマーカーと、当該画像とは撮像条件が異なる画像に含まれるマーカーとに基づいて、マーカー検出方法を決定する。これにより、画像処理装置は、画像に含まれるマーカーと、当該画像とは撮像条件が異なる画像に含まれるマーカーとに基づいて決定したマーカー検出方法によって、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【００１５】
また、本発明の他の態様は、画像処理装置において、前記画像に含まれる前記マーカーを検出するための閾値と、前記画像とは撮像条件が異なる画像に含まれる前記マーカーを検出するための閾値とを表示部に表示させ、前記マーカー検出方法を編集可能である、構成が用いられてもよい。
この構成により、画像処理装置は、画像に含まれるマーカーを検出するための閾値と、当該画像とは撮像条件が異なる画像に含まれるマーカーを検出するための閾値とを表示部に表示させ、マーカー検出方法を編集可能である。これにより、画像処理装置は、編集したマーカー検出方法によって、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【００１６】
また、本発明の他の態様は、上記のいずれかに記載の画像処理装置を備える、ロボットである。
この構成により、ロボットは、複数のマーカー検出方法のうちの一つのマーカー検出方法によって、マーカーを検出する。これにより、ロボットは、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【００１７】
また、本発明の他の態様は、前記マーカーを含む範囲を前記画像として撮像する撮像部と、上記に記載のロボットと、を備えるロボットシステムである。
この構成により、ロボットシステムは、複数のマーカー検出方法のうちの一つのマーカー検出方法によって、マーカーを検出する。これにより、ロボットシステムは、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【００１８】
以上により、画像処理装置、ロボット、及びロボットシステムは、複数のマーカー検出方法のうちの一つのマーカー検出方法によって、マーカーを検出する。これにより、画像処理装置、ロボット、及びロボットシステムは、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態に係るロボット２０の一例を示す構成図である。
【図２】図心を説明するための図である。
【図３】図心マーカーの一例を示す図である。
【図４】図心マーカーの他の例を示す図である。
【図５】同心円を構成していない３つの図形によって構成される図心マーカーの一例を示す図である。
【図６】同心円を構成していない４つの図形によって構成される図心マーカーの一例を示す図である。
【図７】同心円を構成していない４つの図形によって構成される図心マーカーの他の例を示す図である。
【図８】６４個の図心マーカーを含む撮像画像の一例を示す図である。
【図９】マーカーを検出するために適していない輝度値に基づいてロボット制御装置３０が図８に示した撮像画像Ｇ１を二値化した場合の二値化画像の一例を示す図である。
【図１０】図９に示した二値化画像Ｇ２からロボット制御装置３０により検出された図心マーカーを構成する３以上の図形のそれぞれを例示する図である。
【図１１】マーカーを検出するために適した輝度値に基づいてロボット制御装置３０が図８に示した撮像画像Ｇ１を二値化した場合の二値化画像の一例を示す図である。
【図１２】図１１に示した二値化画像Ｇ２からロボット制御装置３０により検出された図心マーカーを構成する３以上の図形のそれぞれを例示する図である。
【図１３】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図１４】ロボット制御装置３０の機能構成の一例を示す図である。
【図１５】対応情報が格納されたテーブルの一例を示す図である。
【図１６】制御部３６がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
【図１７】図１６に示したステップＳ７０におけるマーカー検出処理の流れの一例を示すフローチャートである。
【図１８】図１７に示したステップＳ１５０における第１検出処理の流れの一例を示すフローチャートである。
【図１９】ロボット制御装置３０が対応情報を生成する処理の流れの一例を示すフローチャートである。
【図２０】ユーザーから受け付けた操作に基づいてロボット制御装置３０が対応情報を編集する処理の流れの一例を示すフローチャートである。
【図２１】マーカー検出方法のユーザーによる決定方法の流れの一例を示す図である。
【図２２】実施形態の変形例においてロボット制御装置３０が対応情報を生成する処理の流れの一例を示すフローチャートである。
【図２３】サンプル画像ＧＳ１〜サンプル画像ＧＳ３のそれぞれ毎に生成された条件別対応情報を例示する図である。
【図２４】条件別対応情報に基づいて対応情報を生成する処理を説明するための図である。
【図２５】実施形態の変形例におけるマーカー検出方法のユーザーによる決定方法の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２０】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態に係るロボット２０の一例を示す構成図である。
【００２１】
＜ロボット２０の構成＞
まず、ロボット２０の構成について説明する。
ロボット２０は、第１アームと、第２アームと、第１アーム及び第２アームを支持する支持台と、ロボット制御装置３０を備える双腕ロボットである。双腕ロボットは、この一例における第１アームと第２アームのような２本のアーム（腕）を備えるロボットである。なお、ロボット２０は、双腕ロボットに代えて、単腕ロボットであってもよい。単腕ロボットは、１本のアームを備えるロボットである。例えば、単腕ロボットは、第１アームと第２アームのいずれか一方を備える。また、ロボット２０は、双腕ロボットに代えて、３本以上のアームを備える複腕ロボットであってもよい。
【００２２】
第１アームは、第１エンドエフェクターＥ１と第１マニピュレーターＭ１を備える。
【００２３】
第１エンドエフェクターＥ１は、この一例において、物体を把持可能な爪部を備えるエンドエフェクターである。なお、第１エンドエフェクターＥ１は、当該爪部を備えるエンドエフェクターに代えて、電動ドライバーを備えるエンドエフェクター等の他のエンドエフェクターであってもよい。
【００２４】
第１エンドエフェクターＥ１は、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、第１エンドエフェクターＥ１は、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、第１エンドエフェクターＥ１は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２５】
第１マニピュレーターＭ１は、７つの関節と、第１撮像部２１を備える。また、７つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、第１マニピュレーターＭ１を備える第１アームは、７軸垂直多関節型のアームである。第１アームは、支持台と、第１エンドエフェクターＥ１と、第１マニピュレーターＭ１と、第１マニピュレーターＭ１が備える７つの関節それぞれのアクチュエーターとによる連携した動作によって７軸の自由度の動作を行う。なお、第１アームは、６軸以下の自由度で動作する構成であってもよく、８軸以上の自由度で動作する構成であってもよい。
【００２６】
第１アームが７軸の自由度で動作する場合、第１アームは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これにより第１アームは、例えば、動作が滑らかになり、更に第１アームの周辺に存在する物体との干渉を容易に回避することができる。また、第１アームが７軸の自由度で動作する場合、第１アームの制御は、第１アームが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
【００２７】
第１マニピュレーターＭ１が備える７つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、第１マニピュレーターＭ１を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第１マニピュレーターＭ１が備える７つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２８】
第１撮像部２１は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。この一例において、第１撮像部２１は、第１マニピュレーターＭ１の一部に備えられる。そのため、第１撮像部２１は、第１アームの動きに応じて移動する。また、第１撮像部２１が撮像可能な範囲は、第１アームの動きに応じて変化する。第１撮像部２１は、当該範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。
【００２９】
また、第１撮像部２１は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第１撮像部２１は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３０】
第２アームは、第２エンドエフェクターＥ２と第２マニピュレーターＭ２を備える。
【００３１】
第２エンドエフェクターＥ２は、この一例において、物体を把持可能な爪部を備えるエンドエフェクターである。なお、第２エンドエフェクターＥ２は、当該爪部を備えるエンドエフェクターに代えて、電動ドライバーを備えるエンドエフェクター等の他のエンドエフェクターであってもよい。
【００３２】
第２エンドエフェクターＥ２は、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、第２エンドエフェクターＥ２は、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第２エンドエフェクターＥ２は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３３】
第２マニピュレーターＭ２は、７つの関節と、第２撮像部２２を備える。また、７つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、第２マニピュレーターＭ２を備える第２アームは、７軸垂直多関節型のアームである。第２アームは、支持台と、第２エンドエフェクターＥ２と、第２マニピュレーターＭ２と、第２マニピュレーターＭ２が備える７つの関節それぞれのアクチュエーターとによる連携した動作によって７軸の自由度の動作を行う。なお、第２アームは、６軸以下の自由度で動作する構成であってもよく、８軸以上の自由度で動作する構成であってもよい。
【００３４】
第２アームが７軸の自由度で動作する場合、第２アームは、６軸以下の自由度で動作する場合と比較して取り得る姿勢が増える。これにより第２アームは、例えば、動作が滑らかになり、更に第２アームの周辺に存在する物体との干渉を容易に回避することができる。また、第２アームが７軸の自由度で動作する場合、第２アームの制御は、第２アームが８軸以上の自由度で動作する場合と比較して計算量が少なく容易である。
【００３５】
第２マニピュレーターＭ２が備える７つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、第２マニピュレーターＭ２を動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、第２マニピュレーターＭ２が備える７つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３６】
第２撮像部２２は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。この一例において、第２撮像部２２は、第２マニピュレーターＭ２の一部に備えられる。そのため、第２撮像部２２は、第２アームの動きに応じて移動する。また、第２撮像部２２が撮像可能な範囲は、第２アームの動きに応じて変化する。第２撮像部２２は、当該範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。
【００３７】
また、第２撮像部２２は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第２撮像部２２は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３８】
また、ロボット２０は、第３撮像部２３と、第４撮像部２４を備える。
第３撮像部２３は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第３撮像部２３は、第４撮像部２４が撮像可能な範囲を第４撮像部２４とともにステレオ撮像可能な部位に備えられる。第３撮像部２３は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第３撮像部２３は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００３９】
第４撮像部２４は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤやＣＭＯＳ等を備えたカメラである。第４撮像部２４は、第３撮像部２３が撮像可能な範囲を第３撮像部２３とともにステレオ撮像可能な部位に備えられる。第４撮像部２４は、ケーブルによって通信可能にロボット制御装置３０と接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、第４撮像部２４は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００４０】
上記で説明したロボット２０が備えるこれらの各機能部は、この一例において、ロボット２０に内蔵されたロボット制御装置３０から制御信号を取得する。そして、当該各機能部は、取得した制御信号に基づいた動作を行う。なお、ロボット２０は、ロボット制御装置３０を内蔵する構成に代えて、外部に設置されたロボット制御装置３０により制御される構成であってもよい。この場合、ロボット２０と、ロボット制御装置３０とは、ロボットシステムを構成する。また、ロボット２０は、第１撮像部２１と、第２撮像部２２と、第３撮像部２３と、第４撮像部２４のうちの一部を備えない構成であってもよい。
【００４１】
ロボット制御装置３０は、ロボット２０に制御信号を送信することにより、ロボット２０を動作させる。これにより、ロボット制御装置３０は、ロボット２０に所定の作業を行わせる。
【００４２】
＜ロボット２０が行う所定の作業の概要＞
以下、ロボット２０が行う所定の作業の概要について説明する。
この一例において、ロボット２０は、第１アームと第２アームの両方により作業することが可能な領域である作業領域に配置された物体を把持し、把持した物体を図示しない給材領域に給材（配置）する作業を所定の作業として行う。なお、ロボット２０は、これに代えて、他の作業を所定の作業として行う構成であってもよい。また、作業領域は、第１アームと第２アームのうちいずれか一方により作業することが可能な領域であってもよい。
【００４３】
図１に示した例では、作業領域は、作業台ＴＢの上面を含む領域である。作業台ＴＢは、例えば、テーブルである。なお、作業台ＴＢは、テーブルに代えて、床面や棚等の他の物体であってもよい。作業台ＴＢの上面には、ロボット２０が把持する物体として、Ｎ個の対象物である対象物Ｏ１〜対象物ＯＮが配置されている。Ｎは、１以上の整数である。
【００４４】
対象物Ｏ１〜対象物ＯＮのそれぞれは、例えば、製品に組み付けるプレート、ネジ、ボルト等の産業用の部品や部材である。図１では、図の簡略化のため、対象物Ｏ１〜対象物ＯＮのそれぞれを直方体形状の物体として表している。なお、対象物Ｏ１〜対象物ＯＮのそれぞれは、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。また、対象物Ｏ１〜対象物ＯＮのそれぞれの形状は、直方体形状に代えて、他の形状であってもよい。また、対象物Ｏ１〜対象物ＯＮの一部又は全部の形状は、互いに同じ形状であってもよく、互いに異なる形状であってもよい。
【００４５】
＜ロボット制御装置３０が行う処理の概要＞
以下、ロボット２０に所定の作業を行わせるためにロボット制御装置３０が行う処理の概要について説明する。
ロボット制御装置３０は、作業領域を含む範囲を撮像範囲としてロボット２０に撮像させる。そして、ロボット制御装置３０は、ロボット２０が撮像した撮像画像を取得する。ロボット制御装置３０は、取得した撮像画像に基づいて、作業領域内に貼付されたマーカーを検出する。ロボット制御装置３０は、検出したマーカーに応じて所定の作業をロボット２０に行わせる。
【００４６】
この一例において、作業領域内に貼付されたマーカーは、作業領域内の作業台ＴＢの上面に配置された対象物Ｏ１〜対象物ＯＮのそれぞれに貼付されている。なお、作業領域内に貼付されたマーカーの一部又は全部は、これに代えて、作業領域内の対象物Ｏ１〜対象物ＯＮのそれぞれとは異なる他の物体や、作業台ＴＢの上面等に貼付される構成であってもよい。
【００４７】
対象物Ｏ１〜対象物ＯＮのそれぞれには、互いに異なるマーカーが貼付されている。これらのマーカーのそれぞれは、対象物Ｏ１〜対象物ＯＮそれぞれのロボット座標系における位置を示している。例えば、対象物Ｏ１に貼付されたマーカーＭｋ１は、対象物Ｏ１のロボット座標系における位置を示している。また、対象物ＯＮに貼付されたマーカーＭｋＮは、対象物ＯＮのロボット座標系における位置を示している。なお、対象物Ｏ１〜対象物ＯＮのそれぞれに貼付されたマーカーの一部又は全部は、互いに同じマーカーであってもよい。また、これらのマーカーのそれぞれは、対象物Ｏ１〜対象物ＯＮそれぞれのロボット座標系における位置を示す構成に代えて、ロボット２０の動作を示す構成等の他の情報を示す構成であってもよい。
【００４８】
この一例におけるロボット制御装置３０は、第３撮像部２３と第４撮像部２４に前述の撮像範囲をステレオ撮像させる。そして、ロボット制御装置３０は、第３撮像部２３と第４撮像部２４がステレオ撮像した撮像画像を取得する。ロボット制御装置３０は、取得した撮像画像に基づいてＮ個のマーカーであるマーカーＭｋ１〜マーカーＭｋＮのそれぞれを検出する。
【００４９】
ロボット制御装置３０は、マーカー（例えば、マーカーＭｋ１〜マーカーＭｋＮのそれぞれ）を、複数のマーカー検出方法により検出可能であり、当該複数のマーカー検出方法のうちの一つのマーカー検出方法によって、マーカーを検出する。マーカー検出方法は、マーカーの検出方法のことである。
【００５０】
具体的には、マーカーＭｋ１〜マーカーＭｋＮのそれぞれを検出する際、ロボット制御装置３０は、マーカーＭｋ１〜マーカーＭｋＮのそれぞれ毎に対応付けられたマーカー検出方法によってマーカーＭｋ１〜マーカーＭｋＮのそれぞれを検出する。より具体的には、ロボット制御装置３０は、マーカーＭｋ１〜マーカーＭｋＮのそれぞれを示す情報と、マーカー検出方法とが対応付けられた情報を含む対応情報に基づいて、マーカーＭｋ１〜マーカーＭｋＮのそれぞれ毎に対応付けられたマーカー検出方法によってマーカーＭｋ１〜マーカーＭｋＮのそれぞれを検出する。これにより、ロボット制御装置３０は、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【００５１】
本実施形態では、マーカーＭｋ１〜マーカーＭｋＮのそれぞれ毎に対応付けられたマーカー検出方法によってマーカーＭｋ１〜マーカーＭｋＮのそれぞれをロボット制御装置３０が検出する処理について詳しく説明する。また、本実施形態では、ロボット制御装置３０が対応情報を生成する処理、及びロボット制御装置３０が対応情報を編集する処理について詳しく説明する。また、本実施形態では、ユーザー又はロボット制御装置３０が、マーカーＭｋ１〜マーカーＭｋＮのそれぞれ毎にマーカー検出方法を対応付ける方法について詳しく説明する。
【００５２】
マーカーＭｋ１〜マーカーＭｋＮのそれぞれを検出した後、ロボット制御装置３０は、検出したマーカーＭｋ１〜マーカーＭｋＮのそれぞれが示すロボット座標系における位置を算出する。ロボット制御装置３０は、算出した位置に基づいて、対象物Ｏ１〜対象物ＯＮのそれぞれを１つずつロボット２０に把持させ、図示しない給材領域に給材させる。この一例において、ロボット制御装置３０は、対象物Ｏ１〜対象物ＯＮのそれぞれを１つずつ第１アームに把持させ、図示しない給材領域に給材させる。なお、ロボット制御装置３０は、これに代えて、対象物Ｏ１〜対象物ＯＮのそれぞれを１つずつ第２アームに把持させる構成であってもよく、対象物Ｏ１〜対象物ＯＮのそれぞれを１つずつ第１アームと第２アームの両方に把持させる構成等の他の構成であってもよい。
【００５３】
＜マーカー毎に対応付けられたマーカー検出方法の概要＞
この一例において、マーカーＭｋ１〜マーカーＭｋＮのそれぞれ毎に対応付けられたマーカー検出方法には、第１検出方法と、第２検出方法と、第３検出方法との３つの検出方法が含まれる。以下、これら３つの検出方法について説明する。なお、マーカー検出方法には、これら３つの検出方法の一部又は全部に代えて、これら３つの検出方法の一部又は全部を組み合わせた方法等の他の検出方法が含まれる構成であってもよく、これら３つの検出方法に加えて、これら３つの検出方法の一部又は全部を組み合わせた方法等の他の検出方法が含まれる構成であってもよい。
【００５４】
まず、第１検出方法〜第３検出方法の３つの検出方法のそれぞれにおいて共通してロボット制御装置３０が行う処理について説明する。この一例において、これら３つの検出方法では、撮像画像からマーカーを検出する際、ロボット制御装置３０が、撮像画像をグレースケール画像に変換する（グレースケール化処理）。ロボット制御装置３０は、例えば、撮像画像のグレースケール化処理において、撮像画像を２５６階調のグレースケール画像に変換する。なお、ロボット制御装置３０は、撮像画像を２５６階調のグレースケール画像に変換する構成に代えて、他の階調のグレースケール画像に変換する構成であってもよい。
【００５５】
そして、ロボット制御装置３０は、グレースケール化処理により撮像画像を変換したグレースケール画像を、二値化画像（白黒画像）に変換する（二値化処理）。二値化処理は、グレースケール画像上における所定の閾値（二値化の閾値）以上の輝度値の画素の色を白色に変換し、当該閾値未満の輝度値の画素を黒色に変換することによりグレースケール画像を二値化画像に変換する処理である。この一例において、二値化の閾値は、ロボット制御装置３０が検出するマーカー毎に決定（選択）される輝度値であり、０から２５５までの範囲において決定（選択）されるいずれか１つの整数が示す輝度値である。ロボット制御装置３０は、二値化処理によりグレースケール画像を変換した二値化画像からマーカーを検出する。すなわち、二値化の閾値は、撮像画像からマーカーを検出するための閾値に相当する。二値化画像からマーカーを検出する際、ロボット制御装置３０は、例えば、マーカーのモデル画像に基づくパターンマッチングによって撮像画像からマーカーを検出する。マーカーのモデル画像は、例えば、ＣＡＤ（Computer  Aided  Design）画像である。パターンマッチングによるマーカー検出方法は、従来から知られている方法を用いるため、説明を省略する。なお、ロボット制御装置３０は、他の方法によって撮像画像からマーカーを検出する構成であってもよい。また、マーカーのモデル画像は、所望の姿勢のマーカーを撮像した撮像画像等の他の画像であってもよい。
【００５６】
なお、ロボット制御装置３０は、グレースケール画像を二値化画像に変換する構成に代えて、グレースケール化処理を行わずに撮像画像を二値化画像に変換する構成であってもよい。この場合、ロボット制御装置３０は、撮像画像上における所定の色相の画素の色を白色に変換し、当該色相とは異なる色相の画素を黒色に変換することにより撮像画像を二値化画像に変換する。所定の色相は、輝度値と異なる二値化の閾値の一例であり、例えば、ＲＧＢ（Red  Green  Blue）を表す６個の１６進数の組み合わせによって表される（例えば、赤を表す場合は、ＦＦ００００であり、緑を表す場合は、００ＦＦ００であり、青を表す場合は、００００ＦＦである）。また、所定の色相には、許容範囲が設定される。例えば、緑を表す００ＦＦ００に対して００ＦＦ００〜５５ＦＦ５５の許容範囲が設定されている場合、ロボット制御装置３０は、００ＦＦ００〜５５ＦＦ５５の範囲に含まれる色はすべて、００ＦＦ００が表わす色である緑と判定する。換言すると、このような許容範囲は、当該色相を表す６値の１６進数の組み合わせを中心値とする誤差範囲である。ロボット制御装置３０は、許容範囲内に含まれる６値の１６進数の組み合わせにより表される色相を、同じ色相として検出する。所定の色相は、画像の色を判定する閾値の一例である。
【００５７】
このように、第１検出方法〜第３検出方法の３つの検出方法のそれぞれにおいて共通して、ロボット制御装置３０は、二値化の閾値に基づいて撮像画像を二値化画像へと変換し、変換した二値化画像からマーカーを検出する。
次に、第１検出方法〜第３検出方法それぞれの相違点について説明する。第１検出方法〜第３検出方法ではそれぞれ、二値化の閾値を決定する方法が異なる。
【００５８】
第１検出方法では、ロボット制御装置３０は、二値化の閾値（すなわち、撮像画像からマーカーを検出するための閾値）を所定範囲で変化させてマーカーを検出する。所定範囲は、グレースケール画像の階調に応じた範囲であり、この一例において、０から２５５までの範囲である。このため、ロボット制御装置３０は、二値化の閾値を０から２５５までの２５６段階において変化させ、マーカーを検出する。なお、所定範囲は、これに代えて、０から２５５までの範囲のうちの一部の範囲であってもよい。
【００５９】
より具体的には、第１検出方法において、ロボット制御装置３０は、二値化の閾値を０から２５５まで１ずつ変化させながら、検出しようとしている対象のマーカー（この一例において、マーカーＭｋ１〜マーカーＭｋＮのいずれかからロボット制御装置３０が選択したマーカー）である対象マーカーを検出するために適した二値化の閾値を決定（探索）する。そして、ロボット制御装置３０は、決定した二値化の閾値を用いてグレースケール画像を二値化画像に変換し、変換した二値化画像から対象マーカーを検出する。この一例において、対象マーカーを検出するために適した二値化の閾値とは、対象マーカーを含む撮像画像から対象マーカーを検出することが可能な二値化画像へ撮像画像を変換する二値化処理を実現する値（輝度値）である。
【００６０】
第２検出方法では、ロボット制御装置３０は、二値化の閾値（すなわち、撮像画像からマーカーを検出するための閾値）として、最尤推定により求められた値（輝度値）を用いて対象マーカーを検出する。この一例において、ロボット制御装置３０は、第２検出方法において二値化の閾値を求める方法として、大津の方法を採用する。ここで、大津の方法の概要を説明する。大津の方法では、撮像画像の各画素に現れる輝度値の頻度を表すヒストグラムが２つのピークを有すると仮定する。また、これら２つのピークのうちの一方のピークに含まれる輝度値は、撮像画像中の部分領域である第１部分領域（例えば、対象マーカーを含む部分領域）に含まれる各画素の輝度値であり、残りの一方のピークに含まれる輝度値は、撮像画像中の部分領域であり第１部分領域とは異なる第２部分領域（例えば、対象マーカーを含まない背景を含む部分領域）に含まれる各画素の輝度値であると仮定する。
【００６１】
大津の方法では、このような仮定の下、ロボット制御装置３０は、第１部分領域における輝度値の分散と、第２部分領域における輝度値の分散との比が最小となる輝度値、すなわち第１部分領域と第２部分領域の分離の度合いを最大にする輝度値を、二値化の閾値として最尤推定に基づいて決定する。そして、ロボット制御装置３０は、決定した二値化の閾値を用いて、グレースケール画像を二値化画像に変換し、変換した二値化画像から対象マーカーを検出する。
【００６２】
第３検出方法では、ロボット制御装置３０は、二値化の閾値として、予め定められた値（輝度値）を用いてマーカーを検出する。具体的には、ロボット制御装置３０は、予め定められた値を二値化の閾値として用いて、グレースケール画像を二値化画像に変換し、変換した二値化画像から検出しようとしている対象マーカーを検出する。この一例において、第３検出方法において二値化の閾値として予め定められた値は、二値化の閾値を０から２５５まで１ずつ変化させながら、対象マーカーを検出するために適した二値化の閾値を事前に決定しておいた値である。なお、当該予め定められた値は、他の方法によって事前に決定しておいた値であってもよい。
【００６３】
ここで、第１検出方法〜第３検出方法のそれぞれによってロボット制御装置３０が撮像画像から対象マーカーを検出する場合の精度について説明する。ロボット制御装置３０が撮像画像から対象マーカーを検出する精度である検出精度は、二値化の閾値として選択された輝度値に応じて変化する。この一例における検出精度の高さは、当該撮像画像から対象マーカーを検出することに成功する確率の高さによって表される。より具体的には、例えば、二値化の閾値として、対象マーカーを検出するために適した輝度値が選択されておらず、対象マーカーを検出するために適していない輝度値が選択されている場合、ロボット制御装置３０が撮像画像から対象マーカーを検出できる頻度は低くなる、すなわちロボット制御装置３０が対象マーカーの検出精度が低くなる。
【００６４】
第１検出方法は、二値化の閾値を０から２５５まで変化させながら、対象マーカーを検出するために適した二値化の閾値を探索するため、対象マーカーを検出するのに要する時間である検出時間が第２検出方法及び第３検出方法に比べて長くなるが、対象マーカーの検出精度が第２検出方法及び第３検出方法に比べて高い。第３検出方法によってロボット制御装置３０が撮像画像から対象マーカーの検出精度は、撮像画像の撮像条件が変化している場合があるため、第１検出方法に比べて低くなる傾向があるが、第２検出方法に比べて高い。また、第３検出方法によってロボット制御装置３０が撮像画像から対象マーカーの検出時間は、二値化の閾値を決定する処理を行わないため、第１検出方法及び第２検出方法に比べて短い。また、第２検出方法によってロボット制御装置３０が撮像画像から対象マーカーの検出精度は、第１検出方法及び第３検出方法と比べて低いが、対象マーカーの検出時間は、第１検出方法よりも短く、第３検出方法よりも長い。
【００６５】
ロボット制御装置３０は、このような第１検出方法〜第３検出方法の３つの検出方法を組み合わせながら対象マーカーを検出するため、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。また、ロボット制御装置３０は、例えば、第３検出方法によって対象マーカーを検出できない場合、第２検出方法による対象マーカーの検出を実行することができ、更に第２検出方法によって検出しようとしている対象のマーカーを検出できない場合、第１検出方法によって当該マーカーを検出することができる。
【００６６】
＜マーカーの詳細＞
以下、ロボット制御装置３０が撮像画像から検出するマーカーの詳細について説明する。この一例におけるマーカー（すなわち、マーカーＭｋ１〜マーカーＭｋＮのそれぞれ）は、図心マーカーである。ここで、図２〜図７を参照し、図心マーカーについて説明する。
【００６７】
まず、図心マーカーの図心について説明する。図２は、図心を説明するための図である。図２には、輪郭が曲線によって形成された図形Ｆ０と、図形Ｆ０を構成する各点の位置を表すための二次元座標系と、当該各点の位置を示すベクトルｒ＿ｉとが示されている。ここで、図２では、ベクトルｒを、ｒの上に矢印を付帯させることによって表している。また、ベクトルｒ＿ｉの「＿」の後に付された「ｉ」は、図２に示したベクトルｒの下付き添え字ｉを示している。また、添え字ｉは、図形Ｆ０を構成する各点（例えば、画素）を区別するためのラベルである。また、図２において、二次元座標系の原点から図形Ｆ０へ伸びる矢印は、ベクトルｒ＿ｉの大きさ及び方向を表す矢印である。
【００６８】
図心は、云わば図形の中心である。図心は、１つの図形に対して１つのみ一意に決まる。図２に示した図形Ｆ０の図心の位置は、ベクトルｒ＿ｉを用いて、以下に示した式（１）によって定義されるベクトルｃによって表される。
【００６９】
【数１】
2017078877.tif 000003
【００７０】
式（１）において、ベクトルｃは、ｃの上に矢印を付帯させることによって表している。また、Ｎは、図形Ｆ０を構成する各点の数であり、１以上の整数である。すなわち、図２に示した図形Ｆ０の図心の位置は、図形Ｆ０を構成する各点の位置を表すベクトルの総和を、当該各点の数によって除したベクトル（Ｎ個のベクトルの平均）によって表される。なお、図２では、二次元の図形Ｆ０と、二次元の座標系と、二次元のベクトルとを用いて図心について説明したが、図心の位置は、三次元以上の図形に対しても上記の式（１）によって定義されるベクトルｃによって表される。
【００７１】
図心マーカーは、３以上の図形の組み合わせによって構成されるマーカーである。また、図心マーカーを構成する当該３以上の図形それぞれの図心は、所定の範囲内に収まる（含まれる）。例えば、図形Ａ０と、図形Ｂ０と、図形Ｃ０との組み合わせによって構成される図心マーカーは、図形Ａ０の図心Ａ１と、図形Ｂ０の図心Ｂ１と、図形Ｃ０の図心Ｃ１とが所定の範囲内に収まる（含まれる）。所定の範囲は、例えば、半径が数画素程度の円形の範囲であるが、半径が１画素未満の円形の範囲であってもよく、半径が数画素以上の円形の範囲であってもよく、矩形等の円形とは異なる他の形状の範囲であってもよい。
【００７２】
図３は、図心マーカーの一例を示す図である。図３に示したマーカーＭｋ１は、図１に示した対象物Ｏ１に貼付されている図心マーカーである。図３に示したように、図心マーカーを構成する３以上の図形は、二値化画像において白色又は黒色のみの部分領域として検出される。マーカーＭｋ１は、輪郭が円形状の黒色の部分領域によって表される図形Ｍ１１と、輪郭がリング形状の白色の部分領域によって表される図形Ｍ１２と、輪郭がリング形状の黒色の部分領域によって表される図形Ｍ１３との３つの図形によって構成されている。また、マーカーＭｋ１は、図形Ｍ１１と、図形Ｍ１２と、図形Ｍ１３とのそれぞれの図心が、所定の範囲内に収まるように作られている。このため、図形Ｍ１１と、図形Ｍ１２と、図形Ｍ１３との組み合わせによって構成されるマーカーＭｋ１は、図心マーカーである。なお、マーカーＭｋ１における図形Ｍ１１〜図形Ｍ１３は、同心円であり、図心が当該同心円の中心に位置する。
【００７３】
図４は、図心マーカーの他の例を示す図である。図４に示したマーカーＭｋＮは、図１に示した対象物ＯＮに貼付されている図心マーカーである。マーカーＭｋＮは、輪郭が円形状の白色の部分領域によって表される図形ＭＮ１と、輪郭がリング形状の黒色の部分領域によって表される図形ＭＮ２と、輪郭がリング形状の白色の部分領域によって表される図形ＭＮ３と、輪郭がリング形状の黒色の部分領域によって表される図形ＭＮ４との４つの図形によって構成されている。また、マーカーＭｋＮは、図形ＭＮ１と、図形ＭＮ２と、図形ＭＮ３と、図形ＭＮ４とのそれぞれの図心が、所定の範囲内に収まるように作られている。このため、図形ＭＮ１と、図形ＭＮ２と、図形ＭＮ３と、図形ＭＮ４との組み合わせによって構成されるマーカーＭｋＮは、図心マーカーである。なお、マーカーＭｋＮにおける図形ＭＮ１〜図形ＭＮ４は、同心円であり、図心が当該同心円の中心に位置する。
【００７４】
図３及び図４に示したマーカーＭｋ１及びマーカーＭｋＮは、図心マーカーを構成する３以上の図形の組み合わせが同心円を構成していた。しかし、図心マーカーは、図心マーカーを構成する３以上の図形の組み合わせが同心円を構成するもののみに限られない。図５〜図７に示した図心マーカーは、図心マーカーを構成する３以上の図形の組み合わせが同心円を構成していない場合の例である。図５は、同心円を構成していない３つの図形によって構成される図心マーカーの一例を示す図である。図６は、同心円を構成していない４つの図形によって構成される図心マーカーの一例を示す図である。図７は、同心円を構成していない４つの図形によって構成される図心マーカーの他の例を示す図である。
【００７５】
この一例において、これらの図心マーカーが貼付された物体（例えば、図１に示した対象物Ｏ１〜対象物ＯＮのそれぞれ）の位置は、当該図心マーカーの図心の位置によって表される。当該図心マーカーの図心の位置は、所定の範囲内に含まれる３以上の図心の位置を示すベクトルの総和を図心の数で除したベクトル（３以上のベクトルの平均）によって表される。なお、当該図心マーカーが貼付された物体の位置は、これに代えて、当該図心マーカーの図心の位置に対応付けられた他の位置によって表される構成であってもよい。本実施形態に係るロボット制御装置３０は、図３〜図７に示したような図心マーカーであるマーカーＭｋ１〜マーカーＭｋＮのそれぞれを撮像画像から検出し、検出したマーカーＭｋ１〜マーカーＭｋＮのそれぞれの図心の位置を、対象物Ｏ１〜対象物ＯＮのそれぞれの位置として算出する。
【００７６】
なお、ロボット制御装置３０が検出するマーカーは、これらの図心マーカーに代えて、カラーマーカーやバーコード、ＱＲコード（登録商標）等の他のマーカーであってもよい。
【００７７】
＜二値化の閾値とロボット制御装置３０がマーカーを検出する精度の関係＞
以下、図８〜図１２を参照し、二値化の閾値とロボット制御装置３０が対象マーカーを検出する精度の関係について説明する。
【００７８】
図８は、６４個の図心マーカーを含む撮像画像の一例を示す図である。図８に示した撮像画像Ｇ１には、マーカーＭｋｓ１〜マーカーＭｋｓ６４までの６４個の図心マーカーＭｋｓが含まれている。対象マーカーを検出するために適していない二値化の閾値に基づいてロボット制御装置３０が撮像画像Ｇ１を二値化画像に変換した場合、当該二値化画像は、図９に示した二値化画像Ｇ２のようになる。
【００７９】
図９は、対象マーカーを検出するために適していない二値化の閾値に基づいてロボット制御装置３０が図８に示した撮像画像Ｇ１を二値化した場合の二値化画像の一例を示す図である。図９に示したように、対象マーカーを検出するために適していない二値化の閾値に基づいてロボット制御装置３０が図８に示した撮像画像Ｇ１を二値化した二値化画像Ｇ２では、撮像画像Ｇ１に含まれていた６４個の図心マーカーＭｋｓのうちの少なくとも一部が黒く塗り潰されてしまう。
【００８０】
図１０は、図９に示した二値化画像Ｇ２からロボット制御装置３０により検出された図心マーカーＭｋｓの一部を構成する３以上の図形のそれぞれを例示する図である。図１０では、当該図形のそれぞれを、ハッチングの違いによって区別している。図１０に示したように、二値化画像Ｇ２からロボット制御装置３０が検出した図心マーカーＭｋｓのそれぞれを構成する３以上の図形は、一部が黒く塗り潰されており、他の一部が元の形と異なる形の図形として検出されており、更に他の一部において図心マーカーＭｋｓのそれぞれを構成する３以上の図形の一部が１つの図形として検出されており、残りの一部が正常に検出されている。すなわち、ロボット制御装置３０は、対象マーカーを検出するために適していない二値化の閾値に基づいて撮像画像Ｇ１を二値化した二値化画像Ｇ２からは、マーカーＭｋｓ１〜マーカーＭｋｓ６４のうちの検出したい所望の図心マーカーを検出することができない場合がある。例えば、検出したい所望の図心マーカーがマーカーＭｋｓ１〜マーカーＭｋｓ６４の全部の図心マーカーであった場合、図９及び図１０に示した例では、ロボット制御装置３０は、所望の図心マーカーを検出できていない。
【００８１】
一方、図１１は、対象マーカーを検出するために適した二値化の閾値に基づいてロボット制御装置３０が図８に示した撮像画像Ｇ１を二値化した場合の二値化画像の一例を示す図である。図１１に示したように、対象マーカーを検出するために適した二値化の閾値に基づいてロボット制御装置３０が図８に示した撮像画像Ｇ１を二値化した二値化画像Ｇ３では、撮像画像Ｇ１に含まれていた６４個の図心マーカーは全て、黒く塗り潰されていない。
【００８２】
図１２は、図１１に示した二値化画像Ｇ２からロボット制御装置３０により検出された図心マーカーＭｋｓを構成する３以上の図形のそれぞれを例示する図である。図１２では、当該図形のそれぞれを、ハッチングの違いによって区別している。図１２に示したように、二値化画像Ｇ３からロボット制御装置３０が検出した図心マーカーＭｋｓのそれぞれを構成する３以上の図形は、全てが正常に検出されている。すなわち、ロボット制御装置３０は、マーカーを検出するために適した二値化の閾値に基づいて撮像画像Ｇ１を二値化した二値化画像Ｇ３からは、マーカーＭｋｓ１〜マーカーＭｋｓ６４のうちの検出したい所望の図心マーカーを検出することができている。例えば、検出したい所望の図心マーカーがマーカーＭｋｓ１〜マーカーＭｋｓ６４の全部の図心マーカーであった場合、図１１及び図１２に示した例では、ロボット制御装置３０は、所望の図心マーカーを検出できている。
【００８３】
このように、二値化の閾値として選択した輝度値が対象マーカーを検出するために適していない輝度値である場合、ロボット制御装置３０は、対象マーカーを検出することができない場合があるが、二値化の閾値として選択した輝度値が対象マーカーを検出するために適した輝度値である場合、ロボット制御装置３０は、対象マーカーを検出することができる。このため、ロボット制御装置３０が対象マーカーを検出するために適している輝度値を二値化の閾値として選択することは、ロボット制御装置３０がロボット２０に高い精度で作業を行わせる上で重要である。
【００８４】
＜ロボット制御装置３０のハードウェア構成＞
以下、図１３を参照し、ロボット制御装置３０のハードウェア構成について説明する。図１３は、ロボット制御装置３０のハードウェア構成の一例を示す図である。ロボット制御装置３０は、例えば、ＣＰＵ（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）等のハードウェア機能部であってもよい。
【００８９】
撮像制御部４０は、作業領域を含む撮像範囲を第３撮像部２３と第４撮像部２４にステレオ撮像させる。
画像取得部４２は、第３撮像部２３と第４撮像部２４がステレオ撮像した撮像画像を、第３撮像部２３と第４撮像部２４から取得する。
【００９０】
画像処理部４４は、画像取得部４２が取得した撮像画像に対して各種の画像処理を行う。画像処理部４４は、マーカー情報読出部４９と、対応情報読出部５０と、検出方法選択部５１と、マーカー検出処理部５２と、サンプル画像読出部５３と、対応情報生成部５４と、表示制御部５５と、対応情報編集部５６を備える。
【００９１】
マーカー情報読出部４９は、記憶部３２に予め記憶されたマーカー情報を読み出す。マーカー情報は、ロボット制御装置３０がロボット２０に所定の作業を行わせる際に検出する１以上のマーカーのそれぞれを示す情報を含む情報である。この一例において、マーカー情報は、当該１以上のマーカーのそれぞれを示すマーカーＩＤと、前述のマーカーのモデル画像とを対応付けた情報を含む。なお、マーカー情報は、マーカーＩＤに対応付けられる他の情報を含む構成であってもよい。
【００９２】
対応情報読出部５０は、記憶部３２に予め記憶された対応情報を記憶部３２から読み出す。この一例において、対応情報は、複数のマーカーのそれぞれを示すマーカーＩＤと、マーカーＩＤが示すマーカーを検出するために適したマーカー検出方法を示す情報とが対応付けられた情報を含む情報である。この一例において、対応情報は、図１５に示したテーブルに格納され、記憶部３２に記憶される。図１５は、対応情報が格納されたテーブルの一例を示す図である。
【００９３】
図１５に示したテーブルには、マーカーＩＤと、マーカー検出方法とが対応付けられて格納されている。また、当該テーブルには、マーカーＩＤと、マーカーＩＤが示すマーカーを撮像画像から検出することが可能な二値化画像への当該撮像画像の変換を実現する二値化の閾値のうちの最小の閾値である検出可能最小閾値と、当該二値化の閾値のうちの最大の閾値である検出可能最大閾値とによって表される検出可能範囲が対応付けられて格納されている。すなわち、検出可能範囲は、検出可能最小閾値から検出可能最大閾値までの範囲のことである。
【００９４】
マーカー検出方法は、この一例において、「−２」が第１検出方法を示し、「−１」が第２検出方法を示し、他の正の整数が第３検出方法を示す。また、当該他の正の整数は、第３検出方法における予め定められた値、すなわち第３検出方法における二値化の閾値（輝度値）を示す。この一例において、当該二値化の閾値は、当該二値化の閾値に対応付けられた検出可能範囲における検出可能最小閾値と検出可能最大閾値との平均値である。なお、当該二値化の閾値は、例えば、検出可能最小閾値や検出可能最大閾値、検出可能範囲の間の平均値と異なる値等の他の検出可能範囲内の値であってもよい。また、第１検出方法及び第２検出方法のそれぞれに対応付けられた検出可能範囲（すなわち、検出可能最小閾値及び検出可能最大閾値）には、この一例において、Ｎｕｌｌ情報が格納される。
【００９５】
例えば、図１５では、マーカーＩＤが「１」のマーカーには、当該マーカーを検出するために適したマーカー検出方法として第２検出方法が対応付けられている。また、マーカーＩＤが「２」のマーカーには、当該マーカーを検出するために適したマーカー検出方法として第３検出方法が対応付けられており、当該マーカーを検出するために用いる二値化の閾値が９０である。また、マーカーＩＤが「４」のマーカーには、当該マーカーを検出するために適したマーカー検出方法として、第１検出方法が対応付けられている。
【００９６】
検出方法選択部５１は、マーカー情報読出部４９が記憶部３２から読み出したマーカー情報に基づいてマーカー検出処理部５２が選択した対象マーカーを示すマーカーＩＤに対応付けられたマーカー検出方法を、対応情報読出部５０が記憶部３２から読み出した対応情報に基づいて選択する。
【００９７】
マーカー検出処理部５２は、マーカー情報読出部４９が記憶部３２から読み出したマーカー情報に基づいて、対象マーカーを示すマーカーＩＤを１つずつ選択する。そして、マーカー検出処理部５２は、検出方法選択部５１が選択したマーカー検出方法に基づいて、画像取得部４２が取得した撮像画像から対象マーカーを検出する。
【００９８】
サンプル画像読出部５３は、対応情報生成部５４が対応情報を生成する際に用いる１以上のサンプル画像を記憶部３２から読み出す。サンプル画像には、マーカー情報読出部４９が記憶部３２から読み出すマーカー情報に含まれるマーカーＩＤが示す１以上のマーカーが含まれている。また、１以上のサンプル画像のそれぞれは、互いに撮像された撮像条件が異なる。撮像条件は、例えば、サンプル画像が撮像された際の当該サンプル画像に含まれる１以上のマーカーの一部又は全部に対する照明の明るさの違いや、サンプル画像に含まれる１以上のマーカーの一部又は全部の配置位置の違い、サンプル画像が撮像された日時や季節の違い、サンプル画像が撮像された場所の違い等によって定まる条件である。
【００９９】
この一例では、当該１以上のサンプル画像が、予め撮像されて記憶部３２に記憶されている場合について説明する。なお、当該１以上のサンプル画像は、これに代えて、第３撮像部２３及び第４撮像部２４に撮像させる構成であってもよい。この場合、画像処理部４４は、サンプル画像読出部５３を備えなくてもよい。その代わり、画像取得部４２がサンプル画像となる撮像画像を第３撮像部２３及び第４撮像部２４から取得する。
【０１００】
対応情報生成部５４は、サンプル画像読出部５３が記憶部３２から読み出した１以上のサンプル画像に基づいて、対応情報を生成する。
表示制御部５５は、記憶部３２に記憶された対応情報を編集するＧＵＩ（Graphical  User  Interface）を含む編集画面等を表示部３５に表示させる。
対応情報編集部５６は、表示制御部５５が表示部３５に表示させた編集画面を介して受け付けたユーザーからの操作に基づいて、記憶部３２に記憶された対応情報を編集する。
【０１０１】
ロボット制御部４６は、マーカー検出処理部５２が検出した対象マーカーの図心の位置に基づいて所定の作業をロボット２０に行わせる。
【０１０２】
＜制御部３６がロボット２０に所定の作業を行わせる処理の流れについて＞
以下、図１６を参照し、制御部３６がロボット２０に所定の作業を行わせる処理について説明する。図１６は、制御部３６がロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
【０１０３】
撮像制御部４０は、図１に示した作業領域を含む撮像範囲を第３撮像部２３及び第４撮像部２４にステレオ撮像させる（ステップＳ５０）。次に、画像取得部４２は、ステップＳ５０において第３撮像部２３及び第４撮像部２４がステレオ撮像した撮像画像を第３撮像部２３及び第４撮像部２４から取得する（ステップＳ６０）。
【０１０４】
次に、マーカー検出処理部５２は、ステップＳ６０において画像取得部４２が取得した撮像画像に基づいて、マーカー検出処理を実行し、撮像画像に含まれるマーカーＭｋ１〜マーカーＭｋＮのそれぞれを検出する（ステップＳ７０）。次に、ロボット制御部４６は、ステップＳ７０においてマーカー検出処理部５２が検出したマーカーＭｋ１〜マーカーＭｋＮの図心それぞれの位置を、図１に示した対象物Ｏ１〜対象物ＯＮそれぞれの位置として算出する（ステップＳ８０）。
【０１０５】
次に、ロボット制御部４６は、ステップＳ８０において算出した対象物Ｏ１〜対象物ＯＮそれぞれの位置に基づいて、対象物Ｏ１〜対象物ＯＮを１つずつ第１アームに把持させて図示しない給材領域に給材させる（ステップＳ９０）。なお、ロボット制御部４６は、予め記憶部３２から給材領域の位置を示す情報を読み出している。ロボット制御部４６は、第１アームに対象物Ｏ１〜対象物ＯＮを全て給材領域に給材させた後、処理を終了する。
【０１０６】
＜マーカー検出処理の流れについて＞
以下、図１７を参照し、図１６に示したステップＳ７０におけるマーカー検出処理について説明する。図１７は、図１６に示したステップＳ７０におけるマーカー検出処理の流れの一例を示すフローチャートである。
【０１０７】
マーカー検出処理部５２は、マーカー情報読出部４９に記憶部３２からマーカー情報を読み出させる（ステップＳ１００）。次に、マーカー検出処理部５２は、対応情報読出部５０に記憶部３２から対応情報を読み出させる（ステップＳ１１０）。次に、マーカー検出処理部５２は、ステップＳ１００においてマーカー情報読出部４９が記憶部３２から読み出したマーカー情報に含まれるマーカーＩＤ（この一例において、マーカーＭｋ１〜マーカーＭｋＮそれぞれを示すマーカーＩＤ）を１つずつ選択し、選択したマーカーＩＤが示すマーカーを対象マーカーとし、対象マーカー毎にステップＳ１３０からステップＳ２１０までの処理を繰り返し行う（ステップＳ１２０）。
【０１０８】
次に、検出方法選択部５１は、ステップＳ１２０においてマーカー検出処理部５２が選択した対象マーカーに対応付けられたマーカー検出方法を、ステップＳ１１０において対応情報読出部５０が記憶部３２から読み出した対応情報から検出し、検出したマーカー検出方法を対象マーカーのマーカー検出方法として選択する。
【０１０９】
次に、マーカー検出処理部５２は、ステップＳ１３０において検出方法選択部５１が選択したマーカー検出方法が第１検出方法であったか否かを判定する（ステップＳ１４０）。検出方法選択部５１が選択したマーカー検出方法が第１検出方法であったと判定した場合（ステップＳ１４０−Ｙｅｓ）、マーカー検出処理部５２は、第１検出方法に基づいて第１検出処理を実行し、対象マーカーの検出を行う（ステップＳ１５０）。
【０１１０】
次に、マーカー検出処理部５２は、ステップＳ１５０において対象マーカーの検出に成功したか否かを判定する（ステップＳ１６０）。対象マーカーの検出に成功したと判定した場合（ステップＳ１６０−Ｙｅｓ）、マーカー検出処理部５２は、ステップＳ１２０に遷移し、次のマーカーＩＤが示すマーカーを対象マーカーとして選択する。なお、マーカー検出処理部５２は、対象マーカーの検出に成功したと判定した場合であり、且つステップＳ１２０において未選択のマーカーＩＤが存在しない場合、処理を終了する。一方、対象マーカーの検出に成功していない（失敗した）と判定した場合（ステップＳ１６０−Ｎｏ）、マーカー検出処理部５２は、エラー処理を実行し（ステップＳ２１０）、処理を終了する。より具体的には、エラー処理において、マーカー検出処理部５２は、例えば、表示制御部５５に、対象マーカーの検出に失敗したことを示す情報を表示部３５へ表示させる。なお、エラー処理は、これに代えて、対象マーカーの検出に失敗したことをユーザーへ通知する他の処理であってもよい。
【０１１１】
一方、ステップＳ１４０において、検出方法選択部５１が選択したマーカー検出方法が第１検出方法ではないと判定した場合（ステップＳ１４０−Ｎｏ）、マーカー検出処理部５２は、ステップＳ１３０において検出方法選択部５１が選択したマーカー検出方法が第２検出方法であったか否かを判定する（ステップＳ１７０）。検出方法選択部５１が選択したマーカー検出方法が第２検出方法であったと判定した場合（ステップＳ１７０−Ｙｅｓ）、マーカー検出処理部５２は、第２検出方法に基づいて第２検出処理を実行し、対象マーカーの検出を行う（ステップＳ１８０）。第２検出方法に基づいた第２検出処理では、この一例において、上記で説明した大津の方法によって二値化の閾値を決定し、決定した二値化の閾値に基づいて撮像画像を二値化画像に変換する。そして、当該第２検出処理では、変換した当該二値化画像から対象マーカーを検出する。大津の方法は、従来からよく知られた方法であるため、ここでは、第２検出処理の詳細についての説明を省略する。また、二値化画像から対象マーカーを検出する方法については、従来からよく知られた方法であってもよく、これから開発される新たな方法であってもよく、説明を省略する。
【０１１２】
次に、マーカー検出処理部５２は、ステップＳ１８０において対象マーカーの検出に成功したか否かを判定する（ステップＳ１９０）。対象マーカーの検出に成功したと判定した場合（ステップＳ１９０−Ｙｅｓ）、マーカー検出処理部５２は、ステップＳ１２０に遷移し、次のマーカーＩＤが示すマーカーを対象マーカーとして選択する。なお、マーカー検出処理部５２は、対象マーカーの検出に成功したと判定した場合であり、且つステップＳ１２０において未選択のマーカーＩＤが存在しない場合、処理を終了する。一方、対象マーカーの検出に成功していないと判定した場合（ステップＳ１９０−Ｎｏ）、マーカー検出処理部５２は、ステップＳ１５０に遷移し、第１検出方法に基づいて第１検出処理を実行し、対象マーカーの検出を行う。
【０１１３】
一方、ステップＳ１７０において、検出方法選択部５１が選択したマーカー検出方法が第２検出方法ではないと判定した場合（ステップＳ１７０−Ｎｏ）、マーカー検出処理部５２は、第３検出方法に基づいて第３検出処理を実行し、対象マーカーの検出を行う（ステップＳ２００）。そして、マーカー検出処理部５２は、ステップＳ１９０に遷移し、ステップＳ２００において対象マーカーの検出に成功したか否かを判定する。第３検出方法に基づいた第３検出処理では、マーカー検出処理部５２は、ステップＳ１１０においてマーカー情報読出部４９が記憶部３２から読み出した対応情報に基づいて、対象マーカーに対応付けられた二値化の閾値を検出し、検出した二値化の閾値を予め定められた二値化の閾値として決定する。そして、マーカー検出処理部５２は、決定した二値化の閾値に基づいて撮像画像を二値化画像に変換する。そして、当該第３検出処理では、変換した当該二値化画像から対象マーカーを検出する。二値化画像から対象マーカーを検出する方法については、従来からよく知られた方法であってもよく、これから開発される新たな方法であってもよく、説明を省略する。
【０１１４】
このように、ロボット制御装置３０は、対象マーカーの検出時間が第２検出方法及び第３検出方法よりも長い第１検出方法によって対象マーカーを検出しなくても、第２検出方法又は第３検出方法によって対象マーカーを検出可能な場合は、第１検出方法よりも検出時間の短い第２検出方法又は第３検出方法によって対象マーカーを検出することができる。第２検出方法又は第３検出方法によって対象マーカーを検出可能な場合は、すなわち、対象マーカーに第２検出方法又は第３検出方法が対応付けられている場合である。
【０１１５】
また、ロボット制御装置３０は、対象マーカーの検出時間が第３検出方法よりも長い第１検出方法及び第２検出方法によって対象マーカーを検出しなくても、第３検出方法によって対象マーカーを検出可能な場合は、対象マーカーの検出精度の低下を抑制しつつ、第１検出方法及び第２検出方法よりも検出時間の短い第３検出方法によって対象マーカーを検出することができる。これらの結果、ロボット制御装置３０は、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０１１６】
＜第１検出処理の流れについて＞
以下、図１８を参照し、図１７に示したステップＳ１５０における第１検出処理について説明する。図１８は、図１７に示したステップＳ１５０における第１検出処理の流れの一例を示すフローチャートである。
【０１１７】
マーカー検出処理部５２は、図１６に示したステップＳ５０において画像取得部４２が取得した撮像画像に対して１以上の探索範囲を設定し、設定した探索範囲毎にステップＳ３１０からステップＳ３６０までの処理を繰り返し実行する（ステップＳ３００）。この一例において、探索範囲は、１つのみである。すなわち、探索範囲は、撮像画像の全体である。
【０１１８】
ステップＳ３００において探索範囲を選択した後、マーカー検出処理部５２は、０から２５５までの輝度値（０を含む２５６個の整数値）を０から順に１つずつ二値化の閾値として選択し、選択した二値化の閾値毎にステップＳ３２０からステップＳ３６０までの処理を繰り返し行う（ステップＳ３１０）。
【０１１９】
ステップＳ３１０において二値化の閾値を選択した後、マーカー検出処理部５２は、図１６に示したステップＳ５０において画像取得部４２が取得した撮像画像をグレースケール画像に変換する（ステップＳ３２０）。次に、マーカー検出処理部５２は、ステップＳ３２０において撮像画像をグレースケール化処理によって変換したグレースケール画像を、ステップＳ３１０において選択した二値化の閾値に基づいて二値化画像に変換する（ステップＳ３３０）。
【０１２０】
次に、マーカー検出処理部５２は、ステップＳ３３０においてグレースケール画像を二値化処理によって変換した二値化画像から、１以上の部分領域を検出する（ステップＳ３４０）。当該部分領域は、二値化画像内における１以上の白色の画素のみから構成される領域である白色部分領域と、当該二値化画像内における１以上の黒色の画素のみから構成される黒色部分領域である。なお、マーカー検出処理部５２は、二値化画像内から選択した画素を中心とした８画素近傍に当該画素の色と同じ色の画素が存在する場合、これらの画素を繋がった１つの部分領域に含まれる画素と見做す。マーカー検出処理部５２は、二値化画像から１以上の部分領域を検出した後、検出した当該部分領域のそれぞれを区別するためのラベリングを行う。
【０１２１】
次に、マーカー検出処理部５２は、ステップＳ３４０において検出した１以上の部分領域に基づいて、対象マーカーの検出を実行する（ステップＳ３５０）。より具体的には、マーカー検出処理部５２は、ステップＳ３４０においてラベリングした部分領域のそれぞれを図形とした場合の各図形の図心の位置を算出する。そして、マーカー検出処理部５２は、算出した図心の位置に基づいて、３以上の図心が所定の範囲内に収まっている図形（すなわち、部分領域）の組み合わせを図心マーカーとして検出する。マーカー検出処理部５２は、検出した１以上の図心マーカーから、パターンマッチング等によって対象マーカーを検出する。１以上の図心マーカーからパターンマッチングによって対象マーカーを検出する場合、マーカー検出処理部５２は、予め記憶部３２に記憶された対象マーカーのモデル画像を読み出し、読み出した当該モデル画像に基づいて１以上の図心マーカーから対象マーカーを検出する。
【０１２２】
次に、マーカー検出処理部５２は、ステップＳ３５０の処理において対象マーカーの検出に成功したか否かを判定する（ステップＳ３６０）。対象マーカーの検出に成功したと判定した場合（ステップＳ３６０−Ｙｅｓ）、マーカー検出処理部５２は、処理を終了する。一方、対象マーカーの検出に成功していないと判定した場合（ステップＳ３６０−Ｎｏ）、マーカー検出処理部５２は、ステップＳ３１０に遷移し、次の二値化の閾値を選択する。そして、ステップＳ３１０において選択可能なすべての二値化の閾値についてステップＳ３２０からステップＳ３６０までの処理を実行した後、マーカー検出処理部５２は、ステップＳ３００に遷移し、次の探索範囲を選択する。この一例において、探索範囲は１つのみであるため、マーカー検出処理部５２は、ステップＳ３１０において選択可能なすべての二値化の閾値についてステップＳ３２０からステップＳ３６０までの処理を実行した後、処理を終了する。
【０１２３】
このように、ロボット制御装置３０は、複数のマーカー（この一例において、マーカーＭｋ１〜マーカーＭｋＮ）のそれぞれ毎に対応付けられたマーカー検出方法によって当該複数のマーカーのそれぞれを検出する。これにより、ロボット制御装置３０は、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０１２４】
＜対応情報を生成する処理の流れについて＞
以下、図１９を参照し、ロボット制御装置３０が対応情報を生成する処理について説明する。図１９は、ロボット制御装置３０が対応情報を生成する処理の流れの一例を示すフローチャートである。
【０１２５】
対応情報生成部５４は、対応情報を格納するテーブルを記憶部３２の記憶領域内に生成する（ステップＳ４００）。次に、対応情報生成部５４は、ステップＳ４００において記憶部３２の記憶領域内に生成したテーブルを初期化する（ステップＳ４１０）。例えば、対応情報生成部５４は、当該テーブルの初期化として、当該テーブルにおいて情報を格納するフィールドのそれぞれにＮｕｌｌ情報を格納する。なお、対応情報生成部５４は、これに代えて、他の方法によって当該テーブルを初期化する構成であってもよい。
【０１２６】
次に、対応情報生成部５４は、マーカー情報読出部４９に記憶部３２からマーカー情報を読み出させる（ステップＳ４２０）。次に、対応情報生成部５４は、サンプル画像読出部５３に記憶部３２からサンプル画像を読み出させる（ステップＳ４２５）。この一例において、サンプル画像読出部５３が読み出すサンプル画像は、１つのみである場合について説明する。なお、対応情報生成部５４は、サンプル画像読出部５３に記憶部３２からサンプル画像を読み出させる構成に代えて、撮像制御部４０にサンプル画像となる撮像画像を第３撮像部２３及び第４撮像部２４に撮像させる構成であってもよい。この場合、対応情報生成部５４は、画像取得部４２に第３撮像部２３及び第４撮像部２４が撮像した撮像画像をサンプル画像として取得させる。
【０１２７】
次に、対応情報生成部５４は、ステップＳ４２０においてマーカー情報読出部４９が読み出したマーカー情報に含まれるマーカーＩＤを１つずつ選択し、選択したマーカーＩＤが示すマーカーを対象マーカーとして、対象マーカー毎にステップＳ４４０からステップＳ５００までの処理を繰り返し行う（ステップＳ４３０）。
【０１２８】
ステップＳ４３０において対象マーカーが選択された後、対応情報生成部５４は、ステップＳ４２５においてサンプル画像読出部５３が読み出したサンプル画像に対して１以上の探索範囲を設定し、設定した探索範囲毎にステップＳ４５０からステップＳ５００までの処理を繰り返し実行する（ステップＳ４４０）。この一例において、探索範囲は、１つのみである。すなわち、探索範囲は、撮像画像の全体である。
【０１２９】
対応情報生成部５４は、第２検出方法に基づいて第２検出処理を実行し、ステップＳ４２５においてサンプル画像読出部５３が記憶部３２から読み出したサンプル画像から対象マーカーを検出する（ステップＳ４５０）。次に、対応情報生成部５４は、ステップＳ４５０において対象マーカーの検出に成功したか否かを判定する（ステップＳ４６０）。対象マーカーの検出に成功したと判定した場合（ステップＳ４６０−Ｙｅｓ）、対応情報生成部５４は、ステップＳ４９５に遷移し、第２検出方法を示す情報（この一例において、前述した「−１」）と、対象マーカーを示すマーカーＩＤと、検出可能範囲を示す情報としてのＮｕｌｌ情報とを対応付けた対応情報を生成する（ステップＳ４９５）。一方、対象マーカーの検出に成功していないと判定した場合（ステップＳ４６０−Ｎｏ）、対応情報生成部５４は、ステップＳ４４０に遷移し、次の探索範囲を選択する。この一例において、探索範囲は１つのみであるため、対応情報生成部５４は、対象マーカーの検出に成功していないと判定した場合、ステップＳ４７０に遷移し、ステップＳ４４０においてサンプル画像に設定した探索範囲毎にステップＳ４８０からステップＳ４９０までの処理を繰り返し実行する（ステップＳ４７０）。
【０１３０】
ステップＳ４７０において探索範囲を選択した後、対応情報生成部５４は、対象マーカーの検出可能範囲を導出する（ステップＳ４８０）。ここで、ステップＳ４８０の処理について説明する。対応情報生成部５４は、ステップＳ４２５においてサンプル画像読出部５３が記憶部３２から読み出したサンプル画像に対して図１８に示したフローチャートのうちのステップＳ３６０を省略した場合におけるステップＳ３００からステップＳ３５０までの処理を実行する。これにより、対応情報生成部５４は、対象マーカーの検出に成功した探索範囲における検出可能最小閾値と、検出可能最大閾値とを導出する。この一例において、探索範囲は１つのみであるため、当該サンプル画像の全体から当該処理において対象マーカーの検出を実行し、検出可能最小閾値と、検出可能最大閾値とを導出する。
【０１３１】
なお、対応情報生成部５４は、検出可能最小閾値と、検出可能最大閾値とが導出できなかった場合、すなわち当該処理において一度も対象マーカーが検出できなかった場合、検出可能最小閾値と、検出可能最大閾値とをＮｕｌｌ情報とする。
【０１３２】
ステップＳ４８０において検出可能範囲を導出した後、対応情報生成部５４は、ステップＳ４７０に遷移し、次の探索範囲を選択する。この一例において、探索範囲は１つのみであるため、対応情報生成部５４は、ステップＳ４８０において検出可能範囲を導出した後、ステップＳ４９５に遷移し、ステップＳ４８０において導出した検出可能最小閾値及び検出可能最大閾値と、対象マーカーを示すマーカーＩＤと、第３検出方法を示す情報としての検出可能最小閾値と検出可能最大閾値との平均値とを対応付けた対応情報を生成する。この際、検出可能最小閾値と検出可能最大閾値とがＮｕｌｌ情報であった場合、対応情報生成部５４は、当該対応情報を生成することに代えて、Ｎｕｌｌ情報である検出可能最小閾値及び検出可能最大閾値と、対象マーカーを示すマーカーＩＤと、第１検出方法を示す情報（この一例において、「−２」）とを対応付けた対応情報を生成する。
【０１３３】
次に、対応情報生成部５４は、ステップＳ４９５において生成した対応情報を、ステップＳ４１０において初期化したテーブルに格納する（ステップＳ５００）。そして、対応情報生成部５４は、ステップＳ４３０に遷移し、次のマーカーＩＤを選択する。また、ステップＳ４３０において未選択のマーカーＩＤが存在しない場合、対応情報生成部５４は、処理を終了する。
【０１３４】
このように、ロボット制御装置３０は、サンプル画像と、マーカー情報とに基づいて対応情報を生成する。これにより、ロボット制御装置３０は、生成した対応情報に基づいて、対象マーカーに対応付けられたマーカー検出方法を用いて対象マーカーを検出することができる。その結果、ロボット制御装置３０は、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０１３５】
＜対応情報を編集する処理の流れについて＞
以下、図２０を参照し、ユーザーから受け付けた操作に基づいてロボット制御装置３０が対応情報を編集する処理について説明する。図２０は、ユーザーから受け付けた操作に基づいてロボット制御装置３０が対応情報を編集する処理の流れの一例を示すフローチャートである。なお、以下では、前述の編集画面を表示部３５に表示させる操作を、表示制御部５５が入力受付部３３を介して受け付けた後の処理について説明する。
【０１３６】
対応情報編集部５６は、対応情報読出部５０に記憶部３２から対応情報を読み出させる（ステップＳ５１０）。次に、表示制御部５５は、編集画面を表示部３５に表示させる（ステップＳ５２０）。次に、対応情報編集部５６は、ユーザーから編集画面を介して対応情報を編集する編集操作を受け付けるまで待機する（ステップＳ５３０）。ユーザーから編集画面を介して対応情報を編集する編集操作を受け付けた後（ステップＳ５３０−Ｙｅｓ）、対応情報編集部５６は、ユーザーから受け付けた編集操作に基づいて対応情報を編集する（ステップＳ５４０）。例えば、対応情報編集部５６は、ユーザーから受け付けた編集操作に基づいて、ユーザーが選択したマーカーＩＤに対応付けられたマーカー検出方法を、他のマーカー検出方法に変更する。また、例えば、対応情報編集部５６は、ユーザーから受け付けた編集操作に基づいて、ユーザーが選択したマーカーＩＤに対応付けられた二値化の閾値、検出可能最小閾値、検出可能最大閾値の一部又は全部を、他の値に変更する。
【０１３７】
次に、対応情報編集部５６は、ユーザーから編集画面を介して対応情報の編集を終了する操作を受け付けたか否かを判定する（ステップＳ５５０）。対応情報の編集を終了する操作を受け付けていないと判定した場合（ステップＳ５５０−Ｎｏ）、対応情報編集部５６は、ステップＳ５３０に遷移し、再びユーザーから編集画面を介して対応情報を編集する編集操作を受け付けるまで待機する。一方、対応情報の編集を終了する操作を受け付けたと判定した場合（ステップＳ５５０−Ｙｅｓ）、対応情報編集部５６は、処理を終了する。
【０１３８】
このように、ロボット制御装置３０は、ユーザーから受け付けた操作に基づいて、対応情報を編集する。これにより、ロボット制御装置３０は、対応情報をユーザーが所望する対応情報に編集する機能をユーザーに提供することができる。ここで、図２１を参照し、ユーザーによって行われる対応情報の編集のうち、ユーザーがマーカーＩＤに対応付けられたマーカー検出方法を変更する場合における、マーカー検出方法のユーザーによる決定方法について説明する。
【０１３９】
図２１は、マーカー検出方法のユーザーによる決定方法の流れの一例を示す図である。
ユーザーは、マーカー情報に含まれるマーカーＩＤを１つずつ選択し、選択したマーカーＩＤが示すマーカーを対象マーカーとして、対象マーカー毎にステップＳ６１０からステップＳ６５０の処理を行う（ステップＳ６００）。
【０１４０】
ユーザーは、第３撮像部２３及び第４撮像部２４により撮像される撮像範囲の撮像条件が安定しているか否かを判定する（ステップＳ６１０）。撮像条件の安定性は、例えば、撮像条件が所定時間内に変化するか否かによって表される。ユーザーは、撮像条件が所定時間内に変化する場合、撮像条件は、安定していないと判定する。一方、撮像条件が所定時間内に変化しない場合、撮像条件は、安定していると判定する。所定時間は、例えば、３０分である。なお、所定時間は、３０分に代えて、他の時間であってもよい。また、撮像条件の安定性は、他の条件によって表される構成であってもよい。
【０１４１】
撮像範囲の撮像条件が安定していないと判定した場合（ステップＳ６１０−Ｎｏ）、ユーザーは、対象マーカーのマーカー検出方法として第１検出方法を選択する（ステップＳ６２０）。一方、撮像範囲の撮像条件が安定していると判定した場合（ステップＳ６１０−Ｙｅｓ）、ユーザーは、対象マーカーを第２検出方法で検出可能であるか否かを判定する（ステップＳ６３０）。ユーザーは、対象マーカーを示すマーカーＩＤに基づいて、対応情報から対象マーカーに対応付けられたマーカー検出方法が、第２検出方法である場合、対象マーカーを第２検出方法で検出可能であると判定する。一方、ユーザーは、対象マーカーを示すマーカーＩＤに基づいて、対応情報から対象マーカーに対応付けられたマーカー検出方法が、第２検出方法ではない場合、対象マーカーを第２検出方法で検出可能ではないと判定する。
【０１４２】
対象マーカーを第２検出方法で検出可能であると判定した場合（ステップＳ６３０−Ｙｅｓ）、ユーザーは、対象マーカーのマーカー検出方法として第２検出方法を選択する。一方、対象マーカーを第２検出方法で検出可能ではないと判定した場合（ステップＳ６３０−Ｎｏ）、ユーザーは、対象マーカーのマーカー検出方法として第３検出方法を選択する。
このように、ユーザーは、複数のマーカーのそれぞれ毎に、マーカー検出方法を決定する。これにより、ユーザーは、複数のマーカーのそれぞれ毎に、当該マーカーに対して、当該マーカーを検出するために適したマーカー検出方法を対応付けることができる。この結果、ロボット制御装置３０は、より確実に、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０１４３】
なお、図２１に示したフローチャートにおける処理は、ユーザーに代えて、ロボット制御装置３０が備える機能部が行う構成であってもよい。この場合、ステップＳ６１０における処理は、例えば、撮像範囲内の明るさを検出するセンサー等の撮像範囲内の撮像条件を表す物理量を検出するセンサーからの出力値に基づいて、撮像条件が安定しているか否かを判定する。
【０１４４】
＜実施形態の変形例＞
以下、本発明の実施形態の変形例について、図面を参照して説明する。実施形態の変形例では、ロボット制御装置３０は、対応情報を生成する際、１つのサンプル画像に基づいて対応情報を生成する構成に代えて、２以上のサンプル画像に基づいて対応情報を生成する。
【０１４５】
＜実施形態の変形例における対応情報を生成する処理の流れについて＞
以下、図２２を参照し、実施形態の変形例においてロボット制御装置３０が対応情報を生成する処理について説明する。図２２は、実施形態の変形例においてロボット制御装置３０が対応情報を生成する処理の流れの一例を示すフローチャートである。なお、図２２に示したフローチャートにおける処理のうち、ステップＳ４００〜ステップＳ４２５の処理と、ステップＳ４３０〜ステップＳ４５０の処理と、ステップＳ４７０〜ステップＳ４８０の処理と、ステップＳ４９５の処理については、図１９に示したステップＳ４００〜ステップＳ４２５の処理と、ステップＳ４３０〜ステップＳ４５０の処理と、ステップＳ４７０〜ステップＳ４８０の処理と、ステップＳ４９５の処理と同様であるため、説明を省略する。また、以下では、サンプル画像読出部５３がステップＳ４２５において、それぞれ異なる３つのサンプル画像であるサンプル画像ＧＳ１〜サンプル画像ＧＳ３のそれぞれを読み出す場合について説明する。なお、サンプル画像読出部５３がステップＳ４２５において記憶部３２から読み出すサンプル画像の数は、２以上であれば他の数であってもよい。
【０１４６】
ステップＳ４２５においてサンプル画像読出部５３が２以上のサンプル画像（この一例において、サンプル画像ＧＳ１〜サンプル画像ＧＳ３）を記憶部３２から読み出した後、対応情報生成部５４は、当該サンプル画像を１つずつ選択し、選択したサンプル画像毎にステップＳ７１０からステップＳ７３０までの処理（ステップＳ４３０からステップＳ４８０までの処理を含む）を繰り返し行う（ステップＳ７００）。
【０１４７】
ステップＳ７００においてサンプル画像を選択した後、対応情報生成部５４は、サンプル画像毎に生成する条件別対応情報を格納するテーブルを記憶部３２の記憶領域内に生成する。そして、対応情報生成部５４は、記憶部３２の記憶領域内に生成した当該テーブルを初期化する（ステップＳ７１０）。例えば、対応情報生成部５４は、当該テーブルの初期化として、当該テーブルにおいて情報を格納するフィールドのそれぞれにＮｕｌｌ情報を格納する。なお、対応情報生成部５４は、これに代えて、他の方法によって当該テーブルを初期化する構成であってもよい。
【０１４８】
サンプル画像はそれぞれ、前述したように、サンプル画像が撮像された際の撮像条件が異なる。このため、この一例における対応情報生成部５４は、対応情報を生成する前に、サンプル画像毎に条件別対応情報を生成し、生成した条件別対応情報に基づいて対応情報を生成する。条件別対応情報は、図２３に示したテーブルに格納されているように、マーカーＩＤと、検出可能範囲を表す検出可能最小閾値及び検出可能最大閾値と、マーカーＩＤが示すマーカーの第２検出方法による検出（最尤推定による検出）の可否を示す情報と、当該第２検出方法における二値化の閾値とが対応付けられた情報である。図２３は、サンプル画像ＧＳ１〜サンプル画像ＧＳ３のそれぞれ毎に生成された条件別対応情報を例示する図である。この一例において、マーカーＩＤが示すマーカーの第２検出方法による検出が可能であることを示す情報は、「１」であり、当該検出が不可能であることを示す情報は、「０」である。また、この一例において、当該二値化の閾値には、当該検出が不可能である場合、Ｎｕｌｌ情報が格納される。
【０１４９】
ステップＳ４５０において第２検出処理による対象マーカーの検出を実行した後、対応情報生成部５４は、ステップＳ４５０において対象マーカーの検出に成功したか否かを判定する（ステップＳ７１５）。対象マーカーの検出に成功したと判定した場合（ステップＳ７１５−Ｙｅｓ）、対応情報生成部５４は、ステップＳ４７０に遷移し、ステップＳ４４０においてサンプル画像に設定した探索範囲毎にステップＳ４８０の処理を繰り返し実行する。一方、対象マーカーの検出に成功していないと判定した場合（ステップＳ７１５−Ｎｏ）、対応情報生成部５４は、ステップＳ４４０に遷移し、次の探索範囲を選択する。この一例において、探索範囲は１つのみであるため、対応情報生成部５４は、対象マーカーの検出に成功していないと判定した場合、ステップＳ４７０に遷移し、ステップＳ４４０においてサンプル画像に設定した探索範囲毎にステップＳ４８０の処理を繰り返し実行する。
【０１５０】
ステップＳ４７０〜ステップＳ４８０の処理においてすべての探索範囲に対してステップＳ４８０の処理を実行した後、対応情報生成部５４は、ステップＳ４８０において導出した検出可能最小閾値及び検出可能最大閾値と、対象マーカーを示すマーカーＩＤと、ステップＳ７１５における判定の結果である第２検出方法による対象マーカーの検出の可否を示す情報と、ステップＳ４５０において決定した二値化の閾値とを対応付けた条件別対応情報を生成する（ステップＳ７２０）。
【０１５１】
次に、対応情報生成部５４は、ステップＳ７２０において生成した対応情報を、ステップＳ７１０において初期化したテーブルに格納する（ステップＳ７３０）。そして、対応情報生成部５４は、ステップＳ４３０に遷移し、次のマーカーＩＤを選択する。また、ステップＳ４３０において未選択のマーカーＩＤが存在しない場合、対応情報生成部５４は、ステップＳ７００に遷移し、次のサンプル画像を選択する。また、ステップＳ７００において未選択のサンプル画像が存在しない場合、対応情報生成部５４は、ステップＳ７４０に遷移し、ステップＳ７２０において生成した条件別対応情報に基づいて。対応情報を生成する（ステップＳ７４０）。
【０１５２】
ここで、図２４を参照し、ステップＳ７４０の処理について説明する。図２４は、条件別対応情報に基づいて対応情報を生成する処理を説明するための図である。図２４に示したグラフは、横軸がサンプル画像のそれぞれを識別するサンプル画像ＩＤを示し、縦軸が二値化の閾値である輝度値を示している。この一例において、サンプル画像ＧＳ１のサンプル画像ＩＤが「１」であり、サンプル画像ＧＳ２のサンプル画像ＩＤが「２」であり、サンプル画像ＧＳ３のサンプル画像ＩＤが「３」である。
【０１５３】
当該グラフには、サンプル画像ＩＤが示すサンプル画像毎に、当該サンプル画像に基づいて生成された条件別対応情報における検出可能最小値及び検出可能最大値と、当該条件別対応情報における二値化の閾値とがプロットされている。当該二値化の閾値は、第２検出方法における二値化の閾値である。図２４に示したグラフでは、各サンプル画像に基づいて生成された条件別対応情報における検出可能最小閾値Ｍｍ１〜検出可能最小閾値Ｍｍ３はそれぞれ、白抜きの三角によって示され、当該条件別対応情報における検出可能最大閾値Ｍｘ１〜検出可能最大閾値Ｍｘ３はそれぞれ、白抜きの四角によって示され、当該条件別対応情報における二値化の閾値Ｌ１〜二値化の閾値Ｌ３はそれぞれ、黒い太線の横棒によって示されている。
【０１５４】
また、検出可能最小閾値Ｍｍ１と検出可能最大閾値Ｍｘ１との間の範囲が、サンプル画像ＧＳ１に基づいて導出された検出可能範囲Ｗ１である。また、検出可能最小閾値Ｍｍ２と検出可能最大閾値Ｍｘ２との間の範囲が、サンプル画像ＧＳ２に基づいて導出された検出可能範囲Ｗ２である。また、検出可能最小閾値Ｍｍ３と検出可能最大閾値Ｍｘ３との間の範囲が、サンプル画像ＧＳ３に基づいて導出された検出可能範囲Ｗ３である。
【０１５５】
ここで、対応情報生成部５４は、各サンプル画像に基づいて生成された条件別対応情報のそれぞれにおける検出可能最小閾値のうちの最も大きな検出可能最小閾値である最大検出可能最小閾値を特定する。図２４に示した例では、最大検出可能最小閾値は、検出可能最小閾値Ｍｍ２である。また、対応情報生成部５４は、各サンプル画像に基づいて生成された条件別対応情報のそれぞれにおける検出可能最大閾値のうちの最も小さな検出可能最大閾値である最小検出可能最大閾値を特定する。図２４に示した例では、最小検出可能最大閾値は、検出可能最大閾値Ｍｘ３である。
【０１５６】
また、対応情報生成部５４は、最小検出可能最大閾値と最大検出可能最小閾値との間の範囲を共通検出可能範囲Ｗ４として特定する。図２４に示した例では、最小検出可能最大閾値である検出可能最大閾値Ｍｘ３と最大検出可能最小閾値である検出可能最小閾値Ｍｍ２との間の範囲を、共通検出可能範囲Ｗ４として示している。対応情報生成部５４は、共通検出可能範囲が１以上の値である場合、最小検出可能最大閾値と最大検出可能最小閾値との平均値を第３検出方法における二値化の閾値（予め定められた値）として算出する。
【０１５７】
そして、対応情報生成部５４は、算出した当該二値化の閾値を、対象マーカーを示すマーカーＩＤに対して第３検出方法を示す情報として対応付ける。また、対応情報生成部５４は、共通検出可能範囲における最小検出可能最大閾値及び最大検出可能最小閾値を、対象マーカーの検出可能範囲を表す検出可能最小閾値及び検出可能最大閾値として対象マーカーを示すマーカーＩＤに対応付けて対応情報を生成する。
【０１５８】
また、対応情報生成部５４は、共通検出可能範囲が０以下の値である場合、すなわち共通検出可能範囲が存在しない場合、サンプル画像毎に、当該サンプル画像に基づいて導出された検出可能範囲内に当該サンプル画像に基づいて第２検出方法によって算出された二値化の閾値が含まれているか否かを判定する。そして、対応情報生成部５４は、当該サンプル画像に基づいて算出された二値化の閾値のそれぞれがすべて、当該サンプル画像に基づいて導出された検出可能範囲内に含まれていると判定した場合、対象マーカーを示すマーカーＩＤに対して第２検出方法を示す情報を対応付ける。また、対応情報生成部５４は、Ｎｕｌｌ情報を、対象マーカーの検出可能範囲を表す検出可能最小閾値及び検出可能最大閾値として対象マーカーを示すマーカーＩＤに対応付けて対応情報を生成する。
【０１５９】
一方、当該サンプル画像に基づいて算出された二値化の閾値のそれぞれのうちの少なくとも１つが、当該サンプル画像に基づいて導出された検出可能範囲内に含まれていないと判定した場合、対応情報生成部５４は、対象マーカーを示すマーカーＩＤに対して第１検出方法を示す情報を対応付ける。また、対応情報生成部５４は、Ｎｕｌｌ情報を、対象マーカーの検出可能範囲を表す検出可能最小閾値及び検出可能最大閾値として対象マーカーを示すマーカーＩＤに対応付けて対応情報を生成する。
【０１６０】
なお、図２４に示した例では、二値化の閾値Ｌ２が検出可能範囲Ｗ２内に含まれておらず、更に二値化の閾値Ｌ３が検出可能範囲Ｗ３内に含まれていないため、対応情報生成部５４は、当該サンプル画像に基づいて算出された二値化の閾値のそれぞれのうちの少なくとも１つが、当該サンプル画像に基づいて導出された検出可能範囲内に含まれていないと判定する。
【０１６１】
このように、ロボット制御装置３０は、撮像条件が互いに異なる２以上のサンプル画像と、マーカー情報とに基づいて対応情報を生成する。これにより、ロボット制御装置３０は、実施形態と同様の効果を得ることができる。その結果、ロボット制御装置３０は、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０１６２】
＜実施形態の変形における対応情報を編集する処理の流れについて＞
以下、図２５を参照し、ユーザーによって行われる対応情報の編集のうち、ユーザーがマーカーＩＤに対応付けられたマーカー検出方法を変更する場合における、マーカー検出方法のユーザーによる決定方法について説明する。図２５は、実施形態の変形例におけるマーカー検出方法のユーザーによる決定方法の流れの一例を示すフローチャートである。なお、図２５に示したフローチャートにおける処理は、ユーザーに代えて、ロボット制御装置３０が備える機能部が行う構成であってもよい。
【０１６３】
ユーザーは、マーカー情報に含まれるマーカーＩＤを１つずつ選択し、選択したマーカーＩＤが示すマーカーを対象マーカーとして、対象マーカー毎にステップＳ８１０からステップＳ８５０の処理を行う（ステップＳ８００）。次に、ユーザーは、条件別対応情報に基づいて、共通検出可能範囲が１以上の値であるか否かを判定する（ステップＳ８１０）。共通検出可能範囲が１以上の値であると判定した場合（ステップＳ８１０−Ｙｅｓ）、ユーザーは、対象マーカーのマーカー検出方法として第３検出方法を選択する（ステップＳ８２０）。これは、ロボット制御装置３０に、対象マーカーの検出時間が最も短い方法を優先的に選択させたいためである。
【０１６４】
一方、共通検出可能範囲が１以上の値ではないと判定した場合（ステップＳ８１０−Ｎｏ）、ユーザーは、条件別対応情報に基づいて、対象マーカーを第２検出方法で検出可能であるか否かを判定する（ステップＳ８３０）。より具体的には、ユーザーは、条件別対応情報に基づいて、サンプル画像毎に、当該サンプル画像に基づいて導出された検出可能範囲内に当該サンプル画像に基づいて第２検出方法によって算出された二値化の閾値のそれぞれがすべて含まれている場合、対象マーカーを第２検出方法で検出可能であると判定する。
【０１６５】
対象マーカーを第２検出方法で検出可能であると判定した場合（ステップＳ８３０−Ｙｅｓ）、ユーザーは、対象マーカーのマーカー検出方法として第２検出方法を選択する（ステップＳ８４０）。これは、第１検出方法よりも第２検出方法の方が検出時間が短いためである。一方、対象マーカーを第２検出方法で検出可能ではないと判定した場合（ステップＳ８３０−Ｎｏ）、ユーザーは、対象マーカーのマーカー検出方法として第１検出方法を選択する（ステップＳ８５０）。
【０１６６】
このように、ユーザーは、複数のマーカーのそれぞれ毎に、マーカー検出方法を決定する。これにより、ユーザーは、複数のマーカーのそれぞれ毎に、当該マーカーに対して、当該マーカーを検出するために適したマーカー検出方法を対応付けることができる。この結果、ロボット制御装置３０は、より確実に、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０１６７】
なお、上記において説明した複数のマーカーのうち、それぞれ異なるマーカー検出方法に対応付けられた２つのマーカー（例えば、第１検出方法に対応付けられたマーカーと、第２検出方法に対応付けられたマーカーとの２つのマーカー）は、第１マーカーと第２マーカーの一例である。
【０１６８】
以上説明したように、実施形態におけるロボット２０のロボット制御装置３０（又はロボット制御装置３０と別体の画像処理装置）は、マーカー（この一例において、マーカーＭｋ１〜マーカーＭｋＮ）を、複数のマーカー検出方法により検出可能であり、複数のマーカー検出方法のうちの一つのマーカー検出方法によって、マーカーを検出する。これにより、ロボット制御装置３０は、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０１６９】
また、ロボット制御装置３０は、複数のマーカーのうちの第１検出方法に対応付けられたマーカーを検出する際、画像（この一例において、撮像画像）からマーカーを検出するための閾値を所定範囲で変化させてマーカーを検出する。これにより、ロボット制御装置３０は、複数のマーカーのうちの第１検出方法に対応付けられたマーカーを検出する際、マーカーの検出精度を向上させることができる。
【０１７０】
また、ロボット制御装置３０は、複数のマーカーのうちの第２検出方法に対応付けられたマーカーを検出する際、画像からマーカーを検出するための閾値として、最尤推定により求められた値（この一例において、大津の方法により求められた値）を用いてマーカーを検出する。これにより、ロボット制御装置３０は、複数のマーカーのうちの第２検出方法に対応付けられたマーカーを検出する際、マーカーの検出時間を短縮させることができる。
【０１７１】
また、ロボット制御装置３０は、複数のマーカーのうちの第３検出方法に対応付けられたマーカーを検出する際、画像からマーカーを検出するための閾値として、予め定められた値を用いてマーカーを検出する。これにより、ロボット制御装置３０は、複数のマーカーのうちの第３検出方法に対応付けられたマーカーを検出する際、マーカーの検出時間を短縮させることができる。
【０１７２】
また、ロボット制御装置３０は、画像からマーカーを検出するための閾値であって当該画像を二値化する閾値（この一例において、二値化の閾値）を用いたマーカーの検出方法によってマーカーを検出する。これにより、ロボット制御装置３０は、画像を二値化する閾値を用いたマーカーの検出方法によって、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０１７３】
また、ロボット制御装置３０は、画像からマーカーを検出するための閾値であって当該画像の色を判定する閾値を用いたマーカーの検出方法によってマーカーを検出する。これにより、ロボット制御装置３０は、画像の色を判定する閾値を用いたマーカーの検出方法によって、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０１７４】
また、ロボット制御装置３０は、マーカーと、マーカーの検出方法とを対応づけたテーブル（この一例において、対応情報を格納したテーブル）に基づいて、マーカーを検出する。これにより、ロボット制御装置３０は、マーカーと、マーカーの検出方法とを対応づけたテーブルに基づいて、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０１７５】
また、ロボット制御装置３０は、画像に含まれる第１マーカー（この一例において、撮像画像に含まれるマーカーＭｋ１〜マーカーＭｋＮ）と、当該画像とは撮像条件が異なる画像に含まれる第１マーカー（この一例において、サンプル画像に含まれるマーカーＭｋ１〜マーカーＭｋＮ）とに基づいて、第１マーカーの検出方法を決定する。これにより、ロボット制御装置３０は、画像に含まれる第１マーカーと、当該画像とは撮像条件が異なる画像に含まれる第１マーカーとに基づいて決定した第１マーカーの検出方法によって、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０１７６】
また、ロボット制御装置３０は、画像に含まれる第１マーカーを検出するための閾値と、当該画像とは撮像条件が異なる画像に含まれる第１マーカーを検出するための閾値とを表示部に表示させ、第１マーカーの検出方法を編集可能である。これにより、ロボット制御装置３０は、編集した第１マーカーの検出方法によって、マーカーの検出精度の向上と、マーカーの検出時間の短縮とを両立することができる。
【０１７７】
なお、制御部３６のうちの画像処理部４４は、画像処理装置としてロボット制御装置３０と別体であってもよい。この場合、ロボット２０と、ロボット制御装置３０と、当該画像処理装置とは、ロボットシステムを構成する。また、この場合、画像処理装置は、検出したマーカーに基づく情報をロボット制御装置３０とは異なる他の装置へと出力し、例えば、ＡＲ（Augmented  Reality）等のように、当該他の装置へ当該情報を表示させる構成であってもよい。検出したマーカーに基づく情報は、例えば、当該マーカーに対応付けられた情報である。
【０１７８】
また、第１撮像部２１と、第２撮像部２２と、第３撮像部２３と、第４撮像部２４とのうちの一部又は全部は、ロボット２０と別体の撮像部であってもよい。この場合、ロボット２０と、ロボット２０と別体の撮像部と、ロボット制御装置３０と、画像処理装置とは、ロボットシステムを構成する。
【０１７９】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１８０】
また、以上に説明した装置（例えば、ロボット２０のロボット制御装置３０、又はロボット制御装置３０と別体の画像処理装置）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１８１】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１８２】
２０…ロボット、２１…第１撮像部、２２…第２撮像部、２３…第３撮像部、２４…第４撮像部、３０…ロボット制御装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…制御部、４０…撮像制御部、４２…画像取得部、４４…画像処理部、４６…ロボット制御部、４９…マーカー情報読出部、５０…対応情報読出部、５１…検出方法選択部、５２…マーカー検出処理部、５３…サンプル画像読出部、５４…対応情報生成部、５５…表示制御部、５６…対応情報編集部
【図１】
2017078877.tif 000004
【図２】
2017078877.tif 000005
【図３】
2017078877.tif 000006
【図４】
2017078877.tif 000007
【図５】
2017078877.tif 000008
【図６】
2017078877.tif 000009
【図７】
2017078877.tif 000010
【図１０】
2017078877.tif 000011
【図１２】
2017078877.tif 000012
【図１３】
2017078877.tif 000013
【図１４】
2017078877.tif 000014
【図１５】
2017078877.tif 000015
【図１６】
2017078877.tif 000016
【図１７】
2017078877.tif 000017
【図１８】
2017078877.tif 000018
【図１９】
2017078877.tif 000019
【図２０】
2017078877.tif 000020
【図２１】
2017078877.tif 000021
【図２２】
2017078877.tif 000022
【図２３】
2017078877.tif 000023
【図２４】
2017078877.tif 000024
【図２５】
2017078877.tif 000025
【図８】
2017078877.tif 000026
【図９】
2017078877.tif 000027
【図１１】
2017078877.tif 000028