(57)【要約】【課題】ワークの被検査面の傷を検出するために該被検査面を撮像する動作を検査システムに実行させるための動作プログラムを迅速に構築可能とする技術が求められている。【解決手段】装置５０は、ワークの図面データを取得する図面取得部５２と、図面データにおける被検査面の指定を受け付ける指定受付部５４と、被検査面が撮像部１６の視野に入るようにワークと撮像部１６とを位置決めしたときの移動機構１４の位置を、目標位置として取得する目標位置取得部６０と、目標位置に基づいて、移動機構１４の移動動作と撮像部１６の撮像動作とを制御するための動作プログラムを生成するプログラム生成部６２とを備える。【選択図】図２
2018132331.tif 000002
【特許請求の範囲】
【請求項１】
ワークを撮像する撮像部と、前記ワークまたは前記撮像部を移動させて該ワークと該撮像部とを互いに位置決めする移動機構とを有する検査システムの、ワーク表面検査のための動作プログラムを生成する装置であって、
前記ワークの図面データを取得する図面取得部と、
前記図面データにおける被検査面の指定を受け付ける指定受付部と、
前記被検査面が前記撮像部の視野に入るように前記ワークと前記撮像部とを位置決めしたときの前記移動機構の位置を、目標位置として取得する目標位置取得部と、
前記目標位置に基づいて、前記移動機構の移動動作と前記撮像部の撮像動作とを制御するための動作プログラムを生成するプログラム生成部と、を備える、装置。
【請求項２】
前記被検査面を複数の区域に区分けする区分け部をさらに備え、
前記目標位置取得部は、前記複数の区域の各々が前記撮像部の視野に入るように前記ワークと前記撮像部とを位置決めしたときの前記移動機構の前記位置の各々を、前記目標位置として前記区域毎に取得する、請求項１に記載の装置。
【請求項３】
指定された前記被検査面に代表点を設定する代表点設定部をさらに備え、
前記目標位置取得部は、前記撮像部の光軸が前記代表点を通過するように前記ワークと前記撮像部とを位置決めしたときの前記移動機構の位置を、前記目標位置として取得する、請求項１または２に記載の装置。
【請求項４】
前記被検査面を複数の区域に区分けする区分け部をさらに備え、
前記代表点設定部は、前記複数の区域の各々に、１つの前記代表点を設定し、
前記目標位置取得部は、前記撮像部の光軸が前記代表点の各々を通過するように前記ワークと前記撮像部とを位置決めしたときの前記移動機構の前記位置の各々を、前記目標位置として前記代表点毎に取得する、請求項３に記載の装置。
【請求項５】
前記代表点設定部は、前記代表点を、前記区域の中心点として設定する、請求項４に記載の装置。
【請求項６】
前記撮像部は、予め定められた位置に固定され、
前記移動機構は、前記ワークを予め定められたワーク位置で把持して該ワークを移動させ、
前記装置は、前記ワーク位置に基づいて、前記代表点の位置を算出する代表点算出部をさらに備える、請求項３〜５のいずれか１項に記載の装置。
【請求項７】
前記ワークは、予め定められた位置に固定され、
前記撮像部は、前記移動機構によって移動され、
前記装置は、前記ワークが固定されている前記位置に基づいて、前記代表点の位置を算出する代表点算出部をさらに備える、請求項３〜５のいずれか１項に記載の装置。
【請求項８】
前記目標位置取得部は、前記目標位置を取得したときに、前記撮像部の光軸に対する前記被検査面の角度を変化させるように前記ワークまたは前記撮像部を移動させたときの前記移動機構の位置を、第２目標位置としてさらに取得し、
前記プログラム生成部は、前記目標位置と前記第２目標位置とに基づいて前記動作プログラムを生成する、請求項１〜７のいずれか１項に記載の装置。
【請求項９】
ワークを撮像する撮像部と、前記ワークまたは前記撮像部を移動させて該ワークと該撮像部とを互いに位置決めする移動機構とを有する検査システムの、ワーク表面検査のための動作の動作プログラムを生成する方法であって、
前記ワークの図面データを取得することと、
前記図面データにおける被検査面の指定を受け付けることと、
前記被検査面が前記撮像部の視野に入るように前記ワークと前記撮像部とを位置決めしたときの前記移動機構の位置を、目標位置として取得することと、
前記目標位置に基づいて、前記移動機構の移動動作と前記撮像部の撮像動作とを制御するための動作プログラムを生成することと、を備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検査システムの動作プログラムを生成する装置および方法に関する。
【背景技術】
【０００２】
ワークの表面の傷等を検査するための検査システムが知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−６３５３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述のような検査システムにおいて、ワークの被検査面の傷を検出するために該被検査面を撮像する動作を検査システムに実行させるための動作プログラムを迅速に構築可能とする技術が求められている。
【課題を解決するための手段】
【０００５】
本開示の一態様において、ワークを撮像する撮像部と、ワークまたは撮像部を移動させて該ワークと該撮像部とを互いに位置決めする移動機構とを有する検査システムの、ワーク表面検査のための動作プログラムを生成する装置は、ワークの図面データを取得する図面取得部と、図面データにおける被検査面の指定を受け付ける指定受付部とを備える。
【０００６】
この装置は、被検査面が撮像部の視野に入るようにワークと撮像部とを位置決めしたときの移動機構の位置を、目標位置として取得する目標位置取得部と、目標位置に基づいて、移動機構の移動動作と撮像部の撮像動作とを制御するための動作プログラムを生成するプログラム生成部とを備える。
【０００７】
本開示の他の態様において、ワークを撮像する撮像部と、ワークまたは撮像部を移動させて該ワークと該撮像部とを互いに位置決めする移動機構とを有する検査システムの、ワーク表面検査のための動作の動作プログラムを生成する方法は、ワークの図面データを取得することと、図面データにおける被検査面の指定を受け付けることとを備える。
【０００８】
また、この方法は、被検査面が撮像部の視野に入るようにワークと撮像部とを位置決めしたときの移動機構の位置を、目標位置として取得することと、目標位置に基づいて、移動機構の移動動作と撮像部の撮像動作とを制御するための動作プログラムを生成することとを備える。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係る検査システムの斜視図である。
【図２】図１に示す検査システムのブロック図である。
【図３】図１に示すロボットハンドでワークを把持した状態を表す図である。
【図４】図２に示す動作プログラム生成装置の動作フローの一例を示すフローチャートである。
【図５】図４中のステップＳ１〜Ｓ３を説明するための図であって、図５（ａ）は、ワークの図面データの一例を示し、図５（ｂ）は、図５（ａ）に示す被検査面モデルを複数の区域に区分けした状態を示す。
【図６】図４中のステップＳ６を説明するための図である。
【図７】図２に示す動作プログラム生成装置が生成する動作プログラムの一例を示すフローチャートである。
【図８】図１３のステップＳ２０を説明するための図である。
【図９】図１３のステップＳ２０を説明するための図である。
【図１０】図１３のステップＳ２０を説明するための図である。
【図１１】図１３のステップＳ２０を説明するための図である。
【図１２】図２に示す動作プログラム生成装置が生成する動作プログラムの他の例を示すフローチャートである。
【図１３】図１２中のステップＳ２０の一例を示すフローチャートである。
【図１４】他の実施形態に係る検査システムの図である。
【図１５】図１４に示す動作プログラム生成装置が生成する動作フローの一例を示すフローチャートである。
【図１６】さらに他の実施形態に係る検査システムの図である。
【図１７】図１６に示す動作プログラム生成装置の動作フローの一例を示すフローチャートである。
【図１８】他の実施形態に係るワークの図面データの一例を示す。
【図１９】図１７中のステップＳ６’を説明するための図であって、図１８に示す被検査面の外接図形を示す。
【図２０】図１７中のステップＳ６’を説明するための図であって、移動機構が第１目標位置に配置されたときの、視野サイズと外接図形との位置関係を示す。
【図２１】図１７中のステップＳ６’を説明するための図であって、移動機構が第２目標位置に配置されたときの、視野サイズと外接図形との位置関係を示す。
【発明を実施するための形態】
【００１０】
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。まず、図１〜図３を参照して、一実施形態に係る検査システム１０について説明する。
【００１１】
検査システム１０は、制御部１２、移動機構１４、撮像部１６、照明装置１８、および動作プログラム生成装置５０（図２）を備える。制御部１２は、ＣＰＵおよび記憶部（図示せず）等を有し、移動機構１４、撮像部１６および照明装置１８を制御する。
【００１２】
本実施形態においては、移動機構１４は、垂直多関節ロボットであって、ロボットベース２０、旋回胴２２、ロボットアーム２４、手首部２６、およびロボットハンド２８を有する。ロボットベース２０は、作業セルの床の上に固定されている。旋回胴２２は、鉛直軸周りに旋回可能となるように、ロボットベース２０に設けられている。
【００１３】
ロボットアーム２４は、旋回胴２２に回動可能に連結された上腕部３０と、該上腕部３０の先端に回動可能に連結された前腕部３２とを有する。手首部２６は、前腕部３２の先端に取り付けられ、ロボットハンド２８を３軸周りに回動可能となるように支持している。
【００１４】
図３に示すように、ロボットハンド２８は、ハンドベース３４、複数の指部３６、および指部駆動部（図示せず）を有する。ハンドベース３４は、手首部２６に連結されている。複数の指部３６は、ハンドベース３４に開閉可能に設けられている。
【００１５】
複数の指部３６は、ハンドベース３４から一方へ向かって延び、互いに対向する面に、段差部３６ａを有する。ロボットハンド２８がワークＷを把持するとき、ワークＷの上面ＳＵは、段差部３６ａと係合する。指部駆動部は、例えばエアシリンダであって、ハンドベース３４に内蔵されている。指部駆動部は、制御部１２からの指令に応じて、指部３６を開閉させる。
【００１６】
移動機構１４は、複数のサーボモータ３８（図２）を有する。サーボモータ３８は、移動機構１４の旋回胴２２、ロボットアーム２４、および手首部２６にそれぞれ内蔵され、制御部１２からの指令（速度指令、トルク指令等）に応じて、これらの構成要素を駆動する。
【００１７】
移動機構１４の各構成要素を制御するための自動制御の座標系の１つとして、ロボット座標系ＣＲ（図１）が設定される。制御部１２は、ロボット座標系ＣＲを基準として、該移動機構１４の各構成要素を動作させる。例えば、ロボット座標系ＣＲのｚ軸は、実空間の鉛直方向に平行であり、旋回胴２２は、ロボット座標系ＣＲのｚ軸周りに回動される。
【００１８】
一方、ロボットハンド２８に対しては、ツール座標系ＣＴが設定される。このツール座標系ＣＴは、自動制御の座標系の１つであって、該ツール座標系ＣＴの位置をロボット座標系ＣＲ上で表現することにより、空間内でのロボットハンド２８の位置および姿勢を規定する。
【００１９】
図３に示すように、本実施形態においては、ツール座標系ＣＴの原点が、指部３６の段差部３６ａの間に位置し、指部３６が、ハンドベース３４からツール座標系ＣＴのｚ軸プラス方向へ延出し、ツール座標系ＣＴのｙ軸方向へ開閉するように、ツール座標系ＣＴが設定されている。
【００２０】
制御部１２は、ロボットハンド２８の位置および姿勢を、ツール座標系ＣＴによって規定される位置および姿勢に一致させるように、ロボット座標系ＣＲにおいて旋回胴２２、ロボットアーム２４、および手首部２６を動作させる。こうして、ロボットハンド２８は、ロボット座標系ＣＲにおいて任意の位置および姿勢に配置される。
【００２１】
撮像部１６は、予め定められた位置に固定され、フォーカスレンズ等の光学系と、ＣＣＤセンサまたはＣＭＯＳセンサ等の撮像センサとを有する。撮像部１６は、制御部１２からの指令に応じて、ワークＷ等の物体を撮像し、撮像した画像を制御部１２へ送信する。
【００２２】
ここで、撮像部１６の固定位置、および該撮像部１６の光軸Ｏ（すなわち、撮像部１６の光学系に入射する被写体像の光路）は、ロボット座標系ＣＲにおいて座標化され、制御部１２の記憶部に予め記憶される。これにより、制御部１２は、ロボット座標系ＣＲにおける撮像部１６および光軸Ｏの位置を、認識できる。
【００２３】
照明装置１８は、白熱灯、蛍光灯、またはＬＥＤ等を有し、予め定められた位置に固定される。照明装置１８は、制御部１２からの指令に応じてＯＮ／ＯＦＦし、ＯＮとなっているときに、移動機構１４に把持されたワークＷへ光を照射する。
【００２４】
次に、検査システム１０によってワークＷの被検査面ＳＩを検査する動作（ワーク表面検査動作）の概要について、説明する。まず、制御部１２は、移動機構１４を動作させて、予め定められた保管場所に保管されたワークＷを、ロボットハンド２８によって把持する。
【００２５】
次いで、制御部１２は、移動機構１４を動作させて、撮像部１６の光軸Ｏが被検査面ＳＩと直交する位置まで、移動機構１４によってワークＷを移動させて、該ワークＷを撮像部１６に対して位置決めする。このとき、撮像部１６と被検査面ＳＩとは、距離Ｄだけ互いから離間して位置決めされる。
【００２６】
このように、本実施形態においては、移動機構１４は、ワークＷと撮像部１６とを互いに位置決めする。撮像部１６の光軸Ｏが被検査面ＳＩと直交するようにワークＷと撮像部１６とを位置決めしたときの状態の例を、図１に示す。
【００２７】
次いで、制御部１２は、照明装置１８に指令を送り、該照明装置１８をＯＮとする。これにより、移動機構１４に把持されたワークＷは、照明装置１８によって照らされることになる。
【００２８】
次いで、制御部１２は、撮像部１６に撮像指令を送る。撮像部１６は、制御部１２から撮像指令を受信すると、ワークＷの被検査面ＳＩを撮像する。ここで、撮像部１６には、撮像可能な範囲を示す視野角が存在する。
【００２９】
この視野角は、撮像部１６の光学系の仕様に依存する。具体的には、カメラレンズの焦点距離が長い程、または撮像部の受光面が小さい程、視野角は狭くなる。
【００３０】
撮像部１６の視野角の例を、図１中の仮想線Ａとして示す。この視野角Ａと上述の距離Ｄとによって、図１に示すようにワークＷと撮像部１６とが位置決めされたときに撮像部１６が撮像可能な被検査面ＳＩ上の範囲（以下、視野サイズとする）Ｂが、決定される。また、撮像部１６によって撮像される画像の解像度と視野サイズは反比例の関係にあり、視野サイズが小さい程、得られる画像の解像度は高くなる。
【００３１】
制御部１２は、移動機構１４によってワークＷを移動させる動作と、撮像部１６によって被検査面ＳＩを撮像する動作を繰り返し実行し、撮像部１６によって被検査面ＳＩの全域を撮像する。
【００３２】
こうして、制御部１２は、被検査面ＳＩの全域の画像を取得する。次いで、制御部１２は、撮像部１６から受信した被検査面ＳＩの画像を解析し、該被検査面ＳＩに形成された傷痕等の欠陥を検出する。
【００３３】
制御部１２の記憶部は、以上のようなワーク表面検査動作を制御部１２に実行させるための動作プログラムを、予め記憶する。本実施形態に係る動作プログラム生成装置５０は、このような動作プログラムを自動で生成する。
【００３４】
動作プログラム生成装置５０は、図面取得部５２、指定受付部５４、区分け部５５、代表点設定部５６、代表点算出部５８、目標位置取得部６０、およびプログラム生成部６２を備える。なお、本実施形態においては、動作プログラム生成装置５０は、制御部１２に実装されている。
【００３５】
したがって、後述する図面取得部５２、指定受付部５４、区分け部５５、代表点設定部５６、代表点算出部５８、目標位置取得部６０、およびプログラム生成部６２の機能は、制御部１２が担う。
【００３６】
以下、図４〜図６を参照して、動作プログラム生成装置５０の動作フローについて、説明する。図４に示すフローは、制御部１２がオペレータから、動作プログラム生成指令を受け付けたときに、開始する。
【００３７】
ステップＳ１において、制御部１２は、ワークＷの図面データ（２ＤＣＡＤまたは３ＤＣＡＤデータ等）を取得する。一例として、ワークＷの図面データは、制御部１２に通信可能となるように該制御部１２の外部に設置された外部サーバに記憶される。この場合、制御部１２は、このステップＳ１において、この外部サーバにアクセスし、該外部サーバからワークＷの図面データをダウンロードする。
【００３８】
他の例として、ワークＷの図面データは、ＥＥＰＲＯＭ（登録商標）等の外部メモリに記憶される。この場合、制御部１２は、外部メモリが取り外し可能に挿入されるＩ／Ｏポート（例えば、ＵＳＢポート）を有する。そして、ステップＳ１において、オペレータは、外部メモリを、制御部１２のＩ／Ｏポートに挿入し、制御部１２は、該外部メモリからワークＷの図面データをダウンロードする。
【００３９】
さらに他の例として、ワークＷの図面データは、制御部１２の記憶部に予め記憶される。この場合、制御部１２は、このステップＳ１において、該記憶部に記憶されたワークＷの図面データを、該記憶部から読み出す。
【００４０】
このように、本実施形態においては、制御部１２は、ワークの図面データを取得する図面取得部５２としての機能を担う。
【００４１】
このステップＳ１で取得されるワークＷの図面データの一例を、図５（ａ）に示す。図５（ａ）に示す例においては、３ＤＣＡＤデータであるワークモデルＷＭが示されている。以下、このステップＳ１で図５（ａ）に示すワークモデルＷＭを取得した場合について、説明する。
【００４２】
ステップＳ２において、制御部１２は、ワークＷの図面データにおける被検査面ＳＩの指定を受け付ける。一例として、制御部１２には、ＬＣＤまたは有機ＥＬディスプレイ等の表示部と、キーボートまたはタッチパネル等の操作部が設けられる。
【００４３】
オペレータは、表示部に表示されたワークモデルＷＭにおける被検査面モデルＳＩＭを、操作部を操作して指定する。制御部１２は、オペレータによる操作部の操作を受け付けて、被検査面モデルＳＩＭの指定を受け付ける。
【００４４】
このように、本実施形態においては、制御部１２は、図面データにおける被検査面ＳＩ（すなわち、被検査面モデルＳＩＭ）の指定を受け付ける指定受付部５４としての機能を担う。
【００４５】
ステップＳ３において、制御部１２は、ステップＳ２で指定された被検査面ＳＩを、複数の区域に区分けする。例えば、制御部１２は、ステップＳ２で指定された被検査面モデルＳＩＭを、図５（ｂ）に示すように区分けする。
【００４６】
図５（ｂ）に示す例においては、被検査面モデルＳＩＭが、図面データ上で、計１２個の区域Ｃ１〜Ｃ１２に区分けされている。ここで、制御部１２は、上述した視野サイズＢに応じて、区域Ｃ１〜Ｃ１２の個数と、区域Ｃ１〜Ｃ１２の各々のサイズとを決定し、被検査面モデルＳＩＭを区域Ｃ１〜Ｃ１２に自動で区分けする。
【００４７】
上述したように、視野サイズＢは、撮像部１６の視野角Ａと、該撮像部１６と被検査面ＳＩとの間の距離Ｄとによって決まる。例えば、制御部１２は、区域Ｃ１〜Ｃ１２の各々のサイズ（すなわち、面積）が、視野サイズＢ以下となるように、区域Ｃ１〜Ｃ１２の個数と、区域Ｃ１〜Ｃ１２の各々のサイズとを決定する。なお、距離Ｄは、オペレータによって予め定められ、制御部１２の記憶部に記憶される。
【００４８】
このように、本実施形態においては、制御部１２は、被検査面ＳＩ（すなわち、被検査面モデルＳＩＭ）を複数の区域Ｃ１〜Ｃ１２に区分けする区分け部５５としての機能を担う。
【００４９】
ステップＳ４において、制御部１２は、被検査面ＳＩに代表点を設定する。具体的には、制御部１２は、図５（ｂ）に示すように、ステップＳ３で区分けされた区域Ｃｎ（ｎ＝１〜１２）に、１つの代表点Ｄｎを設定する。
【００５０】
本実施形態においては、代表点Ｄｎは、区域Ｃｎの中心点として設定されている。こうして、制御部１２は、図面データにおいて、区域Ｃ１〜Ｃ１２に対して代表点Ｄ１〜Ｄ１２をそれぞれ自動で設定する。このように、本実施形態においては、制御部１２は、代表点Ｄｎを設定する代表点設定部５６としての機能を担う。
【００５１】
ステップＳ５において、制御部１２は、ステップＳ４で設定された代表点Ｄｎ（ｎ＝１〜１２）の位置を算出する。一例として、オペレータは、制御部１２の操作部を操作して、ロボットハンド２８がワークＷを把持するときのワークＷ上の位置（ワーク位置）を、図面データで指定する。
【００５２】
このワーク位置は、ロボットハンド２８でワークＷを把持するときに制御部１２が設定するツール座標系ＣＴの位置によって決められる。したがって、オペレータは、ツール座標系ＣＴの原点の位置を、制御部１２の表示部に表示されたワークモデルＷＭにおいて指定する。
【００５３】
ここで、オペレータは、図５（ｂ）に示すように、ツール座標系ＣＴの原点の位置を、ワークモデルＷＭの上面モデルＳＵＭの中心に指定したとする。この場合、制御部１２は、保管場所に保管されたワークＷをロボットハンド２８で把持するとき、ツール座標系ＣＴの原点が該ワークＷの上面ＳＵの中心に位置し、且つ、ツール座標系ＣＴのｘ−ｚ平面が被検査面ＳＩと平行となるように、ツール座標系ＣＴを該ワークＷに対して設定する。
【００５４】
そして、制御部１２は、移動機構１４を動作させて、ロボットハンド２８を、設定されたツール座標系ＣＴによって規定される位置および姿勢に配置させ、該ロボットハンド２８によってワークＷを把持する。その結果、ロボットハンド２８は、図１および図３に示すように、オペレータが指定したツール座標系ＣＴに対応するワーク位置で、ワークＷを把持することになる。
【００５５】
制御部１２は、オペレータによる操作部の操作を受け付けて、ツール座標系ＣＴの原点の位置の指定を受け付ける。次いで、制御部１２は、代表点Ｄ１〜Ｄ１２のツール座標系ＣＴにおける位置を算出する。
【００５６】
代表点Ｄｎの各々の位置は、図５に示すようにオペレータによって指定されたツール座標系ＣＴにおいて、座標化することができる。制御部１２は、各代表点Ｄｎのツール座標系ＣＴにおける座標を、ロボット座標系ＣＲに変換することによって、ロボット座標系ＣＲにおける各代表点Ｄｎの座標を算出できる。
【００５７】
こうして、制御部１２は、実空間にてロボットハンド２８でワークＷを把持したときの、ロボット座標系ＣＲにおける各代表点Ｄｎの位置を算出する。このように、本実施形態においては、制御部１２は、ワーク位置（具体的には、ツール座標系ＣＴの原点の位置）に基づいて代表点Ｄｎの位置を算出する代表点算出部５８としての機能を担う。
【００５８】
ステップＳ６において、制御部１２は、目標位置を取得する。この目標位置について、図６を参照して、説明する。なお、図６においては、理解の容易の観点から、撮像部１６と、ロボットハンド２８によって把持されたワークＷの区域Ｃｎ’のみを示している。
【００５９】
ここで、図５中の区域Ｃｎ’は、ワークモデルＷＭに設定された区域Ｃｎ（ｎ＝１〜１２）に対応する、ワークＷ上の仮想区域である。また、図５中の代表点Ｄｎ’は、ワークモデルＷＭに設定された代表点Ｄｎに対応する、ワークＷ上の仮想点である。
【００６０】
本実施形態における目標位置は、移動機構１４によってワークＷと撮像部１６とを以下のように位置決めしたときの、該移動機構１４の各構成要素（旋回胴２２、ロボットアーム２４、手首部２６、およびロボットハンド２８）の位置および姿勢に相当する。
【００６１】
具体的には、ワークＷを把持する移動機構１４が目標位置に配置されたとき、撮像部１６の光軸Ｏは、代表点Ｄｎ’を通過し、該光軸Ｏは、ツール座標系ＣＴのｙ軸と平行となり、且つ、被検査面ＳＩは、撮像部１６からツール座標系ＣＴのｙ軸マイナス方向へ距離Ｄだけ離間する。
【００６２】
移動機構１４の各構成要素の位置および姿勢は、例えば、各サーボモータ３８の回転角度によって、規定される。一方、制御部１２は、上述したように、ロボット座標系ＣＲにおける光軸Ｏの位置を予め記憶している。
【００６３】
制御部１２は、ロボット座標系ＣＲにおける光軸Ｏの位置と、ステップＳ５で算出したロボット座標系ＣＲにおける代表点Ｄｎの位置とに基づいて、光軸Ｏが代表点Ｄｎ’を通過するように移動機構１４によってワークＷと撮像部１６とを位置決めしたときの目標位置Ｅｎ（すなわち、各サーボモータ３８の回転角度）を算出する。
【００６４】
本実施形態においては、計１２個の代表点Ｄ１〜Ｄ１２が設定されているので、制御部１２は、これら代表点Ｄ１〜Ｄ１２毎に、目標位置Ｅ１〜Ｅ１２をそれぞれ取得する。制御部１２は、取得した目標位置Ｅ１〜Ｅ１２を記憶部に記憶する。
【００６５】
このように、本実施形態においては、制御部１２は、目標位置Ｅ１〜Ｅ１２を取得する目標位置取得部６０としての機能を担う。
【００６６】
なお、このステップＳ６において、実機の移動機構１４を用いて目標位置Ｅ１〜Ｅ１２を取得してもよいし、または、シミュレーションソフト等を用いて、仮想空間において目標位置Ｅ１〜Ｅ１２を算出することによって該目標位置Ｅ１〜Ｅ１２を取得してもよい。
【００６７】
ステップＳ７において、制御部１２は、ステップＳ６で取得した目標位置Ｅｎ（ｎ＝１〜１２）に基づいて、動作プログラムを生成する。一例として、制御部１２は、図７に示すフローを該制御部１２に実行させる動作プログラムを生成する。
【００６８】
以下、図７を参照して、動作プログラムの一例について、説明する。図７に示すフローは、制御部１２が、オペレータまたは上位コントローラから、ワークＷの被検査面ＳＩを検査する検査指令を受け付けたときに、開始する。このとき、制御部１２は、照明装置１８をＯＮとする。
【００６９】
ステップＳ１１において、制御部１２は、目標位置Ｅｎの番号「ｎ」を「１」にセットする。ステップＳ１２において、制御部１２は、移動機構１４を動作させて、予め定められた保管場所に保管されたワークＷを、ロボットハンド２８によって把持する。このとき、ロボットハンド２８は、オペレータから指定されたツール座標系ＣＴに対応するワーク位置を把持する。
【００７０】
ステップＳ１３において、制御部１２は、移動機構１４を目標位置Ｅｎに配置させる。例えば、ステップＳ１３の開始時点で目標位置Ｅｎの番号「ｎ」が「１」にセットされていた場合、制御部１２は、移動機構１４を目標位置Ｅ１に配置させる。
【００７１】
これにより、ロボットハンド２８に把持されているワークＷは、撮像部１６の光軸Ｏが代表点Ｄ１’を通過し、且つ、被検査面ＳＩが撮像部１６からツール座標系ＣＴのｙ軸マイナス方向へ距離Ｄだけ離間するように、撮像部１６に対して位置決めされる。また、上述したように、光軸Ｏがツール座標系ＣＴのｙ軸と平行となっているので、光軸Ｏは、被検査面ＳＩと直交する。
【００７２】
ステップＳ１４において、制御部１２は、撮像部１６を動作させて、ワークＷを撮像する。具体的には、制御部１２は、撮像部１６に撮像指令を送る。撮像部１６は、制御部１２から撮像指令を受信すると、ワークＷの被検査面ＳＩを撮像する。
【００７３】
仮に、ステップＳ１３で移動機構１４が目標位置Ｅ１に配置されていたとすると、撮像部１６は、ワークＷの区域Ｃ１’を撮像する。このとき、光軸Ｏが区域Ｃ１’の中心点である代表点Ｄ１’を通過するように、撮像部１６とワークＷとが互いに位置決めされている。
【００７４】
また、ステップＳ３にて区域Ｃ１のサイズが視野サイズＢ以下となるように被検査面モデルＳＩＭが区分けされているので、ワークＷの区域Ｃ１’のサイズも、視野サイズＢ以下となる。したがって、撮像部１６は、ワークＷの区域Ｃ１’の全域を確実に撮像することができる。撮像部１６は、撮像した画像を、制御部１２へ送信する。
【００７５】
ステップＳ１５において、制御部１２は、ステップＳ１４で撮像部１６から取得した画像を解析し、該被検査面ＳＩに形成された傷痕等の欠陥を検出する。仮に、ステップＳ１４で被検査面ＳＩの区域Ｃ１’が撮像された場合、制御部１２は、該区域Ｃ１’の欠陥を検出する。
【００７６】
ステップＳ１６において、制御部１２は、目標位置Ｅｎの番号「ｎ」を、１だけインクリメント（すなわち、ｎ＝ｎ＋１）する。
【００７７】
ステップＳ１７において、制御部１２は、目標位置Ｅｎの番号「ｎ」が、１２よりも大きい整数であるか否かを判定する。制御部１２は、番号「ｎ」が１２よりも大きい整数である（すなわち、ＹＥＳ）と判定した場合、ステップＳ１８へ進む。一方、制御部１２は、番号「ｎ」が１２以下の整数である（すなわち、ＮＯ）と判定した場合、ステップＳ１３へ戻る。
【００７８】
ステップＳ１８において、制御部１２は、移動機構１４を動作させて、移動機構１４によって把持したワークＷを、予め定められた収容場所まで搬送し、該収容場所に収容する。
【００７９】
制御部１２は、ステップＳ６で取得した目標位置Ｅｎに基づいて、図７に示すような動作プログラムを生成し、該動作プログラムを実行することによって、移動機構１４によるワークＷの移動動作と、撮像部１６による被検査面ＳＩの撮像動作とを制御する。
【００８０】
このように、本実施形態においては、制御部１２は、目標位置Ｅｎに基づいて動作プログラムを生成するプログラム生成部６２としての機能を担う。
【００８１】
以上に述べたように、本実施形態に係る動作プログラム生成装置５０は、検査システム１０が被検査面ＳＩを検査するときの動作プログラムを、ワークＷの図面データから構築することができる。
【００８２】
この構成によれば、動作プログラムを作成するためにオペレータが移動機構１４に動作を教示する工数を減らすことができ、これにより、検査システム１０を容易且つ迅速に立ち上げることができる。
【００８３】
また、本実施形態においては、制御部１２は、被検査面ＳＩ（被検査面モデルＳＩＭ）を、複数の区域Ｃ１’〜Ｃ１２’（区域Ｃ１〜Ｃ１２）に区分けしている（ステップＳ３）。
【００８４】
この構成によれば、撮像部１６の解像度を高く設定することによって視野サイズＢが小さくなった場合においても、上述のステップＳ１３〜Ｓ１７を繰り返し実行することによって、被検査面ＳＩの全域を確実に検査することができる。したがって、被検査面ＳＩを撮像部１６によって高解像度で撮像できるので、被検査面ＳＩをより詳細に検査できる。
【００８５】
また、本実施形態においては、制御部１２は、オペレータからワーク位置の指定を受け付けて、該ワーク位置に基づいて、代表点Ｄ１〜Ｄ１２の位置を算出している（ステップＳ５）。この構成によれば、代表点Ｄ１〜Ｄ１２の位置を、より容易且つ正確に算出できる。
【００８６】
なお、制御部１２は、上述のステップＳ６において目標位置Ｅｎを取得したときに、傾斜目標位置（第２目標位置）Ｆｎ_ｍをさらに取得してもよい。この傾斜目標位置Ｆｎ_ｍについて、図８〜図１１を参照して説明する。
【００８７】
なお、図８〜図１１は、図６に対応する図であって、理解の容易の観点から、撮像部１６と、ロボットハンド２８によって把持されたワークＷの区域Ｃｎ’のみを示している。図８は、ワークＷを把持する移動機構１４が、第１の傾斜目標位置Ｆｎ_１に配置されたときの、撮像部１６と区域Ｃｎ’との位置関係を示している。
【００８８】
移動機構１４が第１の傾斜目標位置Ｆｎ_１に配置されたときに該移動機構１４によって把持されているワークＷは、図６に示すワークＷを、図６中の仮想軸線Ｇ周りに方向Ｈへ角度θ１（図８）だけ回転させた位置に配置されている。
【００８９】
この仮想軸線Ｇは、代表点Ｄｎ’を通過し、且つ図１中のツール座標系のｘ軸と平行な軸である。このように、移動機構１４は、第１の傾斜目標位置Ｆｎ_１に配置されたとき、撮像部１６の光軸Ｏに対する被検査面ＳＩの角度を変化させるようにワークＷを移動させる。
【００９０】
第１の傾斜目標位置Ｆｎ_１は、移動機構１４によってワークＷと撮像部１６とを図８に示すように位置決めしたときの、該移動機構１４の各構成要素（旋回胴２２、ロボットアーム２４、手首部２６、およびロボットハンド２８）の位置および姿勢に相当する。
【００９１】
制御部１２は、ロボット座標系ＣＲにおける光軸Ｏの位置と、算出した代表点Ｄｎの位置と、角度θ１とに基づいて、第１の傾斜目標位置Ｆｎ_１（すなわち、各サーボモータ３８の回転角度）を算出する。なお、角度θ１は、オペレータによって予め定められ、制御部１２の記憶部に記憶される。
【００９２】
図９は、ワークＷを把持する移動機構１４が、第２の傾斜目標位置Ｆｎ_２に配置された状態を示している。移動機構１４が第２の傾斜目標位置Ｆｎ_１に配置されたときに該移動機構１４によって把持されているワークＷは、図６に示すワークＷを、図６中の仮想軸線Ｇ周りに、方向Ｈとは反対の方向へ角度θ２（図９）だけ回転させた位置に配置されている。
【００９３】
第２の傾斜目標位置Ｆｎ_２は、移動機構１４によってワークＷと撮像部１６とを図９に示すように位置決めしたときの、該移動機構１４の各構成要素の位置および姿勢に相当する。
【００９４】
制御部１２は、ロボット座標系ＣＲにおける光軸Ｏの位置と、算出した代表点Ｄｎの位置と、角度θ２とに基づいて、第２の傾斜目標位置Ｆｎ_２（すなわち、各サーボモータ３８の回転角度）を算出する。なお、角度θ２は、オペレータによって予め定められ、制御部１２の記憶部に記憶される。
【００９５】
図１０は、ワークＷを把持する移動機構１４が、第３の傾斜目標位置Ｆｎ_３に配置された状態を示している。移動機構１４が第３の傾斜目標位置Ｆｎ_３に配置されたときに該移動機構１４によって把持されているワークＷは、図６に示すワークＷを、図６中の仮想軸線Ｉ周りに方向Ｊへ角度θ３（図１０）だけ回転させた位置に配置されている。この仮想軸線Ｉは、代表点Ｄｎ’を通過し、且つ図１中のツール座標系のｚ軸と平行な軸である。
【００９６】
第３の傾斜目標位置Ｆｎ_３は、移動機構１４によってワークＷと撮像部１６とを図１０に示すように位置決めしたときの、該移動機構１４の各構成要素の位置および姿勢に相当する。
【００９７】
制御部１２は、ロボット座標系ＣＲにおける光軸Ｏの位置と、算出した代表点Ｄｎの位置と、角度θ３とに基づいて、第３の傾斜目標位置Ｆｎ_３（すなわち、各サーボモータ３８の回転角度）を算出する。なお、角度θ３は、オペレータによって予め定められ、制御部１２の記憶部に記憶される。
【００９８】
図１１は、ワークＷを把持する移動機構１４が、第４の傾斜目標位置Ｆｎ_４に配置された状態を示している。移動機構１４が第４の傾斜目標位置Ｆｎ_４に配置されたときに該移動機構１４によって把持されているワークＷは、図６に示すワークＷを、図６中の仮想軸線Ｉ周りに、方向Ｊと反対の方向へ角度θ４（図１１）だけ回転させた位置に配置されている。
【００９９】
第４の傾斜目標位置Ｆｎ_４は、移動機構１４によってワークＷと撮像部１６とを図１１に示すように位置決めしたときの、該移動機構１４の各構成要素の位置および姿勢に相当する。
【０１００】
制御部１２は、ロボット座標系ＣＲにおける光軸Ｏの位置と、算出した代表点Ｄｎの位置と、角度θ４とに基づいて、第４の傾斜目標位置Ｆｎ_４（すなわち、各サーボモータ３８の回転角度）を算出する。なお、角度θ４は、オペレータによって予め定められ、制御部１２の記憶部に記憶される。
【０１０１】
このようにして、制御部１２は、ステップＳ６で目標位置Ｅｎ（ｎ＝１〜１２）算出する毎に、計４つの傾斜目標位置Ｆｎ_ｍ（ｍ＝１〜４）をさらに算出し、記憶部にそれぞれ記憶する。
【０１０２】
なお、このステップＳ６において、実機の移動機構１４を用いて傾斜目標位置Ｆｎ_ｍを取得してもよいし、または、シミュレーションソフト等を用いて、仮想空間において傾斜目標位置Ｆｎ_ｍを算出することによって該傾斜目標位置Ｆｎ_ｍを取得してもよい。
【０１０３】
そして、ステップＳ７において、制御部１２は、ステップＳ６で取得した目標位置Ｅｎと傾斜目標位置Ｆｎ_ｍとに基づいて、動作プログラムを生成する。一例として、制御部１２は、図１２および図１３に示すフローを該制御部１２に実行させる動作プログラムを生成する。
【０１０４】
以下、図１２および図１３を参照して、この実施形態で生成される動作プログラムの一例について、説明する。図１２に示すフローは、図７に示すフローと、ステップＳ２０において相違する。
【０１０５】
具体的には、ステップＳ１５の後、制御部１２は、ステップＳ２０において、ワークＷの姿勢を変えて検査するプロセスを実行する。このプロセスの一例を、図１３に示す。図１３に示すフローが開始されたとき、ステップＳ２１において、制御部１２は、傾斜目標位置Ｆｎ_ｍの番号「ｍ」を「１」にセットする。
【０１０６】
ステップＳ２２において、制御部１２は、移動機構１４を、傾斜目標位置Ｆｎ_ｍに配置させる。例えば、ステップＳ２２の開始時点で傾斜目標位置Ｆｎ_ｍの番号「ｍ」が「１」にセットされていた場合、制御部１２は、移動機構１４を図８に示す第１の傾斜目標位置Ｆｎ_１に配置させる。
【０１０７】
ステップＳ２３において、制御部１２は、上述のステップＳ１４と同様に、撮像部１６を動作させて、ワークＷを撮像する。仮に、ステップＳ２２の開始時点でｎ＝１、且つｍ＝１にセットされていた場合、撮像部１６は、ワークＷの区域Ｃ１’を図８に示すように傾斜させた状態で撮像することになる。
【０１０８】
このとき、光軸Ｏが区域Ｃ１’の中心点である代表点Ｄ１’を通過するように、撮像部１６とワークＷとが互いに位置決めされている。撮像部１６は、撮像した画像を、制御部１２へ送信する。
【０１０９】
ステップＳ２４において、制御部１２は、ステップＳ２３で撮像部１６から取得した画像を解析し、該被検査面ＳＩに形成された傷痕等の欠陥を検出する。仮に、ステップＳ１４で被検査面ＳＩの区域Ｃ１’が撮像された場合、制御部１２は、該区域Ｃ１’の欠陥を検出する。
【０１１０】
ステップＳ２５において、制御部１２は、傾斜目標位置Ｆｎ_ｍの番号「ｍ」を、１だけインクリメント（すなわち、ｍ＝ｍ＋１）する。
【０１１１】
ステップＳ２６において、制御部１２は、傾斜目標位置Ｆｎ_ｍの番号「ｍ」が、４よりも大きい整数であるか否かを判定する。制御部１２は、番号「ｍ」が４よりも大きい整数である（すなわち、ＹＥＳ）と判定した場合、図１３に示すフローを終了する。一方、制御部１２は、番号「ｍ」が４以下の整数である（すなわち、ＮＯ）と判定した場合、ステップＳ２２へ戻る。
【０１１２】
このように、本実施形態に係る動作プログラムによれば、制御部１２は、計１２個の目標位置Ｅｎ毎に、計４個の傾斜目標位置Ｆｎ_ｍに移動機構１４をそれぞれ配置させて、撮像部１６によってワークＷを撮像している。この構成によれば、ワークＷを様々な角度から撮像できるので、被検査面ＳＩに形成された傷痕等の欠陥を、より高精度に検出できる。
【０１１３】
なお、本実施形態においては、傾斜目標位置Ｆｎ_ｍが４個（すなわち、ｍ＝１〜４）である場合について述べたが、これに限らず、傾斜目標位置Ｆｎ_ｍは、如何なる個数だけ設定されてもよい。
【０１１４】
次に、図２および図１４を参照して、他の実施形態に係る検査システム１００について説明する。検査システム１００は、上述した検査システム１０と、以下の構成において相違する。
【０１１５】
すなわち、検査システム１００においては、撮像部１６は、移動機構１４の手首部２６に固定されている。その一方で、ワークＷは、ワーク保持部１０４に固定される。制御部１２の記憶部は、ワークＷが固定されているロボット座標系ＣＲにおける位置の情報を、予め記憶する。
【０１１６】
本実施形態においては、ツール座標系ＣＴが、撮像部１６に対して設定される。このツール座標系ＣＴは、自動制御の座標系の１つであって、該ツール座標系ＣＴの位置をロボット座標系ＣＲ上で表現することにより、空間内での撮像部１６の位置および姿勢を規定する。本実施形態においては、ツール座標系ＣＴのｚ軸が、撮像部１６の光軸Ｏと一致するように、ツール座標系ＣＴが設定されている。
【０１１７】
制御部１２は、撮像部１６の位置および姿勢を、ツール座標系ＣＴによって規定される位置および姿勢に一致させるように、ロボット座標系ＣＲにおいて旋回胴２２、ロボットアーム２４、および手首部２６を動作させる。こうして、撮像部１６は、ロボット座標系ＣＲにおいて任意の位置および姿勢に配置される。
【０１１８】
制御部１２の記憶部は、ワーク表面検査動作を制御部１２に実行させるための動作プログラムを、予め記憶する。本実施形態に係る動作プログラム生成装置５０は、このような動作プログラムを自動で生成する。
【０１１９】
以下、図４〜図６を参照して、本実施形態に係る動作プログラム生成装置５０の動作フローについて、説明する。図４に示すフローは、制御部１２がオペレータから動作プログラム生成指令を受け付けたときに、開始する。
【０１２０】
ステップＳ１において、制御部１２は、上述の実施形態と同様に、図面取得部５２として機能して、ワークＷの図面データを取得する。
【０１２１】
ステップＳ２において、制御部１２は、上述の実施形態と同様に、指定受付部５４として機能して、ワークＷの図面データにおける被検査面の指定を受け付ける。
【０１２２】
ステップＳ３において、制御部１２は、上述の実施形態と同様に、区分け部５５として機能して、ステップＳ２で指定された被検査面を、複数の区域に区分けする。例えば、制御部１２は、ステップＳ２で指定された被検査面モデルＳＩＭを、図５（ｂ）に示すように区分けする。
【０１２３】
ステップＳ４において、制御部１２は、上述の実施形態と同様に、代表点設定部５６として機能して、被検査面に代表点を設定する。例えば、制御部１２は、図５（ｂ）に示すように、ステップＳ３で区分けされた区域Ｃｎ（ｎ＝１〜１２）に、１つの代表点Ｄｎを設定する。
【０１２４】
ステップＳ５において、制御部１２は、代表点算出部５８として機能して、ステップＳ４で設定された代表点Ｄｎの位置を算出する。ここで、本実施形態においては、上述したように、ロボット座標系ＣＲにおけるワークＷの固定位置の情報が、制御部１２の記憶部に予め記憶されている。
【０１２５】
制御部１２は、ロボット座標系ＣＲにおけるワークＷの固定位置の情報と、ワークＷの図面データ（すなわち、ワークモデルＷＭ）とに基づいて、ロボット座標系ＣＲにおける各代表点Ｄｎの座標を算出する。このように、本実施形態においては、制御部１２は、ワークＷの固定位置に基づいて、代表点Ｄ１〜Ｄ１２の位置を算出する。
【０１２６】
ステップＳ６において、制御部１２は、目標位置取得部６０として機能して、目標位置を取得する。本実施形態における目標位置は、移動機構１４の手首部２６に固定された撮像部１６を、ワークＷに対して、図６に示すように位置決めしたときの、該移動機構１４の各構成要素（旋回胴２２、ロボットアーム２４、手首部２６、およびロボットハンド２８）の位置および姿勢に相当する。
【０１２７】
移動機構１４が目標位置に配置されたとき、撮像部１６の光軸Ｏ（すなわち、ツール座標系ＣＴのｚ軸）は、代表点Ｄｎ’を通過し、且つ、被検査面ＳＩは、撮像部１６からツール座標系ＣＴのｚ軸プラス方向へ距離Ｄだけ離間する。
【０１２８】
制御部１２は、移動機構１４によって撮像部１６をワークＷに対して図６に示すように位置決めしたときの目標位置Ｌｎ（すなわち、各サーボモータ３８の回転角度）を算出する。
【０１２９】
本実施形態においては、計１２個の代表点Ｄ１〜Ｄ１２が設定されているので、制御部１２は、これら代表点Ｄ１〜Ｄ１２毎に、目標位置Ｌ１〜Ｌ１２をそれぞれ取得する。制御部１２は、取得した目標位置Ｌ１〜Ｌ１２を記憶部に記憶する。
【０１３０】
なお、このステップＳ６において、実機の移動機構１４を用いて目標位置Ｌ１〜Ｌ１２を取得してもよいし、または、シミュレーションソフト等を用いて、仮想空間において目標位置Ｌ１〜Ｌ１２を算出することによって該目標位置Ｌ１〜Ｌ１２を取得してもよい。
【０１３１】
ステップＳ７において、制御部１２は、プログラム生成部６２として機能して、ステップＳ６で取得した目標位置Ｌ１〜Ｌ１２に基づいて、動作プログラムを生成する。一例として、制御部１２は、図１５に示すフローを該制御部１２に実行させる動作プログラムを生成する。
【０１３２】
以下、図１５を参照して、動作プログラムの一例について、説明する。図１５に示すフローは、オペレータがワークＷをワーク保持部１０４に設置し、制御部１２が、オペレータまたは上位コントローラから検査指令を受け付けたときに、開始する。このとき、制御部１２は、照明装置１８をＯＮとする。
【０１３３】
ステップＳ３１において、制御部１２は、目標位置Ｌｎの番号「ｎ」を「１」にセットする。ステップＳ３２において、制御部１２は、移動機構１４を目標位置Ｌｎに配置させる。例えば、ステップＳ３２の開始時点で目標位置Ｌｎの番号「ｎ」が「１」にセットされていた場合、制御部１２は、移動機構１４を目標位置Ｌ１に配置させる。
【０１３４】
これにより、移動機構１４の手首部２６に固定されている撮像部１６の光軸Ｏが代表点Ｄ１’を通過し、且つ、被検査面ＳＩが撮像部１６からツール座標系ＣＴのｚ軸プラス方向へ距離Ｄだけ離間するように、撮像部１６がワークＷに対して位置決めされる。
【０１３５】
ステップＳ３３において、制御部１２は、上述のステップＳ１４と同様に、撮像部１６を動作させて、ワークＷを撮像する。仮に、ステップＳ３２で移動機構１４が目標位置Ｌ１に配置されていたとすると、撮像部１６は、ワークＷの区域Ｃ１’を撮像する。撮像部１６は、撮像した画像を、制御部１２へ送信する。
【０１３６】
ステップＳ３４において、制御部１２は、ステップＳ３３で撮像部１６から取得した画像を解析し、被検査面ＳＩに形成された傷痕等の欠陥を検出する。仮に、ステップＳ３３で被検査面ＳＩの区域Ｃ１’が撮像された場合、制御部１２は、該区域Ｃ１’の欠陥を検出する。
【０１３７】
ステップＳ３５において、制御部１２は、目標位置Ｌｎの番号「ｎ」を、１だけインクリメント（すなわち、ｎ＝ｎ＋１）する。
【０１３８】
ステップＳ３６において、制御部１２は、目標位置Ｌｎの番号「ｎ」が、１２よりも大きい整数であるか否かを判定する。制御部１２は、番号「ｎ」が１２よりも大きい整数である（すなわち、ＹＥＳ）と判定した場合、図１５に示すフローを終了する。一方、制御部１２は、番号「ｎ」が１２以下の整数である（すなわち、ＮＯ）と判定した場合、ステップＳ３２へ戻る。
【０１３９】
制御部１２は、図１５に示す動作プログラムを実行することによって、移動機構１４による撮像部１６の移動動作と、該撮像部１６による被検査面ＳＩの撮像動作とを制御する。制御部１２は、ステップＳ６で取得した目標位置Ｌ１〜Ｌ１２に基づいて、図１５に示すような動作プログラムを生成する。
【０１４０】
以上に述べたように、本実施形態に係る動作プログラム生成装置５０は、検査システム１００が被検査面ＳＩを検査するときの動作プログラムを、ワークＷの図面データから構築することができる。
【０１４１】
この構成によれば、動作プログラムを作成するためにオペレータが移動機構１４に動作を教示する工数を減らすことができ、これにより、検査システム１００を容易且つ迅速に立ち上げることができる。
【０１４２】
なお、上述の実施形態においては、制御部１２が、ステップＳ３にて被検査面ＳＩ（具体的には、被検査面モデルＳＩＭ）を、複数の区域に区分けした場合について説明した。しかしながら、制御部１２は、例えば、ワークＷのサイズが小さい場合、または、視野サイズＢを大きく設定できる場合等においては、ステップＳ３を省略することもできる。
【０１４３】
次に、図１６を参照して、さらに他の実施形態に係る検査システム１０’について説明する。検査システム１０’は、制御部１２、移動機構１４、撮像部１６、照明装置１８、および動作プログラム生成装置５０’を備える。
【０１４４】
動作プログラム生成装置５０’は、上述の動作プログラム生成装置５０と、以下の構成において相違する。すなわち、動作プログラム生成装置５０’は、図面取得部５２、指定受付部５４、目標位置取得部６０’、およびプログラム生成部６２を備える一方、代表点設定部５６および代表点算出部５８を備えていない。
【０１４５】
また、動作プログラム生成装置５０’は、制御部１２とは別の要素として構成されている。動作プログラム生成装置５０’は、ＣＰＵおよび記憶部等を有する１つのコンピュータから構成されてもよい。
【０１４６】
または、動作プログラム生成装置５０’の図面取得部５２、指定受付部５４、目標位置取得部６０、およびプログラム生成部６２の各々が、ＣＰＵおよび記憶部等を有する１つのコンピュータから構成されてもよい。
【０１４７】
次に、図１７を参照して、動作プログラム生成装置５０’の動作フローの一例について説明する。なお、図１７において、図４のフローと同様のプロセスには同じステップ番号を付し、詳細な説明を省略する。
【０１４８】
以下、ステップＳ１にて、図１８に示すワークＷ’の図面データを取得し、ステップＳ２において、該ワークＷ’の被検査面ＳＩ’の指定を受け付けた場合について説明する。
【０１４９】
ステップＳ２の後、ステップＳ６’において、目標位置取得部６０’は、目標位置を取得する。具体的には、目標位置取得部６０’は、ワークＷ’の図面データから、図１９に示すように被検査面ＳＩ’の外接図形７０を算出する。本実施形態においては、外接図形７０は、長方形である。
【０１５０】
次いで、目標位置取得部６０’は、被検査面ＳＩ’上に画定される撮像部１６の視野サイズＢの一頂点が、図２０に示すように外接図形７０の一頂点７０ａに一致するように、移動機構１４によってワークＷ’と撮像部１６とを位置決めしたときの、該移動機構１４の各構成要素（旋回胴２２、ロボットアーム２４、手首部２６、およびロボットハンド２８）の位置および姿勢を、第１目標位置Ｐ１として取得する。
【０１５１】
次いで、目標位置取得部６０’は、撮像部１６の視野サイズＢが、図２１に示すように、第１目標位置Ｐ１に対応する最初の視野サイズＢに対して右側に接するように移動されたときの、該移動機構１４の各構成要素の位置および姿勢を、第２目標位置Ｐ２として取得する。
【０１５２】
このようにして、目標位置取得部６０’は、外接図形７０において視野サイズＢを順次ずらしていき、視野サイズＢが、第ｎ目標位置Ｐｎに対応する視野サイズＢに接するように移動されたときの、該移動機構１４の各構成要素の位置および姿勢を、第ｎ＋１目標位置Ｐｎ＋１として順次取得する。
【０１５３】
目標位置取得部６０’は、この動作を、外接図形７０内の全領域を網羅するまで自動で繰り返し、視野サイズＢの位置毎に目標位置Ｐｎを取得する。なお、第ｎ＋１目標位置Ｐｎ＋１に対応する視野サイズＢが、第ｎ目標位置Ｐｎに対応する視野サイズＢに一部重複するように移動されてもよい。
【０１５４】
ここで、目標位置取得部６０’は、視野サイズＢを移動した結果、移動後の視野サイズＢ内に被検査面ＳＩ’が存在しなくなった（すなわち、被検査面ＳＩ’が撮像部１６の視野から外れた）場合、該移動後の視野サイズＢに関して目標位置の算出を行わない。
【０１５５】
ステップＳ６’の後、ステップＳ７において、プログラム生成部６２は、ステップＳ６’で取得した目標位置Ｐｎに基づいて、動作プログラムを生成する。本実施形態においては、目標位置取得部６０’は、被検査面の外接図形に基づいて、上述の代表点Ｄｎを設定することなく、各目標位置Ｐｎを取得することができる。
【０１５６】
なお、図２または１５に示す動作プログラム生成装置５０も、動作プログラム生成装置５０’と同様に、制御部１２とは別の要素として構成されてもよい。
【０１５７】
また、ステップＳ３で被検査面ＳＩを区分けするときの区域Ｃｎの個数や、該区域Ｃｎのサイズは、オペレータによって予め定められてもよい。
【０１５８】
また、区域Ｃｎの形状は、四角形に限らず、四角形以外の多角形、円形、または楕円形等であってもよい。また、ステップＳ３で被検査面ＳＩを区分けするときに、検査漏れを防ぐために、隣り合う区域Ｃｎ同士が互いに重なり合うように、被検査面ＳＩを区分けしてもよい。
【０１５９】
また、図２に示す動作プログラム生成装置５０から代表点設定部５６および代表点算出部５８を省略し、目標位置取得部６０は、複数の区域Ｃｎの各々が撮像部１６の視野に入るようにワークＷと撮像部１６とを位置決めしたときの移動機構１４の位置の各々を、目標位置として区域Ｃｎ毎に取得してもよい。
【０１６０】
例えば、目標位置取得部６０は、光軸Ｏが区域Ｃｎの対角線上に配置されるようにワークＷと撮像部１６とを位置決めしたときの移動機構１４の位置の各々を、目標位置として取得してもよい。
【０１６１】
この場合、代表点を設定することなく、区域Ｃｎ毎に目標位置を取得できる。なお、区域Ｃｎの対角線のロボット座標系ＣＲにおける座標は、ワークＷの図面データから算出できる。
【０１６２】
また、代表点Ｄｎは、区域Ｃｎの中心点でなくてもよく、例えば、区域Ｃｎが多角形であれば、その頂角に設定されてもよい。また、代表点Ｄｎの位置を、オペレータが制御部１２の操作部を操作することによって微調整できるように検査システム１０、１０’、１００が構成されてもよい。
【０１６３】
また、ステップＳ５において、移動機構１４がワークＷを把持した状態で該ワークＷを撮像部１６で撮像し、撮像された画像を画像処理することによって、ワークＷの掴みずれを認識し、該ずれの分だけ、ロボット座標系ＣＲにおける代表点Ｄｎの位置をシフトさせてもよい。
【０１６４】
また、上述の実施形態においては、移動機構１４が、垂直多関節ロボットから構成されている場合について述べたが、これに限らず、例えばローダ等によって構成されてもよい。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
【符号の説明】
【０１６５】
１０，１０’，１００    検査システム
１２    制御部
１４    移動機構
１６    撮像部
１８    照明装置
５０，５０’    動作プログラム生成装置
５２    図面取得部
５４    指定受付部
５５    区分け部
５６    代表点設定部
５８    代表点算出部
６０    目標位置取得部
６２    プログラム生成部
【図１】
2018132331.tif 000003
【図２】
2018132331.tif 000004
【図３】
2018132331.tif 000005
【図４】
2018132331.tif 000006
【図５】
2018132331.tif 000007
【図６】
2018132331.tif 000008
【図７】
2018132331.tif 000009
【図８】
2018132331.tif 000010
【図９】
2018132331.tif 000011
【図１０】
2018132331.tif 000012
【図１１】
2018132331.tif 000013
【図１２】
2018132331.tif 000014
【図１３】
2018132331.tif 000015
【図１４】
2018132331.tif 000016
【図１５】
2018132331.tif 000017
【図１６】
2018132331.tif 000018
【図１７】
2018132331.tif 000019
【図１８】
2018132331.tif 000020
【図１９】
2018132331.tif 000021
【図２０】
2018132331.tif 000022
【図２１】
2018132331.tif 000023