(57)【要約】【課題】  視覚センサ−ロボットシステムの立ち上げ／維持管理負担の軽減。【解決手段】  ロボットシミュレータの画面上にワークモデル（又は画像）を表示し（２０１）、計測箇所／方法の指定（２０２、２０３）、ワーク形状、積載状態等の指定（２０４）を経て計測箇所／方法の良否を判定する（２０５）。良ならプログラムを生成し処理を終了する（２０７、２０８）。不良なら警告を出し（２０６）、処理の続行（２０７）又はやり直し（２０１）を指示する。プログラム解析時には、ローディング（１０１）、計測箇所／計測方法を解析、表示（１０２、１０３）、ワーク情報指定（１０４）に続いて、解析した計測箇所／方法の良否判定を行う（１０５）。良なら処理を終了し（１０７）、不良なら警告を出し（１０６）、処理終了（１０７）か、プログラム修正（２０１）を選択する。【選択図】          図２
2006106927.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作プログラムを生成する、ロボットプログラム生成装置であって、
ワークのモデルを表示する手段と、
前記表示されたモデル上で、視覚センサによる計測箇所を指定する手段と、
前記計測箇所に対する計測方法を指定する手段と、
前記ワークに関する情報を指定する手段と、
該指定された情報に対応して、計測箇所の良否または計測方法の良否を判定するための基準情報を記憶する手段と、
該基準情報に基づいて、前記指定された計測箇所または計測方法の良否を判定する手段と、
前記指定された計測箇所または計測方法に基づいて、前記指定された計測箇所の計測を実行する計測命令、または前記指定された計測方法に従った計測を実行する計測命令を含むロボットプログラムを生成する手段とを有することを特徴とする、ロボットプログラム生成装置。
【請求項２】
ロボットの動作プログラムを生成する、ロボットプログラム生成装置であって、
予め撮像したワークの画像を表示する手段と、
前記表示された画像上で、視覚センサによる計測箇所を指定する手段と、
前記計測箇所に対する計測方法を指定する手段と、
前記ワークに関する情報を指定する手段と、
該ワークに関する情報に対応して、計測箇所の良否または計測方法の良否を判定するための基準情報を記憶する手段と、
該基準情報に基づいて、前記指定された計測箇所または計測方法の良否を判定する手段と、
前記指定された計測箇所または計測方法に基づいて、前記指定された計測箇所の計測を実行する計測命令、または前記指定された計測方法に従って計測を実行する計測命令を含むロボットプログラムを生成する手段とを、有することを特徴とする、ロボットプログラム生成装置。
【請求項３】
前記ワークに関する情報は、ワークの寸法、ワークの材質、ワークの把持方法、ワークの積載状態の内、少なくとも１つを含むものである、請求項１または請求項２に記載のロボットプログラム生成装置。
【請求項４】
ロボットプログラムのシミュレーションを実行する機能を備えているロボットシミュレータである、請求項１乃至請求項３の内、いずれか１項に記載のロボットプログラム生成装置。
【請求項５】
ロボットの動作プログラムを解析するロボットプログラム解析装置であって、
ロボットプログラムを入力し、解析する手段と、
ワークのモデルを表示する手段と、
前記表示されたモデル上で、
前記解析したプログラムから、視覚センサによる計測箇所を表示する手段と、
前記計測箇所に対する計測方法を表示する手段と、
前記ワークに関する情報を指定する手段と、
該ワークに関する情報に対応して、計測箇所の良否または計測方法の良否を判定するための基準情報を記憶する手段と、
該基準情報に基づいて、前記プログラムにおける計測箇所または計測方法の良否を判定する手段と、
を有することを特徴とする、ロボットプログラム解析装置。
【請求項６】
ロボットの動作プログラムを解析するロボットプログラム解析装置であって、
ロボットプログラムを入力し、解析する手段と、
予め撮像したワークの画像を表示する手段と、
前記ワークの画像上で、
前記解析したプログラムから、視覚センサによる計測箇所を表示する手段と、
前記計測箇所に対する計測方法を表示する手段と、
前記ワークに関する情報を指定する手段と、
該ワークに関する情報に対応して、計測箇所の良否または計測方法の良否を判定するための基準情報を記憶する手段と、
該基準情報に基づいて、前記プログラムにおける計測箇所または計測方法の良否を判定する手段と、
を有することを特徴とする、ロボットプログラム解析装置。
【請求項７】
前記ワークに関する情報は、ワークの寸法、ワークの材質、ワークの把持方法、ワークの積載状態の内、少なくとも１つを含むものである、請求項５または請求項６に記載のロボットプログラム解析装置。
【請求項８】
ロボットプログラムのシミュレーションを実行する機能を備えているロボットシミュレータである、請求項５乃至請求項７の内、いずれか１項に記載のロボットプログラム解析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットプログラムの生成及び解析を行なう装置に関し、更に詳しく言えば、ロボットと視覚センサを使用する生産システムについて、その効率的な立ち上げ、あるいは、立ち上げ後の管理維持に有用なロボットプログラム生成装置及びロボットプログラム解析装置に関する。
【背景技術】
【０００２】
ロボットと、固定されたカメラ、あるいは、ロボットに搭載されたカメラを視覚センサの撮像手段として利用し、整列されていない多数の部品を順次取出し、次工程へ搬送するといったプロセスを含む生産システムは、これまでにも諸条件をうまく設定した条件下で一部既に実用化されている。このように整列されていない多数の部品を取り扱うロボット−視覚センサシステムは、最近特に試験段階から普及段階に入ろうとしており、様々なアプリケーションヘの適用の拡大が見られるようになってきた。例えば下記特許文献１に開示されているように、従来実現が困難であったようなシステムも、現実に稼動し始めている。
【０００３】
【特許文献１】特開２００３−３４４３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、前記のような視覚センサを使用したアプリケーションでは、その作業の目的と、ワークの大きさや形状を考慮しながら、視覚センサによる計測箇所や計測方法を選ぶ必要があり、その負担が大きかった。例えば、長さ２ｍのワークの両端をロボットハンドで把持する作業を行なうために、視野角度で表わした計測精度が０．５度である視覚センサを使用するケースを想定してみる。この場合、ワークの片方の端の計測のみを行なってワークの両端を掴もうとすると、０．５度の精度では、もう片方の端での掴み誤差は、１７mm以上（２０００mm×２×π×０．５／３６０）にもなる。従って、このような計測箇所乃至計測方法の選択は、誤差を吸収できるようなハンド機構を使用していない限り不適当であり、ワークの他端の計測も行なって計測誤差を軽減する必要となる。
【０００５】
また、計測箇所とした特徴部分の形状の個体差が大きく検出精度が保障できないような場合は、その箇所は計測箇所から外し、他の計測箇所を定める必要がある。  
このように、計測箇所あるいは計測方法を適正に定めるには、ワークの大きさ、形状、それらのばらつき、視覚センサの精度、ハンド機構の特性等、多くの条件を考慮しなければならず、これまでは現場でシステムを立ち上げる際に試行錯誤の繰り返しを要しているのが実態である。また、ユーザがこれら考慮が必要な条件と計測箇所あるいは計測方法の関係を正確に理解せずにシステムを立ち上げた場合、最初は運良くうまくいったとしてもその後トラブル（例えば１日に１度位システムが停止するなど）が発生し、そのトラブルの原因の特定が困難であるといったことが起る。このような問題が、ユーザに負担をかけ、視覚センサ−ロボットシステムの導入促進を阻む要因となっている。  
本発明は、従来技術のこのような問題を解決できるロボットシプログラム生成装置あるいは解析装置を提供することを目的としている。即ち、本発明は、例えばロボットシミュレータのようなロボットの教示プログラムの生成や解析を行える装置に、視覚センサを使用する際のノウハウを盛り込み、ワーク寸法、計測位置や計測条件、補正方法等について提案と判定を行えるようにすることで、ユーザの教示負担を軽減しようとするものである。
【課題を解決するための手段】
【０００６】
本発明は、先ずロボットの動作プログラムを生成する、ロボットプログラム生成装置によって上記課題を解決する。  
請求項１に係るロボットプログラム生成装置には、ワークのモデルを表示する手段と、前記表示されたモデル上で、視覚センサによる計測箇所を指定する手段と、前記計測箇所に対する計測方法を指定する手段と、
前記ワークに関する情報を指定する手段と、該指定された情報に対応して、計測箇所の良否または計測方法の良否を判定するための基準情報を記憶する手段と、該基準情報に基づいて、前記指定された計測箇所または計測方法の良否を判定する手段と、前記指定された計測箇所または計測方法に基づいて、前記指定された計測箇所の計測を実行する計測命令、または前記指定された計測方法に従った計測を実行する計測命令を含むロボットプログラムを生成する手段が設けられる。
【０００７】
また、請求項２に係るロボットプログラム生成装置には、予め撮像したワークの画像を表示する手段と、前記表示された画像上で、視覚センサによる計測箇所を指定する手段と、前記計測箇所に対する計測方法を指定する手段と、前記ワークに関する情報を指定する手段と、該ワークに関する情報に対応して、計測箇所の良否または計測方法の良否を判定するための基準情報を記憶する手段と、該基準情報に基づいて、前記指定された計測箇所または計測方法の良否を判定する手段と、前記指定された計測箇所または計測方法に基づいて、前記指定された計測箇所の計測を実行する計測命令、または前記指定された計測方法に従って計測を実行する計測命令を含むロボットプログラムを生成する手段が設けられる。
【０００８】
これら発明において、前記ワークに関する情報は、ワークの寸法、ワークの材質、ワークの把持方法、ワークの積載状態の内、少なくとも１つを含むものとすることができる（請求項３）。また、ロボットプログラム生成装置として、ロボットプログラムのシミュレーションを実行する機能を備えているロボットシミュレータを用いることができる（請求項４）。
【０００９】
次に、本発明は、ロボットの動作プログラムを解析する、ロボットプログラム解析装置によって上記課題を解決する。  
講求項５に係るロボットプログラム解析装置には、ロボットプログラムを入力し、解析する手段と、ワークのモデルを表示する手段と、
前記表示されたモデル上で、前記解析したプログラムから、視覚センサによる計測箇所を表示する手段と、前記計測箇所に対する計測方法を表示する手段と、前記ワークに関する情報を指定する手段と、ワークに関する情報に対応して、計測箇所の良否または計測方法の良否を判定するための基準情報を記憶する手段と、該基準情報に基づいて、前記プログラムにおける計測箇所または計測方法の良否を判定する手段が設けられる。
【００１０】
また、請求項６に係るロボットプログラム解析装置には、ロボットプログラムを入力し、解析する手段と、予め撮像したワークの画像を表示する手段と、前記ワークの画像上で、前記解析したプログラムから、視覚センサによる計測箇所を表示する手段と、前記計測箇所に対する計測方法を表示する手段と、前記ワークに関する情報を指定する手段と、ワークに関する情報に対応して、計測箇所の良否または計測方法の良否を判定するための基準情報を記憶する手段と、該基準情報に基づいて、前記プログラムにおける計測箇所または計測方法の良否を判定する手段が設けられる。
【００１１】
これらロボットプログラム解析装置について、前記ワークに関する情報は、ワークの寸法、ワークの材質、ワークの把持方法、ワークの積載状態の内、少なくとも１つを含むものとすることができる（請求項７）。  
また、ロボットプログラムのシミュレーションを実行する機能を備えているロボットシミュレータをロボットプログラム解析装置として採用することができる（請求項８）。
【００１２】
本発明の作用の大略を記せば、次のようになる。  
本発明に従ったロボットプログラム生成装置（請求項１〜請求項４）は、ワークのモデル図、あるいは、ワークを撮像した画像を表示し、その上で、ワークの計測方法や計測箇所を指定し、更にワークに関する情報を指定することにより、ワークの計測方法や計測箇所が適切かを判断する。更に、それらが適切であれば、計測する命令を含んだロボットプログラムを生成する。
【００１３】
また、本発明に従ったロボットプログラム解析装置（請求項５〜請求項８）は、ロボットプログラムを読み込んで解析し、ワークのモデル図、あるいは、ワークを撮像した画像を表示し、その上に、ワークの計測方法や計測箇所を表示する。更にワークに関する情報を指定することにより、ワークの計測方法や計測位置が適切かを判断する。
【発明の効果】
【００１４】
本発明に従ったロボットプログラム生成装置によれば、ユーザが現場で試行錯誤で行っていた計測箇所や計測方法の妥当性の判断を、事前に行うことができる。また、本発明に従ったロボットプログラム解析装置によれば、システム構築後にも、その妥当性の検証を行うことができ、稼動中のシステムのトラブルの原因の特定が行いやすくなる。
【００１５】
更に、上記のそれぞれの効果で、視覚センサを使用したシステムにおけるユーザの負担を軽減し、システムの導入を促進する効果が期待できる。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明の一実施形態の全体構成の概略を表わしている。同図において、符号１はワーク等の物品（図示省略）のハンドリングを行なうロボットで、その手首先端付近にビデオカメラ２及びハンド６が装着されている。ビデオカメラ２は、視覚センサのセンサヘッドとして機能するもので、その撮像動作等の制御及び撮像画像の処理はパーソナルコンピュータ（以下、単に「コンピュータ」と言う）３によって行なわれる。ロボット１は、ロボットコントローラ４に接続され、ロボットコントローラ４とコンビュータ３は、ネットワーク回線５で接続されている。
【００１７】
コンビュータ３は、オンラインでは視覚センサのコントローラとして機能する一方、オフラインでは、ロボットプログラム生成装置とロボットプログラム解析装置として兼用されるロボットシミュレータとして機能する。また、コンピュータ３には周知の態様でモニタ（例えば液晶表示装置）とマニュアル操作部（キーボード、マスス等）が付設されており、オンライン、オフラインにおいては撮像された画面あるいはそれを処理した画像の表示等に使用されるとともに、オフラインにおいては、オフラインプログラミングのために使用されるワークモデル、ロボットモデル等画像、予めビデオカメラ２で撮像された画面の表示、あるいは、それら画像を表示した画面上で各種画面入力等に使用される。
【００１８】
なお、ここでは視覚センサはビデオカメラ２をセンサヘッドとするタイプのものであるが、必要に応じて、他種の視覚センサ、例えばスリット光のような参照光を投光し、対象物の３次元位置や姿勢を認識できる３次元視覚センサで置き換えても良い。
【００１９】
図２は、ロボットットシミュレータとして使用されるコンピュータ３をロボットプログラム生成装置及びロボットプログラム解析装置として機能させて、本発明を実施する際の処理の概要を記したフローチャートである。なお、１００番台の処理ステップ番号はロボットプログラム解析装置としての機能に対応し、２００番台のステップ番号はロボットプログラム生成装置として機能に対応している。また、説明の都合上、２００番台のステップ番号を付した処理（ロボットプログラム生成装置としての機能）から説明する。
【００２０】
先ず、ロボットシミュレータ（ここではコンピュータ３；以下、同じ）のモニタ画面上にワークのモデルの表示を行う（２０１）。周知のように、このような表示モデルは例えばＣＡＤなどの設計データをモデル化したものが利用できる。また、モデルの代わりにビデオカメラ２で同モデルに対応するワークを撮像したものを取り込み、マニタ画面表示しても良い（以下、表示されるものが「画像」である場合も含めて「モデル」で代表させる）。
【００２１】
次に、表示されているモデル上で、計測する箇所を指定する（２０２）。この指定は操作者がマウス等を用いて行う。但し、指定に際しては、操作者が任意に選ぶ方式の他、設計モデル上で、銑利な段差がある、穴がある、など特徴のコントラストが明確になると判断される箇所をロボットシミュレータで自動的に選定し、提示されたものから、操作者が選択する方式としても良い。また、撮像した画像を使用している場合は、実際の画像中で、コントラストが明確な箇所を点滅強調等で提示させ、その中から操作者が選択しても良い。
【００２２】
次に、前記の計測箇所に対する計測方法を指定する（２０３）。通常は、ビデオカメラ２による２次元計測、または、３次元視覚センサによる３次元計測のいずれかを選択する。この指定は操作者がキーボード等を用いて行う。なお、これら（２０２）、（２０３）の処理を必要に応じて繰り返して行ない、複数の点を計測するようにして良い。
【００２３】
次に、ワークに関する情報（以下、「ワーク情報」と略称）を指定する（２０４）。典型的なワーク情報としては、ワークの寸法、ワークの材質、ワークの把持方法及びワークの積載状態などを数値や種別で指定したものが考えられる（具体例については後述する）。
【００２４】
次に、計測箇所と計測方法の良否判定を行う（２０５）。この判定に使用されるルールには、例えば計測箇所についていえば、安定的に視覚センサで検出できるコントラストが得られそうな箇所であるかというものがある。また、例えば材質が薄い板金であれば、ワークの端の方は板金が曲がりやすいので、計測箇所としては不適当、というようなルールも考えられる。計測方法についていえば、端がワークの積載状態が安定しているならば、２次元計測でも良いが、積載状態が不安定であれば、３次元計測を指定しなければならない。また、大寸法ワーク（例えば最大径１ｍ以上）であれば、少なくとも２箇所、それも５０ｃｍ以上離れて２箇所を計測する必要がある、というルールも考えられる。また、把持方法の誤差吸収度合いが大きい場合は、前記の１ｍを超える大きなワークでも、１箇所の計測で構わない、というルールになることも考えられる。これらのルールを総合して、良、または、不良を判定する。
【００２５】
良と判断した場合は、計測以外のロボットの動作をロボットシミュレータの機能を用いてオフラインで生成し、更に、上記で設定した計測箇所に対する計測プログラムを加えて、ロボットプログラムを生成する（２０７）。その後、処理を終了する（２０８）。
【００２６】
一方、不良と判断した場合は、操作者に対し、現在の設定が不適当である旨を警告し（２０６）、処理を続行するか、やり直すかを指示する。操作者が「処理続行」を指示すれば、（２０７）へ処理を移す。「処理やり直し」を指示すれば、（２０１）へ処理を移し、はじめからやり直すようにする。なお、良否判定についてのより具体的な例については後述する。
【００２７】
続いて、１００番台のステップ番号を付した処理（ロボットプログラム解析装置としての機能）について説明する。  
最初に、ロボットシミュレータにロボットプログラムをロードする（１０１）。このロボットプログラムは、例えば上記の処理を経て作成されたプログラム、あるいは、実際のシステムで使用してみたがシステムにトラブルが発生したようなプログラムである。  
次に、ロードされたプログラムから、ロボットシミュレータは、ワークのどの箇所を、どの計測方法で計測したかを解析する（１０２）。次に、モニタ画面上にワークをモデル化したものを表示し、解析した計測位置、計測箇所を、表示したモデル上に表示する（１０３）。表示するモデルは、（２０１）同様、例えばＣＡＤなどの設計データをモデル化したものが考えられる。モデルの代わりにビデオカメラで撮像したものを表示しても良い。モデルと解析した位置をうまく重ねるには、例えば、このプログラムをロボットシミュレータで作成したときの画面を、別途記憶しておけば良い。
【００２８】
次に、ワークに関する情報を指定する（１０４）。この情報については、既に説明した通りで、ワークの寸法、材質、把持方法、積載状態といったものを予めコード化で登録しておき、それらの組み合わせで操作者が指定する。
【００２９】
次に、解析した計測箇所と計測方法について、その良否判定を行う（１０５）。この判定については、上述した（２０５）と同じルールを用い、良または不良を判定する。良と判断した場合は、そのまま処理を終了する（１０７）。不良と判断した場合は、操作者に対し、現在のプログラムが不適当である旨を警告し（１０６）、プログラムを修正するか、修正しないかを指示する、操作者が「修正しない」を指示すれば、そのまま終了する（１０７）。「修正する」を指示すれば、（２０１）へ処理を移し、プログラムの生成と同じプロセスを使って、プログラムを修正する。
【００３０】
以上述べたように、本発明では、プログラム生成（修正の場合を含む）、プログラム解析のいずれにおいても、計測箇所／計測方法について良否判定を行なっている。そこで、以下の記述でではこの良否判定についてより具体的に述べる。  
［計測誤差に関する診断］
ここでのチェック項目は、積載状態に適した計測方法が選択されているか、と、見積もられている計測誤差と、設定された許容誤差に対して、適切な箇所が計測箇所となっているかであるとする。ワークモデル（または画像；以下、同じ）の具体例としては図３に示したものを考える。図３において、画面表示されるワークモデル全体は符号Ｗで示されており、符号Ｍで示す測定箇所（ここではビデオカメラ２による撮像部位）は、上記ステップ２０２で指定した点あるいはステップ１０３における「解析した測定箇所」に相当する。点Ｍ0は測定箇所Ｍを代表する点（例えば画像重心）である。
【００３１】
また、ワーク情報については、図４の右半部に示したようなものとする。即ち、ワーク情報の指定は、ワークの寸法、ワークの材質、ワークの把持方法、ワークの積載について数値あるいは種別特定によって行なわれる。ワークの寸法については、図４の左半部に一般化して示したように、ワークモデルに接する長方形を画像処理で求め、表示倍率を考慮に入れて縦横サイズを求め、その数値を採用する。なお、ここで記入されている数値６２mm、１１２mmは単なる例示である。
【００３２】
ワークの材質については、例えば薄い板金のように撓みやすい材質であるか、鋳物のように撓み難い材質であるかの種別を指定する。ここでは一例として、前者が指定されている。  
ワークの把持方法については、視覚センサによる位置検出について許容できる位置誤差（例えば図３における点Ｍ0 の検出位置の誤差）の限界、あるいは許容できる傾き誤差（例えば図３におけるワークＷの傾きの検出誤差）の限界があればその数値を操作者が入力する。なお、数値は、ハンド機構の性能等によって決まり、十分大きな誤差吸収能力でワークの位置決めが可能であればここに例示されているように「ハンド位置決め」の種別を指定する。
【００３３】
ワークの積載状態については、ワークの置かれ方の不規則さの程度によって、「ずれは誤差以内」（個々のワークがほぼ位置決めされている）、「ずれは許容誤差以内」（個々のワークがほぼ位置決めされている）、「許容誤差以上の２次元的なずれがある」（高さ位置はほぼ一定しているが、平面上での位置は不確定）、「許容誤差以上の３次元的なずれがある」（いわゆるバラ積み状態）の３種の種別を指定する。ここでは一例として、「許容誤差以上の３次元的なずれがある」が指定されている。
【００３４】
図５は、計測誤差に関する診断を行なうための処理の概略を記したフローチャートである。先ず、準備として計測箇所が何点指定されているかを読み取り、続いて、ワーク情報に含まれている積載状態の設定内容に応じて次以降の処理を分別する（３０１）。積載状態の設定状態が「許容誤差内のずれ」であれば（３０２）、そのまま終了する（３１９）。  
積載状態の設定が「許容誤差以上の２次元的なずれ」であれば（３０３）、予め見積もられている計測の精度とワークの寸法から把持誤差を計算する（３０５）。ここでは、位置誤差のみ考慮すれば良い。計算方法の例は、［別項１］で後述する。把持誤差を、把持方法の設定の中で設定した許容誤差と比較する（３０６）。許容誤差より把持誤差が大きくなければそのまま終了する（３１９）。そうでなければ、ステップ３０７へ進み、２点目の計測箇所がなければ、エラーフラグ２を立ててから（３１８)、処理を終了する（３１９）。
【００３５】
２点目の計測箇所があれば、１点目、２点目の計測箇所（代表点）の位置と、計測の精度とワークの寸法から、両端を掴む際の最大の把持誤差を計算する（３０８）。計算方法の例は、［別項１］で後述する。把持誤差を、把持方法の設定の中で設定した許容誤差と比較する（３０９）。許容誤差より把持誤差が大きくなければそのまま終了する（３１９）。そうでなければ、エラーフラグ２を立ててから（３１８)、処理を終了する（３１９）。
【００３６】
積載状態の設定が「許容誤差以上の３次元的なずれ」（３０４）であれば、１点目の計測箇所の計測方法が３Ｄ計測（３次元計測）であるかどうかをチェックし（３１０）)、３Ｄ計測でない計測、つまり、２Ｄ計測であれば、エラーフラグ１を立てて（３１１）、予め見積もられている計測の精度とワークの寸法から、両端を掴む際の最大の把持誤差を計算する（３１２）。１点目の計測が３Ｄ計測であればエラーフラグ１を立てずにステップ３１２へ進み、同様に把持誤差を計算する。ここでは、位置誤差と傾き誤差のいずれも診断する必要がある。計算方法の例は、別項２で述べる。
【００３７】
把持誤差を、把持方法の設定の中でしている許容誤差と比較し（３１３）、把持誤差が許容誤差より大きくない場合には、そのまま処理を終了する（３１９）。
【００３８】
把持誤差が許容誤差より大きい場合、２点目以降の計測箇所の有無をチェックする（３１４）。２点目以降の計測箇所がなければ、エラーフラグ２を立てて（３１８）、処理を終了する（３１９）。把持誤差が許容誤差より大きく、且つ、２点目以降の計測箇所がある場合は、それらが３Ｄ計測かどうかチェックする（３１５）。いずれかが３Ｄ計測でなければ、エラーフラグ２を立てて（３１８）、処理を終了する（３１９）。すべて３Ｄ計測なら、それらの点について、予め見積もられている計測の精度とワークの寸法から、両端を掴む際の最大の把持誤差を計算する（３１６）。
【００３９】
そして、把持誤差を、把持方法の設定の中でしている許容誤差と比較し（３１７）、把持誤差が許容誤差より大きくない場合には、そのまま処理を終了する（３１９）。把持誤差が許容誤差より大きい場合、エラーフラグ２を立てて（３１８）、処理を終了する（３１９）。  
以上により、計測誤差に関する診断が終了する。エラーフラグ１、２のいずれも立っていなければ診断結果は「良」ということになり、そうでなければ診断結果は「否」ということになる。
【００４０】
［把持ずれに関する診断］
把持した後にワークとハンドがずれて、正しく掴めたにも関わらず次工程に搬送したときにはトラブルが発生する可能性が高まる。そこで、図６のフローチャートに示した手順でその診断を行う。即ち、把持方法の「ハンドに位置決め機構あり」が設定されているかどうかを判断し（４０１）、設定されていれば、そのまま処理を終了する（４０３）。設定されていなければ、エラーフラグ３を設定してから（４０２）、処理を終了する（４０３）。
【００４１】
［ワークのたわみの影響に関する診断］
例えば薄い板金のような素材でたわみやすいワークは、周辺部がたわみやすく、そのたわみが毎回の計測で予測できない誤差を生むことがある。そこでは、図７のフローチャートに示した手順でそうしたたわみの影響が出る可能性に関して診断を行う。
【００４２】
即ち、ワークの素材の設定で「たわみやすい」が選択されているかどうかを判断する（５０１）。選択されていなければ、処理を終了する（５０５）。「たわみやすい」が選択されている場合は、ワークの大きさが一定値より大きいかどうかを判断する（５０２）。判断方法としては、縦横それぞれを一定値（予め設定した上限値）と比較しても良いし、縦×横をその上限値と比較しても良い。超えていなければ処理を終了する（５０５）。
【００４３】
超えていたら、全ての計測箇所について、周辺部から近いかどうかチェックする（５０３）。例えば、全ての計測箇所について、縁のラインとの距離が一定値（予め設定した下限値）未満であるか否か判断する。一定値以上であれば（即ち、周辺部から遠ければ）、この計測箇所はたわみの影響を受け難いとして、処理を終了する（５０５）。一定値以下あれば（即ち、周辺部に近ければ）、この計測箇所はたわみの影響を受けやすいとして、エラーフラグ４を立て（５０４）、処理を終了する（５０５）。
【００４４】
次に、上記の診断の全て含めた診断全体のフローの概略を図８のフローチャートを用いて説明する。  
最初に全エラーフラグをクリアする（６０１）。次に予め見積もられている計測の精度のデータをロードする（６０２）。続いて、前述した計測誤差に関する診断（６０３）、把持ずれに関する診断（６０４）、計測箇所（たわみの影響）に関する診断（６０５）を行う。これらの診断の内容については、既に説明済みなので繰り返さない。
【００４５】
全ての診断が終わったら、その結果を表示する。即ち、エラーフラグ１〜４が立っているかいないか順次チェックし（６０６、６０８、６１０、６１２）、エラーフラグが立っていれば、それに対応したメッセージをモニタ画面に表示して（６０７、６０９、６１１、６１３）、処理を終了する。
【００４６】
即ち、エラーフラグ１が立っていれば、本来３Ｄ計測でなければいけない箇所が２Ｄ計測であったことを意味しているので、その箇所が点Ａであったとして、例えば「点Ａの計測は３Ｄ計測ではありません」といったメッセージを表示する。  
また、エラーフラグ２が立っていれば、現在の計測箇所では、許容精度を満たしていないことを意味しているので、例えば「計測箇所をもっと離してください。」といったメッセージを表示する。
【００４７】
エラーフラグ３が立っている場合には、ワークを掴んだとしてもその後の工程に置く前にずれてしまう可能性があることを意味しているので、例えば「置く前に再度視覚センサを使って補正しなおすか、ハンドに位置決め機構を設けてください」といったメッセージを表示する。  
そして、エラーフラグ５４が立っている時には、計測している箇所が、たわみの影響で毎回予測不能な誤差を生む可能性があることを意味しているので、例えば「計測箇所をもっと周辺部から離してください」といったメッセージを表示する。
【００４８】
最後に、前述のステップ３０５、３１２等（図５参照）における最大把持誤差の計算方法について［別項１］、［別項２］を設けて説明する。  
［別項１］
図９に示したように、ワーク寸法の設定で、縦、横の値のうち大きい方をａとする。見積もられている計測誤差は、位置の誤差Ｅp,回転（傾き）の誤差Ｅrから成るものとする。計測誤差によって生じる把持誤差は、実際には、計測箇所と把持箇所に依存するが、ここでは問題を単純化し、計測箇所がワークの片側であったとして、ハンドでワークの反対側の端を掴むことを仮定した場合にどれくらいの誤差になるかを見積もるとする。この仮定の下で求めた誤差は、ほとんどの場合、実質的な把持誤差より大きいものであり誤差許容量の比較をするための値と使用するのは問題ない。なお、ここでは２次元だけの誤差に言及しているので、傾きの誤差は無関係である。
【００４９】
（１）計測箇所が１箇所だけの場合
計測に誤差がない場合の把持位置をＰ（ベクトル；以下、同様）、誤差を含んだ場合をＰ’（ベクトル；以下、同様）として、回転誤差Ｅrはごく小さい量であることを考慮すれば、
｜Ｐ−Ｐ’｜＝｜Ｅｐ｜＋ａ｜Ｅｒ｜
が求める値となる。なお、記号｜｜は絶対値を表わす。
【００５０】
（２）計測箇所が複数箇所のとき
複数箇所のうち、その間の距離が最も大きい組を選び、その距離をＤとする。上記（１）の場合と同様に、計測に誤差がない場合の把持位置をＰ、誤差を含んだ場合をＰ’とすれば、ここではＥpのみ関係し、
｜Ｐ−Ｐ’｜＝｜Ｅp｜（２ａ／Ｄ−１）又は｜Ｐ−Ｐ’｜＝｜Ｅｐ｜
のうちの大きい方が求める値となる。
【００５１】
［別項２］
図１０に示す如く、ワークの寸法の設定で、縦、横の値のうち大きい方をａとする。見積もられている計測誤差は、位置の誤差Ep,傾きの誤差Ｅi,回転の誤差Ｅrから成るものとする。別項１で述べたと同様に、計測誤差によって生じる把持誤差は、実際には、計測箇所と把持箇所に依存するが、ここでは問題を単純化し、計測箇所がワークの片側であったとして、ワークの反対側の端を掴む場合にどれくらいの誤差になるかを見積もるとする。この誤差は、ほとんどの場合で、実質的な把持誤差より大きいものであり誤差許容量の比較をするための値と使用するのは問題ない。  
傾きの誤差は、例え位置が正確でも、ワークの面に垂直に把持しないとうまく掴めない場合に関係する。傾きの誤差は上記の定義から｜Ｅi｜である。
【００５２】
（１）計測箇所が１箇所だけのとき
計測に誤差がない場合の把持位置をＰ、誤差を含んだ場合をＰ’として、傾き誤差Ｅi,回転誤差Ｅrはごく小さい量であることを考慮すれば、
｜Ｐ−Ｐ’｜＝｜Ｅp｜＋ａ｛（Ｅr）2＋（Ｅi）2｝1/2
が求める値となる。
【００５３】
（２）計測箇所が複数箇所のとき
複数箇所のうち、その間の距離が最も大きい組を選び、その距離をＤとする。計測に誤差がない場合の把持位置をＰ、誤差を含んだ場合をＰ’とすれば、ここではＥp のみが求める最大把持誤差に関係し、
｜Ｐ−Ｐ’｜＝｜Ｅｐ｜（２ａ／Ｄ−１）又は｜Ｐ−Ｐ’｜＝｜Ｅｐ｜  のうちの大きい方が求める値となる。
【図面の簡単な説明】
【００５４】
【図１】本発明に従った実施形態の全体構成の概略を表わした図である。
【図２】実施形態で実行される処理の概略を記したフローチャートである。
【図３】実施形態において、画面表示されるワークモデル（又はワーク画像）と測定箇所の例を示した図である。
【図４】実施形態において、ワーク情報の指定例について説明する図である。
【図５】実施形態において、計測誤差に関する診断を行なうための処理の概略を記したフローチャートである。
【図６】実施形態における把持ずれに関する診断を行なうための処理の概略を記したフローチャートである。
【図７】実施形態において、ワークのたわみの影響に関する診断を行なうための処理の概略を記したフローチャートである。
【図８】実施形態における診断全体のフローの概略を記したフローチャートである。
【図９】［別項１］において、最大把持誤差の計算方法について説明する図である。
【図１０】［別項２］において、最大把持誤差の計算方法について説明する図である。
【符号の説明】
【００５５】
１  ロボット
２  ビデオカメラ
３  コンピュータ（パーソナルコンピュータ；ロボットシミュレータ）
４  ロボットコントローラ
５  ネットワーク回線
６  ハンド
Ｍ  計測箇所
Ｍ0   計測箇所の代表点
【図１】
2006106927.tif 000003
【図２】
2006106927.tif 000004
【図３】
2006106927.tif 000005
【図４】
2006106927.tif 000006
【図５】
2006106927.tif 000007
【図６】
2006106927.tif 000008
【図７】
2006106927.tif 000009
【図８】
2006106927.tif 000010
【図９】
2006106927.tif 000011
【図１０】
2006106927.tif 000012