(57)【要約】【課題】１つのプログラムで複数の制御対象の非同期制御を可能にし、作業線の長さ又は移動速度が異なっても各ロボットが設定された移動速度で作業線上を移動することができるロボット制御装置を提供する。【解決手段】非同期制御部２３は、第１工程部２５、第２工程部２６及び第３工程部２７を備える。第１工程部は、主制御対象Ｃａ及び従制御対象Ｃｂが教示点に到達する際の移動時間を算出して教示点に最短時間で到達する先行制御対象を決定する。第２工程部は、最短時間に基づいて後行側の制御対象が到達すべき教示点を再設定する。第３工程部は、両方の制御対象を目標教示点に同時に到達させた後、どちらの制御対象も最終教示点へ到達していない時は非同期制御を続行し、最終教示点へ到達している時は先行側の制御対象を待機させつつ後行側の制御対象を最終教示点に到達させて非同期制御を終了する。【選択図】図１
2009075898.tif 000002
【特許請求の範囲】
【請求項１】
２台のロボット毎に教示された教示点によって外部軸に設置されたワーク上に形成された２の作業線を１の作業プログラムに記憶し、前記外部軸を回転動作させながら前記２台のロボットを前記作業線の各教示点に到達させて前記ワークに対する加工作業を行わせるロボット制御装置において、
前記外部軸と同期させて前記教示点に到達させる一方のロボットおよび前記外部軸を主制御対象とし、他方のロボットを従制御対象として設定する主従関係設定部と、
前記作業線の一部または全部を非同期制御区間として設定する非同期制御区間設定部と、
前記主制御対象および前記従制御対象を前記非同期制御区間の開始教示点から同時に移動開始させた後、前記主制御対象および前記従制御対象を前記非同期制御区間の移動目標教示点に非同時に到達させ、一方の制御対象が前記非同期制御区間の最終教示点に到達したときは他方の制御対象が最終教示点に到達するまで最終教示点に到達した制御対象を待機させる非同期制御部と、
を備えたことを特徴とするロボット制御装置。
【請求項２】
請求項１記載の非同期制御部は、
予め設定された前記外部軸に対する相対移動速度に基づき、到達教示点から移動目標教示点への移動時間を前記制御対象毎に算出し、移動目標教示点に最短時間で到達する制御対象を先行側、他方を後行側として決定する第１工程部と、
前記従制御対象が先行側のときは、後行側である前記主制御対象が自身の作業線を前記相対移動速度で移動して前記最短時間の経過後に到達する位置を前記主制御対象の移動目標教示点として再設定し、前記主制御対象が先行側のときは後行側である前記従制御対象の移動目標教示点を前記主制御対象の移動目標教示点に基づいて再設定する第２工程部と、
前記主制御対象および前記従制御対象を移動目標教示点に同時に到達させた後、どちらの制御対象も最終教示点へ到達していない場合は移動目標教示点として次の教示点を前記第１工程部に入力して非同期制御を続行し、一方の制御対象が最終教示点へ到達している場合は既に到達している制御対象を最終教示点で待機させつつ他方の制御対象を前記作業線を経由して最終教示点に到達させて非同期制御を終了する第３工程部と、
を備えたこと特徴とするロボット制御装置。
【請求項３】
前記移動目標教示点が再設定された場合に、前記従制御対象の本来の教示点における前記外部軸の回転角度と前記従制御対象の移動目標教示点における前記外部軸の回転角度との差が所定値よりも大きいときは、異常を出力して前記主制御対象および前記従制御対象を停止させることを特徴とする請求項２記載のロボット制御装置。
【請求項４】
前記２台のロボットは手首部先端にアーク溶接トーチを備えたアーク溶接ロボットであり、前記外部軸はポジショナであることを特徴とする請求項１〜３のいずれか１項に記載のロボット制御装置。
【請求項５】
前記相対移動速度は、溶接速度であることを特徴とする請求項４記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数台のロボットと１台の外部軸（例えばポジショナ等）とを動作制御して加工作業を行わせるロボット制御装置に関するものである。
【背景技術】
【０００２】
従来から、複数台のロボットおよび１台のポジショナを１台のロボット制御装置で動作制御することによって、ポジショナに設置したワークの複数の加工箇所に対して複数台のロボットが同時に加工作業を行うロボット制御装置が知られている。例えば、アーク溶接ロボットの分野においては、ポジショナに設置したワークの複数の溶接箇所を、２台のロボットで同時に溶接することが行われている（例えば、特許文献１、特許文献２参照）。
【０００３】
特許文献１に記載された従来技術では、複数の制御対象毎に教示点を教示して１つの移動命令で記憶するとともに、複数の移動命令で形成される移動経路が１つの作業プログラムに記憶されている。そして、作業プログラムを再生運転すると複数の制御対象が各々の教示点に同時に出発して同時に到達する、いわゆる同期制御が行われる。特許文献２に記載された従来技術では、制御対象毎に作業プログラムを作成しておき、複数の作業プログラムを同時に起動することによって、複数の作業プログラム間における非同期制御を実現している。
【０００４】
以下、２台のロボットおよび１台のポジショナを制御するロボット制御装置を使用したアーク溶接ロボットシステムを例にして、従来の同期制御について説明する。
【０００５】
図９は、従来のロボット制御装置を使用したアーク溶接ロボットシステムのブロック図である。
【０００６】
同図において、ロボットＡ、ロボットＢおよびポジショナＰ（以下、これらを総称する場合は制御対象と呼ぶ。）は、ロボット制御装置１に接続されている。ロボットＡおよびＢは、ワークＷに対して加工作業を自動で行うものであり、複数のアームと、これらを回転駆動するための複数のサーボモータ（図示せず）とによって各々構成されている。また、アームの先端には図示しないアーク溶接トーチが取り付けられている。
【０００７】
ポジショナＰには、溶接箇所である作業線ＷＡおよびＷＢを有するワークＷが設置されている。ワークＷは、ポジショナＰが回転制御されることによってロボットＡおよびＢに対して最適な溶接姿勢を取ることが可能となっている。作業者は、ロボットＡおよびＢのそれぞれが作業線ＷＡおよびＷＢに沿って移動するように複数の教示点を教示する。なお、加工箇所である作業線ＷＡおよびＷＢは左右対称であるものとする。
【０００８】
ロボット制御装置１は、各制御対象を制御するためのものであり、その中枢となる主制御部３、各制御対象の軌跡演算等を行って演算結果を駆動信号として駆動指令部１２に出力する動作制御部１１、各制御対象のサーボモータを回転制御するためのサーボ制御信号を出力する駆動指令部１２、ティーチペンダントＴＰとの通信を行うためのＴＰインタフェース２、作業プログラムおよび各種パラメータ等を記憶するためのハードディスク４、一時的な計算領域であるＲＡＭ５、および外部機器との通信を行うための入出力インターフェース６を備えている。
【０００９】
ティーチペンダントＴＰは、可搬式の教示操作盤であり、ロボット制御装置１のＴＰインタフェース２に接続されている。ティーチペンダントＴＰには、手動操作する制御対象を選択する制御対象選択スイッチ、各制御対象を実際に手動操作で動かすための軸操作キー等（いずれも図示せず）が備わっている。これらのスイッチ、キー等を操作することによって制御対象を各々所望の位置に動かすことができるとともに、その位置を教示点として作業プログラムに記憶することができる。
【００１０】
起動ボックスＳＢは、作成した作業プログラムの再生運転を行うための起動信号をロボット制御装置１に入力するためのものである。起動ボックスＳＢからの起動信号は、入出力インターフェース６を介して主制御部３に入力される。
【００１１】
次に、２台のロボットおよび１台のポジショナを同期制御するための教示について説明する。
【００１２】
図１０は、作業プログラムの教示例を示す図である。同図において、ポイントＰｔは教示点の番号を示しており、００１から始まり教示点を記憶するたびに＋１される。
【００１３】
命令Ｃｍは、各制御対象を教示点へ移動させたり、溶接を開始または終了させたりするためのものである。例えばＭＯＶＥ命令ならば教示点へＰＴＰ動作を行い、ＬＩＮＥ命令ならば教示点へ直線補間動作を行う。また、ArcStart命令ならばアーク溶接を開始し、ArcEnd命令ならばアーク溶接を終了する。図示している教示例の場合、ポイント００１〜００２のＭＯＶＥ命令が溶接開始位置へ到達するエアカット区間、ポイント００３〜００５のＬＩＮＥ命令がワークＷにアーク溶接を行うアーク溶接区間、ポイント００６は溶接終了位置から待避するエアカット区間をそれぞれ示している。
【００１４】
移動速度Ｓｐは、移動命令で設定されるパラメータであり、制御対象が教示点へ移動する際の移動速度を示している。ポイント００３〜００５のアーク溶接区間においては、移動命令で設定された移動速度ではなく、ArcStart命令で指定された溶接速度が移動速度Ｓｐとして使用される（同図において括弧で囲んだ移動速度は使用されないことを示している）。以下では、移動命令で設定される移動速度とArcStart命令で設定される溶接速度とを、特に区別することなく移動速度Ｓｐと称して説明する。
【００１５】
ところで、アーク溶接区間における移動速度Ｓｐは、ロボットＡおよびロボットＢのポジショナＰに対する相対移動速度である。すなわち、ポジショナＰの回転動作に合わせてロボットＡおよびロボットＢがアーク溶接を行う際の、ポジショナＰに対する移動速度を示している。
【００１６】
各制御対象を到達させる教示点は位置データとして記憶されている。位置データＰａはロボットＡの教示点（Ａ１〜Ａ６等）を、位置データＰｂはロボットＢの教示点（Ｂ１〜Ｂ６等）を、位置データＰｐはポジショナＰの教示点（Ｐ１〜Ｐ６）をそれぞれ示している。このように、各制御対象が到達すべき位置データが１つの移動命令に記憶されている。なお、ロボットＡおよびＢの実際の位置データは、ポジショナＰを基準にした直交座標系であるワーク座標系での座標値等で表現されるべきものであり、ポジショナＰの実際の位置データは関節値等で表現されるべきものであるが、ここでは、説明の便宜上、各教示点の位置データをＡ１、Ｂ１、Ｐ１等の形式で表現している。
【００１７】
図９に戻り、作成した作業プログラムの再生運転を行うための起動信号が起動ボックスＳＢから入力されると、動作制御部１１において作業プログラムに記憶された移動命令を解釈して軌道計画および補間演算を行い、駆動信号を駆動指令部１２に出力する。そして、駆動指令部１２が各制御対象の各サーボモータにサーボ制御信号を出力し、対応する軸をそれぞれ回転駆動する。このことによって、ロボットＡ、ロボットＢおよびポジショナＰが同時に動き出し、作業線ＷＡおよびＷＢの各教示点に同時に到達しながらワークＷに対する加工作業を行う。
【００１８】
ワークＷが左右対称である場合は、溶接箇所である左右の作業線（作業線ＷＡおよびＷＢ）が同一長となり移動速度も同一値が設定されるのが一般的なので、上述した同期制御によって何の問題もなくアーク溶接加工が行われる。しかしながら、ワークＷの形状によっては、左右の作業線を異なる長さにしたいニーズ、左右の作業線に異なる移動速度を設定したいニーズ等が存在するが、このようなニーズに対しては、同期制御時の速度制御に起因して後述する課題を有していた。
【００１９】
【特許文献１】特開平１０−２４３６９号公報
【特許文献２】特開２００５−３４６７４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
従来のロボットシステムで同期制御を行う際の課題を説明する。
【００２１】
図１１は、左右の作業線の長さおよび移動速度が異なる場合のロボットＡおよびＢの移動速度を説明するための図である。同図（ａ）は、ロボットＡが教示点Ａ２〜Ａ４を移動する際の移動時間と移動速度との関係を、同図（ｂ）はロボットＢが教示点Ｂ２〜Ｂ４を移動する際の移動時間と移動速度との関係をそれぞれ示している。また、同図（ｃ）はロボットＡの作業線ＷＡおよびロボットＢの作業線ＷＢにおける教示点間距離を示している。
【００２２】
同図（ｃ）に示すように、教示点Ａ２・Ａ３間距離Ｄａ３と教示点Ｂ２・Ｂ３間距離Ｄｂ３は同一距離で教示され、教示点Ａ３・Ａ４間距離Ｄａ４と教示点Ｂ３・Ｂ４間距離Ｄｂ４は異なる距離（それぞれ１０ｃｍ、５ｃｍ）で教示されている。また、ロボットＡの設定移動速度Ｓｓａは１００ｃｍ／分、ロボットＢの設定移動速度Ｓｓｂは７５ｃｍ／分であり、各々の作業線で異なる移動速度が設定されている。
【００２３】
同期制御においては、まず、設定移動速度ＳｓａおよびＳｓｂに基づいて各ロボットが各々の教示点へ到達するのに要する移動時間を算出する。次に、移動時間が最長となるロボットを決定する。そして、最長移動時間となるロボットについては設定された移動速度で移動するように制御し、もう片方のロボットについては移動時間が上記最長移動時間に一致するように移動速度を算出した上で制御する。以下、ロボットＡが教示点Ａ３からＡ４へ、ロボットＢが教示点Ｂ３からＢ４へ、同期制御によって各々移動する際の移動速度について説明する。
【００２４】
同図（ａ）において、ロボットＡが教示点Ａ３からＡ４に到達するまでの移動時間Ｔａは、６秒（１０ｃｍ÷１００ｃｍ／分）である。一方、同図（ｂ）において、ロボットＢが教示点Ｂ３からＢ４に到達するまでの移動時間Ｔｂは、４秒（５ｃｍ÷７５ｃｍ／分）である。移動時間が最長となるロボットはロボットＡとなるので、ロボットＡの移動速度Ｓｐａとしては、設定移動速度Ｓｓａがそのまま使用される。ロボットＢについては、教示点Ｂ３からＢ４への移動時間Ｔｂが６秒になるように、移動速度Ｓｐｂが決定される。すなわち、ロボットＢの移動速度Ｓｐｂは５０ｃｍ／分（５ｃｍ÷６秒）となり、設定された設定移動速度Ｓｓｂより小さい値になる。
【００２５】
移動速度が設定値から変化すると、アーク溶接後の施工結果は全く意図しないものとなる。このために、左右の作業線の長さおよび移動速度を異なるものとしたときは、移動速度、教示点への移動距離等の関係を綿密に計算し、移動速度が両ロボットにおいて一致する位置にダミーの教示点を教示しておく等、教示の工夫を必要としており、煩雑さを伴うと共に多大な教示工数を要するという課題を有していた。言い換えると、図９で示したロボットシステムは、左右対称のワークであって作業線が左右同一長および左右同一の移動速度を設定するという前提条件の元でしか使用できないという制限があった。
【００２６】
上記課題を解決するために、特許文献２において、制御対象毎に作業プログラムを作成しておき、複数の作業プログラムを同時に起動することのできる制御手段を備え、複数の作業プログラム間における非同期制御を実現できる作業機械の制御装置が開示されている。しかしながら、特許文献２に記載の従来技術では、制御対象毎に複数の作業プログラムを作成することが必要であるとともに、同期制御を行う区間も複数の作業プログラム毎に指定する必要があった。このために、１つの作業プログラムで全ての制御対象の教示を行うことに比べて、教示作業が煩雑であるという課題を有していた。
【００２７】
そこで、本発明は、複数の作業線を記憶した１の作業プログラムに基づいて複数のロボットを動作制御するに際して、教示された作業線の長さまたは移動速度が作業線毎に異なっても、非同期制御することによって各ロボットが必ず設定された移動速度で作業線上を移動することができるロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【００２８】
上記目的を達成するために、第１の発明は、
２台のロボット毎に教示された教示点によって外部軸に設置されたワーク上に形成された２の作業線を１の作業プログラムに記憶し、前記外部軸を回転動作させながら前記２台のロボットを前記作業線の各教示点に到達させて前記ワークに対する加工作業を行わせるロボット制御装置において、
前記外部軸と同期させて前記教示点に到達させる一方のロボットおよび前記外部軸を主制御対象とし、他方のロボットを従制御対象として設定する主従関係設定部と、
前記作業線の一部または全部を非同期制御区間として設定する非同期制御区間設定部と、
前記主制御対象および前記従制御対象を前記非同期制御区間の開始教示点から同時に移動開始させた後、前記主制御対象および前記従制御対象を前記非同期制御区間の移動目標教示点に非同時に到達させ、一方の制御対象が前記非同期制御区間の最終教示点に到達したときは他方の制御対象が最終教示点に到達するまで最終教示点に到達した制御対象を待機させる非同期制御部と、
を備えたことを特徴とするロボット制御装置である。
【００２９】
第２の発明は、第１の発明記載の非同期制御部は、
予め設定された前記外部軸に対する相対移動速度に基づき、到達教示点から移動目標教示点への移動時間を前記制御対象毎に算出し、移動目標教示点に最短時間で到達する系列を先行側、他方を後行側として決定する第１工程部と、
前記従制御対象が先行側のときは、後行側である前記主制御対象が自身の作業線を前記相対移動速度で移動して前記最短時間の経過後に到達する位置を前記主制御対象の移動目標教示点として再設定し、前記主制御対象が先行側のときは後行側である前記従制御対象の移動目標教示点を前記主制御対象の移動目標教示点に基づいて再設定する第２工程部と、
前記主制御対象および従制御対象を移動目標教示点に同時に到達させた後、どちらの制御対象も最終教示点へ到達していない場合は移動目標教示点として次の教示点を前記第１工程部に入力して非同期制御を続行し、一方の制御対象が最終教示点へ到達している場合は既に到達している制御対象を最終教示点で待機させつつ他方の制御対象を前記作業線を経由して最終教示点に到達させて非同期制御を終了する第３工程部と、
を備えたこと特徴とするロボット制御装置である。
【００３０】
第３の発明は、前記移動目標教示点が再設定された場合に、前記従制御対象の本来の教示点における前記外部軸の回転角度と前記従制御対象の再設定された移動目標教示点における前記外部軸の回転角度との差が所定値よりも大きいときは、異常を出力して前記主制御対象および前記従制御対象を停止させることを特徴とする請求項２記載のロボット制御装置である。
【００３１】
第４の発明は、前記２台のロボットは手首部先端にアーク溶接トーチを備えたアーク溶接ロボットであり、前記外部軸はポジショナであることを特徴とする第１〜第３のいずれか１項に記載のロボット制御装置である。
【００３２】
第５の発明は、前記相対移動速度は、溶接速度であることを特徴とする第４の発明記載のロボット制御装置である。
【発明の効果】
【００３３】
第１および第２の発明によれば、１台の外部軸に対して２台のロボットが同時に加工作業を行うロボットシステムにおいて、複数の制御対象の非同期制御を１つの作業プログラムで可能にしている。すなわち、２つの作業線を異なる長さ、移動速度にしたい場合にダミーの教示点を教示する等の教示の工夫を施さなくても、各ロボットが必ず教示された移動速度で作業線上を移動できるようにしたので、教示工数を大幅に低減できる。
【００３４】
第３の発明によれば、従制御対象の本来の教示点における外部軸の回転角度と従制御対象の移動目標教示点における外部軸の回転角度との差が所定値よりも大きいときは、異常を出力して主制御対象および従制御対象を停止させるようにしたので、教示結果と大きく異なる位置にロボットが移動することを未然に防止することができる。
【００３５】
第４および第５の発明によれば、特にアーク溶接ロボットでワークを溶接加工する場合に第１〜第３の発明が奏する効果を発揮できる。
【発明を実施するための最良の形態】
【００３６】
以下、発明の実施形態を実施例に基づき図面を参照して説明する。
【００３７】
図１は、本発明のロボット制御装置を適用したアーク溶接ロボットのブロック図である。同図において、従来技術の図９との相違は、動作制御部１１、ＲＡＭ５および外部機器ＥＰである。その他、同一のものについては同符号を付与して説明を省略する。
【００３８】
動作制御部１１は、非同期制御区間設定部２１、同期制御を行う同期制御部２２および非同期制御を行うための非同期制御部２３を備えている。非同期制御区間設定部２１は、ハードディスク４に記憶された作業プログラムの移動命令を解釈し、解釈結果に基づき、作業線の一部または全部を非同期制御区間として非同期制御部２３に設定する。非同期制御区間が設定されない区間は同期制御部２２において同期制御が行われる。
【００３９】
非同期制御部２３は、第１工程部２５、第２工程部２６および第３工程部２７を備えている。ＲＡＭ５は一時的な計算領域であり、先行制御対象記憶部５１、追加教示点記憶部５２（５２Ａは主制御対象Ｃａ用、５２Ｂは従制御対象Ｃｂ用）、および未消化教示点記憶部５３（５３Ａは主制御対象Ｃａ用、５３Ｂは従制御対象Ｃｂ用）を備えている。非同期制御部２３と各工程部の動作、ＲＡＭ５の各部の詳細については後述する。
【００４０】
主従関係設定部２４は、作業プログラムで予め指定された主制御対象および従制御対象を非同期制御部２３に設定する。主制御対象とは、ポジショナＰおよびこのポジショナＰと同期させて教示点に到達させるロボットのことである。従制御対象とはポジショナＰと同期させない、もう片方のロボットのことである。本実施形態では、図示するように、ロボットＡおよびポジショナＰが主制御対象Ｃａとして指定され、ロボットＢが従制御対象Ｃｂとして指定されているものとする。主制御対象Ｃａおよび従制御対象Ｃｂは作業プログラムで作業者が任意に指定できるようにするのが望ましいが、固定値としてロボット固有のパラメータで予め定めておいても良い。
【００４１】
図２は、作業プログラムの教示例を示す図である。同図では、従来技術の図１０で説明した作業プログラムにおいて特定の区間を非同期制御するための教示が行われている。具体的には、ポイント００３〜００５のアーク溶接区間が、NoSyncStart命令およびNoSyncEnd命令で挟まれた非同期制御区間として教示されている。NoSyncStart命令は非同期制御を開始する命令、NoSyncEnd命令は非同期制御を終了する命令である。なお、この非同期制御区間は上記命令で挟む教示の他に、ポイント００３〜００５に非同期制御を行うことを示すマークを付与することによって教示するように構成しても良い（例えば、ポイント００３〜００５にＰマークが付与されていれば非同期制御区間と見なして非同期制御を行う等）。また、非同期制御区間を教示するのではなく、上位コントローラ等の外部機器ＥＰから非同期制御信号が入力されている間だけ、非同期制御を行うように構成しても良い。このように構成しておけば、教示作業時間を低減することが可能である。以下では、非同期制御区間がNoSyncStart命令およびNoSyncEnd命令で設定されている場合を例にして説明する。
【００４２】
次に動作を説明する。まず、非同期制御区間設定部２１がポイント００１のＭＯＶＥ命令を解釈する。非同期制御区間は設定されていないので、従来技術と同様に、同期制御によってロボットＡを教示点Ａ１に、ロボットＢを教示点Ｂ１に、ポジショナＰを教示点Ｐ１に同時に到達させる。ポイント００２のＭＯＶＥ命令に対しても同様の処理を行う。
【００４３】
次に、非同期制御区間設定部２１がNoSyncStart命令を解釈する。非同期制御区間の開始指定がなされているので、非同期制御を開始する。このとき、NoSyncEnd命令をサーチすることによって非同期制御区間の最終教示点を予め求めておく。この場合は、ポイント００５の教示点Ａ５、Ｂ５およびＰ５が最終教示点となる。
【００４４】
次に、命令解釈部２１がArcStart命令を解釈する。アーク溶接の開始指定がなされているので、ロボットＡおよびロボットＢに対して図示しないアーク溶接電源からアークスタート指令信号が出力され、アーク溶接が開始される。なお、ポイント００３〜００５のアーク溶接区間においては、移動命令で設定された移動速度ではなく、ArcStart命令で指定された溶接速度が移動速度として使用される（同図において括弧で囲んだ移動速度は使用されないことを示している）。また、アーク溶接区間における移動速度は、ロボットＡおよびロボットＢのポジショナＰに対する相対移動速度であって、図示するように、ロボットＡは移動速度Ｓｐａ、ロボットＢは移動速度Ｓｐｂが教示されているものとする。
【００４５】
図３は、ロボットＡ、ロボットＢおよびポジショナＰの移動時間と移動速度との関係を示した波形図である。同図（ａ）は非同期制御を行わない場合、同図（ｂ）は非同期制御を行った場合をそれぞれ示している。同図（ａ）に示すように、非同期制御を行わない場合は、ロボットＡ、ロボットＢおよびポジショナＰが移動命令Ｃｍで教示されている教示点に同時に到達する。このとき、教示している移動速度ＳｐａまたはＳｐｂのいずれか片方が遵守されないことは従来技術で説明したとおりである。一方、同図（ｂ）に示すように、非同期制御が行われる場合は、各制御対象が教示されている移動速度Ｓｐａ、Ｓｐｂでそれぞれ移動する。すなわち、主制御対象ＣａであるロボットＡおよびポジショナＰ、ならびに従制御対象ＣｂであるロボットＢは、教示されたそれぞれの移動速度を遵守し、異なるタイミングで教示点に到達する。
【００４６】
次に非同期制御について説明する。
【００４７】
図４は、非同期制御時のフローチャートである。同図において、ステップＳ１が第１工程部２５の処理、ステップＳ２が第２工程部２６の処理、ステップＳ３〜Ｓ５が第３工程部２７の処理をそれぞれ示している。同図を用いて、非同期制御時の大まかな流れについて説明する。より詳細には、具体的な教示例を挙げた上で後述する。なお、以下では、ロボットＡ、ロボットＢおよびポジショナＰが移動目標とする教示点のことを移動目標教示点と呼ぶことにする。
【００４８】
ステップＳ１において、第１工程部２５は、各々設定されている移動速度に従い、主制御対象Ｃａおよび従制御対象Ｃｂが移動目標教示点に到達する際の移動時間を算出し、移動目標教示点に最短時間で到達する（先行する）制御対象を決定する。
【００４９】
ステップＳ２において、第２工程部２６は、従制御対象Ｃｂが先行側のときは、後行側である主制御対象Ｃａが自身の作業線を移動速度Ｓｐａで移動して最短時間の経過後に到達する位置を主制御対象Ｃａの移動目標教示点として再設定する。また、主制御対象Ｃａが先行側のときは後行側である従制御対象Ｃｂの移動目標教示点を主制御対象Ｃａの移動目標教示点に基づいて再設定する。また、本来到達すべき教示点を未消化教示点として設定する。
【００５０】
ステップＳ３において、各々の制御対象を移動目標教示点に到達させるための軌道計画および補間演算を行い、駆動信号を駆動指令部１２に出力する。
【００５１】
ステップＳ４において、各々の制御対象が移動目標教示点に同時に到達した後、次の処理を行う。どちらの制御対象も非同期制御区間の最終教示点へ到達していないときは、ステップＳ１に戻り、非同期制御を続行する。すなわち、先行側の制御対象は次の移動目標教示点を、後行側の制御対象は現在位置に最も近い未消化教示点を、移動目標教示点として第１工程部２５に入力して非同期制御を続行する。先行側の制御対象が非同期制御区間の最終教示点へ到達しているときは、ステップＳ５に移る。
【００５２】
ステップＳ５において、先行側の制御対象を最終教示点で待機させつつ、後行側の制御対象を未消化教示点を経由して最終教示点に到達させて非同期制御を終了する。
【００５３】
次に、図５〜図８を参照して、ロボットＡおよびポジショナＰで構成される主制御対象Ｃａ、ロボットＢで構成される従制御対象Ｃｂをそれぞれの教示点に非同期制御で到達させる際の上記処理について、教示例を挙げて具体的に説明する。なお、ロボットＡおよびポジショナＰで構成される主制御対象Ｃａの教示点は、実際はロボットＡの教示点およびポジショナＰの両方の教示点を示す。説明を簡略化するために、以下においては、例えば「主制御対象Ｃａが教示点Ａ３（Ｐ３）に移動する」と表現している場合は、「ロボットＡが教示点Ａ３に、ポジショナＰが教示点Ｐ３に移動する」ということを示すものとする。
【００５４】
［非同期制御区間の教示点Ａ３（Ｐ３）およびＢ３への非同期制御］
図５は、非同期制御区間の最初の移動目標教示点である教示点Ａ３（Ｐ３）およびＢ３に移動させる際の処理を説明するための図である。同図（ａ）は、主制御対象Ｃａが教示点Ａ２（Ｐ２）から教示点Ａ３（Ｐ３）へ移動する際の、同図（ｂ）は従制御対象Ｃｂが教示点Ｂ２から教示点Ｂ３へ移動する際の、移動時間と移動速度との関係をそれぞれ示した波形図である。
【００５５】
第１工程部２５は、主制御対象Ｃａが移動速度Ｓｐａに従って教示点Ａ３（Ｐ３）に到達する際の移動時間Ｔａ３を算出する。同様に、従制御対象Ｃｂが移動速度Ｓｐｂに従って教示点Ｂ３に到達する際の移動時間Ｔｂ３を算出する。同図に示すように、「従制御対象Ｃｂの移動時間Ｔｂ３＜主制御対象Ｃａの移動時間Ｔａ３」となる。すなわち、移動目標教示点に最短時間で到達する制御対象は従制御対象Ｃｂであるので、従制御対象Ｃｂを先行側とし、先行制御対象記憶部５１に記憶する。主制御対象Ｃａは後行側となる。
【００５６】
次に、第２工程部２６は次の処理を行う。従制御対象Ｃｂが先行側であるから、後行側である主制御対象Ｃａが自身の移動経路を設定された移動速度Ｓｐａで移動し、上記最短時間すなわち従制御対象Ｃｂの移動時間Ｔｂ３の経過後に到達する位置を、移動目標教示点Ａ３’（Ｐ３’）として再設定し、追加教示点記憶部５２Ａに記憶する。さらに、本来到達すべき教示点はＡ３（Ｐ３）であるので、Ａ３（Ｐ３）を未消化教示点として未消化教示点記憶部５３Ａに記憶する。未消化教示点記憶部５３は、複数の未消化教示点を順次格納可能なバッファ形式としている。
【００５７】
ところで、従制御対象Ｃｂの移動目標教示点Ｂ３は、元々、ポジショナＰがＰ３の位置であるときに教示されている。上記のように、ポジショナＰの移動目標教示点がＰ３’の位置に再設定されると、ポジショナＰを基準としたワーク座標系が変化したことになるために、従制御対象Ｃｂは「ポジショナＰがＰ３の位置のときに教示されたポジショナＰに対する相対的な位置」ではなく、「ポジショナＰがＰ３’の位置に再設定されたときのポジショナＰに対する相対的な位置」に到達することになる。すなわち、主制御対象Ｃａの移動目標教示点が再設定された場合、従制御対象Ｃｂが到達する絶対的な位置は、本来教示された位置と異なる位置に変化することがある。この変化量は、作業線の長さ、溶接速度の差によって無視できるほどの小さい値であったり、逆に無視できないほどの大きい値であったりする。大きい値である場合は、従制御対象Ｃｂが周辺機器と干渉する可能性がある。そこで、移動目標教示点が再設定された場合は、従制御対象Ｃｂの本来の教示点におけるポジショナＰの回転角度と従制御対象の移動目標教示点におけるポジショナＰの回転角度との差が予め設定された所定値よりも大きいときは、異常を出力して主制御対象Ｃａおよび従制御対象Ｃｂを停止させるための停止信号を駆動指令部１２に出力するように構成しておく。この一連の処理は、以降説明する移動目標教示点の算出処理時においても同様に行われる。このことによって、教示結果と大きく異なる位置にロボットが移動することを未然に防止することができる。
【００５８】
次に、第３工程部２７は、主制御対象Ｃａおよび従制御対象Ｃｂを各々の移動目標教示点に到達させるための軌道計画および補間演算等を行い、駆動信号を駆動指令部１２に出力する。すなわち、主制御対象Ｃａおよび従制御対象をＣｂ非同期制御区間の最初の教示点である開始教示点（Ａ２，Ｐ２，Ｂ２）から同時に移動を開始させ、主制御対象Ｃａを移動目標教示点Ａ３’（Ｐ３’）に、従制御対象Ｃｂを移動目標教示点Ｂ３に各々到達させる。
【００５９】
両方の制御対象が各々の移動目標教示点に同時に到達した後、どちらかの制御対象が非同期制御区間の最終教示点である教示点Ａ５（Ｐ５）またはＢ５に到達しているか否かを判断する。この場合は最終教示点に到達していないので、第１工程部２５に対し、移動目標教示点を入力して非同期制御を続行する。すなわち、主制御対象Ｃａの移動目標教示点として次の教示点である未消化教示点Ａ３（Ｐ３）を入力し、従制御対象Ｃｂの移動目標教示点として次の教示点Ｂ４を入力する。
［例外処理］
上記の工程において各制御対象の移動時間が同一になる場合は、非同期制御ではなく同期制御が行われることになる。そして、制御対象が各々の移動目標教示点に同時に到達した後の次の移動目標教示点としては、各々教示されている次の教示点が選択される。この例外処理は、以降の処理においても同様である。
【００６０】
［非同期制御区間の未消化教示点Ａ３および教示点Ｂ４への非同期制御］
上記までの非同期制御によって、主制御対象Ｃａの移動目標教示点は未消化教示点Ａ３（Ｐ３）、従制御対象Ｃｂの移動目標教示点は教示点Ｂ４となっている。
【００６１】
図６は、未消化教示点Ａ３（Ｐ３）および教示点Ｂ４に移動させる際の処理を説明するための図である。同図（ａ）は、主制御対象Ｃａが現在位置である教示点Ａ３’（Ｐ３’）から未消化教示点Ａ３（Ｐ３）へ移動する際の移動時間と移動速度との関係を、同図（ｂ）は従制御対象Ｃｂが現在位置である教示点Ｂ３から教示点Ｂ４へ移動する際の移動時間と移動速度との関係をそれぞれ示した波形図である。
【００６２】
第１工程部２５は、従制御対象Ｃｂが移動速度Ｓｐｂに従って教示点Ｂ４に到達する際の移動時間Ｔｂ４を算出する。同様に、主制御対象Ｃａが移動速度Ｓｐａに従って未消化教示点Ａ３（Ｐ３）に到達する際の移動時間Ｔａ３を算出する。同図に示すように、「従制御対象Ｃｂの移動時間Ｔｂ４＜主制御対象Ｃａの移動時間Ｔａ３」となる。すなわち、移動目標教示点に最短時間で到達する制御対象は従制御対象Ｃｂであるので、従制御対象Ｃｂを先行側とし、先行制御対象記憶部５１に記憶する。主制御対象Ｃａは後行側となる。
【００６３】
次に、第２工程部２６は、次の処理を行う。従制御対象Ｃｂが先行側であるから、主制御対象Ｃａが自身の移動経路を設定された移動速度Ｓｐａで移動し、上記最短時間すなわち従制御対象Ｃｂの移動時間Ｔｂ４の経過後に到達する位置を、移動目標教示点Ａ３’’（Ｐ３’’）として再設定し、追加教示点記憶部５２Ａに記憶する。さらに、本来到達すべき教示点はＡ４（Ｐ４）であるので、Ａ４（Ｐ４）を未消化教示点として未消化教示点記憶部５３Ａに記憶する。この段階で未消化教示点記憶部５３Ａには、教示点Ａ３（Ｐ３）およびＡ４（Ｐ４）が格納されたことになる。
【００６４】
次に、第３工程部２７は、各制御対象を移動目標教示点に到達させるための軌道計画および補間演算等を行い、駆動信号を駆動指令部１２に出力する。すなわち、主制御対象Ｃａを教示点Ａ３’’（Ｐ３’’）に、従制御対象Ｃｂを教示点Ｂ４に、各々到達させる。
【００６５】
制御対象が各々の移動目標教示点に同時に到達した後、どちらかの制御対象が非同期制御区間の最終教示点である教示点Ａ５（Ｐ５）またはＢ５に到達しているか否かを判断する。これまでの工程においては最終教示点に到達していないので、第１工程部２５に対し、移動目標教示点を入力して非同期制御を続行する。すなわち、主制御対象Ｃａの移動目標教示点として現在位置に最も近い未消化教示点Ａ３（Ｐ３）を入力し、従制御対象Ｃｂの移動目標教示点として次の教示点Ｂ５を入力する。
【００６６】
［非同期制御区間の未消化教示点Ａ３および教示点Ｂ５への非同期制御］
上記までの非同期制御によって、主制御対象Ｃａの移動目標教示点は未消化教示点Ａ３（Ｐ３）、従制御対象Ｃｂの移動目標教示点は教示点Ｂ５となっている。
【００６７】
図７は、未消化教示点Ａ３（Ｐ３）および教示点Ｂ５に移動させる際の処理を説明するための図である。同図（ａ）は、主制御対象が現在位置である教示点Ａ３’’（Ｐ３’’）から未消化教示点Ａ３（Ｐ３）へ移動する際の移動時間と移動速度との関係を、同図（ｂ）は従制御対象が現在位置である教示点Ｂ４から移動目標教示点Ｂ５へ移動する際の移動時間と移動速度との関係をそれぞれ示した波形図である。
【００６８】
第１工程部２５は、従制御対象Ｃｂが移動速度Ｓｐｂに従って教示点Ｂ５に到達する際の移動時間Ｔｂ５を算出する。同様に、主制御対象Ｃａが移動速度Ｓｐａに従って未消化教示点Ａ３（Ｐ３）に到達する際の移動時間Ｔａ３を算出する。同図に示すように、「従制御対象Ｃｂの移動時間Ｔｂ５＞主制御対象Ｃａの移動時間Ｔａ３」となる。すなわち、移動目標教示点に最短時間で到達する制御対象は主制御対象Ｃａであるので、主制御対象Ｃａを先行側とし、先行制御対象記憶部５１に記憶する。従制御対象Ｃｂは後行側となる。
【００６９】
次に、第２工程部２６は、次の処理を行う。主制御対象Ｃａが先行側であるから、従制御対象Ｃｂが自身の移動経路を移動速度Ｓｐｂで移動し、上記最短時間すなわち主制御対象Ｃａの移動時間Ｔａ３の経過後に到達する位置を、主制御対象ＣａのポジショナＰの移動目標教示点Ｐ３に基づいて移動目標教示点Ｂ５’として再設定する。より具体的には、ポジショナＰが移動目標教示点Ｐ３での回転角度における従制御対象Ｃｂが取るべきワーク座標系での位置を算出して、移動目標教示点Ｂ５’として設定し、追加教示点記憶部５２Ｂに記憶する。さらに、本来到達すべき教示点はＡ５（Ｐ５）およびＢ５であるので、Ａ５（Ｐ５）を未消化教示点として未消化教示点記憶部５３Ａに、Ｂ５を未消化教示点として未消化教示点記憶部５３Ｂに記憶する。
【００７０】
次に、第３工程部２７は、各制御対象を各々の移動目標教示点に到達させるための軌道計画および補間演算等を行い、駆動信号を駆動指令部１２に出力する。すなわち、従制御対象Ｃｂを教示点Ｂ５’に、主制御対象Ｃａを未消化教示点Ａ３（Ｐ３）に各々到達させる。このとき、主制御対象Ｃａは未消化教示点Ａ３（Ｐ３）に到達することになるので、未消化教示点Ａ３（Ｐ３）を未消化教示点記憶部５３Ａから消去する。すなわち、この段階で、未消化教示点記憶部５３Ａには教示点Ａ４（Ｐ４）およびＡ５（Ｐ５）が、未消化教示点記憶部５３Ｂには教示点Ｂ５が格納されていることになる。
【００７１】
制御対象が各々の移動目標教示点に同時に到達した後、どちらかの制御対象が非同期制御区間の最終教示点である教示点Ａ５（Ｐ５）またはＢ５に到達しているか否かを判断する。これまでの工程においては最終教示点に到達していないので、第１工程部２５に対し、移動目標教示点を入力して非同期制御を続行する。すなわち、主制御対象Ｃａの移動目標教示点として現在位置に最も近い未消化教示点Ａ４（Ｐ４）を、従制御対象Ｃｂの移動目標教示点として未消化教示点Ｂ５を入力する。
【００７２】
［非同期制御区間の未消化教示点Ａ４および未消化教示点Ｂ５への非同期制御］
上記までの非同期制御によって、主制御対象Ｃａの移動目標教示点は未消化教示点Ａ４（Ｐ４）、従制御対象Ｃｂの移動目標教示点は未消化教示点Ｂ５となっている。
【００７３】
図８は、未消化教示点Ａ４（Ｐ４）および未消化教示点Ｂ５に移動させる際の処理を説明するための図である。同図（ａ）は、主制御対象Ｃａが現在位置である教示点Ａ３から未消化教示点Ａ４（Ｐ４）へ移動する際の移動時間と移動速度との関係を、同図（ｂ）は従制御対象Ｃｂが現在位置である教示点Ｂ５’から未消化教示点Ｂ５へ移動する際の移動時間と移動速度との関係をそれぞれ示した波形図である。
【００７４】
第１工程部２５は、従制御対象Ｃｂが移動速度Ｓｐｂに従って未消化教示点Ｂ５に到達する際の移動時間Ｔｂ５を算出する。同様に、主制御対象Ｃａが移動速度Ｓｐａに従って未消化教示点Ａ４（Ｐ４）に到達する際の移動時間Ｔａ４を算出する。同図に示すように、「従制御対象Ｃｂの移動時間Ｔｂ５＜主制御対象Ｃａの移動時間Ｔａ４」となる。すなわち、移動目標教示点に最短時間で到達する制御対象は従制御対象Ｃｂであるので、従制御対象Ｃｂを先行側とし、先行制御対象記憶部５１に記憶する。主制御対象Ｃａは後行側となる。
【００７５】
次に、第２工程部２６は、主制御対象Ｃａが自身の移動経路を設定された移動速度で移動し、上記最短時間すなわち従制御対象の移動時間Ｔａ５の経過後に到達する位置を、移動目標教示点Ａ４’（Ｐ４’）として再設定し、追加教示点記憶部５２Ａに記憶する。未消化教示点記憶部５３には、すでに最終教示点Ａ５（Ｐ５）およびＢ５が記憶されているので、この段階において未消化教示点を記憶する必要はない。
【００７６】
次に、第３工程部２７は、各制御対象を移動目標教示点に到達させるための軌道計画および補間演算等を行い、駆動信号を駆動指令部１２に出力する。すなわち、従制御対象Ｃｂを未消化教示点Ｂ５に、主制御対象Ｃａを教示点Ａ４’（Ｐ４’）に各々到達させる。このとき、従制御対象Ｃｂは未消化教示点Ｂ５に到達することになるので、未消化教示点Ｂ５を未消化教示点記憶部５３Ｂから消去する。すなわち、この段階で、未消化教示点記憶部５３Ａにのみ、教示点Ａ４（Ｐ４）およびＡ５（Ｐ５）が格納されていることになる。
【００７７】
制御対象が各々の移動目標教示点に同時に到達した後、どちらかの制御対象が非同期制御区間の最終教示点である教示点Ａ５（Ｐ５）またはＢ５に到達しているか否かを判断する。これまでの工程において、従制御対象Ｃｂが最終教示点Ｂ５に到達しているので、非同期制御を終了する。すなわち、すでに最終教示点に到達した従制御対象Ｃｂを最終教示点Ｂ５で待機させつつ、他方の主制御対象Ｃａを未消化教示点Ａ４（Ｐ４）を経由して最終教示点Ａ５（Ｐ５）に到達させて非同期制御を終了する。なお、従制御対象Ｃｂの待機とは、絶対的な位置で停止して待機するということではなく、従制御対象ＣｂがポジショナＰに対する相対的な位置を維持しつづけるという意味である。すなわち、主制御対象Ｃａを最終教示点に到達させる際にポジショナＰが回転動作しているならば、従制御対象Ｃｂは、ポジショナＰの回転動作に追従して教示点Ｐ５への相対的な位置を維持することを指している。
【００７８】
上述したように、１台の外部軸に対して２台のロボットが同時に加工作業を行うロボットシステムにおいて、複数の制御対象の非同期制御を１つの作業プログラムで可能にしている。すなわち、２つの作業線を異なる長さ、移動速度にしたい場合にダミーの教示点を教示する等の教示の工夫を施さなくても、各ロボットが必ず教示された移動速度で作業線上を移動できるようにしたので、教示工数を大幅に低減できる。この効果は、アーク溶接、塗装、シーリング、スポット溶接等の加工を施す作業線が２つ存在し、この作業線に対して２台のロボットで同時に加工を行う場合において発揮されるが、中でも特にアーク溶接を行う場合において、より顕著に発揮される。
【００７９】
また、従制御対象の本来の教示点における外部軸の回転角度と再設定された移動目標教示点における外部軸の回転角度との差が所定値よりも大きいときは、異常を出力して主制御対象および従制御対象を停止させるようにしたので、教示結果と大きく異なる位置にロボットが移動することを未然に防止することができる。
【図面の簡単な説明】
【００８０】
【図１】本発明のロボット制御装置を適用したアーク溶接ロボットのブロック図である。
【図２】本発明のロボット制御装置によって作成した作業プログラムの教示例を示す図である。
【図３】ロボットＡ、ロボットＢおよびポジショナＰの移動時間と移動速度との関係を示した波形図である。
【図４】本発明のロボット制御装置で非同期制御を行う際のフローチャートである。
【図５】非同期制御区間の最初の移動目標教示点Ａ３（Ｐ３）およびＢ３に移動させる際の処理を説明するための図である。
【図６】未消化教示点Ａ３（Ｐ３）および教示点Ｂ４に移動させる際の処理を説明するための図である。
【図７】未消化教示点Ａ３（Ｐ３）および教示点Ｂ５に移動させる際の処理を説明するための図である。
【図８】未消化教示点Ａ４（Ｐ４）および未消化教示点Ｂ５に移動させる際の処理を説明するための図である。
【図９】従来のロボット制御装置を使用したアーク溶接ロボットシステムのブロック図である。
【図１０】従来の作業プログラムの教示例を示す図である。
【図１１】左右の作業線の長さおよび移動速度が異なる場合のロボットＡおよびＢの移動速度を説明するための図である。
【符号の説明】
【００８１】
１            ロボット制御装置
２            ＴＰインタフェース
３            主制御部
４            ハードディスク
５            ＲＡＭ
６            入出力インターフェース
１１            動作制御部
１２            駆動指令部
２１            非同期制御区間設定部
２２            同期制御部
２３            非同期制御部
２４            主従関係設定部
２５            第１工程部
２６            第２工程部
２７            第３工程部
５１            先行制御対象記憶部
５２            追加教示点記憶部
５３            未消化教示点記憶部
Ｃａ            主制御対象
Ｃｂ            従制御対象
Ｃｍ            命令
ＥＰ            外部機器
Ｐ            ポジショナ
Ｐｐ            位置データ
Ｐｒ            位置データ
Ｐｔ            ポイント
Ｒ            ロボット
ＳＢ            起動ボックス
Ｓｐ            移動速度
Ｓｐａ            移動速度（主制御対象）
Ｓｐｂ            移動速度（従制御対象）
Ｔａ            移動時間（主制御対象）
Ｔｂ            移動時間（従制御対象）
ＴＰ            ティーチペンダント
Ｗ            ワーク
ＷＲ            移動経路
【図１】
2009075898.tif 000003
【図２】
2009075898.tif 000004
【図３】
2009075898.tif 000005
【図４】
2009075898.tif 000006
【図５】
2009075898.tif 000007
【図６】
2009075898.tif 000008
【図７】
2009075898.tif 000009
【図８】
2009075898.tif 000010
【図９】
2009075898.tif 000011
【図１０】
2009075898.tif 000012
【図１１】
2009075898.tif 000013