(57)【要約】【課題】検出精度を高めることができるエンコーダーユニットおよび角度検出方法を提供すること、また、このエンコーダーユニットを備えるロボットを提供すること。【解決手段】第１撮像素子が撮像した画像に対してテンプレートマッチングを行って第１マークの周方向に沿った第１移動量を求め、第２撮像素子が撮像した画像に対してテンプレートマッチングを行って第２マークの周方向に沿った第２移動量を求め、前記第１移動量および前記第２移動量を用いて回動角度を算出して出力する。【選択図】図１５
2019143979.tif 000002
【特許請求の範囲】
【請求項１】
回動軸まわりに回転して駆動力を出力する出力軸を有する減速機と、
前記出力軸の回動角度を検出するエンコーダーと、を有し、
前記エンコーダーは、
前記出力軸の回動に伴って前記回動軸まわりに回動する回動部と、
前記回動軸まわりの周方向に沿って前記回動部に配置され、第１マークおよび第２マークを含むスケール部と、
前記第１マークを撮像する第１撮像素子と、
前記回動軸に対して前記第１撮像素子と対称となる位置に配置され、前記第２マークを撮像する第２撮像素子と、
前記第１撮像素子および前記第２撮像素子が撮像した撮像結果に基づいて、前記回動部の回動角度を求める処理を行う処理部と、
前記処理部で読み取り可能な指示を記憶する記憶部と、を有し、
前記処理部は、前記記憶部から前記指示を読み取って、
前記第１撮像素子が撮像した画像に対してテンプレートマッチングを行って前記第１マークの前記周方向に沿った第１移動量を求め、
前記第２撮像素子が撮像した画像に対してテンプレートマッチングを行って前記第２マークの前記周方向に沿った第２移動量を求め、
前記第１移動量および前記第２移動量を用いて回動角度を算出して出力することを実行することを特徴とするエンコーダーユニット。
【請求項２】
前記処理部は、前記第１移動量を求める際に、角度の情報に対応付けられた基準画像を用いてテンプレートマッチングを行う請求項１に記載のエンコーダーユニット。
【請求項３】
前記回動軸に沿った方向から見たとき、前記回動軸と前記第１撮像素子とを結ぶ直線と、前記回動軸と前記第２撮像素子とを結ぶ直線とがなす角度が１７４度以上１８６度以下の範囲内にある請求項１または２に記載のエンコーダーユニット。
【請求項４】
前記第１撮像素子は、互いに直交するＸ軸およびＹ軸に沿った方向に行列状に並んだ複数の画素を有し、
前記記憶部は、前記第１撮像素子と前記第２撮像素子とが並ぶ方向と、前記Ｘ軸に沿った方向との角度ずれに関する情報である角度ずれ情報を記憶し、
前記処理部は、前記角度ずれ情報を用いて前記回動角度を算出する請求項１ないし３のいずれか１項に記載のエンコーダーユニット。
【請求項５】
前記処理部は、前記角度ずれ情報として補正係数を用い、
前記スケール部の任意の位置を前記第１撮像素子の撮像画像内の第１位置から前記第１位置とは異なる第２位置に移動させたとき、前記Ｘ軸に沿った方向における前記第１位置と前記第２位置との間の距離をｈとし、前記Ｙ軸に沿った方向における前記第１位置と前記第２位置との間の距離をｖとし、前記補正係数をαとしたとき、α＝√（ｈ２＋ｖ２）／ｈの関係を満たす請求項４に記載のエンコーダーユニット。
【請求項６】
回動軸まわりに回転して駆動力を出力する出力軸を有する減速機の前記出力軸の回動に伴って前記回動軸まわりに回動する回動部と、前記回動軸まわりの周方向に沿って前記回動部に配置され、第１マークおよび第２マークを含むスケール部と、前記第１マークを撮像する第１撮像素子と、前記回動軸に対して前記第１撮像素子と対称となる位置に配置され、前記第２マークを撮像する第２撮像素子と、を有するエンコーダーを用いて、前記出力軸の回動角度を検出する角度検出方法であって、
前記第１撮像素子が撮像した画像に対してテンプレートマッチングを行って前記第１マークの前記周方向に沿った第１移動量を求めるステップと、
前記第２撮像素子が撮像した画像に対してテンプレートマッチングを行って前記第２マークの前記周方向に沿った第２移動量を求めるステップと、
前記第１移動量および前記第２移動量を用いて回動角度を算出して出力するステップと、を有することを特徴とする角度検出方法。
【請求項７】
前記第１移動量および前記第２移動量を求める前に、補正係数を求めて記憶部に記憶させるステップを有し、
前記回動角度を算出して出力するステップでは、前記補正係数を用いて前記回動角度を算出する請求項６に記載の角度検出方法。
【請求項８】
第１部材と、
前記第１部材に対して回動する第２部材と、
請求項１ないし５のいずれか１項に記載のエンコーダーユニットと、を備え、
前記出力軸が前記第２部材に接続されていることを特徴とするロボット。
【請求項９】
前記第２部材は、アームであり、
前記回動部は、前記アームである請求項８に記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンコーダーユニット、角度検出方法およびロボットに関するものである。
【背景技術】
【０００２】
従来、エンコーダーの一種として光学式のロータリーエンコーダーが知られている。例えば、特許文献１に記載のロータリーエンコーダーは、目盛盤と、目盛盤の周縁付近に設けられたコードパターンと、対称位置のコードパターンを読み取る一対のＣＣＤリニアセンサーと、を備える。ここで、一対のＣＣＤリニアセンサーで、コードパターンを読み、得られた読取角度の平均をとることによって、目盛盤の偏心による誤差を軽減するようにしている。さらに、目盛盤の偏心に関する偏心因子を予め記憶しておき、ユーザーが測角したとき、測角値をさらに偏心因子で補正して、目盛盤の回動軸に対する偏心による角度誤差を取り除くようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１７８３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロータリーエンコーダーは、波動減速機等の減速機の出力軸の回動角度を検出するのに用いられる場合がある。ここで、減速機の出力軸は、回転に伴って軸振れ（動的な偏心）が生じる。そのため、この場合、特許文献１に記載の方法のように、偏心による角度誤差を取り除くのに予め求めた偏心因子を用いると、前述した軸振れに起因して目盛盤の偏心による誤差を十分に軽減することができず、検出精度を高めることが難しいという課題がある。
【課題を解決するための手段】
【０００５】
本発明の適用例に係るエンコーダーユニットは、回動軸まわりに回転して駆動力を出力する出力軸を有する減速機と、
前記出力軸の回動角度を検出するエンコーダーと、を有し、
前記エンコーダーは、
前記出力軸の回動に伴って前記回動軸まわりに回動する回動部と、
前記回動軸まわりの周方向に沿って前記回動部に配置され、第１マークおよび第２マークを含むスケール部と、
前記第１マークを撮像する第１撮像素子と、
前記回動軸に対して前記第１撮像素子と対称となる位置に配置され、前記第２マークを撮像する第２撮像素子と、
前記第１撮像素子および前記第２撮像素子が撮像した撮像結果に基づいて、前記回動部の回動角度を求める処理を行う処理部と、
前記処理部で読み取り可能な指示を記憶する記憶部と、を有し、
前記処理部は、前記記憶部から前記指示を読み取って、
前記第１撮像素子が撮像した画像に対してテンプレートマッチングを行って前記第１マークの前記周方向に沿った第１移動量を求め、
前記第２撮像素子が撮像した画像に対してテンプレートマッチングを行って前記第２マークの前記周方向に沿った第２移動量を求め、
前記第１移動量および前記第２移動量を用いて回動角度を算出して出力することを実行する。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施形態に係るロボットを示す側面図である。
【図２】本発明の第１実施形態に係るエンコーダーユニットを示す断面図である。
【図３】エンコーダーユニットのエンコーダーを示すブロック図である。
【図４】エンコーダーユニットのエンコーダーが備えるスケール部を説明するための図である。
【図５】エンコーダーが備える第１撮像素子または第２撮像素子が撮像した画像を説明するための図である。
【図６】撮像画像内に設定される探索領域でのテンプレートマッチングを説明するための図である。
【図７】テンプレートマッチングの際に類似度が最大となる状態から１画素分ずれた状態を示す図である。
【図８】テンプレートマッチングの際に類似度が最大となる状態を示す図である。
【図９】テンプレートマッチングの際に類似度が最大となる状態から図７に示す状態とは反対側に１画素分ずれた状態を示す図である。
【図１０】スケール部が有する複数のマークを説明するための図である。
【図１１】複数のマークのうちの１つのマークをテンプレートマッチングにより検出する状態を示す図である。
【図１２】テンプレートマッチング（先のテンプレートマッチング）に後続する後のテンプレートマッチングに用いる基準画像の予測を説明するための図である。
【図１３】最初のテンプレートマッチングに用いる基準画像の決定方法を示すフローチャートである。
【図１４】後のテンプレートマッチングに用いる基準画像の決定方法（予測方法）を示すフローチャートである。
【図１５】回動軸の振れと第１移動量および第２移動量との関係を示す模式図である。
【図１６】有効視野領域とスケール部の移動軌跡との関係を示す模式図である。
【図１７】第１撮像素子を用いた角度検出における回動角度と誤差との関係を示すグラフである。
【図１８】第２撮像素子を用いた角度検出における回動角度と誤差との関係を示すグラフである。
【図１９】第１撮像素子および第２撮像素子を用いた角度検出における回動角度と検出誤差との関係を示すグラフである。
【図２０】第１撮像素子および第２撮像素子の位置ずれと検出誤差との関係を示すグラフである。
【図２１】本発明の第２実施形態における有効視野領域とスケール部の移動軌跡との関係を示す模式図である。
【図２２】本発明の第２実施形態における補正係数を説明するための図である。
【図２３】本発明の第２実施形態における補正係数を求める流れを示す図である。
【図２４】本発明の第３実施形態に係るロボットを示す斜視図である。
【発明を実施するための形態】
【０００７】
以下、本発明のエンコーダーユニット、角度検出方法およびロボットを添付図面に示す好適な実施形態に基づいて詳細に説明する。
【０００８】
１．ロボット
図１は、本発明の実施形態に係るロボットを示す側面図である。なお、以下では、説明の便宜上、図１中の上側を「上」、下側を「下」と言う。また、図１中の基台側を「基端」、その反対側（エンドエフェクター側）を「先端側」と言う。また、図１の上下方向を「鉛直方向」とし、左右方向を「水平方向」とする。
【０００９】
図１に示すロボット１００は、いわゆる水平多関節ロボット（スカラロボット）であり、例えば、精密機器等を製造する製造工程等で用いられ、精密機器や部品等の把持や搬送等を行うことができる。
【００１０】
図１に示すように、ロボット１００は、基台１１０と、第１アーム１２０と、第２アーム１３０と、作業ヘッド１４０と、エンドエフェクター１５０と、配線引き回し部１６０と、を有している。以下、ロボット１００の各部を順次簡単に説明する。
【００１１】
基台１１０は、例えば、図示しない床面にボルト等によって固定されている。基台１１０の上端部には、第１アーム１２０が連結されている。第１アーム１２０は、基台１１０に対して鉛直方向に沿う第１軸Ｊ１まわりに回動可能となっている。
【００１２】
基台１１０内には、第１アーム１２０を回動させる駆動力を発生させる第１モーターであるモーター１１１と、モーター１１１の駆動力を減速する第１減速機である減速機１１２とが設置されている。減速機１１２の入力軸は、モーター１１１の回動軸に連結され、減速機１１２の出力軸は、第１アーム１２０に連結されている。そのため、モーター１１１が駆動し、その駆動力が減速機１１２を介して第１アーム１２０に伝達されると、第１アーム１２０が基台１１０に対して第１軸Ｊ１まわりに水平面内で回動する。
【００１３】
また、基台１１０および第１アーム１２０には、減速機１１２の出力軸の回動角度を検出することで、基台１１０に対する第１アーム１２０の回動状態を検出する第１エンコーダーであるエンコーダー１が設けられている。ここで、エンコーダー１および減速機１１２は、エンコーダーユニット１０を構成している。
【００１４】
第１アーム１２０の先端部には、第２アーム１３０が連結している。第２アーム１３０は、第１アーム１２０に対して鉛直方向に沿う第２軸Ｊ２まわりに回動可能となっている。図示しないが、第２アーム１３０内には、第２アーム１３０を回動させる駆動力を発生させる第２モーターと、第２モーターの駆動力を減速する第２減速機とが設置されている。そして、第２モーターの駆動力が第２減速機を介して第１アーム１２０に伝達されることにより、第２アーム１３０が第１アーム１２０に対して第２軸Ｊ２まわりに水平面内で回動する。また、図示しないが、第２モーターには、第１アーム１２０に対する第２アーム１３０の回動状態を検出する第２エンコーダーが設けられている。
【００１５】
第２アーム１３０の先端部には、作業ヘッド１４０が配置されている。作業ヘッド１４０は、第２アーム１３０の先端部に同軸的に配置されたスプラインナットおよびボールネジナット（ともに図示せず）に挿通されたスプラインシャフト１４１を有している。スプラインシャフト１４１は、第２アーム１３０に対して、その軸まわりに回転可能であり、かつ、上下方向に移動（昇降）可能となっている。
【００１６】
第２アーム１３０内には、図示しないが、回転モーターおよび昇降モーターが配置されている。回転モーターの駆動力は、図示しない駆動力伝達機構によってスプラインナットに伝達され、スプラインナットが正逆回転すると、スプラインシャフト１４１が鉛直方向に沿う軸Ｊ３まわりに正逆回転する。また、図示しないが、回転モーターには、第２アーム１３０に対するスプラインシャフト１４１の回動状態を検出する第３エンコーダーが設けられている。
【００１７】
一方、昇降モーターの駆動力は、図示しない駆動力伝達機構によってボールネジナットに伝達され、ボールネジナットが正逆回転すると、スプラインシャフト１４１が上下に移動する。昇降モーターには、第２アーム１３０に対するスプラインシャフト１４１の移動量を検出する第４エンコーダーが設けられている。
【００１８】
スプラインシャフト１４１の先端部（下端部）には、エンドエフェクター１５０が連結されている。エンドエフェクター１５０としては、特に限定されず、例えば、被搬送物を把持するもの、被加工物を加工するもの等が挙げられる。
【００１９】
第２アーム１３０内に配置された各電子部品（例えば、第２モーター、回転モーター、昇降モーター、第１〜第４エンコーダー等）に接続される複数の配線は、第２アーム１３０と基台１１０とを連結する管状の配線引き回し部１６０内を通って基台１１０内まで引き回されている。さらに、かかる複数の配線は、基台１１０内でまとめられることによって、モーター１１１およびエンコーダー１に接続される配線とともに、基台１１０の外部に設置され、ロボット１００を統括制御する図示しない制御装置まで引き回される。
【００２０】
以上、ロボット１００の構成について簡単に説明した。このロボット１００は、前述したように、第１部材である基台１１０と、基台１１０に対して回動する第２部材である第１アーム１２０と、エンコーダーユニット１０と、を備える。ここで、エンコーダーユニット１０は、回動軸まわりに回転して駆動力を出力する出力軸を有する減速機１１２と、減速機１１２の出力軸の回動角度を検出するエンコーダー１と、を有する。そして、基台１１０内には減速機１１２が設置されていて、減速機１１２の出力軸が第１アーム１２０に接続されている。このようなロボット１００によれば、後述するように第１アーム１２０の回動角度を高精度に検出し、その検出結果に基づいて、第１アーム１２０の駆動制御を高精度に行うことができる。
【００２１】
ここで、後述するエンコーダー１の回動部は、第１アーム１２０（第２部材）である。これにより、部品点数を低減することができる。
【００２２】
２．エンコーダーユニット
＜第１実施形態＞
以下、エンコーダーユニット１０について詳述する。なお、以下では、エンコーダーユニット１０をロボット１００に組み込む場合を例に説明する。
【００２３】
図２は、本発明の第１実施形態に係るエンコーダーユニットを示す断面図である。図３は、エンコーダーユニットのエンコーダーを示すブロック図である。図４は、エンコーダーユニットのエンコーダーが備えるスケール部を説明するための図である。なお、各図では、説明の便宜上、各部の縮尺が適宜変更されており、図示の構成は実際の縮尺と必ずしも一致するわけではなく、また、各部の図示を適宜簡略化している。
【００２４】
図２に示すように、前述したロボット１００の基台１１０は、モーター１１１と減速機１１２を支持する支持部材１１４を有し、モーター１１１および減速機１１２を収納している。このような基台１１０には、第１アーム１２０が第１軸Ｊ１まわりに回動可能に設けられている。
【００２５】
第１アーム１２０は、水平方向に沿って延びているアーム本体部１２１と、アーム本体部１２１から下方に向けて突出している軸部１２２と、を有し、これらが互いに接続されている。そして、軸部１２２は、軸受１１５を介して基台１１０に第１軸Ｊ１まわりに回動可能に支持されているとともに、減速機１１２の出力軸に接続されている。また、減速機１１２の入力軸は、モーター１１１の回動軸１１１１に接続されている。減速機１１２としては、特に限定されないが、例えば、波動減速機、遊星歯車減速機、サイクロ減速機、ＲＶ減速機等が挙げられる。
【００２６】
ここで、基台１１０は、基台１１０の自重や基台１１０が支える他の質量による荷重が加わる構造体である。同様に、第１アーム１２０も、第１アーム１２０の自重や第１アーム１２０が支える他の質量による荷重が加わる構造体である。このような基台１１０および第１アーム１２０の構成材料としては、それぞれ、特に限定されないが、例えば、金属材料が挙げられる。
【００２７】
本実施形態では、基台１１０および第１アーム１２０の外表面は、ロボット１００の外表面の一部を構成している。なお、基台１１０および第１アーム１２０の外表面上には、カバー、衝撃吸収材等の外装部材が装着されていてもよい。
【００２８】
このような相対的に回動する基台１１０および第１アーム１２０には、これらの回動状態を検出するエンコーダー１が設けられている。
【００２９】
エンコーダー１は、第１アーム１２０に設けられているスケール部２と、基台１１０に設けられていてスケール部２を検出する第１検出部３ａおよび第２検出部３ｂと、第１検出部３ａおよび第２検出部３ｂに電気的に接続された回路部４と、を有する。ここで、回路部４は、処理部５と、記憶部６と、を有する。
【００３０】
図２に示すように、スケール部２は、アーム本体部１２１の基台１１０と対向する部分、すなわち、アーム本体部１２１の下面であって軸部１２２を囲む部分に設けられている。このスケール部２は、図４に示すように、第１軸Ｊ１とは異なる位置で第１軸Ｊ１まわりに沿って配置されている不規則なパターンを有している。ここで、スケール部２は、第１アーム１２０の表面に設けられている。これにより、スケール部２を設けるための部材を基台１１０および第１アーム１２０とは別に設ける必要がない。そのため、部品点数を少なくすることができる。なお、スケール部２は、第１アーム１２０の表面に直に設けられている場合に限定されず、例えば、第１アーム１２０の表面に貼着されたシート状の部材に設けられていてもよいし、第１アーム１２０とともに回動するように設けられた板状の部材に設けられていてもよい。すなわち、スケール部２が設けられる部材は、第１アーム１２０とともに基台１１０に対して第１軸Ｊ１まわりに回動する部材であればよい。よって、エンコーダー１においてスケール部２が設けられる部材は回動部と言うことができる。また、前述の第２部材は第１アーム１２０であるので、回動部は第１アーム１２０である。
【００３１】
図４に示すように、スケール部２（不規則なパターン）は、複数のドット２０（図柄）が不規則に配置されて構成されている。ここで、「不規則なパターン」とは、スケール部２を第１軸Ｊ１まわりに必要な角度範囲（本実施形態では、基台１１０に対する第１アーム１２０の回動可能な角度範囲）にわたって回動させたとき、後述する撮像画像Ｇ内の所定領域（例えば、後述する有効視野領域ＲＵまたは探索領域ＲＳ）に、後述する基準画像ＴＡに対応する大きさで、同じパターン（処理部５が識別不可能なパターン）が２回以上出現しないことを言う。そのため、スケール部２の互いに位置の異なる複数の部分のそれぞれを、スケール部２の周方向における位置識別のためのマーク２１として用いることができる。このように、スケール部２は、スケール部２の周方向での互いに異なる位置を識別可能な互いに異なる複数のマーク２１を有すると言える。なお、図４では、複数のマーク２１が第１軸Ｊ１を中心とする円周に沿って並んでいる場合を図示している。また、図４に示すマーク２１の位置、大きさ、数等は、一例であり、これに限定されるものではない。また、図２とは逆に、スケール部２を基台１１０側に配置し、検出部３ａ、３ｂをアーム１２０側に配置してもよい。
【００３２】
このようなスケール部２（パターン）は、互いに異なるユニークなパターン図柄をそれぞれ設計して印刷描画することが好ましい。本実施例では白地にドット状の黒点を配置してユニークなパターンを形成した。
【００３３】
また、スケール部２のパターンは、第１軸Ｊ１まわりに連続的に配置されているので、後述するように処理部５が基準画像（テンプレート）を生成する際に、回動方向（周方向）における位置の制約が少なく、自由度が高くなる。また、撮像画像ＧのＹ軸方向において有効視野領域ＲＵの外にもスケール部２のパターンが配置されているので、第１アーム１２０に対するスケール部２（パターン）の位置合わせを高精度に行わなくても、基準画像（テンプレート）を生成することができ、当該回動状態の推定が可能となる。
【００３４】
なお、スケール部２は、周方向に沿って濃淡が漸次変化していてもよい。すなわち、複数のドット２０の密度（配置密度）は、第１軸Ｊ１（回動軸）まわりに沿って変化していてもよい。また、スケール部２のドット２０（図柄）の色は、特に限定されず、いかなる色であってもよいが、スケール部２のドット２０以外の部分の色と異なることが好ましく、黒色または暗色であることがより好ましい。これにより、後述する第１撮像素子３１ａおよび第２撮像素子３１ｂの撮像画像のコントラストを大きくすることができ、その結果、検出精度を向上させることができる。
【００３５】
また、スケール部２のドット２０（図柄）の形状は、図示では、円形であるが、これに限定されず、例えば、楕円形、四角形、異形状等であってもよい。また、スケール部２のパターンは、前述した複数のドット２０で構成されたパターンのようなドットパターン（図柄の繰り返し）に限定されず、例えば、直線状のラインで構成されたパターン、曲線状のラインで構成されたパターン、ドット、直線状のラインおよび曲線状のラインのうちの少なくとも２つを組み合わせて構成されたパターン、またはこれらの反転パターン等であってもよい。
【００３６】
さらに、スケール部２のパターンは、後述する第１撮像素子３１ａおよび第２撮像素子３１ｂによって撮像可能なパターンであれば、前述した印刷装置を用いて染料、顔料等のインクで形成されたパターンに限定されず、例えば、凹凸形状によるパターン、自然物に形成されているパターン等であってもよい。凹凸形状によるパターンとしては、例えば、エッチング、切削、ショットブラスト、サンドブラスト、ヤスリがけ等による加工面のザラツキまたはムラによる凹凸、紙、布（不織布、織布）等の表面の繊維による凹凸、塗膜表面の凹凸等が挙げられる。また、自然物に形成されているパターンとしては、例えば、木目等が挙げられる。また、例えば、黒色のビーズを混入した透明塗料により塗膜を形成すると、黒色の複数のビーズが不規則に配置された塗膜を得ることができ、このような塗膜の複数のビーズを不規則なパターンとしてスケール部２に用いてもよい。
【００３７】
また、スケール部２のマーク２１は、前述した不規則なパターンを用いたものに限定されず、例えば、数字を用いてもよいし、ローマ字、アラビア文字、漢字等の文字を用いてもよいし、文字以外の記号、符号、しるし、標章、図案、１次元バーコード、ＱＲコード（登録商標）等を用いてもよい。
【００３８】
図２に示す第１検出部３ａ（第１カメラ）は、基台１１０内に設けられている第１撮像素子３１ａと、基台１１０が有する開口に設けられている第１光学系３２ａと、を有し、第１撮像素子３１ａが第１光学系３２ａを介してスケール部２の周方向での一部（図４中右側の撮像領域ＲＩ１）を撮像する。なお、必要に応じて、第１撮像素子３１ａの撮像領域ＲＩ１を照明する光源を設けてもよい。
【００３９】
第１撮像素子３１ａとしては、例えば、ＣＣＤ（Charge Coupled Devices）、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）等が挙げられる。このような第１撮像素子３１ａは、撮影された画像を画素ごとの電気信号に変換して出力する。第１撮像素子３１ａは、２次元撮像素子（エリアイメージセンサ）、あるいは１次元撮像素子（ラインイメージセンサ）のどちらでも適用可能である。１次元撮像素子は、画素の並びがアームの旋回円に接する方向に配置することが望ましい。２次元撮像素子を用いた場合は、情報量の多い２次元画像を取得でき、後述のテンプレートマッチングによるマーク２１の検出精度を高めやすい。その結果、第１アーム１２０の回動状態を高精度に検出することができる。１次元撮像素子を用いた場合は、画像取得周期いわゆるフレームレートが高いため、検出頻度を高めることが可能になり、高速動作時に有利である。
【００４０】
第１光学系３２ａは、スケール部２と第１撮像素子３１ａとの間に配置されている結像光学系である。この第１光学系３２ａは、少なくとも物体側（スケール部２側）がテレセントリックであることが好ましい。これにより、スケール部２と第１撮像素子３１ａとの間の距離が変動しても、第１撮像素子３１ａへの結像倍率の変化を低減することができ、その結果、エンコーダー１の検出精度の低下を低減することができる。特に、第１光学系３２ａが両側テレセントリックである場合、第１光学系３２ａが有するレンズと第１撮像素子３１ａとの間の距離が変動しても、第１撮像素子３１ａへの結像倍率の変化を低減することができる。そのため、第１光学系３２ａの組み立てが容易になるという利点がある。
【００４１】
ここで、図４に示すように、第１撮像素子３１ａの撮像領域ＲＩ１は、第１アーム１２０の下面に、スケール部２の周方向での一部に重なるように設定されている。これにより、第１撮像素子３１ａは、撮像領域ＲＩ１内にあるマーク２１を撮像することができる。したがって、撮像領域ＲＩ１に位置するマーク２１を読み取ることにより、第１アーム１２０の回動状態を知ることができる。
【００４２】
一方、第２検出部３ｂ（第２カメラ）は、第１軸Ｊ１に対して第１検出部３ａと対称となる位置に配置されている。第２検出部３ｂは、前述した第１検出部３ａと同様に構成されている。すなわち、第２検出部３ｂは、基台１１０内に設けられている第２撮像素子３１ｂと、基台１１０が有する開口に設けられている第２光学系３２ｂと、を有し、第２撮像素子３１ｂが第２光学系３２ｂを介してスケール部２の周方向での一部（図４中左側の撮像領域ＲＩ２）を撮像する。
【００４３】
ここで、第２撮像素子３１ｂは、第１撮像素子３１ａと同じ解像度でスケール部２を撮像することが好ましい。これにより、後述する第１移動量および第２移動量を用いて回動角度を算出する際に、その計算が簡単となる。このような観点から、第２撮像素子３１ｂは、第１撮像素子３１ａと同じサイズおよび画素数であることが好ましく、また、第２光学系３２ｂは、第１光学系３２ａと同じ倍率であることが好ましい。
【００４４】
図２および図３に示す回路部４は、ＣＰＵ（Central Processing Unit）等の処理部５（プロセッサー）と、ＲＯＭ（Read only memory）、ＲＡＭ（Random Access Memory）等の記憶部６（メモリー）と、を有する。ここで、記憶部６には、処理部５で読み取り可能な指示が記憶されており、処理部５は、記憶部６から指示を適宜読み取って実行することで、各種機能を実現する。このような回路部４は、例えば、ＡＳＩＣ（application specific integrated circuit）またはＦＰＧＡ（field-programmable gate array）等を用いて構成することができる。このようにＡＳＩＣまたはＦＰＧＡを用いて回路部４をハードウエア化することで、回路部４の高処理速度化、小型化および低コスト化を図ることできる。なお、回路部４の少なくとも一部は、前述したロボット１００の制御装置に組み込まれていてもよい。
【００４５】
処理部５は、第１検出部３ａおよび第２検出部３ｂの検出結果に基づいて、基台１１０および第１アーム１２０の相対的な回動状態を推定する。この回動状態としては、例えば、回動角度、回動速度、回動方向等が挙げられる。
【００４６】
特に、処理部５は、第１撮像素子３１ａおよび第２撮像素子３１ｂの撮像画像（撮像画像データ）に対して基準画像（基準画像データ）を用いてテンプレートマッチングすることでマーク２１を画像認識し、その認識結果を用いて、基台１１０および第１アーム１２０の相対的な回動状態を推定する。このように、第１撮像素子３１ａおよび第２撮像素子３１ｂの双方の撮像画像を用いて回動状態を推定することで、減速機１１２の出力軸の回転に伴う軸振れ（偏心）に起因する検出誤差を低減することができ、第１撮像素子３１ａまたは第２撮像素子３１ｂのいずれかの撮像画像を用いて回動状態を推定する場合に比べて検出精度を高めることができる。なお、この点については、後に詳述する。
【００４７】
ここで、処理部５は、第１撮像素子３１ａおよび第２撮像素子３１ｂの撮像画像内でのマーク２１の画像の位置に基づいて、基台１１０および第１アーム１２０の相対的な回動角度（以下、単に「第１アーム１２０の回動角度」ともいう）をより細かく推定することが可能に構成されている。また、処理部５は、マーク２１が検出される時間間隔に基づいて回動速度を求めたり、検出されるマーク２１の種類の順序に基づいて回動方向を推定したりすることも可能に構成されている。そして、処理部５は、前述した推定結果に応じた信号、すなわち、基台１１０および第１アーム１２０の回動状態に応じた信号を出力する。この信号は、例えば、図示しない制御装置に入力され、ロボット１００の動作の制御に用いられる。
【００４８】
また、処理部５は、第１撮像素子３１ａおよび第２撮像素子３１ｂの撮像画像の一部を切り取って基準画像（テンプレート）を生成する機能をも有する。この基準画像の生成は、基台１１０および第１アーム１２０の相対的な回動状態を推定するのに先立って、あるいは、必要に応じて適時、基台１１０および第１アーム１２０の相対的な回動角度ごとに行われる。そして、生成した基準画像は、基台１１０および第１アーム１２０の相対的な回動角度ごとに対応して記憶部６に記憶される。そして、処理部５は、記憶部６に記憶されている基準画像（テンプレート）を用いて、テンプレートマッチングを行う。なお、テンプレートマッチングおよびそれを用いた回動状態の推定については、後に詳述する。
【００４９】
記憶部６には、処理部５で読み取り可能な指示（プログラム）の他、処理部５で読み取り可能な各種情報（データ）が記憶されている。具体的には、記憶部６には、基台１１０および第１アーム１２０の相対的な回動状態ごとに、前述した基準画像（基準画像データ）が、それに対応する撮像画像内での座標（後述する基準画素の座標）に関する情報、および、第１アーム１２０の回動角度に関する情報（角度情報）とともに記憶されている。このような記憶部６は、不揮発性メモリー、揮発性メモリーのいずれであってもよいが、電力を供給しなくても情報を記憶した状態を保持することができ、省電力化を図ることができるという観点から、不揮発性メモリーであることが好ましい。
【００５０】
（テンプレートマッチングおよびそれを用いた回動状態の推定）
以下、処理部５におけるテンプレートマッチングおよびそれを用いた回動状態の推定について詳述する。以下では、まず、第１撮像素子３１ａまたは第２撮像素子３１ｂのいずれかの撮像画像を用いて、回動状態として回動角度を推定する場合を代表的に説明する。なお、第１撮像素子３１ａおよび第２撮像素子３１ｂの双方の撮像画像を用いて、回動状態として回動角度を推定する場合については、後に詳述する。
【００５１】
−基準画像の取得−
エンコーダー１では、テンプレートマッチングを用いて基台１１０に対する第１アーム１２０の回動状態を推定するのに先立って、当該テンプレートマッチングに用いる基準画像を取得する。この基準画像の取得は、最初のテンプレートマッチングの前に１回行うだけでよいが、その後必要に応じて適時行ってもよい。その場合、テンプレートマッチングに用いる基準画像を、新たに取得した基準画像に更新することができる。
【００５２】
基準画像を取得する際には、第１アーム１２０を基台１１０に対して第１軸Ｊ１まわりに適宜回動させ、第１撮像素子３１ａおよび第２撮像素子３１ｂで複数のマーク２１を各マーク２１ごとに撮像する。そして、得られた各撮像画像をトリミングすることにより、各マーク２１ごとの基準画像を生成する。生成された基準画像は、その画素座標情報および角度情報とともにこれらに対応付けられて記憶部６に記憶される。以下、図５に基づいて、この点を詳述する。
【００５３】
図５は、エンコーダーが備える第１撮像素子または第２撮像素子が撮像した画像（撮像画像、すなわち撮像結果）を説明するための図である。
【００５４】
第１アーム１２０が基台１１０に対して第１軸Ｊ１まわりに回動すると、例えば、図５に示すように、第１撮像素子３１ａまたは第２撮像素子３１ｂの撮像画像Ｇ内に映っているマーク２１の画像であるマーク画像２１Ａは、撮像画像Ｇ内を円弧Ｃ１、Ｃ２に沿って移動する。ここで、円弧Ｃ１は、基台１１０に対する第１アーム１２０の回動に伴ってマーク画像２１Ａの図５中下端が描く軌跡であり、円弧Ｃ２は、基台１１０に対する第１アーム１２０の回動に伴ってマーク画像２１Ａの図５中上端が描く軌跡である。また、図５は、図４に示す撮像領域ＲＩ内に３つのマーク２１が含まれている場合を図示しており、これに対応して、図５に示す撮像画像Ｇには、マーク画像２１Ａの他に、マーク画像２１Ａに対して周方向での一方側に位置するマーク画像２１Ｂと、他方側に位置するマーク画像２１Ｘとが含まれている。なお、撮像領域ＲＩは、前述した撮像領域ＲＩ１、ＲＩ２を有する。
【００５５】
ここで、第１撮像素子３１ａまたは第２撮像素子３１ｂが撮像することにより得られる撮像画像Ｇは、撮像領域ＲＩに対応した形状であって、Ｘ軸方向に沿って延びている２つの辺とＹ軸方向に沿って延びている２つの辺とを有する矩形をなしている。また、撮像画像ＧのＸ軸方向に沿って延びている２つの辺は、円弧Ｃ１、Ｃ２にできるだけ沿うように配置されている。また、撮像画像Ｇは、Ｘ軸方向およびＹ軸方向に行列状に並んでいる複数の画素を有する。ここで、画素の位置は、Ｘ軸方向での画素の位置を示す「Ｘ」、および、Ｙ軸方向での画素の位置を示す「Ｙ」で表される画素座標系（Ｘ，Ｙ）で表される。また、撮像画像Ｇの範囲内でレンズの収差の少ない領域から所望の領域を切り出して有効視野領域ＲＵとし、有効視野領域ＲＵの図中左上端の画素が画像座標系（Ｘ，Ｙ）の原点画素（０，０）に設定されている。
【００５６】
例えば、マーク画像２１Ａに対応する基準画像ＴＡを生成する場合、第１アーム１２０を基台１１０に対して適宜回動させ、マーク画像２１Ａを有効視野領域ＲＵ内の所定位置（図示ではＸ軸方向での中央に設定された中心線ＬＹ上）に位置させる。ここで、マーク画像２１Ａが当該所定位置に位置するときの、基台１１０に対する第１アーム１２０の回動角度θＡ０は、測定等により事前に取得されている。
【００５７】
このような撮像画像Ｇを、マーク画像２１Ａを包含する必要最小限の範囲となるような矩形の画素範囲でトリミングすることにより、基準画像ＴＡ（マーク２１の検出用のテンプレート）を得る。得られた基準画像ＴＡは、記憶部６に記憶される。このとき、基準画像ＴＡは、前述した回動角度θＡ０に関する角度情報、および、基準画像ＴＡの画素範囲における基準画素（図示では左上端の画素）の画素座標である基準画素座標（ＸＡ０，ＹＡ０）に関する画素情報とともに、これらに対応付けられて記憶される。すなわち、基準画像ＴＡ、角度情報および画素座標情報がテンプレートマッチングに用いる１つのテンプレートセットとなる。
【００５８】
−テンプレートマッチングを用いた回動状態の推定−
次に、図６ないし図９に基づいて、前述したように生成した基準画像ＴＡを用いたテンプレートマッチングについて説明する。
【００５９】
図６は、撮像画像内に設定される探索領域でのテンプレートマッチングを説明するための図である。図７は、テンプレートマッチングの際に類似度が最大となる状態から１画素分ずれた状態を示す図である。図８は、テンプレートマッチングの際に類似度が最大となる状態を示す図である。図９は、テンプレートマッチングの際に類似度が最大となる状態から図７に示す状態とは反対側に１画素分ずれた状態を示す図である。類似度を求める手法としては、ＳＡＤ、ＳＳＤ、ＺＮＣＣなどがある。ＳＡＤ、ＳＳＤではその値が最小、ＺＮＣＣではその値が最大のとき類似度最大となる。
【００６０】
図６に示すように、有効視野領域ＲＵ内にマーク画像２１Ａが存在しているとき、基準画像ＴＡを用いて有効視野領域ＲＵの画像に対してテンプレートマッチングを行う。本実施形態では、有効視野領域ＲＵ全域を探索領域ＲＳとし、探索領域ＲＳに基準画像ＴＡを重ね、探索領域ＲＳに対して基準画像ＴＡを一画素ずつずらしながら、探索領域ＲＳと基準画像ＴＡとの重なり部分の類似度を算出する。ここで、基準画像ＴＡは、その基準画素の画素座標を開始座標ＰＳ（原点画素Ｐ０）から終了画素ＰＥまで１画素ずつ移動し、探索領域ＲＳ全域の画素について、探索領域ＲＳと基準画像ＴＡとの重なり部分の類似度が基準画像ＴＡの基準画素の画素座標ごとに算出される。そして、算出された類似度は、撮像画像データと基準画像データとの類似度データとして、基準画像ＴＡの基準画素の画素座標に対応付けされて記憶部６に記憶される。
【００６１】
次に、記憶部６に記憶されている画素座標ごとの複数の類似度のうち、最大値となる類似度を選択し、その選択された類似度となる基準画像ＴＡの画素座標（ＸＡ１，ＹＡ１）をマーク画像２１Ａの画素座標として決定する。このようにして、撮像画像Ｇ内でのマーク画像２１Ａの位置を検出することができる。
【００６２】
ここで、マーク画像２１Ａの画素座標を求める際、サブピクセル推定法を用いることが好ましい。類似度が最大となる近傍では、図７ないし図９に示すように、マーク画像２１Ａに対して基準画像ＴＡが重なる。図８に示す状態は、図７、９に示す状態（図８に示す状態から１画素ずれた状態）よりも類似度が大きく、類似度が最も大きくなる。しかし、図８に示す状態のように、マーク画像２１Ａに対して基準画像ＴＡが完全に一致せずにずれて重なる場合、図８に示す状態をマーク画像２１Ａの画素位置と判断すると、そのずれが誤差となる。このずれは、最大で画素サイズＢＸとなる。すなわち、サブピクセル推定法を用いない場合、画素サイズＢＸが最小の分解能（精度）となる。これに対し、サブピクセル推定法では、テンプレートマッチングにより画素サイズＢＸ間隔で得られた類似度のマップから類似度最大の座標とそれに隣接する８つの座標の類似度の値を放物曲面でフィッティングすることにより、これらの類似度間（画素ピッチ間）を補完（近似）することができる。そのため、より高精度にマーク画像２１Ａの画素座標を求めることができる。
【００６３】
このように、処理部５は、撮像画像Ｇの一部の領域である有効視野領域ＲＵに探索領域ＲＳを設定し、探索領域ＲＳ内でテンプレートマッチングを行う。これにより、テンプレートマッチングに用いる探索領域ＲＳの画素数を少なくし、テンプレートマッチングに関する演算時間を短縮することができる。そのため、第１アーム１２０の第１軸Ｊ１まわりの角速度が速い場合においても、高精度な検出を行うことができる。また、第１撮像素子３１ａまたは第２撮像素子３１ｂとマーク２１との間に配置されている第１光学系３２ａまたは第２光学系３２ｂの収差によって、撮像画像Ｇの外周部分の歪やボケが大きくなっても、そのような歪やボケの少ない領域を探索領域ＲＳとして用いることで、検出精度の低下を低減することができる。なお、撮像画像Ｇ全域を用いて基準画像ＴＡの生成およびテンプレートマッチングを行ってもよく、この場合、必要に応じて、収差を考慮した補正を行うことが好ましい。
【００６４】
本実施形態では、撮像領域ＲＩと第１軸Ｊ１との間の距離が十分に長いため、撮像画像Ｇ内において、円弧Ｃ１、Ｃ２は、それぞれ、ほぼ直線に近似することができる。したがって、撮像画像Ｇ内において、マーク画像２１Ａの移動方向は、Ｘ軸方向に一致していると考えることができる。
【００６５】
そうすると、図６に示すマーク画像２１Ａは、基準画素座標（ＸＡ０，ＹＡ０）にある基準画像ＴＡに対してＸ軸方向に画素数（ＸＡ１−ＸＡ０）分ずれた位置にあることとなる。したがって、撮像領域ＲＩの中心と第１軸Ｊ１との間の距離をＲとし、撮像素子３１の１画素に対応する撮像領域ＲＩ上の領域のＸ軸方向での幅（撮像素子３１の１画素あたりの視野サイズ）をＢＸとしたとき、基台１１０に対する第１アーム１２０の回動角度θは、下記式（１）を用いて求めることができる。
【００６６】
【数１】
2019143979.tif 000003
【００６７】
この式（１）において、（ＸＡ１−ＸＡ０）×ＢＸは、基準画像ＴＡの基準画素座標（ＸＡ０，ＹＡ０）に対応する実位置と、前述した類似度が最大値となる基準画像ＴＡの画素座標（ＸＡ１，ＹＡ１）に対応する実位置との間の距離に相当する。また、２πＲは、基台１１０に対して第１アーム１２０が３６０°回転したときのマーク２１の軌跡の長さ（円周の長さ）に相当する。なお、θＡ０は、前述したように、マーク画像２１Ａが所定位置に位置するときの、基台１１０に対する第１アーム１２０の回動角度である。また、回動角度θは、第１アーム１２０が基台１１０に対して基準状態（０°）から回動した角度である。
【００６８】
以上のようなテンプレートマッチングおよびそれを用いた回動角度θの算出を他のマーク２１についても同様に行う。ここで、任意の回動角度θにおいて、有効視野領域ＲＵ内に少なくとも１つのマーク２１が欠けなく映り、かつ、テンプレートマッチング可能なように各マーク２１に対応した基準画像が登録されている。これにより、テンプレートマッチングが不可能な角度範囲が生じることを防止することができる。
【００６９】
前述した図５では、任意の回動角度θにおいて、有効視野領域ＲＵ内に１つのマーク２１が欠けなく映るように、マーク２１および有効視野領域ＲＵが構成されているが、任意の回動角度θにおいて、有効視野領域ＲＵ内に複数のマーク２１が欠けなく映るように、マーク２１および有効視野領域ＲＵが構成されていることが好ましい。この場合、任意の回動角度θにおいて、有効視野領域ＲＵ内に映っている複数のマーク２１に対してテンプレートマッチングが可能となるように、互いに隣り合う２つ以上のマーク２１に対応する２つ以上の基準画像を用いてテンプレートマッチングを行う。このとき、当該２つ以上の基準画像が互いに部分的に重なっていてもよい。
【００７０】
すなわち、撮像素子３１は、テンプレートマッチングの対象となる複数のマーク２１のうちの少なくとも２つのマーク２１全体を撮像することが好ましい。これにより、撮像素子３１が撮像した２つのマーク２１のうちの一方のマーク２１が汚れ等により正確に読み取ることができなくなっても、他方のマーク２１を読み取って検出を行うことができる。そのため、高精度な検出精度を担保しやすいという利点がある。このように、処理部５は、探索領域ＲＳに対して複数の基準画像を同時に用いてテンプレートマッチングを行うことが好ましい。これにより、検出精度を高めることができる。
【００７１】
−基準画像の決定−
図１０は、スケール部が有する複数のマークを説明するための図である。図１１は、複数のマークのうちの１つのマークをテンプレートマッチングにより検出する状態を示す図である。図１２は、テンプレートマッチング（先のテンプレートマッチング）に後続する後のテンプレートマッチングに用いる基準画像の予測を説明するための図である。なお、図１０では、スケール部２のパターンが図示されているが、図１１および図１２では、説明の便宜上、スケール部２のパターンの図示を省略している。
【００７２】
図１０に示すように、スケール部２には、その回動方向に沿って並ぶ複数のマーク２１が設定される。図１０では、ｉ−２番目からｉ＋２番目までの５つのマーク２１ｉ−２〜２１ｉ＋２が撮像画像Ｇに映っている状態を示している。なお、ｉは、各マーク２１にその並び順で付される番号であり、スケール部２に設定したマーク２１の個数をｎ個（ｎは、３以上の整数）としたとき、１以上ｎ以下の整数である。
【００７３】
図１１に示すように、撮像画像Ｇには、前述した探索領域ＲＳが設定されている。この探索領域ＲＳは、常に１つのマーク２１が欠けなく映るように設定されている。図示では、マーク２１ｉが探索領域ＲＳに映っており、処理部５は、マーク２１ｉに対応する基準画像（以下、「基準画像ｉ」とも言う）を用いて、前述したようにテンプレートマッチングを行って、マーク２１ｉの位置を検出する。そして、処理部５は、その検出した位置に基づいて、前述したように回動状態を推定する。
【００７４】
ここで、スケール部２が回動すると、その回動に伴って、マーク２１ｉは、探索領域ＲＳ内をスケール部２の回動方向（図１１中左右方向）に移動する。このとき、処理部５は、基準画像ｉをマーク２１ｉの移動に追従させながら、テンプレートマッチング（以下、「先のテンプレートマッチング」とも言う）を行って、マーク２１ｉの位置を逐次検出する。
【００７５】
このようなマーク２１ｉの位置の検出は、マーク２１ｉが探索領域ＲＳ内に映っているときに可能である。スケール部２の回動に伴って、マーク２１ｉが探索領域ＲＳ内に映らなくなると、探索領域ＲＳ内には、マーク２１ｉに隣接するマーク２１ｉ−１または２１ｉ＋１が映ることとなる。したがって、マーク２１ｉが探索領域ＲＳ内に映らなくなると、処理部５は、マーク２１ｉ−１に対応する基準画像（以下、「基準画像ｉ−１」とも言う）またはマーク２１ｉ＋１に対応する基準画像（以下、「基準画像ｉ＋１」とも言う）を用いて、テンプレートマッチング（以下、「後のテンプレートマッチング」とも言う）を行って、マーク２１ｉ−１または２１ｉ＋１の位置を検出する。
【００７６】
ここで、処理部５は、先のテンプレートマッチングの結果（マーク２１ｉの検出位置）に基づいて、後のテンプレートマッチングに用いる基準画像を予測する。より具体的に説明すると、探索領域ＲＳに対してマーク２１ｉの移動方向での一方側（図１１中右側）に第１領域Ｒ１（第１検出領域）が隣接して設定され、他方側（図１１中左側）に第２領域Ｒ２（第２検出領域）が隣接して設定されている。そして、図１２に示すようにマーク２１ｉが第２領域Ｒ２に到達した場合、言い換えると、マーク２１ｉの図中左側端が探索領域ＲＳから外れた場合、処理部５は、後のテンプレートマッチングに用いる基準画像がマーク２１ｉ＋１に対応する基準画像であると予測する。一方、図示しないがマーク２１ｉが第１領域Ｒ１に到達した場合、言い換えると、マーク２１ｉの図中右側端が探索領域ＲＳから外れた場合、処理部５は、後のテンプレートマッチングに用いる基準画像がマーク２１ｉ−１に対応する基準画像であると予測する。
【００７７】
このように後のテンプレートマッチングに用いる基準画像を予測することで、後のテンプレートマッチングにおいて、マーク２１ｉ＋１または２１ｉ−１の位置の検出を早期に行うことができる。そのため、マーク２１の位置の検出を行わない空白状態が生じることを低減することができ、その結果、検出精度を向上させることができる。
【００７８】
これに対し、前述したような後のテンプレートマッチングに用いる基準画像の予測を行わない場合、マーク２１ｉが探索領域ＲＳ内に映らなくなったとき、ｎ個のマーク２１に対応する基準画像を順次総当たりで用いてテンプレートマッチングを行い、最も類似度の高い基準画像を選ぶことが必要となる。そのため、処理部５におけるテンプレートマッチングに要する演算量が多くなってしまい、その結果、マーク２１の位置の検出を行わない空白状態の時間が長くなり、検出精度を低下させる可能性がある。
【００７９】
なお、図１１および図１２では、第１領域Ｒ１および第２領域Ｒ２がそれぞれ探索領域ＲＳに対して重なっていないが、先のマーク２１が第１領域Ｒ１または第２領域に到達したときに次のマーク２１が探索領域ＲＳ内に欠けなく映るようになっていればよく、第１領域Ｒ１および第２領域Ｒ２の少なくとも一部がそれぞれ探索領域ＲＳに重なって設定されていてもよい。
【００８０】
以下、図１３および図１４に基づいて、処理部５における基準画像の決定の流れについて説明する。
【００８１】
図１３は、最初のテンプレートマッチングに用いる基準画像の決定方法を示すフローチャートである。図１４は、後のテンプレートマッチングに用いる基準画像の決定方法（予測方法）を示すフローチャートである。
【００８２】
最初のテンプレートマッチングにおいては、まず、図１３に示すように、ｉとして１が設定される（ステップＳ３１）。そして、基準画像ｉ（最初はｉ＝１）を用いた探索領域ＲＳ内での探索が行われ、最大類似度Ｃｉが番号ｉと対応して記憶部６に記憶される（ステップＳ３２）。その後、番号ｉがＮに等しいか否かを判断され（ステップＳ３３）、等しくない場合（ステップＳ３３のＮＯ）、ｉ＋１がｉとして設定され（ステップＳ３４）、前述したステップＳ３２に移行する。これにより、基準画像ｉ（ｉ＝１）から基準画像ｉ（ｉ＝Ｎ）までの最大類似度Ｃｉ（Ｃ１〜ＣＮ）が番号ｉ（１〜Ｎ）と対応して記憶部６に記憶される。
【００８３】
番号ｉがＮに等しい場合（ステップＳ３３のＹＥＳ）、記憶部６に記憶された情報から、基準画像ｉ（ｉ＝１）から基準画像ｉ（ｉ＝Ｎ）までの最大類似度Ｃｉ（Ｃ１〜ＣＮ）のうちの最大となる最大類似度Ｃｉの番号ｉが求められ（ステップＳ３５）、基準画像ｉが決定される（ステップＳ３６）。
【００８４】
以上のように、処理部５は、先に行うテンプレートマッチングの前に、撮像画像Ｇに対してＮ個（３つ以上）の基準画像を順次用いて、撮像画像Ｇと各基準画像との最大類似度Ｃｉを求め、その最大類似度Ｃｉに基づいて、Ｎ個（３つ以上）の基準画像から少なくとも１つの基準画像を選択する。これにより、初期状態（テンプレートマッチングを開始するよりも前）において、テンプレートマッチングに用いる基準画像ｉを決定することができる。このような基準画像ｉの決定後は、探索領域ＲＳ内に映っているマーク２１ｉが判明している状態であるため、以下の流れで基準画像の予測を行う。
【００８５】
まず、図１４に示すように、基準画像ｉを用いたテンプレートマッチングによりマーク２１ｉの位置が検出される（ステップＳ１１）。その後、その検出した位置に基づいて、スケール部２の回動角度である角度Ａが演算される（ステップＳ１２）。そして、その演算結果である角度Ａが出力される（ステップＳ１３）。
【００８６】
次に、マーク２１ｉに追従した基準画像ｉが第２領域Ｒ２に到達したか否かが判断される（ステップＳ１４）。そして、基準画像ｉが第２領域Ｒ２に到達した場合（ステップＳ１４のＹＥＳ）、ｉ＋１がｉとして設定される（ステップＳ１５）。すなわち、この場合、後のテンプレートマッチングに用いる基準画像がマーク２１ｉ＋１に対応する基準画像ｉ＋１であると予測される。その後、終了指示があるか否かを判断し（ステップＳ１８）、終了指示がない場合（ステップＳ１８のＮＯ）、前述したステップＳ１１に移行し、基準画像ｉ＋１を用いた後のテンプレートマッチングが行われる。
【００８７】
一方、マーク２１ｉに追従した基準画像ｉが第２領域Ｒ２に到達していない場合（ステップＳ１４のＮＯ）、マーク２１ｉに追従した基準画像ｉが第１領域Ｒ１に到達したか否かが判断される（ステップＳ１６）。そして、基準画像ｉが第１領域Ｒ１に到達した場合（ステップＳ１６のＹＥＳ）、ｉ−１がｉとして設定される（ステップＳ１７）。すなわち、この場合、後のテンプレートマッチングに用いる基準画像がマーク２１ｉ−１に対応する基準画像ｉ−１であると予測される。その後、終了指示があるか否かを判断し（ステップＳ１８）、終了指示がない場合（ステップＳ１８のＮＯ）、前述したステップＳ１１に移行し、基準画像ｉ−１を用いた後のテンプレートマッチングが行われる。
【００８８】
また、マーク２１ｉに追従した基準画像ｉが第１領域Ｒ１にも第２領域Ｒ２にも到達していない場合（ステップＳ１４のＮＯ、ステップＳ１６のＮＯ）、基準画像ｉが第１領域Ｒ１または第２領域Ｒ２に到達するか、または、終了指示があるまで、前述したステップＳ１１〜Ｓ１３が繰り返される。
【００８９】
−軸振れに起因する検出誤差およびその低減−
図１５は、回動軸の振れと第１移動量および第２移動量との関係を示す模式図である。図１６は、有効視野領域とスケール部の移動軌跡との関係を示す模式図である。図１７は、第１撮像素子を用いた角度検出における回動角度と誤差との関係を示すグラフである。図１８は、第２撮像素子を用いた角度検出における回動角度と誤差との関係を示すグラフである。図１９は、第１撮像素子および第２撮像素子を用いた角度検出における回動角度と検出誤差との関係を示すグラフである。図２０は、第１撮像素子および第２撮像素子の位置ずれと検出誤差との関係を示すグラフである。
【００９０】
前述したように、処理部５は、第１撮像素子３１ａおよび第２撮像素子３１ｂの双方の撮像画像（撮像結果）を用いて回動状態を推定することで、減速機１１２の出力軸の回転に伴う軸振れに起因する検出誤差を低減する。以下、この原理について説明する。なお、以下では、説明の便宜上、第１検出部３ａおよび第２検出部３ｂは、それぞれ、マーク２１の軌跡である円弧Ｃと中心線ＬＹとの交点における円弧Ｃに対する接線がＸ軸に対して平行となるように設置されている。また、図１５および図１６に示すように、有効視野領域ＲＵ内において移動するマーク２１が向かう方向をＸ軸の正方向とし、有効視野領域ＲＵ内において移動するマーク２１が第１軸Ｊ１から遠ざかる方向をＹ軸の正方向とする。また、有効視野領域ＲＵは、レンズの収差または像歪が少ない領域であることが好ましい。
【００９１】
時刻０で第１撮像素子３１ａおよび第２撮像素子３１ｂの有効視野領域ＲＵの中央にマーク２１が映っている。その後、時刻ｔに、図１５に示すように、スケール部２が第１軸Ｊ１を中心として時計回りに回動角度θ回動するとともに第１軸Ｊ１が並進したとき、その並進ベクトルは、第１撮像素子３１ａの座標系において（Ｄｘ，Ｄｙ）で表されるとすると、第２撮像素子３１ｂの座標系において（−Ｄｘ，−Ｄｙ）で表される。つまり、第１撮像素子３１ａおよび第２撮像素子３１ｂの座標系で並進ベクトルが真逆で表される。
【００９２】
ここで、第１撮像素子３１ａおよび第２撮像素子３１ｂのそれぞれの有効視野領域ＲＵに対してテンプレートマッチングを行うと、基準画像の移動ベクトルＶａ、Ｖｂが得られる。移動ベクトルＶａ、Ｖｂは、第１軸Ｊ１の並進が起こらなかったとした場合の本来の移動ベクトルＶと、前述した並進ベクトルとの合成ベクトルである。したがって、これらの移動ベクトルＶａ、Ｖｂを足して２で割ると、並進ベクトルが相殺され、本来の移動ベクトル（Ｌｘ，Ｌｙ）を得ることができる。なお、移動ベクトルＶａは、第１撮像素子３１ａが撮像した第１マーク２１ａの第１移動量である。また、移動ベクトルＶｂは、第２撮像素子３１ｂが撮像した第２マーク２１ｂの第２移動量である。
【００９３】
また、円弧Ｃの半径が十分に大きいため、有効視野領域ＲＵ内の円弧ＣをＸ軸方向成分のみの直線に近似することができる。そのため、本来の移動ベクトルのＸ軸方向成分Ｌｘがわかれば、θ＝ａｒｃｓｉｎ（Ｌｘ／Ｒ）の関係式を用いて回動角度θを求めることができる。
【００９４】
この関係式において、Ｒは、円弧Ｃの半径である。時刻０において、第１軸Ｊ１と第１撮像素子３１ａとの間の距離をＲＡとし、第１軸Ｊ１と第２撮像素子３１ｂとの間の距離をＲＢとしたとき（ＲＡとＲＢは図示せず）、時刻０および時刻ｔともに、距離ＲＡ、ＲＢの平均は、（ＲＡ＋ＲＢ）／２＝Ｒであり、一定となる。したがって、半径Ｒを事前に正確に計測しておけば、上述の方法により、第１軸Ｊ１の並進の影響を受けることなく、回動角度θを求めることができる。また、回動角度θが微小であるとき、ｓｉｎθ≒θ［ラジアン］に近似することができ、θ＝Ｌｘ／Ｒの関係式により簡単な計算により回動角度θを求めることができる。なお、この関係式は、例えば、円弧ＣをＸ軸方向成分のみの直線に近似することにより生じる誤差を１ａｒｃｓｅｃ（１／３６００度）まで許容できる場合、θが０．０４１ｒａｄ（２．３度）以下の範囲内で適用可能である。
【００９５】
このように、第１撮像素子３１ａの撮像画像Ｇに対してテンプレートマッチングを行って求めた移動ベクトルＶａ（第１移動量）と、第２撮像素子３１ｂの撮像画像Ｇに対してテンプレートマッチングを行って求めた移動ベクトルＶｂ（第２移動量）とを用いて、回動角度θを算出することができる。
【００９６】
移動ベクトルＶａ（第１移動量）のみを用いて回動角度θを算出した場合、減速機１１２の出力軸の回動に伴う第１軸Ｊ１の動的な偏心（軸振れ）に起因して、例えば図１７に示すように経時的に変化する角度誤差（以下、「第１角度誤差」とも言う）が生じる。一方、移動ベクトルＶｂ（第２移動量）のみを用いて回動角度θを算出した場合、減速機１１２の出力軸の回動に伴う第１軸Ｊ１の動的な偏心に起因して、例えば図１８に示すように経時的に変化する角度誤差（以下、「第２角度誤差」とも言う）が生じる。
【００９７】
ここで、第１角度誤差および第２角度誤差は、一方がプラス側に大きくなるとき、他方がマイナス側に大きくなる。したがって、前述したように、移動ベクトルＶａ（第１移動量）と移動ベクトルＶｂ（第２移動量）とを用いて回動角度θを算出すると、第１角度誤差および第２角度誤差が互いに相殺または低減され、図１９に示すように、角度誤差が小さくなる。
【００９８】
このように角度誤差を小さくするには、図１５に示すように、第１軸Ｊ１（回動軸）に沿った方向から見たとき、第１軸Ｊ１と第１撮像素子３１ａとを結ぶ直線Ｌａと、第１軸Ｊ１と第２撮像素子３１ｂとを結ぶ直線Ｌｂとがなす角度βが、１８０度であることが最も好ましいが、１８０度に対して±６度の範囲内で角度ずれ（以下、単に「角度ずれ」とも言う）を許容することができる。以下、その理由を説明する。
【００９９】
一般的な減速機（例えば波動減速機）における出力軸の回動に伴う動的な回動軸の偏芯量は、±２０μｍ程度である。このような場合、動的な偏心による角度誤差は、図２０に示すように、角度ずれが大きくなるほど大きくなる。ここで、仮にトータルの許容精度誤差が１ａｒｃｓｅｃである場合、偏心による角度誤差を０．５ａｒｃｓｅｃ程度に抑えることが好ましい。そうすると、図２０からわかるように、角度ずれは、６度以内であることが好ましい。
【０１００】
このように、第１軸Ｊ１（回動軸）に沿った方向から見たとき、第１軸Ｊ１と第１撮像素子３１ａとを結ぶ直線Ｌａと、第１軸Ｊ１と第２撮像素子３１ｂとを結ぶ直線Ｌｂとがなす角度βが１７４度以上１８６度以下の範囲内にあることが好ましい。これにより、精度誤差を１ａｒｃｓｅｃ以下とすることができる。さらに好ましくは、角度ずれは４度以下であり、これにより、偏心による角度誤差を０．２ａｒｃｓｅｃ以下とすることができる。
【０１０１】
以上のように、エンコーダーユニット１０は、第１軸Ｊ１（回動軸）まわりに回転して駆動力を出力する出力軸を有する減速機１１２と、減速機１１２の出力軸の回動角度を検出するエンコーダー１と、を有する。エンコーダー１は、減速機１１２の出力軸の回動に伴って第１軸Ｊ１まわりに回動する回動部である第１アーム１２０と、第１軸Ｊ１まわりの周方向に沿って第１アーム１２０に配置され、第１マーク２１ａおよび第２マーク２１ｂを含むスケール部２と、第１マーク２１ａを撮像する第１撮像素子３１ａと、第１軸Ｊ１に対して第１撮像素子３１ａと対称となる位置に配置され、第２マーク２１ｂを撮像する第２撮像素子３１ｂと、第１撮像素子３１ａおよび第２撮像素子３１ｂの撮像結果に基づいて、第１アーム１２０の回動角度を求める処理を行う処理部５と、処理部５で読み取り可能な指示を記憶する記憶部６と、を有する。そして、処理部５は、記憶部６から指示を読み取って、第１撮像素子３１ａが撮像した画像に対してテンプレートマッチングを行って第１マーク２１ａの第１軸Ｊ１まわりの周方向に沿った移動ベクトルＶａ（第１移動量）を求め、第２撮像素子３１ｂが撮像した画像に対してテンプレートマッチングを行って第２マーク２１ｂの第１軸Ｊ１まわりの周方向に沿った移動ベクトルＶｂ（第２移動量）を求め、移動ベクトルＶａおよび移動ベクトルＶｂを用いて回動角度θを算出して出力することを実行する。
【０１０２】
このようなエンコーダーユニット１０によれば、減速機１１２の出力軸の軸振れに起因するスケール部２の偏心による誤差を低減することができ、その結果、検出精度を高めることができる。
【０１０３】
ここで、処理部５は、移動ベクトルＶａ（第１移動量）を求める際に、角度に関する情報に対応付けられた基準画像（第１マーク２１ａに対応する第１基準画像）を用いてテンプレートマッチングを行うことが好ましい。これにより、第１アーム１２０の回動角度を絶対角度として検出することができる。なお、処理部５は、移動ベクトルＶｂ（第２移動量）を求める際も同様に、角度に関する情報に対応付けられた基準画像（第２マーク２１ｂに対応する第２基準画像）を用いてテンプレートマッチングを行うことが好ましい。
【０１０４】
また、本実施形態の角度検出方法は、第１軸Ｊ１（回動軸）まわりに回転して駆動力を出力する出力軸を有する減速機１１２の出力軸の回動に伴って第１軸Ｊ１まわりに回動する回動部である第１アーム１２０と、第１軸Ｊ１まわりの周方向に沿って第１アーム１２０に配置され、第１マーク２１ａおよび第２マーク２１ｂを含むスケール部２と、第１マーク２１ａを撮像する第１撮像素子３１ａと、第１軸Ｊ１に対して第１撮像素子３１ａと対称となる位置に配置され、第２マーク２１ｂを撮像する第２撮像素子３１ｂと、を有するエンコーダー１を用いて、減速機１１２の出力軸の回動角度を検出する。ここで、かかる角度検出方法は、第１撮像素子３１ａが撮像した画像に対してテンプレートマッチングを行って第１マーク２１ａの周方向に沿った移動ベクトルＶａ（第１移動量）を求めるステップと、第２撮像素子３１ｂが撮像した画像に対してテンプレートマッチングを行って第２マーク２１ｂの周方向に沿った移動ベクトルＶｂ（第２移動量）を求めるステップと、移動ベクトルＶａおよび移動ベクトルＶｂを用いて第１アーム１２０の回動角度を算出して出力するステップと、を有する。
【０１０５】
このような角度検出方法によれば、減速機１１２の出力軸の軸振れに起因するスケール部２の偏心による誤差を低減することができ、その結果、検出精度を高めることができる。
【０１０６】
＜第２実施形態＞
図２１は、本発明の第２実施形態における有効視野領域とスケール部の移動軌跡との関係を示す模式図である。図２２は、本発明の第２実施形態における補正係数を説明するための図である。図２３は、本発明の第２実施形態における補正係数を求める流れを示す図である。
【０１０７】
以下、第２実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【０１０８】
本実施形態は、回動角度の算出の際に撮像領域の傾きに関する補正係数を用いること以外は、前述した第１実施形態と同様である。
【０１０９】
前述した第１実施形態では、マーク２１の軌跡である円弧Ｃと中心線ＬＹとの交点における円弧Ｃに対する接線がＸ軸に対して平行である場合について説明した。しかし、有効視野領域ＲＵの姿勢を高精度に調整することは、労力を要する。以下、マーク２１の軌跡である円弧Ｃと中心線ＬＹとの交点における円弧Ｃに対する接線がＸ軸に対して平行ではない場合の問題点とその補正方法について説明する。
【０１１０】
マーク２１の軌跡である円弧Ｃと中心線ＬＹとの交点における円弧Ｃの接線に対するＸ軸の傾斜角度をηとし、前述した第１実施形態で述べたのと同様に第１軸Ｊ１が並進成分（Ｄｘ，Ｄｙ）で並進したときに第１撮像素子３１ａまたは第２撮像素子３１ｂで観察される並進成分を（Ｄｘ’，Ｄｙ’）としたとき、これらは、以下の関係を満たす。
【０１１１】
【数２】
2019143979.tif 000004
【０１１２】
この式からわかるように、第１撮像素子３１ａと第２撮像素子３１ｂとで傾斜角度ηが異なる場合、前述した第１実施形態のように移動ベクトルＶａ、Ｖｂを足して２で割るだけでは、並進ベクトルをゼロにすることができない。そこで、事前に第１撮像素子３１ａおよび第２撮像素子３１ｂのそれぞれの傾斜角度ηに関する補正係数αを求め、回動角度θを算出する際に、この補正係数αを用いる。この補正係数αは、図２２に示すように、マーク２１の軌跡である円弧Ｃと中心線ＬＹとの交点における円弧Ｃに対する接線に平行な線分上の２つの座標を（ｘ１，ｙ１）、（ｘ２、ｙ２）とし、ｈ＝ｘ１−ｘ２、ｖ＝ｙ１−ｙ２としたとき、√（ｈ２＋ｖ２）／ｈである。以下、図２３に基づき、補正係数αを求めるフローの一例を説明する。
【０１１３】
まず、有効視野領域ＲＵの中央を原点とし、原点に位置する画素サイズの画像を仮のテンプレートとして生成、保存する（ステップＳ４１）。次に、スケール部２を所定の角度ａ（例えば１度）正転させ（ステップＳ４２）、その後、仮テンプレートを用いてテンプレマッチングを行って最大相関座標（ｘ１，ｙ１）を得る（ステップＳ４３）。次に、スケール部２を角度ａ逆転させて原点に戻し（ステップＳ４４）、さらに角度ａ逆転させ（ステップＳ４５）、その後、同様に仮テンプレートを用いてテンプレートマッチングを行って最大相関座標（ｘ２，ｙ２）を得る（ステップＳ４６）。そして、得られた２つの座標（ｘ１，ｙ１）、（ｘ２，ｙ２）から画素移動量ｈ、ｖを求め（ステップＳ４７）、画素移動量ｈ、ｖから補正係数αを求める（ステップＳ４８）。
【０１１４】
以上のように、補正係数αを求める。この補正係数αは、η傾いた座標系をη＝０の座標系に変換するための係数である。η傾いた座標系で観測された移動量Ｄｘ’に補正係数αを乗ずることで、η＝０の座標系での真の移動量Ｄｘを得ることができる。すなわち、Ｄｘ＝Ｄｘ’×αである。このような変換を第１撮像素子３１ａおよび第２撮像素子３１ｂのそれぞれについて行うことで、両素子の有効視野領域ＲＵについてη＝０とみなすことができる。そして、変換後は、前述した第１実施形態と同様に回動角度θを求めればよい。
【０１１５】
以上のように、第１撮像素子３１ａは、互いに直交するＸ軸およびＹ軸に沿った方向に行列状に並んだ複数の画素を有する。記憶部６は、第１撮像素子３１ａと第２撮像素子３１ｂとが並ぶ方向（Ｙ軸方向）と、Ｘ軸に沿った方向との角度ずれに関する情報である角度ずれ情報を記憶している。そして、処理部５は、その角度ずれ情報を用いて第１アーム１２０の回動角度を算出する。これにより、第１撮像素子３１ａの姿勢によらず、検出精度を高めることができる。なお、この点、第２撮像素子３１ｂについても同様である。
【０１１６】
角度ずれ情報としては、特に限定されないが、本実施形態では、処理部５は、角度ずれ情報として補正係数αを用いる。ここで、スケール部２の任意の位置を第１撮像素子３１ａの撮像画像Ｇ内の第１位置（ｘ１，ｙ１）から第１位置とは異なる第２位置（ｘ２，ｙ２）に移動させたとき、Ｘ軸に沿った方向における第１位置と第２位置との間の距離をｈとし、Ｙ軸に沿った方向における第１位置と第２位置との間の距離をｖとし、補正係数をαとしたとき、α＝√（ｈ２＋ｖ２）／ｈの関係を満たす。これにより、角度ずれ情報としての補正係数αを容易に取得することができる。
【０１１７】
また、本実施形態の角度検出方法では、前述した第１実施形態のステップに加えて、第１移動量および第２移動量を求める前に、補正係数αを求めて記憶部６に記憶させるステップを有し、回動角度θを算出して出力するステップでは、補正係数αを用いて回動角度θを算出する。これにより、第１撮像素子の姿勢によらず、検出精度を高めることができる。
【０１１８】
以上説明したような第２実施形態によっても、前述した第１実施形態と同様の効果を奏することができる。
【０１１９】
＜第３実施形態＞
図２４は、本発明の第３実施形態に係るロボットを示す斜視図である。なお、以下では、ロボット１００Ｃの基台２１０側を「基端側」、エンドエフェクター側を「先端側」という。
【０１２０】
以下、第３実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【０１２１】
図２４に示すロボット１００Ｃは、垂直多関節（６軸）ロボットである。このロボット１００Ｃは、基台２１０と、ロボットアーム２００と、を有し、ロボットアーム２００が、第１アーム２２０、第２アーム２３０、第３アーム２４０、第４アーム２５０、第５アーム２６０および第６アーム２７０と、を備え、これらのアームが基端側から先端側に向かってこの順に連結されている。第６アーム２７０の先端部には、図示しないが、例えば、精密機器、部品等を把持するハンド等のエンドエフェクターを着脱可能に取り付けられる。また、図示しないが、ロボット１００Ｃは、ロボット１００Ｃの各部の作動を制御するパーソナルコンピューター（ＰＣ）等のロボット制御装置（制御部）を備えている。
【０１２２】
ここで、基台２１０は、例えば、床、壁または天井等に対して固定されている。第１アーム２２０は、基台２１０に対して第１回動軸Ｏ１まわりに回動可能となっている。第２アーム２３０は、第１アーム２２０に対して第１回動軸Ｏ１に直交している第２回動軸Ｏ２まわりに回動可能となっている。第３アーム２４０は、第２アーム２３０に対して第２回動軸Ｏ２に平行な第３回動軸Ｏ３まわりに回動可能となっている。第４アーム２５０は、第３アーム２４０に対して第３回動軸Ｏ３と直交している第４回動軸Ｏ４まわりに回動可能となっている。第５アーム２６０は、第４アーム２５０に対して第４回動軸Ｏ４と直交している第５回動軸Ｏ５まわりに回動可能となっている。第６アーム２７０は、第５アーム２６０に対して第５回動軸Ｏ５と直交している第６回動軸Ｏ６まわりに回動可能となっている。なお、第１回動軸Ｏ１〜第６回動軸Ｏ６について、「直交」とは、２つの軸のなす角度が９０°から±５°の範囲内でずれている場合も含み、また、「平行」とは、２つの軸の一方が他方に対して±５°の範囲内で傾斜している場合も含む。
【０１２３】
また、基台２１０に対して第１アーム２２０を回動させる駆動源には、モーター（図示せず）およびエンコーダーユニット１０が設けられている。このエンコーダーユニット１０が有するエンコーダー１の検出結果は、例えば、図示しないロボット制御装置に入力され、基台２１０に対して第１アーム２２０を回動させる駆動源の駆動制御に用いられる。また、図示しないが、他の関節部にもモーターおよびエンコーダーユニットが設けられており、このエンコーダーユニットとして、エンコーダーユニット１０を用いることができる。
【０１２４】
以上のように、ロボット１００Ｃは、第１部材である基台２１０と、基台２１０に対して回動する第２部材である第１アーム２２０と、エンコーダーユニット１０と、を備える。ここで、エンコーダーユニット１０は、前述したように、回動軸まわりに回転して駆動力を出力する出力軸を有する減速機１１２と、減速機１１２の出力軸の回動角度を検出するエンコーダー１と、を有する。そして、減速機１１２の出力軸が第１アーム２２０に接続されている。このようなロボット１００Ｃによれば、第１アーム２２０の回動角度を高精度に検出し、その検出結果に基づいて、第１アーム２２０の駆動制御を高精度に行うことができる。
【０１２５】
以上では、エンコーダー１が基台２１０に対する第１アーム２２０の回動状態を検出する場合を説明したが、エンコーダー１を他のアームの回動状態を検出するように他の関節部に設置することも可能である。この場合、関節部に対して一方側のアームを第１部材、他方側のアームを第２部材として捉えればよい。
【０１２６】
以上、本発明のエンコーダーユニット、角度検出方法およびロボットを図示の好適な実施形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物が付加されていてもよい。また、前述した２つ以上の実施形態の構成を組み合わせてもよい。
【０１２７】
また、本発明のエンコーダーは、アブソリュート型およびインクリメンタル型のいずれの形式にも適用可能である。
【０１２８】
また、前述した実施形態では、ロボットの基台を「基部（第１部材）」、第１アームを「回動部（第２部材）」とした場合を例に説明したが、これに限定されず、相対的に回動する任意の２つの部材の一方を「基部」、他方を「回動部」とすることができる。すなわち、エンコーダーの設置箇所は、基台と第１アームとの関節部に限定されず、相対的に回動する任意の２つのアームの関節部であってもよい。また、エンコーダーの設置箇所は、ロボットが有する関節部に限定されない。
【０１２９】
また、前述した実施形態では、ロボットアームの数は、１つであったが、ロボットアームの数は、これに限定されず、例えば、２つ以上でもよい。すなわち、本発明のロボットは、例えば、双腕ロボット等の複数腕ロボットであってもよい。
【０１３０】
また、前述した実施形態では、ロボットアームが有するアームの数は、２つまたは６つであったが、アームの数は、これに限定されず、１つでもよいし、３つ以上５つ以下または７つ以上でもよい。
【０１３１】
また、前述した実施形態では、本発明のロボットの設置箇所は、床面に限定されず、例えば、天井面や側壁面等でもよいし、ＡＧＶ（Automatic Guided Vehicle）等の移動体でもよい。また、本発明のロボットは、建物等の構造物に固定設置されるものに限定されず、例えば、脚部を有する脚式歩行（走行）ロボットであってもよい。
【符号の説明】
【０１３２】
１…エンコーダー、２…スケール部、３ａ…第１検出部、３ｂ…第２検出部、４…回路部、５…処理部、６…記憶部、１０…エンコーダーユニット、２０…ドット、２１…マーク、２１Ａ…マーク画像、２１Ｂ…マーク画像、２１Ｘ…マーク画像、２１ａ…第１マーク、２１ｂ…第２マーク、２１ｉ…マーク、２１ｉ−１…マーク、２１ｉ−２…マーク、２１ｉ＋１…マーク、２１ｉ＋２…マーク、３１…撮像素子、３１ａ…第１撮像素子、３１ｂ…第２撮像素子、３２…光学系、３２ａ…第１光学系、３２ｂ…第２光学系、１００…ロボット、１００Ｃ…ロボット、１１０…基台、１１１…モーター、１１２…減速機、１１４…支持部材、１１５…軸受、１２０…第１アーム、１２１…アーム本体部、１２２…軸部、１３０…第２アーム、１４０…作業ヘッド、１４１…スプラインシャフト、１５０…エンドエフェクター、１６０…部、２００…ロボットアーム、２１０…基台、２２０…第１アーム、２３０…第２アーム、２４０…第３アーム、２５０…第４アーム、２６０…第５アーム、２７０…第６アーム、１１１１…回動軸、ＢＸ…画素サイズ、Ｃ…円弧、Ｃ１…円弧、Ｃ２…円弧、Ｇ…撮像画像、Ｊ１…第１軸、Ｊ２…第２軸、Ｊ３…軸、Ｌａ…直線、Ｌｂ…直線、ＬＹ…中心線、Ｌｘ…Ｘ軸方向成分、Ｏ１…第１回動軸、Ｏ２…第２回動軸、Ｏ３…第３回動軸、Ｏ４…第４回動軸、Ｏ５…第５回動軸、Ｏ６…第６回動軸、Ｐ０…原点画素、ＰＥ…終了画素、ＰＳ…開始座標、Ｒ１…第１領域、Ｒ２…第２領域、ＲＩ…撮像領域、ＲＳ…探索領域、ＲＵ…有効視野領域、Ｓ１１…ステップ、Ｓ１２…ステップ、Ｓ１３…ステップ、Ｓ１４…ステップ、Ｓ１５…ステップ、Ｓ１６…ステップ、Ｓ１７…ステップ、Ｓ１８…ステップ、Ｓ３１…ステップ、Ｓ３２…ステップ、Ｓ３３…ステップ、Ｓ３４…ステップ、Ｓ３５…ステップ、Ｓ３６…ステップ、Ｓ４１…ステップ、Ｓ４２…ステップ、Ｓ４３…ステップ、Ｓ４４…ステップ、Ｓ４５…ステップ、Ｓ４６…ステップ、Ｓ４７…ステップ、Ｓ４８…ステップ、ＴＡ…基準画像、Ｖ…移動ベクトル、Ｖａ…移動ベクトル、Ｖｂ…移動ベクトル、ａ…角度、ｈ…画素移動量、ｖ…画素移動量、Ｄｘ…移動量、Ｄｘ'…移動量、Ｄｙ…移動量、Ｄｙ'…移動量、β…角度、η…傾斜角度、θ…回動角度
【図１】
2019143979.tif 000005
【図２】
2019143979.tif 000006
【図３】
2019143979.tif 000007
【図４】
2019143979.tif 000008
【図５】
2019143979.tif 000009
【図６】
2019143979.tif 000010
【図７】
2019143979.tif 000011
【図８】
2019143979.tif 000012
【図９】
2019143979.tif 000013
【図１０】
2019143979.tif 000014
【図１１】
2019143979.tif 000015
【図１２】
2019143979.tif 000016
【図１３】
2019143979.tif 000017
【図１４】
2019143979.tif 000018
【図１５】
2019143979.tif 000019
【図１６】
2019143979.tif 000020
【図１７】
2019143979.tif 000021
【図１８】
2019143979.tif 000022
【図１９】
2019143979.tif 000023
【図２０】
2019143979.tif 000024
【図２１】
2019143979.tif 000025
【図２２】
2019143979.tif 000026
【図２３】
2019143979.tif 000027
【図２４】
2019143979.tif 000028