(57)【特許請求の範囲】
【請求項１】
撮影対象物の撮影対象表面の立体形状を計測する計測部と、
複数の関節を備えたマニュピレータに取り付けられて前記撮影対象表面を撮影するカメラと、
前記計測部が計測した前記撮影対象表面の立体形状に基づいて、前記カメラのレンズの光軸が前記撮影対象表面と垂直になるように前記カメラを保持すると共に前記カメラを前記撮影対象表面に倣って移動させるように前記マニュピレータを制御する制御部と、
を含む外観撮影装置であって、
前記制御部は、前記計測部が計測した前記撮影対象表面の立体形状に基づいて、前記撮影対象表面に予め複数設定された撮影対象点における前記撮影対象表面の法線と、水平面への正射影が撮影時の前記カメラの水平方向の移動方向と略一致する前記撮影対象表面の接線と、を算出し、前記カメラのレンズの光軸が前記法線と一致するように前記カメラを保持すると共に前記カメラを前記接線の方向に移動させるように前記マニュピレータを制御する外観撮影装置。
【請求項２】
前記制御部は、前記撮影対象点の座標及び前記撮影対象点の近くの複数の座標から算出した前記撮影対象表面の接平面に平行な最小二乗平面の方程式から前記法線を算出する請求項１記載の外観撮影装置。
【請求項３】
前記制御部は、前記撮影対象点を通り、水平面への正射影が撮影時の前記カメラの水平方向の移動方向と略一致する曲線の方程式を３つ以上の撮影対象点の座標値を用いて算出し、該曲線の方程式を用いて前記３つ以上の撮影対象点の間で前記接線を算出する請求項１又は２記載の外観撮影装置。
【請求項４】
前記カメラと共に前記マニュピレータに取り付けられ、前記撮影対象表面を照明する照明装置を備え、
前記制御部は、該照明装置を前記カメラと共に前記撮影対象表面に倣って移動させるように前記マニュピレータを制御する請求項１〜３のいずれか１項記載の外観撮影装置。
【請求項５】
撮影対象物の撮影対象表面の立体形状を計測する手順と、
計測した前記撮影対象表面の立体形状に基づいて、複数の関節を備えたマニュピレータに取り付けられて前記撮影対象表面を撮影するカメラのレンズの光軸が前記撮影対象表面と垂直になるように前記カメラを保持すると共に前記カメラを前記撮影対象表面に倣って移動させるように前記マニュピレータを制御する手順と、
を含む外観撮影方法であって、
前記マニュピレータを制御する手順は、
前記計測した前記撮影対象表面の立体形状に基づいて、前記撮影対象表面に予め複数設定された撮影対象点における前記撮影対象表面の法線を算出する手順と、
水平面への正射影が撮影時の前記カメラの水平方向の移動方向と略一致する前記撮影対象表面の接線を算出する手順と、
前記カメラのレンズの光軸が前記法線と一致するように前記カメラを保持すると共に前記カメラを前記接線の方向に移動させるように前記マニュピレータを制御する手順と、
を含む外観撮影方法。
【請求項６】
前記法線を算出する手順は、前記撮影対象点の座標及び前記撮影対象点の近くの複数の座標から算出した前記撮影対象表面の接平面に平行な最小二乗平面の方程式から前記法線を算出する請求項５記載の外観撮影方法。
【請求項７】
前記接線を算出する手順は、前記撮影対象点を通り、水平面への正射影が撮影時の前記カメラの水平方向の移動方向と略一致する曲線の方程式を３つ以上の撮影対象点の座標値を用いて算出し、該曲線の方程式を用いて前記３つ以上の撮影対象点の間で前記接線を算出する請求項５又は６記載の外観撮影方法。
【請求項８】
前記カメラと共に前記マニュピレータに取り付けられた前記撮影対象表面を照明する照明装置を前記カメラと共に前記撮影対象表面に倣って移動させるように前記マニュピレータを制御する手順を含む請求項５〜７のいずれか１項記載の外観撮影方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外観撮影装置及び外観撮影方法に関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）分野において、製品をカメラで撮影し、当該撮影の画像データから製品の良否を判定する検査装置が用いられている。しかしながら、撮影対象製品が曲面で構成されている場合には、単にカメラを水平方向に移動させて撮影すると、撮影対象製品の画像上での大きさが一定せず、精密な撮影が困難であった。また、撮影用の照明の光が局部的に強く反射する照明ムラが生じるおそれがある。かかる照明ムラが生じると、撮影画像にはレンズフレア等が発生して、撮影対象製品の表面の描写が不完全になる場合があった。
【０００３】
特許文献１には、コンベヤにより搬送される車両とカメラとを相対移動させながら車体側面部の塗装面を撮影した上で、画像処理により上記塗装面における表面欠陥を抽出する自動車車体の外観検査装置の発明が開示されている。
【０００４】
特許文献２には、検査対象の表面を、所定の曲率の範囲に納まるまで分割し、分割後の領域毎に画像を取得することにより、検査対象の表面が曲率が一定でない曲面であっても、略平面とみなせる単位で撮影を行う外観検査支援装置の発明が開示されている。
【０００５】
特許文献３には、カメラを取り付けたロボットアームを予め定められた経路に従って移動させ、カメラにより撮影された画像を取り込み、傷を検出して位置を表示する表面検査装置の発明が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−８１３５６号公報
【特許文献２】特開２０１１−１８００５９号公報
【特許文献３】特開２００８−４６１０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に開示されている自動車車体の外観検査装置は、自動車車体を対象としているため、装置が大がかりであり、高額な設備投資を要するという問題点があった。
【０００８】
特許文献２に開示されている外観検査支援装置は、撮影対象物の曲率が大きい場合、又は撮影対象物が長尺の場合には、略平面とみなせる単位で撮影を行う回数が甚大となり、検査時間が長くかかるという問題点があった。
【０００９】
特許文献３に開示されている表面検査装置は、カメラの撮影位置や角度を設定するティーチング処理で、複数のレーザ光源を使用する必要があり、装置全体が複雑化すると共に、ティーチング処理を含めた制御が煩雑になるという問題点があった。
【００１０】
本発明は上記に鑑みてなされたもので、簡素な構成で曲面からなる撮影対象物を精密に撮影できる外観撮影装置及び外観撮影方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
前記課題を解決するために、請求項１に記載の外観撮影装置は、撮影対象物の撮影対象表面の立体形状を計測する計測部と、複数の関節を備えたマニュピレータに取り付けられて前記撮影対象表面を撮影するカメラと、前記計測部が計測した前記撮影対象表面の立体形状に基づいて、前記カメラのレンズの光軸が前記撮影対象表面と垂直になるように前記カメラを保持すると共に前記カメラを前記撮影対象表面に倣って移動させるように前記マニュピレータを制御する制御部と、を含む外観撮影装置であって、前記制御部は、前記計測部が計測した前記撮影対象表面の立体形状に基づいて、前記撮影対象表面に予め複数設定された撮影対象点における前記撮影対象表面の法線と、水平面への正射影が撮影時の前記カメラの水平方向の移動方向と略一致する前記撮影対象表面の接線と、を算出し、前記カメラのレンズの光軸が前記法線と一致するように前記カメラを保持すると共に前記カメラを前記接線の方向に移動させるように前記マニュピレータを制御する。
【００１２】
この外観撮影装置は、撮影前に撮影対象部の表面の立体形状を計測し、計測した立体形状に基づいてカメラアングル及びカメラを移動させる方向を決定する。カメラアングルは、カメラのレンズの光軸が撮影対象物の表面と垂直になるように制御され、カメラの移動方向は、撮影対象物の表面に倣うように制御される。
【００１３】
かかる制御により、撮影対象物に対して真っ直ぐにレンズを向けられるとともに、カメラと撮影対象物との距離が略一定に保たれるので、簡素な構成ながら曲面からなる撮影対象物を精密に撮影できる。
【００１５】
また、この外観撮影装置によれば、カメラのレンズの光軸が撮影対象物の表面の法線と一致するようにカメラを保持すると共にカメラを水平面への正射影が撮影時のカメラの水平方向の移動方向と略一致する接線の方向に移動させることにより曲面からなる撮影対象物を精密に撮影できる。
【００１６】
請求項２に記載の外観撮影装置は、請求項１記載の外観撮影装置において、前記制御部は、前記撮影対象点の座標及び前記撮影対象点の近くの複数の座標から算出した前記撮影対象表面の接平面に平行な最小二乗平面の方程式から前記法線を算出する。
【００１７】
この外観撮影装置によれば、撮影対象点近くの複数の座標から最小二乗法によって算出した撮影対象物の表面の接平面に平行な最小二乗平面の方程式から法線を算出することにより、カメラのレンズの光軸方向を決定できる。
【００１８】
請求項３に記載の外観撮影装置は、請求項１又は２記載の外観撮影装置において、前記制御部は、前記撮影対象点を通り、水平面への正射影が撮影時の前記カメラの水平方向の移動方向と略一致する曲線の方程式を３つ以上の撮影対象点の座標値を用いて算出し、該曲線の方程式を用いて前記３つ以上の撮影対象点の間で前記接線を算出する。
【００１９】
この外観撮影装置によれば、撮影対象物の曲面を３つ以上の撮影対象点を通ると仮想した曲線の方程式を算出し、当該方程式を用いて当該曲線上の接線を算出することにより、カメラの移動方向を連続的に算出することができる。
【００２０】
請求項４に記載の外観撮影装置は、請求項１〜３のいずれか１項記載の外観撮影装置において、前記カメラと共に前記マニュピレータに取り付けられ、前記撮影対象表面を照明する照明装置を備え、前記制御部は、該照明装置を前記カメラと共に前記撮影対象表面に倣って移動させるように前記マニュピレータを制御する。
【００２１】
この外観撮影装置によれば、照明と撮影対象物との距離を一定に保ったまま撮影対象物の表面を撮影できるので、曲面からなる撮影対象物を照明ムラなく撮影できる。
【００２２】
前記課題を解決するために、請求項５に記載の外観撮影方法は、撮影対象物の撮影対象表面の立体形状を計測する手順と、計測した前記撮影対象表面の立体形状に基づいて、複数の関節を備えたマニュピレータに取り付けられて前記撮影対象表面を撮影するカメラのレンズの光軸が前記撮影対象表面と垂直になるように前記カメラを保持すると共に前記カメラを前記撮影対象表面に倣って移動させるように前記マニュピレータを制御する手順と、を含む外観撮影方法であって、前記マニュピレータを制御する手順は、前記計測した前記撮影対象表面の立体形状に基づいて、前記撮影対象表面に予め複数設定された撮影対象点における前記撮影対象表面の法線を算出する手順と、水平面への正射影が撮影時の前記カメラの水平方向の移動方向と略一致する前記撮影対象表面の接線を算出する手順と、前記カメラのレンズの光軸が前記法線と一致するように前記カメラを保持すると共に前記カメラを前記接線の方向に移動させるように前記マニュピレータを制御する手順と、を含んでいる。
【００２３】
この外観撮影方法は、撮影前に撮影対象部の表面の立体形状を計測し、計測した立体形状に基づいてカメラアングル及びカメラを移動させる方向を決定する。カメラアングルは、カメラのレンズの光軸が撮影対象物の表面と垂直になるように制御され、カメラの移動方向は、撮影対象物の表面に倣うように制御される。
【００２４】
かかる制御により、撮影対象物に対して真っ直ぐにレンズを向けられるとともに、カメラと撮影対象物との距離が略一定に保たれるので、簡素な構成ながら曲面からなる撮影対象物を精密に撮影できる。
【００２６】
また、この外観撮影方法によれば、カメラのレンズの光軸が撮影対象物の表面の法線と一致するようにカメラを保持すると共にカメラを水平面への正射影が撮影時のカメラの水平方向の移動方向と略一致する接線の方向に移動させることにより曲面からなる撮影対象物を精密に撮影できる。
【００２７】
請求項６に記載の外観撮影方法は、請求項５記載の外観撮影方法において、前記法線を算出する手順は、前記撮影対象点の座標及び前記撮影対象点の近くの複数の座標から算出した前記撮影対象表面の接平面に平行な最小二乗平面の方程式から前記法線を算出する。
【００２８】
この外観撮影方法によれば、撮影対象点近くの複数の座標から最小二乗法によって算出した撮影対象物の表面の接平面に平行な最小二乗平面の方程式から法線を算出することにより、カメラのレンズの光軸方向を決定できる。
【００２９】
請求項７に記載の外観撮影方法は、請求項５又は６記載の外観撮影方法において、前記接線を算出する手順は、前記撮影対象点を通り、水平面への正射影が撮影時の前記カメラの水平方向の移動方向と略一致する曲線の方程式を３つ以上の撮影対象点の座標値を用いて算出し、該曲線の方程式を用いて前記３つ以上の撮影対象点の間で前記接線を算出する。
【００３０】
この外観撮影方法によれば、撮影対象物の曲面を３つ以上の撮影対象点を通ると仮想した曲線の方程式を算出し、当該方程式を用いて当該曲線上の接線を算出することにより、カメラの移動方向を連続的に算出することができる。
【００３１】
請求項８に記載の外観撮影方法は、請求項５〜７のいずれか１項記載の外観撮影方法において、前記カメラと共に前記マニュピレータに取り付けられた前記撮影対象表面を照明する照明装置を前記カメラと共に前記撮影対象表面に倣って移動させるように前記マニュピレータを制御する手順を含む。
【００３２】
この外観撮影方法によれば、照明と撮影対象物との距離を一定に保ったまま撮影対象物の表面を撮影できるので、曲面からなる撮影対象物を照明ムラなく撮影できる。
【図面の簡単な説明】
【００３３】
【図１】第１の実施の形態に係る外観撮影装置の構成を示す概略図である。
【図２】第１の実施の形態に係る外観撮影装置の一例を示したブロック図である。
【図３】第１の実施の形態に係る外観撮影装置における撮影処理の一例を示したフローチャートである。
【図４】第１の実施の形態に係る外観撮影装置における撮影時でのラインスキャンカメラの移動方向及びカメラアングルの変化の一例を示した概略図である。
【図５】第１の実施の形態における最適カメラ姿勢算出処理の一例を示したフローチャートである。
【図６】第１の実施の形態における撮影対象物の断面データの一例を示した概略図である。
【図７】第１の実施の形態において断面データから作成された３次元メッシュ形状の一例を示した概略図である。
【図８】第１の本実施の形態において得られる撮影対象物のポリゴン形式データの概略図の一例である。
【図９】ポリゴンの撮影対象点と最小二乗平面と法線ベクトルとの関係を示した概略図である。
【図１０】撮影対象物に対応するポリゴンにおいて、水平方向の変位ｔと垂直方向の変位ｚとの関係を示す模式図である。
【図１１】第１の本実施の形態においてカメラ視線方向である法線ベクトル及びカメラ移動方向である接線ベクトルをポリゴン上にプロットした一例を示した概略図である。
【図１２】第２の実施の形態に係る外観撮影装置の構成を示す概略図である。
【図１３】第１の実施の形態及び第２の実施の形態の変形例の一例を示した概略図である。
【図１４】第１の実施の形態及び第２の実施の形態の、もう一つの変形例を示す概略図である。
【発明を実施するための形態】
【００３４】
［第１の実施の形態］
図１は、本実施の形態に係る外観撮影装置１０の構成を示す概略図である。外観撮影装置１０は、複数の関節を備えたマニュピレータである垂直多関節ロボットの一種である６軸ロボット２０と、６軸ロボット２０及び６軸ロボットの先端に取り付けられたラインスキャンカメラ４２等を制御するための制御装置３０とを含んでいる。
【００３５】
６軸ロボット２０は、第１関節２０Ｘ、第２関節２０Ｙ及び第３関節２０Ｚを備え、第１関節２０Ｘは、第２関節２０Ｙ及び第３関節２０Ｚは、各々、いわゆる２軸関節であり、第１の軸線回りに回転する第１旋回要素と、第１の軸線と交差する第２の軸線回りに回転する第２旋回要素とを有している。
【００３６】
具体的には、第１関節２０Ｘは、第１旋回要素Ｘと第１旋回要素Ｘと交差する第２旋回要素ＲＸとで可動可能に構成されている。また、第２関節２０Ｙは、第１旋回要素Ｙと第１旋回要素Ｙと交差する第２旋回要素ＲＹとで可動可能に、第３関節２０Ｚは、第１旋回要素Ｚと第１旋回要素Ｚと交差する第２旋回要素ＲＺとで可動可能に、各々構成されている。
【００３７】
第１旋回要素Ｘと第２旋回要素ＲＸとの交差角は例えば略９０度であるが、６軸ロボット２０の仕様により９０度以外の値を取りうる。同様に、第１旋回要素Ｙと第２旋回要素ＲＹとの交差角、及び第１旋回要素Ｚと第２旋回要素ＲＺとの交差角も、各々６軸ロボット２０の仕様によって９０度以外の値を取りうる。
【００３８】
６軸ロボット２０の第１関節２０Ｘの端部には撮影対象物５０を撮影するためのラインスキャンカメラ４２とラインスキャンカメラ４２の撮影時に点灯する照明４２Ａが取り付けられている。６軸ロボット２０の第１関節２０Ｘの端部にはラインスキャンカメラ４２以外にも、撮影対象物５０の表面形状を計測する２次元レーザ変位計（図示せず）を取り付けることも可能である。
【００３９】
ラインスキャンカメラ４２は、撮影対象物５０の表面を所定幅のライン単位でスキャンする毎にビデオ信号を出力するカメラであり、撮影対象物５０の表面を高解像度で撮影することができる。
【００４０】
また、２次元レーザ変位計は、発光素子である半導体レーザと、ＣＣＤ（Charge Coupled Device）等の受光素子とを含んでいる。２次元レーザ変位計は、発光素子から照射されたレーザの撮影対象物５０表面による反射光を受光素子で検出することにより、撮影対象物５０までの距離と撮影対象物５０の幅を同時に測定する。
【００４１】
例えば、２次元レーザ変位計は、撮影対象物５０の表面で拡散反射したレーザを受光素子上に結像させ、受光素子上の像の位置及び形状の変化を検出することで撮影対象物５０との距離の変位と撮影対象物５０の形状とを測定する。
【００４２】
なお、本実施の形態では、２次元レーザ変位計とラインスキャンカメラ４２とは、同時に６軸ロボット２０の第１関節２０Ｘの端部には取り付けない。撮影対象物５０の表面形状を計測する場合には２次元レーザ変位計を、撮影対象物５０を撮影する場合にはラインスキャンカメラ４２を、６軸ロボット２０の第１関節２０Ｘの端部に各々取り付ける。
【００４３】
制御装置３０は、２次元レーザ変位計の制御を行う変位計コントローラ３２、ラインスキャンカメラ４２を制御するカメラコントローラ３４、及び６軸ロボット２０の動作を制御するロボットコントローラ３６を含んでいる。また制御装置３０は、２次元レーザ変位計の計測データ及びラインスキャンカメラ４２の撮影データを処理するデータ処理装置３８を備えている。
【００４４】
図２は、本実施の形態に係る外観撮影装置１０の一例を示したブロック図である。図２に示したように、制御装置３０は、変位計コントローラ３２によって２次元レーザ変位計４４を制御すると共に、ロボットコントローラ３６によって端部に２次元レーザ変位計が設けられた６軸ロボット２０を例えば撮影対象物５０の一端から他端までスキャンするように制御する。
【００４５】
２次元レーザ変位計４４が撮影対象物５０をスキャンしたデータはデータ処理装置３８で処理され、撮影対象物５０の立体的な形状が算出される。さらに、算出した形状から撮影時にラインスキャンカメラ４２を移動させる方向を算出し、ラインスキャンカメラ４２を当該方向へ移動させる際の６軸ロボット２０の各関節の動きを算出する。
【００４６】
制御装置３０は、ロボットコントローラ３６により、６軸ロボット２０の各関節がデータ処理装置３８によって算出した動きになるように制御すると共に、カメラコントローラ３４によりラインスキャンカメラ４２を制御して撮影対象物５０を撮影する。
【００４７】
制御装置３０は、専用に設計された装置でもよいが、パーソナルコンピュータ又はＰＬＣ（Programmable Logic Controller）等の汎用機を用いてもよい。汎用機を用いる場合には、２次元レーザ変位計４４、ラインスキャンカメラ４２及び６軸ロボット２０を各々制御するためのソフトウェア、並びに２次元レーザ変位計４４の計測データに基づいて、ラインスキャンカメラ４２の移動方向とカメラアングルとを算出するソフトウェアをインストールして使用する。
【００４８】
以下に、本実施の形態に係る外観撮影装置１０の作用及び効果について説明する。図３は、本実施の形態に係る外観撮影装置１０における撮影処理の一例を示したフローチャートである。
【００４９】
ステップ８００では、６軸ロボット２０の第１関節２０Ｘの端部に取り付けた２次元レーザ変位計４４を用いて撮影対象物５０の表面形状を測定する。ステップ８０２では２次元レーザ変位計４４による計測データをデータ処理装置３８の記憶装置に格納する。
【００５０】
ステップ８０４では、記憶装置に格納された計測データに基づいて、ラインスキャンカメラ４２の移動方向とカメラアングルとを算出する最適カメラ姿勢算出処理が行われる。最適カメラ姿勢算出処理の詳細については、後述する。
【００５１】
ステップ８０６では、ラインスキャンカメラ４２の移動方向及びカメラアングルが、ステップ８０４の最適カメラ姿勢算出処理で算出したとおりになるようにロボットコントローラ３６を設定する。また、６軸ロボット２０の第１関節２０Ｘの端部に未だ２次元レーザ変位計４４が取り付けられている場合には、ラインスキャンカメラ４２と交換する。
【００５２】
ステップ８０８では、撮影対象物５０の表面をラインスキャンカメラ４２で撮影する。図４は、本実施の形態に係る外観撮影装置１０における撮影時でのラインスキャンカメラ４２の移動方向及びカメラアングルの変化の一例を示した概略図である。図４に示したように、本実施の形態では、ラインスキャンカメラ４２は、撮影対象物５０の表面形状に従って、撮影対象物５０との距離を一定に保ちながら移動する。また、ラインスキャンカメラ４２のレンズの光軸が、撮影対象物５０表面の法線ベクトル５２の延長線と一致するようにカメラアングルを変化させる。
【００５３】
ずなわち、図４に示したように、ラインスキャンカメラ４２を撮影対象物５０の表面に倣って移動させると共に、ラインスキャンカメラ４２のレンズの光軸が撮影対象物５０の表面と垂直になるようにカメラアングルを制御する。ラインスキャンカメラ４２のレンズの光軸が撮影対象物５０の表面と垂直になるようにカメラアングルを制御することにより、曲面で構成された撮影対象物５０の撮影画像に過剰な反射や過剰な暗部が生じることを抑制する。また、撮影対象物５０とラインスキャンカメラ４２との距離が一定になるように制御することにより、撮影対象物５０の表面形状の変化による画像上での撮影対象物５０の大きさの変位が抑制され、撮影対象物５０の表面を精密に撮影できる。
【００５４】
ステップ８１０では、撮影データをデータ処理装置３８の記憶装置に保存して処理を終了する。
【００５５】
続いて、図３のステップ８０４の最適カメラ姿勢算出処理について説明する。図５は、最適カメラ姿勢算出処理の一例を示したフローチャートである。ステップ９００では、２次元レーザ変位計４４の計測データから断面データを抽出し、抽出した断面データから撮影対象物５０の３次元メッシュ形状を作成する。
【００５６】
図６は、本実施の形態における撮影対象物５０の断面データの一例を示した概略図であり、図７は、本実施の形態において断面データから作成された３次元メッシュ形状の一例を示した概略図である。
【００５７】
ステップ９０２では、３次元メッシュ形状データをポリゴン形式データに変換する。図８は、本実施の形態において得られる撮影対象物５０のポリゴン形式データの概略図の一例である。
【００５８】
ステップ９０４では、ステップ９０２で得られたポリゴン５０Ｐ上にラインスキャンカメラ４２のレンズの光軸が向けられる撮影対象点５４を指定する。一例として撮影対象点５４は、ポリゴン５０Ｐ上に等間隔で指定する。撮影対象点５４の間隔が狭ければ、より精密なカメラの姿勢制御が可能になるが、演算処理の負荷が大きくなるので、制御装置３０の演算能力に応じて適宜設定する。また、撮影対象点５４は、ユーザがポリゴン５０Ｐ上から任意の点を複数選択することによって指定してもよい。
【００５９】
ステップ９０６では、カメラ視線方向（カメラアングル）が算出される。本実施の形態では、図４に示したように、ラインスキャンカメラ４２のレンズの光軸が撮影対象物５０の表面と垂直になるようにカメラアングルを制御する。本実施の形態では、撮影対象点５４における接平面に略一致な平面の方程式を最小二乗法を用いて最小二乗平面として算出し、算出した最小二乗平面の方程式から撮影対象点５４における撮影対象物５０の法線ベクトル５２を決定する。
【００６０】
具体的には、図９に示したように、ポリゴン５０Ｐ上の撮影対象点５４を中心とした領域５８に含まれる撮影対象点５４近くの対象点（ｘｉ，ｙｉ，ｚｉ）の各座標を複数抽出する。そして、最小二乗平面５６の方程式を、下記の式（１）とする。
0006520451.tif 000002
【００６１】
最小二乗平面５６と領域５８内の複数の対象点とのｚ軸方向の変位Ｅｉは、下記の式（２）となる。
0006520451.tif 000003
【００６２】
また、の二乗和Ｆは、下記の式（３）となる。
0006520451.tif 000004
【００６３】
式（３）に示したＦが最小になるようにｍ，ｎ，ｐを決定することで最小二乗平面の方程式を算出する。具体的には、Ｆをｍ，ｎ，ｐについて各々偏微分した結果が０になると仮定する。実際に、式（３）で示したＦをｍ，ｎ，ｐについて各々偏微分し、各偏微分の結果が０になるとすると、３元連立方程式である下記の式（４）が得られる。下記の式（４）を用いてｍ，ｎ，ｐを算出し、最小二乗平面５６の方程式を決定する。
0006520451.tif 000005
【００６４】
さらに、最小二乗平面５６の方程式を下記の式（５）のように変形させた場合、最小二乗平面５６の法線ベクトル５２の成分は（ｎ，ｐ，−１）となる。撮影対象点５４の座標が（ｘ０，ｙ０，ｚ０）の場合、カメラ視線方向となるラインスキャンカメラ４２のレンズの光軸は、座標（ｘ０，ｙ０，ｚ０）を通る法線ベクトル５２（ｎ，ｐ，−１）の延長線と一致する。従って、座標（ｘ０，ｙ０，ｚ０）を通り法線ベクトル５２（ｎ，ｐ，−１）に平行な法線をカメラ視線方向とする。
0006520451.tif 000006
【００６５】
ステップ９０８では、カメラ移動方向を算出する。本実施の形態では、ラインスキャンカメラ４２が撮影対象物５０を撮影する際の水平の移動方向の変位をｔ、及び撮影対象物５０のｔに対する垂直方向の変位をｚとする。かかる場合に、ｚは、ｔに対する撮影対象物５０表面の凹凸の変位でもある。
【００６６】
図１０は、撮影対象物５０に対応するポリゴン５０Ｐにおいて、水平方向の変位ｔと垂直方向の変位ｚとの関係を示す模式図であり、横軸にｔ、縦軸にｚが設定されている。前述のようにｔはラインスキャンカメラ４２が撮影対象物５０を撮影する際の水平の移動方向の変位なので、図１０の横軸は、撮影時に撮影対象物５０が載置される水平面と平行となる。
【００６７】
図１０には、第１撮影対象点５４Ａ（ｔ０，ｚ０）、第２撮影対象点５４Ｂ（ｔ１，ｚ１）及び第３撮影対象点５４Ｃ（ｔ２，ｚ２）が各々プロットされている。そして、第１撮影対象点５４Ａ、第２撮影対象点５４Ｂ及び第３撮影対象点５４Ｃは、ポリゴン５０Ｐの表面形状を仮想した曲線６０上に存在するものとする。
【００６８】
前述のように、ｔはラインスキャンカメラ４２が撮影対象物５０を撮影する際の水平の移動方向の変位であり、曲線６０はラインスキャンカメラ４２のレンズの光軸が向けられる第１撮影対象点５４Ａ、第２撮影対象点５４Ｂ及び第３撮影対象点５４Ｃを通る。従って、水平面と平行である図１０の横軸への曲線６０の正射影は、撮影時に撮影対象物５０が載置される水平面と平行であると共にラインスキャンカメラ４２が撮影対象物５０を撮影する際の水平の移動方向と略一致する。また、曲線６０の接線ベクトルの図１０の横軸への正射影もラインスキャンカメラ４２が撮影対象物５０を撮影する際の水平の移動方向と略一致する。
【００６９】
曲線６０は、下記の式（６）で示される３次曲線であるとする。２次曲線では第１撮影対象点５４Ａ、第２撮影対象点５４Ｂ及び第３撮影対象点５４Ｃの間でポリゴン５０Ｐの表面形状の凹凸が変化する変曲点を再現できないからである。または、第１撮影対象点５４Ａ、第２撮影対象点５４Ｂ及び第３撮影対象点５４Ｃよりも多くの撮影対象点に基づいて４次以上の高次曲線の方程式を算出してもよい。
0006520451.tif 000007
【００７０】
本実施の形態では、３カ所の撮影対象点から式（６）に示した曲線６０の方程式を算出する。そして、方程式を算出した曲線６０上の接線ベクトルをカメラ移動方向として算出する。
【００７１】
３次曲線の接線の傾きは、下記の式（７）に示した常微分ｆ'（ｔ）で与えられるから、例えば接線ベクトル６２Ａは第１撮影対象点５４Ａ（ｔ０，ｚ０）を通り傾きｆ'（ｔ０）のベクトルとして、接線ベクトル６２Ｂは第２撮影対象点５４Ｂ（ｔ１，ｚ１）を通り傾きｆ'（ｔ１）のベクトルとして、各々表現される。
0006520451.tif 000008
【００７２】
曲線６０の方程式は以下のように算出する。具体的には、式（６）、式（７）並びに第１撮影対象点５４Ａ（ｔ０，ｚ０）、第２撮影対象点５４Ｂ（ｔ１，ｚ１）及び第３撮影対象点５４Ｃ（ｔ２，ｚ２）から、下記の式（８）として示した４元連立方程式を導出する。そして、下記の式（８）を用いてａ，ｂ，ｃ，ｄを算出することにより、曲線６０の方程式を決定する。
0006520451.tif 000009
【００７３】
第１撮影対象点５４Ａ（ｔ０，ｚ０）が曲線６０の方程式算出の最初の起点である場合には、曲線６０の方程式が具体的に判明していないので、ｆ'（ｔ０）は、第１撮影対象点５４Ａと第１撮影対象点５４Ａの近くの点とを結ぶ線分の傾きで代用する。または、第１撮影対象点５４Ａ、第２撮影対象点５４Ｂ及び第３撮影対象点５４Ｃに加えて第４撮影対象点５４Ｄ（ｔ３，ｚ３）の座標値を用いてｆ'（ｔ０）に代えてｆ（ｔ３）の式を用いて４元連立方程式を導出し、ａ，ｂ，ｃ，ｄを算出してもよい。
【００７４】
本実施の形態では、第１撮影対象点５４Ａ、第２撮影対象点５４Ｂ及び第３撮影対象点５４Ｃを通る曲線６０の方程式を算出することにより、第１撮影対象点５４Ａから第３撮影対象点５４Ｃまで、連続的にカメラ移動方向である接線ベクトル又は接線を算出することができる。その結果、図４示したように、ラインスキャンカメラ４２を撮影対象物５０の表面に倣って移動させることが可能となる。
【００７５】
なお、第１撮影対象点５４Ａ、第２撮影対象点５４Ｂ及び第３撮影対象点５４Ｃを通る曲線６０の方程式を算出した後は、第３撮影対象点５４Ｃと、第４撮影対象点５４Ｄ（ｔ３，ｚ３）及び第５撮影対象点５４Ｅ（ｔ４，ｚ４）等の第３撮影対象点５４Ｃに後続する撮影対象点と、を用いて曲線６０の方程式を再算出する。この場合、式（８）中のｆ'（ｔ０）に相当するｆ'（ｔ２）は、第１撮影対象点５４Ａ、第２撮影対象点５４Ｂ及び第３撮影対象点５４Ｃを通る曲線６０の方程式の常微分を用いて算出する。
【００７６】
制御装置３０の演算能力に余裕がある場合には、第１撮影対象点５４Ａを起点とする曲線６０の方程式を算出した後、次の起点を現在の起点に隣接する撮影対象点とし、次の起点及び次の起点に後続する２つの撮影対象点を通る曲線６０の方程式を算出してもよい。具体的には、第１撮影対象点５４Ａ、第２撮影対象点５４Ｂ及び第３撮影対象点５４Ｃを通る曲線６０の方程式を算出した後、第２撮影対象点５４Ｂ、第３撮影対象点５４Ｃ及び第４撮影対象点５４Ｄを通る曲線６０の方程式を算出する。続いて、第３撮影対象点５４Ｃ、第４撮影対象点５４Ｄ及び第５撮影対象点５４Ｅを通る曲線６０の方程式を算出し、以後、起点を第４撮影対象点５４Ｄ、さらには第５撮影対象点５４Ｅにして曲線６０の方程式を算出していく。
【００７７】
図１１は、上述の方法により各々算出された、カメラ視線方向である法線ベクトル５２Ａ，５２Ｂ，５２Ｃ，５２Ｄ及びカメラ移動方向である接線ベクトル６２Ａ，６２Ｂ，６２Ｃをポリゴン５０Ｐ上にプロットした一例を示した概略図である。
【００７８】
ステップ９１０では、上述のように算出した法線ベクトル５２Ａ，５２Ｂ，５２Ｃ，５２Ｄ、接線ベクトル６２Ａ，６２Ｂ，６２Ｃ等のデータをロボットコントローラ３６がロボットを制御可能な形式にデータ変換して処理をリターンする。ロボットコントローラ３６がロボットを制御可能な形式のデータは、例えば、第１関節２０Ｘにおける第１旋回要素Ｘ、第２旋回要素ＲＸ、第２関節２０Ｙにおける第１旋回要素Ｙ、第２旋回要素ＲＹ及び第３関節２０Ｚにおける第１旋回要素Ｚ、第２旋回要素ＲＺの各々の角度である。
【００７９】
以上説明したように、本実施の形態では、撮影対象物５０表面の法線ベクトルに基づいてカメラアングルを決定している。また、本実施の形態では、ラインスキャンカメラ４２が撮影対象物５０を撮影する際の水平の移動方向の変位ｔに対するに対する撮影対象物５０表面の凹凸の変位に近似する３次曲線の方程式を算出し、当該方程式を用いて連続的に算出した撮影対象物５０表面の接線ベクトルに基づいてカメラ移動方向を決定する。
【００８０】
その結果、ラインスキャンカメラ４２のレンズの光軸が撮影対象物５０の表面と垂直になるようにカメラアングルを制御すると共に、ラインスキャンカメラ４２を撮影対象物５０の表面に倣って移動させることが可能となるので、簡素な構成で曲面からなる撮影対象物を精密に撮影できる。
【００８１】
［第２の実施の形態］
第１の実施の形態では、２次元レーザ変位計４４によって撮影対象物５０の表面形状を計測した。しかしながら、第１の実施の形態に係る外観撮影装置１０の２次元レーザ変位計４４及び変位計コントローラ３２は、他の構成に置き換えることが可能である。
【００８２】
図１２は、第２の実施の形態に係る外観撮影装置１００の構成を示す概略図である。本実施の形態に係る外観撮影装置１００は、第１の実施の形態に係る外観撮影装置１０の２次元レーザ変位計４４及び変位計コントローラ３２を、撮影対象物５０のＣＡＤデータ７０、ステレオカメラ７２、接触式３次元計測器７４、及び非接触式位置センサ７６のいずれか１つで置換したものである。その他の構成は、第１の実施の形態に係る外観撮影装置１０と同様なので、第１の実施の形態に係る外観撮影装置１０と同一の符号を付して詳細な説明は省略する。
【００８３】
例えば、ＣＡＤデータ７０から図８に示したようなポリゴン５０Ｐを作成することが可能であるし、ステレオカメラ７２の撮影画像を画像処理することによってもポリゴン５０Ｐは作成できる。従って、ＣＡＤデータ７０又はステレオカメラ７２の撮影画像から作成したポリゴン５０Ｐを用いて、第１の実施の形態と同様にラインスキャンカメラ４２のカメラアングルであるカメラ視線方向、及びカメラ移動方向を決定することが可能となる。
【００８４】
接触式３次元計測器７４は、先端が球状になったプローブで撮影対象物５０の表面をなぞり、撮影対象物５０の表面形状を例えばｘ，ｙ，ｚで表わされる座標値として検出する。検出した座標値に基づいて図８に示したようなポリゴン５０Ｐを作成し、作成したポリゴン５０Ｐを用いて、第１の実施の形態と同様にラインスキャンカメラ４２のカメラアングルであるカメラ視線方向、及びカメラ移動方向を決定することが可能となる。
【００８５】
非接触式位置センサ７６は、例えばレーザスキャナを応用した非接触式のセンサである。レーザスキャナは、撮影対象物５０にレーザを照射してレーザが返ってくるまでの時間に基づいてレーザスキャナから撮影対象物５０までの距離を算出する。レーザスキャナから撮影対象物５０までの距離の変位及びレーザの照射角から撮影対象物５０の立体形状に係る座標（ｘ，ｙ，ｚ）を算出できる。検出した座標値に基づいて図８に示したようなポリゴン５０Ｐを作成し、作成したポリゴン５０Ｐを用いて、第１の実施の形態と同様にラインスキャンカメラ４２のカメラアングルであるカメラ視線方向、及びカメラ移動方向を決定することが可能となる。
【００８６】
［他の実施の形態］
以下に、第１の実施の形態及び第２の実施の形態の変形例について説明する。図１３は、変形例の一例を示した概略図である。図１３に示した変形例の外観撮影装置１０２では、撮影対象物５０をベルトコンベア等の搬送装置によって水平方向に移動させ、６軸ロボット２０によってラインスキャンカメラ４２を保持して撮影対象物５０を撮影する。６軸ロボット２０は、水平方向に搬送される撮影対象物５０の動きに同期して、カメラ視線方向、及びカメラ移動方向を制御する。
【００８７】
水平方向の移動は６軸ロボット２０ではなくベルトコンベア等によるので、撮影対象物５０の長さが６軸ロボット２０の可動範囲よりも大きい場合であっても、撮影対象物５０の一端から他端まで撮影することができる。
【００８８】
本変形例では、カメラ視線方向及びカメラ移動方向の制御は、撮影対象物５０の搬送と同期させることを要する。しかしながら、６軸ロボット２０によってラインスキャンカメラ４２を水平方向に移動させないので、カメラ移動方向は高さ方向（ｚ軸方向）で制御すればよく、カメラ移動方向の制御が第１の実施の形態及び第２の実施の形態に対して簡略化される。
【００８９】
その結果、ラインスキャンカメラ４２を保持するロボットは６軸ロボット２０よりも低コストな５６軸ロボット等を用いることが可能となる。
【００９０】
図１４は、もう一つの変形例を示す概略図であり、外観撮影装置１０４はラインスキャンカメラ４２を固定し、撮影対象物５０を６軸ロボット２０で搬送して撮影する。撮影対象物５０をラインスキャンカメラ４２に並行して移動させると共に、ラインスキャンカメラ４２のレンズの光軸が撮影対象物５０の表面と垂直になるように搬送する撮影対象物５０の向きを制御する。
【００９１】
本変形例では、撮影対象物５０が剛体である場合に限られるが、ラインスキャンカメラ４２が大型で、６軸ロボット２０による保持が困難な場合であっても、撮影対象物５０の表面を撮影できる。
【符号の説明】
【００９２】
１０…外観撮影装置、２０…６軸ロボット、２０Ｘ…第１関節、２０Ｙ…第２関節、２０Ｚ…第３関節、３０…制御装置、３２…変位計コントローラ、３４…カメラコントローラ、３６…ロボットコントローラ、３８…データ処理装置、４２…ラインスキャンカメラ、４２Ａ…照明、４４…２元レーザ変位計、５０…撮影対象物、５０Ｐ…ポリゴン、５２…法線ベクトル、５２Ａ，５２Ｂ，５２Ｃ，５２Ｄ…法線ベクトル、５４…撮影対象点、５４Ａ，５４Ｂ，５４Ｃ，５４Ｄ，５４Ｅ…撮影対象点、５６…最小二乗平面、５８…領域、６０…曲線、６２Ａ，６２Ｂ，６２Ｃ…接線ベクトル、７０…ＣＡＤデータ、７２…ステレオカメラ、７４…接触式３次元計測器、７６…非接触式位置センサ、１００，１０２，１０４…外観撮影装置、ＲＸ，ＲＹ，ＲＺ…第１旋回要素、Ｘ，Ｙ，Ｚ…第２旋回要素
【図１】
0006520451.tif 000010
【図２】
0006520451.tif 000011
【図３】
0006520451.tif 000012
【図４】
0006520451.tif 000013
【図５】
0006520451.tif 000014
【図６】
0006520451.tif 000015
【図７】
0006520451.tif 000016
【図８】
0006520451.tif 000017
【図９】
0006520451.tif 000018
【図１０】
0006520451.tif 000019
【図１１】
0006520451.tif 000020
【図１２】
0006520451.tif 000021
【図１３】
0006520451.tif 000022
【図１４】
0006520451.tif 000023