(57)【要約】      （修正有）【課題】  ロボットの教示軌跡の追従性を向上する。【解決手段】  非作動時のコンベア１１０上の作業対象物１に対する教示作業による軌跡上の点ごとにインデックスを設定すると共に各インデックスごとにロボット全軸の軸角度の記憶が行われる記憶手段７と、コンベアの動作量に応じて各インデックスのロボット全軸の軸角度を修正する修正手段８と、修正後のロボット全軸の軸角度に基づいてロボットを追従させる線形処理による制御と、各軸ごとの制限加速度に従って動作速度を決定する非線形処理による動作制御とを選択する制御切り替え部９と、を備え、非線形処理に際し、ロボット各軸ごとに、各々の制限加速度に従う動作速度の移動量から、修正後の記憶手段における近似又は一致するインデックスをそれぞれ特定し、その中で最も移動量の少ないインデックスに記憶されたロボット全軸分の軸角度に基づいてロボットの制御を行う。【選択図】図３
2007007779.tif 000002
【特許請求の範囲】
【請求項１】
コンベアの動作量を検出しながら当該コンベアで搬送される作業対象物に追従して所定の作業を行う複数軸のロボットの制御装置であって、
非作動時の前記コンベア上の作業対象物に対して行われた教示作業による軌跡上に並ぶ複数の補間点ごとに順番にインデックスを設定すると共に各インデックスごとにロボット全軸の軸角度の記憶が行われる記憶手段と、
コンベアの動作量に応じて前記記憶手段の各インデックスごとに記憶されたロボット全軸の軸角度を修正する修正手段と、
前記修正後の前記記憶手段のロボット全軸の軸角度に基づいてロボットを追従させる線形処理による動作制御と、前記ロボットの各軸ごとに設定された制限加速度に従って動作速度を決定する非線形処理による動作制御のいずれを実行するかを選択する制御切り替え部と、を備え、
前記非線形処理による動作制御に際して、前記ロボット各軸ごとに、各々の制限加速度に従う動作速度の移動量から、前記修正後の前記記憶手段における近似又は一致するインデックスをそれぞれ特定し、
前記ロボット各軸ごとに近似又は一致する各インデックスの中で最も移動量の少ないインデックスに記憶されたロボット全軸分の軸角度に基づいて前記ロボットの制御を行うことを特徴とするロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンベア上を移動する作業対象物に対し塗装やハンドリングなどの作業をするロボットの制御装置に関する。
【背景技術】
【０００２】
コンベア上を搬送されるワーク（作業対象物）に対してロボットにより所定の作業を行う場合、ワークの位置を正確に認識できることと、その位置にロボットが正確に追従（トラッキング）させることが必要となる。
通常、コンベア上のワークに追従させる作業をロボットに教示する場合、ワークをコンベアに乗せ、コンベアを停止させた状態でワーク上の位置を教示する。コンベアを動作させてその作業を再生する場合は、コンベア側に設けられたワークの位置を検出するためのパルス発信機や視覚装置などをロボット制御装置に接続し、パルス発信機や視覚装置の出力に基づいてロボット制御装置はワークの位置に応じて教示された位置をリアルタイムに移動させてロボットを動作させる。
【０００３】
そして、従来のロボットの制御にあっては、ロボットがトラッキング動作を開始してからワークに到達するまでに要する時間を推定し、コンベアの速度からロボット到達時のワークの位置を推定し、到達動作確認過程において到達不可であると確認された場合には再度到達時間推定過程で到達時間を推定しなおすという手段で、ワークに対するトラッキング動作を行っていた（例えば、特許文献１参照）。
【０００４】
また、他のロボットの制御にあっては、コンベアの速度を監視し、ロボットを初期位置からワークの移動速度と同速度まで加速させる際の加速度を、ロボットの加速期間内にそのロボットとワークとが移動する距離の差が予め規定された値となるように加速度を設定することで、ロボットが加速し終えたときに追従遅れが０（あるいは固定値）になるように制御を行っていた。
【特許文献１】特開平１０−１０５２１７号公報
【特許文献２】特開平７−１４８６８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に示す従来技術は、最終的にロボットがワークに到達する位置に追従させるものであって、その到達過程の移動経路（ワーク上から見たロボットの動作軌跡）はティーチングにより予定された通りになるとは限らず、追従性能が十分に保証されないという問題があった。
その場合、到達点で作業が行われるハンドリング作業においては移動経路の追従性の影響は大きくはないが、塗装作業においては移動経路の追従性が低下すると塗りムラなどが発生して品質に大きく影響する、という不都合があった。
また、特許文献２に示す従来技術では、ロボットの加速期間内にそのロボットとワークとが移動する距離の差を予め特定しなくてはならず、その特定が難しく煩雑となるという不都合があった。
【０００６】
本発明は、コンベアで搬送される作業対象物に対するロボットの追従性を向上させることをその目的とする。
【課題を解決するための手段】
【０００７】
請求項１記載の発明は、コンベアの動作量を検出しながら当該コンベアで搬送される作業対象物に追従して所定の作業を行う複数軸のロボットの制御装置であって、非作動時のコンベア上の作業対象物に対して行われた教示作業による軌跡上に並ぶ複数の補間点ごとに順番にインデックスを設定すると共に各インデックスごとにロボット全軸の軸角度の記憶が行われる記憶手段と、コンベアの動作量に応じて記憶手段の各インデックスごとに記憶されたロボット全軸の軸角度を修正する修正手段と、修正後の前記記憶手段のロボット全軸の軸角度に基づいてロボットを追従させる線形処理による動作制御と、ロボットの各軸ごとに設定された制限加速度に従って動作速度を決定する非線形処理による動作制御のいずれを実行するかを選択する制御切り替え部と、を備え、非線形処理による動作制御に際して、ロボット各軸ごとに、各々の制限加速度に従う動作速度の移動量から、修正後の記憶手段における近似又は一致するインデックスをそれぞれ特定し、ロボット各軸ごとに近似又は一致する各インデックスの中で最も移動量の少ないインデックスに記憶されたロボット全軸分の軸角度に基づいてロボットの制御を行う、という構成を採っている。
【発明の効果】
【０００８】
請求項１記載の発明は、予め複数教示点を設定する教示が行われ、教示点軌跡に沿って複数の補間点が設定される。かかる補間点の設定は、一般に従来から行われているいずれの手法を用いても良い。
そして、記憶手段の記憶領域内に、各補間点に個別に対応するインデックスを設定し、各インデックス一つずつに対して対応する補間点にロボット先端を位置決めするための各軸の軸角度（軸位置）が記憶される。
そして、コンベアが動作し、作業対象物が搬送されると、その動作量に基づいて、各インデックス内の補間点位置が修正されると共にそれに対応する全軸の軸角度を求め、全インデックスに設定された全ての軸角度が更新される。
このとき、線形処理に基づいてロボットが制御される場合には、次に目指す補間点に対応するインデックスに記憶された各軸の軸角度に基づいてロボットの制御が行われる。
一方、非線形処理に基づいてロボットが制御される場合には、各軸ごとに設定された制限加速度により各軸について別々の制限速度が設定される。そして、各軸ごとに、各々の制限速度に基づく移動量が求まり、各移動量に一致するか近似するインデックスが求められる。
その場合、各軸について選択されるインデックスは一致するとは限らないので、各軸の移動量を個別のインデックスに記憶された移動量とすると、ロボットアームの先端は教示点軌跡から外れた位置となる場合を生じる。
従って、各軸ごとに個別のインデックスが選択された場合には、いずれか一つのインデックスを選択することが望ましい。そのように選択することで非線形処理に基づく制御を行う場合であっても、ロボット先端部を教示点に基づく移動軌跡上に乗せることができ、線型処理、非線形処理のいずれの場合であっても常にロボット先端部の追従性を高く維持することが可能となる。
さらに、各インデックスの選択は、その移動量が最も小さくなるように（各軸について元のインデックスを選択した場合よりも移動量が大きくならないように）選択されるので、ロボット全軸について非線形処理で予定された制限加速度を超えてしまう不都合を回避できる。
【０００９】
また、本願発明は、従来例のように、ロボットの加速期間内に生じるロボットとワークと距離差を予め求める作業は不必要なので、当該作業の繁雑性を解消することが可能である。
なお、線型処理と非線形処理の切り替えは、例えば、連続する動作において、ロボット先端の停止が行われる場合に、非線形処理では停止までに冗長となりうるため、停止が近いときに線型処理に切り替えられることが望ましい。
【発明を実施するための最良の形態】
【００１０】
（システム構成）
本発明の実施形態であるロボットの制御装置２について図１乃至図９に基づいて説明する。図１は本発明の実施例を示すシステム構成図である。
上記システムは、作業対象物であるワーク１を一定の方向に搬送するコンベア１１０と、コンベア１１０が搬送するワーク１に対してハンドリングを行うロボット１００と、コンベア１１０の搬送するワーク１に対してハンドリングを行うためにロボットの追従制御を行う制御装置２とを備えている。なお、上記制御装置２は、コンベア１１０の駆動軸に設けられたパルス発信機１１１に接続され、当該パルス発信機１１１の出力からのコンベア１１０上のワーク１の位置を検出することが可能となっている。
【００１１】
（ロボット）
ロボット１００は複数のアームと、各アームを連結する複数の関節と、各関節ごとにＡＣサーボモータとを備えるいわゆる多関節ロボットである。
図２では説明の簡略化のための構成を簡略化したロボット１００を示している。このロボット１００の連結されたアームの基端部を原点とし、例えば、Ｘ軸と第一アーム１０１との交差角度をθ１、第一アーム１０１と第二アーム１０２との交差角度をθ２とし、その先端位置をＸ−Ｙの座標系で表している。
そして、制御装置２は、連結されたアーム先端の現在位置Ｐ0及び目標位置Ｐ1によって決める軌跡を前記座標系上に与え、指令された移動速度ｖからあらかじめ決められた指令周期毎に指令する目標点Ｐ1までの軌跡の等間隔の補間点Ａ1...Ａmを求め、各関節駆動用のサーボアンプ１０は関節角度θ１，θ２あるいは関節角速度を指令値とロボット１００に出力し、それぞれの関節毎に独立にサーボ系を構成するようにされているものとする。なお、実際には、ロボット１００はより多くの関節を備え、その先端位置は、三次元の座標系で表される。
【００１２】
（制御装置の全体構成）
図３は制御装置２の機能ブロック図である。この制御装置２は、教示点を入力するティーチング作業により生成される作業プログラムを記憶する記憶手段としての記憶装置７と、教示点までの経路を計算する修正手段としての指令位置演算部８と、算出された経路を演算周期ごとにサーボアンプ１０に出力する制御切り替え部としての非線形制御処理部９とを備えている。
なお、上記指令位置演算部８及び非線形制御処理部９は、実際には、制御装置２が備える図示しない所定の処理プログラムを記憶するプログラム記憶手段と、各処理プログラムを実行する演算手段と、各種のデータを記憶するデータ記憶手段の協働によりその機能が実現されるものである。
【００１３】
記憶装置７に記憶された作業プログラムは、予め、所定位置で停止したコンベア１１０上のワーク１に対してティーチングを行うことで入力設定された複数ポイントの教示点に基づいて構成されており、各教示点に関するロボット１００の各軸の姿勢データとワークの位置、そこに到達するまでの移動経路と移動速度が記録されている。
また、上記サーボアンプ１０はロボット各関節ごとに取り付けられたＡＣサーボモータを駆動する。
【００１４】
非線形制御処理部９は、指令位置演算部８とサーボアンプ１０との間にあり、指令位置演算部８が出力した指令位置（以下要求指令位置という）の入力を受けて、所定条件でワーク１に追従する軌跡上の非線形処理と線形処理のいずれかを選択的に行いサーボアンプ１０へ出力する（以下実指令位置という）。
【００１５】
（制御装置：非線形制御処理部）
図４は非線形制御処理部９の詳細構成を表わしたブロック図である。
非線形制御処理部９は、ロボット１００の各関節の許容角加速度（例えば、サーボモータの特性、制動特性、各アームの重量、寸法等から決定される）から追従軌跡の移動方向の最大加速度をあらかじめ求め、最大加速度から軌跡の移動方向の実現可能な速度を求め、前記計算した軌跡上の補間点への到達が最大加速度の制限によって達成可能かどうかを判定する。
図中のεiは指令値偏差（要求指令位置から実指令位置を差引いたもの）、ｖiは指令位置を単位時間当り（補間周期、即ち、補間点から次の補間点までの移動時間）に進ませることのできる距離即ち指令値速度（添字ｉはロボット１００の各関節の番号を意味し、ｖiは添え字のｉが示す関節番号の関節に対する指令値速度を示す）、αiは関節番号ｉの関節に対する単位時間当り（補間周期）に指令値速度ｖiを変化させることのできる量即ち指令値加速度である。
なお、補間周期毎に、非線形処理ルーチンは処理を繰り返し、教示された一連の動作を行う場合の繰り返しの回数はｃ回となる。なお、ｃは一連の教示点を移動する軌跡上の補間点の総数である。
【００１６】
非線形制御処理部９は、各軸毎に、指令値偏差εiを求める偏差算出部１１と、所定の条件に応じて後述する線形処理と非線形処理とを選択する制御切換部１２を備え、制御切換部１２は指令値偏差εiと許容角加速度である線形非線形切換点の値αi／ｃ2と比較する。εi≦（αi／ｃ2）であれば線形処理部１３によって線形処理が行われ、εi＞（αi／ｃ2）であれば非線形処理部１６により非線形処理が行われる。
これらの処理は、例えば、図５に示すように、ロボット１００のツール先端が、予め定められた所定の位置で停止する際に、停止前の減衰時に指令値偏差εiがαi／ｃ2に達した時に非線形制御から線形制御に切り換えられることによってよりスムーズな位置決めが行われる。なお、図５における二点鎖線は切り替えが行われずに非線形制御のまま停止に至る場合を示している。
非線形制御処理部９は、線形処理または非線形処理によって得られた指令値速度ｖiに加速制限を加える加速制限処理部１４と、加速制限後に積分処理を加える積分処理部１５とを備え、これらの処理後に実指令位置が決定され出力される。
【００１７】
（制御装置：リングバッファ）
また、記憶装置７はその記憶領域の一部を利用して、概念的な記憶構造である「リングバッファ１８」を構築している。その構造の概念図を図６に示す。これは前出の図２で現在点Ｐ0から目標点Ｐ1までの軌跡の等間隔の補間点Ａ1...Ａmにおける補間点間ＡkとＡk+1との間の距離より、小さい距離Ａk1とＡk2との間の距離、を移動するのに必要な一定計算周期毎に指令位置演算部８が出力してきたロボット各軸の軸角度である要求指令位置θ１，θ２，..θimax(imax=最大関節数)と教示時点のワーク位置Ｗを、０から最大Ｐmax回数分まで蓄積できるキャパシティを有している。
【００１８】
要求指令位置演算部８は、記憶装置７から教示点を取り出し、指定の補間種類に従って軌跡上の補間点を算出し、次々とリングバッファ１８上に要求指令値を格納していく（以下、格納される場所をインデックス：０〜Ｐmaxという）。このリングバッファ１８の記憶構造では、各インデックスごとに補間点又はコンベアによる移動後の補間点に位置決めするためのロボット全軸の軸角度が記憶されている。
そして、非線形処理にあっては、前記一定計算周期ごとに、各関節について図４の各構成による処理を施し実現できる実指令位置を算出し、求まった実指令位置がリングバッファ１８上のどこのインデックスに対応しているかを探索する。
探索の際はリングバッファ１８上のとなりあったインデックスの位置データを単純補間することによって、当該関節が進行しても良いインデックスの増分として導き出すのである。
こうして全ての関節について適正なインデックス増分が求まったら、これらの最小値を選択しこれを今回のインデックス増分と決定する。つまり、各関節ごとに非線形処理の移動量に対応するインデックスを個別に求め、各インデックスの中で各軸全体の軸角度が最も少なくなるインデックスを選択する。ここで最小値を選択することで軌跡上の非線形制御が成り立つ。インデックス増分が決定されたら、となりあったインデックスの位置データを単純補間することによって実指令位置を導き出し、これをサーボアンプ１０へ出力する。こうして再生運転中は要求指令位置インデックスがリングバッファ上を一定速度で進行しそのあとを追いかけるように実指令位置インデックスが進行していくといった具合である。
【００１９】
上記構成からなるロボット制御装置２は、ロボット１００をコンベア１１０のリアルタイムトラッキングに適用するために、補間周期毎にパルス発信機１１１からワークの位置を読み取り、リングバッファ２０上のすべての要求指令位置をシフトさせるようにした。具体的には教示時点のワーク位置と、実指令位置計算時のワーク位置の差を計算し、その差分だけ目標点Ａ1...Ａmをシフトする。これにより軌跡上の非線形制御処理部９で算出される実指令位置は、その時点のワーク上の軌跡を再現した位置で、かつ非線形制御により各関節の許容角加速度を守った指令となる。
【００２０】
（ロボット制御装置の動作制御）
以下、ロボット制御装置２における各種の処理を図７乃至図９に示すフローチャートを用いて説明する。各フローチャート上で、ＰＤは要求指令位置が格納されているインデックス、ＰＡは実指令位置決定に際し使用するその直前のインデックス、またRINGi(N)はインデックスＮ番地に格納されている当該関節の位置データである。
【００２１】
（動作制御：リングバッファに対する要求指令位置のデータ格納）
図７は要求指令位置演算部８が要求指令位置をリングバッファに格納するときのフローチャートである。
まず、要求指令位置演算部８は、記憶装置７から各教示点のデータの読み出しを行う（ステップＳ１）。
次いで、要求指令位置演算部８は、教示された各教示点への移動速度から分割数ｍを算出する（ステップＳ２）。
直線補間、曲線補間等の予め設定された補間種類に従って、複数教示点による軌跡の各教示点間を埋める補間点を算出する（ステップＳ３）。
次いで、補間点に位置決めする各関節位置（関節角度）θiを算出し（ステップＳ４）、リングバッファ１８上のＰＤ番地に要求指令値を格納する（ステップＳ５）。上記ステップＳ４とＳ５の処理は、ロボットの各関節ごとに全て繰り返し行う（i＝1〜imax）。
さらに、リングバッファ１８上のＰＤ番地には、各関節位置θiと共に、教示時点のワーク位置Ｗ（コンベア１１０を停止させて教示を行ったときのコンベア１１０上におけるワーク１の位置座標）も同時に格納する（ステップＳ６）。
そして、ＰＤを１ずつインクリメントする（ステップＳ７）。
上記ステップＳ４からＳ７までの処理は、全ての補間点について繰り返し行う（j＝1〜ｍ）。
これにより、リングバッファ１８に教示による全ての補間点のデータである要求指令位置が格納される。
【００２２】
（動作制御：トラッキング動作）
図８は非線形制御処理部９が追従軌跡における補間周期（補間点から次の補間点に移行する間の周期）毎に行う軌跡上の非線形制御処理を説明したフローチャートである。また、図９は上記非線形制御処理の先頭で行われるトラッキング処理の詳細なアルゴリズムを示すフローチャートである。
非線形制御処理では、図９に示すように、まず、コンベア１１０のパルス発信機１１１を読み取り、現時刻ｔにおける現在のワークＷｔの位置を計算する（ステップＳ４１）。
次いで、ステップＳ４２〜ステップＳ４６でリングバッファ１８内の全位置データRINGi(j)（j=PA…PD）を教示時点のワーク位置（コンベアを停止させて教示したときのワーク位置）と現在のワーク位置（コンベアで搬送中の現在位置）の差だけシフトする。
即ち、非線形制御処理部９は、教示時点のワーク位置と現在のワーク位置の差Δｄを計算する（ステップＳ４２）。
そして、各インデックスごとのデータRINGi(j)には教示時点の補間点に対する各関節の位置θ１〜θimaxが格納されているので、Δｄのシフトを行う際には関節位置θ１〜θimaxからツール先端位置（教示時点の補間点）を一旦算出し（ステップＳ４３）、算出したデカルト座標系でのツール先端位置をΔｄ分シフトし（ステップＳ４４）、Δｄのシフト後のツール先端位置を再度各関節位置θ１〜θimaxに換算して格納する（ステップＳ４５）。これにより、Δｄのシフト後のリングバッファ内の位置データRINGi(j)（j=PA…PD）は現時刻のワーク上の位置を再現した位置となる。
また、次回以降のシフト計算のために、RINGi(j)を計算した時のワーク１の位置ＷｔをＷｊ（＝Ｗｔ＋Δｄ）に更新する（ステップＳ４６）。
【００２３】
そして、トラッキング処理後は、図８に示すように、要求指令位置であるシフト後の補間点位置となるRINGi(PD)と現在のツール先端位置となる実指令位置ACTUALiとの差から指令値偏差εiが求められる（ステップＳ２２）。
そして、制御切換部１２により、指令値偏差εiに対して線形／非線形の判別が行われる（ステップＳ２３）。
その結果、線形であれば線形処理部１３によって、線形処理が行われる。つまり、実指令位置は、リングバッファ１８内において、インデックスを１つ進めた次のインデックス（インデックス増分ΔＰi＝１）に基づくデータが選択される（ステップＳ２４）。
【００２４】
一方、ステップＳ２２において、指令値偏差εiに対して非線形と判別されると、非線形処理部１６によって、非線形処理部９に進み、速度ｖiが算出される（ステップＳ２５）。
そして加速制限部１４で、加速制限処理が行われる（ステップＳ２６及びＳ２７）。なお、加速制限値αiは当該関節の実際の能力値にでき得る限り近い値を予め設定する。また、ｖiｚ-1又はｖi（ｚ-1）は前回（前の補間点）の速度ｖiを示すものである。
そして、上記加速制限処理により、線形処理よりも低速となるｖiが算出される。
【００２５】
さらに、前回の実指令位置ACTUALiからｖiだけ進んだ新しい実指令位置となるべきデータをリングバッファ１８の中から探索する（ステップＳ２９〜Ｓ３３）。探索の結果(PA+J-1)番地と(PA+J)番地との間に所望の位置データがあったとしたならば、前後の位置データを単純補間することでインデックスを求める。このようにしてインデックス増分ΔＰiを求め、インデックス増分決定部としての処理が行われる。
【００２６】
上記インデックス増分決定部としての処理を詳説すると、新しく実指令位置となるべき位置データは、ACTUALiから速度ｖiだけ変化した位置にある。引数をＪ（Ｊは１から順々に増加される（ステップＳ３１））として、ｖiの符号は、格納されているRINGi(PA+J)とACTUALiとの大小関係で決まるので（ステップＳ２９）、δi＝Sign（RINGi(PA+J)-ACTUALi）・ｖiとすれば新しい実指令位置はACTUALi+δiと表わせる。ただし、求めるものはこの値ではなく、この値に対応するリングバッファ１８のインデックス値である。
仮に、この値が、ACTUALi+δiがRINGi(PA+J-1)とRINGi(PA+J)との間にあることが探索の結果分かったとする。図８は引数Ｊによるループを考えれば（ステップＳ２８〜Ｓ３１）、導き出されるべきインデックス増分ΔＰiは、ΔＰi＝(J-1)＋[ACTUALi+δi-RINGi(PA+J-1)]/[RINGi(PA+J)-RINGi(PA+J-1)]という単純補間計算によって得られた増分を加え合わせることによって求まることになる（ステップＳ３３）。
【００２７】
全ての関節について上記の処理を繰り返したあと、非線形制御処理部９のインデックスを決定する処理を行う機能に従い、ΔＰiの最小値を求めこれをΔPminとする（ステップＳ３４）。ΔPminが求まれば新しい実指令位置インデックスＰＡも非線形制御処理部９の処理によって求まる。最小値ΔPminを採用し、これによって決まるＰＡで以って全軸の実指令位置を算出することで軌跡上の非線形制御が実現できるわけである。
なお、線形処理にあっては各軸（各関節）ごとにインデックスが異なることはなく、一のインデックスが選択されるので、ΔPminを求める処理は省略しても良い。
【００２８】
新インデックスＰＡ及びΔPminが求まればあとは非線形制御処理部９の補間処理によりRINGi(PA)とRINGi(PA+J)を[1-ΔPmin+int(ΔPmin)]対[ΔPmin-int(ΔPmin)]に単純補間して実指令位置ACTUALiを算出することができる（ステップＳ３５）。
このようにして求まった実指令位置ACTUALiは全ての関節について、加速度制限処理の条件を満たす位置であり、またもちろん目標とする軌跡上の位置である。
そして位置ループゲインが変化するものでは決してないことは当然である。求まった実指令位置ACTUALiをサーボアンプ１０へ出力する。以上の処理を一定計算周期ごとに繰り返す。
(Pmax+1)回目以降の処理はリングバッファ上のインデックス０から順次上書きする。
【００２９】
（実施形態の効果）
以上のように、ロボットの制御装置２では、インデックスごとに各軸の位置（軸角度）が記憶されており、非線形処理において、各軸ごとに異なるインデックスが選択された場合であっても、ΔPminとなる一つのインデックスに絞られてロボット各軸の動作制御を行うので、教示点に基づく軌跡上にロボットのツール先端を追従させることが可能となる。
【図面の簡単な説明】
【００３０】
【図１】発明の実施例を示すシステム構成図である。
【図２】構成を簡略化したロボットを示す説明図である。
【図３】制御装置の機能ブロック図である。
【図４】非線形制御処理部の詳細構成を表したブロック図である。
【図５】ロボットの速度変化と線形、非線形の処理の切り替えの関係を示す説明図である。
【図６】リングバッファの構造の概念図である。
【図７】要求指令位置演算部が要求指令位置をリングバッファに格納するときのフローチャートである。
【図８】非線形制御処理部が追従軌跡における補間周期毎に行う軌跡上の非線形制御処理を示すフローチャートである。
【図９】非線形制御処理の先頭で行われるトラッキング処理の詳細なアルゴリズムを示すフローチャートである。
【符号の説明】
【００３１】
１  ワーク（作業対象物）
２  ロボット制御装置
７  記憶装置（記憶手段）
８  要求指令位置演算部（修正手段）
９  非線形制御処理部（制御切り替え部）
１８  リングバッファ
１００  ロボット
１１０  コンベア
【図１】
2007007779.tif 000003
【図２】
2007007779.tif 000004
【図３】
2007007779.tif 000005
【図４】
2007007779.tif 000006
【図５】
2007007779.tif 000007
【図６】
2007007779.tif 000008
【図７】
2007007779.tif 000009
【図８】
2007007779.tif 000010
【図９】
2007007779.tif 000011