(58)【調査した分野】(Int.Cl.,DB名)
第1制御装置により制御される第1ロボット及び周辺装置と、当該第1制御装置と通信回線を介して接続される第2制御装置により制御される第2ロボットとを用いた溶接物製造方法であって、
前記第1ロボット及び前記周辺装置に実行させる動作が記述された教示プログラムに基づいて、当該第1ロボットと当該周辺装置とが連動して動作するように、当該周辺装置に基づく座標系において当該第1ロボットの動作に関する情報及び当該周辺装置の動作に関する情報を生成するステップと、
生成された前記第1ロボットの動作に関する情報及び前記周辺装置の動作に関する情報に基づいて、当該第1ロボット及び当該周辺装置を制御し、溶接物に対する溶接を行うステップと、
前記教示プログラムに基づいて、前記第2制御装置に接続された前記第2ロボットが当該第2制御装置に接続されていない前記周辺装置と連動して動作するように、当該周辺装置に基づく座標系において当該第2ロボットの動作に関する情報及び当該周辺装置の動作に関する情報を生成するステップと、
生成された前記第2ロボットの動作に関する情報に基づいて、当該第2ロボットを制御し、前記溶接物に対する溶接を行うステップと、
前記第1制御装置に接続された第1操作端末において前記第1ロボットの制御を開始する入力が行われると、当該第1ロボットが制御される前の待機状態であることを前記第2制御装置に通知するステップと、
前記第1ロボットが待機状態であることが前記第2制御装置に通知された後、当該第2制御装置に接続された第2操作端末において前記第2ロボットの制御を開始する入力が行われると、当該第1ロボットの待機状態を解除するように前記第1制御装置に通知するステップと
を含む溶接物製造方法。
【発明を実施するための形態】
【0013】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。まず、本実施の形態の概要について説明する。
溶接ロボットシステムでは、溶接ロボットとともに周辺装置が制御される場合がある。周辺装置としては、例えば、溶接対象となるワークを移動、回転させてワークの位置を決める装置であるポジショナや、溶接ロボットを移動させる装置であるスライダなどが該当する。
【0014】
ここで、溶接ロボット及び周辺装置に実行させる動作は教示プログラムに定義されている。例えば、周辺装置と溶接ロボットとを連動させる場合、各装置の動作が連動するような教示プログラムが作成される。ここで作成される教示プログラムには、溶接ロボットの情報に加えて周辺装置の情報が含まれており、この教示プログラムをそのまま用いても単一の溶接ロボットは動作しない場合がある。即ち、周辺装置及び溶接ロボットに加えて、単一の溶接ロボットを連動させる場合、操作者は、周辺装置に接続された溶接ロボット用の教示プログラムと、単一の溶接ロボット用の教示プログラムとを別々に作成することが考えられる。また、単一の溶接ロボットを周辺装置と連動させるために、操作者は、単一の溶接ロボットには接続されていない周辺装置の動作も考慮した上で、単一の溶接ロボット用の教示プログラムを作成することが求められる。
そのため以下にて、教示プログラムの作成作業の軽減を実現する手順について説明する。
【0015】
<システム構成>
まず、本実施の形態に係る溶接ロボットシステム1について説明する。
図1は、本実施の形態に係る溶接ロボットシステム1の概略構成の一例を示す図である。
図1に示すように、制御システムの一例としての溶接ロボットシステム1は、溶接に関する各種の作業を行う第1溶接ロボット10と、溶接する対象物であり、溶接物の一例としてのワーク21の位置を決めるポジショナ20と、第1溶接ロボット10及びポジショナ20を制御する第1制御装置30と、溶接作業に関する設定や教示プログラムの作成等に使用される第1教示ペンダント40とを備える。また、溶接ロボットシステム1は、溶接に関する各種の作業を行う第2溶接ロボット50と、第2溶接ロボット50を制御する第2制御装置60と、溶接作業に関する設定や教示プログラムの作成等に使用される第2教示ペンダント70とを備える。また、第1制御装置30と第2制御装置60とはネットワーク80を介して接続される。
【0016】
第1ロボットの一例としての第1溶接ロボット10は、関節を有する腕(アーム)を備え、教示プログラムに基づく溶接に関する各種作業を行う。また、第1溶接ロボット10の腕の先端には、ワーク21に対する溶接作業を行うための溶接トーチ11が設けられる。
ポジショナ20は、関節を有し、教示プログラムに基づいてワーク21の位置を調節する。
【0017】
第1制御装置30は、予め教示された教示プログラムを記憶し、記憶している教示プログラムを読み込んで、第1溶接ロボット10及びポジショナ20の動作を制御する。教示プログラムは、例えば、教示ペンダント40から送信される場合や、教示プログラムの作成装置(不図示)により作成され、データ通信により送信される場合等がある。また、教示プログラムは、例えば、メモリカード等のリムーバブルな記憶媒体を介して第1制御装置30に渡される場合もあるものとする。
【0018】
第1操作端末の一例としての第1教示ペンダント40は、第1溶接ロボット10による溶接作業を行うために、操作者が溶接作業に関する設定をしたり、教示プログラムを作成したりするために使用される。また、第1教示ペンダント40は、第1溶接ロボット10の操作を行うための入力ボタンを有する。入力ボタンには、例えば、第1溶接ロボット10の動作を開始する開始ボタンや、第1溶接ロボット10を前進させる前進キー等が存在する。また、例えば、操作者により開始ボタン及び前進キーが押下されると、第1溶接ロボット10において、ワーク21に対する溶接作業時の移動経路等を確認するための確認動作が行われる。確認動作では、第1溶接ロボット10は教示プログラムをもとに動作し、第1溶接ロボット10が溶接作業の教示点に沿って移動するか、溶接トーチ11により溶接作業が正常に実行されるか等の項目が操作者により確認される。
【0019】
第2ロボットの一例としての第2溶接ロボット50は、第1溶接ロボット10と同様の機能を有し、関節を有する腕(アーム)を備え、教示プログラムに基づく溶接に関する各種作業を行う。また、第2溶接ロボット50の腕の先端には、ワーク21に対する溶接作業を行うための溶接トーチ51が設けられる。
【0020】
第2制御装置60は、通信回線の一例としてのネットワーク80を介して、第1制御装置30から教示プログラムを受信し、受信した教示プログラムに基づいて、第2溶接ロボット50の動作を制御する。ただし、教示プログラムは、例えば、メモリカード等のリムーバブルな記憶媒体を介して第1制御装置30から第2制御装置60に渡される場合等もあるものとする。
【0021】
第2操作端末の一例としての第2教示ペンダント70は、第1教示ペンダント40と同様の機能を有し、第2溶接ロボット50による溶接作業を行うために、操作者が溶接作業に関する設定をしたり、教示プログラムを作成したりするために使用される。また、第2教示ペンダント70は、第1教示ペンダント40と同様に、開始ボタンや前進キー等の入力ボタンを有する。そして、例えば、操作者により開始ボタン及び前進キーが押下されると、第1溶接ロボット10と同様に、第2溶接ロボット50において、ワーク21に対する溶接作業時の移動経路等を確認するための確認動作が行われる。
【0022】
ネットワーク80は、第1制御装置30と第2制御装置60との間に用いられる通信手段であり、例えば、イーサネット(登録商標)によるLAN(Local Area Network)で構成することができる。
【0023】
ここで、本実施の形態において、第1溶接ロボット10及び第2溶接ロボット50は、従来技術により、移動経路に設けられた複数の教示点に対して同期して移動し、各装置のそれぞれの教示点に同時に到着するように連動して制御されるものとする。
【0024】
例えば、第1制御装置30は、第1溶接ロボット10がその時位置する点から第1溶接ロボット10の次の教示点に達するまでの移動時間を、例えば一定周期ごとに計算し、計算した移動時間を第2制御装置60に通知する。第2制御装置60は、第1制御装置30から第1溶接ロボット10の移動時間を受信すると、第1溶接ロボット10及び第2溶接ロボット50がそれぞれの次の教示点に同時に到着するように、受信した移動時間に基づいて第2溶接ロボット50の速度を調整する。
【0025】
ただし、移動時間の通知において、第1制御装置30は、一定周期ごとに移動時間を計算して通知する構成に限られるものではなく、第1溶接ロボット10、第2溶接ロボット50が2つの教示点間を移動する過程で少なくとも1回通知すれば良い。さらに、速度の調整において、第2制御装置60は、第1制御装置30と第2制御装置60との間の通信に要する時間も考慮して第2溶接ロボット50の速度を調整することとしても良い。
【0026】
このように、第1制御装置30が第1溶接ロボット10の移動時間を第2制御装置60に通知することで、第2制御装置60は、2台の溶接ロボットがそれぞれの次の教示点に同時に到着するように、第2溶接ロボット50の速度を調整する。また、各溶接ロボットが次の教示点に到着するまでに移動時間の通知が行われるため、例えば、第1溶接ロボット10、第2溶接ロボット50の速度や移動経路が変更されても、各溶接ロボットはそれぞれの教示点に同時に到着するように制御される。
【0027】
また、本実施の形態において、第1溶接ロボット10及びポジショナ20は、従来技術により、移動経路に設けられた複数の教示点に対して同期して移動し、各装置のそれぞれの教示点に同時に到着するように連動して制御されるものとする。
【0028】
例えば、第1制御装置30は、ポジショナ20によって移動または回転されるワーク21を基準とした座標系(以下、ワーク座標系と称する)において、第1溶接ロボット10の溶接トーチ11の位置や経路を計算する。そして、第1制御装置30は、ワーク座標系における溶接トーチ11の位置を一定周期ごとに更新し、更新した溶接トーチ11の位置をもとに、第1溶接ロボット10及びポジショナ20の関節位置を計算してそれぞれの関節を駆動する。このようにして、第1制御装置30は、第1溶接ロボット10及びポジショナ20を同時に動作させながらワーク21に対する溶接トーチ11の姿勢及び速度を保ち、第1溶接ロボット10とポジショナ20とがそれぞれの教示点に同時に到着するように制御する。
【0029】
<制御装置の機能構成>
次に、第1制御装置30及び第2制御装置60の機能構成について説明する。
図2は、本実施の形態に係る第1制御装置30及び第2制御装置60の機能構成例を示すブロック図である。
まず、第1制御装置30の機能構成について説明する。
図2に示すように、第1制御装置30は、教示プログラムを格納する第1教示プログラム記憶部31と、教示プログラムの命令を第1経路算出部33に出力する第1命令解釈部32と、第1溶接ロボット10及びポジショナ20の移動経路に関する情報(以下、移動経路に関する情報を移動情報と称する)を算出する第1経路算出部33とを備える。また、第1制御装置30は、算出された移動情報に基づいて第1溶接ロボット10を目標位置まで移動させる第1ロボット駆動部34と、算出された移動情報に基づいてポジショナ20を目標位置まで移動させるポジショナ駆動部35とを備える。
【0030】
記憶手段の一例としての第1教示プログラム記憶部31は、予め教示された教示プログラムを記憶する。記憶された教示プログラムは、第1命令解釈部32からの要求により第1命令解釈部32に出力される。ここで、教示プログラムには、制御対象となる装置に関して、移動の目標位置や、移動速度等の情報が含まれている。
【0031】
第1通知手段の一例としての第1命令解釈部32は、操作者からの入力を受け付け、受け付けた入力内容に応じた教示プログラムを第1教示プログラム記憶部31から取得する。操作者からの入力は、例えば、操作者が第1制御装置30を直接操作して行われる場合や、操作者が第1教示ペンダント40(
図1参照)を操作して行われる場合等がある。そして、第1命令解釈部32は、取得した教示プログラムの命令を第1経路算出部33に出力する。
【0032】
また、第1命令解釈部32は、操作者からの入力をもとに、第1教示プログラム記憶部31に記憶された教示プログラムのうち第2制御装置60で用いられる教示プログラムを、ネットワーク80を介して第2制御装置60に送信する。ただし、上述したように、教示プログラムは、例えば、メモリカード等の記憶媒体を介して第2制御装置60に渡される場合等もあるものとする。
【0033】
さらに、第1命令解釈部32は、確認動作として、操作者による教示ペンダント40の開始ボタン及び前進キーを押下する入力を受け付けると、第1溶接ロボット10が確認動作の待機状態であることを第2制御装置60に通知する。そして、第1命令解釈部32は、第2制御装置60から待機状態を解除するように通知されると、第1溶接ロボット10の待機状態を解除し、確認動作のために第1教示プログラム記憶部31から教示プログラムを取得して第1経路算出部33に出力する。
【0034】
また、第1命令解釈部32は、第2制御装置60から第2溶接ロボット50が確認動作の待機状態であることを通知された後に、教示ペンダント40の開始ボタン及び前進キーを押下する入力を受け付けると、第2溶接ロボット50の待機状態を解除するように第2制御装置60に通知する。そして、第1命令解釈部32は、確認動作のために第1教示プログラム記憶部31から教示プログラムを取得して第1経路算出部33に出力する。
【0035】
そして、第1命令解釈部32は、第1溶接ロボット10が確認動作において停止する場合、第1溶接ロボット10が停止する旨を第2制御装置60に通知する。また、第1命令解釈部32は、第2制御装置60から第2溶接ロボット50が確認動作において停止する旨の通知を受けると、第1ロボット駆動部34に対して第1溶接ロボット10を停止させるように通知し、ポジショナ駆動部35に対してポジショナ20を停止させるように通知する。
【0036】
第1生成手段の一例としての第1経路算出部33は、第1命令解釈部32から取得した命令に基づいて、第1溶接ロボット10及びポジショナ20が連動して動作するように、第1溶接ロボット10及びポジショナ20の移動情報を算出する。ここで、第1経路算出部33は、第1溶接ロボット10の移動情報として、第1溶接ロボット10が、取得した命令に基づく目標位置へ移動するまでの移動情報を算出する。また、第1経路算出部33は、ポジショナ20の移動情報として、ポジショナ20が、取得した命令に基づく目標位置へ移動するまでの移動情報を算出する。
【0037】
また、上述したように、第1溶接ロボット10及びポジショナ20は同期して移動するように制御されるため、第1経路算出部33は、第1溶接ロボット10の移動情報の算出においてポジショナ20の移動も考慮する。即ち、第1経路算出部33は、ワーク21を基準としたワーク座標系において溶接トーチ11の位置や経路を計算し、第1溶接ロボット10及びポジショナ20の移動情報を算出する。
【0038】
ここで、移動情報は、第1溶接ロボット10、ポジショナ20等の各装置に対して指定された目標位置や、目標位置までの移動経路、移動時間、移動速度等の情報である。そして、第1経路算出部33は、算出した第1溶接ロボット10の移動情報を第1ロボット駆動部34に出力し、算出したポジショナ20の移動情報をポジショナ駆動部35に出力する。
【0039】
また、上述したように、第1溶接ロボット10及び第2溶接ロボット50は同期して移動するように制御されるため、第1経路算出部33は、第1溶接ロボット10が位置する点から次の教示点に達するまでの移動時間を、例えば一定周期ごとに第2制御装置60に通知する。
さらに、第1経路算出部33は、第2制御装置60の要求に応じて、ポジショナ20の現在位置の情報を第2制御装置60に送信する。送信されたポジショナ20の現在位置は、第2経路算出部63による移動情報の算出に用いられるが、詳細については後述する。
【0040】
第1制御手段の一例としての第1ロボット駆動部34は、第1経路算出部33から取得した第1溶接ロボット10の移動情報に基づいて、第1溶接ロボット10を第1溶接ロボット10の目標位置まで移動させる。また、第1ロボット駆動部34は、第1溶接ロボット10の確認動作において、第1命令解釈部32から第1溶接ロボット10を停止させるように通知されると、第1溶接ロボット10を停止させる。
【0041】
第1制御手段の一例としてのポジショナ駆動部35は、第1経路算出部33から取得したポジショナ20の移動情報に基づいて、ポジショナ20をポジショナ20の目標位置まで移動させる。また、ポジショナ駆動部35は、第1溶接ロボット10の確認動作において、第1命令解釈部32からポジショナ20を停止させるように通知されると、ポジショナ20を停止させる。
【0042】
次に、第2制御装置60の機能構成について説明する。
図2に示すように、第2制御装置60は、教示プログラムを格納する第2教示プログラム記憶部61と、教示プログラムの命令を第2経路算出部63に出力する第2命令解釈部62と、第2溶接ロボット50及びポジショナ20の移動情報を算出する第2経路算出部63とを備える。また、第2制御装置60は、算出された移動情報に基づいて第2溶接ロボット50を目標位置まで移動させる第2ロボット駆動部64と、算出されたポジショナ20の移動情報を記憶するポジショナ経路記憶部65とを備える。
【0043】
第2教示プログラム記憶部61は、第1制御装置30から送信等された教示プログラムを記憶する。記憶された教示プログラムは、第2命令解釈部62からの要求により第2命令解釈部62に出力される。
【0044】
プログラム取得手段、第2通知手段の一例としての第2命令解釈部62は、第1命令解釈部32と同様に、操作者からの入力を受け付け、受け付けた入力内容に応じた教示プログラムを第2教示プログラム記憶部61から取得する。そして、第2命令解釈部62は、第2溶接ロボット50の動作に応じて教示プログラムの変換を行った後、変換後の教示プログラムの命令を第2経路算出部63に出力する。
【0045】
例えば、第1溶接ロボット10と第2溶接ロボット50とがワーク21に対して対称の動作をする場合、第2命令解釈部62は、第1溶接ロボット10と第2溶接ロボット50との動作が対称となるように教示プログラムの変換を行う。ただし、第2命令解釈部62は、操作者が望む第2溶接ロボット50の動作に合わせて教示プログラムを変換すれば良く、教示プログラムをどのように変換しても良いものとする。また、第2溶接ロボット50の動作として、第1制御装置30の教示プログラムをそのまま用いて動作させれば良い場合には、第2命令解釈部62は、教示プログラムを変換せずに用いるものとする。
【0046】
また、第2命令解釈部62は、第2制御装置60の制御対象ではないポジショナ20の移動情報を算出するように、操作者による設定の入力を受け付ける。そのため、第2命令解釈部62は、教示プログラムに制御対象ではないポジショナ20の情報が含まれていても、教示プログラムを取得して第2経路算出部63に出力する。
【0047】
さらに、第2命令解釈部62は、第1命令解釈部32と同様に、確認動作として、操作者による教示ペンダント70の開始ボタン及び前進キーを押下する入力を受け付けると、第2溶接ロボット50が確認動作の待機状態であることを第1制御装置30に通知する。そして、第2命令解釈部62は、第1制御装置30から待機状態を解除するように通知されると、第2溶接ロボット50の待機状態を解除し、確認動作のために第2教示プログラム記憶部61から教示プログラムを取得して第2経路算出部63に出力する。
【0048】
そして、第2命令解釈部62は、第1制御装置30から第1溶接ロボット10が確認動作の待機状態であることを通知された後に、教示ペンダント70の開始ボタン及び前進キーを押下する入力を受け付けると、第1溶接ロボット10の待機状態を解除するように第1制御装置30に通知する。そして、第2命令解釈部62は、確認動作のために第2教示プログラム記憶部61から教示プログラムを取得して第2経路算出部63に出力する。
【0049】
また、第2命令解釈部62は、第2溶接ロボット50が確認動作において停止する場合、第2溶接ロボット50が停止する旨を第1制御装置30に通知する。また、第2命令解釈部62は、第1制御装置30から第1溶接ロボット10が確認動作において停止する旨の通知を受けると、第2ロボット駆動部64に対して第2溶接ロボット50を停止させるように通知する。
【0050】
生成手段、第2生成手段、位置情報取得手段の一例としての第2経路算出部63は、第2命令解釈部62から取得した命令に基づいて、第2溶接ロボット50がポジショナ20と連動して動作するように、第2溶接ロボット50及びポジショナ20の移動情報を算出する。ここで、第2経路算出部63は、第2溶接ロボット50の移動情報として、第2溶接ロボット50が、取得した命令に基づく目標位置へ移動するまでの移動情報を算出する。また、第2経路算出部63は、ポジショナ20の移動情報として、ポジショナ20が、取得した命令に基づく目標位置へ移動するまでの移動情報を算出する。
【0051】
ここで、第2制御装置60とポジショナ20とは接続されていないが、第2経路算出部63は、第1制御装置30からポジショナ20の現在位置を取得し、取得した現在位置から目標位置に向けてポジショナ20が移動するものとして、ポジショナ20の移動情報を算出する。また、第2経路算出部63は、第1経路算出部33と同様に、第2溶接ロボット50の移動情報の算出において、ポジショナ20の移動も考慮する。即ち、第2経路算出部63は、ワーク21を基準としたワーク座標系において溶接トーチ51の位置や経路を計算し、第2溶接ロボット50及びポジショナ20の移動情報を算出する。次に、第2経路算出部63は、算出した第2溶接ロボット50の移動情報を第2ロボット駆動部64に出力し、算出したポジショナ20の移動情報をポジショナ経路記憶部65に記憶する。
【0052】
また、上述したように、第1溶接ロボット10及び第2溶接ロボット50は同期して移動するように制御されるため、第2経路算出部63は、第1制御装置30から受信した第1溶接ロボット10の移動時間に基づいて第2溶接ロボット50の速度を調節する。
【0053】
制御手段、第2制御手段の一例としての第2ロボット駆動部64は、第2経路算出部63から取得した第2溶接ロボット50の移動情報に基づいて、第2溶接ロボット50を第2溶接ロボット50の目標位置まで移動させる。また、第2ロボット駆動部64は、第2溶接ロボット50の確認動作において、第2命令解釈部62から第2溶接ロボット50を停止させるように通知されると、第2溶接ロボット50を停止させる。
【0054】
ポジショナ経路記憶部65は、第2経路算出部63から出力されたポジショナ20の移動情報を記憶する。
【0055】
<第1制御装置の処理手順>
次に、第1溶接ロボット10、ポジショナ20を動作させるための第1制御装置30の処理手順について説明する。
図3は、第1制御装置30による処理手順の一例を示したフローチャートである。また、
図3の処理で用いられる教示プログラムには、第1溶接ロボット10、ポジショナ20の目標位置として複数の教示点が定められているものとする。
【0056】
まず、第1命令解釈部32は、操作者から動作開始の入力を受け付け(ステップ101)、受け付けた入力内容に応じた教示プログラムを第1教示プログラム記憶部31から取得する(ステップ102)。そして、第1命令解釈部32は、取得した教示プログラムの命令を第1経路算出部33に出力する。次に、第1経路算出部33は、取得した命令に基づいて、第1溶接ロボット10及びポジショナ20の移動情報を算出する(ステップ103)。そして、第1経路算出部33は、算出した第1溶接ロボット10の移動情報を第1ロボット駆動部34に出力し、算出したポジショナ20の移動情報をポジショナ駆動部35に出力する。
【0057】
次に、第1ロボット駆動部34は、取得した第1溶接ロボット10の移動情報をもとに、第1溶接ロボット10を第1溶接ロボット10の目標位置である教示点まで移動させる。また、ポジショナ駆動部35は、取得したポジショナ20の移動情報をもとに、ポジショナ20をポジショナ20の目標位置である教示点まで移動させる(ステップ104)。ここで、教示プログラムに溶接を実行する命令が含まれていれば、溶接トーチ11により、ワーク21に対する溶接が行われ、溶接物の製造が行われる。そして、第1溶接ロボット10及びポジショナ20の移動完了後、第1経路算出部33は、第1溶接ロボット10及びポジショナ20の現在位置を取得する(ステップ105)。
【0058】
また、第1経路算出部33は、第1溶接ロボット10及びポジショナ20を次の教示点へ移動させるための命令を第1命令解釈部32に要求する。そして、第1命令解釈部32は、到着した現在の教示点が最終教示点か否かを判定する(ステップ106)。最終教示点であれば(ステップ106でYes)、第1制御装置30及びポジショナ20は最終的な目標位置に達したことになるため、本処理フローは終了する。一方、最終教示点でなければ(ステップ106でNo)、ステップ102に移行し、第1命令解釈部32は引き続き第1教示プログラム記憶部31から教示プログラムを取得する。
【0059】
<第2制御装置の処理手順>
次に、第2溶接ロボット50を動作させるための第2制御装置60の処理手順について説明する。
図4は、第2制御装置60による処理手順の一例を示したフローチャートである。また、第2制御装置60が
図4に示す手順により第2溶接ロボット50を制御するのと並行して、第1制御装置30が
図3に示す手順により第1溶接ロボット10及びポジショナ20を制御するものとする。さらに、
図4の処理で用いられる教示プログラムには、第2溶接ロボット50の目標位置として複数の教示点が定められているものとする。
【0060】
まず、第2命令解釈部62は、操作者から動作開始の入力を受け付け(ステップ201)、受け付けた入力内容に応じた教示プログラムを第2教示プログラム記憶部61から取得する(ステップ202)。ここで、第2命令解釈部62が取得する教示プログラムは、ステップ102で第1命令解釈部32が取得する教示プログラムと同一のプログラムである。また、ステップ201の操作者からの入力は、ステップ101の操作者からの入力とほぼ同時に行われるものとする。ただし、第1溶接ロボット10及び第2溶接ロボット50は、同期して移動するように制御されるため、操作者からの入力のタイミングにずれが生じても教示点間ではそれぞれの教示点にほぼ同時に到着することとなる。そして、第2命令解釈部62は、第2溶接ロボット50の動作に応じて、取得した教示プログラムの変換を行った後、変換後の教示プログラムの命令を第2経路算出部63に出力する。
【0061】
次に、第2経路算出部63は、第1制御装置30に対して、ポジショナ20の現在位置の情報を要求し(ステップ203)、第1制御装置30の第1経路算出部33からポジショナ20の現在位置の情報を取得する(ステップ204)。そして、第2経路算出部63は、第2命令解釈部62から取得した命令に基づいて、また、取得したポジショナ20の現在位置も考慮して、第2溶接ロボット50及びポジショナ20の移動情報を算出する(ステップ205)。
【0062】
そして、第2経路算出部63は、算出した第2溶接ロボット50の移動情報を第2ロボット駆動部64に出力し、算出したポジショナ20の移動情報をポジショナ経路記憶部65に記憶する。付言すると、ステップ205で第2経路算出部63が算出するポジショナ20の移動情報は、ステップ103で第1経路算出部33が算出するポジショナ20の移動情報と同じ内容であり、第2溶接ロボット50は、第1制御装置30により制御されるポジショナ20と連動して移動することとなる。
【0063】
次に、第2ロボット駆動部64は、取得した第2溶接ロボット50の移動情報をもとに、第2溶接ロボット50を第2溶接ロボット50の目標位置である教示点まで移動させる(ステップ206)。ここで、教示プログラムに溶接を実行する命令が含まれていれば、溶接トーチ51により、ワーク21に対する溶接が行われ、溶接物の製造が行われる。そして、第2溶接ロボット50の移動完了後、第2経路算出部63は、第2溶接ロボット50の現在位置を取得するとともに、ポジショナ経路記憶部65から教示プログラムの命令に基づく目標位置である教示点を取得し、ポジショナ20の現在位置として反映する(ステップ207)。
【0064】
また、第2経路算出部63は、第2溶接ロボット50を次の教示点へ移動させるための命令を第2命令解釈部62に要求する。そして、第2命令解釈部62は、到着した現在の教示点が最終教示点か否かを判定する(ステップ208)。最終教示点であれば(ステップ208でYes)、第2溶接ロボット50は最終的な目標位置に達したことになるため、本処理フローは終了する。一方、最終教示点でなければ(ステップ208でNo)、第2命令解釈部62は引き続き第2教示プログラム記憶部61から教示プログラムを取得し(ステップ209)、ステップ205へ移行する。
【0065】
<各装置の動作に関する処理の例>
次に、第1溶接ロボット10、第2溶接ロボット50、ポジショナ20を動作させるための一連の処理について説明する。
図5は、第1溶接ロボット10、第2溶接ロボット50、ポジショナ20が最初の教示点に達するまでの一連の処理の一例を示したシーケンス図である。
図5に示す処理において、第1溶接ロボット10は移動開始点A0から最初の教示点A1に移動し、第2溶接ロボット50は移動開始点B0から最初の教示点B1に移動するものとする。また、ポジショナ20は、移動開始点C0から最初の教示点C1に移動するものとする。さらに、第2教示プログラム記憶部61には、予め第1制御装置30から送信された教示プログラムが記憶されているものとする。
【0066】
まず、第1命令解釈部32は、操作者から動作開始の入力を受け付け、受け付けた入力内容に応じた教示プログラムを第1教示プログラム記憶部31から取得する(ステップ301)。また、第2命令解釈部62は、第1命令解釈部32と同様に、操作者から動作開始の入力を受け付け、第1命令解釈部32が取得したものと同じ教示プログラムを、第2教示プログラム記憶部61から取得する(ステップ302)。そして、第1命令解釈部32は、取得した教示プログラムの命令を第1経路算出部33に出力する。また、第2命令解釈部62は、第2溶接ロボット50の動作に応じて、取得した教示プログラムの変換を行った後、変換後の教示プログラムの命令を第2経路算出部63に出力する。
【0067】
次に、第2経路算出部63は、第1制御装置30に対して、ポジショナ20の現在位置の情報を要求すると(ステップ303)、第1経路算出部33は、要求に応じて、ポジショナ20の現在位置(点C0)の情報を第2経路算出部63に送信する(ステップ304)。そして、第2経路算出部63は、ポジショナ20の現在位置(点C0)の情報を取得する(ステップ305)。
【0068】
次に、第1経路算出部33は、第1命令解釈部32から取得した命令に基づいて、第1溶接ロボット10及びポジショナ20の移動情報を算出する(ステップ306)。ここで、第1経路算出部33は、第1溶接ロボット10の移動情報として、第1溶接ロボット10が現在位置(点A0)から教示点(点A1)へ移動するまでの移動情報を算出する。また、第1経路算出部33は、ポジショナ20の移動情報として、ポジショナ20が現在位置(点C0)から教示点(点C1)へ移動するまでの移動情報を算出する。
【0069】
そして、第1ロボット駆動部34は、第1溶接ロボット10を第1溶接ロボット10の教示点(点A1)まで移動させ、ポジショナ駆動部35は、ポジショナ20をポジショナ20の教示点(点C1)まで移動させる(ステップ307)。第1溶接ロボット10及びポジショナ20の移動完了後、第1経路算出部33は、第1溶接ロボット10の現在位置(点A1)とポジショナの現在位置(点C1)とを取得する(ステップ308)。そして、第1溶接ロボット10及びポジショナ20は、引き続き最終教示点に達するまで制御される。
【0070】
また、第2経路算出部63は、第2命令解釈部62から取得した命令に基づいて、第2溶接ロボット50及びポジショナ20の移動情報を算出する(ステップ309)。ここで、第2経路算出部63は、第2溶接ロボット50の移動情報として、第2溶接ロボット50が現在位置(点B0)から教示点(点B1)へ移動するまでの移動情報を算出する。また、第2経路算出部63は、ポジショナ20の移動情報として、ポジショナ20が、第1制御装置30から取得したポジショナ20の現在位置(点C0)から教示点(点C1)へ移動するまでの移動情報を算出する。
【0071】
そして、第2ロボット駆動部64は、第2溶接ロボット50を第2溶接ロボット50の教示点(点B1)まで移動させる(ステップ310)。また、第2溶接ロボット50の移動完了後、第2経路算出部63は、第2溶接ロボット50の現在位置(点B1)を取得するとともに、教示プログラムの命令に基づくポジショナ20の目標位置である教示点(点C1)をポジショナ20の現在位置として反映する(ステップ311)。そして、第2溶接ロボット50は、引き続き最終教示点に達するまで制御される。その際、第2経路算出部63は、ステップ303のようにポジショナ20の現在位置の情報を要求せず、ステップ311のように教示プログラムの命令に基づく目標位置にポジショナ20が到着したものとして、第2溶接ロボット50及びポジショナ20の移動情報を算出する。
また、上記のステップ301、304〜308の第1制御装置30の処理は、ステップ302、303、305、309〜311の第2制御装置60の処理と並行して行われるものとする。
【0072】
以上のように、第1制御装置30は、第1溶接ロボット10及びポジショナ20の動作を制御し、第2制御装置60は、第2溶接ロボット50の動作を制御する。そして、第2制御装置60は、ポジショナ20の動作を制御しないが、第1制御装置30の教示プログラムに基づいてポジショナ20の移動情報を算出し、算出した移動情報に基づいてポジショナ20が移動しているものとして第2溶接ロボット50の動作を制御する。そして、第1溶接ロボット10、第2溶接ロボット50及びポジショナ20を連動して動作させるために、第1溶接ロボット10の教示プログラムを用いて第2溶接ロボット50を動作させることとなり、教示プログラムの作成作業が軽減される。
【0073】
また、第2経路算出部63は、第2溶接ロボット50が動作を開始する時点でポジショナ20の現在位置を第1制御装置30に要求するため、第2溶接ロボット50が他装置と連動し易くなり、各装置が接触する等の不具合が抑制される。また、第2経路算出部63は、第2溶接ロボット50の動作開始後、ポジショナ20の現在位置を第1制御装置30に要求せずに、教示プログラムの命令に基づく目標位置にポジショナ20が到着したものとして、第2溶接ロボット50及びポジショナ20の移動情報を算出する。そのため、第2経路算出部63が常時ポジショナ20の現在位置を要求するような構成と比較して、通信遅れ等の通信不良による影響が抑制される。
【0074】
また、第1経路算出部33は、ステップ304において、移動開始点C0の情報をポジショナ20の現在位置として送信したが、このような構成に限られるものではない。例えば、第1経路算出部33がポジショナ20の現在位置を送信する際、すでにステップ307の処理によりポジショナ20の移動が開始されていても良い。この場合、第1経路算出部33は、移動開始点C0の情報ではなく、ポジショナ20の現在位置(例えば、点C0と点C1との間の点C2)の情報をポジショナ20の現在位置として送信すれば良い。
【0075】
<確認動作の処理手順>
次に、第1溶接ロボット10、第2溶接ロボット50による確認動作について説明する。
図6は、第1溶接ロボット10及び第2溶接ロボット50の確認動作にて実行される一連の処理の一例を示したシーケンス図である。以下の処理では、第1溶接ロボット10及び第2溶接ロボット50が停止している状態で、先に第1教示ペンダント40にて開始ボタン及び前進キーに対する操作が行われるものとする。また、第1溶接ロボット10及び第2溶接ロボット50が動作している状態で、先に第1溶接ロボット10が停止するものとする。
【0076】
まず、操作者により第1教示ペンダント40の開始ボタン及び前進キー(入力ボタン)が押下(ON)されると(ステップ401)、第1溶接ロボット10は、確認動作を開始する前の待機状態となる。そして、第1命令解釈部32は、第1溶接ロボット10が確認動作の待機状態であることを第2制御装置60に通知する(ステップ402)。
【0077】
次に、操作者により第2教示ペンダント70の開始ボタン及び前進キー(入力ボタン)が押下(ON)されると(ステップ403)、第2命令解釈部62は、第1溶接ロボット10の待機状態を解除するように第1制御装置30に通知する(ステップ404)。第1命令解釈部32は、第2命令解釈部62から待機状態を解除する旨の通知を受けると、第1溶接ロボット10の待機状態を解除する(ステップ405)。そして、第1命令解釈部32は、第1教示プログラム記憶部31から教示プログラムを取得し、取得した教示プログラムの命令を第1経路算出部33に出力する。また、第1ロボット駆動部34は、第1経路算出部33により算出された第1溶接ロボット10及びポジショナ20の移動情報に基づいて、第1溶接ロボット10及びポジショナ20を移動させて確認動作を実行する(ステップ406)。
【0078】
また、第2命令解釈部62は、ステップ404で待機状態を解除するように第1制御装置30に通知した後、第2教示プログラム記憶部61から教示プログラムを取得し、取得した教示プログラムの命令を第2経路算出部63に出力する。そして、第2ロボット駆動部64は、第2経路算出部63により算出された第2溶接ロボット50及びポジショナ20移動情報に基づいて、第2溶接ロボット50を移動させて確認動作を実行する(ステップ407)。
【0079】
また、第1溶接ロボット10が停止する場合、第1命令解釈部32は、第1溶接ロボット10が停止する旨を第2制御装置60に通知する(ステップ408)。第2命令解釈部62は、第1溶接ロボット10が停止する旨の通知を受けると、第2ロボット駆動部64に対して第2溶接ロボット50を停止させるように通知し、第2ロボット駆動部64は第2溶接ロボット50を停止する(ステップ409)。
【0080】
このように、第1溶接ロボット10及び第2溶接ロボット50による確認動作において、待機状態の通知や待機状態の解除が行われることにより、第1溶接ロボット10及び第2溶接ロボット50の動作開始のタイミングが合わされる。また、停止する旨の通知が行われることにより、第1溶接ロボット10及び第2溶接ロボット50の動作停止のタイミングが合わされる。そのため、確認動作において、第1溶接ロボット10及び第2溶接ロボット50の動作開始のタイミングや動作停止のタイミングが異なるために各装置が接触する等の不具合が抑制される。
【0081】
また、
図6に示す処理では、第1教示ペンダント40の操作により第1溶接ロボット10が待機状態となることとしたが、第2教示ペンダント70の操作により第2溶接ロボット50が待機状態となることとしても良い。また、
図6に示す処理では、第1溶接ロボット10が第2溶接ロボット50よりも早く停止することとしたが、第2溶接ロボット50が先に停止することとしても良い。
【0082】
また、本実施の形態において、第2制御装置60の第2命令解釈部62が教示プログラムの変換を行うこととしたが、このような構成に限られるものではない。例えば、第1制御装置30の第1命令解釈部32が教示プログラムの変換を行っても良く、また、第1制御装置及び第2制御装置60とは別に設けられたPC(Personal Computer)等が変換を行うこととしても良い。
【0083】
さらに、本実施の形態において、第2制御装置60の第2教示プログラム記憶部61は、第1制御装置30から送信等された教示プログラムを記憶することとしたが、例えば、第1制御装置30の教示プログラムをもとに操作者により修正された修正後の教示プログラムを記憶することとしても良い。この場合、
図4のステップ202や
図5のステップ302で第2命令解釈部62が取得する教示プログラムは、第1命令解釈部32が取得する教示プログラムを修正したものとなる。また、第2教示プログラム記憶部61は、第2溶接ロボット50を制御するために操作者により直接作成された教示プログラムを記憶することとしても良い。その際、操作者は、第1制御装置30に記憶された教示プログラムをもとに、第2教示プログラム記憶部61に記憶させる教示プログラムを作成することとしても良い。
【0084】
そして、本実施の形態において、第2制御装置60は、算出した移動情報に沿って、実際にポジショナ20が移動しているか否かの判定を行うこととしても良い。ここで、例えば、第2制御装置60は、第1制御装置30から定期的にポジショナ20の現在位置を取得し、第2制御装置60にて算出した移動情報に基づくポジショナ20の位置が、実際の現在位置に合うか否かの判定を行うこととしても良い。そして、第2制御装置60は、移動情報に基づくポジショナ20の位置が実際の現在位置に合わないと判定した場合、例えば、エラーを発生して操作者にその旨を通知するような構成にしても良い。
【0085】
また、本実施の形態において、第1溶接ロボット10及び第2溶接ロボット50はそれぞれの教示点に同時に到着するように制御されることとしたが、全ての教示点に同時に到着するのではなく、予め定められた教示点に同時に到着するように制御されることとしても良い。例えば、ワーク21に対するアーク発生開始時には、各溶接ロボットの処理が同時に実行されるように制御され、ワーク21からの距離が遠い教示点に対しては、各溶接ロボットが別々に到着するように制御されることとしても良い。
【0086】
さらに、本実施の形態において、溶接ロボットシステム1は周辺装置としてポジショナ20を備えることとしたが、このような構成に限られるものではない。例えば、溶接ロボットシステム1は、ポジショナ20にかえて、またはポジショナ20に加えて、スライダ等の他の周辺装置を備えることとしても良い。また、第1制御装置30が周辺装置の制御を行うこととしたが、それに加えて、第2制御装置60も他の周辺装置の制御を行うこととしても良い。
【0087】
そして、本実施の形態において、溶接ロボットシステム1は、第1溶接ロボット10、第2溶接ロボット50の2台の溶接ロボットを備えることとしたが、このような構成に限られるものではなく、3台以上の溶接ロボットを備えることとしても良い。
【0088】
<制御装置のハードウェア構成>
次に、第1制御装置30及び第2制御装置60のハードウェア構成について説明する。
図7は、本実施の形態に係る第1制御装置30及び第2制御装置60のハードウェア構成例を示す図である。
第1制御装置30、第2制御装置60は、例えば、図示するように、演算手段であるCPU(Central Processing Unit)91と、記憶手段である揮発性メモリ92、不揮発性メモリ93とを備える。ここで、CPU91は、OS(Operating System)やアプリケーションソフトウェア等の各種プログラムを実行する。また、揮発性メモリ92は、各種プログラムやその実行に用いるデータ等を記憶する記憶領域であり、不揮発性メモリ93は、各種プログラムに対する入力データや各種プログラムからの出力データ等を記憶する記憶領域である。
【0089】
さらに、第1制御装置30、第2制御装置60は、外部との通信を行うための通信インターフェース(以下、「通信I/F」と表記する)94と、記憶媒体に対してデータの読み書きを行うためのドライバ95とを備える。なお、
図7はハードウェア構成例に過ぎず、第1制御装置30及び第2制御装置60は図示の構成に限定されない。
【0090】
そして、第1制御装置30及び第2制御装置60において、不揮発性メモリ93には、
図2に示す各機能を実現するためのプログラムが格納されている。そして、このプログラムが揮発性メモリ92にロードされ、このプログラムに基づく処理がCPU91により実行されることにより、第1制御装置30及び第2制御装置60において、
図2に示す各機能部が実現される。また、第1教示プログラム記憶部31、第2教示プログラム記憶部61は、例えば、不揮発性メモリ93等の記憶領域により実現され、ポジショナ経路記憶部65は、例えば、揮発性メモリ92等の記憶領域により実現される。
【0091】
<プログラムの説明>
以上説明を行った本実施の形態における第2制御装置60が行う処理は、上述した通り、例えば、アプリケーションソフトウェア等のプログラムとして用意される。
【0092】
よって、第2制御装置60が行う処理は、コンピュータに、ロボット及び周辺装置に実行させる動作が記述された教示プログラムを取得する機能と、取得された教示プログラムに基づいて、自装置に接続されたロボットが自装置に接続されていない周辺装置と連動して動作するように、ロボットの動作に関する情報を生成する機能と、生成されたロボットの動作に関する情報に基づいて、自装置に接続されたロボットを制御する機能とを実現させるためのプログラムとして捉えることもできる。
【0093】
なお、本発明の実施の形態を実現するプログラムは、通信手段により提供することはもちろん、CD−ROM等の記録媒体に格納して提供することも可能である。
【0094】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。