IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーウェーブの特許一覧

<>
  • 特許-ロボットシステム、ロボットの制御装置 図1
  • 特許-ロボットシステム、ロボットの制御装置 図2
  • 特許-ロボットシステム、ロボットの制御装置 図3
  • 特許-ロボットシステム、ロボットの制御装置 図4
  • 特許-ロボットシステム、ロボットの制御装置 図5
  • 特許-ロボットシステム、ロボットの制御装置 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-13
(45)【発行日】2023-02-21
(54)【発明の名称】ロボットシステム、ロボットの制御装置
(51)【国際特許分類】
   B25J 13/00 20060101AFI20230214BHJP
【FI】
B25J13/00 Z
B25J13/00 A
【請求項の数】 5
(21)【出願番号】P 2019043670
(22)【出願日】2019-03-11
(65)【公開番号】P2020146766
(43)【公開日】2020-09-17
【審査請求日】2022-02-17
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】井手 慧
【審査官】松浦 陽
(56)【参考文献】
【文献】特開平11-090871(JP,A)
【文献】特開2011-083841(JP,A)
【文献】特開平09-131683(JP,A)
【文献】特開平08-336782(JP,A)
【文献】特開2006-180223(JP,A)
【文献】特開2004-314255(JP,A)
【文献】特開2005-111607(JP,A)
【文献】米国特許出願公開第2010/0063625(US,A1)
【文献】米国特許出願公開第2010/0017033(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
搬送装置とロボットの動作とを一括で制御する付加軸トラッキングを行うロボットシステムであって、
前記搬送装置を制御するマスター側の制御装置と、
前記マスター側の制御装置によって制御されるマスター側のロボットと、
前記マスター側の制御装置と通信可能に接続されている1台以上のスレーブ側の制御装置と、
前記スレーブ側の制御装置によってそれぞれ制御される1台以上のスレーブ側のロボットと、を備え、
前記マスター側の制御装置は、
前記搬送装置に与える指令値を生成する指令値生成部と、
前記搬送装置の速度を特定可能な速度情報を生成する速度情報生成部と、
生成した指令値と速度情報とを制御情報としてUDP通信によって前記スレーブ側の制御装置に送信する通信部と、を有し、
前記スレーブ側の制御装置は、
前記マスター側の制御装置から送信された制御情報を受信する通信部と、
前回の制御に用いた指令値を記憶する記憶部と、
前記マスター側の制御装置との間のUDP通信が正しく行われたか否かを判定する判定部と、
前記判定部によって前記マスター側の制御装置との間のUDP通信が正しく行われなかったと判定された場合に、今回の制御に用いる指令値を補正する補正部と、を有し、
前記判定部は、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致する場合であって、且つ、今回の制御に用いる前記搬送装置の速度が所定の基準値を超えている場合に、前記マスター側の制御装置との間のUDP通信が正しく行われなかったと判定し、
前記補正部は、今回の制御に用いる指令値を、前記搬送装置の速度と制御周期とを乗じた値を加えた値に補正するロボットシステム。
【請求項2】
前記判定部は、前記基準値を零に設定する請求項1記載のロボットシステム。
【請求項3】
前記記憶部は、制御に用いた複数の速度情報を履歴として記憶し、
前記補正部は、前記記憶部に記憶されている履歴から前記搬送装置の速度の変化傾向を求め、当該速度の変化傾向を加味して指令値を補正する請求項1記載のロボットシステム。
【請求項4】
前記マスター側の制御装置の前記速度情報生成部は、前記搬送装置の駆動軸に今回送る指令値をエンコーダのパルス値に変換した値と、前回送った指令値をエンコーダのパルス値に変換した値との差分であるパルス差分値を、速度情報として送信する請求項1から3のいずれか一項記載のロボットシステム。
【請求項5】
搬送装置とロボットの動作とを一括で制御する付加軸トラッキングを行うロボットシステムにおいて、前記搬送装置を制御するマスター側の制御装置から送信された制御情報に基づいて動作するスレーブ側のロボットの制御装置であって、
前記マスター側の制御装置は、制御情報として、前記搬送装置に与える指令値と前記搬送装置の速度を特定可能な速度情報と接続されている全ての前記スレーブ側の制御装置にUDP通信により一斉に送信し、
前記マスター側の制御装置から送信された制御情報を受信する通信部と、
前回の制御に用いた指令値を記憶する記憶部と、
前記マスター側の制御装置との間のUDP通信が正しく行われたか否かを判定する判定部と、
前記判定部によって前記マスター側の制御装置との間のUDP通信が正しく行われなかったと判定された場合に、今回の制御に用いる指令値を補正する補正部と、を有し、
前記判定部は、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致する場合であって、且つ、今回の制御に用いる前記搬送装置の速度が所定の基準値を超えている場合に、前記マスター側の制御装置との間のUDP通信が正しく行われなかったと判定し、
前記補正部は、今回の制御に用いる指令値を、前記搬送装置の速度と制御周期とを乗じた値を加えた値に補正するロボットの制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットシステム、ロボットの制御装置に関する。
【背景技術】
【0002】
ロボットの利用形態として、搬送装置によって搬送されるワークの位置の変化に追従させながら作業を行うトラッキングが知られている。このとき、搬送装置の制御もロボットの制御装置によって行うことにより、トラッキングの精度を向上させることが提案されている(例えば、特許文献1参照)。以下、ロボットの制御装置によりロボットの関節部以外の駆動軸ここでは例えば搬送装置の駆動軸を制御しながらトラッキングを行う態様を、付加軸トラッキングと称する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平10-105217号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
さて、付加軸トラッキングでは、搬送装置を制御する1台のマスター側のロボットの制御装置と、マスター側の制御装置から送信される指令値に基づいて動作する1台以上のスレーブ側のロボットの制御装置とを設け、複数台のロボットで作業を行うロボットシステムを構築することがある。
【0005】
このとき、マスター側の制御装置は、搬送装置によって搬送されるワークの初期位置をスレーブ側の制御装置に通知した後、自身でもロボットを制御しつつ、搬送装置に与える指令値を生成してスレーブ側の制御装置に都度送信している。なお、搬送装置に与える指令値は、分かり易く言えば搬送装置の目標位置を示す値であり、この指令値が分かれば、搬送装置の目標位置つまりはワークが搬送される位置を推定することが可能となる。
【0006】
そして、スレーブ側の制御装置は、直近に受信した指令値に基づいてワークの位置を推定し、スレーブ側のロボットをワークの移動に追従するように動作させてトラッキングを行っている。
【0007】
しかし、マスター側の制御装置は、上記したように、搬送装置の制御だけではなく、ロボットの制御もしている。そして、マスター側の制御装置は、接続されている全てのスレーブ側の制御装置に対して指令値を送信する必要があるものの、接続されるスレーブ側の制御装置は必ずしも1台とは限らない。そのため、通信に要する負荷が高くなると、マスター側の制御装置がロボットの制御する際に支障をきたすおそれがある。
【0008】
また、スレーブ側の制御装置においては、通信が正しく行われなかった状態で制御を行うと、最新の指令値を受け取っていないことからトラッキングの追従性が悪化するおそれがある。かといって、受信できたか否かを確認して新しい指令値を再送してもらうような処理を行う構成にすると、スレーブ側の制御装置だけでなくマスター側の制御装置の負荷も増加させてしまう。
【0009】
そこで、マスター側の制御装置の負荷およびスレーブ側の制御装置の負荷を低減しつつ、且つ、スレーブ側の制御装置が単独で、通信が正しく行われたか否かの判断と、通信が正しく行われなかった場合の対処とを行うことができるロボットシステム、ロボットの制御装置を提供する。
【課題を解決するための手段】
【0010】
請求項1に記載した発明では、ロボットシステムは、搬送装置とロボットの動作とを一括で制御する付加軸トラッキングを行うものであって、搬送装置を制御するマスター側の制御装置と、マスター側の制御装置によって制御されるマスター側のロボットと、マスター側の制御装置と通信可能に接続されている1台以上のスレーブ側の制御装置と、スレーブ側の制御装置によってそれぞれ制御される1台以上のスレーブ側のロボットとを備えている。
【0011】
そして、マスター側の制御装置は、搬送装置に与える指令値を生成する指令値生成部と、搬送装置の速度を特定可能な速度情報を生成する速度情報生成部と、生成した指令値と速度情報とを制御情報としてUDP通信によってスレーブ側の制御装置に送信する通信部とを有している。
【0012】
UDP(User Datagram Protocol)を用いて通信するUDP通信は、いわゆるコネクションレス型通信であり、データそのものの信頼性は担保されないものの、データそのものの信頼性が担保されるTCP(Transmission Control Protocol)を用いて通信するTCP通信と比べると、通信に要する負荷が大きく低減される。
【0013】
そのため、スレーブ側の制御装置に対して繰り返し送信する必要がある制御情報をUDP通信で行うことにより、トラッキング時の通信負荷を低減しつつ、1対多の通信が可能となる。
ただし、UDP通信ではデータの信頼性が担保されないため、そのままロボットの制御に用いることは困難である。また、UDP通信では、通信が正しく行われたことの保証や確認がトランスポート層では行われないため、直近のUDP通信が正しく行われた場合には、その際に受信した指令値が最新の指令値として記憶される一方、UDP通信が正しく行われず新しい指令値が受信されていない場合でも、既に受信していた過去の指令値が、そのまま最新の指令値として扱われる。
【0014】
つまり、UDP通信が正しく行われなかった場合には、最新の指令値が更新されることがなく、スレーブ側の制御装置は、UDP通信が正しく行われなかった場合には、前回の制御時と同じ指令値を用いてスレーブ側のロボットを制御することになる。なお、それ以降にUDP通信が正しく行われた場合には、最新の指令値は更新されるため、スレーブ側の制御装置は、正しい最新の指令値に基づいて制御することになる。
【0015】
ただし、マスター側の制御装置から送信される指令値は、上記したように搬送装置の目標位置を示す値であるため、指令値が前回と同じであるということは、搬送装置の目標位置が前回と同じ状態、つまりは、搬送装置が停止している状態を意味することになる。
【0016】
その場合、スレーブ側の制御装置は、搬送装置が停止していると判断して、ロボットを減速または停止させるような制御を行うことになる。そして、スレーブ側の制御装置は、それ以降にUDP通信が正しく行われて最新の指令値が更新されたときには、更新された目標位置に移動させるために、減速または停止したロボットを高速に動作させることになる。
【0017】
このように、通信の負荷を低減するためにUDP通信を採用した場合には、スレーブ側のロボットの速度が不連続的に変化するといった問題を引き起こすおそれがある。このとき、UDP通信の成否をマスター側の制御装置に問い合わせたり再送を要求したりすることは、結果的にマスター側の制御装置およびスレーブ側の制御装置の負荷を増加させることになるため、負荷を低減するためにUDP通信を採用するという主旨に反することになる。
【0018】
そのため、スレーブ側の制御装置には、マスター側の制御装置から送信された制御情報を受信する通信部と、前回の制御に用いた制御情報を記憶する記憶部と、マスター側の制御装置との間のUDP通信が正しく行われたか否かを判定する判定部と、判定部によってマスター側の制御装置との間のUDP通信が正しく行われなかったと判定された場合に、今回の制御に用いる指令値を補正する補正部とを備えている。
【0019】
そして、判定部は、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致する場合であって、且つ、今回の制御に用いる搬送装置の速度が所定の基準値を超えている場合に、マスター側の制御装置との間のUDP通信が正しく行われなかったと判定する。
【0020】
搬送装置の指令値は、上記したように搬送装置の目標位置を示すデータである。そのため、今回の制御に用いる指令値が記憶部に記憶されている前回の指令値と一致する状態は、目標位置が前回と同じ状態つまりは搬送装置が停止している状態を意味することになる。ただし、仮に今回の指令値と前回の指令値が一致していたとしても、緊急停止等により実際に搬送装置を停止させることもあり、それだけではUDP通信が正しく行われなかったと判定することはできない。
【0021】
そこで、判定部は、搬送装置の速度を用いて、UDP通信が正しく行われなかったことの正否を判断する。これは、数ミリ秒といった制御周期でいきなり搬送装置の速度が零になるとは考えにくいため、今回の指令値と前回の指令値が一致している場合であって、且つ、搬送装置の速度が基準値を超えている場合には、それは、指令値が更新されていない状態すなわちUDP通信が正しく行われなかった状態であると判定できるためである。
【0022】
そして、補正部は、UDP通信が正しく行われなかったと判定された場合には、今回の制御に用いる指令値を、搬送装置の速度と制御周期とを乗じた値を加えた値に補正する。つまり、補正部は、UDP通信が失敗した場合には、指令値を、搬送装置の速度から推定される値に補正する。
【0023】
これにより、UDP通信が失敗した場合であっても、実際には停止していない搬送装置の移動つまりはワークの移動に追従させてスレーブ側のロボットの動作を制御することが可能となる。つまり、トラッキングの追従性を向上させることができるようになる。
【0024】
ところで、搬送装置の指令値と速度情報とを制御情報として送信すること、より詳細に言えば、指令値とともに送信するデータとして速度情報を選択したことには、以下に述べるように重要な技術的意義が存在している。
【0025】
まず、速度情報は、マスター側の制御装置の制御で元々用いられているデータであり、新たな処理をすることなく得られるデータである。そして、速度情報は、それ1つで、上記したようにスレーブ側の制御装置が単独でUDP通信が正しく行われたか否かの判定と、UDP通信が正しく行われなかった場合の対処とを行うことができるようになるでーたでもある。
【0026】
そのため、速度情報という1つのデータを加えて制御情報を送信すれば、仮にUDP通信が正しく行われなかったとしても、再送等の処理を行うことなく、スレーブ側の制御装置だけで補正を行うことができることから、マスター側の制御装置の処理の負荷や通信の負荷を増加させることがない。このため、ロボットシステムでは、ロボットを制御するための各種のパラメータのうち、制御情報として送信するデータに、速度情報を選択している。
【0027】
このような構成により、ロボットシステムは、マスター側の制御装置の負荷およびスレーブ側の制御装置の負荷を低減しつつ、且つ、スレーブ側の制御装置が単独で、UDP通信が正しく行われたか否かの判断と、UDP通信が正しく行われなかった場合の対処とを行うことができる。
【0028】
このとき、ロボットシステムは、仮にスレーブ側の制御装置の数が増減してもマスター側の制御装置の処理は基本的には変わらないことから、システム設計の自由度の向上や拡張性の確保を図ることもできる。
【0029】
請求項2に記載した発明では、ロボットシステムでは、判定部は、基準値を零に設定する。これにより、実際の搬送装置が移動しているか否かの判断を容易に行うことができる。したがって、スレーブ側制御装置の負荷が過度に増加することを抑制できる。
【0030】
請求項3に記載した発明では、記憶部は、制御に用いた複数の速度情報を履歴として記憶し、補正部は、記憶部に記憶されている履歴から搬送装置の速度の変化傾向を求め、当該速度の変化傾向を加味して指令値を補正する。例えば、搬送装置の速度が増加傾向にあった場合には1より大きな係数を掛けて補正し、搬送装置の速度が減少傾向にある場合には1より小さな係数を掛けて補正することに、搬送装置の実際の速度変化に対応させて補正を行うことができ、トラッキング時の追従性をより向上させることができる。
【0031】
請求項4に記載した発明では、マスター側の制御装置の速度情報生成部は、搬送装置の駆動軸に今回送る指令値をパルス値に変換した値と、前回送った指令値をパルス値に変換した値との差分であるパルス差分値を、速度情報として送信する。このパルス差分値は、マスター側の制御装置の制御で用いられるデータであり、新たな処理をすることなく得られる値である。また、パルス差分値は、整数として得られるデータであるため、小数点を含む速度そのものを送信する場合に比べて、送信時に必要なデータ量を削減することができる。したがって、通信の負荷をさらに低減することができる。
【0032】
請求項5に記載した発明では、スレーブ側の制御装置は、搬送装置とロボットの動作とを一括で制御する付加軸トラッキングを行うロボットシステムにおいて、搬送装置を制御するマスター側の制御装置から送信された制御情報に基づいて動作するものであって、上記した通信部と、記憶部と、判定部と、補正部と、を有している。
【0033】
このようなロボットの制御装置によっても、マスター側の制御装置の負荷およびスレーブ側の制御装置の負荷を低減しつつ、且つ、スレーブ側の制御装置が単独で、UDP通信が正しく行われたか否かの判断と、UDP通信が正しく行われなかった場合の対処とを行うことができるなど、上記したロボットシステムと同様の効果を得ることができる。
【図面の簡単な説明】
【0034】
図1】実施形態によるロボットシステムの構成を模式的に示す図
図2】ロボットシステムの電気的構成を模式的に示す図
図3】付加軸トラッキングの概略を説明するための図
図4】スレーブ側制御装置の処理の概略を説明するための図
図5】補正なしと補正ありでのロボットの速度例を模式的に示す図
図6】スレーブ側制御装置による処理の流れを模式的に示す図
【発明を実施するための形態】
【0035】
以下、実施形態について図面を参照しながら説明する。
図1に示すように、本実施形態のロボットシステム1は、搬送装置2とロボットの動作とを一括で制御する前述した付加軸トラッキングを行うものであって、搬送装置2を制御するマスター側制御装置3と、マスター側制御装置3によって制御されるマスター側ロボット4と、マスター側制御装置3と通信可能に接続されている1台以上のスレーブ側制御装置5と、スレーブ側制御装置5によってそれぞれ制御される1台以上のスレーブ側ロボット6とを備えている。
【0036】
マスター側制御装置3は、搬送装置2を駆動するモータ7、モータ7に設けられているエンコーダ8、および、搬送装置2に搬送されるワーク9の位置を検出するカメラやレーザ距離計などの検出器10が接続されている。モータ7の回転軸は、搬送装置2の駆動軸となっている。つまり、ロボットシステム1は、マスター側ロボット4の関節部の駆動軸とは異なる制御対象であるモータ7の回転軸を付加軸とした付加軸トラッキングを行う構成となっている。
【0037】
また、マスター側制御装置3には、LAN回線11を介してハブ12が接続されており、その先に接続されているスレーブ側制御装置5と通信可能に構成されている。なお、図1では、2台のスレーブ側制御装置5が接続された構成例を示しているが、1台あるいは3台以上のスレーブ側制御装置5を接続することも勿論可能であり、本実施形態のロボットシステム1は、数十台規模のスレーブ側制御装置5が接続可能となっている。
【0038】
スレーブ側制御装置5は、スレーブ側ロボット6をそれぞれ制御する。本実施形態では、マスター側ロボット4およびスレーブ側ロボット6として水平多関節型のいわゆる4軸ロボットを想定しているが、垂直多関節型のいわゆる6軸ロボットや7軸ロボットあるいはそれらが混在したものを対象とすることもできる。なお図1では、搬送装置2の搬送方向においてマスター側ロボット4の下流側に複数のスレーブ側ロボット6が設置されている構成を例示しているが、スレーブ側ロボット6の設置場所や数はこれに限定されない。
【0039】
さて、図2に示すように、マスター側制御装置3は、指令値生成部3a、速度情報生成部3b、および通信部3c等を備えている。指令値生成部3aは、マスター側ロボット4を制御するための指令値と、搬送装置2を駆動するための指令値とを生成する。このとき、搬送装置2に与える指令値は、分かり易く言えば搬送装置2の目標位置を示す値であり、この指令値が分かれば、搬送装置2の目標位置つまりはワーク9が搬送される位置を推定することが可能となる。
【0040】
なお、以下では、説明の簡略化のために、単に指令値という場合には搬送装置2を駆動するために与えられる指令値を意味するものとし、ロボットを制御するための指令値については、便宜的に制御指令値と称する。
【0041】
速度情報生成部3bは、詳細は後述するが、搬送装置2の速度つまりはワーク9の移動速度を特定可能な情報を生成する。本実施形態では、速度情報として、搬送装置2の駆動軸に今回送る指令値をパルス値に変換した値と、前回送った指令値をパルス値に変換した値との差分であるパルス差分値を用いている。これら指令値生成部3aおよび速度情報生成部3bは、図示しないCPUにてプログラムを実行することにより、ソフトウェアで実現されている。
【0042】
通信部3cは、いわゆるLANインターフェースであり、LAN回線11を介してスレーブ側制御装置5との間で、搬送装置2に与える指令値と速度情報とを含む通信パケットである制御情報などの通信を行う。なお、詳細は後述するが、通信部3cは、UDP通信とTCP通信とを行うことができる。なお、図2では、ハブ12の図示を省略している。
【0043】
スレーブ側制御装置5は、指令値生成部5a、判定部5b、補正部5c、記憶部5dおよび通信部5e等を備えている。指令値生成部5aは、スレーブ側ロボット6を制御するための制御指令値を生成する。判定部5bは、詳細は後述するが、マスター側制御装置3との間のUDP通信が正しく行われたか否かを判定する。
【0044】
補正部5cは、詳細は後述するが、判定部5bによってマスター側制御装置3との間のUDP通信が正しく行われなかったと判定された場合に、今回の制御で用いる指令値を補正する。これら指令値生成部5a、判定部5b、補正部5cは、図示しないCPUにてプログラムを実行することにより、ソフトウェアで実現されている。
【0045】
通信部5eは、マスター側制御装置3から送信された制御情報を受信する。なお、詳細は後述するが、通信部5eは、制御情報以外の情報の通信も可能である。記憶部5dは、詳細は後述するが、少なくとも受信した指令値と前回の制御に用いた指令値を記憶している。このとき、記憶部5dに、指令値と速度情報とを含む制御情報を記憶することもできる。なお、本実施形態では、記憶部5dとして、スレーブ側制御装置5のメインプログラム等が記憶されている不揮発性の記憶媒体ではなく、RAMのようなメモリ上に設けられる記憶領域を想定している。
【0046】
次に、上記した構成の作用について説明する。
まず、図3から図5を参照しながら、付加軸トラッキングにおける処理の概略と、スレーブ側制御装置5に生じる問題点とを説明する。また、以下では、説明の簡略化のために、マスター側制御装置3とスレーブ側制御装置5に共通する説明をする場合には単に制御装置と称し、マスター側ロボット4とスレーブ側ロボット6に共通する説明をする場合には単にロボットと称する。
【0047】
図3に示すように、制御装置は、まず、搬送装置2によって搬送されているワーク9の位置(E0)を特定する。このE0は、マスター側制御装置3であれば検出器10で検出した位置に基づいて特定でき、スレーブ側制御装置5であればマスター側制御装置3から位置データが送信されることによって特定できる。
【0048】
また、このE0は、1回のトラッキング中の基準となる位置であり、各制御装置は、このE0に対して搬送装置2による移動量を加味することによりトラッキングを行っている。以下、E0を、便宜的に基準位置と称する。なお、トラッキングの基準となる基準位置は、データの信頼性が担保されるTCP通信によってスレーブ側制御装置5に送信される。ただし、1回のトラッキング中に基準位置が変化することはないため、1回のトラッキングの最初に1度送信できればよく、繰り返し送信されることはない
【0049】
さて、特定した基準位置がロボット座標系における(x0,y0,z0)であったとすると、制御装置は、待機位置にあるロボットが基準位置を目標として動作するための制御指令値(Ptask)を生成する。以下、基準位置を目標としてロボットを動作させることを、便宜的に作業動作と称する。また、制御指令値(Ptask)を、作業動作の制御指令値とも称する。
【0050】
続いて、制御装置は、搬送装置2の指令値に基づいて、作業動作を開始してからの搬送装置2の移動量(ΔConv)を求める。この場合、マスター側制御装置3であれば、自身が生成した指令値を用いて移動量(ΔConv)を求め、スレーブ側制御装置5であれば、マスター側制御装置3から送信された指令値を用いて移動量(ΔConv)を求めることになる。
【0051】
そして、制御装置は、作業動作を開始する際に生成した制御指令値(Ptask)を搬送方向に移動量(ΔConv)分だけオフセットさせて新たな制御指令値(Prob)を生成し、その制御指令値(Prob)を用いてロボットがワーク9に追従するように制御する。このようにして、ワーク9の移動に追従させながらロボットに作業をさせるトラッキングが行われている。
【0052】
ところで、トラッキングの追従性を高めるためには、搬送装置2の移動量(ΔConv)を求めるための指令値を、より細かい周期で生成すればよいと考えられる。そのため、マスター側制御装置3は、搬送装置2の指令値を制御周期(ΔT)ごとに生成し、生成した指令値を、スレーブ側制御装置5にその都度送信する。この制御周期(ΔT)は、おおよそ数ミリ秒程度である。
【0053】
しかし、スレーブ側制御装置5の数が増えてくると、それぞれのスレーブ側制御装置5との間で1対1のTCP通信を制御周期(ΔT)ごとに行うことは困難である。これは、TCP通信の場合、データの信頼性の確保のためにハンドシェイクが必要になり、場合によって再送等の処理も必要になるためである。そのため、本実施形態では、マスター側制御装置3は、スレーブ側制御装置5に一斉に送信すべき搬送装置2の指令値の送信に、UDP(User Datagram Protocol)を用いるUDP通信を採用している。
【0054】
これにより、いわゆるコネクションレス型通信であるUDP通信ではデータそのものの信頼性は担保されないものの、TCP通信に比べると通信の負荷を大きく低減した状態で1対多の通信が可能となる。
【0055】
その一方で、UDP通信を採用したことにより、スレーブ側制御装置5に問題が生じることになる。具体的には、図4に示すように、スレーブ側制御装置5の通信部5eは、マスター側制御装置3からUDP通信により指令値を受信すると、記憶領域に最新データとして記憶する。この記憶領域は、記憶部5dに相当する。なお、詳細は後述するが、最新データには、指令値と速度情報とが記憶される。また、図4に示す過去データについては後述する。
【0056】
続いて、スレーブ側制御装置5の指令値生成部5aは、最新データとして記憶領域に記憶されている指令値を読み出し、読み出した指令値に基づいて搬送装置2の移動量(ΔConv)を求め、求めた移動量(ΔConv)分オフセットさせた新たな制御指令値(Prob)を生成し、スレーブ側ロボット6に対して出力して、スレーブ側ロボット6を制御する。
【0057】
この場合、UDP通信が正しく行われた場合には、記憶領域の最新データは、直近にマスター側制御装置3から送信された指令値が記憶されることになる。その一方で、UDP通信が正しく行われなかった場合には、記憶領域の最新データには、受信に失敗したことから指令値が更新されず、以前に受信した指令値がそのまま記憶された状態となる。
【0058】
そして、スレーブ側制御装置5の指令値生成部5aは、UDP通信が正しく行われたか否かに関わらず、最新データとして記憶されている指令値に基づいてスレーブ側ロボット6に与える制御指令値を生成および出力するため、UDP通信が正しく行われなかった場合には、前回の制御に用いた指令値と同じ値に基づいてスレーブ側ロボット6に与える制御指令値を生成することになる。
【0059】
ここで、搬送装置2の指令値は、上記したように目標位置を示すものである。そのため、記憶領域の最新データが更新されていない状態は、目標位置が前回と同じ状態、つまりは、搬送装置2が停止している状態を意味することになる。そのため、スレーブ側制御装置5は、搬送装置2が停止していると判断して、スレーブ側ロボット6を減速または停止させるような制御指令を生成することになる。
【0060】
その結果、図5にグラフG1として示すように、搬送装置2の実速度ここでは指令速度が一定値Vcであったとする。そして、例えば時刻t0においてUDP通信が正しく行われなかったとすると、スレーブ側制御装置5は、上記したように前回の制御に用いた指令値に基づいて搬送装置2の速度を演算することから、搬送装置2が停止したと判断する。その結果、比較例としてグラフG3に示すように、スレーブ側ロボット6を停止あるいは減速させるような制御が行われることから、スレーブ側ロボット6の速度が低下して搬送装置2の移動に追従できなくなる。
【0061】
そして、時刻t1においてUDP通信が正しく行われたとすると、スレーブ側制御装置5は、更新された指令値に基づいて搬送装置2の速度を求める。この場合、時刻t0から時刻t1までが1制御周期(ΔT)であったとすると、実際には停止していない搬送装置2の目標位置は2制御周期(2ΔT)先になっており、その目標位置に到達するために、スレーブ側制御装置5は、スレーブ側ロボット6を高速で移動させることになる。
【0062】
また、スレーブ側制御装置5は、時刻t2においてUDP通信が正しく行われた際には、最新の指令値に基づいて、1制御周期(ΔT)分の距離を移動させるべく、スレーブ側ロボット6の速度を低下させる。
【0063】
このように、マスター側制御装置3の負荷を低減するためにUDP通信を採用した場合には、スレーブ側ロボット6の速度が不連続的に変化するといった問題を引き起こすおそれがある。そして、そのような動作は、ロボットの振動を引き起こして動作サイクルが長くなる等の不具合を発生させるおそれがある。
【0064】
かといって、UDP通信の成否をマスター側制御装置3に問い合わせたり再送を要求したりするのは、結果的にマスター側制御装置3およびスレーブ側制御装置5の負荷を増加させることになり、負荷を低減するためにUDP通信を採用するという主旨に反することになる。
【0065】
そこで、本実施形態では、マスター側制御装置3の負荷およびスレーブ側制御装置5の負荷を低減しつつ、且つ、スレーブ側制御装置5が単独で、UDP通信が正しく行われたか否かの判断と、UDP通信が正しく行われなかった場合の対処とを行うことができるようにしている。
【0066】
スレーブ側制御装置5は、図6に示す補正処理を行っている。なお、この処理は判定部5bや補正部5cで行われるものであるが、説明の簡略化のために、以下ではスレーブ側制御装置5を主体にして説明している。
【0067】
まず、スレーブ側制御装置5は、作業動作の制御指令値(Ptask)を生成する(S1)。なお、作業動作の制御指令値(Ptask)はトラッキング中には変化しないため、最初の1回目に生成した値を再利用することができる。続いて、スレーブ側制御装置5は、記憶領域に記憶されている最新データを読み出すことで、搬送装置2の指令値を取得する(S2)。このステップS2で読み出された補正値は、今回の制御に用いる補正値(Pnew)に相当する。
【0068】
さて、取得した指令値をそのまま用いると、上記したようにUDP通信が正しく行われていなかった場合にスレーブ側ロボット6の速度が不連続に変化する。そこで、スレーブ側制御装置5は、UDP通信が正しく行われているか否かの判定と、UDP通信が正しく行われなかった場合の対処つまりは指令値の補正とを行っている。さらに、ロボットシステム1では、判定と補正とを、通信の負荷を低減する形で行えるようにしている。
【0069】
まず、UDP通信が正しく行われているか否かをどのように判定するかについて説明する。スレーブ側制御装置5は、制御に用いた指令値を記憶領域に過去データ(図4参照)としてその都度記憶しており、ステップS2で取得した今回の制御に用いる指令値と、過去データとして記憶されている前回の制御に用いた指令値とが一致するか否かを判定する(S3)。なお、過去データには、前回の制御に用いた速度情報も記憶することができる。
【0070】
上記したように、指令値は搬送装置2の目標位置であるため、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致していなければ、最新データが更新されており、UDP通信が正しく行われたと判定することができる。そのため、スレーブ側制御装置5は、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致しない場合には(S3:NO)、ステップS6に移行して搬送装置2の移動量(ΔConv)を求める。
【0071】
これに対して、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致している場合には、最新データが更新されていないことから、UDP通信が正しく行われなかったという疑義がある。ただし、マスター側制御装置3が緊急停止等により同じ指令値を送信したなど、UDP通信が正しく行われた可能性を完全に否定はできない。
【0072】
そこで、スレーブ側制御装置5は、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致する場合には(S3:YES)、さらに、今回の制御に用いる搬送装置2の速度が所定の基準値を超えているか否かを判定する(S4)。本実施形態では、所定の基準値として零を採用している。つまり、ステップS4では、スレーブ側制御装置5は、搬送装置2の速度が零であるか否かを判定している。
【0073】
なお、搬送装置2の速度は、マスター側制御装置3から送信される速度情報に基づいて求めることができる。この場合、UDP通信が正しく行われなかった場合には最新データが更新されないことから、最新データの内容と前回の制御に用いたデータを記憶している過去データの内容とが一致することになる。そのため、ステップS4では、最新データがまたは過去データのいずれかに記憶されている速度情報を用いれば直近の搬送装置2の速度を求めることができる。
【0074】
スレーブ側制御装置5は、搬送装置2の速度が所定の基準値を超えていないと判定した場合には(S4:NO)、ステップS6に移行して搬送装置2の移動量(ΔConv)を求める。これは、搬送装置2の速度が零であると判定された場合には、今回と前回とで指令値が一致することになるため、搬送装置2が実際に停止していると考えることができるためである。
【0075】
これに対して、スレーブ側制御装置5は、搬送装置2の速度が所定の基準値を超えていると判定した場合には(S4:YES)、搬送装置2の指令値を補正する(S5)。これは、搬送装置2の速度が零出ないにも関わらず前回と今回の指令値が一致したと言うことは、最新データが更新されていない、つまりは、UDP通信が正しく行われなかったと判断できるためである。
【0076】
このステップS5では、スレーブ側制御装置5は、ステップS2で取得した指令値(Pnew)を、ステップS4で求めた搬送装置2の速度(Vc)と制御周期(ΔT)とを用いて、以下の(1)式のように補正する。
Pnew=Pnew+Vc×ΔT ・・・(1)
【0077】
すなわち、スレーブ側制御装置5の補正部5cは、今回の制御に用いる指令値(Pnew)を、搬送装置2の速度(Vc)に制御周期(ΔT)を乗じた値を加えた値に補正する。なお、補正が必要になるのは前回と今回の指令値が一致している場合であるため、つまり、Pnew=Pprevの場合であるため、上記の(1)式は、以下のように示すこともできる。
【0078】
これにより、前回の制御に用いる指令値が搬送装置2の速度に応じた値、つまりは、搬送装置2の移動量を考慮した新たな目標位置に合うように補正される。したがって、搬送装置2の速度が零ではない状況、つまりは、ワーク9が移動していると判断できる状況において、スレーブ側ロボット6が誤って停止あるいは減速することが防止される。
【0079】
そして、スレーブ側制御装置5は、補正した指令値に基づいて、搬送装置2の移動量を求め(S6)、ステップS1で生成した作業動作の制御指令値に移動量を合成した制御指令値、すなわち、今回の制御に用いる最終的な制御指令値を生成する(S7)。これにより、スレーブ側制御装置5は、スレーブ側ロボット6を誤って停止あるいは減速させることを回避することができる。
【0080】
これにより、図5に実施例として示すグラフG4のように、補正ありの場合には、スレーブ側ロボット6の速度は、グラフG3のように停止や減速することなく、搬送装置2の実際の速度(Vc)とほぼ一致した状態で、つまりは、ワーク9の実際の移動に追従した状態となる。
【0081】
このような補正をすることにより、UDP通信が正しく行われているか否かの判定と、UDP通信が正しく行われなかった場合の対処とを行うことができる。そして、上記した補正の手法には、通信の負荷を低減するという効果も含まれている。
【0082】
例えば、UDP通信が正しく行われているか否かを判定するだけであれば、マスター側制御装置3から送信する通信パケットに、通し番号や時刻情報を付加することが考えられるしかし、その場合には、UDP通信が正しく行われていないことは判定できるものの、その対処ができなくなる。
【0083】
しかし、指令値の再送を要求したりすると通信の負荷が増大することから、上記したようにUDP通信を用いるという主旨に反することになる。また、各制御装置は個別に時刻を管理しており、必ずしも時刻が完全に同期している訳ではないため、時刻情報を用いても、UDP通信が正しく行われているか否かの判定をできないおそれもある。
【0084】
そのため、マスター側制御装置3から送信されるデータとしては、UDP通信が正しく行われているか否かの判定と、UDP通信が正しく行われなかった場合の対処とを行うことができるものが望まれる。その一方で、送信するデータサイズが大きくなると、通信の負荷を増加させるおそれがある。
【0085】
そこで、本実施形態では、そもそもの制御に必要とされる搬送装置2に与える指令値に加えて、搬送装置2の速度を特定可能な速度情報を通信パケットに含めて送信している。これら指令値と速度情報とがマスター側制御装置3から送信されることにより、スレーブ側制御装置5は、上記したようにUDP通信が正しく行われているか否かの判定と、UDP通信が正しく行われなかった場合の対処とを行うことができる。
【0086】
換言すると、搬送装置2の速度情報は、それ1つでUDP通信が正しく行われているか否かの判定とUDP通信が正しく行われなかった場合の対処とを行うことができることから、通信の負荷を低減しつつ判定と対処とを行うために好適なデータであると考えられる。
【0087】
また、搬送装置2の速度は、マスター側制御装置3が管理する情報であり、マスター側ロボット4を制御するために用いられていることから、判定と対処とを行うために新たにデータを生成する必要がなく、マスター側制御装置3の処理の負荷を増加させることもない。つまり、マスター側制御装置3から送信するデータとして速度情報を採用した構成には、ロボットシステム1において非常に重要な技術的意義を有している。
【0088】
さらに、本実施形態では、速度情報として、駆動軸に今回送る指令値をエンコーダ8のパルス値に変換した値と、前回送った指令値をエンコーダ8のパルス値に変換した値との差分であるパルス差分値を採用している。搬送装置2の速度そのものを送信しようとする場合には、位置を高精度に制御している場合にはどうしても小数点が含まれることになるため、速度そのものを送信する場合には、C言語でいうdouble型の8バイトのデータを送信する必要がある。
【0089】
これに対して、パルス差分値は、整数のデータとして得られるものであり、通信パケットとして送信する場合には、C言語でいうlong型の4バイトのデータで送信することができる。つまり、速度情報としてエンコーダ8のパルス差分値を採用することにより、判定と対処とに必要となるデータサイズを小さくすることができ、通信の負荷を抑制することができる。
【0090】
このようにして今回の制御に用いる制御指令値を生成すると、スレーブ側制御装置5は、ステップS2で取得した指令値を、記憶領域の過去データとして記憶する。この記憶した過去データは、次の制御における判定に用いられる。このとき、指令値に限らず、速度情報を併せて記憶部5dに記憶する構成とすることもできる。
【0091】
なお、図6では説明の簡略化のために処理を終了するとしているが、トラッキング中には、必要に応じてステップS2以降の処理が繰り返し手実行されることになる。
【0092】
以上のように、本実施形態のロボットシステム1は、マスター側制御装置3の負荷およびスレーブ側制御装置5の負荷を低減しつつ、且つ、スレーブ側制御装置5が単独で、UDP通信が正しく行われたか否かの判断と、UDP通信が正しく行われなかった場合の対処とを行うことができるように構成されている。
【0093】
以上説明した実施形態によれば、次のような効果を得ることができる。
ロボットシステム1は、搬送装置2とロボットの動作とを一括で制御する付加軸トラッキングを行うものであって、搬送装置2を制御するマスター側制御装置3と、マスター側制御装置3によって制御されるマスター側ロボット4と、マスター側制御装置3と通信可能に接続されている1台以上のスレーブ側制御装置5と、スレーブ側制御装置5によってそれぞれ制御される1台以上のスレーブ側ロボット6と、を備えている。
【0094】
マスター側制御装置3は、搬送装置2に与える指令値を生成する指令値生成部5aと、搬送装置2の速度を特定可能な速度情報を生成する速度情報生成部3bと、生成した指令値と速度情報とを制御情報としてUDP通信によってスレーブ側制御装置5に送信する通信部5eとを有している。このようにUDP通信により制御情報を送信する構成としたことにより、ハンドシェイクが必要となるTCP通信を行う場合に比べて、通信に要する負荷を大きく低減することができる。
【0095】
また、スレーブ側制御装置5は、マスター側制御装置3から送信された制御情報を受信する通信部5eと、前回の制御に用いた制御情報を記憶する記憶部5dと、マスター側制御装置3との間のUDP通信が正しく行われたか否かを判定する判定部5bと、判定部5bによってマスター側制御装置3との間のUDP通信が正しく行われなかったと判定された場合に、今回の制御に用いる指令値を補正する補正部5cと、を有している。
【0096】
この判定部5bは、今回の制御に用いる指令値と前回の制御に用いた指令値とが一致する場合であって、且つ、今回の制御に用いる搬送装置2の速度が所定の基準値を超えている場合に、マスター側制御装置3との間のUDP通信が正しく行われなかったと判定し、補正部5cは、今回の制御に用いる指令値を、搬送装置2の速度と制御周期とを乗じた値を加えた値に補正する。
【0097】
このように、制御情報として指令値と速度情報とを送信することにより、スレーブ側制御装置5は、単独で、UDP通信が正しく行われたか否かの判断と、UDP通信が正しく行われなかった場合の対処とを行うことが可能となる。換言すると、送信する制御情報として速度情報を採用したことにより、1つのデータで上記した判断と対処とが可能となる。
【0098】
このとき、速度情報は、マスター側制御装置3の制御で用いられるデータであり、新たな処理をすることなく得られる値である。また、元々制御に必要な指令値に、速度情報という1つのデータを加えて送信すればよいことから、マスター側制御装置3の負荷を増加させることがないとともに、通信に要する負荷が過度に増加することを低減できる。
【0099】
したがって、マスター側制御装置3の負荷およびスレーブ側制御装置5の負荷を低減しつつ、且つ、スレーブ側制御装置5が単独で、UDP通信が正しく行われたか否かの判断と、UDP通信が正しく行われなかった場合の対処とを行うことができる。
【0100】
また、上記の補正を行うことにより、トラッキングの追従性を向上させることができる。さらに、仮にスレーブ側制御装置5の数が増減しても、マスター側制御装置3の処理は基本的には変わらないことから、システムの自由度や拡張性を確保することもできる。
【0101】
また、ロボットシステム1では、判定部5bは、基準値を零に設定する。これにより、実際の搬送装置2が移動しているか否かの判定を容易に行うことができる。
【0102】
また、ロボットシステム1では、マスター側制御装置3の速度情報生成部3bは、搬送装置2の駆動軸に今回送る指令値をエンコーダ8のパルス値に変換した値と、前回送った指令値をエンコーダ8のパルス値に変換した値との差分であるパルス差分値を、を、速度情報として送信する。エンコーダ8のパルス差分値は、マスター側制御装置3の制御で用いられるデータであり、新たな処理をすることなく得られる値である。また、パルス差分値は、整数として得られるデータであるため、小数点を含む速度そのものを送信する場合に比べて、送信時に必要なデータ量を削減することができる。したがって、通信の負荷をさらに低減することができる。
【0103】
また、スレーブ側制御装置5は、搬送装置2とロボットの動作とを一括で制御する付加軸トラッキングを行うロボットシステム1において、搬送装置2を制御するマスター側制御装置3から送信された制御情報に基づいて動作するものであって、上記した通信部5eと、記憶部5dと、判定部5bと、補正部5cと、を有している。このようなロボットの制御装置によっても、マスター側制御装置3の負荷およびスレーブ側制御装置5の負荷を低減しつつ、且つ、スレーブ側制御装置5が単独で、UDP通信が正しく行われたか否かの判断と、UDP通信が正しく行われなかった場合の対処とを行うことができるなど、ロボットシステム1と同様の効果を得ることができる。
【0104】
実施形態では(1)式を用いて指令値を補正したが、記憶部5dに過去の複数の速度情報を履歴として記憶しておき、その履歴から搬送装置2の速度の変化傾向を求め、当該速度の変化傾向を加味して指令値を補正する構成とすることもできる。例えば、(1)式の右辺第2項に係数(α)を追加し、搬送装置2の速度が増加傾向にある場合にはαを1より大きく設定し、減少傾向にある場合にはαを1より小さく設定することで、より実際の速度変化に応じた補正を行うことができる。なお、αを速度の関数とすることもできる。
【0105】
実施形態では所定の基準値を零に設定する例を示したが、所定の基準値は、例えば搬送装置2の性能や仕様に基づいて、1制御周期で速度が零になることがないと判断できる値に設定することができる。
【0106】
実施形態では所定の基準値が固定値である例を示したが、所定の基準値を変更する構成とすることもできる。例えば、相対的に高速で移動している場合には停止するまでにある程度の時間が掛かると思われるため基準値を高めに設定し、相対的に低速で移動している場合には停止するまでの時間が短くなると想定されるため基準値を低めに設定する構成とすることができる。あるいは、記憶部5dに過去の速度情報を履歴として記憶しておき、搬送装置2の速度が増加傾向にある場合には基準値を高めに設定し、減少傾向にある場合には基準値を低めに設定する構成とすることもできる。
【0107】
実施形態では指令値を生成する制御周期(ΔT)ごとに指令値を送信する例を示したが、指令値を生成する周期内に複数回送信することもできる。
ロボットシステム1は、1台のマスター側制御装置3で複数の搬送装置2を制御するような構成にも適用することができる。
【0108】
実施形態ではエンコーダ8のパルス差分値を速度情報として送信する例を示したが、搬送装置2の速度を検出する速度計により取得した速度を速度情報として送信することもできる。
上記した実施形態はあくまでも例示であり、本発明の技術的範囲を限定することは意図していない。
【符号の説明】
【0109】
図面中、1はロボットシステム、2は搬送装置、3はマスター側制御装置(マスター側の制御装置)、3aは指令値生成部、3bは速度情報生成部、3cは通信部、4はマスター側ロボット(マスター側のロボット)、5はスレーブ側制御装置(スレーブ側の制御装置)、5aは指令値生成部、5bは判定部、5cは補正部、5dは記憶部、5eは通信部、6はスレーブ側ロボット(スレーブ側のロボット)、7はモータ(付加軸)、8はエンコーダを示す。
図1
図2
図3
図4
図5
図6