(57)【要約】【課題】視覚検査の対象となるワークや使用するカメラのレンズなどが決まっていなくとも、ワークの視覚検査ポイントの全てをカメラで撮影可能なロボットの設置位置などのレイアウトをユーザに提供できる。【解決手段】ワークの三次元形状データ、複数のカメラのレンズ情報、使用するロボットの動作データなどを記憶しておき、ワークの複数の検査ポイントを撮影するカメラのレンズの焦点距離、カメラの撮影位置と姿勢、そのカメラの撮影位置と姿勢を取るためのロボットの動きなどをシミュレーションし、使用カメラの種類やロボットの設置位置などをユーザに提供する。【選択図】図１
2009269134.tif 000002
【特許請求の範囲】
【請求項１】
ワークの検査ポイントをロボットのアーム先端に取り付けられたカメラにより撮影し、その撮影画像によって前記検査ポイントを検査する視覚検査装置を対象にして、当該視覚検査装置のシミュレーションを行う装置において、
表示手段と、
複数のカメラ用レンズのレンズデータを記憶するレンズデータ記憶手段と、
ワークの三次元形状データを記憶する形状データ記憶手段と、
前記ワークの三次元形状データに基づいて、前記表示手段に、前記ワークを、視点位置を自在に変更して三次元表示可能なワーク用表示制御手段と、
前記表示手段に表示される前記ワークの視点位置を変更するための視点位置変更操作手段と、
前記表示手段に表示された前記ワークに対し、前記カメラによる撮影画像によって視覚検査すべき前記検査ポイントを入力する検査ポイント入力手段と、
前記ワークの前記検査ポイントにおいて前記カメラが撮影する範囲を入力する検査範囲入力手段と、
前記ワークの前記検査ポイントおよび前記カメラが撮影する範囲を入力したときの前記ワークの視点位置から前記検査ポイントを見た直線が光軸となるように前記カメラの姿勢を設定するカメラ姿勢設定手段と、
前記レンズデータ記憶手段が有する前記レンズデータに基づき、前記検査範囲入力手段により入力された前記検査範囲を撮影するに適したレンズを選択するレンズ選択手段と、
前記検査ポイント入力手段により入力された前記検査ポイントおよび前記カメラ姿勢設定手段により設定された前記カメラの姿勢に基づき、前記検査ポイントを通る前記カメラの光軸上において前記検査ポイントから離れる方向に前記レンズ選択手段により選択されたレンズに応じた距離だけ移動した位置を撮影ポイントとして設定する撮影ポイント設定手段と、
前記撮影ポイント設定手段により設定された撮影ポイントから、予め設定された方向に予め設定された距離だけ変位したポイントを前記撮影ポイントについての撮影時アーム先端位置として設定する撮影時アーム先端位置設定手段と、
前記ロボットの動作を前記表示手段に三次元表示するためのデータを記憶する動作データ記憶手段と、
前記ロボットの設置可能位置を入力するためのロボット設置可能位置入力手段と、
前記動作データ記憶手段に記憶されたデータに基づいて前記ロボットを前記表示手段に三次元表示するためのロボット用表示制御手段と、
前記ロボットが前記設置可能位置に設置されたとき、前記表示手段に前記ワークを三次元表示するための座標により示される位置を前記設置可能位置に設置された前記ロボットの座標により示される位置に変換するワーク‐ロボット座標変換手段と、
前記ロボット設定可能位置入力手段により入力された前記設置可能位置に前記ロボットを設置したとき、前記動作データ記憶手段により前記ロボットを動作させたとき、前記ロボットの前記カメラを取り付けた前記アーム先端が前記撮影時アーム先端位置まで移動可能か否かを判断するロボット可動制御判断手段と、
前記ロボット可動制御手段が前記撮影時アーム先端位置まで移動可能と判断したとき、当該撮影時アーム先端位置で、前記ロボットのアーム先端が前記カメラ姿勢入力手段により入力された前記カメラ姿勢にすることが可能か否かを判断するカメラ姿勢制御判断手段と、
前記カメラ姿勢制御判断手段が可能と判断した場合の前記設置可能位置をロボット設置位置候補として出力する出力手段と
を具備してなる視覚検査装置のシミュレーション装置。
【請求項２】
ロボットのアーム先端に取り付けられたワークの検査ポイントを、定位置に設けられたカメラにより撮影し、その撮影画像によって前記検査ポイントを検査する視覚検査装置を対象にして、当該視覚検査装置のシミュレーションを行う装置において、
表示手段と、
複数のカメラ用レンズのレンズデータを記憶するレンズデータ記憶手段と、
ワークの三次元形状データを記憶する形状データ記憶手段と、
前記ワークの三次元形状データに基づいて、前記表示手段に、前記ワークを、視点位置を自在に変更して三次元表示可能なワーク用表示制御手段と、
前記表示手段に表示される前記ワークの視点位置を変更するための視点位置変更操作手段と、
前記表示手段に表示された前記ワークに対し、前記カメラによる撮影画像によって視覚検査すべき前記検査ポイントを入力する検査ポイント入力手段と、
前記ワークの前記検査ポイントにおいて前記カメラが撮影する範囲を入力する検査範囲入力手段と、
前記ワークの前記検査ポイントおよび前記カメラが撮影する範囲を入力したときの前記ワークの視点位置から前記検査ポイントを見た直線を前記カメラの光軸として設定するカメラ光軸設定手段と、
前記ワークの座標上での前記カメラの光軸の傾きを検出するカメラ光軸傾度検出手段と、
前記レンズデータ記憶手段が有する前記レンズデータに基づき、前記検査範囲入力手段により入力された前記検査範囲を撮影するに適したレンズを選択するレンズ選択手段と、
前記検査ポイント入力手段により入力された前記検査ポイントおよび前記カメラ光軸設定手段により設定された前記カメラの光軸に基づき、前記検査ポイントを通る前記カメラの光軸上において前記検査ポイントから離れる方向に前記レンズ選択手段により選択されたレンズに応じた距離だけ移動した位置を撮影ポイントとして設定する撮影ポイント設定手段と、
前記カメラを前記表示手段に表示するためのカメラ位置表示手段と、
前記表示手段に表示された前記カメラの固定位置と当該カメラの光軸の方向とを設定するカメラ位置設定手段と、
前記撮影ポイント設定手段により設定された前記撮影ポイントを、前記カメラの三次元座標の位置に変換するワーク‐カメラ座標変換手段と、
前記ロボットの動作を前記表示手段に三次元表示するためのデータを記憶する動作データ記憶手段と、
前記ロボットを前記表示手段に表示するためのロボット表示制御手段と、
前記カメラの座標上の位置を前記ロボットの前記ロボット座標上の位置に変換するカメラ‐ロボット座標変換手段と、
前記ロボットのアーム先端に前記ワークを取り付けた状態にするためのワーク取り付け操作手段と、
前記ワーク取り付け操作手段により前記ワークが前記アーム先端に取り付けられたとき、アーム先端の座標に対する前記ワークの座標の位置関係および傾き関係を検出するための座標間関係検出手段と、
前記前記撮影ポイント設定手段により設定された撮影ポイントから、前記座標間検出手段により検出された前記アームの先端の座標に対する前記ワークの座標の位置関係および傾き関係並びに前記カメラ光軸傾度検出手段により検出された前記ワークの座標上での前記カメラの光軸の傾きにより、前記アーム先端の位置を撮影時アーム先端位置として設定する撮影時アーム先端位置設定手段と、
前記前記撮影ポイント設定手段により設定された撮影ポイントから、前記座標間検出手段により検出された前記アームの先端の座標に対する前記ワークの座標の位置関係および傾き関係により、前記アーム先端が前記ワークの前記検査ポイントを前記撮影ポイントに一致させるための前記アーム先端の姿勢を設定するアーム姿勢設定手段と、
前記ロボットの設置可能位置を入力するためのロボット設置可能位置入力手段と、
前記ロボット設定可能位置入力手段により入力された前記設置可能位置に前記ロボットを設置したとき、前記ロボットの前記カメラを取り付けたアーム先端が前記撮影時アーム先端位置まで移動可能か否かを判断するロボット可動制御判断手段と、
前記ロボット可動制御手段が前記撮影時アーム先端位置まで移動可能と判断したとき、当該撮影時アーム先端位置で、前記アーム先端の姿勢を前記撮影ポイント設定手段により設定された前記撮影ポイントに向かせることが可能か否かを判断するフランジ姿勢制御判断手段と、
前記フランジ姿勢制御判断手段が可能と判断した場合の前記設置可能位置をロボット設置位置候補として出力する出力手段と
を具備してなる視覚検査装置のシミュレーション装置。
【請求項３】
前記検査ポイントが複数入力されたとき、前記ロボット可動制御判断手段は、前記複数の各検査ポイントを撮影するための前記撮影時アーム先端位置のうち、前記ロボットの設置された位置における前記アーム先端の原点位置から最も遠い撮影時アーム先端位置まで、前記アーム先端を移動可能か否か判断し、移動可能と判断したとき、他の撮影時アーム先端位置まで前記アーム先端を移動可能か否か判断することを特徴とする請求項１または２記載の視覚検査装置のシミュレーション装置。
【請求項４】
前記ロボット設定可能位置入力手段は、前記設置可能位置を複数入力可能で、
前記ロボット可動制御判断手段は、前記複数の設置可能位置の座標を平均して平均座標を算出し、前記複数の設置可能位置のうちから前記平均座標に最も近い設置可能位置を初期ロボット位置とする初期位置設置手段を備え、前記初期ロボット位置に前記ロボットを設置したときに前記アーム先端が前記撮影時アーム先端位置まで移動できないと判断したときは、その移動できない撮影時アーム先端位置との距離が前記初期ロボット位置よりも短い設置可能位置を判断対象とし、長い設置可能位置を判断対象から除外することを特徴とする請求項１ないし３のいずれかに記載の視覚検査装置のシミュレーション装置。
【請求項５】
前記設定可能位置入力手段は、前記設置可能位置を複数入力可能で、
前記ロボット可動制御判断手段は、前記複数の設置可能位置のいずれかに前記ロボットを設置したときに前記アーム先端が前記撮影時アーム先端位置まで移動できないと判断したときは、その移動できない撮影時アーム先端位置との距離が現在のロボット位置よりも遠い設置可能位置を判断対象から除外することを特徴とする請求項１ないし４のいずれかに記載の視覚検査装置のシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを使用してワークの検査ポイントをカメラにより撮影する視覚検査装置のシミュレーション装置に関する。
【背景技術】
【０００２】
視覚検査装置のシミュレーション装置は、例えば特許文献１および特許文献２により公知である。特許文献１は、ワークのＣＡＤデータに基づいて、表示画面にワークの三次元図形を、視点を違えて表示することにより、ワークの検査ポイントを最も撮影するに適した視点位置を選択し、その視点位置をカメラの位置として当該カメラの位置からロボットの動作位置を設定しようとするものである。
【０００３】
特許文献２は、オフラインで、カメラ位置を決め、ロボットの動作位置を設定した場合、実際に工場に設置された視覚検査装置では、ロボットの動作位置を修正しなければならなくなることが多いという事情に鑑みて、ロボットの動作位置や姿勢などの修正を容易に行うことができるようにしたものである。
【特許文献１】特開２００５−５２９２６号公報
【特許文献２】特開２００４−２６５０４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１，２のシミュレーション装置では、ロボットを設置する位置はワークとの関係で既に確定されており、ロボットに設けられるカメラは１台で、しかも、そのカメラのレンズは、ズームレンズではなく、単焦点のレンズであることを前提としている。
しかしながら、視覚検査装置を生産工程に組み込む前の段階では、未だどのような焦点のレンズを持つカメラを用いるかが決まっていない場合がある。この場合、１つのカメラを持つことを前提にシミュレーションする特許文献１，２の装置では、生産ラインに実際に視覚検査装置を組み込んだとき、教示の際に用いたカメラと実際にロボットに取り付けられたカメラとが異なり、その結果、教示されたロボットの動作位置では、カメラのレンズのピントがワークの検査ポイントに合わず、検査ポイントがぼやけて良好に見えないという不具合を生じ易いという不具合がある。
【０００５】
事前のシミュレーションと、実際の視覚検査装置とで、カメラのレンズが異なり、ピントが合わないという問題を生じた場合、ピント修正のためのロボットの動作位置や姿勢などの修正は、特許文献２のシミュレーション装置の技術を応用して行うことは可能である。しかし、これとて、最初にワークとロボットの設置位置を設定しておかければならないので、シミュレーション上で定めたロボットの設置位置が、実際の生産工場では、設置できない場所となったような場合、再度、ロボットの設置位置を変更して再度シミュレーションしなければならなくなるといった不具合を生ずる。
【０００６】
一方、視覚検査システムの販売側では、視覚検査システムの設計も一つのサービスとして提供したいという要望がある。しかし、視覚検査システムの設計段階では、使用するロボットは決まっていても、ロボットを設置する位置や使用するカメラなどは未定であることが多く、特許文献１，２の技術では対応できない。しかも、最近では、ロボットに複数のカメラを用いる提案もなされており、このことについても、特許文献１，２の技術では対応することができない。
【０００７】
本発明は上記の事情に鑑みてなされたもので、その目的は、実際の視覚検査装置でワークの検査ポイントにカメラのピントが合わないといった事態の発生を避けつつ、視覚検査装置システムの設計のためのシミュレーションを行うことができる視覚検査装置のシミュレーション装置を提供することにある。
【課題を解決するための手段】
【０００８】
請求項１の発明は、定位置に置かれたワークをロボット先端に設けられたカメラにより撮影し、その撮影画像によってワークの検査ポイントを検査する視覚検査装置を対象にして当該視覚検査装置のシミュレーションを行う装置において、ワークを表示手段に三次元表示し、表示手段に表示されたワークを視点位置を変更して表示することによってワークの検査ポイントを撮影する方向（カメラの光軸）を設定し、そして、検査ポイントを撮影するに適したレンズが選択されたとき、その選択されたレンズで検査ポイントを撮影する撮影ポイントを設定し、撮影方向と撮影ポイントに基づいて、カメラを取り付けるロボットのアーム先端の位置と姿勢とを求め、ロボットを表示手段に表示して当該ロボットを設置可能位置に設置した場合に、カメラが撮影ポイントに位置するように、アーム先端を移動させ得るか、その移動位置でカメラが検査ポイントを撮影できる姿勢となるように、アーム先端の姿勢を取り得るかを判断し、位置と姿勢を取り得る場合に、そのロボットの設置位置をロボット設置位置候補として出力するので、実際の視覚検査装置でワークの検査ポイントにカメラのピントが合わないといった事態の発生を避けつつ視覚検査装置システムの設計のためのシミュレーションを行うことができる。
【０００９】
請求項２の発明は、ロボット先端に取り付けられたワークを、定位置に置かれたカメラにより撮影し、その撮影画像によってワークの検査ポイントを検査する視覚検査装置を対象にして当該視覚検査装置のシミュレーションを行う装置において、ワークを表示手段に三次元表示し、表示手段に表示されたワークを視点位置を変更して表示することによってワークの検査ポイントを撮影する方向（カメラの光軸）を設定し、定位置に置かれたカメラの光軸にワークの検査ポイントを撮影する方向に合わせ、そして、検査ポイントを撮影するに適したレンズが選択されたとき、その選択されたレンズで検査ポイントを撮影する撮影ポイントを設定し、撮影方向と撮影ポイントに基づいて、ワークを取り付けるロボットのアーム先端の位置と姿勢とを求め、ロボットを表示手段に表示して当該ロボットを設置可能位置に設置した場合に、撮影ポイントにアーム先端を移動させ得るか、その移動位置で撮影する姿勢を取り得るかを判断し、位置と姿勢を取り得る場合に、そのロボットの設置位置をロボット設置位置候補として出力するので、実際の視覚検査装置でワークの検査ポイントにカメラのピントが合わないといった事態の発生を避けつつ視覚検査装置システムの設計のためのシミュレーションを行うことができる。
【００１０】
請求項３の発明は、ワークの検査ポイントが複数あるとき、ロボットが設置された位置において、アーム先端の原点位置から最も遠い撮影ポイントまでアーム先端を移動可能か否かを判断し、移動可能のとき、他の撮影ポイントまでアーム先端を移動可能か否かを判断するので、アーム先端の原点位置から最も遠い撮影ポイントまでアーム先端を移動不能のとき、その位置にはロボットを設置することができないのであるから、早くその位置への設置困難を判断することができる。
【００１１】
請求項４の発明は、ロボットを設置可能な位置として入力されている複数の設置可能位置の座標を平均して平均座標を算出し、その平均座標に最も近い設置可能位置にロボットを設置したとき、アーム先端を撮影ポイントまで移動させ得ない場合には、その平均座標よりも撮影ポイントまでの距離が短い他の設置可能位置を対象としてロボット設置位置候補となり得るか否かを判断するので、アーム先端を撮影ポイントまで移動させ得ない設置可能位置をロボット設置位置候補となり得るか否かの判断対象にしなくとも済む。
【００１２】
請求項５の発明は、ロボットを設置可能な位置として入力されている複数の設置可能位置のいずれかにロボットを設置したとき、アーム先端を撮影ポイントまで移動させ得ない場合には、その設置可能位置よりも撮影ポイントまでの距離が遠い他の設置可能位置をロボット設置位置候補となり得るか否かの判断対象から外すので、アーム先端を撮影ポイントまで移動させ得ない設置可能位置をロボット設置位置候補となり得るか否かの判断対象にしなくとも済む。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施形態によって説明する。なお、実施形態間で共通の部分は共通の符号を使用して説明するものとする。
（第１の実施形態）
図１〜図１０は本発明の第１の実施形態を示す。本実施形態がシミュレーションの対象とする視覚検査装置は、組立工場などにおいて、検査ステーションの床部或いは天井部にロボットを設置し、そのロボットのアーム先端にカメラを取り付けて構成される。一方、検査ステーションには、搬送装置が設けられており、検査対象であるワークは、その搬送装置によって搬送されて検査位置に停止され、その位置にて外観検査が行われるようになっている。
【００１４】
このとき、ロボットは、コントローラにより、三次元の固有座標系に基づいて位置の制御がなされ、カメラを任意の位置および姿勢（向き）に自在に移動させることができるようになっている。そして、予め設定された一つの或いは複数の位置にカメラを移動させることによってワークの検査すべき箇所をカメラによって撮影し、その撮影画像を画像処理装置によって処理することにより、ワークの各部の外観検査（部品が正しく組み付けられているかどうかなど）が行われるようになっている。
【００１５】
本実施形態は、上述のような視覚検査装置において、ワークの外観検査を行うべき箇所は複数、ワークによっては数十にも及ぶこともあるので、そのようなワークに対して、各検査箇所について、どのような焦点距離を持つカメラで、どの位置からどの方向から撮影することが最適か、或いは、どのようなレイアウトでロボットを設置するか、といった模擬実験するもので、この模擬実験の結果をユーザに提示して視覚検査のための具体的設備やレイアウトの提案を行い、視覚検査装置を販売しようとするものである。
【００１６】
上記のシミュレーションを行うに際し、ワークの形状は三次元のＣＡＤデータ（三次元形状データ）として既に作成されており、また、ワークの外観検査を行うべき箇所、外観検査を行うためにワークを止める位置（検査位置）と、この検出位置でのワークの向き、使用するロボット、ロボットを設置できる位置或いは領域は、既に定まっているものとする。
【００１７】
シミュレーションを行うための装置は、図１に示すパソコン１によって構成されている。このパソコン１は、パソコン本体２に、出力装置（出力手段）として例えば三次元のグラフィック表示が可能な液晶ディスプレイからなる表示装置（表示手段）３を接続すると共に、入力装置として例えばキーボード４およびマウス５を接続してなる。パソコン本体２は、図２に示すように、ＣＰＵ６、ＲＯＭ７、ＲＡＭ８、大容量記憶装置としてのハードディスク９、インターフェース１０などを備えて構成され、インターフェース１０に前記表示装置３、キーボード４およびマウス５が接続されている。
【００１８】
上記ハードディスク９には、シミュレーションのためのシミュレーションプログラムの他、ワークの三次元ＣＡＤデータに基づいてワークを表示装置３に三次元表示するためのワーク表示プログラム、視覚検査に使用するロボットを三次元表示するためのロボット表示プログラム、ワークを三次元表示するための三次元座標系とロボットを三次元表示するための三次元座標系との間で座標変換するための座標変換プログラムなどが記録されている。
【００１９】
また、ハードディスク９には、カメラによる視覚検査の対象となるワークの三次元ＣＡＤデータ（三次元形状データ）、視覚検査に使用するロボットの三次元形状データおよび緒元並びにロボットの動作のためのロボット動作プログラム、視覚検査に使用する複数のカメラ用レンズのレンズデータなどをインターフェース１０を介して記録できるようになっている。なお、レンズデータは、焦点距離や画角などを含む。このようなデータを記録するハードディスク９は、ワークやロボットの形状データ記憶手段、レンズデータ記憶手段、ロボットの動作データ記憶手段として機能する。
【００２０】
ＣＰＵ６は、上記ハードディスク９が記憶するプログラムのうち、ワーク表示プログラムを実行することで、ＣＡＤデータに基づいてワークを表示装置３に三次元表示する（ワーク用表示制御手段）。このとき、ＣＰＵ６は、オペレータのマウス５の操作に応じて、その視点位置（視点の向きや視野サイズ）を変更してワークを三次元表示する。従って、マウス５は、視点位置変更操作手段として機能する。なお、視点位置は、キーボード４の操作によって変更するようにしても良い。
【００２１】
更に、オペレータが視点位置を変えてワークを表示装置３に表示することによって、現在、表示装置３に表示されている画面がワークの視覚検査部分を見るに適した状態であるとし、この画面上で検査ポイントをマウス５の操作によって指定すると、ＣＰＵ６は、その指定されたワーク上のポイントを検査ポイントとしてＲＡＭ８に記憶する。また、マウス５を操作して、検査ポイントを含む所望の範囲を画面上で指定すると、ＣＰＵ６は、この範囲を視覚検査の際にカメラで撮影する範囲としてＲＡＭ８に記憶する。従って、マウス５は、検査ポイント入力手段および検査範囲入力手段として機能する。
【００２２】
そして、表示装置３に表示されている画面を、外観検査時におけるカメラの検査画像と仮定し、オペレータが検査点からの画像として適切と思われる表示画面が表示された状態で、入力装置（キーボード４やマウス５）を操作して指定すると、ＣＰＵ６は、指定された表示画面の視点情報、つまりワークの三次元座標系上での視点の位置と前記検査ポイントを結ぶ直線を視線の向きとして算出する。この視線（直線）が、検査ポイント部分を撮影するカメラの光軸となる。従って、ＣＰＵ６は、カメラ姿勢設定手段として機能する。
【００２３】
一方、ハードディスク９には、キーボード４からロボットを設置することが可能な領域を入力できるようになっている（ロボット設置可能位置入力手段）。このロボットの設置可能位置は、表示装置３の表示画面に予め設定されている三次元座標上の位置として入力する。なお、ロボット設置可能範囲は、ワークの三次元座標上の位置として入力することも可能である。
【００２４】
ＣＰＵ６は、上記ハードディスク９が記憶する前記ロボット表示プログラムを実行することで、ロボットの三次元形状データに基づいて表示装置３にロボットを三次元表示する（ロボット用表示制御手段）。このとき、ＣＰＵ６は、ロボットの緒元（アームの長さやアームの可動範囲など）を用いてロボット動作プログラムを動作させることにより、表示装置３に表示されたロボットを動かすことができるようになっている。
【００２５】
そして、ロボットを設置することが可能な領域の中に具体的にロボットを設置する位置が定められると、ＣＰＵ６は、ハードディスク９に記憶された座標変換プログラムの実行により、ロボットの三次元座標（ロボット座標）とワークの三次元座標（ワーク座標）との間で座標変換できるようになる（ワーク‐ロボット座標変換手段）。つまり、画面の三次元座標（画面座標）上でのワーク座標の原点位置とＸＹＺの３軸の傾き、同じく画面の三次元座標上でのロボット座標の原点位置とＸＹＺの３軸の傾きが決められれば、両座標間での変換が可能となるのである。
【００２６】
次に上記構成のパソコン１（シミュレーション装置）を用いてシミュレーションを行う場合の作用を、図３〜図１０をも参照しながら説明する。まず、ロボットは例えば図３に示す６軸の垂直多関節型ロボット１１を使用するものとし、カメラ１２は、そのロボット１１のアーム先端に取り付けられる。即ち、ロボット１１は、ベース１３と、このベース１３に水平方向に旋回可能に支持されたショルダ部１４と、このショルダ部１４に上下方向に旋回可能に支持された下アーム１５と、この下アーム１５に上下方向に旋回可能に且つ回転（捻り動作）可能に支持された上アーム１６と、この上アーム１６に上下方向に旋回可能に支持された手首１７と、この手首１７の先端部に回転（捻り動作）可能に設けられたフランジ１８を備えている。そして、アーム先端であるフランジ１８にカメラ１２が取り付けられるのである。
【００２７】
ここで、各関節には、それぞれ三次元の座標が固定されている。このうち、不動のベース１３の座標系がロボット座標とされており、他の座標系は各関節の回転によってロボット座標上での位置と姿勢（向き）が変化する。ロボット１１の制御装置（図示せず）は、ロータリエンコーダなどの位置検出手段から入力されるショルダ部１４、各アーム１５，１６、手首１７およびフランジ１８等の各関節の位置検出情報と、予め記憶されている各関節の長さ情報に基づいて、各関節の座標の位置と姿勢を、座標変換の演算機能によりロボット座標上での位置と姿勢に変換して認識することができるようになっている。
【００２８】
上記各関節の座標系のうち、フランジ１８の座標系は、図４に示すように、フランジ１８の先端面の中心Ｐ０を原点とし、フランジ１８の先端面上に２つの座標軸が設定され、フランジ１８の回転軸上で１つの座標軸が定められている。そして、アーム先端であるフランジ１８の位置および姿勢のうち、位置はフランジ１８の座標の原点Ｐ０であるフランジ１８の先端面の中心が占めるロボット座標上の位置で示される。
【００２９】
また、フランジ１８の姿勢は、図４に示すように、フランジ１８の座標の原点Ｐ０からＺf 軸に沿ってその負方向に突出する単位長さ「１」のアプローチベクトルＡと、原点Ｐ0 からＸf 軸に沿ってその正方向に突出する単位長さ「１」のオリエントベクトルＯを定義し、フランジ１８の座標系をその原点Ｐ0 がロボット座標の原点に合致するように平行移動させたとき、そのロボット座標上でのアプローチベクトルＡとオリエントベクトルＯの向きで表される。
【００３０】
ロボット１１の制御装置は、フランジ１８の位置と姿勢とが与えられると、各関節の動作を制御して、フランジ１８をその与えられた位置と姿勢に制御するようになっている。前述のハードディスク９に記憶されたロボット動作プログラムは、上記ロボット１１の制御装置と同様に、フランジ１８の位置と姿勢とが決められると、各関節を動作させてフランジをその位置と姿勢となるように動作させる。
【００３１】
カメラ１２は、図８（ｂ）にも示すように、フランジ１８に複数配設される。各カメラ１２は、光軸Ｌ（レンズ中心を通る直線）がアプローチベクトルＡと平行となるように配置される。複数のカメラ１２のレンズ１２ａは、固定焦点で、互いに異なる焦点距離を有している。カメラ１２は、図８（ａ）に示すように、レンズ１２ａの中心からその焦点距離ｄ１だけ離れた位置に撮像部としてのＣＣＤ１２ｂを備えている。ＣＣＤ１２ｂは、フランジ１８の先端面から所定距離ｄ２だけ離れている。従って、レンズ１２ａとフランジ１８の先端面との距離Ｄは、カメラ１２毎に異なる一定距離（ｄ１＋ｄ２）となる。
【００３２】
そして、各カメラ１２の光軸Ｌは、フランジ１８の先端面とＫ点において交わっており、このＫ点からフランジ１８の中心Ｐ０までのベクトル（距離と方向）は、予めハードディスク９にカメラ設置位置データとして、上記の距離Ｄと共に記憶されている。
【００３３】
さて、図１０に示すフローチャートにおいて、オペレータは、まず表示装置３にワークＷの三次元形状を表示し（ステップＳ１）、マウス５を操作して視点位置を変更し、ワークＷの視覚検査する箇所を表示画面に表示すると共に、その検査する箇所を見るに適切な状態となるように視点位置を変更する。そして、検査する箇所を見るに適切な表示画面になったところで、マウス５を操作して図５に示すように視覚検査する箇所の例えば中心を検査ポイントＣに指定する（ステップＳ２）。すると、ＣＰＵ６は、ワークの三次元座標系上での同表示画面の視点の位置と検査ポイントＣを結ぶ直線を、視線Ｆ（図７参照）として算出し（視点情報演算手段）、これを視点情報としてＲＡＭ８（視点情報記憶手段）に記憶する（ステップＳ３）。また、オペレータは、マウス５による範囲指定操作によって検査ポイントを含む所望の範囲を検査範囲として指定する（ステップＳ４）。すると、ＣＰＵ６は、ワークの三次元座標系上において、指定された検査範囲をＲＡＭ８に記憶する（検査範囲記憶手段）。
【００３４】
このような検査ポイントと検査範囲の指定が、検査する全箇所について行われると（ステップＳ５で「ＹＥＳ」）、ＣＰＵ６は、次のステップＳ６で、各検査ポイントについて、レンズ情報を参照して検査範囲の全体を写すことができる画角を持ったレンズを選択し（レンズ選択手段）、そのレンズを有するカメラ１２を選択する（カメラ選択手段）。そして、ＣＰＵ６は、選択したカメラ１２のレンズ１２ａの焦点距離に応じた撮影ポイントを設定する（ステップＳ７：撮影ポイント設定手段）。撮影ポイントとは、選択したカメラ１２のレンズ１２ａの光軸Ｌとフランジ１８の先端面との交点Ｋのワーク座標上の位置を言うが、この撮影ポイントＫの座標位置は、次のようなものである。
【００３５】
つまり、検査ポイントＣのピントの合った像をＣＣＤ１２ｂ上に結ぶ場合、図８（ａ）に示すように、検査ポイントＣからレンズ１２ａまでの距離Ｇは、その焦点距離によって一義的に決まる。そして、レンズ１２ａからフランジ１８の先端面までの距離はＤであるから、撮影ポイントＫの座標位置は、検査ポイントＣから視線（光軸Ｌ）に沿って（Ｇ＋Ｄ）だけ離れた位置の座標となる。
【００３６】
各検査ポイントについて、撮影ポイントを生成した後、ＣＰＵ６は、各撮影ポイントについての撮影時アーム先端位置、つまりフランジ１８の中心Ｐ０のワーク座標上での位置（姿勢を含む）を計算する（ステップＳ８：撮影時アーム先端位置設定手段）。この撮影時アーム先端位置の座標計算は、各カメラ１２についてのＫ点の位置とフランジ１８の中心Ｐ０との関係はハードディスク９に記憶されているから、Ｋ点（撮影ポイント）の座標を基に、Ｋ点からフランジ１８の中心Ｐ０までの距離と方向（ベクトル）とから演算することができる。
【００３７】
また、アプローチベクトルＡが表示画面の視点位置と検査ポイントＣを結ぶ直線Ｆと平行であることを前提に、Ｋ点とフランジ１８の中心Ｐ０との位置関係からオリエントベクトルＯの向きを演算することによって、撮影時アーム先端位置におけるフランジ１８の姿勢も求めることができる。
【００３８】
以上のようにして各検査ポイントについて検査フランジ座標が求められると、次にロボット１１の設置可能な位置を設置位置候補として求める。それには、まず、準備操作として、オペレータは、画面座標の水平面（ＸＹ座標面）を検査ステーションの床と仮定し、この画面座標上に、ワークが検査ステーションでとる位置と姿勢（向き）となるように、ワーク座標を固定する。
【００３９】
その上で、オペレータは、キーボード４を操作して、図１０に示すように、画面座標上に、設置可能位置としてロボット１１を設置できる位置または領域、ここでは領域Ｒを設定したとする（ステップＡ１）。すると、ＣＰＵ６は、設置可能領域Ｒの中心座標を求め（中心位置設定手段）、設置可能領域Ｒ内にその中心座標から所定距離だけ上下左右に隔てた試し設置位置の座標を求める（ステップＡ２）。この試し設置位置がＫ箇所求められたとする。
【００４０】
次いで、ＣＰＵ６は、第１番目の試し設置位置である中心座標にロボット１１を設置（ロボット座標の原点を中心座標に一致）したものとして（ステップＡ３，４：初期位置設定手段）、ロボット１１のベース１３の初期姿勢を定める（ステップＡ５，６）。このときのベース１３の初期姿勢は、第１軸であるショルダー部１４の可動範囲の中間がワークＷの方向を向くベース１３の姿勢をいうものとする。ショルダー部１４の可動範囲の中間とは、ショルダー部１４のプラス側の最大可動角とマイナス側の最大可動角の中間、例えば＋９０°〜−９０°ならば、中間は０°、＋９０°〜−３０°ならば、中間は＋３０°となる。
【００４１】
このベース１３の初期姿勢において、ＣＰＵ６は、画面座標を仲介してワーク座標で示された各撮影時アーム先端位置をロボット座標上の位置に変換し、その上で、ロボット１１のフランジ１８の中心Ｐ０が各撮影時アーム先端位置へ到達し得るか（ロボット可動制御判断手段）、撮影時アーム先端位置へ到達した状態でカメラ１２の光軸を検査ポイントに向ける姿勢を取り得るか（カメラ姿勢制御判断手段）否かを評価（検査ポイントの撮影可否評価）する（ステップＡ７）。
【００４２】
到達できない撮影時アーム先端位置やカメラ１２の光軸を検査ポイントに向ける姿勢を取り得ない撮影時アーム先端位置がなかった場合（ステップＡ８で「ＮＯ」）、全ての撮影時アーム先端位置で検査ポイントを撮影可能として、試し設置位置（ここでは初期試し位置）、ベースの姿勢（ここでは初期姿勢）および撮影時アーム先端位置の数をＲＡＭ８に記憶する（ステップＡ９）。そして、その後、ベース１３の姿勢（ＸＹ座標軸の方向）を、初期姿勢から＋９０度の範囲および−９０度の範囲で所定角度ずつ変化させて（ステップＡ１１で「ＹＥＳ」、ステップＡ１２）、姿勢毎に上述の撮影時アーム先端位置への移動できるか否か、姿勢を取り得るか否かの評価を行い、試し設置位置とベース１３の姿勢と撮影可能な撮影時アーム先端位置の数とをＲＡＭ８に記憶する。
【００４３】
一つの試し設置位置についてベースの姿勢を変えてステップＡ７の評価を行ったら、次の試し設置位置に変えて上述の評価を順次実行する。
ここで、上の説明では、フランジ１８の中心Ｐ０が撮影時アーム先端位置へ到達し得るか、撮影時アーム先端位置へ到達した状態でカメラ１２の光軸を検査ポイントに向ける姿勢を取り得るかの評価（ステップＡ７）を、全撮影時アーム先端位置について行った後、ステップＡ８の判断を行うように思われたであろうが、実際には、ロボットを設置するとした位置とベースの姿勢とを考慮した上で、ロボットから最も遠い撮影時アーム先端位置から順次ステップＡ７の評価を行い、そして、評価をした一つの撮影時アーム先端位置について、ステップＡ８で、フランジ１８をその位置に移動できない、或いは、姿勢を取ることができないと判断されたときには、それよりも近い撮影時アーム先端位置についてのステップＡ７の評価を中止し、または、現在の試し設置位置よりもワークから遠くなる試し設置位置にロボットを設置してステップＡ７の評価を行うことを中止し、或いは、現在のベースの姿勢よりもアーム先端が遠くなるようなベースの姿勢でのステップＡ７の評価を中止するようにしている（以上、ステップＡ１０）。これにより、フランジ１８が到達できない撮影時アーム先端位置や撮影に必要な姿勢を取ることができないベースの姿勢についてまで評価することの無駄を省くことができる。
【００４４】
以上のようにして、全ての試し設置位置にてベースの姿勢を変化させてステップＡ７の評価を行った後、ＣＰＵ６は、フランジ１８を各撮影時アーム先端位置に移動させて撮影に必要な姿勢を取ることができる試し設置位置とベースの姿勢を、ロボット１１の設置可能位置として表示装置３にリスト表示する（ステップＡ１５）。
【００４５】
このように本実施形態によれば、ワークの三次元形状データがあり、視覚検査したい箇所、検査ステーションでのワークの位置と姿勢、使用するロボットの種類（諸元）、ロボットを設置可能な領域が定まっていれば、どのようなレンズのカメラを使用し、どの位置にロボット１１を設置すれば視覚検査が可能であるといった資料をユーザに提供することができる。
【００４６】
（第２の実施形態）
図１１〜図１３は本発明の第２の実施形態を示す。本実施形態が上述の第１の実施形態と異なるところは、図１２に示すように、カメラ１２を定位置に固定し、ワークＷをロボット１１のアーム先端に取り付けた把持装置１９に把持させるようにしたことにある。そして、ハードディスク９には、第１の実施形態の各種のプログラムに加えて、画面座標を仲介として後述するカメラ座標とロボット座標とを変換するプログラムなどが記憶されている。
【００４７】
この実施形態では、表示装置３にワークの三次元形状を表示し（ステップＢ１）、検査ポイント、視点情報の算出および検査範囲の指定を行い（ステップＢ２〜Ｂ５）、更に、レンズとカメラを選択し（ステップＢ６）、撮影ポイントを求める（ステップＢ７）ところまでは上記第１の実施形態と同様である。ここで、撮影ポイントとは、第１の実施形態ではＫ点として示されているポイントである。
【００４８】
上記検査ポイントと視点情報により、ＣＰＵ６は、ワークの三次元座標系上において、指定された表示画面の視点の位置と検査ポイントを結ぶ直線を、カメラ１２の光軸として設定する（カメラ光軸設定手段）と共に、その光軸の傾きを検出する（カメラ光軸傾度検出手段）。
【００４９】
その後、オペレータは、表示装置３の画面座標の水平面を検査ステーションと仮定し、この画面座標上に、カメラが検査ステーションでとる位置と姿勢（向き）となるようにカメラ座標Ｍを固定する。このとき、カメラ座標Ｍは、原点を第１の実施形態におけるフランジ１８の中心Ｐ０とするフランジ１８の座標に相当する。これにより、ＣＰＵ６は、表示装置３にカメラ１２を表示し（カメラ位置表示手段）、且つ、カメラ１２の光軸の方向を画面座標上に設定する（カメラ位置設定手段）。
【００５０】
そして、ＣＰＵ６は、画面座標を仲介にしてワーク座標上の前記撮影ポイントをカメラ座標上の位置と姿勢（光軸の傾度）に変換する（ステップＢ８：ワーク-カメラ座標変換手段）。次いで、ＣＰＵ６は、各撮影ポイントについて光軸の傾度とワーク形状データとからカメラ座標上でのワークの中心（図１３にＨで示す）の座標を求める（ステップＢ９：中心座標演算手段）。
【００５１】
次に、例えばマウス５を操作してロボット１１のフランジ１８に把持装置１９を取り付けた状態を設定し（ワーク取り付け操作手段）、この把持装置１９に所望の姿勢でワークを把持したとして、ワークＷの中心からフランジ１８の中心Ｐ０までのベクトル（図１３にＶで示す）を演算する（座標間関係検出手段）。そして、例えばマウス５を操作して表示画面の画面座標上にロボット座標を表示し、画面座標を仲介にしてカメラ座標とロボット座標との間で座標変換を行い、各撮影ポイントについてのワークＷの中心位置と、ワークＷの中心からフランジ１８の中心Ｐ０までのベクトルとから、フランジ１８の中心Ｐ０の位置とフランジ１８の姿勢をロボット座標上の位置に変換する（ステップＢ１０：カメラ‐ロボット座標変換手段）。
【００５２】
以上のようにして各検査ポイントについて撮影時アーム先端位置を求めた後、第１の実施形態におけるステップＡ１以降のロボット設置位置候補を出力する動作を実行する。
（他の実施形態）
本発明は上記し且つ図面に示す実施形態に限定されるものではなく、以下のような拡張或いは変更が可能である。
ワークをインデックステーブルに載せ、検査ポイントに応じてワークを回転させるようにしても良い。この場合には、回転角度の情報からワーク座標をインデックステーブルと同じだけ回転させたとして座標変換を行えば良い。
入力する設置可能位置は１箇所でも、離れた複数個所でも良い。
使用するロボットは垂直多関節型のものに限られない。
使用するレンズ（カメラ）は１個だけも良い。
【図面の簡単な説明】
【００５３】
【図１】本発明の第１の実施形態におけるシミュレーション装置を示す斜視図
【図２】シミュレーション装置の電気的構成を示すブロック図
【図３】ロボットの斜視図
【図４】フランジの座標を示す斜視図
【図５】ワークの斜視図
【図６】ワークの検査ポイントと撮影する範囲を示す斜視図
【図７】検査ポイントを見る視線を示す図
【図８】（ａ）は検査ポイントと撮影ポイントとの関係を示す断面図、（ｂ）は検査ポイントとアーム先端の位置との関係を示す斜視図
【図９】ロボットの設置可能領域を表示した画面を示す図
【図１０】シミュレーションのフローチャート
【図１１】本発明の第２の実施形態を示すシミュレーションのフローチャート
【図１２】ロボットの設置可能領域を表示した画面を示す図
【図１３】定位置に設置されたカメラとロボットに把持されたワークの斜視図
【符号の説明】
【００５４】
図面中、１はシミュレーション装置、４は表示装置（表示手段、出力手段）、４はキーボード（ロボット設置可能位置入力手段）、５はマウス（視点位置変更操作手段、検査ポイント入力手段、検査範囲入力手段、ワーク取り付け操作手段）、６はＣＰＵ（ワーク用表示制御手段、カメラ姿勢設定手段、ロボット用表示制御手段、ワーク‐ロボット座標変換手段、カメラ光軸設定手段、レンズ選択手段、カメラ光軸傾度検出手段、カメラ位置表示手段、カメラ位置設定手段、ワーク-カメラ座標変換手段、撮影ポイント設定手段、撮影時アーム先端位置設定手段、ロボット可動制御判断手段、カメラ姿勢制御判断手段、カメラ光軸設定手段、カメラ光軸傾度検出手段、カメラ位置表示手段、カメラ位置設定手段、ワーク-カメラ座標変換手段、座標間関係検出手段）、９はハードディスク（形状記憶手段、レンズデータ記憶手段、動作データ記憶手段）を示す。
【図１】
2009269134.tif 000003
【図２】
2009269134.tif 000004
【図３】
2009269134.tif 000005
【図４】
2009269134.tif 000006
【図５】
2009269134.tif 000007
【図６】
2009269134.tif 000008
【図７】
2009269134.tif 000009
【図８】
2009269134.tif 000010
【図９】
2009269134.tif 000011
【図１０】
2009269134.tif 000012
【図１１】
2009269134.tif 000013
【図１２】
2009269134.tif 000014
【図１３】
2009269134.tif 000015