(57)【特許請求の範囲】
【請求項１】
ロボットのアーム先端部に装着され、前記ロボットの作業範囲内を移動可能とし、相対的に広範囲の領域内の２次元画像を取得する能力を有する第１のセンサ手段及び、前記ロボットのアーム先端部に装着され、相対的に狭範囲の領域内に光を投射して３次元的な位置測定を行なう能力を有する第２のセンサ手段とを装備した複合センサと、前記ロボットとを結合した複合センサ−ロボットシステムであって、
前記第１のセンサ手段はカメラを用いた視覚センサであり、前記第２のセンサ手段はレーザスポット光またはレーザスリット光を用いたレーザセンサであり、前記視覚センサのカメラが前記レーザセンサの受光部と共用されるものであり、
前記第１のセンサ手段のための動作指令を出力する手段と、前記第２のセンサ手段のための動作指令を出力する手段と、前記第１のセンサ手段により取得された画像信号を処理する手段と、前記第２のセンサ手段の計測出力信号を処理する手段と、前記ロボットを制御するためのロボット制御手段を備え、
前記第１のセンサ手段によって取得された画像信号の処理には、相対的に広範囲の領域の中で計測対象物の位置を特定するための処理が含まれており、
前記ロボット制御手段は、前記計測対象物の特定された位置に基づいて、前記ロボットに前記計測対象物に対するアプローチ動作を行なわせる手段を備え、
前記第２のセンサ手段の計測出力信号の処理には、前記第２のセンサ手段が前記アプローチ動作によってアプローチ位置に移動した後に出力される計測出力信号の処理が含まれている、前記複合センサ−ロボットシステム。
【請求項２】
前記第１のセンサ手段により取得された画像信号を処理する手段及び前記第２のセンサ手段の計測出力信号を処理する手段として共用される画像処理装置を備えた、請求項１に記載された複合センサ−ロボットシステム。
【請求項３】
前記相対的に広範囲の領域の中で前記レーザセンサによる計測対象物の位置を特定するための処理には、前記計測対象物の基準位置からのずれ量を求める処理が含まれ、
前記ロボットのアプローチ位置は、予め教示された被教示アプローチ位置を前記求められたずれ量に応じて補正した位置として決定される、請求項１または請求項２に記載された複合センサ−ロボットシステム。
【請求項４】
前記第１のセンサ手段により取得された２次元画像を表示する画像表示手段と、前記画像表示手段によって表示された２次元画像上で前記アプローチ位置を入力するための手段を更に含む、請求項１〜請求項３の内のいずれか１項に記載された複合センサ−ロボットシステム。
【発明の詳細な説明】
技術分野
本発明は、種々のファクトリオートメーションに適用可能な複合センサ−ロボットシステムに関し、更に詳しく言えば、２次元画像を取得するセンサと３次元センサを用いたセンサを装備した複合センサをロボットと結合した複合センサ−ロボットシステムに関する。
背景技術
製造ラインにおける組み立て作業、加工作業等においては、各種のセンサを用いて種々の対象物の位置や形状を検出することが頻繁に行なわれる。通常、対象物の位置を大局的に計測するには２次元画像を取得出来るセンサ（例えば、ＣＣＤカメラを用いた視覚センサ）が有効である。これに対して、局所的な位置や形状を計測するにはレーザセンサが有効である。
特に、レーザセンサはロボットの手先部に搭載が容易であり、レーザセンサの出力をロボットコントローラに取り入れるようにした場合、至近距離から対象物へレーザビームを投射して対象物の細部の位置、形状等を精密且つリアルタイムに計測し、これをロボットの位置補正等の制御に用いることが出来るという特徴を有している。
そのため、レーザセンサを装備したロボットシステムは、例えば、アーク溶接ロボット、シーリングロボット、計測ロボットなどの分野で広く利用されている。
レーザセンサは、レーザ光をスポット光ビームで走査するものと、スリット光を投射するものとがある。いずれの型のレーザセンサを用いた場合も、スポット光ビームあるいはスリット光を対象物面上に確実に投射しなければならない。対象物がある程度の精度で一定位置に位置決めされていれば、該一定位置の近傍位置をロボットにアプローチ位置として予め教示しておくことで、スポット光ビームあるいはスリット光を対象物面上に投射される状態を迅速に現出することは容易である。
しかし、アプリケーションによっては、対象物の位置決めが行なわれない場合や位置決めの精度に信頼性がない場合も少なくない。そのような場合には、ロボットを適当な教示経路に沿って移動させながらレーザセンサのスポット光ビームあるいはスリット光をプローブに用いて対象物をサーチし、対象物を発見しなければ、レーザセンサによるメインの計測（例えば、形状測定）を開始することが出来ない。
レーザセンサは元来広範囲の測定には不向きであるから、対象物サーチとそれに続く対象物へのアプローチ動作に時間を要し、場合によっては、対象物を確実にサーチすること自体が困難な場合もあり得る。また、対象物の発見に成功しても、ロボットの位置補正などに直ちに役立てることが出来ない場合もある。例えば、対象物の姿勢に応じて特定される位置や方向（例；溶接線の開始点の位置と延在方向）を、姿勢が未知な対象物について得られるレーザセンサの出力から直ちに判定することは、必ずしも容易ではない。
発明の開示
本発明の一つの目的は、対象物の位置や姿勢が未知であっても、ロボットを迅速に対象物にアプローチさせ、レーザセンサなどの３次元位置測定能力を有するセンサによる対象物の計測を開始出来るようにした複合センサ−ロボットシステムを提供することにある。
本発明のもう一つの目的は、そのことを通してロボットを用いた各種作業の信頼性向上とサイクルタイム短縮にある。
本発明に従えば、ロボットのアーム先端部に装着され、前記ロボットの作業範囲内を移動可能とし、相対的に広範囲の領域内の２次元画像を取得する能力を有する第１のセンサ手段及び、前記ロボットのアーム先端部に装着され、相対的に狭範囲の領域に光を投射して３次元的な位置測定を行なう能力を有する第２のセンサ手段とを装備した複合センサと、前記ロボットとを結合した複合センサ−ロボットシステムが提供される。
本複合センサ−ロボットシステムは、第１のセンサ手段のための動作指令を出力する手段と、第２のセンサ手段のための動作指令を出力する手段と、第１のセンサ手段により取得された画像信号を処理する手段と、第２のセンサ手段の計測出力信号を処理する手段と、ロボットを制御するためのロボット制御手段を備えている。
ここで、第１のセンサ手段にはカメラを用いた視覚センサが用いられ、第２のセンサ手段にはレーザスポット光またはレーザスリット光を用いたレーザセンサが用いられる。また、視覚センサのカメラはレーザセンサの受光部と共用される。
そして、第１のセンサ手段によって取得された画像信号の処理には、相対的に広範囲の領域の中で計測対象物の位置を特定するための処理が含まれており、ロボット制御手段は、計測対象物の特定された位置に基づいて、ロボットに計測対象物に対するアプローチ動作を行なわせる手段を備えている。一方、第２のセンサ手段の計測出力信号の処理には、前記第２のセンサ手段が前記アプローチ動作によってアプローチ位置に移動した後に出力される計測出力信号の処理が含まれている。
なお、第１のセンサ手段により取得された画像信号を処理する手段と前記第２のセンサ手段の計測出力信号を処理する手段には、両センサ手段のために共用される画像処理装置を用いることができる。
また、相対的に広範囲の領域の中でレーザセンサによる計測対象物の位置を特定するための処理には、計測対象物の基準位置からのずれ量を求める処理が含まれ、
ロボットのアプローチ位置は、予め教示された被教示アプローチ位置を求められたずれ量に応じて補正した位置として決定されることが好ましい。
本発明の一つの変形された形態に従えば、複合センサ−ロボットシステムは、第１のセンサ手段によって取得された２次元画像を表示する画像表示手段と、画像表示手段によって表示された２次元画像上でアプローチ位置を入力するための手段を更に含んでいる。この形態においては、オペレータが画像表示手段によって表示された２次元画像上でアプローチ位置を指示することが可能になる。
本発明の一つの特徴に従えば、比較的広い範囲から計測対象物をサーチして存在位置や姿勢を検出する能力に乏しい型の第２のセンサ（例えばレーザセンサ）の欠点を、２次元画像を取得する第１のセンサ（例えばＣＣＤカメラを用いた２次元視覚センサ）の能力で補った複合センサがロボットと組み合わせられている。
それ故、詳しい位置や姿勢が未知の計測対象物についても、第２のセンサによる局所的な測定を開始するまでの時間が短縮される。また、第１のセンサ手段により取得された画像信号の処理手段と第２のセンサ手段の計測出力信号の処理手段を兼ねる画像処理装置を用いたり、第１のセンサと第２のセンサで一部要素を共用すれば、ハードウェア構成要素の点数とコストを低く抑えることが出来る。
【図面の簡単な説明】
図１は、本発明の実施形態の説明のために参照される参考例に係る複合センサ−ロボットシステムの全体配置の概要とそれを用いた計測の事例を説明する図；
図２は、参考例で使用されているレーザセンサの概略構成を示した図；
図３は、図２に示したレーザセンサによりスポットビーム反射点の３次元位置を測定する方法を説明する図；
図４は、参考例で使用される画像処理装置及び実施形態で使用される画像処理装置の内部構成、並びに関連要素との接続関係を表わす要部ブロック図；
図５は、図１に示した配置で実行される段差分布計測の際にロボットコントローラ内部で実行される処理の概要を記したフローチャート；
図６は、図１に示した配置で実行される段差分布計測の際に画像処理装置の内部で実行される処理の概要を記したフローチャート；
図７は、本発明の実施形態に係る複合センサ−ロボットシステムの全体配置の概要とそれを用いた計測の事例を説明する図；
図８は、スリット光投射型レーザセンサの構造並びに計測原理を説明する図；
図９は、図７に示した配置で実行される段差分布計測の際にロボットコントローラ内部で実行される処理の概要を記したフローチャート；
図１０は、図７に示した配置で実行される段差分布計測の際に画像処理装置の内部で実行される処理の概要を記したフローチャート；
図１１は、画像上のジョグ送りをロボットのアプローチ動作に取り入れることの説明で参昭される複合センサ−ロボットシステムの全体配置の概要とそれを用いた計測の事例を示した図；そして、
図１２は、図１１に示した配置で実行される段差分布計測の際にロボットコントローラ内部で実行されるアプローチ動作のための処理の概要を記したフローチャートである。
発明を実施するための最良の形態
説明の便宜上、実施形態の説明と併せての参考例についても述べる。図１は、参考例に係る複合センサ−ロボットシステムの全体配置の概要とそれを用いた計測の事例を説明する図である。システムは、一例として、ワークの段差測定のアプリケーションに適用されている。複合センサに含まれる広域用センサが比較的広い範囲内の不確定な位置に不確定な姿勢で供給されるワークを検出し、ロボットによるアプローチ動作後に、同じく複合センサに含まれる狭域用センサが段差分布の計測を行なう。
同図に示したように、システム全体は、ロボットコントローラ１、画像処理装置２、レーザセンサ（本体部。以下、同様）１０、レーザセンサ制御部２０、ＣＣＤカメラ３０並びにロボット４０から構成されている。レーザセンサ１０は、ロボット４０の手先部（ツール先端点ＴＣＰの近傍）に搭載されているが、ＣＣＤカメラ３０は外部に設置される。
画像処理装置２とともに広域用センサ（第１のセンサ手段）を構成するＣＣＤカメラ３０は、その視野３１がワークＷの供給領域５０、即ちワーク供給がなされ得る領域を余裕を以てカバーするように配置される。
狭域用センサ（第２のセンサ手段）として採用されているレーザセンサ１０は、周知のスポット光投射型あるいはスリット光投射型いずれであっても良いが、ここでは前者を採用したケースについて述べる。
レーザビーム投射部１３からは、ロボットの位置に応じて走査レーザビームＬＢ１，ＬＢ２，ＬＢ３等が投射され、反射光が光検出部１４で受光される。カメラ３０の視野は十分大きく設定されている一方、レーザセンサ１０によるレーザビームＬＢ１，ＬＢ２，ＬＢ３の走査範囲（計測範囲）は、カメラ３０の視野３１で捉えられる範囲と比較して格段に狭い。
レーザセンサ１０は、レーザセンサ制御部２０を介して画像処理装置２に接続されている。ＣＣＤカメラ３０も、画像処理装置２に接続されている。このように、画像処理装置２は、レーザセンサ（本体部１０と制御部２０）とＣＣＤカメラ３０で共用される。
ＣＣＤカメラ３０は、ワークＷの供給時に撮影を行う撮影により取得された２次元画像は画像処理装置２に送られる。画像処理装置２は、画像を解析し、ワークＷの位置と姿勢を検出する。その検出結果に基づいて、ロボットコントローラ１はロボット４０をワークＷにアプローチさせる。
図１において、位置１はアプローチ開始位置であり、位置２はアプローチ位置である。アプローチ位置２は、ワークＷにレーザビームＬＢ２を投射して段差計測を開始するに適した位置であり、ワークＷの供給位置に応じて定められる。
実際の作業における個々のワークＷの供給位置は、供給領域５０内でばらつき得る。本実施形態においては、適当な基準位置にワークＷがある場合の最適のアプローチ位置（被教示アプローチ位置）が予めロボットに教示される。実際の作業時に供給される個々のワークについて、ＣＣＤカメラ３０と画像処理装置２によって基準位置（姿勢を含む）からのずれが検出され、そのずれを補償するシフト（位置・姿勢補正）を被教示アプローチ位置に対して与える計算をロボットコントローラ１内で行なうことでアプローチ位置２が求められる。
アプローチを完了したロボット４０は、位置２から位置３（計測終了位置）へ向けて移動しながら段差ｄを継続的に計測する。位置２から始まる経路区間の終点である位置３についても、上記基準位置にワークＷがある場合の位置が予めロボットに教示される。そして、実際の作業時には、検出されたワークＷの基準位置からのずれを補償するシフト（位置・姿勢補正）を教示された計測終了位置に対して与えた位置が位置３として、ロボットコントローラ１内で計算される。
スポット光投射型レーザセンサの構造並びに計測原理は良く知られている通りであるが、図２を用いて概略の説明を行なっておく。レーザセンサ（本体部）１０の投射部１３はレーザ発振器１１とレーザビーム走査用の揺動ミラー（ガルバノメータ）１２を備え、光検出部１４は、受光素子１４ａと結像用の光学系１４ｂを備えている。
一方、レーザセンサ制御部２０は、揺動ミラー１２を揺動させるミラー駆動部２１、レーザ発振器１１を駆動しレーザビームを発生させるレーザ駆動部２２、受光素子１４ａで受光した位置から、位置を検出する信号検出部２３が接続されている。これらミラー駆動部２１、レーザ駆動部２２、信号検出部２３は、回線２４を介して画像処理装置２のレーザセンサインターフェイス（後述）に接続されている。
回線２４を介して画像処理装置２からレーザセンサの動作指令を受けると、レーザ駆動部２２はレーザ発振器１１を駆動し、レーザビームＬＢを発生させる。これと並行して、ミラー駆動部２１により揺動ミラー１２の揺動が開始される。これにより、レーザ発振器１１から発生するレーザビームが対象物面上で走査される。
対象物面上の反射点Ｓで拡散反射されたレーザビームは、光学系１４ｂにより反射点Ｓの位置に応じて受光素子１４ａ上に像を作る。該受光素子１４ａには、ＣＣＤ、ＰＳＤ（Position Sensitive Detector）などが使用出来る。
ここでは、受光素子１４ａとして１次元ＣＣＤアレイが使用されている。受光素子１４ａの受光面に当たった光（反射光の像）は光電子に変換され、そのセルに蓄えられる。セルに蓄積された電荷は、信号検出部２３からのＣＣＤ走査信号に従って所定周期毎１番端から順に出力され、信号検出部２３、回線２４を介して画像処理装置２へ送られる。
ＣＣＤの走査周期は、搖揺動ミラー１２の走査周期よりも十分短く設定（例えば、数１００分の１）されており、搖動ミラー１２の搖動角度の推移とＣＣＤ素子出力状態の推移は、随時把握可能となっている。ＣＣＤ素子出力状態は、出力最大のセル位置（セル番号）で把握され、反射光の当たったセル位置が検出される。この位置により、レーザビームＬＢの反射点Ｓの位置が算出される。これら位置検出のためのソフトウェア処理は、画像処理装置２内で行なわれる。
図３は、受光素子１４ａで検出した位置ｘａに基づき、センサからの反射点Ｓの座標位置（Ｘ，Ｙ）を求める方法を説明する図である。光学系１４ｂの中心と受光素子１４ａの中央点とを結ぶ線上にセンサ原点（０，０）があるとする。この線をＹ軸、このＹ軸に直交する軸をＸ軸とする。
そして、原点から光学系の中心までの距離をＬ１とし、光学系の中心から受光素子１４ｂの中央点までの距離をＬ２、センサ原点からＸ軸方向への揺動ミラー１２の揺動中心までの距離をＤ、センサ原点から揺動ミラー１２の揺動中心までのＹ軸距離をＬ０、揺動ミラー１２によるレーザビームの反射光のＹ軸方向に対する角度をθ、受光素子１４ａの受光面上の受光位置をｘａとする。
レーザビームＬＢが対象物に当たり反射した点Ｓの座標位置（Ｘ，Ｙ）は次の各式で与えられる。
Ｘ＝ｘａ・[（Ｌ１−Ｌ０）・tanθ＋Ｄ］／（ｘａ＋Ｌ２・tanθ）              ・・・（１）
Ｙ＝［Ｌ１・ｘａ＋Ｌ２・（Ｌ０・tanθ−Ｄ）］／（ｘａ＋Ｌ２・tanθ）        ・・・（２）
次に、画像処理装置２のハードウェア構成並びに関連要素との接続関係を要部ブロック図で示した図４を参照し、画像処理装置２について更に説明する。同図に示したように、像処理装置２は、ＣＰＵ（中央演算処理装置）２０１を備え、ＣＰＵ２０１には、レーザセンサインターフェイス２０２、カメラインターフェイス２０３、画像メモリ２０４、プログラムメモリ２０５、画像処理プロセッサ２０６、データメモリ２０７、モニタインターフェイス２０８、コンソールインターフェイス２０９がバスＢＳを介して接続されている。
レーザセンサインターフェイス２０２は、レーザセンサ本体部１０に接続されたレーザセンサ制御部２０のための入出力装置として機能し、前述した態様でミラー駆動部２１、レーザ駆動部２２を介してレーザセンサ１０の動作を制御する。信号検出部２３を介して送られて来る検出信号をＡＤ変換し、データメモリ２０７に蓄積する。データメモリ２０７に蓄積されたデータは、プログラムメモリ２０５に格納されている段差計算プログラムの起動時に使用される。なお、破線で接続が指示されているスリット光投光部１３１は、スリット光投射型のレーザセンサを採用したケースで使用されるもので、後述する実施形態で詳しく言及される。
カメラインターフェイス２０３は、ＣＣＤカメラ３０のための入出力装置として機能し、ＣＰＵ２０１からの撮影指令を受けるとＣＣＤカメラ３０に撮影信号を送り、撮影により取得された画像をグレイスケールに変換し、画像メモリ２０４に格納する。格納された画像は、プログラムメモリ２０５に格納されている位置検出プログラムの起動時に読み出され、画像処理プロセッサ２０６による画像解析に利用される。本実施形態では、画像処理プロセッサ２０６を用いた画像解析により、ワークＷの２つの特徴点Ｐ，Ｑの位置が検出される。
モニタインターフェイス２０８はＴＶモニタに接続されている。ＣＰＵ２０１からのモニタ画像表示指令を受けると、ＴＶモニタ画面上にＣＣＤカメラ３０で得られる現在画像あるいは画像メモリ２０４に蓄積された画像が適宜表示される。
コンソールインターフェイス２０９に接続されたコンソール２１１は、マニュアル入力で画像処理装置２の諸動作のための指令をＣＰＵ２０１から出力させるために使用され、各種プログラムや設定パラメータの登録、編集、起動等を行えるようになっている。そして、通信インターフェイス２１０は、ロボットコントローラ１との指令やデータの授受に使われるものである。ロボットコントローラ１については、ＣＰＵ，ＲＯＭ，ＲＡＭ，軸制御器、サーボ回路、通信インターフェイス等を備えた通常のものが使用されるので、ここでは内部構成と機能の説明は省略する。
以下、図１に示した配置で実行されるワークＷの段差分布計測の際に、ロボットコントローラ１内及び画像処理装置２内で行なわれる処理の概略を図５（ロボットコントローラ１の内部処理）及び図６（画像処理装置２の内部処理）のフローチャートを参照して説明する。なお、レーザセンサ１０、ＣＣＤカメラ３０のキャリブレーションは完了しており、前述したワークＷの基準位置の画像データ、アプローチ開始位置（位置１）、教示アプローチ位置、教示計測終了点の位置は、ロボットコントローラ１に教示済みであるものとする。
先ず、ロボットコントローラ１側で、位置１（アプローチ開始位置）への移動命令を記述した動作プログラムの１ブロックを読み出し（ステップＲ１）、通常の処理を行ない、位置１へロボット４０を移動させる（ステップＲ２）。運動形式は、各軸移動または直線移動とする。
位置１への移動が完了したら、画像処理装置２へワーク位置検出指令を送り（ステップＲ３）、ワークＷの位置（ここではＰ，Ｑの位置）の検出結果の受信待ち態勢に入る（ステップＲ４）。検出結果を表わすセンサデータを受信したら、ワークＷの基準位置からのずれをロボット座標系上で表わすデータを計算して、必要なロボット補正量を計算する（ステップＲ５）。ロボット補正量のデータは例えば、ＰからＱに向うベクトルを考え、ベクトルＰＱ及びＰの基準位置からのずれを表わす４×４同次変換行列のデータとして計算することが出来る。
次いで、位置２（アプローチ位置）への移動命令を記述した１ブロックが読み出され（ステップＲ６）、アプローチ位置２へロボット４０を移動させる（ステップＲ７）。ここで、アプローチ位置２は教示されたアプローチ位置をワークＷについて求められたロボット位置補正量だけシフトさせた位置である。アプローチ動作時の運動形式は、各軸移動または直線移動とする。
アプローチ動作が完了したら、画像処理装置２へレーザセンサ起動指令を送る（ステップＲ８）。そして、位置３（計測終了位置）への移動命令を記述した１ブロックを読み出し（ステップＲ９）、位置３へロボット４０を移動させる（ステップＲ１０）。ここで、位置３は教示された計測終了位置を上記ロボット位置補正量だけシフトさせた位置である。計測時の連動形式は、段差の延在方向に沿った直線移動とする。位置３への移動が完了したら画像処理装置２へレーザセンサ消勢指令を送り（ステップＲ１１）、処理を終了する。
一方、画像処理装置２側では、先ず、ロボットコントローラ１からのワーク位置検出指令を受信する態勢に入る（ステップＳ１）。ワーク位置検出指令を受信したらＣＣＤカメラ３０に撮影指令を出力し（ステップＳ２）、視野３１内にワークＷを捉えた画像を画像処理装置２に取り込み、画像メモリ２０４に格納する（ステップＳ３）。次いで、プログラムメモリ２０５に格納されている位置検出プログラムを起動させ、格納された画像データを読み出して画像処理プロセッサ２０６による画像解析を行ない、ワークＷの２つの特徴点Ｐ，Ｑの位置を検出する（ステップＳ４）。
検出結果を直ちにロボットコントローラ１へ送り（ステップＳ５）、ロボットコントローラ１からのレーザセンサ起動指令を受信する態勢に入る（ステップＳ６）。レーザセンサ起動指令を受信したらレーザセンサ制御部２０にレーザセンサ１０の起動指令を送り、段差の計測を開始して、計測結果の蓄積を開始する（ステップＳ７）。段差の計測結果の蓄積は、例えば、全計測データまたはこれを適当に設定されたサンプリング周期でサンプリングしたものをデータメモリ２０７に書き込む形式で行なわれる。
レーザセンサ１０による計測は、ロボット４０が計測終了位置３に到達した直後にレーザセンサ消勢指令を受信するまで続行される（ステップＳ８）。ロボットコントローラ１からレーザセンサ消勢指令を受信したら、レーザセンサ制御部２０にレーザセンサ１０の消勢指令を送り、段差の計測を終了させ、計測結果の蓄積を終わらせる（ステップＳ９）。以上で、画像処理装置２の内部で行なわれる処理を終える。
次に、図７は、本発明の実施形態に係る複合センサ−ロボットシステムの全体配置の概要とそれを用いた計測の事例を説明する図である。図７に示した配置と図１に示した配置（参考例）との相違点は次の２点である。
（１）レーザセンサとして、スリット光投射型を採用した点。
（２）カメラをレーザセンサとともにロボット手先部に搭載した点。
（３）そのカメラを広域センサとして使用するだけでなく、レーザセンサ（狭域センサ）の受光部としても用いた点。
本実施形態においても、システムはワークの段差測定のアプリケーションに適用され、広域用センサが比較的広い範囲内の不確定な位置に不確定な姿勢で供給されるワークを検出し、ロボットによるアプローチ動作後に、同じく複合センサに含まれる狭域用センサが段差分布の計測を行なう。
図７に示したように、システム全体は、ロボットコントローラ１、画像処理装置２、スリット光投光部１３１、レーザセンサ制御部２０、ＣＣＤカメラ３０並びにロボット４０から構成されている。スリット光投光部１０１及びカメラ３０は、ロボット４０の手先部（ツール先端点ＴＣＰの近傍）に搭載され、スリット光投射型のレーザセンサ１０１を構成している。
即ち、上記相違点（３）で述べたように、カメラ３０は広域センサとして使用されるだけでなく、スリット光投射型のレーザセンサ（狭域センサ）１０１の受光部としても用いられる。
画像処理装置２とともに広域用センサ（第１のセンサ手段）として使用される際には、カメラ３０は、ロボット４０によってその視野３１がワークＷの供給領域５０をカバーする適当な位置に自動的あるいはマニュアル操作で位置決めされる。
スリット光投光部１３１からレーザスリット光ＳＢ１，ＳＢ２，ＳＢ３等が投射され、ワークＷ上に形成される輝線像がカメラ３０で撮影される。
カメラ３０の視野は十分大きく設定されている一方、スリット光ＳＢ１，ＳＢ２，ＬＢ３等の投光範囲（計測範囲）は、カメラ３０を広域センサとして使用した時の視野３１と比較して格段に狭い。
レーザセンサ１０１のスリット光投光部１３１は、レーザセンサ制御部２０を介して画像処理装置２に接続されている。ＣＣＤカメラ３０も、画像処理装置２に接続されている。
ＣＣＤカメラ３０は、ワークＷの供給時に広域センサとして先ず使用され、比較的遠方（アプローチ前位置）からワークＷの供撮影を行う。撮影により取得された２次元画像は画像処理装置２に送られる。画像処理装置２は、画像を解析し、ワークＷの位置と姿勢を検出する。その検出結果に基づいて、ロボットコントローラ１はロボット４０をワークＷにアプローチさせる。
図７において、位置１はアプローチ開始位置であり、位置２はアプローチ位置である。アプローチ位置２は、ワークＷにスリット光ＳＢ２を投射して段差計測を開始するに適した位置であり、ワークＷの供給位置に応じて定められる。
実際の作業における個々のワークＷの供給位置は、供給領域５０内でばらつき得る。適当な基準位置にワークＷがある場合の最適のアプローチ位置（被教示アプローチ位置）が予めロボットに教示される。実際の作業時に供給される個々のワークについて、ＣＣＤカメラ３０と画像処理装置２によって基準位置（姿勢を含む）からのずれが検出され、そのずれを補償するシフト（位置・姿勢補正）を被教示アプローチ位置に対して与える計算をロボットコントローラ１内で行なうことでアプローチ位置２が求められる。
アプローチを完了したロボット４０は、位置２あるいは必要に応じて他の位置３（図示せず）へ歩進移動しながら、段差ｄをワークＷの１個所または複数個所について計測する。
位置３での計測を行なう場合には、上記基準位置にワークＷがある場合の位置３が予めロボットに教示される。そして、実際の作業時には、検出されたワークＷの基準位置からのずれを補償するシフト（位置・姿勢補正）を教示された位置３に対して与えた位置が、実際の位置３としてロボットコントローラ１内で計算される。
スリット光投射型レーザセンサの構造並びに計測原理は良く知られている通りであるが、図８を用いて概略の説明を行なっておく。
スリット光投光部１３１は、円柱レンズを内蔵した１台または複数台（ここでは２台）のレーザ発振器ＬＳ１，ＬＳ２、ステッピングモータＳＭで駆動されるガルバノメータに取り付けられた偏向ミラーＭＲを備える。スリット光投光部１３１は、画像処理装置から投光指令を受けると、レーザ発振器ＬＳ１，ＬＳ２から円柱レンズによって偏平化された２束のレーザ光（スリット光）が出射される。投光指令には、偏向ミラーＭＲの角度を制御するステッピングモータＳＭの位置指令が含まれている。
２束のレーザ光（スリット光）は、ステッピングモータＳＭに位置指令値に従って所定の方向に偏向され、投光窓（図示省略）からワーク（対象物）Ｗ上に投光される。ここでは２束のスリット光ＳＢ１，ＳＢ２をワーク（対象物）Ｗ上に投光され、２本の輝線ｂ１−ｂ５及びｂ６−ｂ１０が形成される。
ＣＣＤカメラ３０が画像処理装置から撮影指令を受けると、輝線ｂ１−ｂ５及びｂ６−ｂ１０を含む画像を取得し、画像処理装置２へ送る。
画像処理装置２は、画像処理機能を利用して輝線ｂ１−ｂ５及びｂ６−ｂ１０を含む画像を解析し、輝線に含まれる端点、屈曲点ｂ１，ｂ２・・・ｂ１０等の３次元位置を求める。段差ｄはこれら３次元位置のデータから計算される。
なお、屈曲点や端点の３次元位置を求める原理、キャリブレーションの方法並びにそれらに関連する計算処理の詳細については、周知事項なのでここでは説明を省略する。
画像処理装置２のハードウェア構成並びに関連要素との接続関係については、レーザセンサ関連部分を除き、実施形態１と同様である。従って、重複説明は極力省略し、レーザセンサ関連部分を中心に、図４を再度参照して説明する。
実施形態IIでは、レーザセンサインターフェイス２０２は、スリット光投光部１３１に接続されたレーザセンサ制御部２０のための入出力装置として機能する。ＣＰＵ２０１は、レーザセンサインターフェイス２０２を介して動作指令（レーザ発振器ＬＳ１，ＬＳ２のＯＮ／ＯＦＦ、ステッピングモータＳＭの回転指令など）を送り、スリット光投光部１３１を制御する。
カメラインターフェイス２０３は、ＣＣＤカメラ３０のための入出力装置として機能し、ＣＰＵ２０１からの撮影指令を受けるとＣＣＤカメラ３０に撮影信号を送り、撮影により取得された画像をグレイスケールに変換し、画像メモリ２０４に格納する。
格納された画像は、プログラムメモリ２０５に格納されている位置検出プログラムの起動時に読み出され、画像処理プロセッサ２０６による画像解析に利用される。本実施形態では、２種類の画像解析が行なわれる。カメラ３０を広域センサとして使用する際には、スリット光は投光されず、ワークＷの通常画像が取得される。そして、実施形態１と同じく、２つの特徴点Ｐ，Ｑの位置の検出が行なわれる。
これに対して、カメラ３０を狭域センサとして使用する際には、スリット光が投光され、ワークＷ上に形成された輝線ｂ１−ｂ５，ｂ６−ｂ１０の画像が取得され、そこに含まれる端点／屈曲点ｂ１−ｂ５，ｂ６−ｂ１０の３次元位置が検出される（図８参照）。
なお、ロボットコントローラ１については、実施形態１と同様、ＣＰＵ，ＲＯＭ，ＲＡＭ，軸制御器、サーボ回路、通信インターフェイス等を備えた通常のものが使用されるので、詳しい説明は省略する。
次に、図７に示した配置で実行されるワークＷの段差分布計測の際に、ロボットコントローラ１内及び画像処理装置２内で行なわれる処理の概略を図９（ロボットコントローラ１の内部処理）及び図１０（画像処理装置２の内部処理）のフローチャートを参照して説明する。
なお、スリット光投光部１３１及びＣＣＤカメラ３０のキャリブレーションは完了しており、前述したワークＷの基準位置の画像データ、アプローチ開始位置（位置１）、教示アプローチ位置がロボットコントローラ１に教示済みであるものとする。
また、スリット光の投光はアプローチ位置（位置２）のみで行い、段差測定のためのロボット移動は要しないものとする。スリット光投射型のレーザセンサは、偏向ミラーＭＲを振ることで、ある程度の角度範囲にスリット光を投射出来る。
先ず、ロボットコントローラ１側で、位置１（アプローチ開始位置）への移動命令を記述した動作プログラムの１ブロックを読み出し（ステップＲＲ１）、通常の処理を行ない、位置１へロボット４０を移動させる（ステップＲＲ２）。運動形式は、各軸移動または直線移動とする。
位置１への移動が完了したら、画像処理装置２へワーク位置検出指令を送り（ステップＲＲ３）、ワークＷの位置（Ｐ，Ｑの位置）の検出結果の受信を待つ（ステップＲＲ４）。検出結果を表わすセンサデータを受信したら、ワークＷの基準位置からのずれをロボット座標系上で表わすデータを計算して、必要なロボット補正量を計算する（ステップＲＲ５）。ロボット補正量のデータは例えば、ＰからＱに向うベクトルを考え、ベクトルＰＱ及びＰの基準位置からのずれを表わす４×４同次変換行列のデータとして計算することが出来る。
次いで、位置２（アプローチ位置）への移動命令を記述した１ブロックが読み出され（ステップＲＲ６）、アプローチ位置２へロボット４０を移動させる（ステップＲＲ７）。ここで、アプローチ位置２は教示されたアプローチ位置をワークＷについて求められたロボット位置補正量だけシフトさせた位置である。アプローチ動作時の運動形式は、各軸移動または直線移動とする。
アプローチ動作が完了したら、画像処理装置２へレーザセンサ起動指令を送る（ステップＲＲ８）。そして、画像処理装置２からの段差測定完了の知らせを待つ（ステップＲＲ９）。知らせを受けたら、画像処理装置２へレーザセンサ消勢指令を送り（ステップＲ１０）、処理を終了する。
一方、画像処理装置２側では、先ず、ロボットコントローラ１からのワーク位置検出指令を受信する態勢に入る（ステップＳＳ１）。ワーク位置検出指令を受信したらＣＣＤカメラ３０に撮影指令を出力し（ステップＳＳ２）、視野３１内にワークＷを捉えた画像を画像処理装置２に取り込み、画像メモリ２０４に格納する（ステップＳＳ３）。
次いで、プログラムメモリ２０５に格納されている位置検出プログラムを起動させ、格納された画像データを読み出して画像処理プロセッサ２０６による画像解析を行ない、ワークＷの２つの特徴点Ｐ，Ｑの位置を検出する（ステップＳＳ４）。
検出結果を直ちにロボットコントローラ１へ送り（ステップＳＳ５）、ロボットコントローラ１からのレーザセンサ起動指令の受信を待つ（ステップＳＳ６）。レーザセンサ起動指令を受信したらレーザセンサ制御部２０にスリット光投光部１３１の起動指令を送り、スリット光ＳＢ１，ＳＢ２を投光する（ステップＳＳ７）。
次いで、ＣＣＤカメラ３０に撮影指令を出力し（ステップＳＳ８）、ワークＷ上に形成された輝線ｂ１−ｂ５，ｂ６−ｂ１０の画像を画像処理装置２に取り込み、画像メモリ２０４に格納する（ステップＳＳ９）。
そして、プログラムメモリ２０５に格納されている段差検出プログラムを起動させ、格納された画像データを読み出して画像処理プロセッサ２０６による画像解析を行ない、輝線に含まれる端点／屈曲点ｂ１，ｂ２・・・ｂ１０の３次元位置を検出し、段差ｄを計算し、段差計測完了を、必要に応じて計測結果とともに、ロボットコントローラ１に送信する（ＳＳ１０）。
端点／屈曲点ｂ１，ｂ２…ｂ１０の３次元位置から段差を求める計算方法は種々ある。例えば、図８において、屈曲点ｂ１，ｂ６から直線ｂ１ｂ６を求め、屈曲点ｂ３，ｂ８から直線ｂ３ｂ８を求め、両直線間距離から段差ｄを求めることが出来る。この方法では、３次元位置はセンサ座標系上で求めれば良いので、ロボット座標系との間の座標変換処理及びロボット姿勢を考慮する必要がないことに注意すべきである。
なお、測定精度を上げるためには、ステッピングモータＳＭに移動指令を送り、スリット光の投光方向を変えた条件でステップＳＳ７〜ＳＳ９を繰り返してから、段差ｄを求めることが好ましい。
ロボットコントローラ１からのレーザセンサ消勢指令の受信を待ち（ステップＳＳ１１）、レーザセンサ（スリット光投光部１３１）を消勢し（ステップＳＳ１２）、処理を終える。
以上説明した参考例及び実施形態では、広域センサとしてのカメラ３０の画像を画像処理装置で解析して、ロボット４０の自動的なアプローチが行なわれている。そして、アプローチ位置は、予め教示された被教示アプローチ位置を画像解析から得られるずれデータに基づいて補正する方式で決定される。
次に、広域センサとしてのカメラ３０の画像をディスプレイ上に表示し、表示された画面上のジョグ送りをロボットのアプローチ動作に取り入れることについて説明する。説明は、便宜上、図１１に示したシステムの全体配置を参照して行う。アプリケーションは、参考例及び実施形態と同様、例えばワークの段差測定である。
同図に示したように、システム全体は、ロボットコントローラ１、レーザセンサ（スポット投射型あるいはスリット光投射型）１０、レーザセンサ制御部２０、ＣＣＤカメラ３０、ロボット４０、並びにディスプレイＤＰを装備した教示操作盤ＴＰから構成されている。
レーザセンサ１０は、ロボット４０の手先部（ツール先端点ＴＣＰの近傍）に搭載されているが、ＣＣＤカメラ３０は外部に設置される。
広域用センサとして用いられるＣＣＤカメラ３０は、その視野３１がワークＷの供給領域に相当するテーブルＴＢとロボット４０のアプローチに使用される周辺領域を余裕を以てカバーするよう、テーブルＴＢとロボット４０の上方に配置される。カメラ３０の光軸は鉛直下向き方向（ロボット座標系のＺ軸方向）とする。
狭域用センサ（第２のセンサ手段）として採用されているレーザセンサ（スポット投射型あるいはスリット光投射型）１０の構成、機能については実施形態Ｉ、IIで述べたので、繰り返し説明は省略する。
ロボットコントローラ１は、画像処理装置を内蔵した故知のもので、カメラ３０に撮影指令を発し、画像を取り込む機能、ディスプレイＤＰ上に画像を表示する機能、画面上でカーソル等で指示された位置についてロボット座標系上の位置（Ｘ，Ｙ）を算出する機能などを備えている。また、制御部２０を介して受け取るレーザセンサ１０の出力信号に基づいて、段差等を求める処理を行なう。処理内容等の説明は既に行なったので省略する。
教示操作盤ＴＰは、操作キーグループ乃至ボタングループＫ１，Ｋ２，Ｋ３などを備え、通常の教示操作盤と同様の機能と共に画面上でジョグ移動目標位置を指定する機能を有している。
例えば、グループＫ１，Ｋ２はＸＹＺ方向、ＸＹＺ軸周り、ロボット軸周りなど、通常のジョグ送りに使用され、グループＫ２はカーソル（図示省略）を画面上でＸＹ方向に動かすカーソルキーグループとして使用される。
カメラ３０は、待機位置にあるロボット４０の少なくとも手先部分とテーブルＴＢを捉えることが出来る。従って、アプローチ前（位置１）にあるロボット４０、レーザセンサ１０（裏側）及びワークＷの画像が、図示したような画像４０’，１０’，Ｗ’で表示される。
ここで、オペレータが画面を見ながらグループＫ３のカーソルキーを操作して、アプローチ位置２としてふさわしい位置に図示しないカーソルを合致させ、この状態で確定操作（例えば、Ｋ３の内の一つの押下）を行うと、カーソル位置がロボットコントローラ１へ伝えられ、カーソル位置が表わすＸＹ位置（ロボット座標系上）が求められる。
更に、アプローチスタート操作（例えば、Ｋ３の内の一つの２回連続押下）を行うと、求められたＸＹ位置へロボット４０が移動する。Ｚ位置については、ＸＹ移動終了後に行なっても良いが、画面ジョグ進行中に適当な操作（例えば、グループＫ１中の１つのキーの押下）によって、Ｚ軸方向ジョグを指令出来ることが好ましい。
ロボットコントローラ１内で行なわれる処理の概要は、図１２にフローチャートで示した。なお、本実施形態の特徴はアプローチ動作にあり、アプローチ完了後のレーザセンサ（一般には、３次元位置センサ）１０による計測については、既述の参考例あるいは実施形態で説明した通りである。従って、ここではアプローチ完了までの処理について説明する。
ＣＣＤカメラ３０に撮影指令を送って、ロボット手先部とワークを含む画像を取り込む（ステップＴ１）。次いで、モニタ（教示操作盤ＴＰに装備されたディスプレイＤＰ）上に画像４０’，１０’，Ｗ’を表示する（ステップＴ２）。
オペレータのカーソルキー操作により、アプローチを希望する画面上位置にカーソルを合わせて、アプローチ位置２を指示する（ステップＴ３）。続いて、カーソルで指示された位置をロボット座標系上の位置（Ｘ，Ｙ）に変換する（ステップＴ４）。
更に、アプローチスタート操作を受けて、求められた位置２（Ｘ，Ｙ）へロボット４０のＴＣＰを移動させる（ステップＴ５）。Ｚ位置については、レーザセンサ１０とワークＷとの上下間隔を目測しながら調整する。そのために、画面ジョグ進行中にＺ軸方向ジョグ指令を受けて、ロボットコントローラ１内部ではＺ軸方向の移動を含む指令が作成され、サーボに渡されてロボット４０のＴＣＰをＺ軸方向へ移動させる（ステップＴ６）。以上でアプローチ動作を完了する。なお、更にロボット姿勢の調整が必要であれば、それを最後に行なう。但し、Ｚ軸まわりの姿勢については、カーソルに姿勢指示機能を持たせれば、アプローチ位置２をＺ軸周り姿勢を含む形で指定することも可能である。
以上、段差を測定する計測ロボットに複合センサを組み合わせた事例について説明したが、他の用途で使用されるロボットに複合センサを組み合わせて、複合センサ−ロボットシステムを構成し得ることは言うまでもない。
本発明によれば、レーザセンサ等の狭域センサの欠点がＣＣＤカメラのような２次元画像を取得する広域センサで補われる。従って、計測対象物の詳しい位置や姿勢が未知であるアプリーケーションにおいても、ロボットを迅速・的確に計測対象物にアプローチさせ、狭域センサによる計測を開始することが出来る。
その結果、各種アプリケーションにおけるサイクルタイムの短縮が可能になる。また、画像処理装置、光検出手段などを適宜共用する形態でシステムに組み込むことで、ハードウェアを簡素化し、コストを低く抑えることが出来る。
【図１】
0003904605.tif 000002
【図２】
0003904605.tif 000003
【図３】
0003904605.tif 000004
【図４】
0003904605.tif 000005
【図５】
0003904605.tif 000006
【図６】
0003904605.tif 000007
【図７】
0003904605.tif 000008
【図８】
0003904605.tif 000009
【図９】
0003904605.tif 000010
【図１０】
0003904605.tif 000011
【図１１】
0003904605.tif 000012
【図１２】
0003904605.tif 000013