以下、本発明による位置算出装置、シンボル表示装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
(実施の形態1)
本発明の実施の形態1による位置算出装置について、図面を参照しながら説明する。本実施の形態による位置算出装置は、色属性がパターンに応じてなめらかに変化する方向を有するシンボルを撮影することによって、そのシンボルの位置を精度高く算出するものである。
図1は、本実施の形態による位置算出装置1の構成を示すブロック図である。本実施の形態による位置算出装置1は、撮影部11と、シンボル検出部12と、位置算出部13と、出力部14とを備える。
撮影部11は、シンボル10を撮影する。撮影部11が撮影した画像は、例えば、静止画像であってもよく、または、動画像であってもよい。なお、後者の場合には、動画像に含まれる1個のフレームを用いて後述する処理が行われてもよい。撮影された画像データは、図示しない記録媒体で記憶されてもよい。その画像データのデータ形式(例えば、ビットマップ等)は問わない。また、撮影画像に対してレンズ補正等が行われてもよい。シンボル10は、例えば、シート等に表示されたものであってもよい。すなわち、撮影部11によって撮影されるシンボルの表示されたシートが、位置を検出したい箇所に取り付けられてもよい。例えば、撮影部11は、搬送ロボットのハンド付近に装着されており、シンボルは、搬送対象が載置されうる複数のスロットを備えたカセットの一部に表示されていてもよい。そのような状況では、カセットが移動されたとしても、そのカセットに表示されているシンボルを用いることにより、搬送ロボットとカセットとの相対的な位置関係が適切に把握されることになる。
そのシンボルについて説明する。そのシンボルは、色属性があらかじめ決められたパターンに応じてなめらかに変化する方向を少なくとも2以上有するものである。色属性は、定量的に示すことができる色(モノクロも含まれるものとする)に関する属性であればどのようなものであってもよく、例えば、明度であってもよく、輝度であってもよく、彩度であってもよく、色相であってもよく、または、それらの任意の2以上の組み合わせであってもよい。本実施の形態では、その色属性が明度である場合について主に説明する。シンボル10は、例えば、図2(a)で示されるように、中心を通る直径方向の色属性がなめらかに変化する同心円形状のものであってもよい。その図2(a)のシンボル10における色属性の変化のパターンは、正弦波状の変化のパターンである。すなわち、シンボル10の中心を通る直線の測定線10aに沿って、明度が図2(b)で示されるように、サインカーブで変化している。また、図2(a)のシンボル10では、中心を通る任意の角度の直線方向について、色属性が正弦波状に変化しているため、そのシンボル10は、色属性があらかじめ決められたパターンに応じてなめらかに変化する方向を無限に有しているということができる。そのパターンは、例えば、正弦波等の関数によって示されてもよい。また、後述するように、その測定線に沿った色属性の変化を用いて位置の検出等が行われるため、そのシンボルにおいて、測定線が平行な方向(図2(a)では上下方向)に移動したとしても、その測定線に沿った色属性の変化が大きく変わらないようになっていることが好適である。図2(a)のシンボル10の場合には、測定線10aが中心付近で上下に移動しても、サインカーブはあまり変化しないようになっている。
ここで、色属性がパターンに応じてなめらかに変化するシンボルを用いるメリットについて簡単に説明する。図3(a)は、白黒の2色で構成されたシンボルの撮影画像におけるある方向の明度の変化を示す図であり、図3(b)は、明度が正弦波状に変化するシンボルの撮影画像における、明度が正弦波状に変化する方向の明度の変化を示す図である。図3において、各点は、撮影画像における各画素の明度を示しており、各実線は、各点にフィッティングさせた明度変化を示している。図3(a)の場合には、白黒の変化の位置(エッジ位置)を特定するために、例えば、楕円で囲った2個程度の画素値しか用いられていない。したがって、上述のように、撮影部11の撮影画像の解像度以上の精度で位置を特定することは困難である。一方、図3(b)の場合には、あらかじめ決められた点(例えば、ピークの位置等)を特定するために、まずサインカーブのフィッティングを行い、そのフィッティングされたサインカーブにおけるピークなどの特徴点が特定される。したがって、その特徴点の特定のために、図3(a)の場合よりも多くの点が用いられることになり、その特定精度が高くなる。なお、そのようなフィッティングは、例えば、最小二乗法や、最小絶対値法等の回帰分析を用いて行われてもよい。また、そのようなフィッティングを、各画素の明度値等を、デジタルサンプリングの手法で標本化し、連続信号である明度等の正弦波を取得することによって行ってもよい。その場合に、特定の正弦波のみを取得ことによって、ノイズを低減するようにしてもよい。なお、上述の特徴点を用いて、後述する基準点の特定が行われることになる。このようなフィッティング等を行うことによって、理論上、撮影画像の解像度以上の精度で位置を特定できるようになる。このように、色属性がパターンに応じてなめらかに変化する方向を有している場合には、その方向の変化を用いることによって、より精度の高い位置検出が可能となることがわかる。以上の説明から明らかなように、色属性がなめらかに変化するとは、シンボルのある方向における位置の変化に応じて(図2(a)の場合には、測定線方向に沿って)、色属性がなめらかに変化することである。なお、位置の変化に応じた色属性のなめらかな変化の程度は問わない。例えば、3段階以上の変化があれば、2段階の変化であった従来例(図3(a))に対して効果があると考えられるが、実際には図3(b)で示されるようなより多い段階でのなめらかな変化であることが好適である。また、ある方向に対して、色属性がなめらかに変化するとは、その方向の単位長さあたりの変化の程度が、あらかじめ決められた閾値より小さいことであると考えてもよい。また、色属性の変化のパターンは、正弦波状以外であってもよい。色属性の変化のパターンは、例えば、図4(a)のように台形波状(ただし、矩形波状を除く)であってもよく、図4(b)のように三角波状であってもよく、図4(c)のようにのこぎり波状であってもよく、その他の形状であってもよい。また、ある方向について、色属性がなめらかに変化するとは、少なくともその方向の一部について、色属性がなめらかに変化する範囲が存在することであってもよい。すなわち、ある方向の全体について、色属性がなめらかに変化してもよく、または、例えば図4(a)で示されるように、その方向の一部についてのみ、色属性がなめらかに変化してもよい。また、その変化のパターンは、周期的であってもよく、または、周期的でなくてもよい。後者の場合には、色属性の変化のパターンは、例えば、図3(b)のように周期関数の1周期分の変化のパターンであってもよく、周期関数の1周期に満たない範囲の変化のパターンであってもよく、または、周期関数と関係のない変化のパターン(例えば、単に明度が徐々に高くなっていく変化等)であってもよい。また、色属性の変化のパターンは、図4(a)〜図4(c)で示されるように、単一の周波数に対応するものであってもよく、図4(d)で示されるように、複数の周波数が混ざったものであってもよい。
また、シンボルの大きさは既知であることが好適である。後述するように、撮影部11の光軸方向(奥行き方向)におけるシンボルの位置を特定できるようにするためである。シンボルの大きさが既知であるとは、例えば、色属性の変化のパターンが周期的である場合には、その一周期分の長さ、すなわち波長が既知であることであってもよく、色属性の変化のパターンが周期的でない場合には、そのパターンにおける二点間の長さが既知であることであってもよい。その二点は、パターンの両端であってもよく、または、その他の特定可能なパターン上の点であってもよい。
また、シンボルは、上述のように、そのような色属性がなめらかに変化する方向を2以上有しているものとする。少なくとも2個の方向が存在すれば、各方向について位置の特定を行うことによって、平面上における点を特定することができるからである。したがって、その2方向は、平行でない方向である。また、その2方向は、直交する方向であることが好適である。また、シンボル画像において、その変化の方向を特定しやすくなっていることが好適である。例えば、その変化の方向は、シンボル画像の中心を通る直線の方向であってもよく、また、シンボル画像の辺の方向や、円形状の周方向等であってもよい。
シンボル検出部12は、撮影部11が撮影した撮影画像に含まれるシンボルの画像であるシンボル画像を検出する。そのシンボル画像は、撮影画像においてシンボルの写っている箇所のことであると考えてもよい。シンボル検出部12は、例えば、図示しない記録媒体で記憶されているパターンを用いたパターンマッチングによってシンボル画像を検出してもよい。なお、シンボル画像を検出するとは、撮影画像におけるシンボル画像の位置を特定することであってもよい。その位置の特定は、例えば、位置を示す情報を図示しない記録媒体に蓄積することであってもよい。なお、シンボル検出部12は、パターンマッチング等によってシンボル画像を検出した後に、そのシンボル画像がシンボルとしての特徴を有しているかどうかを判断してもよい。その場合には、シンボル検出部12は、パターンマッチングによってまずシンボル画像の候補を検出し、その後、シンボル画像の候補のうち、シンボルとしての特徴を有しているものをシンボル画像として検出してもよい。その特徴は、例えば、同心円であることであってもよく、シンボル画像に含まれる円環の個数であってもよく、その他の特徴であってもよい。そして、シンボル画像の候補がその特徴を有していない場合には、シンボル検出部12は、検出したシンボル画像の候補が、実際にはシンボル画像ではなかったと判断してもよい。また、撮影部11が正対していないシンボルの撮影も行う場合には、シンボル検出部12は、そのような斜めから撮影されたシンボルの画像であるシンボル画像も、パターンマッチングで検出できることが好適である。その場合には、例えば、シンボル検出部12は、シンボルを斜めから撮影したシンボル画像に対応するパターンをも用いて、パターンマッチングを行ってもよい。そのパターンは、あらかじめ生成されていてもよく、または、マッチング時にダイナミックに生成されてもよい。
位置算出部13は、撮影部11が撮影した撮影画像に含まれるシンボルの画像であるシンボル画像の基準点を、そのシンボル画像における色属性の変化のパターンを用いて特定し、その基準点を用いてシンボルの位置を算出する。なお、そのシンボル画像は、シンボル検出部12によって検出されたものであってもよい。また、その基準点は、撮影画像における点であり、1個であってもよく、2個以上であってもよい。また、基準点は、シンボル画像と位置関係の決まっている点であればよく、例えば、シンボル画像上に存在してもよく、または、シンボル画像から離れた位置に存在してもよい。後者の場合には、基準点は、撮影画像上になく、撮影画像をその平面方向に延した面内に存在してもよい。その基準点は、例えば、シンボルの中心に対応するシンボル画像上の点であってもよい。また、その基準点は一意に特定されてもよく、またはそうでなくてもよい。後者の場合には、基準点は、ある条件を満たす点であってもよい。例えば、基準点は、シンボルの中心を中心とする正方形の4頂点であってもよい。また、基準点を用いて算出されるシンボルの位置は、通常、3次元空間上の位置、例えば、カメラ座標系やワールド座標系等におけるシンボルの位置(座標値)である。また、そのシンボルの位置は、シンボルの平面方向に関する情報(例えば、ある座標系における、シンボルの平面方向を示す情報)をも含んでいてもよい。なお、本実施の形態では、そのシンボルの位置を算出する方法について、(1)撮影部11の光軸がシンボルと直交する場合、(2)撮影部11の光軸がシンボルと直交しなくてもよい場合のそれぞれについて説明する。また、(2)については、(2−1)シンボル画像の長軸の長さと短軸の長さとの比を求める方法、(2−2)シンボル画像における複数の基準点を特定する方法のそれぞれについて説明する。なお、以下の説明において、シンボルは、図2で示される同心円形状のものであるとする。また、そのシンボルの大きさに関する情報(例えば、同心円の数や波長の情報等)は、あらかじめ位置算出装置1に登録されているものとする。
(1)撮影部11の光軸がシンボルの平面と直交する方向である場合
まず、撮影部11の光軸が、シンボルの平面と直交する方向となる場合について説明する。例えば、撮影部11が円筒座標ロボットのハンドの位置に装着されているとする。その撮影部11の光軸は、円筒座標系の中心軸に直交する方向であり、その中心軸から離れる向きを撮影するものとする。また、シンボルの中心を通る法線が、その中心軸と直交するようにシンボルが配設されているものとする。また、そのシンボルは、中心軸に向いて配設されているものとする。この場合には、シンボルの中心に対応するシンボル画像上の点が基準点であるとする。なお、撮影部11の光軸と、シンボルの平面とが直交するとは、厳密な意味においてではなく、実質的に直交していると考えることができる状況を含んでいてもよい。上述のような状況において、撮影画像にシンボル画像が含まれている場合には、撮影部11の光軸と、シンボルの平面とは実質的に直交していると考えることができる。
そのような状況において、位置算出部13は、撮影画像における基準点の位置を特定する。また、位置算出部13は、撮影画像における色属性の変化のパターンに応じた長さを特定する。そして、位置算出部13は、その基準点の位置と、そのパターンに応じた長さとを用いて、シンボルの位置を算出することができる。
具体的には、位置算出部13は、シンボル検出部12によって特定された、撮影画像のシンボル画像において、シンボル画像の中心を通る水平方向の測定線に沿った明度を取得し、その明度にフィットした水平方向の正弦波を特定する。その正弦波の特定は、例えば、パターンマッチングによって行ってもよく、または、デジタルサンプリングの手法で測定線に沿った明度の値を標本化することによって行ってもよい。シンボルにおける色属性の変化のパターンはあらかじめわかっているため、位置算出部13は、そのパターンに応じた関数等を用いることによって、パターンマッチングを行ってもよい。なお、そのシンボル画像の中心は、厳密な中心でなく、誤差のある中心であってもよい。その中心は、例えば、検出されたシンボル画像の重心の位置であってもよく、同心円を用いて特定された円の中心であってもよい。特定された正弦波は、例えば、図2(b)で示されるものである。その正弦波における5個のピークのうち、ちょうど真ん中(一方から3個目)のピークの頂点を通る垂直方向の線である垂直方向線の線上に中心点である基準点が位置することになる。このようにして、位置算出部13は、水平方向における基準点の位置を特定できる。また、位置算出部13は、シンボル画像の中心を通る垂直方向の測定線に沿った明度を取得し、その明度にフィットした垂直方向の正弦波を特定する。その正弦波の特定も、上述のようにパターンマッチング等の手法によって行うことができる。その正弦波の5個のピークのうち、ちょうど真ん中(一方から3個目)のピークの頂点を通る水平方向の線である水平方向線の線上に中心点である基準点が位置することになる。このようにして、位置算出部13は、垂直方向における基準点の位置を特定できる。したがって、位置算出部13は、垂直方向線と水平方向線との交点を算出することによって、正確な円の中心である基準点の位置を知ることができる。なお、位置算出部13は、その基準点の位置を、シンボル画像における正弦波の位相を用いて取得してもよい。すなわち、撮影画像の2次元直交座標系(X,Y)において、例えば、基準点の位置が(c,2c)であり、またシンボル画像における正弦波の1周期分の長さ(波長)が2cであるとすると、基準点の位置の位相表示は(π,2π)となる。なお、正弦波の1周期分の正確な長さを算出するため、後述のように、基準点(シンボル画像の中心)を通る直線の測定線に沿った正弦波を用いて、その長さを再度、算出してもよい。
ここで、撮影部11の光軸方向(視線方向)をz軸とし、そのz軸と直交するようにxy直交座標系を設定したとする。すると、前述のように、シンボルの大きさは決まっているため、撮影画像における位相表示での位置と、上述のxyz直交座標系におけるxy方向の点との関係は、一意に決まることになる。すなわち、撮影画像における位相表示での位置(Xp,Yp)と、xyz直交座標系におけるxy方向の位置(x,y)とは、一対一に対応するため、両者を対応付けるテーブルを用意したり、(Xp,Yp)から(x,y)を算出する関数を用意したりすることができる。したがって、位置算出部13は、そのようなテーブルや関数を用いることによって、光軸に垂直な平面における、基準点に対応する位置、すなわち、基準点に対応する水平・垂直方向の位置を取得できる。
次に、z軸方向(奥行き方向)の距離を算出する方法について説明する。前述のように、シンボルの大きさは決まっているため、シンボル画像における正弦波の波長(1周期分の撮影画像上の長さ)と、z軸方向の距離とは図6で示されるように、反比例の関係となる。したがって、位置算出部13は、その関係を用いることによって、撮影画像上の正弦波の波長から、奥行き方向の位置を算出することができる。なお、この場合には、正確な波長を算出する必要があるため、位置算出部13は、上述のようにして特定した基準点である中心点を通る直線上において、正弦波の波長を再度、測定してもよい。また、このようにして測定された波長が、基準点の位置を位相表示に変換する際に用いられてもよい。また、撮影画像を取得する際に、光学的に拡大または縮小を行っている場合には、その拡縮率に応じた、波長と奥行き方向の位置との関係を用いてもよく、または、図6で示されるグラフを用いて奥行き方向の距離を算出した後に、その距離を拡縮率に応じて変換してもよい。なお、通常、撮影部11のカメラの位置はわかっているため、それを用いることによって、上述のxyz座標系における位置を、ワールド座標系における位置に変換することもできる。なお、ここでは、色属性の変化のパターンに応じた長さとして、波長を用いる場合について説明したが、そうでなくてもよい。例えば、その長さは、波長以外の、パターンにおける二点間の長さであってもよい。その場合には、位置算出部13は、そのパターンにおける二点間の長さを特定することによって、奥行き方向の距離を算出してもよい。
ここで、シンボルのバリエーションについて説明する。上記説明では、中心を通る直径方向の色属性がなめらかに変化する同心円形状であるシンボルについて説明したが、それ以外のシンボルであってもよいことは言うまでもない。例えば、シンボルは、同心円形状ではなく、中心が一致した複数の正方形状であってもよい。その場合に、各正方形状の少なくとも一辺は平行になるものとする。また、その正方形状の中心を通り、各辺に平行な直線方向の色属性は、なめらかに変化するものとする。その色属性の変化のパターンは、例えば、正弦波状であってもよく、その他のパターンであってもよい。そのようなシンボルの場合でも、各辺に平行な2方向において、同心円形状のシンボルの場合と同様に、色属性の極値の位置を特定することなどによって、シンボル画像の中心位置である基準点を特定することができ、それを用いて、シンボルの位置を算出することができるようになる。また、正方形以外の形状、例えば、菱形形状や、楕円形状、長方形状、または、その他の形状のシンボルでも、同様にして、シンボル画像の中心位置である基準点を特定できるようにすることができる。
また、撮影部11とシンボルの距離が遠すぎる場合には、撮影画像におけるシンボル画像が小さくなるため解像度が低くなり、同心円の形状を再現できなくなることによって、位置算出部13による位置の算出を適切に行うことができないこともある。そのような対策として、例えば、図5Aで示されるシンボルを用いてもよい。図5Aのシンボルは、色属性の複数の変化のパターンのそれぞれについて、2以上の変化の方向を有するものである。図5Aでは、2個の変化のパターンが存在する。そして、その変化のパターンが、45度ごとに交互に切り替わっている。したがって、位置算出部13は、撮影部11とシンボルとの距離が遠い場合には、波長の長い方の領域を用いて中心位置を特定する。波長の長い領域の画像は解像度が低くても画像が潰れにくいため、遠くからでもシンボル位置を算出することができる。一方、撮影部11とシンボルとの距離が近い場合には、波長の短い方の領域を用いて中心位置を特定するようにしてもよい。そのようにすることで、測定に用いる波の数が増えることになり、より精密な位置の算出が可能となる。なお、図5Aで示されるように、波長の長い領域と、波長の短い領域との両方について、中心は明度が高くなるようにしておくことが好適である。そうでなければ、測定線が中心から少しでもずれた場合に、他の領域の影響を大きく受けることになるからである。また、図5Aで示されるシンボルのように、シンボルの外周は略円形になるようにしておくことが好適である。そのようにすることによって、シンボル検出部12によるシンボルの検出を円形のパターンマッチングで行うことができ、処理を簡単にすることができる。なお、2個の変化のパターンを有するシンボルについて説明したが、シンボルは、3個以上の変化のパターンを有していてもよい。
なお、上述の説明では、撮影部11が円筒座標ロボットのハンドの位置に装着されている場合について説明したが、そうでなくてもよいことは言うまでもない。例えば、シンボルの平面と平行な平面上に、そのシンボルの平面と直交する光軸を有する撮影部11が存在してもよい。また、その撮影部11は、シンボルの平面と平行な平面上を移動するものであってもよい。
(2)撮影部11の光軸がシンボルと直交しなくてもよい場合
次に、撮影部11の光軸が、シンボルの平面と直交する方向とは限らない場合について説明する。例えば、撮影部11が垂直多関節ロボットのハンドの位置に装着されているとすると、その撮影部11の光軸は、シンボルの平面と直交するとは限らない。したがって、(1)の場合よりも一般的な状況において、シンボル位置を算出する方法について説明する。
(2−1)シンボル画像の長軸の長さと短軸の長さとの比を求める方法
まず、シンボルが図2で示される同心円形状のものであり、シンボル画像の長軸の長さと短軸の長さとの比を用いて、シンボル位置を算出する場合について説明する。シンボルがカメラと正対していない場合には、撮影画像におけるシンボル画像は、図7で示されるように楕円形状となる。その楕円形状のシンボル画像は、回転軸Aを中心として回転しているものであるため、その回転軸Aの方向(シンボル画像の長軸の向き)と、回転軸Aを中心としたシンボル画像の回転角αとを求めることにより、撮影部11のカメラから見たシンボルの傾きを特定することができる。なお、回転軸Aの方向と、図7で示される、カメラから見た水平方向とのなす角度を傾斜角φとする。したがって、傾斜角φを求めると、回転軸Aの方向を求めたことになる。
具体的には、位置算出部13は、シンボル検出部12によって特定されたシンボル画像において、シンボル画像の中心を特定する。その中心は、厳密な中心でなく、誤差のある中心であってもよいため、位置算出部13は、例えば、上述のように、シンボル画像の重心を算出することによってシンボル画像の中心を特定してもよい。次に、位置算出部13は、その中心を通る直線である測定線に沿った明度を測定し、その明度の正弦波を特定する。そして、その正弦波の波長を算出する。また、位置算出部13は、その波長の算出を、図8で示されるように、シンボル画像の中心を軸として角度βだけ水平線方向から回転させた測定線の方向についても行う。また、その角度βを順次、変更しながら、その波長の算出を行う。そして、位置算出部13は、このような波長の算出を繰り返し、シンボル画像の中心を通るすべての方向の測定線について波長を算出する。その後、位置算出部13は、波長が最も長かった測定線に対応するβを、傾斜角φとする。その傾斜角φの方向が、楕円の長軸の方向となる。また、位置算出部13は、波長が最も短かった測定線の方向を短軸と判定する。位置算出部13は、その長軸方向の角度と波長、及び短軸方向の角度と波長とを図示しない記録媒体に蓄積する。なお、シンボル画像において長軸方向と短軸方向とは通常、直交するため、長軸方向のみを特定し、それに直交する方向を短軸方向としてもよい。また、位置算出部13は、後述するようにして算出された正確な中心位置を通過する測定線を用いて、長軸方向や短軸方向の波長の算出を行ってもよい。また、その正確な中心位置を用いて、再度、長軸方向及び短軸方向の特定を行ってもよい。なお、長軸方向等の特定を再度行った場合には、それに応じて波長も再度、算出することが好適である。
また、位置算出部13は、その長軸方向、及び短軸方向において、上記(1)のように真ん中のピークの位置を通る長軸方向、及び短軸方向の測定線における正弦波のフィッティングを行うことによって、シンボル画像の正確な中心位置、すなわち、基準点の位置を算出することができる。また、上記(1)で説明したように、その撮影画像上での基準点の位置を位相表示の位置(Xp,Yp)に変更し、その位相表示の位置(Xp,Yp)を用いて、xyz直交座標系におけるxy平面上の位置を特定することができる。なお、撮影画像上の位置を位相表示の位置に変換する際には、長軸方向の波長を用いるものとする。
また、後述するように、楕円の長軸の長さと短軸の長さとの割合が必要になるため、位置算出部13は、例えば、長軸方向の波長と、短軸方向の波長とを用いて、長軸の長さと短軸の長さとの割合を計算する。具体的には、両者の割合が、短軸の長さ/長軸の長さである場合には、短軸方向の波長/長軸方向の波長を計算する。なお、両者の割合は、その逆数、すなわち、長軸の長さ/短軸の長さであってもよい。また、位置算出部13は、波長を用いるのではなく、長軸方向の両端のピーク間の距離や、短軸方向の両端のピーク間との距離を算出し、それらを用いて両者の割合を算出してもよい。その場合には、位置算出部13は、例えば、短軸方向の波長などを算出しなくてもよい。
なお、パターンマッチングにより、長軸の方向や長軸の長さと短軸の長さとの割合を特定することもできる。図9で示されるように、まず、位置算出部13は、比較元となる画像を垂直方向に縮小して楕円にする。その際の垂直方向の縮小率をr1(%)とする。次に、位置算出部13は、その縮小率r1を変化させながら、楕円をγだけ回転させながら、また楕円を拡大縮小させながら、シンボル画像との相関を算出する。そして、位置算出部13は、最も相関の高い変化後の楕円の回転角γと、縮小率r1(%)とを取得する。その回転角γが図7の傾斜角φとなる。また、その縮小率/100が、短軸の長さ/長軸の長さとなる。
ここで、円の回転角αと、楕円の短軸の長さ/長軸の長さとの関係について説明する。円をαだけ回転させることによってできた楕円の短軸の長さ/長軸の長さと、αとの関係は、図10で示されるようになる。なお、その関係は、正弦波(cosα)である。したがって、楕円の短軸の長さ/長軸の長さを用いて、α=cos−1(短軸の長さ/長軸の長さ)を算出することができる。
なお、図10の右側のグラフから明らかなように、楕円の短軸の長さ/長軸の長さが決まったとしても、シンボルの回転角の方向は決まらないことになる。すなわち、回転角αは、±αの任意性があることになる。そのことについては、撮影画像におけるシンボル画像のパースを用いることによって決定することができる。一般にカメラで物体を撮影すると、図11で示されるように、パースがつくことになる。なお、図11では、そのパースを説明のために誇張して表している。そのパースがあるため、図11で示されるように、短軸上の波長は、手前と奥で異なることになり、手前側の波長は長くなり、奥側の波長は短くなる。したがって、楕円の中心を通る短軸方向について中心を挟んだ両側の波長を測定し、比較することによって、手前と奥の判定が可能となり、シンボルの回転角の符号を決定することができる。例えば、図10の左側のようにαが設定されている場合には、図11で示されるように回転軸Aより下側の波長が長ければ、正の値のαだけシンボルが回転していることになり、図11とは異なり、回転軸Aより下側の波長が短ければ、負の値のαだけシンボルが回転していることになる。
また、パースの程度は、カメラのレンズ特性や、測定距離に依存する。例えば、図11で示されるようなパースが存在する場合には、長軸の判定方法を工夫する必要がある。例えば、波長が最も長くなる測定線の方向を長軸と判定するのに代えて、シンボルの中心を通る直線のうち、正弦波の波長が一定になる測定線の方向を長軸と判定するようにしてもよい。
奥行き方向の距離の算出は、(1)と同様の方法によって行うことができる。ただし、シンボルが傾いている場合には、長軸方向の色属性の変化のパターンに応じた長さ、例えば、長軸方向の波長を用いて奥行き方向の距離を算出するものとする。なぜなら、図12で示されるように、シンボルは同心円形状のものであるため、カメラからの距離が一定であれば、どのようなシンボルの回転軸A、回転角αであったとしても、長軸の長さは、カメラと正対しているシンボルの直径の長さと一致するからである。なお、正確な奥行き方向の距離を算出するため、算出された基準点を通る長軸方向の波長が特定されることが好適である。このようにして、位置算出部13は、シンボル画像の長軸の向き、長軸方向の色属性の変化のパターンに応じた長さ、及び長軸の長さと短軸の長さとの比を特定することによってシンボルの位置を算出することができる。
なお、上述の説明では、位置算出部13が、基準点に対応するシンボルの位置と、シンボルの傾きとを算出する場合について説明したが、位置(座標)のみを知ることが目的である場合には、傾きの算出は行わなくてもよい。その場合には、位置算出部13は、シンボル画像の中心である基準点の位置を特定することによって、水平・垂直方向のシンボルの位置を算出し、シンボル画像の長軸方向の色属性の変化のパターンに応じた長さ(波長)を特定することによって、奥行き方向のシンボルの位置を算出してもよい。一方、シンボルの傾きも知りたい場合には、位置算出部13は、上述のように、シンボル画像の長軸方向の傾斜角φや、その長軸方向の回転軸Aを中心とした回転角αを算出してもよい。その回転角αは、上述のように、楕円形状であるシンボル画像の長軸方向の長さと短軸方向の長さとの比を用いて算出されてもよい。また、回転角の向きが、楕円形状であるシンボル画像の短軸方向のパース(波長の違い)を用いて算出されてもよい。
ここで、シンボルの中心位置を算出する他の方法について説明する。まず、カメラ座標系を次のように設定する。撮影部11の視点を原点とし、光軸方向(視線方向)にz軸をとり、そのz軸と直交するxy直交座標系をとった3次元xyz直交座標系をカメラ座標系とする。なお、xy平面は、受光平面と平行になる。撮影画像における平面方向の2次元直交座標系を、カメラ座標系におけるz=fの位置のxy直交座標系に一致させると、撮影画像における座標(X,Y)は、カメラ座標系における座標(X,Y,f)となる。ただし、fは、撮影部11の光学系の焦点距離である。したがって、例えば、(1)と同様の方法によって、奥行き方向の距離(カメラ座標系におけるz軸方向の座標値)が「z1」であるとわかった場合には、位置算出部13は、撮影画像における基準点の座標(X1,Y1)を用いて、その基準点に対応するシンボルの位置(シンボルの中心位置)を、次のように算出することができる。
(x,y,z)=(X1×z1/f,Y1×z1/f,z1)
この位置は、カメラ座標系における位置であるが、そのカメラ座標系をワールド座標系に変換することによって、ワールド座標系におけるシンボル中心の位置も算出することができる。例えば、撮影部11が産業用ロボットに装着されている場合には、その産業用ロボットの姿勢や撮影部11の装着位置等を用いることによって、カメラ座標系と、ワールド座標系との変換に関する情報を取得できる。その変換に関する情報は、具体的には、カメラ座標系からワールド座標系への座標変換を行うための行列やベクトル等であってもよい。したがって、位置算出部13は、そのような情報を用いることによって、カメラ座標系における位置を、ワールド座標系における位置に変換してもよい。この方法によるシンボル位置の算出は、(1)においても、(2−1)においても用いることができる。
(2−2)シンボル画像における複数の基準点を特定する方法
シンボル画像に複数の基準点が存在し、その基準点の位置関係が決まっている場合に、位置算出部13は、撮影画像におけるシンボル画像の複数の基準点の位置と、それらの基準点に対応するシンボル上の複数の点の位置関係とを用いて、シンボルの位置を算出することができる。以下、そのことについて説明する。なお、そのすべての基準点が一直線上に存在しないことが好適である。
例えば、マーカー型AR(Augmented Reality:拡張現実)の技術として、撮影したARマーカーの位置を検出する方法が知られている。その方法については、例えば、次の文献を参照されたい。
文献:加藤博一、Mark Billinghurst、浅野浩一、橘啓八郎、「マーカー追跡に基づく拡張現実感システムとそのキャリブレーション」、日本バーチャルリアリティ学会論文誌、Vol.4,No.4,1999年
その技術を応用すると、位置算出部13は、シンボル画像において正方形の各頂点に対応する4点を特定すればよいことになる。その特定方法について簡単に説明する。位置算出部13は、(2−1)と同様にして、シンボル画像において長軸方向と短軸方向とを特定する。そして、図13で示されるように、長軸方向の測定線における明度の両端のピークの位置からそれぞれ、短軸方向に平行な直線L1,L2を特定する。また、同様にして、短軸方向の測定線における明度の両端のピークの位置からそれぞれ、長軸方向に平行な直線L3,L4を特定する。そのようにして、位置算出部13は、撮影画像上の4個の基準点P1〜P4の位置を特定できる。その4点P1〜P4に対応する現実空間における点は正方形の4頂点となっており、その正方形の辺の長さも既知である(図13の場合には、正方形の一辺の長さは4波長分の長さとなる)。したがって、位置算出部13は、ARマーカーの位置検出の方法を用いることによって、その4点P1〜P4の現実空間上の位置(例えば、カメラ座標系における位置等)を知ることができる。その4点の位置を知ることは、シンボルの位置を知ることと実質的に同じである。したがって、このような方法によって、シンボルの位置が算出されたことになる。なお、誤差の補正等を考慮しない場合には、理論上、シンボルにおける3個の基準点にそれぞれ対応するシンボル画像上の3点と、現実空間におけるその3個の基準点の位置関係(例えば、各2点間の距離など)とを用いることにより、その基準点の位置を算出することができる。したがって、位置算出部13は、そのようにして、シンボル画像における3個以上の基準点の位置と、その基準点に対応するシンボル上の複数の点の位置関係とを用いることによって、シンボルの位置を算出してもよい。
ここでも、シンボルのバリエーションについて説明する。図2では、中心を通る各測定線方向の波長がすべて同じであるシンボルについて説明したが、中心付近と、外周付近とで波長が異なるようにしてもよい。例えば、中心を通る各測定線について、中心付近では波長が短く、外周付近では波長が長くなっていてもよい。そのようなシンボルの場合には、位置算出部13は、撮影部11とシンボルとの距離が遠いときには、外周付近の長い波長を用いてシンボル画像の中心位置を算出し、撮影部11とシンボルとの距離が近いときには、中心付近の短い波長を用いてシンボル画像の中心位置を算出してもよい。そのようなシンボルも、色属性の複数の変化のパターンのそれぞれについて、2以上の変化の方向を有しているものであると言うことができる。このようなシンボルは、上記(1)、(2)の両方において用いることができる。
また、中心を通る測定線に沿って、明度が正弦波状に変化するシンボルについて説明したが、明度以外の色属性が正弦波状に変化してもよいことは前述の通りである。例えば、色相や彩度等の色属性が、測定線に沿って正弦波状に変化してもよい。また、その変化は、正弦波状でなく、前述のように、例えば、三角波状等であってもよい。また、図2では、明度が0と最大値との間で変化する場合について説明したが、明度やその他の色属性は、それら以外の下限値と上限値との間で変化してもよい。なお、下限値は0以上であり、上限値は最大値以下であってもよい。
また、撮影部11とシンボルの距離が遠い場合にも、近い場合にも適切にシンボル位置を算出できるようにするため、例えば、シンボルを、図14Aで示されるシンボル表示装置2によって表示するようにしてもよい。そのシンボル表示装置2は、例えば、色属性の変化のパターンの異なる複数のシンボルを時分割表示するものであってもよい。
図14Aにおいて、シンボル表示装置2は、選択部21と、表示部22とを備える。
選択部21は、色属性があらかじめ決められたパターンに応じてなめらかに変化する方向を少なくとも2以上有する2以上のシンボルから、表示対象のシンボルを選択する。選択部21は、例えば、複数のシンボルを順に時分割で選択してもよい。選択部21は、選択したシンボルの情報を、図示しない記録媒体から読み出して表示部22に渡してもよい。なお、選択部21による選択の対象となる2以上のシンボルは、色属性の変化のパターンに応じた波長や、そのパターンにおける二点間の長さが異なっているものであることが好適である。
表示部22は、選択部21が選択した表示対象のシンボルを表示する。したがって、一時に表示するシンボルは1個となる。なお、その表示は、通常、液晶ディスプレイや、有機ELディスプレイ等の表示デバイスへの表示であるが、表示対象領域へのシンボルの投影(プロジェクション)であってもよい。なお、そのシンボルは、位置を特定する対象となる箇所、例えば、あらかじめ決められた箇所に表示されることが好適である。また、表示部22は、表示デバイスや、投影デバイスを含んでいてもよく、または、そうでなくてもよい。また、表示部22は、ハードウェアによって実現されてもよく、または表示デバイス等を駆動するドライバ等のソフトウェアによって実現されてもよい。また、シンボルの表示は、別の装置やデバイスにおいてなされてもよい。その場合には、表示部22は、シンボルの表示データを、外部のデバイスに送信するものであってもよい。
シンボル表示装置2が、2以上のシンボルを時分割表示する場合について、図15を用いて説明する。図15で示されるように、選択部21は、異なるシンボル10−1,10−2を、交互に時分割で選択してもよい。すなわち、選択部21は、ある時間帯には表示対象のシンボルとしてシンボル10−1を選択し、次の時間帯には表示対象のシンボルとしてシンボル10−2を選択することを繰り返して実行してもよい。その結果、表示部22は、シンボル10−1とシンボル10−2とを交互に表示することになる。具体的には、選択部21は、あるシンボルを選択し、その選択したシンボルのデータを表示部22に渡してから一定時間が経過したことを、タイマを用いて検知すると、次のシンボルを選択し、その選択したシンボルのデータを表示部22に渡してもよい。そして、その処理を繰り返して実行することによって、複数のシンボルが時分割表示されることになる。また、3個以上のシンボルがある場合には、選択部21は、それらを順番に選択してもよい。
なお、位置算出装置1は、表示されたシンボルとの距離が遠い場合には、シンボル10−2に対応するシンボル画像を用いて位置の算出を行い、表示されたシンボルとの距離が近い場合には、シンボル10−1に対応するシンボル画像を用いて位置の算出を行うようにしてもよい。なお、どちらのシンボル画像を用いるのかについて判断する方法について簡単に説明する。位置算出部13は、例えば、一方のシンボル画像についてのみシンボル検出部12によって検出された場合には、その検出されたシンボル画像を用いて、シンボル画像の中心位置を算出してもよい。一方、両方のシンボル画像についてシンボル検出部12によって検出された場合には、位置算出部13は、両方のシンボル画像について正弦波のフィッティングを行い、波長の短い方のシンボル画像、または、フィッティングの誤差の小さい方のシンボル画像を用いた位置の検出を行うようにしてもよい。また、位置算出部13は、例えば、シンボル画像に応じて算出したシンボル位置を用いてシンボルと撮影部11との距離を算出し、その距離が閾値よりも大きい場合には、波長の長いシンボルを用いてシンボルの位置を算出するようにし、その距離が閾値よりも小さい場合には、波長の短いシンボルを用いてシンボルの位置を算出するようにしてもよい。
また、選択部21は、時分割でシンボルを選択するのではなく、位置算出装置1からの指示に応じて表示するシンボルを選択してもよく、または、撮影部11とシンボルとの距離に応じて表示するシンボルを切り替えてもよい。その場合には、シンボル表示装置2は、図14Bで示されるように、位置算出装置1からの指示、または、シンボルを撮影する撮影部11と、そのシンボルとの距離を受信する受信部23をさらに備えていてもよい。
まず、受信部23が、位置算出装置1からの指示を受信する場合について説明する。その場合には、受信部23は、表示するシンボルを識別する情報を含む表示指示を位置算出装置1から受信するものとする。そして、選択部21は、その指示に応じて、シンボルを選択する。例えば、図15のシンボル10−1を表示する旨の指示が受信された場合には、選択部21は、シンボル10−1を選択する。その結果、そのシンボル10−1が表示されることになる。その後、例えば、図15のシンボル10−2を表示する旨の指示が受信された場合には、選択部21は、シンボル10−2を選択する。その結果、そのシンボル10−2が表示されることになる。なお、位置算出装置1は、例えば、撮影部11とシンボルとの距離が閾値より遠い場合には、波長の大きいシンボル(例えば、図15のシンボル10−2)を表示する旨の指示をシンボル表示装置2に送信し、撮影部11とシンボルとの距離が閾値より近くなった場合には、波長の小さいシンボル(例えば、図15のシンボル10−1)を表示する旨の指示をシンボル表示装置2に送信してもよい。また、位置算出装置1は、まず、波長の小さいシンボルを表示する旨の指示をシンボル表示装置2に送信し、それに応じたシンボル位置の算出をできなかった場合に、波長の大きいシンボルを表示する旨の指示をシンボル表示装置2に送信してもよい。
次に、受信部23が、撮影部11とシンボルとの距離を受信する場合について説明する。その場合には、受信部23は、撮影部11とシンボルとの距離を、例えば、位置算出装置1から受信してもよく、または、他の装置から受信してもよい。例えば、撮影部11が産業用ロボットに装着されている場合には、その産業用ロボットの制御装置は、撮影部11の位置を知ることができる。したがって、その制御装置は、撮影部11の位置と、あらかじめ決められているシンボルの位置(この位置は、おおよその位置であってもよい)とを用いて、両者の距離を算出し、その距離をシンボル表示装置2に送信してもよい。選択部21は、受信部23が受信した距離に応じて、表示対象のシンボルを選択する。具体的には、選択部21は、その距離が大きいほど、単位長さあたりの変化の小さいシンボル(すなわち、波長の大きいシンボル)を選択してもよい。例えば、2個のシンボルを切り替えて表示する場合には、選択部21は、受信部23の受信した距離が閾値よりも大きい場合には、図15のシンボル10−2のように、単位長さあたりの変化の小さいシンボルを選択し、その距離が閾値よりも小さい場合には、図15のシンボル10−1のように、単位長さあたりの変化の大きいシンボルを選択してもよい。なお、その距離が閾値と等しい場合には、どちらのシンボルを選択してもよい。選択部21によって選択されたシンボルが表示部22によって表示されることは、上述の通りである。
このようなシンボル表示装置2によって表示されたシンボルは、上記(1)、(2)の両方において用いることができる。
また、同心円形状でないシンボルの例について説明する。同心円形状のシンボルでは、図2(c)で示されるように、測定線が厳密な中心から少しずれた場合に、明度の変化が図2(d)のようになり、厳密な正弦波でなくなる可能性がある。また、シンボルと撮影部11との距離が離れるにしたがって、光の干渉によって中心の円が暗く、または明るくなり、正しい正弦波をフィッティングできないこともある。そのため、以下、そのような問題の生じないシンボルについて説明する。図5Bで示されるシンボルは、色属性の変化のパターンの方向が正方形状に設けられたものである。すなわち、図5Bのシンボルでは、色属性の変化のパターンが、正方形状の各辺の方向に設けられている。したがって、そのシンボルの各辺の方向の測定線に沿って測定を行うことにより、光の干渉等を避けることができ、上述のような問題が生じないことになる。そのようなシンボルを用いてシンボルの中心位置である基準点を特定する方法について説明する。図16Aで示されるように、シンボル画像の各辺に沿った測定線10b〜10eについて正弦波のフィッティングを行い、対向する辺の中心位置(図16Aでは、対向する辺の中心のピークの位置)を結ぶ直線を引く。すると、その直線の交点が、シンボル画像の中心となる。そのようにして、シンボル画像の基準点(中心点)を特定することができる。なお、そのようなシンボルの場合に、測定線を、シンボル画像における各辺の方向と厳密に一致させることができるとは限らない。例えば、図16Bで示されるように、測定線と、シンボル画像の各辺(厳密には、各辺における色属性の変化の方向)とが同じ方向にならない場合もありうる。その場合には、例えば、図16Bで示されるように、対向する辺のピークの位置を結ぶ直線L5を特定し、その直線L5の方向の測定線と、その直線に直交する方向の測定線とを用いることによって、図16Cで示されるように、正確な中心点を特定することができるようになる。また、その図16Cで示される測定線に応じた正弦波の波長を測定することによって、シンボルの奥行き方向の位置も特定することができる。また、図16Bにおける直線L5の角度を取得することによって、位置算出部13は、シンボル画像の傾きも取得することができる。
なお、上述のようにすることによって、撮影部11の光軸と、シンボルの平面とが直交する場合に、シンボルの位置(例えば、水平・垂直方向の位置、及び奥行き方向の位置)を、上述の(1)で説明した方法によって算出することができる。また、シンボル検出部12が、図5Bで示されるシンボルを検出しやすくするため、例えば、図5Cで示されるように、シンボルの中心部分に、同心円形状の図形を追加したシンボルを用いてもよい。そして、シンボル検出部12は、その同心円形状の図形を用いてシンボルの検出を行い、位置算出部13は、図5Cで示されるシンボルのうち、図5Bで示される部分を用いて基準点の算出を行うようにしてもよい。また、図5Bでは、正方形状のシンボルについて示しているが、そのシンボルは、長方形状であってもよく、その他の多角形状であってもよく、または、円形状であってもよい。そのような場合であっても、多角形状の各辺の方向や、円形状の円周に沿った方向である周方向について、色属性がパターンに応じてなめらかに変化する方向が設けられているものとする。すなわち、シンボルは、色属性の変化のパターンが多角形状または円形状に設けられたものであってもよい。そして、位置算出部13は、上述のように、例えば、対向する2辺上の2点を結ぶ直線を用いて、中心位置等の基準点を算出することができ、その基準点を用いて、シンボルの位置を算出することができる。なお、色属性の変化のパターンの方向が多角形状や円形状に設けられているシンボルにおいて、その色属性の変化の方向に直交する方向の幅は、図5B等で示されるように、あまり大きくないことが好適である。シンボル画像が、全体として正方形状等の多角形状や円形状となり、パターンマッチング等によって、シンボル画像を検出できることが好適だからである。なお、円形状の周方向に色属性の変化の方向が設定されている場合には、測定線は、直線でなく、その周方向に沿った円形状または円弧形状のものであってもよい。また、上述のように、シンボルが多角形状である場合に、その多角形は、対向する平行な辺を有する多角形(例えば、矩形や正六角形、正八角形等)であることが好適である。その場合は、上述のようにして、対向する辺を結ぶ直線を用いて基準点を特定することができるからである。
出力部14は、位置算出部13が算出したシンボルの位置を出力する。ここで、この出力は、例えば、表示デバイス(例えば、CRTや液晶ディスプレイなど)への表示でもよく、所定の機器への通信回線を介した送信でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。なお、出力部14は、出力を行うデバイス(例えば、表示デバイスやプリンタなど)を含んでもよく、または含まなくてもよい。また、出力部14は、ハードウェアによって実現されてもよく、または、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
次に、位置算出装置1の動作について図17のフローチャートを用いて説明する。このフローチャートでは、上述の(1)または(2−1)の方法によってシンボルの位置を検出する場合について主に説明する。
(ステップS101)撮影部11は、シンボルを撮影する。すなわち、撮影部11は、シンボル画像の含まれる撮影画像を取得する。
(ステップS102)シンボル検出部12は、撮影画像においてシンボル画像を検出する。なお、撮影部11が撮影する方向によっては、撮影画像にシンボル画像が含まれていないこともある。すなわち、シンボル検出部12によって、シンボル画像を検出することができないこともある。その場合には、シンボル画像が検出されるまで、ステップS101,S102の処理を繰り返して実行してもよい。
(ステップS103)位置算出部13は、例えば、水平方向や垂直方向の測定線に応じた正弦波を特定することによって、または、楕円形状のシンボル画像の長軸方向及び短軸方向を特定することによって、シンボル画像の中心点である基準点を特定する。
(ステップS104)位置算出部13は、ステップS103で特定した基準点に対応する水平方向及び垂直方向の空間上の位置を特定する。その特定は、例えば、撮影画像における基準点の座標を位相で表すことによって行われてもよい。
なお、シンボルの傾きも算出する場合には、位置算出部13は、例えば、長軸方向の長さと短軸方向の長さとの比を用いた傾きの算出等を行ってもよい。
(ステップS105)位置算出部13は、シンボル画像における色属性の変化に関する波長を特定し、その波長に応じた、奥行き方向の位置を特定する。なお、シンボル画像が楕円形状である場合には、長軸方向の波長を用いることによって、その奥行き方向の位置の特定を行うものとする。
(ステップS106)出力部14は、位置算出部13が算出したシンボルの位置を出力する。その出力対象であるシンボルの位置は、例えば、ある座標系におけるシンボルの中心位置の座標であってもよく、シンボルの平面の傾きに関する情報も含んでいてもよい。
なお、図17のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。また、上述の(2−2)の方法によってシンボルの位置を検出する場合には、位置算出部13は、ステップS103において、複数の基準点を特定し、ステップS104,S105に代えて、その特定した複数の基準点を用いたシンボルの位置の算出を行ってもよい。
また、シンボルは、図5Dで示されるように、シンボル10の表示されたシート3を、位置を特定したい箇所に取り付けることによって、所望の箇所の位置を算出できるようになる。なお、その際に、シンボル10の中心位置(基準点)が、位置を特定したい箇所となるようにシート3を取り付けることが好適である。
以上のように、本実施の形態による位置算出装置1によれば、シンボルにおいて色属性がなめらかに変化する方向を利用して、撮影画像における色属性の変化のパターンと、あらかじめ決められている色属性の変化のパターンとをフィッティングさせることにより、撮影画像におけるシンボル位置をより適切に算出することができる。そのため、例えば、撮影部11の画素数以上の分解能でシンボルの位置を算出することも可能となる。また、カメラには被写界深度の問題があるため、シンボルとの距離が遠くから近くまでの広範囲にわたる場合に、1つのカメラで撮影することは困難であったが、色属性がなめらかに変化する方向を有するシンボルを用いることによって、撮影部11とシンボルとの距離のより広範囲に対応することができるようになる。それは、撮影部11の光学系のピントがシンボルに合わなかったとしても、正弦波等の形状は保たれるため、基準点の位置の特定が可能となるからである。また、色属性の変化が周期的である場合には、シンボル画像の一部に欠損があったとしても、色属性の変化の周期性を用いて、その欠損を修復することもできる。そのため、レンズのゴミや、カメラの暗ノイズ、証明のムラ等のノイズに強い位置検出を実現することができる。また、図5Aで示されるような、色属性の複数の変化のパターンのそれぞれについて、2以上の変化の方向を有するシンボルを用いることによって、より広範囲の距離に対応できるようになる。また、シンボル表示装置2を用いることによっても、より広範囲の距離に対応できる。また、位置算出装置1では、1台の撮影部11を用いることによってシンボルの位置を特定できるため、ステレオカメラを用いた場合よりも、より簡易な構成とすることができる。また、シンボルが同心円形状のようにシンプルな形状である場合には、特徴点抽出等の複雑な処理を行わなくても、簡単な円形のパターンマッチングの処理を行うことによって、シンボル画像を検出することができる。
なお、上記説明では、産業用ロボットが撮影部11を有している場合について主に説明したが、そうでなくてもよい。産業用ロボット以外の分野において、本実施の形態による位置算出装置1を用いた位置の算出が行われてもよいことは言うまでもない。
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、または、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いる閾値や数式、アドレス等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、または長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、または、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、または、図示しない読み出し部が行ってもよい。
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いる閾値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、または、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
また、上記実施の形態において、位置算出装置1に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、または、別々のデバイスを有してもよい。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、または、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現されうる。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。