(57)【特許請求の範囲】
【請求項１】
多関節型のロボット本体を制御プログラムに従い動作させる自動動作モードと、前記制御プログラムに従う動作を前記自動動作モードよりも低速で実行可能であると共に、前記動作をユーザの操作に応じて一時的に停止させ、その停止中に手先位置を手動で修正する手動修正制御が実行可能なテストモードとを備えているロボットの制御装置において、
前記手動修正制御を実行する修正制御手段は、
前記テストモードの実行が停止された時点に実行中であった前記制御プログラム中の命令を判定する命令判定手段と、
前記実行中の命令が手先位置を目標位置に移動させる動作命令であった場合は当該動作命令を対象とし、前記実行中の命令が前記動作命令でなかった場合は前記制御プログラムのステップを遡行して検索を行い直近に実行された前記動作命令を対象とすると、その時点の手先位置が前記動作命令の目標位置に一致しているか否かを判定する位置判定手段と、
前記手先位置と前記目標位置とが一致していない場合に、以降に行われるユーザの修正操作に応じた手先位置の修正制御を行う通常制御実行手段と、
前記手先位置と前記目標位置とが一致している場合に、以降に行われるユーザの修正操作に応じた手先位置の修正制御に制限を付与する制限付き修正制御を行う制限付き制御実行手段とを備え、
前記制限付き制御実行手段は、
前記ロボット本体の各軸について、一回の修正操作に応じて変化させるモータの回転速度の最大値を設定すると共に、修正制御において許容する最大累積変位量とを設定する制限量設定手段と、
一回の修正操作により各軸を変位させる量を、前記モータの回転速度が、一定の回転加速度で前記最大値に達するまで変位する量に制限する操作変位量制限手段と、
前記停止時に、前記ロボット本体の各軸について取得した位置を初期値として、前記修正操作が行われる毎に各軸が変位した量を累積加算し、その加算値が前記最大累積変位量を超えた場合は、前記修正操作による修正制御を停止させる最大累積変位量制限手段とを備えることを特徴とするロボットの制御装置。
【請求項２】
前記制限量設定手段は、前記最大累積変位量を、前記ロボット本体の根元側の軸に対応する値がより小さくなるように設定することを特徴とする請求項１記載のロボットの制御装置。
【請求項３】
多関節型のロボット本体を制御プログラムに従い動作させる自動動作モードと、前記制御プログラムに従う動作を前記自動動作モードよりも低速で実行可能であると共に、前記動作をユーザの操作に応じて一時的に停止させ、その停止中に手先位置を手動で修正する手動修正制御が実行可能なテストモードとを備えているロボットの制御装置が、前記手動修正制御を行う方法において、
前記テストモードの実行が停止された時点に実行中であった前記制御プログラム中の命令を判定し、
前記実行中の命令が手先位置を目標位置に移動させる動作命令であった場合は当該動作命令を対象とし、前記実行中の命令が前記動作命令でなかった場合は前記制御プログラムのステップを遡行して検索を行い直近に実行された前記動作命令を対象とすると、その時点の手先位置が前記動作命令の目標位置に一致しているか否かを判定し、
前記手先位置と前記目標位置とが一致していない場合は、以降に行われるユーザの修正操作に応じた手先位置の修正制御を行い、
前記手先位置と前記目標位置とが一致している場合は、以降に行われるユーザの修正操作に応じた手先位置の修正制御に制限を付与する制限付き修正制御を行い、
前記制限付き修正制御は、
前記ロボット本体の各軸について、一回の修正操作に応じて変化させるモータの回転速度の最大値を設定すると共に、修正制御において許容する最大累積変位量とを設定し、
一回の修正操作により各軸を変位させる量を、前記モータの回転速度が、一定の回転加速度で前記最大値に達するまで変位する量に制限する操作変位量制限と、
前記停止時に、前記ロボット本体の各軸について取得した位置を初期値として、前記修正操作が行われる毎に各軸が変位した量を累積加算し、その加算値が前記最大累積変位量を超えた場合は、前記修正操作による修正制御を停止させる最大累積変位量制限とを行なうことを特徴とするロボットの位置修正制御方法。
【請求項４】
前記最大累積変位量は、前記ロボット本体の根元側の軸に対応する値が、より小さくなるように設定されていることを特徴とする請求項３記載のロボットの位置修正制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多関節型のロボット本体を制御プログラムに従い動作させる自動動作モードと、その制御プログラムに従う動作を自動動作モードよりも低速で実行可能であるロボットの制御装置，及びロボットの位置修正制御方法に関する。
【背景技術】
【０００２】
ロボットについては、各教示点をティーチング（プログラミング）した後、そのティーチング結果に基づいてロボットを自動モードで動作させる前に、ティーチングが意図通りに行われたか否かを確認するテスト（いわゆる「ティーチチェック」）を行うのが一般的である。そして、テストを行った結果、一部の教示点を修正する必要が発生することも多い。この場合、従来は、テストモードを一旦終了してティーチングモードに切り替え、教示点を修正し、再びテストモードに切り替えてテストする、という手順を経る必要があった。
【０００３】
しかしながら、上記のようにモード切替えを何度も行うと作業が煩雑になるため、教示点の修正をより簡単に行えるようにしたいという要望がある。例えば、特許文献１では、教示点の修正を行う場合に、ロボットを、修正対象である教示点の直前まで自動モードで動作させてから手動モードに切り替え、そこからロボットの手先位置を、修正しようとする教示点に移動させてティーチングを行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−６６７９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、特許文献１の技術では、手動モードにおいてロボットアームの手先は自由に動かすことができるが、それに伴い、アーム途中の関節（肘）の位置がどのように変化するかが不確定である。その結果、手先の位置を修正しても、アーム全体としての動きが大きく変化してしまうおそれがあり、作業者が予測しなかった動きになることも想定される。
本発明は上記事情に鑑みてなされたものであり、その目的は、ロボット本体の手先の教示点の修正が、アーム全体について意図しない動作を生じさせることを回避できるロボットの制御装置，及びロボットの位置修正制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
請求項１記載のロボットの制御装置によれば、修正制御手段は、命令判定手段が、テストモードの実行が停止された時点に実行中であった制御プログラム中の命令を判定すると、位置判定手段が、上記命令が動作命令であれば当該動作命令を、動作命令でなければ直近に実行された動作命令を対象として、その時点の手先位置が動作命令の目標位置に一致しているか否かを判定する。そして、手先位置と目標位置とが一致していない場合は、通常制御実行手段が、以降に行われるユーザの修正操作に応じた手先位置の修正制御を行い、手先位置と目標位置とが一致している場合は、制限付き制御実行手段が、以降に行われる修正操作に応じた手先位置の修正制御に制限を付与する、制限付き修正制御を行うようにする。
【０００７】
上記制限付き修正制御では、ロボット本体の各軸について一回の修正操作に応じて変化させるモータの回転速度の最大値を設定すると共に修正制御において許容する最大累積変位量とを設定し、一回の修正操作により各軸を変位させる量を、モータの回転速度が、一定の回転加速度で前記最大値に達するまでの操作時間内に変位する量に制限する操作変位量制限を行う。また、停止時にロボット本体の各軸について取得した位置を初期値として、修正操作が行われる毎に各軸が変位した量を累積加算し、その加算値が最大累積変位量を超えた場合は、修正操作による修正制御を停止させる最大累積変位量制限とを行う。
【０００８】
すなわち、ユーザがロボット本体の手先の教示点を手動で修正する場合には、一回の修正操作に応じた各軸の変位量が（最大回転速度）×（操作時間）／２で制限されると共に、その操作を複数回行うことで累積される各軸の変位量も最大累積変位量で制限される。したがって、手先の教示点の修正に伴い、アームの関節軸がユーザの意図しない動きとなることを防止でき、アームの動きや姿勢はユーザが容易に予想できる範囲内に収まるようになる。
尚、テストモードの実行が停止された時点の手先位置が動作命令の目標位置と一致していない場合は、新たな教示点が追加されることを示しているので、それ以降の教示点についても大幅に変更される蓋然性が高い。そのため、斯様なケースの修正制御には上記のような制限を加えることなく修正制御の自由度を高め、手先の大幅な軌道変更を容易に行うことができる。
【０００９】
請求項２記載のロボットの制御装置によれば、制限量設定手段は、最大累積変位量を、ロボット本体の根元側の軸に対応する値がより小さくなるように設定する。一般に、ロボット本体の根元側にある軸の動きは手先側の動きに大きく影響するので、それに応じて最大累積変位量が小さくなるように設定することで手先位置を大きく変位させてしまうことを防止し、位置の微小な修正を容易に行うことができる。
【図面の簡単な説明】
【００１０】
【図１】一実施例であり、制御装置の制御内容を示すフローチャート
【図２】図１におけるステップＳ８の処理内容を示すフローチャート
【図３】同ステップＳ１２の処理内容を示すフローチャート
【図４】制御プログラムリストの一例を示す図
【図５】制御プログラム中に記載された動作命令ＭＯＶＥの動作目標位置を説明する図
【図６】１回の修正操作の変位量について設定するリミットの一例を示す図
【図７】各軸の変位量について設定するリミットの一例を示す図
【図８】動作モードが「Ｘ−Ｙ」の場合に第３軸を指定してジョグ送り動作させた場合の動作例を示す図
【図９】ティーチングペンダントの平面図
【図１０】一般的な産業用ロボットのシステム構成を示す図
【図１１】制御装置及びロボット本体の電気的構成を示す機能ブロック図
【発明を実施するための形態】
【００１１】
以下、一実施例について図面を参照して説明する。図１０は、一般的な産業用ロボットのシステム構成を示している。ロボットシステム１は、ロボット本体２と、ロボット本体２を制御する制御装置（コントローラ）３と、制御装置３に接続されたティーチングペンダント４とから構成されている。ロボット本体２は、例えば６軸の垂直多関節型ロボットとして構成されている。ロボット本体２は、ベース５と、このベース５に水平方向に回転可能に支持されたショルダ部６と、このショルダ部６に上下方向に回転可能に支持された下アーム７と、この下アーム７に上下方向に回転可能に支持された第１の上アーム８と、この第１の上アーム８に捻り回転可能に支持された第２の上アーム９と、この第２の上アーム９に上下方向に回転可能に支持された手首１０と、この手首１０に捻り回転可能に支持されたフランジ１１とから構成されている。
ベース５、ショルダ部６、下アーム７、第１の上アーム８、第２の上アーム９、手首１０およびフランジ１１は、ロボット本体２のアームとして機能し、アーム先端であるフランジ１１には、図示はしないが、エンドエフェクタ（手先）が取り付けられる。
【００１２】
図１１は、制御装置３及びロボット本体２の電気的な構成を機能ブロック図により示している。制御装置３は、ＣＰＵ１２、ＣＰＵ１２からの動作指令に基づいて駆動信号をロボット本体２に出力する駆動回路（インバータ）１３と、ロボット本体２の動作プログラムなどを記憶するＲＡＭ１４と、ロボット本体２のシステムプログラムや動作プログラムを作成するためのロボット言語などを記憶するＲＯＭ１５とを備えて構成されている。ロボット本体２は、ショルダ部６、各アーム７〜９、手首１０及びフランジ１１を駆動させるモータ１６と、モータ１６の回転角度を検出するエンコーダ１７とを備えている。尚、これらモータ１６及びエンコーダ１７は、各軸の関節機構であるリンク１８毎に設けられている。
【００１３】
ＣＰＵ１２は、エンコーダ１７が出力したエンコーダ角度（エンコーダ値）に基づいてベース５に対するショルダ部６の回転角度、ショルダ部６に対する下アーム７の回転角度、下アーム７に対する第１の上アーム８の回転角度、第１の上アーム８に対する第２の上アーム９の回転角度、第２の上アーム９に対する手首１０の回転角度、手首１０に対するフランジ１１の回転角度を検出し、ロボット本体２の位置（及び姿勢）を検出する。また、ＣＰＵ１２は、エンコーダ角度をフィードバック制御して駆動回路１３から駆動信号を出力させ、それらショルダ部６、各アーム７〜９、手首１０及びフランジ１１の動作を制御する。
【００１４】
図９は、ティーチングペンダント４の平面図である。ティーチングペンダント４の中央付近にはバックライト付き液晶表示器（以下、液晶表示器と称する）１９が設けられている。液晶表示器１９は、その表示面１９ａに作業者が操作可能なタッチパネルを形成する機能を有している。左上隅部にはモード切替スイッチ（モードセレクタ）２０が設けられている。
【００１５】
モード切替スイッチ２０は、マニュアルモード（手動モード）と、オートモード（自動モード）と、ティーチチェックモード（テストモード）との３つのモードから。何れかを作業者が択一的に切替可能に構成されている。マニュアルモードはロボット本体２を手動で動作させるためのモードであり、オートモードはロボット本体２を自動で動作させるためのモードである。また、ティーチチェックモードは、オートモードでロボット本体２を動作させる場合に先立ち、制御プログラムによる動作状態やロボット本体２の手先位置の教示点等を確認するため、制御プログラムをオートモードよりも低速で、例えば１ステップずつ動作確認を行いながら実行させるためのモードである。
【００１６】
右上隅部には非常停止スイッチ２１及びジョグダイヤル２２が設けられている。液晶表示器１９の周囲には、モータキー２３、ロックキー２４、ロボット選択キー２５、動作モードキー２６、速度キー２７、カーソルキー２８、停止キー２９、ＯＫキー３０、キャンセルキー３１、各軸の移動方向キー３２、シフトキー３３、ファンクションキー３４が設けられている。
【００１７】
次に、本実施例の作用について図１ないし図８を参照して説明する。図４は、制御装置３により実行される制御プログラムリストの一例を示す。この制御プログラムにおいて、ステップ００６，００８，０１０に記載されている命令ＭＯＶＥが、ロボット本体２の手先位置を移動させる動作命令であり、Ｐ１，Ｐ２，Ｐ３が夫々の命令の移動目標位置である（図５（ａ）参照）。そして、本実施例では、ロボット本体２をティーチチェックモードで動作させている途中にその動作を一時停止させ、図５（ｂ）に示すように、ユーザが例えばステップ００８の命令ＭＯＶＥにおける目標位置Ｐ１を、新たな目標位置Ｐ１’とするように修正する場合の処理について説明する。
【００１８】
図１は、制御装置（修正制御手段）３の制御内容を示すフローチャートである。先ず、制御プログラムの実行を先頭から開始させると（ステップＳ１）、ティーチングペンダント４のモード切替スイッチ２０の状態を識別し（ステップＳ２）、ティーチチェックモードに切替えられているか否かを判断する（ステップＳ３）。ここで、ティーチチェックモードに切替えられている場合は（ＹＥＳ）、動作モード及び外部からの速度の変更を禁止するように設定する（ステップＳ４）。そして、制御プログラムを、各ステップ毎の実行状態をユーザが目視で確認できる程度の低速で実行する。
【００１９】
また、ステップＳ３において、ティーチチェックモードに切替えられていない場合は（ＮＯ）、ステップＳ４をスキップしてステップＳ５に移行する。この場合は、オートモードで制御プログラムを実行することになる。
尚、上記の「動作モード」とは、図８に示すように、ロボット本体２の各軸を変位させる場合の指定方法である「各軸」，「Ｘ−Ｙ」，「ツール」等を示す。動作モードが「各軸」の場合は、ユーザが指定した軸のみ変位させ、その他の軸については変位させないようにする。また、動作モードが「Ｘ−Ｙ」の場合は、ユーザが指定した座標系で変位させる操作入力を行うとそれがＸ−Ｙ座標上（ベースから見た座標）での変位となり、その座標系に従って各軸が連動して変位する。尚、「ツール」の場合は、アームの先端（手先）から見た座標系となる。
【００２０】
次のステップＳ５でロボット本体２の動作を開始させ（００２：TAKEARM）、ステップ番号毎に処理を行う（ステップＳ６）。続くステップＳ７では、ティーチングペンダント４の停止キー（ＳＴＯＰ）２９がオン操作されたか否かを判断し、オン操作されていれば（ＹＥＳ）制御位置の判定を行う（ステップＳ８）。
【００２１】
図２は、ステップＳ８の処理内容を示す。先ず、停止キー２９がオン操作された時点で参照していた制御プログラムのステップ番号を読み取り（ステップＳ２１）、そのステップ番号に対応する処理（命令）の解釈（デコード）を行う（ステップＳ２２）。そして、上記処理が動作命令ＭＯＶＥであるか否かを判断する（ステップＳ２３，命令判定手段）。ステップＳ２３において、停止時に参照していたステップ番号の処理が動作命令ＭＯＶＥである場合は（ＹＥＳ）ロボット本体２の手先位置を取得し（ステップＳ２４）、その現在位置を上記動作命令ＭＯＶＥの目標位置と比較する（ステップＳ２５）。
【００２２】
そして、現在位置と目標位置とが同じか否かに応じて（ステップＳ２６，位置判定手段）、図１のステップＳ９における制御位置（ＹＥＳ）か否（ＮＯ）かが決定される。また、ステップＳ２３において、上記ステップ番号の処理が動作命令ＭＯＶＥでなかった場合は（ＮＯ）、ステップ番号の後方検索を行い（ステップＳ２７）ステップＳ２２に戻る。
【００２３】
以上の処理について具体例を説明する。例えば図４に示すように、停止キー２９がオン操作された時点で参照していた制御プログラムのステップ番号が「０１２」であるとする。この場合、ステップ番号０１２の処理は動作命令ＭＯＶＥではないので、ステップ番号の後方検索を行うとステップ番号０１０の動作命令ＭＯＶＥを捉えるため、この時点でステップＳ２３において「ＹＥＳ」と判断される。
【００２４】
また、図５に示すように、例えばロボット本体２の手先位置がＰ１にある時点でステップ番号０１０の動作命令「ＭＯＶＥ  Ｐ２」が実行されると、手先位置はＰ１からＰ２に向かって移動する。そして、手先位置が目標位置Ｐ２に到達すると、次のステップ番号０１１の処理「Ｉ＝Ｉ＋３」が実行される。したがって、停止キー２９がオン操作された時点で実行中であった処理が「ＭＯＶＥ  Ｐ２」である時、ロボット本体２の手先位置は、目標位置Ｐ１〜Ｐ２の間にある場合と、目標位置Ｐ２に到達している場合とがある。これらの場合を把握し分けるため、図２の処理が実行される。
【００２５】
再び、図１を参照する。ステップＳ８を実行した結果、ステップＳ９で「ＹＥＳ」と判断すると、制御装置３は以降で制限付き修正制御を実行するためリミット制御の設定を行う（ステップＳ１０，制限付き制御実行手段，制限量設定手段）。ステップＳ９で「ＮＯ」と判断すると、上記リミット制御の設定を行わず、通常通りの位置補正処理（通常修正制御）を行う（ステップＳ１６，通常制御実行手段）。それからステップＳ１４に移行する。
【００２６】
ここでの「リミット制御の設定」とは、ユーザがティーチングペンダント４を用いてロボット本体２の手先位置の修正制御を行う場合に、各軸の変位量にリミットを付与することを示す。例えば、ユーザが移動方向キー３２を操作して所謂「ジョグ送り」動作させる場合に、１回の操作によるジョグ送りで変位させる量に制限を加える（操作変位量制限手段）。また、ユーザが前記の操作を繰り返し実行した場合に、各軸について、現在位置からの最大累積変位量にも制限を加える（最大累積変位量制限手段）。
【００２７】
また、ステップＳ９で「ＮＯ」と判断されるように、テストモードの実行が停止された時点の手先位置が動作命令ＭＯＶＥの目標位置と一致していない場合は、新たな教示点が追加されることを示している。したがって、それ以降の教示点についても大幅に変更される蓋然性が高いため、斯様なケースの修正制御にはステップＳ１０のような制限を加えることなく修正制御の自由度を高め、手先の大幅な軌道変更を容易に行うようにする。
【００２８】
ステップＳ１０において上述のようにリミットの設定を行うと、続くステップＳ１１では、ティーチングペンダント４からの動作モード，外部速度の設定変更を許可すると、リミット制御付きの位置補正処理を行う（ステップＳ１２）。以下、ステップＳ１０におけるリミット制御の設定について説明する。例えば図８には、動作モードが「Ｘ−Ｙ」の場合に第３軸（Ｊ３）を指定してジョグ送り動作させた場合の動作例を示す。一回の操作入力により、第３軸の変位角度が３．６２［ｄｅｇ］から１４．９６［ｄｅｇ］まで変位しており、それに応じてその他の軸の角度も若干変位している。
【００２９】
図６は、ジョグ送り動作に付与するリミットを説明する図である。図６（ａ），（ｂ）に示すように、移動方向キー３２がオン操作されて（ジョグ送り操作）その入力を受け付けると（ＯＮ）、対応する軸のモータを一定の回転加速度で回転させるが、当該モータの回転速度が最大値ｍａｘに到達した時点で（（ａ）参照）操作入力の受付をＯＦＦにする（（ｂ）参照）。その後改めて２回目の入力として、１回目の操作とは切り分けた状態で移動方向キー３２の再度のオン操作の入力を受け付けるようにする（（ｃ）参照）。したがって、一回のジョグ送り動作による軸；モータの変位量は、（ａ）に示すように
（最大回転速度）×（オン操作時間ＴON）／２＝Ｌ１
に制限される（操作変位量制限）。つまり、上記のオン操作時間ＴONが、回転速度が最大値ｍａｘに到達するまでの時間に制限されることで、変位量がＬ１に制限されることになる。
【００３０】
また、図７は、各軸について設定する最大累積変位量の一例を示している。例えば図５（ｂ）に示すように、手先の目標位置Ｐ１をＰ１’に変更すると、第１軸〜第６軸の変位角度はＰ１（ｎ）（但し、ｎ＝１〜６）からＰ１’（ｎ）に変化する。その場合に許容する最大変位量をＡｎとする。この場合、第１軸〜第４軸の許容変位量（Ａ１〜Ａ４）を１０°とし、第５軸及び第６軸の許容変位量（Ａ５，Ａ６）を３０°にしており、手先側の軸よりも根元側の軸に設定する変位量が小さくなるようにしている。これは、ロボット本体２における根元側の軸の変位量は、手先の変位量に大きく影響するからである。
【００３１】
次に、ステップＳ１２で行う位置補正処理の詳細について図３を参照して説明する。先ず初期化を行い、以降の計算で用いる各軸の累積角度変位量をクリアすると（ステップＳ３１）、ユーザがティーチングペンダント４を操作して行う位置補正入力を受け付ける（ステップＳ３２）。すなわち、ここでユーザの操作入力（移動方向キー３２のオン操作）が行われているかどうかを参照すると、エンコーダ１７の出力信号に基づいて各軸の現在の角度変位量を取得し、位置補正を開始する（ステップＳ３３）。
【００３２】
続くステップＳ３４において、後述するリミットフラグがセットされている否かを判断し、リミットフラグがセットされていなければ（ＮＯ）、位置補正処理を終了させるための割込みが発生しているか否かを判断する（ステップＳ３５）。前記割込みが発生していなければ（ＹＥＳ）、ユーザの操作入力に応じて各軸の位置（回転変位量）を変更し（ステップＳ３６）、その変位量を計算する（ステップＳ３７）。一方、前記割込みが発生していれば（ステップＳ３５：ＮＯ）位置補正処理を終了し（ステップＳ４１）、メインルーチンにリターンする。
【００３３】
ステップＳ３８では、各軸角度の累積変位量が、図７に示す各軸の最大累積変位量（Ａ１〜Ａ６）以下であるか否かを判断する（最大累積変位量制限手段）。ここで「ＹＥＳ」と判断すると、現在行われているユーザの操作入力について各軸の変位量を算出する（ステップＳ３９）。そして、その変位量が、図６（ａ）に示すジョグ送り動作の動作制限量Ｌ１未満であれば（ステップＳ４０，操作変位量制限手段：ＹＥＳ）ステップＳ３２に戻り、以降の位置補正入力を受け付ける。また、ステップＳ３８で「ＮＯ」と判断した場合は、累積変位量が最大累積変位量を超えた場合であるから、それ以上の位置修正を許可することなくステップＳ４１に移行する。
【００３４】
また、ステップＳ４０において、ユーザの操作入力によるジョグ送り動作の変位量が動作制限量Ｌ１を超えると（ＮＯ）、リミットフラグをセットしてから（ステップＳ４２）ステップＳ３４に移行する。この場合、リミットフラグがセットされているのでステップＳ３４で「ＹＥＳ」と判断し、ステップＳ４３においてユーザのジョグ送り操作がＯＦＦされるまで待機する。ジョグ送り操作がＯＦＦされると（ＹＥＳ）、リミットフラグをクリアしてから（ステップＳ４４）ステップＳ３２に移行する。すなわち、次のジョグ送り操作入力を受け付けるようにする。
【００３５】
ここで、図１を参照する。以上のようにしてステップＳ１２におけるリミット制御を行うと、制御プログラムについてステップ番号毎の処理を再開し、ステップＳ１１で許可した動作モード及び外部からの速度の変更許可を再度する（ステップＳ１３）。そして、ロボットの動作が終了となるか、すなわち制御プログラム中でロボット動作の終了を示す「GIVEARM」が記述されているステップ０１３に到達したか否かを判断し（ステップＳ１４）到達していなければ（ＮＯ）ステップＳ６に戻る。
【００３６】
また、ステップＳ１４においてステップ０１３に到達した場合は（ＹＥＳ）、更にプログラムの実行終了を示す「END」が記述されているステップ０１４に到達したか否かを判断する（ステップＳ１５）。ここで、上記ステップ０１４に到達した場合は（ＹＥＳ）処理を終了するが、ステップ０１３からステップを遡行して（ＮＯ）「TAKEARM」が記述されているステップ００２に移行した場合は（ステップＳ１７：ＹＥＳ）ステップＳ５に移行する。また、ステップ００２以外のステップに移行した場合は（ＮＯ）ステップＳ６に移行して、移行先のステップから処理を行うようにする。
【００３７】
以上のように本実施例によれば、制御装置３は、ティーチチェックモードの実行がユーザにより一時的に停止された時点で実行中であった制御プログラム中の命令を判定すると、上記命令が動作命令ＭＯＶＥであれば当該動作命令を、動作命令ＭＯＶＥでなければ直近に実行された動作命令ＭＯＶＥを対象として、その時点の手先位置が動作命令ＭＯＶＥの目標位置に一致しているか否かを判定する。そして、手先位置と目標位置とが一致していない場合は、以降に行われるユーザの修正操作に応じた手先位置の修正制御を行い、手先位置と目標位置とが一致している場合は、以降に行われる手先位置の修正制御に制限を付与する制限付き修正制御を行う。
【００３８】
そして、制限付き修正制御では、ロボット本体２の各軸について一回の修正操作（ジョグ送り操作）に応じて変化させる回転速度の最大値を設定すると共に、修正制御において許容する最大累積変位量とを設定し、一回の修正操作により各軸を変位させる量を、一定の回転加速度で回転速度が最大値に達するまでの時間に応じた値Ｌ１に制限する操作変位量制限を行う。また、停止時にロボット本体２の各軸について取得した位置を初期値として、修正操作が行われる毎に各軸が変位した量を累積加算し、その加算値が最大累積変位量を超えた場合は、修正操作による修正制御を停止させる最大累積変位量制限とを行う。
【００３９】
すなわち、ティーチチェックモードの実行を一時的に停止している間に、ユーザがロボット本体２の手先の教示点をジョグ送り操作で修正する場合は、一回の修正操作に応じた各軸の変位量がＬ１に制限されると共に、その操作を複数回行うことで累積される各軸の変位量も最大累積変位量で制限される。したがって、教示点の修正に伴い、アームの関節軸がユーザの意図しない動きとなることを防止でき、アームの動きや姿勢はユーザが容易に予想できる範囲内に収まるようになる。
また、制御装置３は、最大累積変位量を、ロボット本体２の根元側の軸に対応する値がより小さくなるように設定するので、一般に、ロボット本体２の根元側にある軸の動きの最大累積変位量が小さくなるように設定し、手先位置を大きく変位させてしまうことを防止し、位置の微小な修正を容易に行うことができる。
【００４０】
本発明は上記し、又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
水平多関節型のロボットに適用しても良い。
各軸の変位制限量については、適宜数値を変更して設定すれば良い。また、各軸の変位制限量の設定を一律で同じ値に設定しても良いし各軸ごとに異なる値に設定しても良い。
ユーザが位置を修正するために行う操作はジョグ送り操作に限ることなく、どのような操作入力の形態であっても良い。
【符号の説明】
【００４１】
図面中、２はロボット本体、３は制御装置（修正制御手段，命令判定手段，通常制御実行手段，制限付き制御実行手段,制限量設定手段,操作変位量制限手段, 最大累積変位量制限手段）を示す。
【図１】
0005447048.tif 000002
【図２】
0005447048.tif 000003
【図３】
0005447048.tif 000004
【図４】
0005447048.tif 000005
【図５】
0005447048.tif 000006
【図６】
0005447048.tif 000007
【図７】
0005447048.tif 000008
【図８】
0005447048.tif 000009
【図９】
0005447048.tif 000010
【図１０】
0005447048.tif 000011
【図１１】
0005447048.tif 000012