(57)【要約】【課題】マスタ−スレーブ間でロボットの動作に位置ずれが発生した場合の修正を、可動部に過大な負荷をかけることなく行うことができるロボット制御装置を提供する。【解決手段】スレーブ側のコントローラ１１Ｓは、マスタ側のコントローラ１１Ｍにより、ロボット本体１２Ｓのアーム先端の移動目標位置指令値が与えられると、当該指令値とそれ以前に与えられているものとを含む連続した３点の指令値Ｐ１，Ｐ２，Ｐ３について、各指令値の座標間を結ぶ線分Ｌ１，Ｌ２に接すると共に、時系列順が最初となる線分Ｌ１２には中点Ｐ１２で接する２次曲線式Ｙを求め、求めた曲線式Ｙにより、ロボット本体１２Ｓに対して次回に適用する指令値を修正する。【選択図】図１
2008183685.tif 000002
【特許請求の範囲】
【請求項１】
ロボットと、前記ロボットを制御対象とする制御装置との組が複数存在する場合に、前記制御装置の何れか１つがマスタとなり、その他のスレーブとなる制御装置に前記ロボットの移動先目標位置の指令値を与えることにより、複数台のロボットを協調制御するシステムに使用されるもので、
前記マスタによって前記指令値が与えられると、当該指令値と、それ以前に与えられているものとを含む連続した３点以上の指令値について、各指令値の座標間を結ぶ線分の全てに接する曲線の式を求め、その曲線式に基づいて、前記ロボットに対して次回に適用する指令値を修正することを特徴とするロボット制御装置。
【請求項２】
前記曲線式を、前記各線分の内何れか１つに対しては、当該線分の中点で接することを条件として求めることを特徴とする請求項１記載のロボット制御装置。
【請求項３】
前記スレーブは、前記マスタによって前記指令値が与えられたタイミングが、当該マスタ側との同期制御を維持するために自身が管理している制御周期内の許容範囲より外れた場合に、前記指令値の修正処理を実行することを特徴とする請求項１又は２記載のロボット制御装置。
【請求項４】
ロボットと、前記ロボットを制御対象とする制御装置との組が複数存在する場合に、前記制御装置の何れか１つがマスタとなり、その他のスレーブとなる制御装置に前記ロボットの移動先目標位置の指令値を与えることにより、複数台のロボットを協調制御するシステムに使用されるスレーブ側の指令値修正方法であって、
前記マスタによって前記指令値が与えられると、当該指令値と、それ以前に与えられているものとを含む連続した３点以上の指令値について、各指令値の座標間を結ぶ線分の全てに接する曲線の式を求め、その曲線式に基づいて、前記ロボットに対して次回に適用する指令値を修正することを特徴とするロボットの位置指令値修正方法。
【請求項５】
前記曲線式を、前記各線分の内、何れか１つに対しては、当該線分の中点で接することを条件として求めることを特徴とする請求項４記載のロボットの位置指令値修正方法。
【請求項６】
前記マスタによって前記指令値が与えられたタイミングが当該マスタ側との同期制御を維持するために自身が管理している制御周期内の許容範囲より外れた場合に、前記指令値の修正処理を実行することを特徴とする請求項４又は５記載のロボットの位置指令値修正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の内何れか１つがマスタとなり、その他のスレーブにロボットの移動位置指令値を与えることにより、複数台のロボットを協調制御するシステムに使用されるロボット制御装置、並びにロボットの位置指令値修正方法に関する。
【背景技術】
【０００２】
複数台のロボットを協調制御することで、例えば１つの対象物を搬送制御するようなシステムにおいては、ロボットコントローラ（制御装置）の１つをマスタとし、その他のコントローラをスレーブとしてそれらを通信ネットワークを介して接続し、同期制御を行うものがある。図６は、そのような制御システムの一構成例を示す。コントローラ１は、例えば、６軸の垂直多関節型ロボット本体２を制御するもので、一方がマスタ１Ｍ，他方がスレーブ１Ｓに設定されている。そして、コントローラ１Ｍ，１Ｓ間は、例えば、Ethernet（登録商標）等の通信ネットワーク３により通信を行うようになっている。
【０００３】
また、図７は、マスタ−スレーブ間における同期制御の一例を示すタイミングチャートである。コントローラ１Ｍが軌道計算を行うことで次の移動目標位置を決定し、その位置指令値をコントローラ１Ｓに送信すると、コントローラ１Ｓは、送信された指令値に基づいてロボット本体２Ｓのアームを動作させる。その場合、コントローラ１Ｓは、コントローラ１Ｍからの指令値を受信した時点から所定時間が経過した後に、前記指令値をロボット本体２Ｓに与えてアームを動作させる。
そして、指令値が送信された時点からスレーブ側のロボット本体２Ｓがその指令値に従って動作するまでの時間が既知で且つ一定であれば、ロボット本体２Ｍ，２Ｓの動作を容易に同期させることができる。しかしながら、各コントローラ１Ｍ，１Ｓは独立した構成であるから、夫々が管理している時間にずれが生じる場合があり、そのずれを補償しながら同期制御を行う必要がある。
【０００４】
例えば特許文献１には、上記のような制御システムにおいて、スレーブ側で時間のずれを補償する技術が開示されている。その内容を図８に示す。この技術では、マスタが位置指令値のデータを送信してから、その指令値に基づく動作を実行するまでの時間を常にＴ（０，１，２，…）とすることを前提として、同期制御を実現する。スレーブ側では、例えば、割込み回数のカウントによって時間管理を行っており、時間「０」を起点とする制御周期内で、マスタより送信されたデータを「０」〜「１」の間に受信できれば同期状態は正常であり、その後、時間「３」のタイミングでロボットを動作させる。
そして、スレーブ側では、時間管理用の最小割込み周期Ｔｂ（０，１，２，…）を変更可能にしている。ケース（１）では、スレーブ側の管理タイミングが正常であるから、最小割込み周期Ｔｂ０は標準値のままカウントを行えば、マスタ側の動作タイミングＴｍｓ０とスレーブ側の動作タイミングＴｓｌ０とは一致する。
【０００５】
ケース（２）では、管理タイミングが遅れており、時間「３」と次の制御周期が開始される時間「０」との間でデータを受信している。この場合、スレーブ側は、次の制御周期で最小割込み周期Ｔｂ１を標準値よりも短縮してカウントを行うことで、両者の動作タイミングをＴｍｓ１，Ｔｓｌ１で一致させる。また、ケース（３）では、管理タイミングが進んでいるため、時間「１」と時間「２」との間でデータを受信している。この場合、その制御周期では、最小割込み周期Ｔｂ２を標準値よりも延長してカウントを行うことで、両者の動作タイミングをＴｍｓ２，Ｔｓｌ２で一致させるようにしている。
【特許文献１】特許第３５７７０２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示されている技術では、スレーブ側の管理タイミングにずれが生じて修正を行うと、スレーブ側のロボットが指令値に基づき動作を実行する間隔も変更されることになり、その結果、それらの指令値が本来は（マスタ側との同期が正常であれば）連続的な軌道を描くものであるのに対し、不連続な軌道を描くことになる。すると、ロボット間の位置ずれの修正は短時間内に行われるが、修正が行われる際のロボットアームの移動速度や加速度の変動が極めて大きくなる。
【０００７】
図９は、上記技術による同期制御をシミュレーションした一例を示しており、（ａ）は位置指令値の修正状態，（ｂ），（ｃ）は、（ａ）のように指令値が修正される場合のロボットアームの移動速度，加速度の変動状態を示している。特に加速度については、位置ずれが生じていない通常状態に対して４倍〜５倍の変動が生じている。このように、ロボットの可動部において急激な加速度変動が生じると、アクチュエータに過大な電流が流れる場合があり、また駆動負荷も大きくなるため、ロボット本体に悪影響を及ぼすおそれがある。
【０００８】
本発明は上記事情に鑑みてなされたものであり、その目的は、マスタ−スレーブ間においてロボットの動作に位置ずれが発生した場合の修正を、可動部に過大な負荷をかけることなく行うことができるロボット制御装置，及びロボットの位置指令値修正方法を提供することにある。
【課題を解決するための手段】
【０００９】
請求項１記載のロボット制御装置によれば、スレーブとなるものは、マスタによって移動目標位置の指令値が与えられると、当該指令値及びそれ以前に与えられているものを含む連続した３点以上の指令値について、各指令値の座標間を結ぶ線分の全てに接する曲線の式を求める。そして、求めた曲線式により、スレーブ側のロボットに対して次回に適用する指令値を修正する。
斯様に構成すれば、マスタ−スレーブ間においてロボットの動作に位置ずれが生じた場合でも、スレーブ側が修正した指令値に基づいて動作すればその移動軌跡が曲線を描くようになるので、ロボットが上記指令値に応じて移動する場合の速度，加速度の変動を緩和することができる。従って、消費電流の急増を抑制し、ロボットの可動部にかかる負担を軽減することができる。
【００１０】
請求項２記載のロボット制御装置によれば、前記曲線式を、各線分の内何れか１つについては、その中点で接することを条件として求めるので、ロボットの移動軌跡が描く曲線がより滑らかとなり、速度，加速度の変動を一層緩和することができる。
【００１１】
請求項３記載のロボット制御装置によれば、スレーブは、マスタによって指令値が与えられたタイミングが、当該マスタ側との同期制御を維持するために自身が管理している制御周期内の許容範囲より外れた場合に指令値の修正処理を実行する。即ち、上記タイミングのずれにより、マスタ−スレーブ間での位置ずれが生じた場合にだけ修正処理を行うので、スレーブ側の演算処理負担を軽減することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施例について図１乃至図５を参照して説明する。図１は、マスタ側，スレーブ側のロボットコントローラ（制御装置）１１Ｍ，１１Ｓの構成を示す機能ブロック図である。尚、両者の構成は、制御上ではマスタ，スレーブの関係になることを除いて（即ち、制御プログラムの違いを除いて）基本的に同一であるから、特に両者を区別する必要がない限り、符号に「Ｍ，Ｓ」を付さずに説明する。
【００１３】
コントローラ１１は、ロボット本体１２に備えられる図示しないサーボモータを駆動するための駆動部１３，パワーシーケンス回路１４，ＣＰＵ１５，メモリ１６，ティーチングペンダント１７，そのティーチングペンダント１７用のインターフェイス回路１８，パーソナルコンピュータ（ＰＣ）用のインターフェイス回路１９，信号入出力回路（Ｉ／Ｏ）２０，及び通信制御部２１を備えている。ＰＣインターフェイス回路１９には、ＰＣ２２が接続される。また、信号入出力回路２０には、ハンド開閉検出スイッチＳＷが接続される。
パワーシーケンス回路１４，メモリ１６，インターフェイス回路１８並びに１９，信号入出力回路２０，及び通信制御部２１は、バスライン２３によって相互に接続されている。また、マスタ側，スレーブ側の通信制御部２１Ｍ，２１Ｓは、通信ケーブル２４Ｍ，２４Ｓ及びハブ（ＨＵＢ）２５を介して接続され、通信ネットワークを構成している。
ロボット本体１２は、従来構成と同様に６軸の垂直多関節型であり、アームの先端部に装着されたハンド２６を用いて対象物を把持し、移送するようになっている。
【００１４】
次に、本実施例の作用について図２乃至図５も参照して説明する。尚、本実施例は、スレーブ側のコントローラ１１ＳにおけるＣＰＵ１５Ｓのソフトウエア処理に特徴を備えており、マスタ側のコントローラ１１Ｍについては従来構成と同様である。コントローラ１１ＳのＣＰＵ１５Ｓは、コントローラ１１Ｍより、ロボット本体１２Ｓの次回の位置指令値（アーム先端：ハンド２６Ｓの移動目標位置指令値）が送信されると、ロボット本体１２Ｓの動作に急激な加速度変動が生じることを抑制するように、その指令値を修正する。即ち、この修正は、従来図において説明したように、スレーブ側における受信タイミングが、マスタ側との同期を維持するのに適切な許容範囲から外れた場合に有効となる。
【００１５】
先ず、その原理について図２を参照して説明する。この図２に示すように、スレーブ側では、マスタより送信された３点の指令値Ｐ１，Ｐ２，Ｐ３に基づいて２次曲線式Ｙを求め、その曲線式Ｙに基づいて指令値を修正する。ここで、ロボット本体１２Ｓのハンド２６Ｓの位置が指令値Ｐ１を経過した時点で、コントローラ１１Ｓが最新の指令値Ｐ３を受信したとする。
【００１６】
すると、ＣＰＵ１５Ｓは、指令値Ｐ１，Ｐ２の座標間，指令値Ｐ２，Ｐ３の座標間を夫々結ぶ線分Ｌ１２，Ｌ２３を求めると共に、それらの線分Ｌ１２，Ｌ２３の中点Ｐ１２，Ｐ２３を求める。そして、２次曲線式Ｙを、中点Ｐ１２を通過すると共に、線分Ｌ１２，Ｌ２３に接することを条件として求める。即ち、２次曲線式Ｙを、
Ｙ＝Ａｔ2＋Ｂｔ＋Ｃ    …（１）
とする（ｔは、中点Ｐ１２において「０」とする時間）。この曲線Ｙについて、修正された指令値間の時間をＴ１２，Ｔ２３として、中点Ｐ１２を通過し、且つ線分Ｌ１２，Ｌ２３に接する、という条件より立てられる連立方程式を解くと、各係数Ａ，Ｂ，Ｃは以下のように定まる。
Ａ＝｛Ｔ２３・Ｐ１＋（−Ｔ２３−Ｔ１２）・Ｐ２＋Ｔ１２・Ｐ３｝
／（２・Ｔ１２2・Ｔ２３）      …（２）
Ｂ＝（Ｐ２−Ｐ１）／Ｔ１２        …（３）
Ｃ＝（Ｐ１＋Ｐ２）／２            …（４）
そして、各係数Ａ，Ｂ，Ｃを求めることで（１）式が決まると、時間ｔ秒後にロボット本体１２Ｓに適用すべき指令値を（１）式より計算し、その修正した指令値をロボット本体１２Ｓに与えてアームを移動させる。
【００１７】
図３は、ＣＰＵ１５Ｓによって実行される指令値修正処理のフローチャートであり、図４は上記処理に対応するタイミングチャートである。ＣＰＵ１５Ｓは、マスタより指令値Ｐ［ｋ]を受信すると（ステップＳ１）、自身が管理している制御周期の基準タイミング（図２に示す時間「０」）からの遅延量ΔＴを計算する（ステップＳ２）。
【００１８】
ここで、マスタ側との同期制御については、図８に示したように従来と同様の方式で行う。従って、ステップＳ２における遅延量ΔＴは、マスタより送信されたデータを時間「０」〜「１」の間に受信できなかった場合に発生し、送信されたデータを時間「０」〜「１」の間に受信できた場合は遅延量ΔＴ＝０となる。そして、図４に示すケース（１）で遅延量ΔＴが発生している状態は、図７におけるケース（２）と同様にスレーブ側の管理タイミングが遅れている場合に対応し、マスタ側の時間軸に示す遅延量ΔＴの基準は、マスタ側における指令値適用タイミングである。
【００１９】
次に、スレーブは、遅延量ΔＴに応じて（後で修正される）指令値を次回に適用すべき間隔Ｔ［ｋ］を変更する（ステップＳ３）。ここでの指令値適用間隔Ｔ［ｋ］は、図２に示すＴ１２，Ｔ２３に対応する。それから、上記（２）〜（４）式を演算し、２次曲線式Ｙの係数Ａ，Ｂ，Ｃを求めると（ステップＳ４）、上記演算が終了した時点から指令値適用間隔Ｔ［ｋ］が経過したタイミングで、修正指令値：Ｙ＝ＡＴ2＋ＢＴ＋Ｃ，をスレーブ側のロボット本体１２Ｓに適用する（ステップＳ５）。
以上の処理を、順次マスタより新たな指令値が与えられる毎に、連続する３点の位置を１つずつずらしながら修正処理を実行するようにする。また、図４のケース（２），（３）は、マスタ側との同期が採れている状態を示している。
【００２０】
ここで、図５は、上記のように指令値の修正処理を実行した場合の図９相当図である。図５（ａ）に示すようにマスタ側との位置ずれが生じた場合、そのずれが収束するまでの時間は若干長くなるが、図５（ｂ），（ｃ）に示すように、速度，加速度の変動量は大きく減少している。特に加速度については、従来のピークに対して１／２〜１／４に減少している。
【００２１】
以上のように本実施例によれば、スレーブ側のコントローラ１１Ｓは、マスタ側のコントローラ１１Ｍにより、ロボット本体１２Ｓのアーム先端の移動目標位置指令値が与えられると、当該指令値とそれ以前に与えられているものとを含む連続した３点の指令値Ｐ１，Ｐ２，Ｐ３について、各指令値の座標間を結ぶ線分Ｌ１，Ｌ２に接すると共に、時系列順が最初となる線分Ｌ１２には中点Ｐ１２で接する２次曲線式Ｙを求め、求めた曲線式Ｙにより、ロボット本体１２Ｓに対して次回に適用する指令値を修正するようにした。
従って、マスタ−スレーブ間においてロボット本体１２Ｍ，１２Ｓの動作に位置ずれが生じた場合でも、スレーブ側が修正した指令値に基づいて動作すればその移動軌跡が曲線を描くようになるので、ロボット本体１２Ｓが上記指令値に応じて移動する場合の速度，加速度の急峻な変動を緩和することができ、消費電流の急増を抑制し、ロボット本体１２Ｓの可動部にかかる負担を軽減することができる。
【００２２】
そして、実際の制御では、マスタ側より新たな指令値が与えられる毎に上記の修正処理が行われるが、２次曲線式Ｙを、線分Ｌ１２には中点Ｐ１２で接することを条件として求めることで、前回求めた曲線の終点と新たに求めた曲線の始点とが滑らかに繋がる。従って、ロボット本体１２Ｓの移動軌跡が描く全体の曲線が滑らかとなるので、速度，加速度の変動を一層抑制することができる。
【００２３】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、以下のような変形または拡張が可能である。
ステップＳ２において遅延量ΔＴが発生した場合にだけ、曲線式Ｙを用いた修正処理を行っても良い。この場合、スレーブ側の演算処理負担を軽減することができる。
また、曲線式は、必ずしも時系列順が最初となる線分について、その中点で接することを条件とする必要は無く、その他の線分の中点で接することを条件としても良い。更に、
少なくとも、各指令値間を結ぶ線分に接することを条件とすれば良い。
指令値を修正するために用いる曲線式は２次曲線式に限ることなく、３次以上の曲線式を使用しても良い。その場合、曲線の次数に応じて、式を定めるために用いる指令値の数を適宜増やせば良い。
【００２４】
マスタ−スレーブ間における同期制御の方式は、特許文献１と同様の方式に限ることはない。例えば、最小割込み周期は一定として、その割込み発生数のカウント値を変更しても良いし、制御方式自体が全く異なるものであっても良い。
ロボット本体のアームの移動位置に限ることなく、例えば、自走式のロボット本体がマスタ−スレーブ間で同期して移動する場合に、スレーブ側ロボット本体の移動位置指令を修正するのに適用しても良い。
マスタ−スレーブ間の通信は、Ethernet（登録商標）に限ることなく、個別の設計に応じて適当なプロトコルを選択すれば良い。
１つのマスタと、複数のスレーブとの間で協調制御を行うものに適用しても良い。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施例であり、マスタ側，スレーブ側のロボットコントローラの構成を示す機能ブロック図
【図２】指令値修正処理の原理を説明する図
【図３】スレーブ側コントローラによって実行される指令値修正処理のフローチャート
【図４】図３の処理に対応するタイミングチャート
【図５】指令値修正処理を適用した場合の（ａ）位置指令，（ｂ）速度，（ｃ）加速度の変化を示す図
【図６】従来のロボットにおける、マスタ−スレーブ制御システムの構成例を示す図
【図７】同期制御の一例を示すタイミングチャート
【図８】特許文献１に開示されている同期制御示すタイミングチャート
【図９】図５相当図
【符号の説明】
【００２６】
図面中、１１はロボットコントローラ（制御装置）、１１Ｍはマスタ、１１Ｓはスレーブ、１２はロボット本体を示す。
【図１】
2008183685.tif 000003
【図２】
2008183685.tif 000004
【図３】
2008183685.tif 000005
【図４】
2008183685.tif 000006
【図５】
2008183685.tif 000007
【図６】
2008183685.tif 000008
【図７】
2008183685.tif 000009
【図８】
2008183685.tif 000010
【図９】
2008183685.tif 000011