(57)【要約】【課題】停止位置から作業原点位置までロボットを復帰させるに際し、システムの負荷を増大させることなく、簡易な方法で原点復帰を行うことができるロボットの原点復帰方法を提供する【解決手段】ロボットの動作に干渉する干渉エリア１０ｂとロボットが動作する動作エリア１０ａとを含むマトリックス状のエリアマップ１０に、マス毎にロボットの復帰方向を設定しておき、設定された復帰方向に基づいて停止位置からの復帰経路を設定して、かかる復帰経路に基づいてロボットを移動させ、最終的に原点復帰させる。ロボットの復帰方向が設定されていれば（Ｓ３３）、現在のロボット位置がどこであっても、ロボットを原点復帰することができる。【選択図】図３
2009090383.tif 000002
【特許請求の範囲】
【請求項１】
制御プログラムを順次実行することにより一連の動作を行うロボットを、所望の経路で停止位置から作業原点位置に復帰させるロボットの原点復帰方法であって、
ロボットが動作する動作エリアを少なくとも含むエリアマップを、所定の領域を持つエリアブロックごとに区画するエリアブロック作成工程と、
区画されたエリアブロックごとにロボットの復帰方向を設定する方向設定工程と、
を備えることを特徴とするロボットの原点復帰方法。
【請求項２】
前記方向設定工程で設定されたロボットの復帰方向を、前記エリアブロック作成工程で区画されたエリアブロックごとに記憶する復帰方向記憶工程を有し、
ロボットの停止位置情報を取得する停止位置取得工程と、
ロボットの停止位置からの復帰経路を、前記復帰方向記憶工程で記憶された復帰方向に従って設定する復帰経路設定工程と、
前記復帰経路設定工程で設定された復帰経路に基づいてロボットを移動させる復帰工程と、
を備えることを特徴とする請求項１記載のロボットの原点復帰方法。
【請求項３】
前記エリアマップは、ロボットの動作に干渉する干渉エリアが含まれていることを特徴とする請求項１又は２記載のロボットの原点復帰方法。
【請求項４】
前記復帰方向記憶工程によって記憶される情報は、エリアブロック番号及びロボットの復帰方向を示す値が格納された情報配列表であることを特徴とする請求項１から３のいずれか記載のロボットの原点復帰方法。
【請求項５】
前記停止位置取得工程は、ロボットが保有するエンコーダにより停止位置情報を取得することを特徴とする請求項１から４のいずれか記憶のロボットの原点復帰方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラムによって一連の動作を行うロボットを、停止位置から作業原点位置まで復帰させるロボットの原点復帰方法に関する。
【背景技術】
【０００２】
半導体ウェハや半導体ウェハを収容したカセットなどの搬送対象物を搬送するのに、制御プログラムによって一連の動作を行うように制御されたロボットが用いられる。このようなロボットは、作業原点位置から運転が開始され、予め定められた（教示された）経路を移動しつつ作業を行い、再び作業原点位置に戻ってくるという一連の動作を行うものである。
【０００３】
ここで、一連の動作を行っている最中に何らかの要因でロボットの運転が停止する場合があり、再びロボットを運転する際には、ロボットの干渉を防止すべく、ロボットを作業原点位置まで復帰させる必要がある。
【０００４】
例えば、特許文献１に示されたロボットの原点復帰制御方法は、既に実行された制御プログラムを順次逆実行することにより、通常動作時の経路を遡行して作業原点位置まで復帰させるものである。また、移動コマンドをスキップして逆実行することにより、復帰の際の経路を短絡するものである。
【０００５】
また、特許文献２及び３に示された方法も特許文献１と同様に、ロボットを逆動作させるプログラムを自動生成したり（特許文献２）、予め設定されている基本移動プログラムに従ってロボットを原点復帰させる場合の軌道をシミュレーションの結果によって変更したり（特許文献３）、通常の運転順序と逆の運転順序で自動復帰する原点復帰プログラムを作成したりして（特許文献４）、原点復帰させるものである。
【０００６】
【特許文献１】特開平７−２８５２０号公報（図５、図１３）
【特許文献２】特開平７−２９９７７７号公報（明細書００４１、図５）
【特許文献３】特開平１０−９７３０５号公報（明細書０００６）
【特許文献４】特開２０００−６１８７０（明細書０００７）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、従来のロボットの原点復帰方法は、制御プログラムが有する通常運転時のロボットの経路によって、作業原点位置から停止位置までの経路が制御プログラムの規定内にあることを前提として、ロボットの辿ってきた経路とは逆の経路をとるプログラムによって原点復帰させるものである。そのため、作業原点位置から停止位置までの想定された経路内を逆に辿るか一部を省略するかしかできない。
【０００８】
換言すれば、ロボットが異常停止した位置が既定された制御プログラムの範囲内にあったり、異常停止した際に記憶しているロボット位置と現在のロボット位置とが異なっていなかったりと、ロボットコントローラが記憶している位置より離れていないと判定した場合は（図１０のＳ９１）、ロボットの辿ってきた経路とは逆の経路をとるプログラムによって原点復帰することが可能であるが（図１０のＳ９２）、人為的にロボットを動かすなどして、ロボットの現在位置が規定された制御プログラムの範囲外であったり、異常停止した際に記憶しているロボット位置とロボットの現在位置とが異なっていたりと、記憶している位置より離れていると判定した場合は、もはや、ロボットの辿ってきた経路とは逆の経路をとるプログラムによっては原点復帰することが不可能であることから、異常Ｃｏｄｅを出力して原点復帰を行わず（図１０のＳ９３）、オペレータの手動操作により原点復帰せざるを得ない。この場合、オペレータの手動操作による原点復帰には、高度の技術や長時間を要する。
【０００９】
また、制御プログラムの再起動によって異常停止した際にロボット位置の記憶を喪失したり、人為的又はティーチングペンダント等によりロボットを動かしてロボット位置がずれてしまったり、ロボットのコントローラを交換してロボットが辿ってきた位置変数データを喪失したりした場合にも、上述したのと同様に従来の方法によっては原点復帰することが不可能である。
【００１０】
また、従来の方法が採用するプログラムによる原点復帰は、ロボットの辿ってきた軌道データ（通過位置情報と方向情報等）を逐一記憶する必要があり、メモリ容量やシステム負荷の増大という問題がある。特に、他の冶具等との衝突によるロボットの干渉を抑制するためには、細かな軌道データの取得が必要となったり、精度の高いシミュレーションが必要となったり、干渉物の位置が複雑になると原点復帰プログラムも複雑になったりすることから、干渉の抑制とシステム負荷の増大とは表裏一体の関係にある。
【００１１】
本発明は、このような点に鑑みてなされたものであり、その目的は、停止位置から作業原点位置までロボットを復帰させるに際し、システムの負荷を増大させることなく、簡易な方法で原点復帰を行うことができるロボットの原点復帰方法を提供することにある。
【課題を解決するための手段】
【００１２】
以上のような課題を解決するために、本発明は、ロボットの動作に干渉する干渉エリアとロボットが動作する動作エリアとを含むマトリックス状のエリアマップに、マス毎にロボットの復帰方向を設定しておき、設定された復帰方向に基づいて停止位置からの復帰経路を設定して、かかる復帰経路に基づいてロボットを移動させ、最終的に原点復帰させることを特徴とする。
【００１３】
より具体的には、本発明は、以下のものを提供する。
【００１４】
（１）  制御プログラムを順次実行することにより一連の動作を行うロボットを、所望の経路で停止位置から作業原点位置に復帰させるロボットの原点復帰方法であって、ロボットが動作する動作エリアを少なくとも含むエリアマップを、所定の領域を持つエリアブロックごとに区画するエリアブロック作成工程と、区画されたエリアブロックごとにロボットの復帰方向を設定する方向設定工程と、を備えることを特徴とするロボットの原点復帰方法。
【００１５】
本発明によれば、エリアブロック作成工程において、ある空間におけるエリアマップをエリアブロックごとに区画し、方向設定工程において、エリアブロックごとにロボットの復帰方向を設定することとしたので、ロボットの停止位置に対応するエリアブロックが特定されれば、設定された復帰方向に基づいてロボットの復帰が可能なツールを提供することができる。
【００１６】
エリアブロックごとの区画は任意の領域をもって行うことができ、各領域の大きさは同じであっても異なっていてもよい。例えば、ロボットを移動させる際に、注意を要するエリアについては領域を細かくし、注意を要さないエリアについては領域を大まかにするなど、アプリケーションによって自由に設定することができる。また、ロボットの復帰方向は、上（↑）、下（↓）、右（→）、左（←）の４方向の他、これらに加えて左上、左下、右上、右下の８方向や、これら以外の１６方向等とすることもでき、さらには、各エリアブロックごとに設定できる方向数が異なっていてもよい。例えば、ロボットの移動に注意を要するエリアについてはより細やかなロボットの動作を可能とすべき８方向の設定を可能にし、注意を要さないエリアについては大まかなロボットの動作で足りる４方向の設定にするなどである。なお、区画したエリアブロックの一部を一まとめにしてエリアブロック群（領域群）を形成することも本発明に含まれる。
【００１７】
「所定の領域」とは、二次元空間における面積（大きさ）を、三次元空間における範囲を意味し、原点復帰するための「ロボットの復帰方向」は、二次元空間における二次元ベクトル又は三次元空間における三次元ベクトルによって設定される。例えば、平面搬送を目的としたガラス搬送ロボットや半導体搬送ロボットにあっては二次元空間、垂直多関節ロボットにあっては三次元空間とすることができる。
【００１８】
このように、複雑な原点復帰プログラムの作成を行うことなく、エリアブロックの区画化と復帰方向の設定という簡易かつ直感的・視覚的作業によって、複雑な復帰経路の設定が可能である。
【００１９】
（２）  前記方向設定工程で設定されたロボットの復帰方向を、前記エリアブロック作成工程で区画されたエリアブロックごとに記憶する復帰方向記憶工程を有し、ロボットの停止位置情報を取得する停止位置取得工程と、ロボットの停止位置からの復帰経路を、前記復帰方向記憶工程に記憶された復帰情報に従って設定する復帰経路設定工程と、前記復帰経路設定工程で設定された復帰経路に基づいてロボットを移動させる復帰工程と、を備えることを特徴とするロボットの原点復帰方法。
【００２０】
本発明によれば、停止位置取得工程によって、ロボットの停止位置座標を認識してロボットの停止位置情報として取得すると、復帰経路設定工程によって、停止位置からの復帰経路を復帰方向に従って設定し、かかる復帰方向に基づいてロボットを移動させることとしたので、予め設定されたエリアブロックごとの復帰方向とロボットの停止位置情報とにより、ロボットの原点復帰が可能なツールを提供することができる。
【００２１】
すなわち、停止位置に至るまでにロボットの辿ってきた軌道データを必要とせず、現在のロボットの停止位置を取得することができれば復帰経路の設定が可能であることから、軌道データの取得に要するシステムの負荷を増大させることなく、原点復帰を行うことができる。また、停止位置に至るまでにロボットの辿ってきた軌道データの範囲外にロボットが停止している場合、従来はプログラムの想定外であることを理由に復帰経路の設定が不可能であったが、本発明によれば、現在のロボットの停止位置を取得することができれば復帰経路の設定が可能である。
【００２２】
（３）  前記エリアマップは、ロボットの動作に干渉する干渉エリアが含まれていることを特徴とするロボットの原点復帰方法。
【００２３】
本発明によれば、ロボットの動作に干渉する干渉エリアがエリアマップに含まれていて、動作エリアと干渉エリアとが混在する空間において復帰経路を設定する場合であっても、システムの負荷を増大させることがない。
【００２４】
すなわち、ロボットが異常停止した際に要求される原点復帰においては、干渉エリアに注意を払って条件不足がないように復帰経路を作成する必要があり、従来は、ロボットの停止位置から作業原点位置に至るまでに干渉がおきないように、個々に復帰経路を作成したり、個々のシミュレーションによって復帰経路を変更したりしていたために、システムの負荷を増大させることとなっていた。しかしながら、干渉物の位置が毎回異ならない場合には、既定の干渉物の位置を前提としてロボットの可動範囲が定まっていることから、復帰経路のプログラム作成やシミュレーションを個々に行わなくても、ロボットの可動範囲において原点復帰させるための復帰方向を設定しておけば、原点復帰が容易に可能である。
【００２５】
特に、干渉エリア周辺の動作エリアにおいては、ロボットの移動に注意を要することから、エリアブロックの区画を細かくし、干渉エリアから離れた動作エリアにおいては、ロボットの移動に注意をあまり要さないことから、エリアブロックの区画を大まかにすることで、システムの負荷を減少させ、短時間での原点復帰が可能となる。
【００２６】
（４）  前記復帰方向記憶工程によって記憶される情報は、エリアブロック番号及びロボットの復帰方向を示す値が格納された情報配列表であることを特徴とするロボットの原点復帰方法。
【００２７】
本発明によれば、ロボット座標系とは異なる復帰座標系（エリアブロックを単位とする座標系）を導入し、復帰座標系において、エリアブロックごとに対応するエリアブロック番号及びエリアブロックごとに対応するロボットの復帰方向を示す値を設定して、これらを情報配列表として格納しておくことにより、現在のロボットの停止位置を取得することができれば復帰経路の設定が可能である。
【００２８】
このように、ロボット座標系とは異なる復帰座標系を導入して、復帰座標系における復帰情報を情報配列表として格納しておくことにより、ロボットの原点復帰を原点復帰プログラム等のプログラムによって制御するのではなく、エリアブロックごとの復帰方向を情報配列表によって制御することができるので、あらゆる停止位置における原点復帰プログラムを予め想定して作成する必要がなく、簡易的に復帰方向を決定して原点復帰することができる。
【００２９】
（５）  前記停止位置取得工程は、ロボットが保有するエンコーダにより停止位置情報を検出して取得することを特徴とするロボットの原点復帰方法。
【００３０】
本発明によれば、ロボットの復帰経路の設定にあたり必要とされる停止位置を、ロボットが保有するエンコーダにより検出して、その情報を取得する。従って、ロボットの位置情報を一旦喪失した場合でも、容易にロボットの停止位置情報を取得することができ、復帰経路の設定が可能である。
【発明の効果】
【００３１】
以上説明したように、本発明によれば、停止位置に至るまでにロボットの辿ってきた軌道データを必要とせずに、予め設定されたエリアブロックごとの復帰方向とロボットの停止位置情報とによって、簡易な方法で原点復帰を行うことができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００３３】
［復帰方向の設定］
図１は、本発明の実施の形態に係るロボットの原点復帰方法において使用する復帰方向の設定について説明するための図である。
【００３４】
まず、装置のレイアウトから、ロボット２０が動作する動作エリア１０ａと、ロボット２０の動作に干渉する干渉エリア１０ｂと、を区画したエリアマップ１０を作成する（図１（ａ））。干渉エリア１０ｂは、装置のチャンバや他の機器が存在してロボットの動作が物理的に不可能な領域であり、動作エリア１０ａはそれ以外にロボットの動作が物理的に可能な領域である。装置のレイアウトは、装置設計の際に用いる装置レイアウト図（ＣＡＤ図面）等をスキャンすることによりデータとして取り込む。動作・干渉エリアは、コンピュータによる自動設定、又は、オペレータによる手動設定で行うことができる。
【００３５】
次に、ロボット２０のエリア図（図１（ｂ））と、エリアマップ１０の装置レイアウト図（図１（ａ））と、を合成して、装置レイアウト図にロボット２０のエリア図が配置された図を作成し（図１（ｃ））、表示画面に表示する。かかる処理は、スプライト回路、スクリーン回路及びパレット回路等の制御回路を含む画像データプロセッサにて行うことができ、表示画面に画像を表示させるための種々の処理を行う。
【００３６】
次に、エリアマップ１０を、所定の領域を持つエリアブロックごとに区画して、エリアブロックごとにロボットの復帰方向を設定する（図１（ｄ））。例えば、縦横に１９分割して１９×１９のエリアブロックに区画する。区画数の設定は、エリアマップ１０における干渉エリア１０ｂの割合などを考慮して自由に行うことができ、図１（ｄ）のエリアＡは一まとめにしてエリアブロック群を形成することもできる。また、復帰方向の設定は、動作エリア１０ａについて行われ、干渉エリア１０ｂに移動することがないようにロボット２０を作業原点位置Ｏに復帰させるための復帰方向を指定する。指定は、コンピュータによる自動設定、又は、オペレータによる手動設定で行うことができる。
【００３７】
作成された図１（ｃ）と図１（ｄ）の画像を合成して、エリアマップ１０とロボット２０のエリア図と復帰方向の設定図とを配置した復帰ツール画像を作成する（図１（ｅ））。
【００３８】
このようにして復帰方向の設定が行われ、復帰方向情報として記憶される。
【００３９】
すなわち、復帰方向情報は、区画されたエリアブロックごとのロボットの復帰方向がマトリックス状の情報配列表となって記憶されている（図２）。具体的には、復帰方向に関する情報が数値Ｎによって対応付けされており、０：未設定、１：→、２：↑、３：←、４：↓、５：作業原点とすると、エリアブロック番号（０，０）には復帰方向↓（Ｎ＝４）、エリアブロック（１，０）には復帰方向→（Ｎ＝１）、というようにエリアブロックごとに対応する座標とロボットの復帰方向を示す値が格納される。記憶された復帰情報は、復帰の際にロボットコントローラにダウンロードされる。
【００４０】
［原点復帰方法］
図３及び図４は、本発明の実施の形態に係るロボットの原点復帰方法のフロー図である。
【００４１】
ロボットは、制御プログラムを順次実行することにより一連の動作を行っており、通常状態におけるロボットの移動経路は、かかる制御プログラムによって制御されている。このとき、ロボットが異常停止した場合を考える。
【００４２】
ロボットが異常停止した位置情報は、ロボットコントローラに軌道データとしてのログが記録されている。また、実際のロボットの停止位置は、ロボットが保有するエンコーダにより取得することができる。そこで、停止位置取得工程（図４のＳ４１）によって、実際のロボットの停止位置情報をロボットコントローラは取得する。例えば、ロボット座標系におけるロボットの停止位置座標を取得する。
【００４３】
次に、停止位置判別工程（図４のＳ４２）は、ログとして記録されているロボットが異常停止した位置情報と、停止位置取得工程によって取得した実際のロボットの停止位置情報と、を比較して、それらが一致又は同等であるか、異なるかを判別する。その後、比較した結果に応じて復帰処理を行う（Ｓ４３）。
【００４４】
ここで、停止位置判別工程によって異なると判別される場合とは、ロボットの異常停止後に人為的又はティーチングペンダント等によりロボットを動かしてしまったり、制御プログラムの異常によって最終停止位置のログが記録されなかったり、ログが喪失してしまったりしたことが挙げられる。また、同等であると判別される場合とは、エンコーダの誤差やロボットのあそびを考慮した僅かな数値の違いであり、個々のロボットごとに同等の範囲を設定することができる。
【００４５】
停止位置判別工程によって、比較の結果が一致又は同等であると判別される、すなわち、記憶している位置より離れていないと判別された場合には（図３のＳ３１）、制御プログラムで制御できる領域にロボットが位置していることになるので、ロボットの辿ってきた移動経路とは逆の経路をとるプログラムによって原点復帰する（図３のＳ３２）。
【００４６】
一方、停止位置判別工程によって、比較の結果が異なると判別される、すなわち、記憶している位置より離れていると判別された場合には（図３のＳ３１）、実際のロボットの停止位置に復帰方向が設定されているか否かを判断する（図３のＳ３３）。判断に際しては、予め記憶された情報配列表がロボットコントローラにダウンロード処理され、さらに、エンコーダにより取得したロボット座標系におけるロボットの停止位置座標を復帰座標系におけるロボットの停止位置座標に変換処理されて、変換されたロボットの停止位置座標（復帰座標系）に復帰のための復帰情報が設定されているかを認識処理する。
【００４７】
復帰のための復帰方向が設定されている場合は、復帰経路設定工程によって復帰経路を設定し、設定された復帰経路に基づいてロボットを移動させる（図３のＳ３４）。一方、復帰のための復帰情報が設定されていない場合は、異常Ｃｏｄｅが出力され（図３のＳ３５）、異常と判定して本サブルーチンを終了する。
【００４８】
このように、従来は、制御プログラムで制御できる領域にロボットが位置していれば、ロボットの辿ってきた移動経路とは逆の経路をとるプログラムによって原点復帰し、制御プログラムで制御できる領域外にロボットが位置していれば、異常Ｃｏｄｅが出力されて原点復帰が不可能であったが（図１０）、本発明の実施の形態によれば、制御プログラムで制御できる領域外にロボットが位置しても、原点復帰が可能である。
【００４９】
［復帰処理］
図５乃至図８は、復帰処理のルーチンを説明するための図である。
【００５０】
図５は、復帰処理ルーチン１を説明するための図であって、制御プログラムによって作業原点位置Ｏから規定の経路（Ｏ→Ａ→Ｂ→Ｐ：破線）を辿ってきたロボットを、逆の経路（Ｐ→Ｂ→Ａ→Ｏ：実線）を辿るようにして作業原点位置Ｏに復帰させるものである。例えば、異常停止したロボットの現在位置が記憶している位置より離れていない場合に実行される。なお、図５（ｂ）の破線と実線とは同一位置上に重なっているものであるが、便宜上離して図示している。
【００５１】
まず、原点復帰プログラム生成工程（Ｓ５２）によって、作業原点位置Ｏからの規定の経路とは逆の経路を辿って、作業原点位置Ｏにロボットを戻す原点復帰プログラムを生成する。
【００５２】
次に、復帰工程（Ｓ５３）によって、生成された原点復帰プログラムを実行することによりロボットを移動させる。これにより、異常停止した停止位置Ｐから作業原点位置Ｏに戻すことができる。
【００５３】
図６は、復帰処理ルーチン２−１を説明するための図であって、エリアブロックごとに設定されたロボットの復帰方向に基づいて、ロボットの停止位置Ｐからの復帰経路の全軌道を設定した後に、ロボットを設定された復帰経路によって作業原点位置Ｏに復帰させるものである。例えば、異常停止したロボットの現在位置が記憶している位置より離れており、上述した原点復帰プログラム生成工程を機能させることができない場合であって、ロボットの現在位置に復帰方向が設定されている場合に実行される。
【００５４】
より具体的には、復帰経路設定工程（Ｓ６１）によって、ロボットの停止位置Ｐからの復帰経路を、記憶された復帰方向に従って設定していき、作業原点位置Ｏのエリアブロックに到達したか否か、すなわちＮ＝５か否かを判断して（Ｓ６２）、作業原点位置エリアブロックにないと判別されれば、仮想的にロボットを動かした場合のロボットの現在位置エリアブロックが作業原点位置エリアブロックに達するまで、復帰経路設定工程を繰り返す。
【００５５】
この際、移動量設定工程（Ｓ６１）によって、復帰方向に対する移動量を設定することもできる。例えば、復帰方向に対する移動量は１エリアブロック分を基本とすることができるが、１エリアブロック分ずつ移動させていった場合に、ロボットは作業原点位置エリアブロック（Ｎ＝５）に到達するものの、作業原点位置Ｏに到達しない場合もある。この場合に、ロボット系座標と復帰系座標との差分を補正すべく移動量設定工程によって基本となる移動量を補正することで、作業原点位置Ｏまでロボットを復帰する。または、復帰経路設定にあたり、同一の復帰方向が連なって設定されている場合や、エリアブロック群が形成されている場合に、基本となる移動量を連なった数だけ整数倍して移動量を設定することができる。
【００５６】
作業原点位置のエリアブロックに到達したと判別されれば、復帰工程（Ｓ６３）によって、設定された原点復帰経路を辿ることによりロボットを移動させる。これにより、ロボットを異常停止した停止位置Ｐから作業原点位置エリアブロック（Ｎ＝５）に戻すことができ、最終的には、作業原点位置０に復帰することができる。
【００５７】
なお、作業原点位置エリアブロックに到達したと判別された後、復帰工程によってロボットを現実的に移動させる前に、ロボットの復帰経路に異常がないか（干渉がないか）を確認するためのシミュレート工程を導入することもでき、これにより、より安全性の高い原点復帰方法の提供が可能である。
【００５８】
図７は、原点復帰処理ルーチン２−２を説明するための図であって、エリアブロックごとに設定されたロボットの復帰方向に基づいて、ロボットの現在位置エリアブロックからの復帰経路の軌道を設定して、設定された復帰経路によってロボットを移動させ、これをロボットが作業原点位置エリアブロックに到達するまで繰り返すことで、ロボットを、作業原点位置エリアブロックに復帰させ、最終的には作業原点位置Ｏに復帰するものである。例えば、異常停止したロボットの現在位置が記憶している位置より離れており、上述した原点復帰プログラム生成工程を機能することができない場合であって、ロボットの現在位置エリアブロックに復帰方向が設定されている場合に実行される。
【００５９】
より具体的には、復帰経路設定工程（Ｓ７１）によって、ロボットの停止位置Ｐからの復帰経路を、記憶された復帰方向に従って設定し、復帰工程（Ｓ７２）によって、設定された復帰情報に従ってロボットを移動させる。図７（ｂ）では、↓に３回、およそ７時の方向に１回、←に３回移動させることにより、停止位置Ｐから作業原点位置Ｏまでロボットを移動させ、原点復帰を行っている。
【００６０】
１回づつ所定の移動量にてロボットを移動させて、作業原点位置Ｏのエリアブロックに到達したか否かを判断して、すなわちＮ＝５か否かを判断して（Ｓ７３）、作業原点位置エリアブロックにないと判別されれば、ロボットの現在位置エリアブロックが作業原点位置エリアブロックに達するまで、復帰経路設定工程及び移動工程を繰り返す。
【００６１】
この際、移動量設定工程（Ｓ７１）によって、復帰方向に対する移動量を設定することもできる。例えば、復帰方向に対する移動量は１エリアブロック分を基本とすることができるが、１エリアブロック分ずつ移動させていった場合に、ロボットは作業原点位置エリアブロック（Ｎ＝５）に到達するものの、作業原点位置Ｏに到達しない場合もある。この場合に、ロボット系座標と復帰系座標との差分を補正すべく移動量設定工程によって基本となる移動量を補正することで、作業原点位置Ｏまでロボットを復帰することができる。なお、移動量設定工程は、同一復帰方向における最初の復帰経路設定工程時に実行し、その後の同一復帰方向においては基本の１エリアブロック分の移動量を自動的に設定する又は移動量設定工程を無効化するか、最初の復帰経路設定工程時ではなくとも、同一復帰方向における最後の復帰経路設定工程時や途中の復帰経路設定工程時に設定するなど、様々な態様を採ることができる。
【００６２】
ロボットの現在位置エリアブロックが作業原点位置エリアブロック（Ｎ＝５）にあると判別されれば、本サブルーチンを終了する。これにより、ロボットを異常停止した停止位置Ｐから作業原点位置Ｏに戻すことができる。
【００６３】
このように、ロボットの復帰経路設定工程及び移動工程を逐一実行することによって、ロボットの現在位置からの復帰方向が正しいかどうかを目視観察またはカメラを介してモニタリングしながらロボットを移動させることができるので、より安全性の高い原点復帰方法の実現が可能である。
【００６４】
図８は、復帰処理ルーチン３を説明するための図であって、復帰処理ルーチン２−１又は２−２を実行した後に（Ｓ８１）、復帰処理ルーチン１を実行するものであり（Ｓ８２）、エリアマップを用いた情報配列表によって原点復帰を行うのみならず、第１段階として、エリアマップを用いた情報配列表によってロボットの辿ってきた移動経路のある地点（例えば、Ａ地点）までロボットを移動させ、第２段階として、当該地点（例えば、Ａ地点）から作業原点位置Ｏまでの復帰経路をプログラム（例えば、移動経路とは逆の経路をとるプログラム）生成することによって、エリアマップを用いた情報配列表及びプログラムによって原点復帰するものである。この場合、ロボットの辿ってきた位置情報をログとして記録する際に、システムの負荷の増大にならないよう、動作エリア内におけるログを所定の時間ごとに採取すれば、効率的である。
【００６５】
具体的な処理工程は上述した通りであるが、処理ルーチン２−１又は２−２においては、目標地点（例えば、Ａ地点）のエリアブロックに到達するまで処理を継続した後に、処理ルーチン１を実行する。復帰処理ルーチン２−１又は２−２によって、基本となる１エリアブロック分の移動量の総和によってロボットの辿ってきた移動経路に到達することができ、復帰処理ルーチン１によって、作業原点位置Ｏまで復帰することができれば、上述した移動量設定工程を省くことができる。
【００６６】
なお、停止位置判別工程によって、比較の結果が一致又は同等であると判別され、記憶している位置より離れていないと判別された場合、換言すれば、処理ルーチン１によって原点復帰が可能である場合でも、復帰のための復帰情報が設定されている場合は、復帰経路設定工程によって復帰経路を設定し、設定された復帰経路に基づいてロボットを移動させることが可能である。すなわち、移動経路とは逆の経路をとるプログラムによって原点復帰するか、エリアマップを用いた情報配列表によって原点復帰するか、それとも両者を組み合わせて原点復帰するかは、ロボットコントローラによる最適制御又はオペレータによる選択によって決定することができる。
【００６７】
また、上述した原点復帰処理ルーチン１，２−１，２−２，３のいずれを採用するかは、ロボットコントローラによる最適制御又はオペレータによる選択によって決定することができる。
【００６８】
［復帰経路の設定］
図９は、本発明の実施の形態に係るロボットの原点復帰方法において復帰経路の設定について説明するための図である。
【００６９】
これは、区画されたエリアブロックの単位領域よりもロボットのハンド位置が小さければ、ハンド位置における復帰方向は１つであるから復帰経路を一義的に決定することができるが、区画されたエリアブロックの単位領域よりもロボットのハンド位置が大きければ、ハンド位置における復帰方向は複数あるから復帰経路を一義的に決定することができないため、干渉のない安全な復帰経路の設定にあたり、エリアブロックの復帰情報を如何に評価するかが問題となり、例えば、以下の３態様が考えられる。
【００７０】
図９（ａ）は、ハンド位置（丸の部分）の特定の定点（例えば中心点）における復帰情報を採用して、↓方向を復帰方向として復帰経路を設定する。図９（ｂ）は、ハンド位置における全ての復帰方向をベクトル演算した結果、およそ７時の方向を復帰方向として復帰経路を設定する。図９（ｃ）は、ハンド位置における最も多い復帰方向を採用して、↓方向を復帰方向として復帰経路を設定する。これらは、ベクトル方向の演算によって復帰方向を決定するものであるが、同じくベクトル量の演算によって移動量も決定することができる。
【産業上の利用可能性】
【００７１】
以上説明したように、本発明は、現在のロボット位置がどこであっても、簡易な方法で原点復帰を行うことができるものとして有用である。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施の形態に係るロボットの原点復帰方法において使用する復帰方向の設定について説明するための図。
【図２】情報配列表の一例。
【図３】本発明の実施の形態に係るロボットの原点復帰方法のフロー図。
【図４】本発明の実施の形態に係るロボットの原点復帰方法のフロー図。
【図５】復帰処理のルーチンを説明するための図。
【図６】復帰処理のルーチンを説明するための図。
【図７】復帰処理のルーチンを説明するための図。
【図８】復帰処理のルーチンを説明するための図。
【図９】本発明の実施の形態に係るロボットの原点復帰方法において復帰経路の設定について説明するための図。
【図１０】従来の原点復帰方法のフロー図。
【符号の説明】
【００７３】
１０  エリアマップ
１０ａ  動作エリア
１０ｂ  干渉エリア
２０  ロボット
【図１】
2009090383.tif 000003
【図２】
2009090383.tif 000004
【図３】
2009090383.tif 000005
【図４】
2009090383.tif 000006
【図５】
2009090383.tif 000007
【図６】
2009090383.tif 000008
【図７】
2009090383.tif 000009
【図８】
2009090383.tif 000010
【図９】
2009090383.tif 000011
【図１０】
2009090383.tif 000012