(57)【要約】【課題】オブジェクトに付されたマーカを用いて作業者の作業を支援する。【解決手段】オブジェクトに付されたオブジェクトマーカを撮像した画像から、所定の座標系における前記オブジェクトマーカの位置と姿勢を取得するステップと、マーカ座標系における前記オブジェクトマーカからの前記オブジェクトの検出点の座標と、前記オブジェクトマーカの位置と姿勢とに基づいて、前記所定の座標系における前記検出点の位置と前記オブジェクトの姿勢を算出するステップと、前記検出点の位置が、前記所定の座標系における所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の座標系における所定の姿勢範囲内にあるかを判定するステップと、を備える方法を提供する。【選択図】図５
2019168304.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトに付されたオブジェクトマーカを撮像した画像から、所定の座標系における前記オブジェクトマーカの位置と姿勢を取得するステップと、
マーカ座標系における前記オブジェクトマーカからの前記オブジェクトの検出点の座標と、前記オブジェクトマーカの位置と姿勢とに基づいて、前記所定の座標系における前記検出点の位置と前記オブジェクトの姿勢とを算出するステップと、
前記検出点の位置が、前記所定の座標系における所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の座標系における所定の姿勢範囲内にあるかを判定するステップと、
を備える方法。
【請求項２】
前記検出点の位置が、前記所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の姿勢範囲内にある場合に、制御対象物に対する制御信号を出力するステップをさらに備え、前記制御信号は、前記制御対象物の種類に依存しない信号である、請求項１に記載の方法。
【請求項３】
前記制御信号に応じて、前記制御対象物からの応答信号を取得するステップをさらに備え、前記応答信号は、前記制御対象物の種類に依存しない信号である、請求項２に記載の方法。
【請求項４】
前記オブジェクトマーカを撮像するカメラのカメラ座標系に対し、前記所定の位置範囲及び前記所定の姿勢範囲が変化しない場合に、前記所定の座標系は、カメラ座標系である、請求項１に記載の方法。
【請求項５】
前記オブジェクトマーカを撮像するカメラのカメラ座標系に対し、前記所定の位置範囲及び前記所定の姿勢範囲が変化する場合に、前記所定の座標系は、基準マーカ座標系である、請求項１に記載の方法。
【請求項６】
前記オブジェクトマーカを撮像するカメラのカメラ座標系対し、前記所定の位置範囲及び前記所定の姿勢範囲が変化する場合に、前記所定の位置範囲の目標座標及び、前記所定の姿勢範囲の目標姿勢を、カメラ座標系における目標座標、及び目標姿勢にそれぞれ補正する、請求項１に記載の方法。
【請求項７】
オブジェクトに付されたオブジェクトマーカを撮像した画像から、所定の座標系における前記オブジェクトマーカの位置と姿勢を検出し、マーカ座標系における前記オブジェクトマーカからの前記オブジェクトの検出点の座標と、前記オブジェクトマーカの位置と姿勢とに基づいて、前記所定の座標系における前記検出点の位置と前記オブジェクトの姿勢を検出する位置姿勢検出部と、
前記検出点の位置が、前記所定の座標系における所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の座標系における所定の目標姿勢にあるかを判定する位置姿勢比較部と、
を備える装置。
【請求項８】
前記検出点の位置が、前記所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の姿勢範囲内にある場合に、制御対象物に対する制御信号を出力する制御信号生成部をさらに備え、前記制御信号は、前記制御対象物の種類に依存しない信号である、請求項７に記載の装置。
【請求項９】
前記制御信号生成部は、さらに、前記制御信号に応じて、前記制御対象物からの応答信号を取得し、前記応答信号は、前記制御対象物の種類に依存しない信号である、請求項８に記載の装置。
【請求項１０】
オブジェクトマーカが付されたオブジェクトの検出点が設定具の基準位置に重なったときの、所定の座標系における前記オブジェクトマーカの位置と姿勢とを算出するステップと、
前記基準位置と、前記オブジェクトマーカの位置と姿勢とに基づいて、マーカ座標系における前記オブジェクトマーカを基準とする前記オブジェクトの検出点の座標を設定するステップと、
を備える方法。
【請求項１１】
前記基準位置は、前記設定具に付された設定用マーカとは離れた位置に配置される、請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、工具等のオブジェクトに付されたマーカを利用したオブジェクトによる、あるいはオブジェクトに対する作業が正しくおこなわれたかを検出する方法及び装置に関する。
【背景技術】
【０００２】
生産現場において部品を組み付ける工具の位置を検出するために、工具に付されたマーカを撮像し、得られた画像を解析して工具の位置を検出するシステムが知られている。例えば、特許文献１では、工具の先端付近に付設されたマーカを撮像し、工具の位置を検出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５９３０７０８号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のような従来のシステムでは、工具を用いてねじの締め付けを行う際に、最も知りたい位置であるねじ等に作用する位置にマーカを付設可能な、特殊な形状を有する工具を用いる必要があった。例えば、特許文献１ではねじに近い位置にマーカを付設可能なトルクレンチを用いる必要があった。しかしながら、工具の形状や大きさによっては、工具がねじ等に作用する位置にマーカを付設することは困難である。例えば、工具がドライバの場合、ドライバがねじと嵌合する位置は狭く、当該位置にマーカを付設することは困難である。ドライバがねじと嵌合する位置にマーカを付設できたとしても、マーカが手やドライバによって隠れてしまいマーカを識別することができないことがある。また、ねじで部品を組み立てる際に、最も知りたい位置である部品のねじ穴にはマーカを付設することができない。本開示は上述の点に鑑みてなされたものであり、様々な形状や大きさを有する工具等の最も知りたい位置（即ち、工具の場合、工具がねじ等に接触する位置であり、部品の場合、部品がねじ等により作用される位置である）とは異なる位置にオブジェクトマーカを付設する。そして、当該オブジェクトマーカを用いて最も知りたい位置である検出点の位置（上記工具でいえば、工具がねじ等に接触する位置）を求めることを目的の一つとする。
【０００５】
また上記のような従来のシステムでは、工具の姿勢によっては、工具等が作用する部品の姿勢が誤っており、正しく作業を行えないことがある。例えば工具がドライバの場合、工具の姿勢が誤っていると、工具に取り付けられたねじが部品等に対して斜めに入り、ねじを正しく入れることができない。本開示は上述の点に鑑みてなされたものであり、工具等を正しい位置および姿勢で用いることができるよう、作業者の作業を支援することを他の目的の一つとする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本開示の一態様は、工具等のオブジェクトに付されたオブジェクトマーカを撮像した画像から、所定の座標系における前記オブジェクトマーカの位置と姿勢を取得するステップと、マーカ座標系における前記オブジェクトマーカからの前記オブジェクトの検出点の座標（上記ドライバでいうと、ねじと嵌合する場所の座標）と、前記オブジェクトマーカの位置と姿勢とに基づいて、前記所定の座標系における前記検出点の位置と前記オブジェクトの姿勢を算出するステップと、前記検出点の位置が、前記所定の座標系における所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の座標系における所定の姿勢範囲内にあるかを判定するステップと、を備える方法である。所定の位置範囲は、正しく部品等を組み立てるために工具等を移動し得る位置範囲である。所定の姿勢範囲は、正しく部品等を組み立てるために工具等を移動し得る姿勢範囲である。
【０００７】
また、本発明の他の一態様は、工具等のオブジェクトに付されたオブジェクトマーカを撮像した画像から、所定の座標系における前記オブジェクトマーカの位置と姿勢を検出し、マーカ座標系における前記オブジェクトマーカからの前記オブジェクトの検出点の座標と、前記オブジェクトマーカの位置と姿勢とに基づいて、前記所定の座標系における前記検出点の位置と前記オブジェクトの姿勢を検出する位置姿勢検出部と、前記検出点の位置が、前記所定の座標系における所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の座標系における所定の姿勢範囲内にあるかを判定する位置姿勢比較部と、を備える装置である。
【図面の簡単な説明】
【０００８】
【図１Ａ】本開示の一実施形態に係るオフセット設定システムの概略構成図である。
【図１Ｂ】本開示の一実施形態に係る各座標系と、オブジェクトマーカ等との関係を示す図である。
【図１Ｃ】本開示の一実施形態に係るマーカの例を示す。
【図２】本開示の一実施形態に係る検出点データの構成例を示す。
【図３Ａ】本開示の一実施形態に係るオブジェクトの例を示す。
【図３Ｂ】本開示の一実施形態に係るオブジェクトの例を示す。
【図３Ｃ】本開示の一実施形態に係るオブジェクトの例を示す。
【図３Ｄ】本開示の一実施形態に係るオブジェクトの例を示す。
【図４Ａ】本開示の第１実施形態に係る制御システムの概略構成図である。
【図４Ｂ】本開示の第１実施形態に係る制御システムの機能ブロックを含む概略構成図である。
【図５】本開示の一実施形態による制御システムの動作を示すフローチャートである。
【図６Ａ】本開示の一実施形態に係る各座標系と、オブジェクトマーカ等との関係を示す図である。
【図６Ｂ】本開示の一実施形態に係る目標座標姿勢データの構成例を示す。
【図７】本開示の一実施形態に係るシーケンステーブルの構成例を示す。
【図８】本開示の一実施形態に係る各座標系と、オブジェクトマーカ等との関係を示す図である。
【図９Ａ】本開示の第２実施形態に係る制御システムの概略的な構成を示す。
【図９Ｂ】本開示の第２実施形態に係る制御システムの概略的な構成を示す。
【図９Ｃ】本開示の第２実施形態に係る制御システムの概略的な構成を示す。
【図９Ｄ】本開示の第３実施形態に係る制御システムの概略的な構成を示す。
【図１０】本開示の第４実施形態による制御システムの概略的な構成を示す。
【図１１】本開示の第５実施形態による制御システムの構成を概略的に示す。
【図１２】本開示の一実施形態に係る設定具の例を示す図である。
【発明を実施するための形態】
【０００９】
［本発明の実施形態の説明］
最初に、本発明の実施形態の内容を列記して説明する。本発明の一実施形態は、以下のような構成を備える。
（項目１）オブジェクトに付されたオブジェクトマーカを撮像した画像から、所定の座標系における前記オブジェクトマーカの位置と姿勢を取得するステップと、マーカ座標系における前記オブジェクトマーカからの前記オブジェクトの検出点の座標と、前記オブジェクトマーカの位置と姿勢とに基づいて、前記所定の座標系における前記検出点の位置と前記オブジェクトの姿勢を算出するステップと、前記検出点の位置が、前記所定の座標系における所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の座標系における所定の姿勢範囲内にあるかを判定するステップと、を備える方法。
【００１０】
（項目２）前記検出点の位置が、前記所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の姿勢範囲内にある場合に、制御対象物に対する制御信号を出力するステップをさらに備え、前記制御信号は、前記制御対象物の種類に依存しない信号である、項目１に記載の方法。
【００１１】
（項目３）前記制御信号に応じて、前記制御対象物からの応答信号を取得するステップをさらに備え、前記応答信号は、前記制御対象物の種類に依存しない信号である、項目２に記載の方法。
【００１２】
（項目４）前記オブジェクトマーカを撮像するカメラのカメラ座標系に対し、前記所定の位置範囲及び前記所定の姿勢範囲が変化しない場合に、前記所定の座標系は、カメラ座標系である、項目１に記載の方法。
【００１３】
（項目５）前記オブジェクトマーカを撮像するカメラのカメラ座標系に対し、前記所定の位置範囲及び前記所定の姿勢範囲が変化する場合に、前記所定の座標系は、基準マーカ座標系である、項目１に記載の方法。
【００１４】
（項目６）前記オブジェクトマーカを撮像するカメラのカメラ座標系対し、前記所定の位置範囲及び前記所定の姿勢範囲が変化する場合に、前記所定の位置範囲の目標座標及び、前記所定の姿勢範囲の目標姿勢を、カメラ座標系における目標座標、及び目標姿勢にそれぞれ補正する、項目１に記載の方法。
【００１５】
（項目７）オブジェクトに付されたオブジェクトマーカを撮像した画像から、所定の座標系における前記オブジェクトマーカの位置と姿勢を検出し、マーカ座標系における前記オブジェクトマーカからの前記オブジェクトの検出点の座標と、前記オブジェクトマーカの位置と姿勢とに基づいて、前記所定の座標系における前記検出点の位置と前記オブジェクトの姿勢を検出する位置姿勢検出部と、
前記検出点の位置が、前記所定の座標系における所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の座標系における所定の目標姿勢にあるかを判定する位置姿勢比較部と、
を備える装置。
【００１６】
（項目８）前記検出点の位置が、前記所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の姿勢範囲内にある場合に、制御対象物に対する制御信号を出力する制御信号生成部をさらに備え、前記制御信号は、前記制御対象物の種類に依存しない信号である、項目７に記載の装置。
【００１７】
（項目９）前記制御信号生成部は、さらに、前記制御信号に応じて、前記制御対象物からの応答信号を取得し、前記応答信号は、前記制御対象物の種類に依存しない信号である、項目８に記載の装置。
【００１８】
（項目１０）オブジェクトマーカが付されたオブジェクトの検出点が設定具の基準位置に重なったときの、所定の座標系における前記オブジェクトマーカの位置と姿勢とを算出するステップと、
前記基準位置と、前記オブジェクトマーカの位置と姿勢とに基づいて、マーカ座標系における前記オブジェクトマーカを基準とする前記オブジェクトの検出点の座標を設定するステップと、
を備える方法。
【００１９】
（項目１１）前記基準位置は、前記設定具に付された設定用マーカとは離れた位置に配置される、項目１０に記載の方法。
【００２０】
［本発明の実施形態の詳細］
以下、本開示の実施形態について図面を参照して説明する。図面において、同一または類似の要素には同一または類似の参照符号が付され、各実施形態の説明において同一または類似の要素に関する重複する説明は省略することがある。また、各実施形態で示される特徴は、互いに矛盾しない限り他の実施形態にも適用可能である。しかし、本開示の実施形態は、必ずしもこのような態様に限定されない。本開示の実施形態が、特許請求の範囲において規定される範囲に含まれる様々な態様を取り得ることは、当業者にとって明らかであろう。
【００２１】
本開示によると、オブジェクトに付設されたオブジェクトマーカを撮像して得られた画像を元に、オブジェクトマーカの三次元位置を算出する。オブジェクトは、オブジェクトマーカにより位置や姿勢が検出されるものであり、工具、部品、ラベル、作業者の手等を含む。工具は、作業者に把持され、操作される。部品は、作業者や工具からの作用を受けるものであり、例えばねじ穴を有する部品である。ラベルは、作業者により移動や貼り付け等されるものである。本開示によると、オブジェクトマーカの三次元位置から、オブジェクトマーカとは離れた位置にある検出点の三次元位置を算出し、当該検出点の三次元位置を予め設定された所定の位置範囲と比較して作業者の作業の正誤を判定する。作業者の作業が正しい場合、あるいは正しくない場合に、予め設定されたシーケンスに基づいて、制御対象物に信号を送出する。制御対象物は、作業者により操作される工具や、コンピュータによって制御される表示灯、スイッチ等を含む。工具は、オブジェクトにも制御対象物にもなり得る。
【００２２】
オブジェクトマーカは、カメラから撮像可能な位置に配置されていればよく、検出点とは異なる位置、通例ではオブジェクト上に配置される。オブジェクトマーカと、オブジェクトの検出点との位置関係は任意に設定可能である。
【００２３】
まず、図１Ａ及び図１Ｂを用いて、任意に配置されたオブジェクトマーカと、検出点との相対的な位置関係を設定するための構成を説明する。
【００２４】
図１Ａは本開示の一実施形態に係るオフセット設定システム１００の概略構成図である。オフセット設定システム１００は、カメラ１１０と、オブジェクトマーカ１２２が付されたオブジェクト１２０と、設定用マーカ１３２が付された設定具１３０と、コンピュータ１４０とを備える。カメラ１１０と、コンピュータ１４０は、同じ場所に設置され無線、あるいは有線で相互に接続されている。あるいは、カメラ１１０と、コンピュータ１４０は、離れた場所に設置され、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（ワイドエリアネットワーク）、又はインターネット等のネットワーク（不図示）を介して相互に通信可能に接続されてもよい。なお、図１Ａではオブジェクト１２０は工具で示されているが、工具以外の部品やラベル等のオブジェクト１２０にも、同様に適用される。
【００２５】
カメラ１１０は、連続的、あるいは一定間隔毎に画像を撮像可能なカメラ、例えばＷｅｂカメラである。カメラ１１０は、オブジェクトマーカ１２２と設定用マーカ１３２とを撮像可能な位置に配置される。オブジェクトマーカ１２２、設定用マーカ１３２は、いわゆるＡＲ（Ａｕｇｕｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）マーカである。カメラ１１０により撮影されたマーカ画像を解析して、マーカの大きさからカメラ座標系Σｃにおけるマーカの位置、マーカの歪み方からカメラ座標系Σｃにおけるマーカの姿勢を、それぞれ求めることができる。カメラ座標系Σｃは、カメラのレンズの中心を原点とする座標系である。図１Ｃはオブジェクトマーカ１２２及び、設定用マーカ１３２の例を示す。各マーカは、黒色背景に白色のパターンを配した四角形の二次元の画像である。各マーカには、それぞれマーカ識別番号と、誤り訂正符号が符号化された異なるビットパターンが割り当てられている。図１Ｃに示されるＡＲマーカは例示であって、マーカの形や色はこれに限定されない。
【００２６】
オブジェクト１２０には、検出点１２４と離れた、カメラ１１０から撮像可能な任意の位置にオブジェクトマーカ１２２が付設されている。オブジェクト１２０は、一例として、図１Ａに示されるように工具であってもよいし、図３Ａから図３Ｃを用いて後述するように、様々な種類の他のオブジェクトであってもよい。検出点１２４は、位置を検出したいオブジェクト１２０上の位置に設定され、例えば、図１Ａに示すようにオブジェクト１２０が工具の場合、工具の先端に設定される。なお、オブジェクトマーカ１２２は、カメラ１１０から撮像可能であり、オブジェクト１２０との位置関係が固定されていれば、オブジェクト１２０上に付設されなくともよい。
【００２７】
設定具１３０は、オブジェクトマーカ１２２と、検出点１２４との相対的な位置関係を設定するために用いられる。設定具１３０には、設定用マーカ１３２と、基準位置１３４とを示す図形とが付されている。基準位置１３４は、設定用マーカ１３２から所定の距離、例えば設定用マーカ１３２の中心から、ある方向に距離Ｌだけ離れた位置に配置されている。設定具１３０は、図１Ａに示すような板であってもよいし、オブジェクト１２０が工具の場合は、図１２に示すように、工具の先端にはめ込み可能な部分を有する治具であってもよい。
【００２８】
コンピュータ１４０は、主たる構成要素として、プロセッサ１４２と、メモリ１４４と、表示操作部１４６とを備える。
【００２９】
プロセッサ１４２は、コンピュータ１４０に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ１４４に格納されているプログラムに含まれる一連の命令を実行する。ある態様において、プロセッサ１４２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のデバイスとして実現される。プロセッサ１４２内に含まれるコンポーネントは、プロセッサ１４２が実行する機能を具体的なモジュールとして表現する１つの例にすぎない。複数のコンポーネントの機能が単一のコンポーネントによって実現されてもよい。プロセッサ１４２がすべてのコンポーネントの機能を実行するように構成されてもよい。一例では、図１Ａに示すように、プロセッサ１４２はマーカ座標設定部１５０を含む。マーカ座標設定部１５０は、位置検出部１５２と、座標変換部１５４とを含む。
【００３０】
メモリ１４４は、プログラム及びデータを保存する。プログラムは、例えば、メモリ１４４からロードされる。データは、コンピュータ１４０に入力されたデータと、プロセッサ１４２によって生成されたデータとを含む。ある態様において、メモリ１４４は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリ、あるいはＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性メモリとして実現される。一例では、図１Ａに示すように、メモリ１４４は検出点データ１６２を含む。
【００３１】
表示操作部１４６は、各部の状態を表示し、また、作業者による操作入力を受け付けることができる。
【００３２】
図１Ｂは、オブジェクトマーカ１２２と、検出点１２４と、設定具１３０に設定された基準位置１３４と、設定用マーカ１３２と、各３次元直交座標系（マーカ座標系Σｍ（Ｘｍ，Ｙｍ，Ｚｍ）、カメラ座標系Σｃ（Ｘｃ，Ｙｃ，Ｚｃ）、設定用マーカ座標系Σｓ（Ｘｓ，Ｙｓ，Ｚｓ）との関係を示す。オフセット設定システム１００は、オブジェクトマーカ１２２を基準とするマーカ座標系Σｍにおける検出点１２４の位置を求める。マーカ座標系Σｍは、オブジェクトマーカ１２２上に設定されたオブジェクトマーカ座標１２６を原点とする。マーカ座標系Σｍの姿勢は、オブジェクトマーカ１２２の姿勢に基づいて設定され、例えば、オブジェクトマーカ１２２の配置面にＸＹ軸を、当該配置面に直交する方向にＺ軸を設定する。設定用マーカ座標系Σｓは、設定用マーカ１３２上に設定された設定用マーカ座標を原点とする。設定用マーカ座標系Σｓの姿勢もマーカ座標系Σｍと同様に設定され得る。
【００３３】
以下、図１Ａ及び図１Ｂを参照しながら、オブジェクトマーカ１２２を基準とする検出点１２４の位置を求める方法について説明する。オブジェクトマーカ１２２と、検出点１２４の位置関係は不明であるので、位置関係が定められている設定具上に設けられた設定用マーカ１３２と、設定用マーカ１３２とは離れた位置に設けられた基準位置１３４とを用いて、オブジェクトマーカ１２２を基準とする検出点１２４の位置を求める。
【００３４】
まず、作業者は、オブジェクトマーカ１２２と、検出点１２４との相対的な位置関係を設定するために、設定具１３０と、オブジェクト１２０とを重ね合わせる。このとき、仮に、設定用マーカ１３２上に検出点１２４を重ねようとすると、オブジェクト１２０の形状や大きさによっては、オブジェクト１２０により設定用マーカ１３２が隠れてしまい、カメラ１１０は設定用マーカ１３２を撮像できなくなる。従って、本開示においては、設定用マーカ１３２とは離れた、設定用マーカ１３２との位置関係が定められた基準位置１３４に、検出点１２４が重ね合わせする。そして、基準位置１３４を検出点１２４の位置として検出する。
【００３５】
プロセッサ１４２（位置検出部１５２）は、検出点１２４と、基準位置１３４とを重ね合わせたときのカメラ画像から、オブジェクトマーカ１２２と設定用マーカ１３２を含む画像を解析する。そして、カメラ座標系Σｃにおける各マーカの位置と姿勢を算出する。このとき、図１Ｂに示すように、カメラ座標系Σｃにおける検出点１２４の位置は、カメラ座標系Σｃにおける基準位置１３４に等しくなる。プロセッサ１４２は、設定用マーカ１３２の位置と姿勢と、設定用マーカ１３２と基準位置１３４との間の距離Ｌとに基づいて、カメラ座標系Σｃにおける基準位置１３４を算出する。
【００３６】
そして、プロセッサ１４２（座標変換部１５４）は、カメラ座標系Σｃでのオブジェクトマーカ１２２の姿勢から回転行列を求め、カメラ座標系Σｃにおける基準位置１３４（即ち検出点１２４の座標）を、オブジェクトマーカ１２２のオブジェクトマーカ座標１２６を基準とするマーカ座標系Σｍへと座標変換する。検出点１２４の座標を、マーカ座標系Σｍの座標へと変換する方法には、公知の三次元座標変換の方法が用いられ、ここでは詳細な説明は割愛する。座標変換によりマーカ座標系Σｍにおける検出点１２４のオフセット座標が取得される。検出点１２４のオフセット座標は、マーカ座標系Σｍの原点１２６を基準とした検出点１２４の座標である。取得された検出点１２４のオフセット座標は、オブジェクトマーカ１２２の識別番号毎に検出点データ１６２としてメモリ１４４に格納される。オブジェクトマーカ１２２と検出点１２４との位置関係は固定されており、当該位置関係は、オブジェクト１２０が移動しても変わらない。
【００３７】
図２は、メモリ１４４に格納される検出点データ１６２の構成例を示す。検出点データ１６２は、マーカ識別番号２０２と、検出点のオフセット座標２０４と、検出点種別２０６とを備える。マーカ識別番号２０２は、オブジェクトマーカ１２２の画像を復号して得られた、各オブジェクトマーカ１２２に割り当てられた識別番号である。検出点種別２０６は、オブジェクトマーカ１２２が付されるオブジェクトの種類を示す。
【００３８】
オブジェクトマーカ１２２は、様々なオブジェクト１２０に様々な態様で付設され得る。図３Ａから図３Ｄは、様々な種類のオブジェクト１２０と、該オブジェクト１２０に付されたオブジェクトマーカ１２２と、検出点１２４と、オブジェクトマーカ座標１２６との関係を例示する。図３Ａはオブジェクト１２０が手袋、あるいは手の場合を示す。図３Ｂはオブジェクト１２０が部品の場合を示す。図３Ｃはオブジェクト１２０がラベルの場合を示す。
【００３９】
図３Ｄは、複数のオブジェクトマーカ１２２が付されたオブジェクト１２０を例示する。一例として、複数のオブジェクトマーカ１２２ａ１、１２２ａ２（以下、まとめてオブジェクトマーカ１２２ａとも呼ぶ）をオブジェクト１２０の同じ側に配置する。作業者の身体の一部や遮蔽物により、カメラ１１０が１つのオブジェクトマーカ１２２ａ１を撮像できなくなった場合にも、他のオブジェクトマーカ１２２ａ２がカメラ１１０により撮像可能であれば、検出点１２４の位置を設定することができる。また、他の例として、複数のオブジェクトマーカ１２２ａ、１２２ｂ、１２２ｃをオブジェクト１２０の異なる側に配置する。複数のカメラ１１０は、それぞれオブジェクト１２０の異なる角度から撮像可能なように配置される。カメラ１１０ａは、オブジェクト１２０のオブジェクトマーカ１２２ａの付されている側を撮像し、オブジェクトマーカ１２２ｂ、１２２ｃの付されている側はカメラ１１０ａの死角となり撮像できない。カメラ１１０ｂは、カメラ１１０ａ及び１１０ｃの死角となっている、オブジェクトマーカ１２２ａの付されている側を撮像し、カメラ１１０ｃは、カメラ１１０ａ及び１１０ｂの死角となっている、オブジェクトマーカ１２２ｃの付されている側を、それぞれ撮像する。複数のカメラ１１０をオブジェクト１２０の異なる角度に配置することで、オブジェクトマーカ１２２を撮像できない死角を減らすことができる。
【００４０】
以上の実施形態においては、オブジェクトマーカ１２２を基準とする検出点１２４のオフセット座標を設定した。次に、設定された検出点１２４のオフセット座標を用いて、作業者の作業を支援するよう構成された制御システム４００の構成等について説明する。
【００４１】
＜第１実施形態＞
図４Ａは、本開示の第１実施形態に係る制御システム４００の概略構成図である。本実施形態では、制御システム４００は、検出点１２４の所定の座標系における三次元位置と、予め設定された検出点１２４の三次元位置とを比較して、作業者の作業の正誤を判定等する。また、制御システム４００は、作業者の作業が正しい場合、あるいは正しくない場合、予め設定されたシーケンスに基づいて、制御対象物４６０に対し制御信号を送出し、また制御対象物４６０からの応答信号を受け取る。図４Ａは、オブジェクト１２０も制御対象物４６０（ツール４６４）も同一（工具４７０）の場合を示す。
【００４２】
図４Ｂは、図４Ａに示す本開示の第１実施形態に係る制御システム４００の機能ブロックを含む概略構成図である。制御システム４００は、カメラ１１０と、オブジェクトマーカ１２２がそれぞれ付された１以上の工具４７０と、コンピュータ１４０とを備える。
【００４３】
コンピュータ１４０は、主たる構成要素として、プロセッサ１４２と、メモリ１４４とを備える。プロセッサ１４２は、位置姿勢検出部４１０と、位置姿勢比較部４２０と、シーケンス制御部４３０と、制御信号生成部４４０とを備える。プロセッサ１４２内に含まれるコンポーネントは、プロセッサ１４２が実行する機能を具体的なモジュールとして表現する１つの例にすぎない。メモリ１４４は、検出点データ１６２と、目標座標姿勢データ４５２と、シーケンステーブル４５４とを備える。
【００４４】
コンピュータ１４０は、１以上の制御対象物４６０と接続される。コンピュータ１４０は、制御対象物４６０に対し制御信号を出力し、また、制御対象物４６０からの応答信号を受信する。コンピュータ１４０と、制御対象物４６０とは、直接接続されてもよいし、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の有線通信インターフェース、あるいは、ＷｉＦｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の無線通信インターフェースを介して接続されてもよい。
【００４５】
各制御対象物４６０は、ツールコントローラと４６２と、工具４７０とを備える。ツールコントローラ４６２は、コンピュータ１４０からの制御信号を受け取る、あるいはコンピュータ１４０へ応答信号を送出する。ツールコントローラ４６２は、コンピュータ１４０からの制御信号を受け取ると、一例として、工具４７０の有効化を行う（工具４７０の各種操作ができるようになる）、あるいは工具４７０の各種パラメータを設定する。そして、工具４７０を用いた作業が行われると、ツールコントローラ４６２は、工具４７０から様々な信号、例えば締め付けトルクを受け取る。ツールコントローラ４６２は、工具４７０からの様々な信号に基づき、工具４７０を用いた作業が成功したか否かの判断等を行い、コンピュータ１４０に対し応答信号、例えば、作業が完了した旨を示す信号を出力する。
【００４６】
図５は、第１実施形態による、制御システム４００にて実施される方法５００のフローチャートである。本実施形態においては、オブジェクト１２０も制御対象物４６０も同一（図４Ａの工具４７０）である場合について説明する。以下、図５を参照して、方法５００のフローチャートを説明する。
【００４７】
処理はステップ５０２において開始する。ステップ５０４において、プロセッサ１４２（位置姿勢検出部４１０）は、カメラ１１０により撮像された画像から、工具４７０（ここではオブジェクトとしての工具４７０）に付されたオブジェクトマーカ１２２の画像を解析して、所定の座標系におけるオブジェクトマーカ１２２の三次元位置と姿勢とを算出する。所定の座標系は、カメラ１１０に設定されたカメラ座標系Σｃであってもよいし、後述する別途付設された基準マーカに基づく座標系Σｂ（図８に示す）であってもよい。そして、プロセッサ１４２は、オブジェクトマーカ１２２の姿勢から、オブジェクトとしての工具４７０の姿勢を算出する（ステップ５０４）。プロセッサ１４２は、オブジェクトマーカ１２２の姿勢そのものを工具４７０の姿勢としてもよいし、オブジェクトマーカ１２２の姿勢に回転行列を掛けて求められる検査点１２４の姿勢を工具４７０の姿勢としてもよい。さらに、プロセッサ１４２は、メモリ１４４に格納された検出点データ１６２の検出点１２４のオフセット座標２０４と、オブジェクトマーカ１２２の三次元位置とに基づいて、所定の座標系における検出点１２４の位置を算出する（ステップ５０４）。
【００４８】
処理はステップ５０６に進む。プロセッサ１４２（位置姿勢比較部４２０）は、メモリ１４４から、目標座標姿勢データ４５２を読み出す。目標座標姿勢データ４５２には、所定の座標系における検出点１２４の目標座標６１２と、所定の座標系における工具４７０の目標姿勢６１４とが格納されている。目標座標６１２は、所定の座標系における検出点１２４の正しい座標であり、目標姿勢６１４は、所定の座標系における工具４７０の正しい姿勢である。プロセッサ１４２は、ステップ５０４にて検出された検出点１２４の座標を、目標座標６１２と比較し、また、ステップ５０４にて検出された工具４７０の姿勢を、目標姿勢６１４と比較する。目標座標６１２と、目標姿勢６１４の設定方法については後述する。
【００４９】
処理はステップ５０８に進む。プロセッサ１４２（位置姿勢比較部４２０）は、所定の座標系における現在の検出点１２４の座標と、目標座標６１２とが一致し、かつ所定の座標系での現在の工具４７０の姿勢と、目標姿勢６１４とが一致しているかを判定する。あるいは、他の例として、プロセッサ１４２（位置姿勢比較部４２０）は、所定の座標系における現在の検出点１２４の座標と、目標座標６１２との差分が所定の位置範囲６０４内にあり、かつ所定の座標系での現在の工具４７０の姿勢と、目標姿勢６１４との差分が所定の姿勢範囲６０６内にあるかを判定する。位置範囲６０４は、検出１２４点が正しい位置にあると判断される範囲であり、姿勢範囲６０６は、検出点１２４が正しい姿勢にあると判断される範囲である。なお、工具４７０の状態を、目標座標６１２と、目標姿勢６１４の両方と比較せず、いずれか一方と比較して、その一致を判定してもよい。
【００５０】
本開示によると、検出点１２４の座標を目標座標６１２（位置範囲６０４）と比較することに加えて、工具４７０の姿勢を、目標姿勢６１４（姿勢範囲６０６）と比較する。したがって、例えば、工具４７０を用いてボルトを締めるシーケンスにおいて、正しい位置及び正しい姿勢でボルトを締めることができ、ボルトが斜めに入ることで生じる不具合を回避することができる。
【００５１】
図６Ａは、オブジェクトマーカ１２２と、検出点１２４と、目標位置６０２と、位置範囲６０４と、マーカ座標系Σｍと、所定の座標系（ここではカメラ座標系Σｃ）との関係を例示する。位置範囲６０４は、図６Ａでは目標位置６０２を中心とした球で示される。位置範囲６０４の形状は球に限られず、様々な形状、例えば半球や、立方体であってよい。カメラ座標系Σｃに代えて、基準マーカに基づく基準マーカ座標系Σｂ（図８に示す）を所定の座標系としてもよい。
【００５２】
図６Ｂは、メモリ１４４に格納された、目標座標姿勢データ４５２の構成例を示す。目標座標姿勢データ４５２は、少なくとも、シーケンス番号６１０と、目標位置６０２の目標座標６１２と、目標姿勢６１４と、マーカ識別番号２０２とを備える。これらの値は予め設定されている。シーケンス番号６１０は、シーケンス内に定められた各処理に割り当てられた番号である。目標座標６１２は、所定の座標系における座標（ｘｔ、ｙｔ、ｚｔ）で示され、目標姿勢６１４は、所定の座標系における直交３軸のベクトル（Ｐ１、Ｑ１、Ｒ１）で示される。一つのシーケンス番号に対し、目標座標６１２と、目標姿勢６１４と、マーカ識別番号２０２とを備えるセットが対応する。一つのシーケンス番号に対し、複数の前記セットを対応させてもよい。この場合、複数の異なるオブジェクト１２０（ここでは工具４７０）を、それぞれ対応する目標位置、目標姿勢と同時に比較することができる。目標座標姿勢データ４５２は、さらに、各シーケンス番号に対応する予め設定された位置範囲６０４と、姿勢範囲６０６とを備えてもよい。図６Ｂでは、一例として、位置範囲６０４は、目標座標６１２を中心とした球の半径で示され、姿勢範囲６０６は、目標姿勢６１４を示す直交３軸のベクトルの各軸を中心とした角度で示される。
【００５３】
目標座標６１２と、目標姿勢６１４とを設定する方法を説明する。作業者が工具４７０を操作して、工具４７０の検出点１２４を、正しい位置及び姿勢で、目標位置６０２に合わせたときのカメラ画像を取得する。取得されたカメラ画像から、オブジェクトマーカ１２２の所定の座標系における三次元位置と姿勢を算出する。算出されたオブジェクトマーカ１２２の姿勢から目標姿勢６１４を求める。目標姿勢６１４は、オブジェクトマーカ１２２の姿勢そのものとしてもよいし、オブジェクトマーカ１２２の姿勢に回転行列を掛けて求められる検出点１２４の姿勢を目標姿勢６１４としてもよい。そして、オブジェクトマーカ１２２からの検出点のオフセット座標２０４と、オブジェクトマーカ１２２の三次元位置と姿勢とに基づいて、所定の座標系における検出点１２４の座標を算出する。算出された検出点１２４の座標が目標座標６１２である。
【００５４】
再び図５に戻る。ステップ５０８にて「はい」の場合、プロセッサ１４２は一致信号を生成し、処理はステップ５１０に進む。一方、ステップ５０８にて「いいえ」の場合、処理はステップ５０４に戻る。
【００５５】
一致信号が生成されると、ステップ５１０において、プロセッサ１４２（シーケンス制御部４３０）は、シーケンステーブル４５４を参照する。プロセッサ１４２は、シーケンステーブル４５４に設定された内容に従って、制御対象物４６０（ここではツール４６４としての工具４７０）に対し制御が必要か否かを判定し、制御が必要であると判定した場合（ステップ５１２にて「はい」）、ステップ５１４に進む。一方、工具４７０に対し制御が不要であると判定した場合、ステップ５１８に進む。
【００５６】
ステップ５１４において、プロセッサ１４２（制御信号生成部４４０）は、制御対象物４６０に対する制御信号を生成し、制御対象物４６０に出力する。制御信号は、一例としてデジタル二値信号であり、シーケンスが開始したこと、あるいはシーケンスが終了したことを示す。
【００５７】
制御対象物４６０は制御信号に応じて、所定の処理を実行する。一例として、制御対象物４６０（ツールコントローラ４６２）は、ツール４６４としての工具４７０の動作を有効にする。作業者は、有効化されたツール４６４を用いて作業を行う。ツールコントローラ４６２は、作業の結果、工具４７０から出力された信号に基づいて、工具４７０を用いた作業が終了したかあるいは成功したかを判定する。工具４７０を用いた作業が終了あるいは成功したと判定すると、ツールコントローラ４６２（制御対象物４６０）は制御信号生成部４４０へ応答信号を出力する。
【００５８】
ステップ５１６において、プロセッサ１４２（制御信号生成部４４０）は、制御対象物４６０から応答信号を受け取ると、シーケンス制御部４３０へ出力する。応答信号は、一例としてデジタル二値信号であり、制御対象物４６０の入力端子がアクティブであること、あるいは入力端子が非アクティブであることを示す。コンピュータ１４０は、制御対象物４６０の入力端子の状態を、シーケンステーブル４５４における処理の開始条件又は終了条件として設定することができる。
【００５９】
処理は、ステップ５１８に進む。プロセッサ１４２（シーケンス制御部４３０）はシーケンステーブル４５４を参照し、次の処理が無いと判定した場合に、処理を終了する（ステップ５２０）。一方、ステップ５１８にて、次の処理があると判定された場合に、ステップ５０４に戻る。
【００６０】
また、他の例として、ステップ５１４において、制御信号生成部４４０は、制御信号として、工具４７０が実行すべき処理に対応するプログラム番号ｎを含むデータを生成し、制御対象物４６０に出力する。ツールコントローラ４６２は、取得したプログラム番号ｎに対応するプログラムを読み出し、当該プログラムに規定されたパラメータ、例えば工具４７０が締め付け工具の場合、締付トルク、締付角度、回転速度、逆回転の可否、締付エラー時のリトライ回数などの設定パラメータを、工具４７０に設定し、工具４７０を有効化する。有効化された工具４７０を用いて、作業が行われると、工具４７０は各種信号、例えばツールが実際に作動したときの締付トルクをツールコントローラ４６２へ出力する。ツールコントローラ４６２は、工具４７０から取得された信号が、設定パラメータと整合するか判定し、整合していると判定すると、処理完了メッセージを生成し、コンピュータ１４０に出力する。そして、ステップ５１６において、コンピュータ１４０は、工具４７０から処理完了メッセージを受信すると、シーケンステーブル４５４を参照し、次の処理が無いと判断した場合に、処理を終了する（ステップ５２０）。一方、ステップ５１８にて、次の処理があると判断した場合に、ステップ５０４に戻る。
【００６１】
本開示のコンピュータ１４０は、工具４７０等のツール４６４に固有のパラメータ、例えば締付トルクは保持せず、ツールコントローラ４６２が、ツール４６４に固有の制御パラメータを保持する。コンピュータ１４０は、制御対象物４６０との間で、ツール４６４の種類に依存しない汎用的な信号（制御信号、応答信号）の入出力を行う。したがって、コンピュータ１４０は、ツール４６４の種類に応じて設定を変更することなく、様々なツール４６４（工具、信号灯、スイッチ等）、あるいは多様なメーカが製造したツール４６４に接続されうる。コンピュータ１４０は、ツールコントローラ４６２を用いることで、様々な種類のツール４６４の制御をおこなうことができ、多種多様なツールを用いる生産現場の工程設計に柔軟に対応することができる、あるいはまた、ツール４６４の交換を容易にすることができる。
【００６２】
なお、図４Ｂに示すように、制御対象物４６０（ツール４６４）は、オブジェクト１２０と同一であってもよいし、異なってもよい。制御対象物４６０とオブジェクト１２０が異なる場合のオブジェクト１２０の具体例は、手袋（図３Ａ）、部品（図３Ｂ）、ラベル（図３Ｃ）、ヘルメット（図１１）であり、制御対象物４６０とオブジェクト１２０が異なる場合のツール４６４の具体例は、表示灯、スイッチ等である。例えば、オブジェクト１２０が手袋であり、制御対象物４６０が表示灯である場合、図５に示すステップＳ５０２からＳ５１０において、オブジェクトとしての工具４７０は手袋に置き換えられ、ステップＳ５１２からＳ５１９において、ツールとしての工具４７０は表示灯に置き換えられる。
【００６３】
図７はシーケンステーブル４５４の一例を示す。シーケンステーブル４５４は、シーケンス番号６１０と、目標座標姿勢データ４５２と、開始条件７０２と、終了条件７０４と、制御対象出力７０６とを備える。シーケンステーブル４５４は、作業者により、表示操作部１４６（図１Ａ）を介して予め設定されている。開始条件７０２は、制御対象物４６０に対する処理を開始する条件であり、終了条件７０４は、制御対象物４６０に対する処理を終了する条件であり、制御対象出力７０６は、コンピュータ１４０により生成された信号を出力するポートを示す。開始条件７０２、終了条件７０４は、それぞれ、「自動」「位置姿勢」「制御入力Ｘ」「時間Ｔ」のいずれかを含む。条件「自動」は、シーケンス処理が選択されると、無条件に当該シーケンス処理を開始あるいは終了することを示す。条件「位置姿勢」は、シーケンス処理が選択されると、位置姿勢比較部４２０からの一致信号によって、当該シーケンス処理を開始あるいは終了することを示す。条件「制御入力Ｘ」は、シーケンス処理が選択されると、制御対象物４６０から受け取った応答信号によって、当該シーケンス処理を開始あるいは終了することを示す。条件「時間Ｔ」は、シーケンス処理が選択されると、設定された時間Ｔ経過後に当該シーケンス処理を開始あるいは終了することを示す。
【００６４】
開始条件７０２、終了条件７０４、制御対象出力７０６の組み合わせの一例として、開始条件７０２「自動」、終了条件７０４「位置姿勢」、制御対象出力７０６「表示灯」について説明する（シーケンス番号００１）。シーケンス番号００１の処理では、オブジェクト１２０は手、ツール４６４は表示灯であり、オブジェクト１２０とツール４６４とは異なる。まず、無条件でシーケンス番号００１の処理にはいる（開始条件）。そして、手（オブジェクト１２０）が所定の位置範囲内におかれると、次のシーケンス処理に進む（終了条件）。コンピュータ１４０は、制御対象物４６０に制御信号を送出する。当該制御信号に基づいて特定の表示灯（ツール４６４）が点灯する。そして、次のシーケンス処理に進む。
【００６５】
また、開始条件７０２、終了条件７０４、制御対象出力７０６の組み合わせの他の例として、開始条件７０２「位置姿勢」、終了条件７０４「外部入力１」、制御対象物４６０「なし」について説明する（シーケンス番号００２）。シーケンス番号００２の処理では、オブジェクト１２０、ツール４６４ともに工具である。まず、特定の場所のねじを特定の工具（オブジェクト１２０）を用いて、正しい位置姿勢で締付け、シーケンス番号００２の処理に入る（開始条件）。特定の工具からの締め付け完了を示す外部入力１（応答信号）が得られると、当該処理は終了し（終了条件）、次のシーケンス処理に進む。
【００６６】
以上、本開示の第１実施形態に係る制御システム４００の構成等について説明した。次に本開示の第２から第５の実施形態に係る制御システムの構成等について説明する。
【００６７】
＜第２実施形態＞
グローバル座標系Σｇでカメラ１１０が移動する場合、あるいは目標位置６０２が変化する場合は、カメラ座標系Σｃに対する目標座標６１２や目標姿勢６１４は変化する。第２実施形態においては、図８に示すように所定の座標系として、基準マーカ座標系Σｂを用いる。基準マーカ座標系Σｂでは、基準マーカ座標系Σｂに対する目標座標６１２、及び目標姿勢６１４が固定されている。
【００６８】
図８は、オブジェクトマーカ１２２と、検出点１２４と、目標位置６０２と、基準マーカ８０２と、基準マーカ座標系Σｂ（Ｘｂ，Ｙｂ．Ｚｂ）と、マーカ座標系Σｍ（Ｘｍ，Ｙｍ，Ｚｍ）との位置関係を例示する。基準マーカ座標系Σｂは、基準マーカ座標８０４を原点とする座標系である。基準マーカ８０２は、グローバル座標系Σｇにおいてカメラ１１０が移動あるいは、目標位置６０２が変化しても、目標位置６０２との相対的な位置姿勢が固定される。また、基準マーカ８０２は、カメラ１１０により撮像可能な任意の位置に配置される。
【００６９】
以下、図９Ａから図９Ｃを参照して、本開示の第２実施形態の様々な変形例を説明する。図９Ａはコンベア９１０上に配置された部品９１２が動く場合の制御システム９００Ａ、図９Ｂおよび図９Ｃはカメラ１１０が動く場合の、制御システム９００Ｂ及び９００Ｃの概略的な構成をそれぞれ示す。第２実施形態では、オブジェクト１２０と制御対象物４６０（ツール４６４）は共に工具４７０である。
【００７０】
図９Ａは、コンベア９１０上の部品９１２に付設され固定された第１基準マーカ８０２ａと、コンベア９１０上に付設され固定された第２基準マーカ８０２ｂとを示す。コンベア９１０が動くと、第１基準マーカ８０２ａ、第２基準マーカ８０２ｂが共に動く。コンベア９１０と部品９１２の位置関係が固定の場合は、第１基準マーカ８０２ａあるいは、第２基準マーカ８０２ｂの少なくとも一方を用いる。コンベア９１０と部品９１２の位置関係が変化する場合、部品９１２に付設された第１基準マーカ８０２ａを用いる。コンピュータ１４０は、基準マーカ座標系Σｂ（図９Ａでは第１基準マーカ８０２ａを基準とする）における検出点１２４の座標と、目標位置６０２の目標座標６１２とを比較し、かつ基準マーカ座標系Σｂにおけるオブジェクトとしての工具４７０の姿勢と、目標姿勢６１４とを比較する。コンピュータ１４０により工具４７０が正しい位置、姿勢であると判定されると、ツールコントローラ４６２は、工具４７０に対し制御信号を出力する。
【００７１】
図９Ｂでは、図９Ａに示すカメラが固定である例と異なり、カメラ１１０はオブジェクト１２０に取り付けられており、カメラ１１０は、オブジェクトとしての工具４７０と共に動く。カメラ１１０は、部品９１２に付設され固定された第１基準マーカ８０２ａを撮像する。コンピュータ１４０は、基準マーカ座標系Σｂにおける検出点１２４の座標と、目標座標６１２とを比較し、かつ基準マーカ座標系Σｂにおける工具４７０の姿勢と、目標姿勢６１４とを比較する。本実施形態によると、目標位置６０２が作業者から見えない部位に設定されていても、カメラ１１０が目標位置６０２付近を撮像することが可能であるので、検出点１２４が目標位置６０２に近づいたかを判定することができる。
【００７２】
図９Ｃでは、図９Ａに示すカメラが固定である例と異なり、カメラ１１０は作業者９３０の被るヘルメット９３２に取り付けられており、カメラ１１０は、作業者９３０の頭部の動きに伴い動く。カメラ１１０は、部品９１２に付設され固定された第１基準マーカ８０２ａあるいは第３基準マーカ８０２ｃの少なくとも一方を撮像する。第１基準マーカ８０２ａは、作業台９４０の上の部品９１２に付設され固定されており、第３基準マーカ８０２ｃは、グローバル座標系Σｇにおいて固定されている作業台９４０の上に付設されている。コンピュータ１４０は、第１基準マーカ８０２ａあるいは、第３基準マーカ８０２ｃの少なくとも一方を用いて、基準マーカ座標系Σｂ（図９Ｃでは、第３基準マーカ８０２ｃを基準とする）における検出点１２４の座標と、目標位置６０２の目標座標６１２とを比較し、かつ基準マーカ座標系Σｂにおけるオブジェクトとしての工具４７０の姿勢と、目標姿勢６１４とを比較する。
【００７３】
＜第３実施形態＞
第３実施形態においては、第２の実施形態と同様に、カメラ座標系Σｃ（Ｘｃ，Ｙｃ，Ｚｃ）に対し目標座標６１２及び目標姿勢６１４が変化する。しかし、第３実施形態では、第２実施形態とは異なり基準マーカ８０２を用いずに、位置検出装置９２０を用いて、目標座標６１２をカメラ座標系Σｃにおける目標座標に補正する。第２実施形態では、オブジェクト１２０と制御対象物４６０（ツール４６４）は共に工具４７０である。
【００７４】
図９Ｄは、本開示の第３実施形態による制御システム８００Ｅの構成を概略的に示す。図９Ｄでは、位置センサ９１４を取り付けたコンベア９１０上に部品９１２を配置している。第３実施形態による制御システム９００Ｅは、カメラ１１０と、オブジェクト１２０と、コンピュータ１４０と、位置センサ９１４と、位置センサ用ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｃｏｎｔｒｏｌｌｅｒ）８２０とを備える。位置センサ９１４はコンベア９１０の動きを検知して、コンベアの現在の位置Ｃｐを検出する。位置センサ用ＰＬＣ８２０は、コンベアの起点からの現在のコンベアの位置Ｃｐを、物理的な長さ（ｍ）に変換し、コンピュータ１４０に出力する。そして、コンピュータ１４０は、一工程のコンベア上の長さをＬｐ（ｍ）としたときの、一工程内での現在のコンベアの位置を算出する。一工程内での現在のコンベアの位置は、コンベアの起点からの現在の位置Ｃｐ（ｍ）を、Ｌｐ（ｍ）で割った剰余である。コンピュータ１４０は、カメラ座標系Σｃでのコンベアの進行方向を示す三次元の単位ベクトルＶ（Ｕｘ，Ｕｙ，Ｕｚ）を保持している。コンピュータ１４０は、一工程内での現在のコンベアの位置と、カメラ座標系Σｃでのコンベア進行方向を示す三次元の単位ベクトルＶとを用いて、メモリ１４４に格納されている目標座標６１２を、カメラ座標系Σｃにおける目標座標に補正する。補正された目標座標はＱ＝（（Ｃｐ  ｍｏｄ  Ｌｐ）×Ｖ＋Ｐで求められる。ここで、Ｐはカメラ座標系Σｃにおけるメモリ１４４に格納された目標位置６０２の目標座標６１２である。そして、この補正された目標座標を、カメラ座標系Σｃにおける検出点１２４の座標との比較判定に用いる。但しｍｏｄは剰余である。単位ベクトルＶは、例えば、一時的にコンベア９１０に基準マーカ８０２を付設し、設置されたカメラで基準マーカ８０２を一定時間間隔で撮影することで取得される。
【００７５】
＜第４実施形態＞
図１０は、本開示の第４実施形態による制御システム１０００の構成を概略的に示す図である。第４実施形態においては、固定されたカメラ１１０が撮像した画像を用いて、複数の異なる種類のオブジェクト１２０（作業者の手、工具）がそれぞれ正しい位置、あるいは姿勢であるかを判定し、正しい位置および姿勢である場合に制御対象物４６０（ツール４６４）を用いて作業者の作業を支援する。
【００７６】
カメラ１１０は、オブジェクトマーカ１２２ａが付された作業者の手１２０ａと、オブジェクトマーカ１２２ｂが付されたツール４６４ｃ（オブジェクト１２０ｂ）と、目標位置６０２ｔａ及び６０２ｔｂがそれぞれ設定されたボルトバケツ１００２と、目標位置６０２ｔｃ１からｔｃ４が設定された部品９１２とを撮像する。オブジェクトマーカ１２２ａとオブジェクトマーカ１２２ｂは異なる識別番号を持ち、オブジェクトマーカ１２２ａに検出点１２４ａが、オブジェクトマーカ１２２ｂに検出点１２４ｂがそれぞれ対応している。オブジェクトマーカ１２２ａの識別番号により作業者が識別され、またオブジェクトマーカ１２２ｂの識別番号によりツール４６４が識別される。
【００７７】
制御システム１０００は、一例として、特定の作業者が、特定のボルトバケツ１００２からボルト（不図示）を採取し（シーケンス処理１）、特定の作業者が当該ボルトを部品９１２に設定された特定の位置に配置し（シーケンス処理２）、さらに、作業者は特定の工具を用いて、配置されたボルトを締める（シーケンス処理３）よう支援する。以下、シーケンス処理１から３の内容について詳細に説明する。
【００７８】
１．シーケンス処理１：ボルト採取
シーケンス処理１においては、オブジェクト１２０は作業者の手であり、制御対象物４６０は、表示灯４６４ａ及び４６４ｂである。シーケンス処理１では、コンピュータ１４０は、ツール（表示灯）４６４ａをアクティブに（点灯）させ、手袋に付されたオブジェクトマーカ１２２ａにより識別された特定の作業者に、目標位置６０２ｔａが設定された特定のボルトバケツ１００２からボルトを採取するよう促す。そして、手袋に設定された検出点１２４ａが、ボルトバケツ１００２の目標位置６０２ｔａに近づくと、コンピュータ１４０はツール４６４ａを非アクティブに（表示灯を消灯）させ、次の処理に進む。なお、図１０においてツール４６４ａ及び４６４ｂ（表示灯）は、コンピュータ１４０に接続されているが、ツール４６４ａ及び４６４ｂはツールコントローラ４６２に接続されていてもよい。この場合、ツール４６４ａ及び４６４ｂは、ツールコントローラ４６２からの制御信号に応答して点灯あるいは消灯する。
【００７９】
２．シーケンス処理２：ボルト配置
シーケンス処理２においては、オブジェクト１２０は作業者の手であり、制御対象物４６０は、作業者の手である。シーケンス処理２では、手袋に設定された検出点１２４ａが、部品９１２の目標位置６０２ｔｃ１に近づくと、コンピュータ１４０は、採取したボルトが正しい目標位置６０２ｔｃ１に配置されたと判断し、次の処理へ進む。
【００８０】
３．シーケンス処理３：ボルト締め付け
シーケンス処理３においては、オブジェクト１２０、制御対象物４６０は、共に工具４７０である。シーケンス処理３では、作業者により把持される特定の工具４７０の検出点１２４ｂが目標位置６０２ｔｃ１に、目標姿勢で近づくことを検出すると、コンピュータ１４０は、ツールコントローラ４６２へ制御信号を出力する。ツールコントローラ４６２は制御信号に基づいて、締付プログラム１を設定する。締め付けプログラム１で設定された締め付けトルクに等しいトルクでボルトが締められると、工具４７０は、ツールコントローラ４６２に対し、締め付け完了信号を送出する。ツールコントローラ４６２は、締め付け完了信号を検知すると、コンピュータ１４０へ応答信号を出力し、次のステップへ進む。
【００８１】
４．シーケンス処理４：ボルト採取（２本目）
コンピュータ１４０は、ツール４６４ａに代えてツール４６４ｂに対して、また、目標位置６０２ｔａに代えて目標位置６０２ｔｂに対して、上記シーケンス処理１と同様の処理を行う。
【００８２】
５．シーケンス処理５：ボルト配置（２本目）
コンピュータ１４０は、目標位置６０２ｔｃ１に代えて目標位置６０２ｔｃ２に対して、上記シーケンス処理２と同様の処理を行う。
【００８３】
６．シーケンス処理６：ボルト締め付け（２本目）
コンピュータ１４０は、目標位置６０２ｔｃ１に代えて目標位置６０２ｔｃ２に対して、上記シーケンス処理３と同様の処理を行う。
【００８４】
以上、制御システム１０００は、作業者が特定のツール４６４を用いて、あるいは特定のオブジェクト１２０を用いて、シーケンス処理に規定された各種処理を行うよう作業者の作業を支援することができる。
【００８５】
なお、上記シーケンス処理１から６の内容は例示であってこれに限定されず、オブジェクトの種類や、制御対象物の種類等に応じて様々に変更が可能である。一例として、オブジェクト１２０が部品（図３Ｂ）、制御対象物４６０が表示灯の場合、制御システム１０００は、作業者が、オブジェクトマーカ１２２により識別された特定の部品１２０を、予め設定された表示灯が点灯された特定の部品位置に配置するよう支援することができる。また、他の例として、オブジェクト１２０がラベル（図３Ｃ）、制御対象物４６０が表示灯の場合、制御システム１０００は、オブジェクトマーカ１２２により識別された特定のラベルを予め設定された表示灯が点灯された特定の位置に貼り付けるよう作業者を支援することができる。
【００８６】
＜第５実施形態＞
図１１は、本開示の第５実施形態による制御システム１１００の構成を概略的に示す図である。制御システム１１００は、第１カメラ１１０ａと接続された第１コンピュータ１４０ａと、第２カメラ１１０ｂと接続された第２コンピュータ１４０ｂと、第１及び第２のコンピュータ１４０ｂに接続されたツールコントローラと、第１オブジェクト１２０ａ（ヘルメット９３２）と、第２オブジェクト１２０ｂ（工具４７０）とを備える。第１コンピュータ１４０ａと第２コンピュータ１４０ｂとはこれらのコンピュータからの出力の論理積を出力する演算装置９５０を介して、ツールコントローラ４６２と接続される。第５実施形態においては、制御システム１１００は、グローバル座標系Σｇにおいて位置が固定された第１カメラ１１０ａと、位置が固定されていない第２カメラ１１０ｂとを複合利用する。
【００８７】
第５実施形態による制御システム１１００は、図９Ｃに示す実施形態と異なり、部品９１２や作業台９４０には基準マーカは付設されていない。第５実施形態においては、部品９１２や作業台９４０上に基準マーカを付設する代わりに、部品９１２と固定位置関係にある第１カメラ１１０ａを用いて、２段階の座標変換を行う。
【００８８】
第１カメラ１１０ａは部品９１２との位置関係が固定されており、ヘルメット９３２に付された第１オブジェクトマーカ１２２ａと、三次元空間内の目標位置６０２ｔａとを撮像する。第１コンピュータ１４０ａは第１オブジェクトマーカ１２２ａの位置と姿勢から、オブジェクトとしてのヘルメット９３２に設定された第１検出点１２４ａの座標を算出する。そして、第１検出点１２４ａを目標位置６０２ｔａの所定の位置範囲と比較し、ヘルメット９３２の姿勢を、所定の姿勢範囲と比較し一致判定する。
【００８９】
第２カメラ１１０ｂは、作業者９３０の被るヘルメット９３２に固定されており、オブジェクトマーカ１２２ｂと目標位置６０２が設定された部品９１２とを撮像する。第２コンピュータ１４０ｂはオブジェクトとしての工具４７０に付された第２オブジェクトマーカ１２２ｂの位置と姿勢から、工具４７０上に設定された第２検出点１２４ｂの座標を算出する。そして、第２コンピュータ１４０ｂは、第２検出点１２４ｂを目標位置６０２ｔｂの位置範囲と比較し、工具４７０の姿勢を、目標姿勢の位置範囲と比較し、一致判定する。演算装置８５０は、第１コンピュータ１４０ａ及び第２コンピュータ１４０ｂからの一致信号の論理積を、ツールコントローラ４６２に出力する。これら一連の処理により、第１カメラ１１０ａおよび第１コンピュータ１４０ａによる一致判定結果と、第２カメラ１１０ｂおよび第２コンピュータ１４０ｂによる一致判定結果と、を結合させ、固定された第１カメラ１１０ａによって直接的に部品９１２を撮影すること無しに、部品９１２に固定された座標系における目標位置６０２ｔｂの位置と姿勢を検出し、一致判定することが可能となる。第５実施形態では第１コンピュータ１４０ａによる処理と、第２コンピュータ１４０ｂによる処理とを行い、さらに各コンピュータによる処理結果の論理積をとることで、結果として２段階の座標変換を行っていることとなる。本実施形態によると、第１カメラ１１０ａは第１オブジェクトマーカ１２２ａを撮影できるものの、直接部品９１２を撮影することができず、第２カメラ１１０ｂが部品９１２を撮影することができる。本実施形態ではこのような複雑に入り組んだ作業環境においても目標位置が検出可能である。
【００９０】
第５実施形態によると、固定された第１カメラ１１０ａが、非固定の第２カメラ１１０ｂと共に動くオブジェクトマーカ１２２ａを撮像し、第１オブジェクトマーカ１２２ａの位置、姿勢を算出することができる。一例として、自動車などの組立を行う場合、作業者９３０は車外に居ながら、手と工具を車内に差し入れて作業を行うことがある。このような場合、車外にある作業者９３０の頭部は固定されたカメラ１１０ａにより撮影可能であるが、車内に差し入れられた作業者の手や工具１２０は固定された第１カメラ１１０ａにより撮影できないことがある。作業者９３０の手や工具は、作業者のヘルメット９３２に付設された非固定の第２カメラ１１０ｂにより撮影可能である。第５実施形態は、固定カメラにより撮影できない範囲を非固定のカメラにより撮影できる場合に有用である。
【００９１】
以上、本開示の実施の形態について説明してきたが、上記した発明の実施の形態は、本開示の理解を容易にするためのものであり、本開示を限定するものではない。本開示は、その趣旨を逸脱することなく、変更、改良され得るとともに、本開示にはその均等物が含まれることはもちろんである。また、上述した課題の少なくとも一部を解決できる範囲、または、効果の少なくとも一部を奏する範囲において、実施形態および変形例の任意の組み合わせが可能であり、特許請求の範囲および明細書に記載された各構成要素の任意の組み合わせ、または、省略が可能である。
【符号の説明】
【００９２】
１００…オフセット設定システム
１１０…カメラ
１１２…オブジェクトマーカ
１２０…オブジェクト
１２２…オブジェクトマーカ
１２４…検出点
１２６…オブジェクトマーカ座標
１３０…設定具
１３２…設定用マーカ
１３４…基準位置
１４０…コンピュータ
１４２…プロセッサ
１４４…メモリ
１５０…マーカ座標設定部
１５２…位置検出部
１５４…座標変換部
１６２…検出点データ
２０２…マーカ識別番号
２０４…オフセット座標
４００、９００Ａ、９００Ｂ、９００Ｃ、１０００、１１００…制御システム
４１０…位置姿勢検出部
４２０…位置姿勢比較部
４３０…シーケンス制御部
４４０…制御信号生成部
４５２…目標座標姿勢データ
４５４…シーケンステーブル
４６０…制御対象物
４６２…ツールコントローラ
４６４…ツール
４７０…工具
６０２…目標位置
６０４…位置範囲
６１２…目標座標
６１４…目標姿勢
６１６…マーカ識別番号
８０２…基準マーカ
８０４…基準マーカ座標
９１０…コンベア
９１２…部品
９１４…位置センサ
９２０…位置検出装置
【図１Ａ】
2019168304.tif 000003
【図１Ｂ】
2019168304.tif 000004
【図１Ｃ】
2019168304.tif 000005
【図２】
2019168304.tif 000006
【図３Ａ】
2019168304.tif 000007
【図３Ｂ】
2019168304.tif 000008
【図３Ｃ】
2019168304.tif 000009
【図３Ｄ】
2019168304.tif 000010
【図４Ａ】
2019168304.tif 000011
【図４Ｂ】
2019168304.tif 000012
【図５】
2019168304.tif 000013
【図６Ａ】
2019168304.tif 000014
【図６Ｂ】
2019168304.tif 000015
【図７】
2019168304.tif 000016
【図８】
2019168304.tif 000017
【図９Ａ】
2019168304.tif 000018
【図９Ｂ】
2019168304.tif 000019
【図９Ｃ】
2019168304.tif 000020
【図９Ｄ】
2019168304.tif 000021
【図１０】
2019168304.tif 000022
【図１１】
2019168304.tif 000023
【図１２】
2019168304.tif 000024
【手続補正書】
【提出日】令和1年6月14日(2019.6.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
オブジェクトマーカが付されたオブジェクトの検出点が設定具の基準位置に重なったときの、所定の座標系における前記オブジェクトマーカの位置と姿勢とを算出するステップと、
前記基準位置と、前記オブジェクトマーカの位置と姿勢とに基づいて、マーカ座標系における前記オブジェクトマーカを基準とする前記オブジェクトの検出点の座標を設定するステップと、
前記オブジェクトに付された前記オブジェクトマーカを撮像した画像から、前記所定の座標系における前記オブジェクトマーカの位置と姿勢を取得するステップと、
前記マーカ座標系における前記オブジェクトマーカからの前記オブジェクトの検出点の座標と、前記オブジェクトマーカの位置と姿勢とに基づいて、前記所定の座標系における前記検出点の位置と前記オブジェクトの姿勢とを算出するステップと、
前記検出点の位置が、前記所定の座標系における所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の座標系における所定の姿勢範囲内にあるかを判定するステップと、
を備える方法。
【請求項２】
前記オブジェクトマーカの位置と姿勢とを算出するステップにおいて、前記オブジェクトマーカは前記オブジェクトの検出点との位置関係が不明である、請求項１に記載の方法。
【請求項３】
前記検出点の位置が、前記所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の姿勢範囲内にある場合に、制御対象物に対する制御信号を出力するステップをさらに備え、前記制御信号は、前記制御対象物の種類に依存しない信号である、請求項１に記載の方法。
【請求項４】
前記制御信号に応じて、前記制御対象物からの応答信号を取得するステップをさらに備え、前記応答信号は、前記制御対象物の種類に依存しない信号である、請求項３に記載の方法。
【請求項５】
前記オブジェクトマーカを撮像するカメラのカメラ座標系に対し、前記所定の位置範囲及び前記所定の姿勢範囲が変化しない場合に、前記所定の座標系は、カメラ座標系である、請求項１に記載の方法。
【請求項６】
前記オブジェクトマーカを撮像するカメラのカメラ座標系に対し、前記所定の位置範囲及び前記所定の姿勢範囲が変化する場合に、前記所定の座標系は、基準マーカ座標系である、請求項１に記載の方法。
【請求項７】
前記オブジェクトマーカを撮像するカメラのカメラ座標系対し、前記所定の位置範囲及び前記所定の姿勢範囲が変化する場合に、前記所定の位置範囲の目標座標及び、前記所定の姿勢範囲の目標姿勢を、カメラ座標系における目標座標、及び目標姿勢にそれぞれ補正する、請求項１に記載の方法。
【請求項８】
オブジェクトマーカが付されたオブジェクトの検出点が設定具の基準位置に重なったときの、所定の座標系における前記オブジェクトマーカの位置と姿勢とを算出する位置検出部と、
前記基準位置と、前記オブジェクトマーカの位置と姿勢とに基づいて、マーカ座標系における前記オブジェクトマーカを基準とする前記オブジェクトの検出点の座標を設定する座標変換部と、
前記オブジェクトに付された前記オブジェクトマーカを撮像した画像から、前記所定の座標系における前記オブジェクトマーカの位置と姿勢を検出し、前記マーカ座標系における前記オブジェクトマーカからの前記オブジェクトの検出点の座標と、前記オブジェクトマーカの位置と姿勢とに基づいて、前記所定の座標系における前記検出点の位置と前記オブジェクトの姿勢を検出する位置姿勢検出部と、
前記検出点の位置が、前記所定の座標系における所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の座標系における所定の目標姿勢にあるかを判定する位置姿勢比較部と、
を備える装置。
【請求項９】
前記位置検出部が、前記オブジェクトマーカの位置と姿勢とを算出するとき、前記オブジェクトマーカと前記オブジェクトの検出点との位置関係が不明である、請求項８に記載の装置。
【請求項１０】
前記検出点の位置が、前記所定の位置範囲内にあり、かつ前記オブジェクトの姿勢が、前記所定の姿勢範囲内にある場合に、制御対象物に対する制御信号を出力する制御信号生成部をさらに備え、前記制御信号は、前記制御対象物の種類に依存しない信号である、請求項８に記載の装置。
【請求項１１】
前記制御信号生成部は、さらに、前記制御信号に応じて、前記制御対象物からの応答信号を取得し、前記応答信号は、前記制御対象物の種類に依存しない信号である、請求項１０に記載の装置。
【請求項１２】
オブジェクトマーカが付されたオブジェクトの検出点が設定具の基準位置に重なったときの、所定の座標系における前記オブジェクトマーカの位置と姿勢とを算出するステップと、
前記基準位置と、前記オブジェクトマーカの位置と姿勢とに基づいて、マーカ座標系における前記オブジェクトマーカを基準とする前記オブジェクトの検出点の座標を設定するステップと、
を備える方法。
【請求項１３】
前記オブジェクトマーカの位置と姿勢とを算出するステップにおいて、前記オブジェクトマーカは前記オブジェクトの検出点との位置関係が不明である、請求項１２に記載の方法。
【請求項１４】
前記基準位置は、前記設定具に付された設定用マーカとは離れた位置に配置される、請求項１２に記載の方法。