(57)【特許請求の範囲】
【請求項１】
仮想空間上に、ロボット及び当該ロボットの周辺構造物の仮想３次元モデルを配置した仮想ロボットシステムを構築し、前記ロボットの移動経路を教示するオフライン教示装置であって、
前記仮想３次元モデルの形状誤差に関する情報を取得する取得手段と、
前記取得手段で取得した情報に基づいて、前記ロボットの移動経路を補正する補正手段と、
前記取得手段で取得した情報に基づいて、前記ロボットの移動経路の補正の必要性を判定する判定手段と、を有し、
前記取得手段は、
前記仮想ロボットシステムに対応する実機ロボットシステム上の構成物の形状を計測する計測手段と、
前記計測手段による計測結果に基づいて、前記構成物の実測３次元モデルを作成する作成手段と、
前記作成手段で作成した実測３次元モデルと前記仮想３次元モデルとを比較し、前記仮想３次元モデルの形状誤差に関する情報を算出する算出手段と、を有し、
前記判定手段は、
前記取得手段で取得した情報に基づいて、前記ロボットの移動経路が最短移動経路へ補正可能である場合、または前記ロボットの移動経路が、前記実機ロボットシステムにおいてロボットと周辺構造物との干渉が発生する経路であると判定した場合に、前記ロボットの移動経路の補正の必要性があると判定することを特徴とするオフライン教示装置。
【請求項２】
前記補正手段は、
前記判定手段で補正の必要性があると判定したとき、前記ロボットの移動経路を補正することを特徴とする請求項１に記載のオフライン教示装置。
【請求項３】
前記形状誤差が発生している可能性のある前記仮想３次元モデルを判別する判別手段をさらに備え、
前記計測手段は、
前記判別手段で前記形状誤差が発生している可能性があると判別した仮想３次元モデルに対応する前記実機ロボットシステム上の構成物の形状を計測することを特徴とする請求項１または２に記載のオフライン教示装置。
【請求項４】
前記仮想３次元モデルは、モデル形状の信頼度を示す属性情報が付加された３次元モデルであって、
前記判別手段は、
前記仮想３次元モデルに付加された属性情報に基づいて、前記形状誤差が発生している可能性があるか否かを判別することを特徴とする請求項３に記載のオフライン教示装置。
【請求項５】
前記算出手段は、
前記実測３次元モデルのボクセルデータと前記仮想３次元モデルのボクセルデータとを比較し、前記仮想３次元モデルの形状誤差に関する情報を算出することを特徴とする請求項１〜４のいずれか１項に記載のオフライン教示装置。
【請求項６】
前記判定手段は、
前記仮想３次元モデルの形状と、前記実測３次元モデルの形状と、前記ロボットのエンドエフェクタの３次元モデルの形状とに基づいて、前記ロボットの移動経路が最短移動経路へ補正可能であるか否かを判定することを特徴とする請求項１〜５のいずれか１項に記載のオフライン教示装置。
【請求項７】
前記判定手段は、
前記仮想３次元モデルの前記ロボットに正対する面を構成する高さ方向の辺の長さから、前記実測３次元モデルの前記ロボットに正対する面を構成する高さ方向の辺の長さを差し引いた長さが、前記エンドエフェクタの３次元モデルの前記高さ方向に相当する長さよりも長いとき、前記ロボットの移動経路が最短移動経路へ補正可能であると判定することを特徴とする請求項６に記載のオフライン教示装置。
【請求項８】
前記判定手段は、
前記実測３次元モデルの形状と、前記ロボットの移動経路とに基づいて、前記ロボットの移動経路が、前記干渉が発生する経路であるか否かを判定することを特徴とする請求項１〜５のいずれか１項に記載のオフライン教示装置。
【請求項９】
前記補正手段は、
前記ロボットの移動経路のうち、前記仮想３次元モデル近傍の移動経路を部分的に補正することを特徴とする請求項１〜８のいずれか１項に記載のオフライン教示装置。
【請求項１０】
前記補正手段は、
前記判定手段で前記ロボットの移動経路が最短移動経路へ補正可能であると判定したとき、前記仮想空間上で、前記仮想３次元モデルを前記実測３次元モデルに変換し、当該実測３次元モデルから所定距離にある近傍領域を設定する設定手段と、
前記設定手段で設定した前記近傍領域内に存在する教示点の中から、前記部分的に補正する移動経路の開始点と終了点とを選択する第一の選択手段と、
前記第一の選択手段で選択した教示点間を結ぶ最短移動経路を探索する第一の探索手段と、を備えることを特徴とする請求項９に記載のオフライン教示装置。
【請求項１１】
前記第一の選択手段は、
前記近傍領域外の教示点から前記近傍領域内の教示点に向かう移動経路の終点となる教示点を前記開始点として選択し、
前記近傍領域内の教示点から前記近傍領域外の教示点に向かう移動経路の始点となる教示点を前記終了点として選択することを特徴とする請求項１０に記載のオフライン教示装置。
【請求項１２】
前記補正手段は、
前記判定手段で前記ロボットの移動経路が、前記干渉が発生する経路であると判定したとき、当該干渉が発生している移動経路の始点となる教示点と終点となる教示点とを、それぞれ前記部分的に補正する移動経路の開始点と終了点として選択する第二の選択手段と、
前記第二の選択手段で選択した教示点間を結ぶ干渉回避経路を探索する第二の探索手段と、を備えることを特徴とする請求項９に記載のオフライン教示装置。
【請求項１３】
仮想空間上に、ロボット及び当該ロボットの周辺構造物の仮想３次元モデルを配置した仮想ロボットシステムを構築し、前記ロボットの移動経路を教示するオフライン教示方法であって、
前記仮想３次元モデルの形状誤差に関する情報を取得するステップと、
取得した情報に基づいて、前記ロボットの移動経路を補正するステップと、
取得した情報に基づいて、前記ロボットの移動経路の補正の必要性を判定するステップと、を含み、
前記取得するステップは、
前記仮想ロボットシステムに対応する実機ロボットシステム上の構成物の形状を計測するステップと、
計測した結果に基づいて、前記構成物の実測３次元モデルを作成するステップと、
作成した実測３次元モデルと前記仮想３次元モデルとを比較し、前記仮想３次元モデルの形状誤差に関する情報を算出するステップと、を含み、
前記判定するステップでは、
前記取得した情報に基づいて、前記ロボットの移動経路が最短移動経路へ補正可能である場合、または前記ロボットの移動経路が、前記実機ロボットシステムにおいてロボットと周辺構造物との干渉が発生する経路であると判定した場合に、前記ロボットの移動経路の補正の必要性があると判定することを特徴とするオフライン教示方法。
【請求項１４】
ロボットと、
前記請求項１〜１２の何れか１項に記載のオフライン教示装置と、
前記オフライン教示装置により教示された前記ロボットの移動経路に基づいて、前記ロボットを動作させる制御装置と、を備えることを特徴とするロボットシステム。
【請求項１５】
コンピュータを、前記請求項１〜１２のいずれか１項に記載のオフライン教示装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オフラインでロボットの動作を教示するオフライン教示装置、オフライン教示方法及びロボットシステムに関する。
【背景技術】
【０００２】
オフライン教示装置は、仮想空間上に、ロボットと当該ロボットの周辺構造物とで構成される仮想ロボットシステムを構築し、ロボットの動作プログラムを作成してロボットの動作をオフラインで教示するものである。仮想ロボットシステムと実機ロボットシステムとの間には誤差が存在するのが通例であり、オフライン教示装置で作成したロボットの動作プログラムを実機ロボットシステムに供給した場合に、ロボットと周辺構造物との間で干渉等が発生するおそれがある。
【０００３】
そこで、当該誤差を考慮したオフライン教示装置として、特許文献１に記載の技術がある。この技術は、２次元視覚センサや３次元視覚センサ、距離センサ等を使用して実機ロボットシステムの構成物の配置位置を計測することで、仮想ロボットシステムとの配置位置の誤差を検出し、当該誤差分だけ教示点座標をシフトしてロボットと周辺構造物との干渉を回避するものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１５０２１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、オフライン教示装置では、ロボットや周辺構造物の３次元モデルを用意し、それらを仮想空間上に配置して仮想ロボットシステムを構築する。そして、これら３次元モデルを用いて、ロボットの動作や教示点座標を設定して教示作業を行う。
仮想ロボットシステムの構築に際し、ロボットに関しては、ロボットメーカーが用意した３次元モデルを使用することができるが、周辺構造物に関しては３次元モデルが用意されていない場合が多い。この場合、周辺構造物の３次元モデルは、外形寸法をほぼ同じにした簡易形状モデルで代用する。このように、仮想ロボットシステムと実機ロボットシステムとでは、構造物のモデル形状に差異が生じる場合がある。
【０００６】
しかしながら、上記特許文献１に記載の技術では、仮想ロボットシステムと実機ロボットシステムとの配置位置の誤差分を補正するだけであり、構造物のモデル形状の誤差分を補正することはできない。
そのため、上記特許文献１に記載の技術では、モデル形状の差異により、実機ロボットシステムにおいてロボットと構成物との干渉が発生してしまうおそれがある。また、モデル形状に差異がある場合、作業点までの最短経路が変更される場合があるが、上記特許文献１に記載の技術のように配置位置に関する誤差分の教示点座標シフトでは、ロボットの移動経路を最短経路にするような補正は行えない。
そこで、本発明は、仮想ロボットシステムの構成物と実機ロボットシステムの構成物とで形状の差異が発生している場合でも、適切なオフライン教示データを作成することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係るオフライン教示装置の一態様は、仮想空間上に、ロボット及び当該ロボットの周辺構造物の仮想３次元モデルを配置した仮想ロボットシステムを構築し、前記ロボットの移動経路を教示するオフライン教示装置であって、前記仮想３次元モデルの形状誤差に関する情報を取得する取得手段と、前記取得手段で取得した情報に基づいて、前記ロボットの移動経路を補正する補正手段と、前記取得手段で取得した情報に基づいて、前記ロボットの移動経路の補正の必要性を判定する判定手段と、を有し、前記取得手段は、前記仮想ロボットシステムに対応する実機ロボットシステム上の構成物の形状を計測する計測手段と、前記計測手段による計測結果に基づいて、前記構成物の実測３次元モデルを作成する作成手段と、前記作成手段で作成した実測３次元モデルと前記仮想３次元モデルとを比較し、前記仮想３次元モデルの形状誤差に関する情報を算出する算出手段と、を有し、前記判定手段は、前記取得手段で取得した情報に基づいて、前記ロボットの移動経路が最短移動経路へ補正可能である場合、または前記ロボットの移動経路が、前記実機ロボットシステムにおいてロボットと周辺構造物との干渉が発生する経路であると判定した場合に、前記ロボットの移動経路の補正の必要性があると判定する。
【発明の効果】
【０００８】
本発明によれば、仮想ロボットシステムの構成物と実機ロボットシステムの構成物とで形状の差異が発生している場合でも、適切なオフライン教示データを作成することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態のロボットシステムの一例を示す構成図である。
【図２】オフライン教示装置のハードウェア構成例を示す図である。
【図３】事前検討処理手順の一例を示すフローチャートである。
【図４】システム構築部の詳細を説明する図である。
【図５】画面構成要素データの詳細を示す図である。
【図６】教示点および移動経路の一例を示す図である。
【図７】経路補正処理手順の一例を示すフローチャートである。
【図８】構成要素の計測方法を説明するための図である。
【図９】３次元モデルの形状の差異パターン例である。
【図１０】モデルの比較方法を説明するための図である。
【図１１】経路補正判定方法（最短経路補正）を説明するための図である。
【図１２】最短経路補正判定の一例である。
【図１３】最短経路補正判定の一例である。
【図１４】最短経路補正判定の一例である。
【図１５】エンドエフェクタの形状の一例を示す図である。
【図１６】最短経路補正を行うと判断される例である。
【図１７】最短経路補正を行うと判断される例である。
【図１８】経路補正判定方法（干渉回避経路補正）を説明するための図である。
【図１９】干渉回避経路補正を行うと判断される例である。
【図２０】最短経路補正方法を説明するための図である。
【図２１】最短経路補正の開始点と終点とを設定する方法を示す図である。
【図２２】経路探索方法を説明する図である。
【図２３】経路探索方法を説明する図である。
【図２４】経路探索方法を説明する図である。
【図２５】経路探索方法を説明する図である。
【図２６】最短経路補正結果を示す図である。
【図２７】干渉回避経路補正結果を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明を実施するための形態について詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
（第一の実施形態）
図１は、本実施形態におけるオフライン教示装置を備えるロボットシステム１００の構成例を示す図である。
ロボットシステム１００は、ロボット１０と、オフライン教示装置２０と、を備える。
ロボット１０は、例えば多関節ロボットであり、アームの先端部（手先部）には、センサ部１１が取り付けられている。センサ部１１は、ロボット１０の手先部付近にある物体を計測し、その計測結果をオフライン教示装置２０に出力する。ここで、センサ部１１は、例えば、視覚センサや距離センサにより構成することができる。
【００１１】
なお、センサ部１１は、ロボット１０に搭載されている必要はなく、例えば、他の作業機械に搭載してもよいし、所定の撮影対象空間の上空に固定配置してもよい。
また、ロボット１０は、ロボット１０の手先部の位置姿勢を変更可能な位置姿勢変更機構１２を備える。位置姿勢変更機構１２は、ロボット１０の各関節の角度を変更することで当該ロボット１０の手先部の位置や姿勢を変更する。ここで、位置姿勢変更機構１２は、電動モータによって駆動されてもよいし、油圧や空気圧等の流体圧で作動するアクチュエータによって駆動されてもよい。この位置姿勢変更機構１２は、オフライン教示装置２０によって作成されるロボット１０の移動経路等を示す教示データをもとに駆動される。
【００１２】
さらに、ロボット１０の手先部には、エンドエフェクタ１３が取り付けられている。エンドエフェクタ１３は、ロボット１０のワークの種類に応じた作業を実現するためのツールであり、例えばロボットハンド等である。当該ロボットハンドとしては、モータ駆動可能なチャック機構を有し物体を把持可能なハンドや、空気圧で物体を吸着する吸着パッドを用いたハンド等を用いることができる。なお、エンドエフェクタ１３は、アームに対して着脱可能に取り付けられており、ワークの種類に応じて交換可能である。
なお、ロボット１０は、多関節ロボットに限定されるものではなく、数値制御（Numerical Control：ＮＣ）可能な可動式の機械であってもよい。
【００１３】
オフライン教示装置２０は、仮想空間上でロボット用の教示データ（例えば、ロボットの移動経路）を作成し、これを実機ロボットに供給するオフライン教示（オフラインティーチング）を行う。具体的には、オフライン教示装置２０は、仮想空間上に、仮想ロボット、当該仮想ロボットに取り付けられるツール（エンドエフェクタ）、作業対象物であるワーク、及び周辺構造物等の３次元モデルを配置して仮想ロボットシステムを構築し、当該仮想ロボットシステムで教示データを作成する事前検討処理を実行する。
また、オフライン教示装置２０は、事前検討処理により作成された教示データを、実機ロボットシステム構築後に取得した構成要素の３次元モデルの形状に応じて補正する経路補正処理を実行する。
【００１４】
以下、オフライン教示装置２０を構成する各部について詳細に説明する。
オフライン教示装置２０は、例えばパーソナルコンピュータ（ＰＣ）により構成されており、図１に示すように、システム構築部２０１と、ロボット経路作成部２０２と、動作確認部２０３と、計測・モデル作成部２０４と、形状差異判定部２０５と、経路補正部２０６と、外部ＩＦ部２０７と、入出力制御部２０８と、を備える。
システム構築部２０１は、仮想空間上に仮想ロボットシステムを構築する。
ロボット経路作成部２０２は、システム構築部２０１で構築した仮想ロボットシステムで、教示データとしてロボットの移動経路を作成する。
動作確認部２０３は、ロボット経路作成部２０２で作成したロボット経路をアニメーシ  ョンでシミュレーションする。
【００１５】
また、計測・モデル作成部２０４は、実機ロボットシステムの構成要素の形状を示す情報を、センサ部１１を制御して計測し、計測した構成要素の３次元モデル（実測３次元モデル）を作成する。
形状差異判定部２０５は、計測・モデル作成部２０４で作成された実測３次元モデルと、それに対応する仮想空間上に存在する既存３次元モデル（仮想３次元モデル）とに形状の差異があるか否かを判定し、既存３次元モデルの形状誤差に関する情報を取得する。そして、形状差異判定部２０５は、上記差異があると判定したとき、当該差異が事前検討処理で作成されたロボットの経路に影響を与えるか、即ち事前検討処理で作成されたロボットの経路を補正する必要があるか否かを判断する。
【００１６】
経路補正部２０６は、形状差異判定部２０５による判定結果に応じて、事前検討処理で作成されたロボットの経路を補正する。ここでは、形状差異判定部２０５で、形状の差異がロボット経路に影響を与える（ロボット経路を補正する必要がある）と判断したとき、ロボットの経路を補正する。
外部ＩＦ部２０７は、ロボット経路作成部２０２や経路補正部２０６で作成された教示データをロボット１０に転送する。また、外部ＩＦ部２０７は、センサ部１１の計測結果を受信し、これを計測・モデル作成部２０４へ送信する。
入出力制御部２０８は、ユーザがキーボードやマウス等のポインティングデバイスを用いてモニタ画面を介して行う操作を入力したり、ロボットのシミュレーション結果をモニタ画面に表示したりする。
【００１７】
（オフライン教示装置２０のハードウェア構成）
図２は、オフライン教示装置２０のハードウェア構成の一例である。
オフライン教示装置２０は、ＣＰＵ２１と、ＲＯＭ２２と、ＲＡＭ２３と、外部メモリ２４と、入力部２５と、表示部２６と、通信Ｉ／Ｆ２７と、システムバス２８とを備える。
ＣＰＵ２１は、オフライン教示装置２０における動作を統括的に制御するものであり、システムバス２８を介して、各構成部（２２〜２７）を制御する。
ＲＯＭ２２は、ＣＰＵ２１が処理を実行するために必要な制御プログラム等を記憶する不揮発性メモリである。なお、当該プログラムは、外部メモリ２４や着脱可能な記憶媒体（不図示）に記憶されていてもよい。
ＲＡＭ２３は、ＣＰＵ２１の主メモリ、ワークエリア等として機能する。すなわち、ＣＰＵ２１は、処理の実行に際してＲＯＭ２２から必要なプログラム等をＲＡＭ２３にロードし、当該プログラム等を実行することで各種の機能動作を実現する。
【００１８】
外部メモリ２４は、例えば、ＣＰＵ２１がプログラムを用いた処理を行う際に必要な各種データや各種情報等を記憶している。また、外部メモリ２４には、例えば、ＣＰＵ２１がプログラム等を用いた処理を行うことにより得られた各種データや各種情報等が記憶される。
入力部２５は、例えばキーボードやマウス等により構成され、オペレータが入力部２５を介して当該オフライン教示装置２０に指示を与えることができるようになっている。
表示部２６は、液晶ディスプレイ（ＬＣＤ）等のモニタで構成される。
通信Ｉ／Ｆ２７は、外部装置と通信するためのインターフェースである。
システムバス２８は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、外部メモリ２４、入力部２５、表示部２６及び通信Ｉ／Ｆ２７を通信可能に接続する。
【００１９】
オフライン教示装置２０の各部の機能は、ＣＰＵ２１がＲＯＭ２２もしくは外部メモリ２４に記憶されたプログラムを実行することで実現される。以下、オフライン教示装置２０が実行する処理について具体的に説明する。
（事前検討処理）
図３は、オフライン教示装置２０が実行する事前検討処理手順を示すフローチャートである。この事前検討処理は、実機ロボットシステムの構築前に、仮想空間上でシミュレーションによる事前検討を行うための処理である。
先ずステップＳ１で、オフライン教示装置２０は、仮想空間上に仮想ロボットシステムを構築する。仮想ロボットシステムは、上記のシステム構築部２０１が構築する。
システム構築部２０１は、ロボットシステムを構成する各構成要素の３次元モデルをインポートし、当該３次元モデルを仮想空間上に配置することで仮想ロボットシステムを構築する。このとき、図４に示すように、外部のＣＡＤ装置２１０に３次元モデルが用意されている構成物については、ＣＡＤ装置２１０から３次元モデルをインポートし、ＣＡＤ装置２１０に３次元モデルが用意されていない構成物についてはユーザが画面上で作成した簡易的な３次元モデルを、入出力制御部２０８を介してインポートする。なお、ＣＡＤ装置２１０は、オフライン教示装置２０に搭載されていてもよい。
【００２０】
システム構築部２０１は、３次元モデルをインポートする際、画面構成要素データ２１１をメモリ等に保存する。画面構成要素データ２１１は、図５に示す各フィールドで構成されている。すなわち、各構成要素には、３次元モデルの名称２１１ａ、３次元モデルが配置されている座標２１１ｂ、３次元モデルの形状に関する情報２１１ｃ、３次元モデルの参照先ＣＡＤ２１１ｄ、形状補正実施フラグ２１１ｅがそれぞれ対応付けられている。
【００２１】
ここで、ＣＡＤ装置２１０に３次元モデルが存在せず、ユーザが作成した３次元モデルをインポートした場合は、参照先ＣＡＤ２１１ｄのフィールドには何も記述されない。また、形状補正実施フラグ２１１ｅは、実機との形状の差異が発生しているおそれがあるか否かを示すフラグであり、モデル形状の信頼度を示す属性情報に相当する。形状補正実施フラグ２１１ｅのフィールドには、例えば、ＣＡＤ装置２１０に３次元モデルが存在せず、ユーザが簡易形状モデルを作成してインポートした構成物は、実機ロボットシステムとの形状差異が発生しているおそれがあることを示すフラグが記述される。この形状補正実施フラグ２１１ｅは、後述する経路補正処理において、経路補正が必要であるか否かの判断に用いる。
図３に戻って、ステップＳ２では、オフライン教示装置２０は、上記のステップＳ１で仮想ロボットシステムを構築した後、ロボットの教示点や当該教示点間を直線補間して得られるロボットの移動経路を作成する。ここでは、作業タクトが短くなり、且つロボットの経路が周辺機器と干渉しないように教示点やロボットの経路を作成する。
【００２２】
次にステップＳ３では、上記のステップＳ２で作成した教示点及び経路をもとに仮想空間上でシミュレーションを行う。
図６は、シミュレーション結果によって得られたロボット経路の一例を図示したものである。点４０１は教示点であり、ロボット経路４０２は教示点ａ→ｂ→ｃ→ｄ→ｅ→ｆの順に、各教示点を結んだ線である。このように、教示点４０１及びロボット経路４０２は、周辺機器３０１と干渉しないように作成される。
なお、図３において、ステップＳ１の処理は上述したようにシステム構築部２０１が実行する処理であり、ステップＳ２の処理はロボット経路作成部２０２が実行する処理であり、ステップＳ３の処理は動作確認部２０３が実行する処理である。
【００２３】
（経路補正処理）
次に、オフライン教示装置２０が実行する経路補正処理について具体的に説明する。
図７は、経路補正処理手順を示すフローチャートである。この経路補正処理は、上述した事前検討処理で作成されたロボット経路を必要に応じて補正するための処理であり、当該事前検討処理を実行した後、実機ロボットシステムが構築されてから実行する。
先ずステップＳ１１で、オフライン教示装置２０は、センサ部１１により実機ロボットシステムの構成要素を計測する。ここで、計測対象となる構成要素は、仮想ロボットシステムを構築する際に作成された画面構成要素データ２１１をもとに決定する。
【００２４】
はじめに、図５に示す画面構成要素データ２１１の形状補正実施フラグ２１１ｅのフィールドを参照し、実機ロボットシステムとの形状差異が発生するおそれのある構成要素を判別する。次に、図５に示す画面構成要素データ２１１の配置２１１ｂのフィールドを参照し、上記形状差異が発生するおそれのある構成要素の仮想空間上における配置位置を取得する。これにより、実機ロボットシステムでセンサ計測する構成要素が決定される。
【００２５】
構成要素をセンサ部１１で計測する場合、計測対象の構成要素を複数方向から３次元モデルの作成が可能となるだけ計測する。計測する方向は、例えば、図８に示すように、Ｘ方向（構成物３１０の幅方向）、Ｙ方向（構成物３１０の奥行き方向）、Ｚ方向（構成物３１０の高さ方向）のいずれかから、当該構成要素の形状２１１ｃのフィールド情報をもとに決定する。
このように、計測対象となる構成要素が決定したら、オフライン教示装置２０は、外部ＩＦ部２０７を介してセンサ部１１に対して計測指令を出力し、センサ部１１による計測結果を取得する。そして、取得した計測結果をもとに、構成要素の３次元モデル（実測３次元モデル）を作成し、ステップＳ１２に移行する。
【００２６】
ステップＳ１２で、オフライン教示装置２０は、ステップＳ１１で作成した実測３次元モデルと、この実測３次元モデルに対応する仮想空間上の既存の３次元モデルとを比較する。既存３次元モデルが、図９（ａ）の３次元モデル３０１のように、実際の構成要素と外径寸法を等しくした簡易形状モデルである場合、実測３次元モデルは、図９（ｂ）〜（ｄ）の３次元モデル３１１〜３１３のように、既存３次元モデル３０１と外径寸法はほぼ等しいが、既存３次元モデル３０１とは形状が異なる場合がある。
そこで、例えば図１０（ａ）及び（ｂ）に示すように、既存３次元モデル３０１と実測３次元モデル３１１とを、それぞれボクセルで表現し、両者の形状を比較する。この場合、ボクセル化した形状のフーリエスペクトルを抽出する方法等を用いて既存３次元モデル３０１と実測３次元モデル３１１との形状の差異を確認する。
【００２７】
次にステップＳ１３で、オフライン教示装置２０は、ステップＳ１２で形状の差異があると判定された構成要素の情報をもとに、当該形状の差異が事前検討処理で作成したロボット経路に影響を与えるか否かを判定する。ここでは、形状の差異により、事前検討処理で作成したロボット経路をより作業タクトの短い最短経路へ補正できる場合に、形状の差異がロボット経路に影響を与えると判断する。また、事前検討処理で作成したロボット経路では実機の構成要素との間で干渉が生じるため、当該ロボット経路を、干渉を回避する経路へ補正する必要がある場合にも、形状の差異がロボット経路に影響を与えると判断する。
【００２８】
先ず、最短経路への補正が可能か否かを判断する方法について説明する。
この場合、図１１に示すように、ロボット１０と実機の構成物の３次元モデル３１０とをＸ方向両側から俯瞰する。そして、このときの既存３次元モデルのロボット１０と正対する面の高さ方向（Ｚ方向）のサイズと、実測３次元モデルのロボット１０と正対する面の高さ方向（Ｚ方向）のサイズと、ロボット１０のエンドエフェクタ１３の高さ方向（Ｚ方向）及び奥行き方向（Ｙ方向）のサイズとに着目する。
例えば、実測３次元モデルが図９（ｂ）に示す３次元モデル３１１であった場合、図１２に示すように、既存３次元モデル３０１についてはサイズＨ１に着目する。また、実測３次元モデル３１１については、サイズＨ２及びＨ３に着目する。
【００２９】
また、実測３次元モデルが図９（ｃ）に示す３次元モデル３１２であった場合には、図１３に示すように、既存３次元モデル３０１については図１２と同様にサイズＨ１に着目する。また、実測３次元モデル３１２については、サイズＨ４に着目する。
同様に、実測３次元モデルが図９（ｄ）に示す３次元モデル３１３であった場合には、図１４に示すように、既存３次元モデル３０１についてはサイズＨ１に着目する。また、実測３次元モデル３１３については、サイズＨ５（＝Ｈ１）に着目する。
【００３０】
そして、上記の着目サイズをもとに、既存３次元モデルと実測３次元モデルとの形状の差異が、事前検討処理で作成したロボット経路に影響を与えるか否かを判断する。
本実施形態では、ロボット１０のエンドエフェクタ１３が、図１５に示すように、高さＨ、幅Ｗ、奥行きＤの形状を有する場合、既存３次元モデルのロボット１０と正対する面における高さ方向のサイズから、実測３次元モデルのロボット１０と正対する面における高さ方向のサイズの合計を差し引いた値が、エンドエフェクタ１３の高さＨまたは幅Ｗのサイズよりも大きいとき、ロボット経路に影響を与えると判断する。
例えば図１２に示す例の場合、Ｈ１−（Ｈ２＋Ｈ３）＞Ｈ、またはＨ１−（Ｈ２＋Ｈ３）＞Ｄのとき、図１６に示すように、ロボット１０のエンドエフェクタ１３が既存３次元モデル３０１との差異部である繰り抜き部分を通過できる可能性がある。そのため、最短経路が新たに見つかる可能性があると判断し、この場合には、既存のロボット経路に影響があると判断する。
【００３１】
また、例えば図１３に示す例の場合にも、Ｈ１−Ｈ４＞Ｈ、またはＨ１−Ｈ４＞Ｄのとき、図１７に示すように、ロボット１０のエンドエフェクタ１３が既存３次元モデル３０１との差異部である繰り抜き部分を通過できる可能性がある。したがって、この場合にも、既存のロボット経路に影響がある（最短経路に補正することができる）と判断する。
これに対して、例えば図１４に示す例の場合には、Ｈ１−Ｈ５＝０であり、上記の条件を満足することはないため、既存のロボット経路には影響がない（最短経路に補正することはできない）と判断する。
以上により、最短経路への補正が可能か否かを判断することができる。この判断は、図１１のＸ方向両側について行う。
【００３２】
次に、干渉回避経路への補正が必要か否かを判断する方法について説明する。
図１８は、事前検討処理で作成されたロボット経路の一例を示す図である。このロボット経路４０３は、仮想空間上の既存３次元モデル３０１の近傍を、ロボット１０が教示点ａ→ｂ→ｃ→ｄ→ｅ→ｆと通過する経路である。
干渉回避経路への補正が必要か否かは、図１９に示すように、図１８における既存３次元モデル３０１を、実測３次元モデル３１４に入れ替え、既存ロボット経路４０３と実測３次元モデル３１４との位置関係をもとに判断する。
【００３３】
図１９に示す例の場合、形状の差異により、教示点ｂ→ｃ→ｄを通過する経路で干渉が発生することがわかる。すなわち、教示点ｂ→ｃ→ｄを通過する経路は、干渉回避経路への補正が必要な経路である。
このように、干渉回避経路への補正が可能か否かを判断することができる。
そして、オフライン教示装置２０は、図７のステップＳ１３で形状差異が既存ロボット経路に影響を与えると判断した場合には、ロボット経路を補正すると判断してステップＳ１４に移行し、既存ロボット経路に影響を与えないと判断した場合には、ロボット経路を補正しないと判断して後述するステップＳ１６に移行する。
ステップＳ１４では、オフライン教示装置２０は、ロボット経路を補正する。ここでは、オフライン教示装置２０は、事前検討処理で作成したロボット経路を、補正が必要な経路だけ部分的に補正する。
【００３４】
先ず、最短経路への補正方法について説明する。
図２０は、事前検討処理で作成されたロボット経路の一例を示す図である。ロボット経路４０３は、仮想空間上の既存３次元モデル３０１の近傍を、ロボット１０が教示点ａ→ｂ→ｃ→ｄ→ｅ→ｆと通過する経路である。また、ロボット経路４０４は、仮想空間上の既存３次元モデル３０１の近傍を、ロボット１０が教示点ｘ→ｙ→ｚと通過する経路である。
最短経路を探索する際には、先ず、図２１に示すように、図２０における既存３次元モデル３０１を実測３次元モデル３１１と入れ替える。
【００３５】
次に、実測３次元モデル３１１から一定距離にある近傍領域５０１を設定し、近傍領域５０１内にある教示点をサーチする。図２１に示す例では、教示点ｂ、ｃ、ｄ、ｅ及びｙがこれにあたる。なお、ここでは、近傍領域５０１を直方体状の空間としているが、近傍領域５０１は実測３次元モデルの近傍の領域を規定できればよく、例えば球体状等であってもよい。
さらに、近傍領域５０１外から、近傍領域５０１内の教示点に向かう経路（すなわち、近傍領域５０１外から近傍領域５０１内に入ってくる経路）をサーチする。図２１に示す例では、ａ→ｂの経路４１１と、ｘ→ｙの経路４１２がこれにあたる。
同様に、近傍領域５０１内から近傍領域５０１外に向かう経路をサーチする。図２１に示す例では、ｅ→ｆの経路４１３と、ｙ→ｚの経路４１４がこれにあたる。
【００３６】
次に、近傍領域５０１外から近傍領域５０１内に入ってくる経路（図２１では経路４１１と経路４１２）の終点と、近傍領域５０１内から近傍領域５０１外へ出る経路（図２１では経路４１３と経路４１４）の始点が同一座標でない教示点をサーチする。図２１に示す例では、教示点ｂと教示点ｅとがこれにあたる。
なお、図２１において、教示点ｘ→ｙ→ｚの経路は、教示点ｙが始点と終点の両方の要素を持ち、一瞬、エンドエフェクタ１３が近傍領域５０１内に進入するだけで、３次元モデル３１１の繰り抜き部分をエンドエフェクタが通過することと無関係であることが判断できる。
したがって、教示点ｂを始点、教示点ｅを終点として、最短経路探索をすればよいことが分かる。
【００３７】
最短経路探索には、例えば探索木法を用いる。
図２２は、グラフ探索法による経路探索方法を説明するための図である。
この図２２に示すように、空間６００内において、出発点６０１から目標点６０２までの最短経路を探索する場合について考える。ここで、空間６００内には、障害物、即ち通過することができない領域６０３が存在するものとする。なお、ここでは説明のために２次元空間で表現しているが、３次元空間でも同様である。
【００３８】
先ず、図２２に示すように、空間６００をメッシュ化する。
次に、図２３に示すように、出発点６０１と目標点６０２とから、それぞれ隣接するメッシュに向かって進むことを考える。このとき、隣接するメッシュに障害物６０３が存在する場合には進まないようにする。例えば、図２３の出発点６０１の場合、Ａ〜Ｈの８方向のうち、ＣとＤの方向には障害物６０３が存在するため、進まないようにする。一方、目標点６０２からは、隣接するメッシュ内にはいずれも障害物６０３が存在しないため、Ａ〜Ｈの全方向に進むことができる。
【００３９】
そして、図２４に示すように、進んだ先のメッシュ（例えば、メッシュ６０４や６０５）でも同様に障害物の存在しない隣接メッシュに進むようにする。これを出発点６０１と目標点６０２の双方で繰り返し、最も早く双方から進んで同じメッシュに入った経路が求める最短経路である。この例では、図２５に示すように、経路６１０が最短経路となる。
図２１における教示点ｂを始点、教示点ｅを終点として、上記の方法により探索した最短経路は、図２６の経路４１５のようになる。このようにして、既存ロボット経路を最短経路へ補正することができる。
【００４０】
このように、経路探索アルゴリズムに上記の方法を用いるので、近傍領域５０１を広くとれば、長い距離の経路補正が可能となり補正経路を滑らかにすることができる。しかしながら、この場合、処理の時間が長くなることは容易に類推することができるので、処理時間を優先するか、経路の滑らかさを優先するかに応じて近傍領域５０１を設定してもよい。
なお、ここではグラフ探索法を用いて最短経路を求める場合について説明したが、他のアルゴリズム（ＲＲＴやＰＲＭ等のサンプリングベース探索法等）を用いてもよい。
【００４１】
次に、干渉回避経路への補正方法について説明する。
先ず、干渉回避経路の始点と終点とをサーチする。上述した図１９に示す例の場合、教示点ｂ→ｃ→ｄを通過する経路が、干渉回避経路への補正が必要な経路である。したがって、この場合、教示点ｂを始点、教示点ｄを終点として干渉回避経路の探索を行う。
干渉回避の経路探索は、上記の最短経路探索と同じ方法で行う。
これにより、図２７に示すように、教示点ｂを出発点、教示点ｄを目標点とし、実測３次元モデル３１４との干渉が回避された補正経路４１６が求められる。この補正経路４１６は、例えば、経路探索で新たに設定された教示点ｇ及びｈを通過する。
以上のように、最短経路を通過、または干渉を回避するよう経路を補正した後は、オフライン教示装置２０は、図７のステップＳ１５に移行して、仮想ロボットシステムを更新する。すなわち、オフライン教示装置２０は、仮想空間上の３次元モデルを、実測３次元モデルに交換して仮想空間上のロボットシステムを更新する。
【００４２】
次に、ステップＳ１６では、オフライン教示装置２０は、補正後のロボット経路データを実機ロボットシステムに転送する。これにより、実機ロボットシステムによる動作確認が行われる。
以上のように、本実施形態では、事前検討のために仮想空間上の仮想ロボットシステムで教示されたロボットの移動経路を、仮想ロボットシステムを構成する仮想３次元モデルの形状誤差に応じて補正する。
仮想ロボットシステムと実機ロボットシステムとで、ロボットシステムの構成物の形状に差異がある場合、仮想ロボットシステム上で作成した動作プログラムでそのままロボットを動作させると、実機ロボットシステムにおいてロボットと周辺機器との干渉が発生したり、所望の作業タクトを実現することができなかったりする場合がある。
【００４３】
そのため、従来のオフライン教示装置では、作成した動作プログラムを実機ロボットシステムに転送し、実機ロボットシステムにて調整作業を行い、動作プログラムの修正を行う。更に、実機ロボットシステムにて修正された動作プログラムをオフライン教示装置に戻すと、オフライン教示装置上でのシミュレーションでロボットと周辺機器とで干渉等が発生してしまうため、実機ロボットシステムと同じになるように仮想空間上のロボットシステムを再構築して再教示作業を行う。
【００４４】
これに対して、本実施形態では、仮想３次元モデルの形状誤差が発生している場合には、仮想ロボットシステム上で作成した動作プログラムを自動的に補正してから実機ロボットシステムに転送する。したがって、実機ロボットシステムを用いた現場調整や再教示作業の必要がない。このように、仮想空間上と実機ロボットシステムとで構成物の形状差異が発生している場合であっても、適切なオフライン教示が可能となる。
また、３次元モデルの形状差異が、事前検討処理で作成したロボット経路に影響を与えるか否か、即ち当該ロボット経路の補正の必要性があるか否かを判定し、補正の必要性があると判定した場合にロボット経路を補正する。したがって、効率良く補正処理を実施することができる。
【００４５】
さらに、仮想３次元モデルの形状誤差が発生しているか否かは、視覚センサや距離センサ等により実機ロボットシステムの構成物の形状を計測することで判断する。具体的には、上記センサによる計測結果に基づいて構成物の実測３次元モデルを作成し、作成した実測３次元モデルと仮想３次元モデルとを比較し、仮想３次元モデルの形状誤差を算出する。このように、実測結果をもとに形状差異を判断するので、仮想ロボットシステムと実機ロボットシステムとで、ロボットシステムの構成物の形状に差異があることを確実に把握することができる。
【００４６】
また、このとき、形状誤差が発生している可能性があると判別した仮想３次元モデルに対応する実機ロボットシステム上の構成物についてのみ、上記センサによる形状計測を行う。ここで、形状誤差が発生している可能性があるか否かは、例えば、仮想３次元モデルが、ユーザが作成した簡易形状モデルであるか否かに応じて判別する。
ロボットに関しては、ロボットメーカーが用意している３次元データを使用することができるが、ロボットの周辺機器に関しては、治工具等の一品物が多く、２次元図面は存在するが３次元モデルが用意されていない場合が多い。特に、周辺機器は生産現場にて調達するため、３次元ＣＡＤ装置で設計をしていない生産現場の作業者にとって、３次元モデルを新たに作成することは非常に手間のかかる作業である。そのため、周辺機器に関しては、３次元モデルとして外形寸法をほぼ同じにした簡易形状モデルを作成し、代用することが多い。このように、仮想ロボットシステムを構成する仮想３次元モデルには、モデル形状の信頼度が異なるデータが混在する。
【００４７】
本実施形態では、仮想ロボットシステムを構築する際に、各仮想３次元モデルに、当該モデルが、メーカー等が用意した信頼度の高いデータであるのか、ユーザが簡易に作成した信頼度の低いデータであるのかを示す属性情報（形状補正実施フラグ２１１ｅ）を付加する。そして、その属性情報を参照して、形状誤差が発生している可能性がある仮想３次元モデルを判別する。したがって、比較的容易且つ適切に、上記センサによる形状計測が必要な構成物を判別することができる。
【００４８】
また、実測３次元モデルと仮想３次元モデルとの比較に際し、両者をボクセルデータで表現し、形状の差異を判断する。したがって、適切に形状比較を行うことができる。
さらに、３次元モデルの形状差異が、事前検討処理で作成したロボット経路に影響を与えるか否か、即ち当該ロボット経路の補正の必要性があるか否かは、上記ロボット経路が最短移動経路へ補正可能であるか否か、若しくは、上記ロボット経路が、干渉が発生する経路であるか否かに応じて判定する。
【００４９】
事前検討処理では、仮想ロボットシステム上でロボットと周辺機器との干渉が発生せず、作業タクトが最短となるようなオフライン教示を行い、動作プログラムを作成する。ところが、仮想３次元モデルの形状と実機の構成物の形状とに差異がある場合、作業点までの最短経路が変更される（より最短な経路が見つかる）場合がある。本実施形態では、３次元モデルの形状差異により、ロボット経路を最短移動経路へ補正可能であると判定すると、当該ロボット経路を最短移動経路へ補正することができる。これにより、作業点までの最短経路を適切に教示することができ、作業タクト時間の更なる短縮が図れる。
【００５０】
また、このとき、仮想３次元モデルの形状と、実測３次元モデルの形状と、ロボットのエンドエフェクタの３次元モデルの形状とに基づいて、ロボット経路が最短移動経路へ補正可能であるか否かを判定する。具体的には、仮想３次元モデルのロボットに正対する面を構成する高さ方向の辺の長さから、実測３次元モデルのロボットに正対する面を構成する高さ方向の辺の長さを差し引いた長さが、エンドエフェクタの３次元モデルの上記高さ方向に相当する長さよりも長いとき、ロボット経路が最短移動経路へ補正可能であると判定する。したがって、実機ロボットシステムの構成物に繰り抜き部分があり、その大きさが、エンドエフェクタが通過可能な大きさである場合には、当該繰り抜き部分をエンドエフェクタが通過する経路が最短移動経路となると判断して、ロボット経路を補正することができる。
【００５１】
さらに、本実施形態では、３次元モデルの形状差異により、ロボット経路が、実機ロボットシステムにおいて干渉が発生する経路であると判定すると、当該ロボット経路を干渉回避経路へ補正することができる。したがって、動作プログラムを実機ロボットシステムへ転送した後の調整作業をなくすことができる。
このとき、実測３次元モデルの形状と、ロボット経路とに基づいて、ロボット経路が、干渉が発生する経路であるか否かを判定する。このように、実測３次元モデルとロボット経路との位置関係から、容易に干渉が発生するか否かを判定することができる。
また、最短移動経路や干渉回避経路へ補正する場合、事前検討処理で作成したロボット経路のうち、仮想３次元モデル近傍の補正が必要である移動経路のみを部分的に補正する。したがって、補正処理時間を短縮することができる。
【００５２】
最短移動経路へ補正する場合には、仮想空間上で、仮想３次元モデルを実測３次元モデルと入れ替え、当該実測３次元モデルから所定距離にある近傍領域を設定する。そして、近傍領域内に存在する教示点の中から、部分的に補正する移動経路の開始点と終了点とを選択し、選択した教示点間を結ぶ最短移動経路を探索する。このとき、近傍領域外の教示点から近傍領域内の教示点に向かう移動経路の終点となる教示点を開始点として選択し、近傍領域内の教示点から近傍領域外の教示点に向かう移動経路の始点となる教示点を終了点として選択する。
上記のように部分的に補正する移動経路の開始点と終了点とを選択し、経路探索を実施するので、３次元モデルの繰り抜き部分をエンドエフェクタが通過するような経路を探索することが可能となる。したがって、事前検討処理で作成したロボット経路よりも最短で作業点まで移動する経路を探索することができる。
【００５３】
また、干渉回避経路へ補正する場合には、干渉が発生している移動経路の始点となる教示点と終点となる教示点とを、それぞれ部分的に補正する移動経路の開始点と終了点として選択し、選択した教示点間を結ぶ干渉回避経路を探索する。したがって、実機ロボットシステムにおいて干渉が発生しないロボット経路を適切に教示することができる。
このように、事前検討のために仮想空間上で構成要素の３次元モデルを用いて構築されたロボットシステムモデルで教示されたロボット経路を、実機ロボットシステム構築後に計測した構成要素の３次元モデルの形状に応じて、ロボットに最短経路を通過させたり、ロボットに干渉を回避する経路を通過させたりするよう、補正が必要な部分だけ自動的に補正することができる。したがって、仮想ロボットシステムの構成物と実機ロボットシステムの構成物との形状の差異が発生している場合でも、適切なオフライン教示データを作成することができると共に、再教示の手間や時間を省くことができる。
【００５４】
（変形例）
上記実施形態においては、センサ部１１でロボット１０の周辺構成物の形状を計測する場合について説明したが、センサ部１１でロボット１０のエンドエフェクタ１３の形状を計測してもよい。この場合、既存３次元モデルと実測３次元モデルとの形状の差異が、事前検討処理で作成したロボット経路に影響を与えるか否かを判断する際に用いる、エンドエフェクタ１３の高さＨまたは幅Ｗの値として、実測値を用いることができる。したがって、より高精度な判断が可能となる。
【００５５】
また、上記実施形態においては、センサ部１１により実機ロボットシステム上の構成物の形状を計測し、その計測結果に基づいて作成した実測３次元モデルと既存３次元モデルとを比較することでモデル形状の差異を確認する場合について説明したが、これに限定されるものではない。例えば、既存３次元モデルの形状誤差（対応する実機ロボットシステムの構成物との形状の差異）に関する情報を外部からユーザ等により直接入力してもよい。この場合、図７のステップＳ１１及びＳ１２の処理が不要となる。
【００５６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５７】
１０…ロボット、１１…センサ部、１２…位置姿勢変更機構、１３…ハンド、２０…オフライン教示装置、２０１…システム構築部、２０２…ロボット経路作成部、２０３…動作確認部、２０４…計測・モデル作成部、２０５…形状差異判定部、２０６…経路補正部、２０７…外部ＩＦ部、２０８…入出力制御部
【図１】
0006497953.tif 000002
【図２】
0006497953.tif 000003
【図３】
0006497953.tif 000004
【図４】
0006497953.tif 000005
【図５】
0006497953.tif 000006
【図６】
0006497953.tif 000007
【図７】
0006497953.tif 000008
【図８】
0006497953.tif 000009
【図９】
0006497953.tif 000010
【図１０】
0006497953.tif 000011
【図１１】
0006497953.tif 000012
【図１２】
0006497953.tif 000013
【図１３】
0006497953.tif 000014
【図１４】
0006497953.tif 000015
【図１５】
0006497953.tif 000016
【図１６】
0006497953.tif 000017
【図１７】
0006497953.tif 000018
【図１８】
0006497953.tif 000019
【図１９】
0006497953.tif 000020
【図２０】
0006497953.tif 000021
【図２１】
0006497953.tif 000022
【図２２】
0006497953.tif 000023
【図２３】
0006497953.tif 000024
【図２４】
0006497953.tif 000025
【図２５】
0006497953.tif 000026
【図２６】
0006497953.tif 000027
【図２７】
0006497953.tif 000028