【手続補正書】
【提出日】平成27年7月2日(2015.7.2)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
【図１】本発明の実施形態に係るロボット装置の概略構成を示す斜視図である。
【図２】本実施形態に係るロボット装置の制御装置を示すブロック図である。
【図３】第１実施形態に係るカメラ制御部の構成を示すブロック図である。
【図４】第１実施形態に係る３次元座標の計測を示すフローチャートである。
【図５】第１実施形態に係る基準カメラ、参照カメラ及びワークを示す模式図である。
【図６】エピポーラ線を用いた対応点の求め方を説明するための図である。
【図７】第１エッジ線の第１端点及び第２エッジ線の第２端点の視線誤差を説明するための模式図である。
【図８】第１実施形態に係るエッジ線間の対応付けを行った際のデータ構造を示す図である。
【図９】第１実施形態に係るエッジ線間の３次元拘束条件を説明するための模式図である。
【図１０】第２実施形態に係るカメラ制御部の構成を示すブロック図である。
【図１１】第２実施形態に係る３次元座標の計測を示すフローチャートである。
【図１２】第２実施形態に係る視線誤差と視平面誤差とを説明するための模式図である。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
＜第１実施形態＞
以下、本発明の第１実施形態に係るロボット装置１について、図１から図９を参照しながら説明する。まず、ロボット装置１の概略構成について、図１から図３を参照しながら説明する。図１は、本発明の実施形態に係るロボット装置１を示す斜視図である。図２は、本実施形態に係るロボット装置１の制御装置４の構成を示すブロック図である。図３は、第１実施形態に係るカメラ制御部５の構成を示すブロック図である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
次に、基準カメラ２２でワーク１０を撮像して第１画像としての基準画像面２２ａを取得し、取得した基準画像面２２ａに対して、ワーク１０の複数のエッジ線を抽出するエッジ線抽出処理を行う（ステップＳ１０１、第１画像エッジ線抽出工程）。具体的には、まず、基準画像面２２ａに対して、ソーベルフィルタやキャニーフィルタ等のエッジ抽出フィルタを用い、輝度変化が最大となる点を、エッジ点群として抽出する。次に、抽出したエッジ点群に対して、直線近似の処理を行うとともに線分に分割し、それぞれの端点の画像座標（画素の位置）を求める。画像座標に関しては、画素単位の値としても構わないが、高精度の計測を行うためにはサブピクセル精度の処理を用いることが望ましい。本実施形態においては、エッジ点群を線分に近似したものを、エッジ線と呼ぶ。同様に、参照カメラ２３でワーク１０を撮像した第２画像としての参照画像面２３ａに対して、ワーク１０の複数のエッジ線を抽出するエッジ線抽出処理を行う（ステップＳ１０１、第２画像エッジ線抽出工程）。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
次に、基準画像面２２ａにおいて抽出された複数のエッジ線が、参照画像面２３ａでどこに撮影されているかを特定する対応付け処理を行い、ＲＯＭ４１ａに記憶させる。つまり、基準画像面２２ａから抽出された複数のエッジ線と、参照画像面２３ａから抽出された複数のエッジ線と、の対応付けを行い、これを記憶しておく。対応付け処理は、対応付け終了と判定されるまで続けて行われる（ステップＳ１０２〜Ｓ１０６）。なお、対応付け自体は、ユーザがＵＩ上で画像を見ながら同一と思われるエッジ線を指定してもよく、カメラ制御部５が画像相関を用いて類似の画像パターンを検出することで選択する公知の手法を用いてもよい。具体的には、基準画像面２２ａから抽出した複数のエッジ線から１つのエッジ線（第１エッジ線）を選択し（ステップＳ１０３）、参照画像面２３ａ内でそれと対応するエッジ線（第２エッジ線）を選択する（ステップＳ１０４）。関連づけた第１エッジ線と第２エッジ線とに対して、後述の処理を行うことにより、３次元空間での１本のエッジ線が求まる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
ステップＳ１０１において、例えば、選択した第１エッジ線の端点の画像座標が分かっているので、第１エッジ線の端点に対する参照画像面２３ａ上のエピポーラ線と参照画像面２３ａ上の第２エッジ線との交点を求めることで、対応点の座標を求めることができる。例えば、図６に示すように、エピポーラ拘束を用いて基準画像面２２ａと参照画像面２３ａで共通に撮影されている部分を判定し、それぞれの端点を求める。なお、図６においては、基準画像面２２ａと参照画像面２３ａとの間で、同種の破線で表されたエピポーラ線がそれぞれ対応している。この対応点計算処理を行うことにより、ｉ番目のエッジ線の対応に対して、各々の画像上での画像点ＰＬｉ１、ＰＬｉ２、ＰＲｉ１、ＰＲｉ２の画像座標が求まる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】変更
【補正の内容】
【００４６】
次に、ステップＳ１０５で求めた対応点の画像座標を用いて、未知の３次元座標Ｘｉｊに対する視線誤差項を求める（ステップＳ１０６、視線誤差演算工程）。ここで、添え字ｉは、ｉ番目のエッジ線対応を表し、添え字ｊは、ｊ＝１、２がそれぞれエッジ線の両端点に対応している。視線誤差項としては、レンズ主点ＯＬ、ＯＲと画像点ＰＬｉｊ、ＰＲｉｊとを結ぶ基準画像視線２４、参照画像視線２５を考えた際に、基準画像視線２４及び参照画像視線２５から３次元座標Ｘｉｊまでの距離ｄＬｉｊ、ｄＲｉｊに応じて値が大きくなるように定める。ここで、「基準画像視線２４、参照画像視線２５から３次元座標Ｘｉｊまでの距離ｄＬｉｊ、ｄＲｉｊ」とは、図７に示すように、３次元座標Ｘｉｊから基準画像視線２４、参照画像視線２５のそれぞれに降ろした垂線の長さである。本実施形態においては、基準画像視線２４、参照画像視線２５から３次元座標Ｘｉｊまでの距離ｄＬｉｊ、ｄＲｉｊの自乗和を、視線誤差項として用いる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
【数７】
2014013147.tif 000001
となる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００５８
【補正方法】変更
【補正の内容】
【００５８】
ここで、評価関数Ｆの視線誤差項部分Ｆｓｉｇｈｔ（Ｎ）は、（ｘ１１、ｙ１１、ｚ１１、ｘ１２、ｙ１２、ｚ１２、・・・、ｘＮ１、ｙＮ１、ｚＮ１、ｘＮ２、ｙＮ２、ｚＮ２）の６Ｎ個の変数をもつ関数である。理解を助けるため、ステップＳ１０２のループを抜けた時点での対応づけのデータ構造例を図８に示す。対応付けのｉ回目に基準画像面２２ａのエッジ線Ｌα（ｉ）と参照画像面２３ａのエッジ線Ｒβ（ｉ）を対応づけたとすると、その組合せに対して３次元エッジ線Ｅｉが定義される。基準画像面２２ａにおけるエッジ線Ｌα（ｉ）上の画像点ＰＬｉ１、ＰＬｉ２と、参照画像面２３ａにおけるエッジ線Ｒβ（ｉ）上の点ＰＲｉ１、ＰＲｉ２がそれぞれ対応点として求められる。さらに、それぞれの３次元エッジ線Ｅｉは、Ｘｉ１＝Ｔ（ｘｉ１、ｙｉ１、ｚｉ１）とＸｉ２＝Ｔ（ｘｉ２、ｙｉ２、ｚｉ２）との２つの端点を持っている。さらに、端点の３次元座標Ｘｉｊ（ｉ＝１、２、・・・Ｎ、ｊ＝１、２）のそれぞれについて、視線誤差項（ｄＬｉｊ２＋ｄＲｉｊ２）が定義されている。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００６１
【補正方法】変更
【補正の内容】
【００６１】
さらに、Ｓ１１０において、ステップＳ１０８〜Ｓ１０９で選択した２本のエッジ線に対して、エッジ線間の幾何的な３次元拘束条件を選択する。つまり、ワーク１０について事前に分かっている、エッジ線間の位置関係を設定する。本実施形態においては、２エッジ線間の幾何関係のうち、「２エッジ線が同一平面上にある」、「２エッジ線が同一直線上にある」、「２エッジ線の方向が平行である」及び「２エッジ線の方向が垂直である」、の４種類を取り扱う。以上の４種類の３次元拘束条件のうち、１つを選択してステップＳ１１１に進む。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
【数１５】
2014013147.tif 000002
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００８１
【補正方法】変更
【補正の内容】
【００８１】
【数１６】
2014013147.tif 000003
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００９６
【補正方法】変更
【補正の内容】
【００９６】
基本的な流れとしては、まず、基準カメラ２２と参照カメラ２３とで、複数の異なる視点から撮影した基準画像面２２ａと、参照画像面２３ａと、に対してエッジ線の抽出を行う（ステップＳ３０１）。次に、対応づけの追加を繰り返すか否かを判定する（ステップＳ３０２）。そして、基準画像面２２ａの複数のエッジ線の中から第１エッジ線を選択して、参照画像面２３ａから対応する第２エッジ線を選択する（対応付けを行う）（Ｓ３０３〜Ｓ３０４）。そして、基準画像面２２ａの第１エッジ線に関して視線誤差項を計算する（Ｓ３０５）。同様に、参照画像面２３ａに関して視平面誤差項を計算する（Ｓ３０６）。さらに、対応付けを行った２本のエッジ線間に幾何的な３次元拘束条件を設定し、３次元拘束条件項を計算する（Ｓ３０７〜Ｓ３１１）。最後に、視線誤差項、視平面誤差項及び３次元拘束条件項を含んだ評価関数の値が最小となるように最適化問題を解き、３次元座標を求める（Ｓ３１２）。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
参照画像視平面２６と未知の点Ｘとの距離ｄは、原点ＯＲからＸに向かうベクトルの、法線方向成分の大きさである。よって、視平面誤差項ｄ´Ｒｉｊは、下記のように表すことができる。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】０１０６
【補正方法】変更
【補正の内容】
【０１０６】
誤差項を加えたあとは、ステップＳ３０２に戻り、追加の対応付けを終了するか否かの判断を行い、終了と判定されるまでステップＳ３０２〜Ｓ３０６の処理を繰り返す。処理を繰り返すたびに視線誤差項ｄＬｉｊ２と視平面誤差項ｄ´Ｒｉｊ２が追加される。その結果、Ｎ回の繰り返しを行った場合の評価関数Ｆの誤差項部分Ｆｓｉｇｈｔ（Ｎ）は、下記のようになる。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】０１１０
【補正方法】変更
【補正の内容】
【０１１０】
【数２５】
2014013147.tif 000004
で表される。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】０１１４
【補正方法】変更
【補正の内容】
【０１１４】
また、本実施形態に係る３次元位置の計測方法によれば、３次元座標を計算する際に「エピポーラ拘束を用いて対応点を一意に求める」という処理を行う必要がなくなる。そのため、基準画像面２２ａから抽出した第１エッジ線に対して先に参照画像面２３ａ上の対応点を求める必要がなくなる。これにより、カメラパラメータの誤差やエッジ線抽出の誤差等によってエピポーラ拘束自体が満たされていない場合は、対応点を求める方法を用いた場合は対応点が正確でなくなるが、本実施形態の方法を用いることで、この影響を軽減することができる。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】０１１８
【補正方法】変更
【補正の内容】
【０１１８】
１、１Ａ    ロボット装置
２    ロボット
５、５Ａ    カメラ制御部（制御部）
１０    ワーク
２２    基準カメラ（第１カメラ）
２２ａ    基準画像面（第１画像）
２３    参照カメラ（第２カメラ）
２３ａ    参照画像面（第２画像）
【手続補正１８】
【補正対象書類名】図面
【補正対象項目名】図１
【補正方法】変更
【補正の内容】
【図１】
2014013147.tif 000005