(57)【要約】【課題】マスター側の制御装置の負荷およびスレーブ側の制御装置の負荷を低減しつつ、且つ、スレーブ側の制御装置が単独で、通信が正しく行われたか否かの判断と、通信が正しく行われなかった場合の対処とを行うことができるロボットシステム、ロボットの制御装置を提供する。【解決手段】ロボットシステム１は、搬送装置２とロボット（４、６）の動作とを一括で制御する付加軸トラッキングを行うものであって、搬送装置２を制御するマスター側制御装置３と、１台以上のスレーブ側制御装置５とを備え、スレーブ側制御装置５は、マスター側制御装置３との間のＵＤＰ通信が正しく行われたか否かを判定する判定部５ｂと、判定部５ｂによってＵＤＰ通信が正しく行われなかったと判定された場合に、今回の制御に用いる指令値を補正する補正部５ｃとを備える。【選択図】図２
2020146766.tif 000002
【特許請求の範囲】
【請求項１】
搬送装置とロボットの動作とを一括で制御する付加軸トラッキングを行うロボットシステムであって、
前記搬送装置を制御するマスター側の制御装置と、
前記マスター側の制御装置によって制御されるマスター側のロボットと、
前記マスター側の制御装置と通信可能に接続されている１台以上のスレーブ側の制御装置と、
前記スレーブ側の制御装置によってそれぞれ制御される１台以上のスレーブ側のロボットと、を備え、
前記マスター側の制御装置は、
前記搬送装置に与える指令値を生成する指令値生成部と、
前記搬送装置の速度を特定可能な速度情報を生成する速度情報生成部と、
生成した指令値と速度情報とを制御情報としてＵＤＰ通信によって前記スレーブ側の制御装置に送信する通信部と、を有し、
前記スレーブ側の制御装置は、
前記マスター側の制御装置から送信された制御情報を受信する通信部と、
前回の制御に用いた指令値を記憶する記憶部と、
前記マスター側の制御装置との間のＵＤＰ通信が正しく行われたか否かを判定する判定部と、
前記判定部によって前記マスター側の制御装置との間のＵＤＰ通信が正しく行われなかったと判定された場合に、今回の制御に用いる指令値を補正する補正部と、を有し、
前記判定部は、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致する場合であって、且つ、今回の制御に用いる前記搬送装置の速度が所定の基準値を超えている場合に、前記マスター側の制御装置との間のＵＤＰ通信が正しく行われなかったと判定し、
前記補正部は、今回の制御に用いる指令値を、前記搬送装置の速度と制御周期とを乗じた値を加えた値に補正するロボットシステム。
【請求項２】
前記判定部は、前記基準値を零に設定する請求項１記載のロボットシステム。
【請求項３】
前記記憶部は、制御に用いた複数の速度情報を履歴として記憶し、
前記補正部は、前記記憶部に記憶されている履歴から前記搬送装置の速度の変化傾向を求め、当該速度の変化傾向を加味して指令値を補正する請求項１記載のロボットシステム。
【請求項４】
前記マスター側の制御装置の前記速度情報生成部は、前記搬送装置の駆動軸に今回送る指令値をエンコーダのパルス値に変換した値と、前回送った指令値をエンコーダのパルス値に変換した値との差分であるパルス差分値を、速度情報として送信する請求項１から３のいずれか一項記載のロボットシステム。
【請求項５】
搬送装置とロボットの動作とを一括で制御する付加軸トラッキングを行うロボットシステムにおいて、前記搬送装置を制御するマスター側の制御装置から送信された制御情報に基づいて動作するスレーブ側のロボットの制御装置であって、
前記マスター側の制御装置は、制御情報として、前記搬送装置に与える指令値と前記搬送装置の速度を特定可能な速度情報と接続されている全ての前記スレーブ側の制御装置にＵＤＰ通信により一斉に送信し、
前記マスター側の制御装置から送信された制御情報を受信する通信部と、
前回の制御に用いた指令値を記憶する記憶部と、
前記マスター側の制御装置との間のＵＤＰ通信が正しく行われたか否かを判定する判定部と、
前記判定部によって前記マスター側の制御装置との間のＵＤＰ通信が正しく行われなかったと判定された場合に、今回の制御に用いる指令値を補正する補正部と、を有し、
前記判定部は、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致する場合であって、且つ、今回の制御に用いる前記搬送装置の速度が所定の基準値を超えている場合に、前記マスター側の制御装置との間のＵＤＰ通信が正しく行われなかったと判定し、
前記補正部は、今回の制御に用いる指令値を、前記搬送装置の速度と制御周期とを乗じた値を加えた値に補正するロボットの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステム、ロボットの制御装置に関する。
【背景技術】
【０００２】
ロボットの利用形態として、搬送装置によって搬送されるワークの位置の変化に追従させながら作業を行うトラッキングが知られている。このとき、搬送装置の制御もロボットの制御装置によって行うことにより、トラッキングの精度を向上させることが提案されている（例えば、特許文献１参照）。以下、ロボットの制御装置によりロボットの関節部以外の駆動軸ここでは例えば搬送装置の駆動軸を制御しながらトラッキングを行う態様を、付加軸トラッキングと称する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１０５２１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
さて、付加軸トラッキングでは、搬送装置を制御する１台のマスター側のロボットの制御装置と、マスター側の制御装置から送信される指令値に基づいて動作する１台以上のスレーブ側のロボットの制御装置とを設け、複数台のロボットで作業を行うロボットシステムを構築することがある。
【０００５】
このとき、マスター側の制御装置は、搬送装置によって搬送されるワークの初期位置をスレーブ側の制御装置に通知した後、自身でもロボットを制御しつつ、搬送装置に与える指令値を生成してスレーブ側の制御装置に都度送信している。なお、搬送装置に与える指令値は、分かり易く言えば搬送装置の目標位置を示す値であり、この指令値が分かれば、搬送装置の目標位置つまりはワークが搬送される位置を推定することが可能となる。
【０００６】
そして、スレーブ側の制御装置は、直近に受信した指令値に基づいてワークの位置を推定し、スレーブ側のロボットをワークの移動に追従するように動作させてトラッキングを行っている。
【０００７】
しかし、マスター側の制御装置は、上記したように、搬送装置の制御だけではなく、ロボットの制御もしている。そして、マスター側の制御装置は、接続されている全てのスレーブ側の制御装置に対して指令値を送信する必要があるものの、接続されるスレーブ側の制御装置は必ずしも１台とは限らない。そのため、通信に要する負荷が高くなると、マスター側の制御装置がロボットの制御する際に支障をきたすおそれがある。
【０００８】
また、スレーブ側の制御装置においては、通信が正しく行われなかった状態で制御を行うと、最新の指令値を受け取っていないことからトラッキングの追従性が悪化するおそれがある。かといって、受信できたか否かを確認して新しい指令値を再送してもらうような処理を行う構成にすると、スレーブ側の制御装置だけでなくマスター側の制御装置の負荷も増加させてしまう。
【０００９】
そこで、マスター側の制御装置の負荷およびスレーブ側の制御装置の負荷を低減しつつ、且つ、スレーブ側の制御装置が単独で、通信が正しく行われたか否かの判断と、通信が正しく行われなかった場合の対処とを行うことができるロボットシステム、ロボットの制御装置を提供する。
【課題を解決するための手段】
【００１０】
請求項１に記載した発明では、ロボットシステムは、搬送装置とロボットの動作とを一括で制御する付加軸トラッキングを行うものであって、搬送装置を制御するマスター側の制御装置と、マスター側の制御装置によって制御されるマスター側のロボットと、マスター側の制御装置と通信可能に接続されている１台以上のスレーブ側の制御装置と、スレーブ側の制御装置によってそれぞれ制御される１台以上のスレーブ側のロボットとを備えている。
【００１１】
そして、マスター側の制御装置は、搬送装置に与える指令値を生成する指令値生成部と、搬送装置の速度を特定可能な速度情報を生成する速度情報生成部と、生成した指令値と速度情報とを制御情報としてＵＤＰ通信によってスレーブ側の制御装置に送信する通信部とを有している。
【００１２】
ＵＤＰ（User Datagram Protocol）を用いて通信するＵＤＰ通信は、いわゆるコネクションレス型通信であり、データそのものの信頼性は担保されないものの、データそのものの信頼性が担保されるＴＣＰ（Transmission Control Protocol）を用いて通信するＴＣＰ通信と比べると、通信に要する負荷が大きく低減される。
【００１３】
そのため、スレーブ側の制御装置に対して繰り返し送信する必要がある制御情報をＵＤＰ通信で行うことにより、トラッキング時の通信負荷を低減しつつ、１対多の通信が可能となる。
ただし、ＵＤＰ通信ではデータの信頼性が担保されないため、そのままロボットの制御に用いることは困難である。また、ＵＤＰ通信では、通信が正しく行われたことの保証や確認がトランスポート層では行われないため、直近のＵＤＰ通信が正しく行われた場合には、その際に受信した指令値が最新の指令値として記憶される一方、ＵＤＰ通信が正しく行われず新しい指令値が受信されていない場合でも、既に受信していた過去の指令値が、そのまま最新の指令値として扱われる。
【００１４】
つまり、ＵＤＰ通信が正しく行われなかった場合には、最新の指令値が更新されることがなく、スレーブ側の制御装置は、ＵＤＰ通信が正しく行われなかった場合には、前回の制御時と同じ指令値を用いてスレーブ側のロボットを制御することになる。なお、それ以降にＵＤＰ通信が正しく行われた場合には、最新の指令値は更新されるため、スレーブ側の制御装置は、正しい最新の指令値に基づいて制御することになる。
【００１５】
ただし、マスター側の制御装置から送信される指令値は、上記したように搬送装置の目標位置を示す値であるため、指令値が前回と同じであるということは、搬送装置の目標位置が前回と同じ状態、つまりは、搬送装置が停止している状態を意味することになる。
【００１６】
その場合、スレーブ側の制御装置は、搬送装置が停止していると判断して、ロボットを減速または停止させるような制御を行うことになる。そして、スレーブ側の制御装置は、それ以降にＵＤＰ通信が正しく行われて最新の指令値が更新されたときには、更新された目標位置に移動させるために、減速または停止したロボットを高速に動作させることになる。
【００１７】
このように、通信の負荷を低減するためにＵＤＰ通信を採用した場合には、スレーブ側のロボットの速度が不連続的に変化するといった問題を引き起こすおそれがある。このとき、ＵＤＰ通信の成否をマスター側の制御装置に問い合わせたり再送を要求したりすることは、結果的にマスター側の制御装置およびスレーブ側の制御装置の負荷を増加させることになるため、負荷を低減するためにＵＤＰ通信を採用するという主旨に反することになる。
【００１８】
そのため、スレーブ側の制御装置には、マスター側の制御装置から送信された制御情報を受信する通信部と、前回の制御に用いた制御情報を記憶する記憶部と、マスター側の制御装置との間のＵＤＰ通信が正しく行われたか否かを判定する判定部と、判定部によってマスター側の制御装置との間のＵＤＰ通信が正しく行われなかったと判定された場合に、今回の制御に用いる指令値を補正する補正部とを備えている。
【００１９】
そして、判定部は、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致する場合であって、且つ、今回の制御に用いる搬送装置の速度が所定の基準値を超えている場合に、マスター側の制御装置との間のＵＤＰ通信が正しく行われなかったと判定する。
【００２０】
搬送装置の指令値は、上記したように搬送装置の目標位置を示すデータである。そのため、今回の制御に用いる指令値が記憶部に記憶されている前回の指令値と一致する状態は、目標位置が前回と同じ状態つまりは搬送装置が停止している状態を意味することになる。ただし、仮に今回の指令値と前回の指令値が一致していたとしても、緊急停止等により実際に搬送装置を停止させることもあり、それだけではＵＤＰ通信が正しく行われなかったと判定することはできない。
【００２１】
そこで、判定部は、搬送装置の速度を用いて、ＵＤＰ通信が正しく行われなかったことの正否を判断する。これは、数ミリ秒といった制御周期でいきなり搬送装置の速度が零になるとは考えにくいため、今回の指令値と前回の指令値が一致している場合であって、且つ、搬送装置の速度が基準値を超えている場合には、それは、指令値が更新されていない状態すなわちＵＤＰ通信が正しく行われなかった状態であると判定できるためである。
【００２２】
そして、補正部は、ＵＤＰ通信が正しく行われなかったと判定された場合には、今回の制御に用いる指令値を、搬送装置の速度と制御周期とを乗じた値を加えた値に補正する。つまり、補正部は、ＵＤＰ通信が失敗した場合には、指令値を、搬送装置の速度から推定される値に補正する。
【００２３】
これにより、ＵＤＰ通信が失敗した場合であっても、実際には停止していない搬送装置の移動つまりはワークの移動に追従させてスレーブ側のロボットの動作を制御することが可能となる。つまり、トラッキングの追従性を向上させることができるようになる。
【００２４】
ところで、搬送装置の指令値と速度情報とを制御情報として送信すること、より詳細に言えば、指令値とともに送信するデータとして速度情報を選択したことには、以下に述べるように重要な技術的意義が存在している。
【００２５】
まず、速度情報は、マスター側の制御装置の制御で元々用いられているデータであり、新たな処理をすることなく得られるデータである。そして、速度情報は、それ１つで、上記したようにスレーブ側の制御装置が単独でＵＤＰ通信が正しく行われたか否かの判定と、ＵＤＰ通信が正しく行われなかった場合の対処とを行うことができるようになるでーたでもある。
【００２６】
そのため、速度情報という１つのデータを加えて制御情報を送信すれば、仮にＵＤＰ通信が正しく行われなかったとしても、再送等の処理を行うことなく、スレーブ側の制御装置だけで補正を行うことができることから、マスター側の制御装置の処理の負荷や通信の負荷を増加させることがない。このため、ロボットシステムでは、ロボットを制御するための各種のパラメータのうち、制御情報として送信するデータに、速度情報を選択している。
【００２７】
このような構成により、ロボットシステムは、マスター側の制御装置の負荷およびスレーブ側の制御装置の負荷を低減しつつ、且つ、スレーブ側の制御装置が単独で、ＵＤＰ通信が正しく行われたか否かの判断と、ＵＤＰ通信が正しく行われなかった場合の対処とを行うことができる。
【００２８】
このとき、ロボットシステムは、仮にスレーブ側の制御装置の数が増減してもマスター側の制御装置の処理は基本的には変わらないことから、システム設計の自由度の向上や拡張性の確保を図ることもできる。
【００２９】
請求項２に記載した発明では、ロボットシステムでは、判定部は、基準値を零に設定する。これにより、実際の搬送装置が移動しているか否かの判断を容易に行うことができる。したがって、スレーブ側制御装置の負荷が過度に増加することを抑制できる。
【００３０】
請求項３に記載した発明では、記憶部は、制御に用いた複数の速度情報を履歴として記憶し、補正部は、記憶部に記憶されている履歴から搬送装置の速度の変化傾向を求め、当該速度の変化傾向を加味して指令値を補正する。例えば、搬送装置の速度が増加傾向にあった場合には１より大きな係数を掛けて補正し、搬送装置の速度が減少傾向にある場合には１より小さな係数を掛けて補正することに、搬送装置の実際の速度変化に対応させて補正を行うことができ、トラッキング時の追従性をより向上させることができる。
【００３１】
請求項４に記載した発明では、マスター側の制御装置の速度情報生成部は、搬送装置の駆動軸に今回送る指令値をパルス値に変換した値と、前回送った指令値をパルス値に変換した値との差分であるパルス差分値を、速度情報として送信する。このパルス差分値は、マスター側の制御装置の制御で用いられるデータであり、新たな処理をすることなく得られる値である。また、パルス差分値は、整数として得られるデータであるため、小数点を含む速度そのものを送信する場合に比べて、送信時に必要なデータ量を削減することができる。したがって、通信の負荷をさらに低減することができる。
【００３２】
請求項５に記載した発明では、スレーブ側の制御装置は、搬送装置とロボットの動作とを一括で制御する付加軸トラッキングを行うロボットシステムにおいて、搬送装置を制御するマスター側の制御装置から送信された制御情報に基づいて動作するものであって、上記した通信部と、記憶部と、判定部と、補正部と、を有している。
【００３３】
このようなロボットの制御装置によっても、マスター側の制御装置の負荷およびスレーブ側の制御装置の負荷を低減しつつ、且つ、スレーブ側の制御装置が単独で、ＵＤＰ通信が正しく行われたか否かの判断と、ＵＤＰ通信が正しく行われなかった場合の対処とを行うことができるなど、上記したロボットシステムと同様の効果を得ることができる。
【図面の簡単な説明】
【００３４】
【図１】実施形態によるロボットシステムの構成を模式的に示す図
【図２】ロボットシステムの電気的構成を模式的に示す図
【図３】付加軸トラッキングの概略を説明するための図
【図４】スレーブ側制御装置の処理の概略を説明するための図
【図５】補正なしと補正ありでのロボットの速度例を模式的に示す図
【図６】スレーブ側制御装置による処理の流れを模式的に示す図
【発明を実施するための形態】
【００３５】
以下、実施形態について図面を参照しながら説明する。
図１に示すように、本実施形態のロボットシステム１は、搬送装置２とロボットの動作とを一括で制御する前述した付加軸トラッキングを行うものであって、搬送装置２を制御するマスター側制御装置３と、マスター側制御装置３によって制御されるマスター側ロボット４と、マスター側制御装置３と通信可能に接続されている１台以上のスレーブ側制御装置５と、スレーブ側制御装置５によってそれぞれ制御される１台以上のスレーブ側ロボット６とを備えている。
【００３６】
マスター側制御装置３は、搬送装置２を駆動するモータ７、モータ７に設けられているエンコーダ８、および、搬送装置２に搬送されるワーク９の位置を検出するカメラやレーザ距離計などの検出器１０が接続されている。モータ７の回転軸は、搬送装置２の駆動軸となっている。つまり、ロボットシステム１は、マスター側ロボット４の関節部の駆動軸とは異なる制御対象であるモータ７の回転軸を付加軸とした付加軸トラッキングを行う構成となっている。
【００３７】
また、マスター側制御装置３には、ＬＡＮ回線１１を介してハブ１２が接続されており、その先に接続されているスレーブ側制御装置５と通信可能に構成されている。なお、図１では、２台のスレーブ側制御装置５が接続された構成例を示しているが、１台あるいは３台以上のスレーブ側制御装置５を接続することも勿論可能であり、本実施形態のロボットシステム１は、数十台規模のスレーブ側制御装置５が接続可能となっている。
【００３８】
スレーブ側制御装置５は、スレーブ側ロボット６をそれぞれ制御する。本実施形態では、マスター側ロボット４およびスレーブ側ロボット６として水平多関節型のいわゆる４軸ロボットを想定しているが、垂直多関節型のいわゆる６軸ロボットや７軸ロボットあるいはそれらが混在したものを対象とすることもできる。なお図１では、搬送装置２の搬送方向においてマスター側ロボット４の下流側に複数のスレーブ側ロボット６が設置されている構成を例示しているが、スレーブ側ロボット６の設置場所や数はこれに限定されない。
【００３９】
さて、図２に示すように、マスター側制御装置３は、指令値生成部３ａ、速度情報生成部３ｂ、および通信部３ｃ等を備えている。指令値生成部３ａは、マスター側ロボット４を制御するための指令値と、搬送装置２を駆動するための指令値とを生成する。このとき、搬送装置２に与える指令値は、分かり易く言えば搬送装置２の目標位置を示す値であり、この指令値が分かれば、搬送装置２の目標位置つまりはワーク９が搬送される位置を推定することが可能となる。
【００４０】
なお、以下では、説明の簡略化のために、単に指令値という場合には搬送装置２を駆動するために与えられる指令値を意味するものとし、ロボットを制御するための指令値については、便宜的に制御指令値と称する。
【００４１】
速度情報生成部３ｂは、詳細は後述するが、搬送装置２の速度つまりはワーク９の移動速度を特定可能な情報を生成する。本実施形態では、速度情報として、搬送装置２の駆動軸に今回送る指令値をパルス値に変換した値と、前回送った指令値をパルス値に変換した値との差分であるパルス差分値を用いている。これら指令値生成部３ａおよび速度情報生成部３ｂは、図示しないＣＰＵにてプログラムを実行することにより、ソフトウェアで実現されている。
【００４２】
通信部３ｃは、いわゆるＬＡＮインターフェースであり、ＬＡＮ回線１１を介してスレーブ側制御装置５との間で、搬送装置２に与える指令値と速度情報とを含む通信パケットである制御情報などの通信を行う。なお、詳細は後述するが、通信部３ｃは、ＵＤＰ通信とＴＣＰ通信とを行うことができる。なお、図２では、ハブ１２の図示を省略している。
【００４３】
スレーブ側制御装置５は、指令値生成部５ａ、判定部５ｂ、補正部５ｃ、記憶部５ｄおよび通信部５ｅ等を備えている。指令値生成部５ａは、スレーブ側ロボット６を制御するための制御指令値を生成する。判定部５ｂは、詳細は後述するが、マスター側制御装置３との間のＵＤＰ通信が正しく行われたか否かを判定する。
【００４４】
補正部５ｃは、詳細は後述するが、判定部５ｂによってマスター側制御装置３との間のＵＤＰ通信が正しく行われなかったと判定された場合に、今回の制御で用いる指令値を補正する。これら指令値生成部５ａ、判定部５ｂ、補正部５ｃは、図示しないＣＰＵにてプログラムを実行することにより、ソフトウェアで実現されている。
【００４５】
通信部５ｅは、マスター側制御装置３から送信された制御情報を受信する。なお、詳細は後述するが、通信部５ｅは、制御情報以外の情報の通信も可能である。記憶部５ｄは、詳細は後述するが、少なくとも受信した指令値と前回の制御に用いた指令値を記憶している。このとき、記憶部５ｄに、指令値と速度情報とを含む制御情報を記憶することもできる。なお、本実施形態では、記憶部５ｄとして、スレーブ側制御装置５のメインプログラム等が記憶されている不揮発性の記憶媒体ではなく、ＲＡＭのようなメモリ上に設けられる記憶領域を想定している。
【００４６】
次に、上記した構成の作用について説明する。
まず、図３から図５を参照しながら、付加軸トラッキングにおける処理の概略と、スレーブ側制御装置５に生じる問題点とを説明する。また、以下では、説明の簡略化のために、マスター側制御装置３とスレーブ側制御装置５に共通する説明をする場合には単に制御装置と称し、マスター側ロボット４とスレーブ側ロボット６に共通する説明をする場合には単にロボットと称する。
【００４７】
図３に示すように、制御装置は、まず、搬送装置２によって搬送されているワーク９の位置（Ｅ０）を特定する。このＥ０は、マスター側制御装置３であれば検出器１０で検出した位置に基づいて特定でき、スレーブ側制御装置５であればマスター側制御装置３から位置データが送信されることによって特定できる。
【００４８】
また、このＥ０は、１回のトラッキング中の基準となる位置であり、各制御装置は、このＥ０に対して搬送装置２による移動量を加味することによりトラッキングを行っている。以下、Ｅ０を、便宜的に基準位置と称する。なお、トラッキングの基準となる基準位置は、データの信頼性が担保されるＴＣＰ通信によってスレーブ側制御装置５に送信される。ただし、１回のトラッキング中に基準位置が変化することはないため、１回のトラッキングの最初に１度送信できればよく、繰り返し送信されることはない
【００４９】
さて、特定した基準位置がロボット座標系における（ｘ０，ｙ０，ｚ０）であったとすると、制御装置は、待機位置にあるロボットが基準位置を目標として動作するための制御指令値（Ｐｔａｓｋ）を生成する。以下、基準位置を目標としてロボットを動作させることを、便宜的に作業動作と称する。また、制御指令値（Ｐｔａｓｋ）を、作業動作の制御指令値とも称する。
【００５０】
続いて、制御装置は、搬送装置２の指令値に基づいて、作業動作を開始してからの搬送装置２の移動量（ΔＣｏｎｖ）を求める。この場合、マスター側制御装置３であれば、自身が生成した指令値を用いて移動量（ΔＣｏｎｖ）を求め、スレーブ側制御装置５であれば、マスター側制御装置３から送信された指令値を用いて移動量（ΔＣｏｎｖ）を求めることになる。
【００５１】
そして、制御装置は、作業動作を開始する際に生成した制御指令値（Ｐｔａｓｋ）を搬送方向に移動量（ΔＣｏｎｖ）分だけオフセットさせて新たな制御指令値（Ｐｒｏｂ）を生成し、その制御指令値（Ｐｒｏｂ）を用いてロボットがワーク９に追従するように制御する。このようにして、ワーク９の移動に追従させながらロボットに作業をさせるトラッキングが行われている。
【００５２】
ところで、トラッキングの追従性を高めるためには、搬送装置２の移動量（ΔＣｏｎｖ）を求めるための指令値を、より細かい周期で生成すればよいと考えられる。そのため、マスター側制御装置３は、搬送装置２の指令値を制御周期（ΔＴ）ごとに生成し、生成した指令値を、スレーブ側制御装置５にその都度送信する。この制御周期（ΔＴ）は、おおよそ数ミリ秒程度である。
【００５３】
しかし、スレーブ側制御装置５の数が増えてくると、それぞれのスレーブ側制御装置５との間で１対１のＴＣＰ通信を制御周期（ΔＴ）ごとに行うことは困難である。これは、ＴＣＰ通信の場合、データの信頼性の確保のためにハンドシェイクが必要になり、場合によって再送等の処理も必要になるためである。そのため、本実施形態では、マスター側制御装置３は、スレーブ側制御装置５に一斉に送信すべき搬送装置２の指令値の送信に、ＵＤＰ（User Datagram Protocol）を用いるＵＤＰ通信を採用している。
【００５４】
これにより、いわゆるコネクションレス型通信であるＵＤＰ通信ではデータそのものの信頼性は担保されないものの、ＴＣＰ通信に比べると通信の負荷を大きく低減した状態で１対多の通信が可能となる。
【００５５】
その一方で、ＵＤＰ通信を採用したことにより、スレーブ側制御装置５に問題が生じることになる。具体的には、図４に示すように、スレーブ側制御装置５の通信部５ｅは、マスター側制御装置３からＵＤＰ通信により指令値を受信すると、記憶領域に最新データとして記憶する。この記憶領域は、記憶部５ｄに相当する。なお、詳細は後述するが、最新データには、指令値と速度情報とが記憶される。また、図４に示す過去データについては後述する。
【００５６】
続いて、スレーブ側制御装置５の指令値生成部５ａは、最新データとして記憶領域に記憶されている指令値を読み出し、読み出した指令値に基づいて搬送装置２の移動量（ΔＣｏｎｖ）を求め、求めた移動量（ΔＣｏｎｖ）分オフセットさせた新たな制御指令値（Ｐｒｏｂ）を生成し、スレーブ側ロボット６に対して出力して、スレーブ側ロボット６を制御する。
【００５７】
この場合、ＵＤＰ通信が正しく行われた場合には、記憶領域の最新データは、直近にマスター側制御装置３から送信された指令値が記憶されることになる。その一方で、ＵＤＰ通信が正しく行われなかった場合には、記憶領域の最新データには、受信に失敗したことから指令値が更新されず、以前に受信した指令値がそのまま記憶された状態となる。
【００５８】
そして、スレーブ側制御装置５の指令値生成部５ａは、ＵＤＰ通信が正しく行われたか否かに関わらず、最新データとして記憶されている指令値に基づいてスレーブ側ロボット６に与える制御指令値を生成および出力するため、ＵＤＰ通信が正しく行われなかった場合には、前回の制御に用いた指令値と同じ値に基づいてスレーブ側ロボット６に与える制御指令値を生成することになる。
【００５９】
ここで、搬送装置２の指令値は、上記したように目標位置を示すものである。そのため、記憶領域の最新データが更新されていない状態は、目標位置が前回と同じ状態、つまりは、搬送装置２が停止している状態を意味することになる。そのため、スレーブ側制御装置５は、搬送装置２が停止していると判断して、スレーブ側ロボット６を減速または停止させるような制御指令を生成することになる。
【００６０】
その結果、図５にグラフＧ１として示すように、搬送装置２の実速度ここでは指令速度が一定値Ｖｃであったとする。そして、例えば時刻ｔ０においてＵＤＰ通信が正しく行われなかったとすると、スレーブ側制御装置５は、上記したように前回の制御に用いた指令値に基づいて搬送装置２の速度を演算することから、搬送装置２が停止したと判断する。その結果、比較例としてグラフＧ３に示すように、スレーブ側ロボット６を停止あるいは減速させるような制御が行われることから、スレーブ側ロボット６の速度が低下して搬送装置２の移動に追従できなくなる。
【００６１】
そして、時刻ｔ１においてＵＤＰ通信が正しく行われたとすると、スレーブ側制御装置５は、更新された指令値に基づいて搬送装置２の速度を求める。この場合、時刻ｔ０から時刻ｔ１までが１制御周期（ΔＴ）であったとすると、実際には停止していない搬送装置２の目標位置は２制御周期（２ΔＴ）先になっており、その目標位置に到達するために、スレーブ側制御装置５は、スレーブ側ロボット６を高速で移動させることになる。
【００６２】
また、スレーブ側制御装置５は、時刻ｔ２においてＵＤＰ通信が正しく行われた際には、最新の指令値に基づいて、１制御周期（ΔＴ）分の距離を移動させるべく、スレーブ側ロボット６の速度を低下させる。
【００６３】
このように、マスター側制御装置３の負荷を低減するためにＵＤＰ通信を採用した場合には、スレーブ側ロボット６の速度が不連続的に変化するといった問題を引き起こすおそれがある。そして、そのような動作は、ロボットの振動を引き起こして動作サイクルが長くなる等の不具合を発生させるおそれがある。
【００６４】
かといって、ＵＤＰ通信の成否をマスター側制御装置３に問い合わせたり再送を要求したりするのは、結果的にマスター側制御装置３およびスレーブ側制御装置５の負荷を増加させることになり、負荷を低減するためにＵＤＰ通信を採用するという主旨に反することになる。
【００６５】
そこで、本実施形態では、マスター側制御装置３の負荷およびスレーブ側制御装置５の負荷を低減しつつ、且つ、スレーブ側制御装置５が単独で、ＵＤＰ通信が正しく行われたか否かの判断と、ＵＤＰ通信が正しく行われなかった場合の対処とを行うことができるようにしている。
【００６６】
スレーブ側制御装置５は、図６に示す補正処理を行っている。なお、この処理は判定部５ｂや補正部５ｃで行われるものであるが、説明の簡略化のために、以下ではスレーブ側制御装置５を主体にして説明している。
【００６７】
まず、スレーブ側制御装置５は、作業動作の制御指令値（Ｐｔａｓｋ）を生成する（Ｓ１）。なお、作業動作の制御指令値（Ｐｔａｓｋ）はトラッキング中には変化しないため、最初の１回目に生成した値を再利用することができる。続いて、スレーブ側制御装置５は、記憶領域に記憶されている最新データを読み出すことで、搬送装置２の指令値を取得する（Ｓ２）。このステップＳ２で読み出された補正値は、今回の制御に用いる補正値（Ｐｎｅｗ）に相当する。
【００６８】
さて、取得した指令値をそのまま用いると、上記したようにＵＤＰ通信が正しく行われていなかった場合にスレーブ側ロボット６の速度が不連続に変化する。そこで、スレーブ側制御装置５は、ＵＤＰ通信が正しく行われているか否かの判定と、ＵＤＰ通信が正しく行われなかった場合の対処つまりは指令値の補正とを行っている。さらに、ロボットシステム１では、判定と補正とを、通信の負荷を低減する形で行えるようにしている。
【００６９】
まず、ＵＤＰ通信が正しく行われているか否かをどのように判定するかについて説明する。スレーブ側制御装置５は、制御に用いた指令値を記憶領域に過去データ（図４参照）としてその都度記憶しており、ステップＳ２で取得した今回の制御に用いる指令値と、過去データとして記憶されている前回の制御に用いた指令値とが一致するか否かを判定する（Ｓ３）。なお、過去データには、前回の制御に用いた速度情報も記憶することができる。
【００７０】
上記したように、指令値は搬送装置２の目標位置であるため、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致していなければ、最新データが更新されており、ＵＤＰ通信が正しく行われたと判定することができる。そのため、スレーブ側制御装置５は、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致しない場合には（Ｓ３：ＮＯ）、ステップＳ６に移行して搬送装置２の移動量（ΔＣｏｎｖ）を求める。
【００７１】
これに対して、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致している場合には、最新データが更新されていないことから、ＵＤＰ通信が正しく行われなかったという疑義がある。ただし、マスター側制御装置３が緊急停止等により同じ指令値を送信したなど、ＵＤＰ通信が正しく行われた可能性を完全に否定はできない。
【００７２】
そこで、スレーブ側制御装置５は、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致する場合には（Ｓ３：ＹＥＳ）、さらに、今回の制御に用いる搬送装置２の速度が所定の基準値を超えているか否かを判定する（Ｓ４）。本実施形態では、所定の基準値として零を採用している。つまり、ステップＳ４では、スレーブ側制御装置５は、搬送装置２の速度が零であるか否かを判定している。
【００７３】
なお、搬送装置２の速度は、マスター側制御装置３から送信される速度情報に基づいて求めることができる。この場合、ＵＤＰ通信が正しく行われなかった場合には最新データが更新されないことから、最新データの内容と前回の制御に用いたデータを記憶している過去データの内容とが一致することになる。そのため、ステップＳ４では、最新データがまたは過去データのいずれかに記憶されている速度情報を用いれば直近の搬送装置２の速度を求めることができる。
【００７４】
スレーブ側制御装置５は、搬送装置２の速度が所定の基準値を超えていないと判定した場合には（Ｓ４：ＮＯ）、ステップＳ６に移行して搬送装置２の移動量（ΔＣｏｎｖ）を求める。これは、搬送装置２の速度が零であると判定された場合には、今回と前回とで指令値が一致することになるため、搬送装置２が実際に停止していると考えることができるためである。
【００７５】
これに対して、スレーブ側制御装置５は、搬送装置２の速度が所定の基準値を超えていると判定した場合には（Ｓ４：ＹＥＳ）、搬送装置２の指令値を補正する（Ｓ５）。これは、搬送装置２の速度が零出ないにも関わらず前回と今回の指令値が一致したと言うことは、最新データが更新されていない、つまりは、ＵＤＰ通信が正しく行われなかったと判断できるためである。
【００７６】
このステップＳ５では、スレーブ側制御装置５は、ステップＳ２で取得した指令値（Ｐｎｅｗ）を、ステップＳ４で求めた搬送装置２の速度（Ｖｃ）と制御周期（ΔＴ）とを用いて、以下の（１）式のように補正する。
Ｐｎｅｗ＝Ｐｎｅｗ＋Ｖｃ×ΔＴ    ・・・（１）
【００７７】
すなわち、スレーブ側制御装置５の補正部５ｃは、今回の制御に用いる指令値（Ｐｎｅｗ）を、搬送装置２の速度（Ｖｃ）に制御周期（ΔＴ）を乗じた値を加えた値に補正する。なお、補正が必要になるのは前回と今回の指令値が一致している場合であるため、つまり、Ｐｎｅｗ＝Ｐｐｒｅｖの場合であるため、上記の（１）式は、以下のように示すこともできる。
【００７８】
これにより、前回の制御に用いる指令値が搬送装置２の速度に応じた値、つまりは、搬送装置２の移動量を考慮した新たな目標位置に合うように補正される。したがって、搬送装置２の速度が零ではない状況、つまりは、ワーク９が移動していると判断できる状況において、スレーブ側ロボット６が誤って停止あるいは減速することが防止される。
【００７９】
そして、スレーブ側制御装置５は、補正した指令値に基づいて、搬送装置２の移動量を求め（Ｓ６）、ステップＳ１で生成した作業動作の制御指令値に移動量を合成した制御指令値、すなわち、今回の制御に用いる最終的な制御指令値を生成する（Ｓ７）。これにより、スレーブ側制御装置５は、スレーブ側ロボット６を誤って停止あるいは減速させることを回避することができる。
【００８０】
これにより、図５に実施例として示すグラフＧ４のように、補正ありの場合には、スレーブ側ロボット６の速度は、グラフＧ３のように停止や減速することなく、搬送装置２の実際の速度（Ｖｃ）とほぼ一致した状態で、つまりは、ワーク９の実際の移動に追従した状態となる。
【００８１】
このような補正をすることにより、ＵＤＰ通信が正しく行われているか否かの判定と、ＵＤＰ通信が正しく行われなかった場合の対処とを行うことができる。そして、上記した補正の手法には、通信の負荷を低減するという効果も含まれている。
【００８２】
例えば、ＵＤＰ通信が正しく行われているか否かを判定するだけであれば、マスター側制御装置３から送信する通信パケットに、通し番号や時刻情報を付加することが考えられるしかし、その場合には、ＵＤＰ通信が正しく行われていないことは判定できるものの、その対処ができなくなる。
【００８３】
しかし、指令値の再送を要求したりすると通信の負荷が増大することから、上記したようにＵＤＰ通信を用いるという主旨に反することになる。また、各制御装置は個別に時刻を管理しており、必ずしも時刻が完全に同期している訳ではないため、時刻情報を用いても、ＵＤＰ通信が正しく行われているか否かの判定をできないおそれもある。
【００８４】
そのため、マスター側制御装置３から送信されるデータとしては、ＵＤＰ通信が正しく行われているか否かの判定と、ＵＤＰ通信が正しく行われなかった場合の対処とを行うことができるものが望まれる。その一方で、送信するデータサイズが大きくなると、通信の負荷を増加させるおそれがある。
【００８５】
そこで、本実施形態では、そもそもの制御に必要とされる搬送装置２に与える指令値に加えて、搬送装置２の速度を特定可能な速度情報を通信パケットに含めて送信している。これら指令値と速度情報とがマスター側制御装置３から送信されることにより、スレーブ側制御装置５は、上記したようにＵＤＰ通信が正しく行われているか否かの判定と、ＵＤＰ通信が正しく行われなかった場合の対処とを行うことができる。
【００８６】
換言すると、搬送装置２の速度情報は、それ１つでＵＤＰ通信が正しく行われているか否かの判定とＵＤＰ通信が正しく行われなかった場合の対処とを行うことができることから、通信の負荷を低減しつつ判定と対処とを行うために好適なデータであると考えられる。
【００８７】
また、搬送装置２の速度は、マスター側制御装置３が管理する情報であり、マスター側ロボット４を制御するために用いられていることから、判定と対処とを行うために新たにデータを生成する必要がなく、マスター側制御装置３の処理の負荷を増加させることもない。つまり、マスター側制御装置３から送信するデータとして速度情報を採用した構成には、ロボットシステム１において非常に重要な技術的意義を有している。
【００８８】
さらに、本実施形態では、速度情報として、駆動軸に今回送る指令値をエンコーダ８のパルス値に変換した値と、前回送った指令値をエンコーダ８のパルス値に変換した値との差分であるパルス差分値を採用している。搬送装置２の速度そのものを送信しようとする場合には、位置を高精度に制御している場合にはどうしても小数点が含まれることになるため、速度そのものを送信する場合には、Ｃ言語でいうｄｏｕｂｌｅ型の８バイトのデータを送信する必要がある。
【００８９】
これに対して、パルス差分値は、整数のデータとして得られるものであり、通信パケットとして送信する場合には、Ｃ言語でいうｌｏｎｇ型の４バイトのデータで送信することができる。つまり、速度情報としてエンコーダ８のパルス差分値を採用することにより、判定と対処とに必要となるデータサイズを小さくすることができ、通信の負荷を抑制することができる。
【００９０】
このようにして今回の制御に用いる制御指令値を生成すると、スレーブ側制御装置５は、ステップＳ２で取得した指令値を、記憶領域の過去データとして記憶する。この記憶した過去データは、次の制御における判定に用いられる。このとき、指令値に限らず、速度情報を併せて記憶部５ｄに記憶する構成とすることもできる。
【００９１】
なお、図６では説明の簡略化のために処理を終了するとしているが、トラッキング中には、必要に応じてステップＳ２以降の処理が繰り返し手実行されることになる。
【００９２】
以上のように、本実施形態のロボットシステム１は、マスター側制御装置３の負荷およびスレーブ側制御装置５の負荷を低減しつつ、且つ、スレーブ側制御装置５が単独で、ＵＤＰ通信が正しく行われたか否かの判断と、ＵＤＰ通信が正しく行われなかった場合の対処とを行うことができるように構成されている。
【００９３】
以上説明した実施形態によれば、次のような効果を得ることができる。
ロボットシステム１は、搬送装置２とロボットの動作とを一括で制御する付加軸トラッキングを行うものであって、搬送装置２を制御するマスター側制御装置３と、マスター側制御装置３によって制御されるマスター側ロボット４と、マスター側制御装置３と通信可能に接続されている１台以上のスレーブ側制御装置５と、スレーブ側制御装置５によってそれぞれ制御される１台以上のスレーブ側ロボット６と、を備えている。
【００９４】
マスター側制御装置３は、搬送装置２に与える指令値を生成する指令値生成部５ａと、搬送装置２の速度を特定可能な速度情報を生成する速度情報生成部３ｂと、生成した指令値と速度情報とを制御情報としてＵＤＰ通信によってスレーブ側制御装置５に送信する通信部５ｅとを有している。このようにＵＤＰ通信により制御情報を送信する構成としたことにより、ハンドシェイクが必要となるＴＣＰ通信を行う場合に比べて、通信に要する負荷を大きく低減することができる。
【００９５】
また、スレーブ側制御装置５は、マスター側制御装置３から送信された制御情報を受信する通信部５ｅと、前回の制御に用いた制御情報を記憶する記憶部５ｄと、マスター側制御装置３との間のＵＤＰ通信が正しく行われたか否かを判定する判定部５ｂと、判定部５ｂによってマスター側制御装置３との間のＵＤＰ通信が正しく行われなかったと判定された場合に、今回の制御に用いる指令値を補正する補正部５ｃと、を有している。
【００９６】
この判定部５ｂは、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致する場合であって、且つ、今回の制御に用いる搬送装置２の速度が所定の基準値を超えている場合に、マスター側制御装置３との間のＵＤＰ通信が正しく行われなかったと判定し、補正部５ｃは、今回の制御に用いる指令値を、搬送装置２の速度と制御周期とを乗じた値を加えた値に補正する。
【００９７】
このように、制御情報として指令値と速度情報とを送信することにより、スレーブ側制御装置５は、単独で、ＵＤＰ通信が正しく行われたか否かの判断と、ＵＤＰ通信が正しく行われなかった場合の対処とを行うことが可能となる。換言すると、送信する制御情報として速度情報を採用したことにより、１つのデータで上記した判断と対処とが可能となる。
【００９８】
このとき、速度情報は、マスター側制御装置３の制御で用いられるデータであり、新たな処理をすることなく得られる値である。また、元々制御に必要な指令値に、速度情報という１つのデータを加えて送信すればよいことから、マスター側制御装置３の負荷を増加させることがないとともに、通信に要する負荷が過度に増加することを低減できる。
【００９９】
したがって、マスター側制御装置３の負荷およびスレーブ側制御装置５の負荷を低減しつつ、且つ、スレーブ側制御装置５が単独で、ＵＤＰ通信が正しく行われたか否かの判断と、ＵＤＰ通信が正しく行われなかった場合の対処とを行うことができる。
【０１００】
また、上記の補正を行うことにより、トラッキングの追従性を向上させることができる。さらに、仮にスレーブ側制御装置５の数が増減しても、マスター側制御装置３の処理は基本的には変わらないことから、システムの自由度や拡張性を確保することもできる。
【０１０１】
また、ロボットシステム１では、判定部５ｂは、基準値を零に設定する。これにより、実際の搬送装置２が移動しているか否かの判定を容易に行うことができる。
【０１０２】
また、ロボットシステム１では、マスター側制御装置３の速度情報生成部３ｂは、搬送装置２の駆動軸に今回送る指令値をエンコーダ８のパルス値に変換した値と、前回送った指令値をエンコーダ８のパルス値に変換した値との差分であるパルス差分値を、を、速度情報として送信する。エンコーダ８のパルス差分値は、マスター側制御装置３の制御で用いられるデータであり、新たな処理をすることなく得られる値である。また、パルス差分値は、整数として得られるデータであるため、小数点を含む速度そのものを送信する場合に比べて、送信時に必要なデータ量を削減することができる。したがって、通信の負荷をさらに低減することができる。
【０１０３】
また、スレーブ側制御装置５は、搬送装置２とロボットの動作とを一括で制御する付加軸トラッキングを行うロボットシステム１において、搬送装置２を制御するマスター側制御装置３から送信された制御情報に基づいて動作するものであって、上記した通信部５ｅと、記憶部５ｄと、判定部５ｂと、補正部５ｃと、を有している。このようなロボットの制御装置によっても、マスター側制御装置３の負荷およびスレーブ側制御装置５の負荷を低減しつつ、且つ、スレーブ側制御装置５が単独で、ＵＤＰ通信が正しく行われたか否かの判断と、ＵＤＰ通信が正しく行われなかった場合の対処とを行うことができるなど、ロボットシステム１と同様の効果を得ることができる。
【０１０４】
実施形態では（１）式を用いて指令値を補正したが、記憶部５ｄに過去の複数の速度情報を履歴として記憶しておき、その履歴から搬送装置２の速度の変化傾向を求め、当該速度の変化傾向を加味して指令値を補正する構成とすることもできる。例えば、（１）式の右辺第２項に係数（α）を追加し、搬送装置２の速度が増加傾向にある場合にはαを１より大きく設定し、減少傾向にある場合にはαを１より小さく設定することで、より実際の速度変化に応じた補正を行うことができる。なお、αを速度の関数とすることもできる。
【０１０５】
実施形態では所定の基準値を零に設定する例を示したが、所定の基準値は、例えば搬送装置２の性能や仕様に基づいて、１制御周期で速度が零になることがないと判断できる値に設定することができる。
【０１０６】
実施形態では所定の基準値が固定値である例を示したが、所定の基準値を変更する構成とすることもできる。例えば、相対的に高速で移動している場合には停止するまでにある程度の時間が掛かると思われるため基準値を高めに設定し、相対的に低速で移動している場合には停止するまでの時間が短くなると想定されるため基準値を低めに設定する構成とすることができる。あるいは、記憶部５ｄに過去の速度情報を履歴として記憶しておき、搬送装置２の速度が増加傾向にある場合には基準値を高めに設定し、減少傾向にある場合には基準値を低めに設定する構成とすることもできる。
【０１０７】
実施形態では指令値を生成する制御周期（ΔＴ）ごとに指令値を送信する例を示したが、指令値を生成する周期内に複数回送信することもできる。
ロボットシステム１は、１台のマスター側制御装置３で複数の搬送装置２を制御するような構成にも適用することができる。
【０１０８】
実施形態ではエンコーダ８のパルス差分値を速度情報として送信する例を示したが、搬送装置２の速度を検出する速度計により取得した速度を速度情報として送信することもできる。
上記した実施形態はあくまでも例示であり、本発明の技術的範囲を限定することは意図していない。
【符号の説明】
【０１０９】
図面中、１はロボットシステム、２は搬送装置、３はマスター側制御装置（マスター側の制御装置）、３ａは指令値生成部、３ｂは速度情報生成部、３ｃは通信部、４はマスター側ロボット（マスター側のロボット）、５はスレーブ側制御装置（スレーブ側の制御装置）、５ａは指令値生成部、５ｂは判定部、５ｃは補正部、５ｄは記憶部、５ｅは通信部、６はスレーブ側ロボット（スレーブ側のロボット）、７はモータ（付加軸）、８はエンコーダを示す。
【図１】
2020146766.tif 000003
【図２】
2020146766.tif 000004
【図３】
2020146766.tif 000005
【図４】
2020146766.tif 000006
【図５】
2020146766.tif 000007
【図６】
2020146766.tif 000008