(57)【要約】      （修正有）【課題】緊急停止後のロボット再開動作において、決められた動作軌跡に対するショートカットをしないようなロボット制御装置の再開動作制御方法を提供する。【解決手段】教示データに基づいて指令位置を生成する指令位置生成部１と、指令位置に基づいてロボット６の関節軸駆動用のサーボモータを制御するサーボ制御部３と、指令位置生成部１が生成した指令位置及びサーボモータが具備するエンコーダより得られたロボット６の実際の位置に基づいてこのロボット６の実際の位置に最も近い指令位置としての推測位置を算出する位置推測部２と、を有するロボット制御装置において、位置推測部２に実位置確認領域を設け、この実位置確認領域に指令位置生成部１が逐次生成した指令位置を順次格納し、格納された指令位置のどの指令位置にまでロボット６が実際に到達しているのかを推測し、この推測位置に基づいてロボット６の再開動作を行う。【選択図】図４
2004174613.tif 000002
【特許請求の範囲】
【請求項１】
教示データに基づいて指令位置を生成する指令位置生成部と、
該指令位置生成部が生成した指令位置に基づいてロボットの関節軸駆動用のサーボモータを制御するサーボ制御部と、
前記指令位置生成部が生成した指令位置及び前記サーボモータが具備するエンコーダより得られたロボットの実際の位置に基づいてこのロボットの実際の位置に最も近い指令位置としての推測位置を算出する位置推測部と、を有するロボット制御装置の再開動作制御方法において、
前記位置推測部には実位置確認領域が設けられ、
該実位置確認領域には格納領域を示すカウンタ番号が付された各格納領域毎に前記指令位置生成部が逐次生成した指令位置が順次格納されるとともに、「フィルタ結果のカウンタ」及び「位置データ確認済カウンタ」が設定され、
前記位置推測部が入力した最新の指令位置に対してフィルタ処理を行った結果の位置がこのときの前記「フィルタ結果のカウンタ」の示す格納領域に格納されている指令位置の所定の範囲内にあるときには「フィルタ結果のカウンタ」を示すカウンタ番号を１つアップし、
前記「フィルタ結果のカウンタ」のカウンタ番号と前記「位置データ確認済カウンタ」のカウンタ番号とを比較し（第１の比較）、
該第１の比較において「フィルタ結果のカウンタ」のカウンタ番号の方が大きくない場合は、前記「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置を前記推測位置とし、
一方、前記第１の比較において「フィルタ結果のカウンタ」のカウンタ番号の方が大きい場合は、前記位置推測部が入力した最新の前記ロボットの実際の位置とこのときの前記「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置とを比較し（第２の比較）、
該第２の比較において前記位置推測部が入力した前記最新のロボットの実際の位置がこのときの前記「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置の所定の範囲内にないときには、このときの「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置を前記推測位置とし、
一方、前記第２の比較において前記位置推測部が入力した前記最新のロボットの実際の位置がこのときの前記「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置の所定の範囲内にあるときには、「位置データ確認済カウンタ」を示すカウンタ番号を１つアップし、このアップ後の「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置を前記推測位置とし、
ロボットの再開動作時には前記指令位置生成部は前記推測位置に基づいて前記サーボ制御部へ指令位置を出力するようにしたことを特徴とするロボット制御装置の再開動作制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、位置教示データに基づいてサーボモータを位置制御するロボット制御方法に関し、特に非常停止後の再開動作時の制御方法に関する。
【０００２】
【従来の技術】
サーボモータを駆動源とする産業用ロボットの制御装置においては、サーボモータを位置制御し、位置教示データを順次サーボモータに指令してプレイバック動作を行わせることにより、ロボットに多様な動作を行わせることを可能にしている。このようなロボット制御装置においては、一般に、安全上の理由から、非常停止スイッチのようにハードウエアにて動力回路を遮断するスイッチを備えている。通常、サーボ制御においては、サーボモータは指令に対して常に遅れをもった状態で動作するので、前述のスイッチがプレイバック動作中に入力されると、ハードウエアにて動力回路が遮断され、この時点でサーボモータの制御が不可能な状態になる。そのため、動力回路が遮断された後の再開動作時には、遮断時のサーボモータの遅れ分の情報を消失したまま、遮断時での指令位置から動作が再開されることになる。
【０００３】
ここで、前述した動力回路が遮断された後の再開動作時の動作について、図１及び図２を参照して説明する。ここでは、図１に示すように、位置教示データに基づく教示点に向かってロボットが移動する場合を想定する。ロボットは教示点に向かって移動するが、前述したようにサーボモータは指令に対して常に遅れをもった状態で動作するので、ロボットの実際の位置は指令位置の手前の位置になる。
【０００４】
このことを考慮に入れた上で、図２に示すように、教示点１の直前でロボットが緊急停止した場合を想定する。このとき、ロボットの実際の位置は教示点１の手前にあるが、緊急停止時にサーボモータに対して出された最終の指令位置は既に教示点１を過ぎ、教示点１と次の教示点２との間にある。この場合、ロボットの動作を再開させると、ロボット制御装置は最終の指令位置から教示点２に向けて指令位置を出力することになるが、ロボットの実際の位置は教示点１へ到達していないので、ロボットは緊急停止時の位置すなわち教示点１の手前の位置から教示点１を経由することなく教示点２に向けて、図２に点線で示したように、所謂ショートカットして動作することになる。このショートカットの経路上に周辺装置などが存在していたならば、この周辺装置やロボット本体の破損を招くことになり、場合によっては作業者にも危害が及ぶことになる。そのため、従来は、例えば特許文献１に開示されているように、ロボットの動作遅れの時間より先にサーボモータへの動力が遮断された場合は、サーボモータへの動力が遮断された時の位置を保持し、この位置から再開動作をさせるようにしていた。
【０００５】
【特許文献１】特開平１１−７７５７０号公報
【０００６】
【発明が解決しようとする課題】
ところで、ロボットを停止させる手段として、ロボットのアーム保持用電磁ブレーキを使用することもある。この場合、緊急停止時には、サーボモータへの動力が遮断される前に、アーム保持用電磁ブレーキが作動し、これによりロボットが停止してしまうこともある。サーボモータへの動力が遮断されるタイミングやアーム保持用電磁ブレーキが作動するタイミングは、サーボモータやブレーキ等のハードウエアの性能に依存するため、この性能の違いによりロボットが停止する実際の位置は大きく変化することになる。そして、この場合は、前述した引用文献１に開示されているような方法を用いたとしても、前述したようなショートカットが発生する。すなわち、図３に示すように、ロボットの実際の位置は教示点１の手前であるにもかかわらず、引用文献１に開示されている方法により算出されたサーボ電源遮断時のロボットの推測位置は教示点１を過ぎたものとなる。
【０００７】
本発明は、前述した従来技術の課題を解決するためになされたものであり、アーム保持用電磁ブレーキを使用する場合も含めて、いかなる状況下においても、緊急停止後のロボット再開動作において、決められた動作軌跡に対するショートカットをしないようなロボット制御装置の再開動作制御方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
前述した目的を達成するために、本発明は、教示データに基づいて指令位置を生成する指令位置生成部と、指令位置生成部が生成した指令位置に基づいてロボットの関節軸駆動用のサーボモータを制御するサーボ制御部と、指令位置生成部が生成した指令位置及びサーボモータが具備するエンコーダより得られたロボットの実際の位置に基づいてこのロボットの実際の位置に最も近い指令位置としての推測位置を算出する位置推測部と、を有するロボット制御装置において、以下の手順によりロボットの再開動作を制御するようにした。なお、以下の手順の記載において、「Ｓ＊」（＊は正数）の記述はステップ番号を示しており、発明の実施の形態の記載及び図５に示したフローチャートの記載に対応している。
【０００９】
すなわち、位置推測部には実位置確認領域が設けられ、この実位置確認領域には格納領域を示すカウンタ番号が付された各格納領域毎に指令位置生成部が逐次生成した指令位置が順次格納されるとともに、「フィルタ結果のカウンタ」及び「位置データ確認済カウンタ」が設定されている（Ｓ１〜Ｓ２）。まず、位置推測部が入力した最新の指令位置に対してフィルタ処理を行った結果の位置が、このときの「フィルタ結果のカウンタ」の示す格納領域に格納されている指令位置の所定の範囲内にあるときには、「フィルタ結果のカウンタ」を示すカウンタ番号を１つアップする（Ｓ３〜Ｓ６）。
【００１０】
次に、「フィルタ結果のカウンタ」のカウンタ番号と「位置データ確認済カウンタ」のカウンタ番号とを比較する（第１の比較）（Ｓ７）。この第１の比較において、「フィルタ結果のカウンタ」のカウンタ番号の方が大きくない場合は、「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置を推測位置とする（Ｓ８、Ｓ１２）。一方、この第１の比較において、「フィルタ結果のカウンタ」のカウンタ番号の方が大きい場合は、位置推測部が入力した最新のロボットの実際の位置とこのときの「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置とを比較する（第２の比較）（Ｓ８〜Ｓ９）。
【００１１】
この第２の比較において、位置推測部が入力した最新のロボットの実際の位置が、このときの「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置の所定の範囲内にないときには、このときの「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置を推測位置とする（Ｓ１０、Ｓ１２）。一方、この第２の比較において、位置推測部が入力した最新のロボットの実際の位置が、このときの「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置の所定の範囲内にあるときには、「位置データ確認済カウンタ」を示すカウンタ番号を１つアップし、このアップ後の「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置を推測位置とする（Ｓ１０〜Ｓ１２）。そして、ロボットの再開動作時には、指令位置生成部は前記推測位置に基づいてサーボ制御部へ指令位置を出力するようにする。
【００１２】
位置推測部内の実位置確認領域には、格納領域を示すカウンタ番号が付された各格納領域毎に、指令位置生成部が逐次生成した指令位置が順次格納されることになるが、前述した本発明に係る処理を実行することにより、「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置に、ロボットの実際の位置が既に到達していることになる。言い換えれば、教示データ等により予め決められた動作軌跡に基づいて指令位置生成部が逐次生成した指令位置のどの指令位置にまで、ロボットが実際に到達しているのかが推測できることになる。したがって、係る処理の実行後に、「位置データ確認済カウンタ」の示す格納領域に格納されている指令位置をロボットが実際に到達していると思われる位置すなわち推測位置と判断し、この推測位置に基づいてロボットの再開動作を行うようにすれば、従来技術のように予め決められた動作軌跡に対してショートカットをするようなことはなくなり、サーボモータやブレーキ等のハードウエアの性能に依存することなく、ロボットは決められた動作軌跡を動作することになる。
【００１３】
【発明の実施の形態】
以下、本発明の一実施形態について、図面を参照して説明する。図４は、本発明に係る再開動作制御方法が適用されるロボット制御装置を含むロボットシステム全体のブロック図である。図４において、１〜５がロボット制御装置を構成する装置であり、１は指令位置生成部、２は位置推測部、３はサーボ制御部、４はブレーキ制御部、５はサーボ電源である。また、６はロボット本体である。指令位置生成部１は、教示データ等に基づいて指令位置を生成し、この指令位置をサーボ制御部３及び位置推測部２へ出力している。サーボ制御部３は、サーボ電源５から電源供給されており、指令位置生成部１から入力した指令位置に基づいてロボット本体６が具備する関節軸駆動用のサーボモータを制御している。ブレーキ制御部４は、非常停止スイッチが押されるなどしてサーボモータへの動力が遮断された場合は、ロボット本体６が具備する関節軸駆動用のサーボモータに装備された電磁ブレーキに対してブレーキ動作を指示する。
【００１４】
次に、位置推測部２で行われる処理について説明する。図５は、位置推測部２で行われる処理の詳細な流れを示すフローチャートである。なお、このフローチャート及び以下の文中において、「Ｓ＊」（＊は正数）の記述はステップ番号を示している。
【００１５】
位置推測部２は指令位置生成部１の演算周期と同じ周期で実行される。位置推測部２は指令位置生成部１から演算周期毎に出力された指令位置を受信すると（Ｓ１）、この指令位置データを位置推測部２内に設けられたバッファとしての実位置確認領域に逐次格納する（Ｓ２）。この実位置確認領域には、図６に示すように、格納領域を示すカウンタ番号が付けられており、演算周期毎に逐次受信した指令位置データがカウンタ番号に対応する格納領域毎に順次格納される。ここでは、カウンタ番号が大きい格納領域ほど先の時間の指令位置データが格納される。例えば、ロボット本体６が教示点１から教示点２に移動している場合は、カウンタ番号が大きい格納領域ほど教示点２に近い指令位置データが格納されることになる。また、この実位置確認領域には、推測位置を判断するための後述する「フィルタ結果のカウンタ」と「位置データ確認済カウンタ」が存在する。
【００１６】
ここで、指令位置生成部１から最新の指令位置を受信した場合の処理について説明する。このとき受信した指令位置は、図６に示すようにカウンタ番号３４の格納領域に格納されるが、これと同時にフィルタ処理も施される（Ｓ３）。このフィルタ処理された指令位置と実位置確認領域の「フィルタ結果のカウンタ」（例えば図６においてはカウンタ番号１５）が示す格納領域の指令位置データとを比較する（Ｓ４）。具体的には、実位置確認領域の「フィルタ結果のカウンタ」が示す格納領域の指令位置データの所定の範囲内に、前述のフィルタ処理された指令位置が到達しているか否かを判断する（Ｓ５）。
【００１７】
そして、実位置確認領域の「フィルタ結果のカウンタ」が示す格納領域の指令位置データの所定の範囲内にフィルタ処理された指令位置が到達していた場合は、「フィルタ結果のカウンタ」を１つ進め（Ｓ６）、Ｓ７に移行する。例えば、図６に示す状態においては、「フィルタ結果のカウンタ」を１５から１６に１つ進めた後、Ｓ７に移行することになる。これにより、カウンタ番号１６の格納領域に格納されている指令位置データが、「フィルタ結果のカウンタ」の指令位置データということになる。一方、実位置確認領域の「フィルタ結果のカウンタ」が示す格納領域の指令位置データの所定の範囲内にフィルタ処理された指令位置が到達していなかった場合は、「フィルタ結果のカウンタ」を進めることなく（例えば図６においては「フィルタ結果のカウンタ」を１５のままで）、Ｓ７に移行する。
【００１８】
次に、実位置確認領域の「フィルタ結果のカウンタ」のカウンタ番号と「位置データ確認済カウンタ」のカウンタ番号とを比較する（Ｓ７）。ここで、「フィルタ結果のカウンタ」のカウンタ番号が「位置データ確認済カウンタ」のカウンタ番号よりも大きくない場合、具体的には「フィルタ結果のカウンタ」のカウンタ番号と「位置データ確認済カウンタ」のカウンタ番号が等しい場合は（Ｓ８Ｎｏ）、このときの「位置データ確認済カウンタ」が示す格納領域の指令位置データを、ロボット本体６が到達していると思われる位置すなわち推測位置と判断する（Ｓ１２）。一方、「フィルタ結果のカウンタ」のカウンタ番号が「位置データ確認済カウンタ」のカウンタ番号よりも大きい場合は（Ｓ８Ｙｅｓ）、Ｓ９以降の処理を行う。
【００１９】
なお、このＳ８において両カウンタのカウンタ番号の比較を行う理由としては、後述するＳ１０における「位置データ確認済カウンタ」が示す格納領域の位置データとロボット本体６の実際の位置との比較においては、「フィルタ結果のカウンタ」が「位置データ確認済カウンタ」よりも大きいことが前提になるからである。これは、実際のロボット制御においては、ロボット本体６の移動量が０または小さいときに、「フィルタ結果のカウンタ」と「位置データ確認済カウンタ」が同じになることに対処したものである。
【００２０】
Ｓ８において、「フィルタ結果のカウンタ」のカウンタ番号が「位置データ確認済カウンタ」のカウンタ番号よりも大きい場合は（Ｓ８Ｙｅｓ）、「位置データ確認済カウンタ」が示す格納領域の指令位置データとロボット本体６の実際の位置とを比較する（Ｓ９）。具体的には、実位置確認領域の「位置データ確認済カウンタ」が示す格納領域の指令位置データの所定の範囲内に、ロボット本体６の実際の位置が到達しているか否かを判断する（Ｓ１０）。なお、ロボット本体６の実際の位置は、例えばロボット本体６が具備している図示しないサーボモータが装備しているエンコーダにより検出する。
【００２１】
Ｓ１０において、実位置確認領域の「位置データ確認済カウンタ」が示す格納領域の指令位置データの所定の範囲内に、ロボット本体６の実際の位置が到達していなかった場合は、このときの「位置データ確認済カウンタ」が示す格納領域の指令位置データを、ロボット本体６が到達していると思われる位置すなわち推測位置と判断する（Ｓ１２）。一方、実位置確認領域の「位置データ確認済カウンタ」が示す格納領域の指令位置データの所定の範囲内に、ロボット本体６の実際の位置が到達していた場合は、「位置データ確認済カウンタ」を１つ進め（Ｓ１１）、例えば、図６に示す状態においては、「位置データ確認済カウンタ」を１１から１２に１つ進め、Ｓ１２に移行することになる。これにより、カウンタ番号１２の格納領域に格納されている指令位置データが、「位置データ確認済カウンタ」の指令位置データということになる。そして、このときの「位置データ確認済カウンタ」が示す格納領域の指令位置データを、ロボット本体６が到達していると思われる位置すなわち推測位置と判断する（Ｓ１２）。
【００２２】
以上、位置推測部２で行われる処理について説明した。以上の処理は、非常停止スイッチ等が押されたような緊急停止時だけでなく、指令位置生成部１が指令位置を生成している状態にあるときには常に行われる。なお、通常動作時においては、「フィルタ結果のカウンタ」と「位置データ確認済カウンタ」は、ほぼ一致しながら動作する。また、「フィルタ結果のカウンタ」及び「位置データ確認済カウンタ」のそれぞれのカウンタ番号の初期値は１である。また、実位置確認領域は、例えば２５６個の指令位置データを格納可能なバッファである場合、すなわちカウンタ番号が１から２５６まであるものの場合は、カウンタ番号２５６に指令位置データが格納されると、次は再度カウンタ番号１に戻って指令位置データが順次格納されていくようになっている。
【００２３】
前述したように、従来技術においては、ロボット本体６が動作中に、前述の図２に示したような状態、すなわちロボット本体６が教示点１を経由して教示点２へ向かう際に教示点１の手前で緊急停止した状態においては、ブレーキ制御部４とサーボ電源５のバラツキにより、ロボット本体６が実際には教示点１に到達していないにもかかわらず、ロボット制御装置がロボット本体６は教示点１に到達しているものと誤認し、その結果、ロボット本体６が緊急停止した教示点１の手前の位置から教示点２に向けてショートカットする現象が生じていた。
【００２４】
しかし、本実施形態においては、図５に示したフローチャートのＳ１０において、ロボット本体６の実際の位置が「位置データ確認済カウンタ」に格納されている指令位置に到達していない場合は「位置データ確認済カウンタ」がカウントアップしないので、ロボット緊急停止後などには「位置データ確認済カウンタ」がカウントアップすることはない。
【００２５】
具体的にいうと、前述した図６に示した状態において緊急停止した場合は、再開動作時には例えば図７に示したような状態になる。詳細には、緊急停止直前の実位置確認領域は、図６に示したように、最新の指令位置がカウンタ番号３４に入力され、そのときの教示点１の指令位置データはカウンタ番号２０に入力されており、さらに「フィルタ結果のカウンタ」はカウンタ番号１５、「位置データ確認済カウンタ」はカウンタ番号１１になっている。すなわち、「フィルタ結果のカウンタ」と「位置データ確認済カウンタ」のいずれも、教示点１の指令位置データの格納領域の手前になっている。
【００２６】
一方、再開動作時の実位置確認領域は、図７に示すように、最新の指令位置がカウンタ番号３７に入力され、そのときの教示点１の指令位置データはカウンタ番号２０と変わらないが、「フィルタ結果のカウンタ」はカウンタ番号３１に、「位置データ確認済カウンタ」はカウンタ番号１６になっている。すなわち、「フィルタ結果のカウンタ」は教示点１の指令位置データの格納領域よりも先にあるが、「位置データ確認済カウンタ」は教示点１の指令位置データの格納領域よりも手前にある。これは、前述した図５に示したフローチャートのＳ１０において、ロボット本体６の実際の位置が「位置データ確認済カウンタ」に格納されている指令位置に到達していない場合は、「位置データ確認済カウンタ」がカウントアップしないことによるものである。
【００２７】
したがって、ロボット緊急停止後の再開動作時には、このときに「位置データ確認済カウンタ」に格納されている指令位置データを取り出し利用するようにすれば、ロボット本体６が教示点１に到達していないことや、教示点１までの残距離や残時間などが判断できることになる。そして、「位置データ確認済カウンタ」に格納されている指令位置データをロボット本体６が到達していると思われる推測位置とし、この推測位置を指令位置生成部１にフィードバックすれば、指令位置生成部１は教示点１へ向かうようにサーボ制御部３に対して指令位置を送信することになる。これにより、ロボット本体６が緊急停止した教示点１の手前の位置から教示点２に向けてショートカットすることなく、ロボット本体６を動作制御することが可能となる。
【００２８】
【発明の効果】
本発明によれば、教示データ等により予め決められた動作軌跡に基づいて指令位置生成部が逐次生成した指令位置のどの指令位置にまで、ロボットが実際に到達しているのかが推測できることになるので、アーム保持用電磁ブレーキを使用する場合も含めて、いかなる状況下においても、緊急停止後のロボット再開動作において、決められた動作軌跡に対するショートカットをすることはなくなる。したがって、決められた動作軌跡に対するショートカットに起因して発生する、周辺装置やロボット本体の破損を招くこともなくなる。
【図面の簡単な説明】
【図１】位置教示データに基づく教示点に向かってロボットが移動する場合における、教示点、指令位置、及びロボットの実際の位置の関係を示す図である。
【図２】緊急停止時におけるロボットの実際の位置が教示点１の直前であった場合における、再開動作時のショートカットについて示す図である。
【図３】引用文献１における再開動作時のショートカットについて示す図である。
【図４】本発明に係る再開動作制御方法が適用されるロボット制御装置を含むロボットシステム全体のブロック図である。
【図５】本発明の一実施形態における位置推測部２で行われる処理の詳細な流れを示すフローチャートである。
【図６】本発明の一実施形態における位置推測部２内に設けられた実位置確認領域に関する説明図であり、緊急停止時直前のものである。
【図７】本発明の一実施形態における位置推測部２内に設けられた実位置確認領域に関する説明図であり、緊急停止後の再開動作時のものである。
【符号の説明】
１    指令位置生成部
２    位置推測部
３    サーボ制御部
４    ブレーキ制御部
５    サーボ電源
６    ロボット本体
【図１】
2004174613.tif 000003
【図２】
2004174613.tif 000004
【図３】
2004174613.tif 000005
【図４】
2004174613.tif 000006
【図５】
2004174613.tif 000007
【図６】
2004174613.tif 000008
【図７】
2004174613.tif 000009