(57)【要約】【課題】互いに応答性の異なる複数の制御対象同士の動作タイミングのずれを小さくするのに有効なコントロールシステムを提供する。【解決手段】コントロールシステム１は、第一コントローラ１００と、第二コントローラ２００と、第三コントローラ３００とを備える。第三コントローラ３００は、第一通信部３２０と、第二通信部３３０と、第一制御対象を動作させる第一動作指令を第一通信部３２０により第一コントローラ１００に出力することと、第二制御対象を動作させる第二動作指令を第二通信部３３０により第二コントローラ２００に出力することと、第一制御対象の現在位置に関する情報を第一通信部３２０により第一コントローラ１００から取得することと、第一制御対象の現在位置に関する情報に基づいて、第二動作指令を補正することと、を実行するように構成された制御処理部３４０と、有する。【選択図】図１
2018153881.tif 000002
【特許請求の範囲】
【請求項１】
第一制御対象を制御する第一コントローラと、
前記第一制御対象に比べて応答性の高い第二制御対象を制御する第二コントローラと、
前記第一コントローラを介して前記第一制御対象を動作させ、前記第二コントローラを介して前記第二制御対象を動作させる第三コントローラとを備え、
前記第三コントローラは、
前記第一コントローラとの間で情報の入出力を行う第一通信部と、
前記第二コントローラとの間で情報の入出力を行う第二通信部と、
前記第一制御対象を動作させる第一動作指令を前記第一通信部により前記第一コントローラに出力することと、前記第二制御対象を動作させる第二動作指令を前記第二通信部により前記第二コントローラに出力することと、前記第一制御対象の現在位置に関する情報を前記第一通信部により前記第一コントローラから取得することと、前記第一制御対象の現在位置に関する情報に基づいて、前記第二動作指令を補正することと、を実行するように構成された制御処理部と、有するコントロールシステム。
【請求項２】
前記第一制御対象の現在位置に関する情報は、前記第一制御対象の現在位置と、前記第一制御対象のモデル情報と、前記第一動作指令とに基づいて導出される、前記第一制御対象の予測位置情報である、請求項１記載のコントロールシステム。
【請求項３】
前記第一コントローラは、前記第三コントローラとの間で情報の入出力を行う通信部と、前記第一制御対象の現在位置と、前記第一制御対象のモデル情報と、前記第一動作指令とに基づいて前記予測位置情報を導出し、前記予測位置情報を前記通信部により前記第三コントローラに出力する制御処理部とを有する、請求項２記載のコントロールシステム。
【請求項４】
前記第一制御対象は複数の関節軸を有する多軸ロボットであり、前記第二制御対象は前記多軸ロボットと協調して動作可能な周辺装置である、請求項１〜３のいずれか一項記載のコントロールシステム。
【請求項５】
第一制御対象を制御する第一コントローラとの間で情報の入出力を行う第一通信部と、
前記第一制御対象に比べて応答性の高い第二制御対象を制御する第二コントローラとの間で情報の入出力を行う第二通信部と、
前記第一制御対象を動作させる第一動作指令を前記第一通信部により前記第一コントローラに出力することと、前記第二制御対象を動作させる第二動作指令を前記第二通信部により前記第二コントローラに出力することと、前記第一制御対象の現在位置に関する情報を前記第一通信部により前記第一コントローラから取得することと、前記第一制御対象の現在位置に関する情報に基づいて、前記第二動作指令を補正することと、を実行するように構成された制御処理部と、備えるコントローラ。
【請求項６】
前記第一制御対象の現在位置に関する情報は、前記第一制御対象の現在位置と、前記第一制御対象のモデルと、前記第一動作指令とに基づいて導出される、前記第一制御対象の予測位置情報である、請求項５記載のコントローラ。
【請求項７】
前記第一制御対象は複数の関節軸を有する多軸ロボットであり、前記第二制御対象は前記多軸ロボットと協調して動作可能な周辺装置である、請求項５又は６記載のコントローラ。
【請求項８】
第一動作指令に応じた駆動電力を第一制御対象に出力する電力出力部と、
他のコントローラとの間で情報の入出力を行う通信部と、
前記第一制御対象の現在位置と、前記第一制御対象のモデルと、前記第一動作指令とに基づいて、前記第一制御対象の予測位置情報を導出し、前記予測位置情報を前記通信部により前記他のコントローラに出力する制御処理部と、を備えるコントローラ。
【請求項９】
第一制御対象を制御する第一コントローラを介して前記第一制御対象を動作させ、前記第一制御対象に比べて応答性の高い第二制御対象を制御する第二コントローラを介して前記第二制御対象を動作させる第三コントローラにより、
前記第一制御対象を動作させる第一動作指令を前記第一コントローラに出力することと、
前記第二制御対象を動作させる第二動作指令を前記第二コントローラに出力することと、
前記第一制御対象の現在位置に関する情報を前記第一コントローラから取得することと、
前記第一制御対象の現在位置に関する情報に基づいて、前記第二動作指令を補正することと、を含む制御方法。
【請求項１０】
前記第一制御対象の現在位置に関する情報は、前記第一制御対象の現在位置と、前記第一制御対象のモデルと、前記第一動作指令とに基づいて導出される、前記第一制御対象の予測位置情報である、請求項９記載の制御方法。
【請求項１１】
前記第一コントローラにより、前記第一制御対象の現在位置と、前記第一制御対象のモデルと、前記第一動作指令とに基づいて前記予測位置情報を導出することを更に含む、請求項１０記載の制御方法。
【請求項１２】
前記第一制御対象は複数の関節軸を有する多軸ロボットであり、前記第二制御対象は前記多軸ロボットに協調して動作する周辺装置である、請求項９〜１１のいずれか一項記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コントロールシステム、コントローラ及び制御方法に関する。
【背景技術】
【０００２】
特許文献１には、第１軸の運転モードが、通常運転モードであるか、第１軸と他軸の位置同期をとる位置同期運転モードであるかを判断し、位置同期運転モードであると判断したとき、他軸に出力する位置指令に対し第１軸と他軸の伝達関数モデルを挿入する制御方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０７−７２９１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、互いに応答性の異なる複数の制御対象同士の動作タイミングのずれを小さくするのに有効なコントロールシステム、コントローラ及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本開示の一側面に係るコントロールシステムは、第一制御対象を制御する第一コントローラと、第一制御対象に比べて応答性の高い第二制御対象を制御する第二コントローラと、第一コントローラを介して第一制御対象を動作させ、第二コントローラを介して第二制御対象を動作させる第三コントローラとを備え、第三コントローラは、第一コントローラとの間で情報の入出力を行う第一通信部と、第二コントローラとの間で情報の入出力を行う第二通信部と、第一制御対象を動作させる第一動作指令を第一通信部により第一コントローラに出力することと、第二制御対象を動作させる第二動作指令を第二通信部により第二コントローラに出力することと、第一制御対象の現在位置に関する情報を第一通信部により第一コントローラから取得することと、第一制御対象の現在位置に関する情報に基づいて、第二動作指令を補正することと、を実行するように構成された制御処理部と、有する。
【０００６】
本開示の他の側面に係るコントローラは、第一制御対象を制御する第一コントローラとの間で情報の入出力を行う第一通信部と、第一制御対象に比べて応答性の高い第二制御対象を制御する第二コントローラとの間で情報の入出力を行う第二通信部と、第一制御対象を動作させる第一動作指令を第一通信部により第一コントローラに出力することと、第二制御対象を動作させる第二動作指令を第二通信部により第二コントローラに出力することと、第一制御対象の現在位置に関する情報を第一通信部により第一コントローラから取得することと、第一制御対象の現在位置に関する情報に基づいて、第二動作指令を補正することと、を実行するように構成された制御処理部と、備える。
【０００７】
本開示の他の側面に係るコントローラは、第一動作指令に応じた駆動電力を第一制御対象に出力する電力出力部と、他のコントローラとの間で情報の入出力を行う通信部と、第一制御対象の現在位置と、第一制御対象のモデルと、第一動作指令とに基づいて、第一制御対象の予測位置情報を導出し、予測位置情報を通信部により他のコントローラに出力する制御処理部と、を備える。
【０００８】
本開示の他の側面に係る制御方法は、第一制御対象を制御する第一コントローラを介して第一制御対象を動作させ、第一制御対象に比べて応答性の高い第二制御対象を制御する第二コントローラを介して第二制御対象を動作させる第三コントローラにより、第一制御対象を動作させる第一動作指令を第一コントローラに出力することと、第二制御対象を動作させる第二動作指令を第二コントローラに出力することと、第一制御対象の現在位置に関する情報を第一コントローラから取得することと、第一制御対象の現在位置に関する情報に基づいて、第二動作指令を補正することと、を含む。
【発明の効果】
【０００９】
本開示によれば、互いに応答性の異なる複数の制御対象同士の動作タイミングのずれを小さくするのに有効なコントロールシステム、コントローラ及び制御方法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】コントロールシステムの機能的な構成を示すブロック図である。
【図２】コントロールシステムのハードウェア構成を示すブロック図である。
【図３】第三コントローラの制御手順を示すフローチャートである。
【図４】第一コントローラの制御手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【００１２】
〔コントロールシステム〕
本実施形態に係るコントロールシステム１は、互いに応答性の異なる複数種類の制御対象を必要に応じて同期させながら制御するものである。図１に示すように、複数の制御対象は、第一制御対象と、第一制御対象に比べて応答性の高い第二制御対象とを含む。
【００１３】
第一制御対象及び第二制御対象は、第二制御対象の応答性が第一制御対象の応答性に比較して高いという条件を満たす限りいかなるものであってもよい。応答性とは、目標値に追従する速さを意味する。例えば、第一制御対象は多軸ロボット１０であり、第二制御対象は多軸ロボット１０の作業対象であるワークＷを保持して移動させる周辺装置２０である。
【００１４】
多軸ロボット１０は、例えばシリアルリンク型の垂直多関節ロボットであり、複数（例えば６軸）の関節軸Ｊ１〜Ｊ６と、関節軸Ｊ１〜Ｊ６をそれぞれ駆動する複数のアクチュエータ１１〜１６とを有する。
【００１５】
周辺装置２０は、例えばサーボモータ２１を有し、これを動力源として動作する。図１では、一つのサーボモータ２１のみを描いているが、周辺装置２０は複数のサーボモータ２１を有していていもよい。例えば、周辺装置２０は、ワークＷを保持するターンテーブルと、ターンテーブルを移動させる直動軸とを有し、ターンテーブル及び直動軸をそれぞれ駆動する二つのサーボモータ２１を有してもよい。
【００１６】
コントロールシステム１は、例えば、多軸ロボット１０から離れた所定の受け渡し場所にてワークＷをターンテーブル上に保持するように周辺装置２０を制御する。次に、第一コントローラ１００は、直動軸を駆動して多軸ロボット１０の作業範囲までターンテーブルを移動させるように周辺装置２０を制御し、ワークＷに作業を行うように多軸ロボット１０を制御する。多軸ロボット１０によるワークＷへの作業としては、アーク溶接、組立て等が挙げられる。この際に、コントロールシステム１は、多軸ロボット１０の作業と協調してターンテーブル及び直動軸の少なくとも一方を駆動してワークの位置・姿勢を調節するように周辺装置２０を制御する。多軸ロボット１０による作業が完了すると、コントロールシステム１は、再び直動軸を駆動してターンテーブルを受け渡し場所に戻し、作業済みワークＷの代わりに新しい作業対象のワークをターンテーブル上に保持するように周辺装置２０を制御する。以後、コントロールシステム１は上記の一連の制御を繰り返す。
【００１７】
ここで、一般的に、慣性が小さく剛性が高い制御対象ほど応答性を高くすることができる。本実施形態の例では、周辺装置２０はその動作が多軸ロボット１０に比べて単純であり、慣性が小さく剛性が高い構造を採用できるため多軸ロボット１０よりも応答性を高くできる。このため、応答遅れを無視して多軸ロボット１０及び周辺装置２０を制御すると、多軸ロボット１０及び周辺装置２０の動作タイミングにずれが生じることとなる。
【００１８】
そこで、コントロールシステム１は、通常制御モード及び同期制御モードを切り替える。同期制御モードは、通常制御モードに比較して、多軸ロボット１０及び周辺装置２０の動作タイミングのずれを縮小させる制御モードである。例えばコントロールシステム１は、多軸ロボット１０の作業と協調してワークの位置・姿勢を調節するように周辺装置２０を制御する際に、制御モードを同期制御モードにし、多軸ロボット１０の作業範囲へのワークＷの搬入・搬出を行うように周辺装置２０を制御する際には同期制御モードを通常制御モードにする。
【００１９】
以下、コントロールシステム１の具体的な構成を説明する。コントロールシステム１は、第一制御対象を制御する第一コントローラ１００と、第二制御対象を制御する第二コントローラ２００と、第一コントローラ１００を介して第一制御対象を動作させ、第二コントローラ２００を介して第二制御対象を動作させる第三コントローラ３００とを備える。
【００２０】
第三コントローラ３００は、例えばマシンコントローラであり、所定の制御周期で第一コントローラ１００及び第二コントローラ２００に動作指令（例えば位置制御の目標値）を出力する。
【００２１】
第三コントローラ３００は、機能的な構成（以下、「機能モジュール」という。）として、モーション記憶部３１０と、第一通信部３２０と、第二通信部３３０と、制御処理部３４０とを有する。
【００２２】
モーション記憶部３１０は、多軸ロボット１０及び周辺装置２０の動作内容を規定する情報（以下、「モーション情報」という。）を記憶する。モーション情報は、例えば多軸ロボット１０及び周辺装置２０に出力すべき動作指令を時系列で並べたリストと、制御モード（上記通常制御モード又は同期制御モード）を指定するフラグとを含む。
【００２３】
第一通信部３２０は、第一コントローラ１００との間で情報の入出力を行う。第二通信部３３０は、第二コントローラ２００との間で情報の入出力を行う。
【００２４】
制御処理部３４０は、多軸ロボット１０を動作させる第一動作指令を第一通信部３２０により第一コントローラ１００に出力することと、周辺装置２０を動作させる第二動作指令を第二通信部３３０により第二コントローラ２００に出力することと、多軸ロボット１０の現在位置に関する情報を第一通信部３２０により第一コントローラ１００から取得することと、多軸ロボット１０の現在位置に関する情報に基づいて、第二動作指令を補正することと、を実行するように構成されている。
【００２５】
例えば制御処理部３４０は、より細分化された機能モジュールとして、指令生成部３４１と、第一動作指令出力部３４２と、第二動作指令出力部３４３と、補正情報取得部３４５と、指令補正部３４６とを有する。
【００２６】
指令生成部３４１は、モーション記憶部３１０に記憶されたモーション情報に基づいて、制御周期ごとに上記第一動作指令及び第二動作指令を生成する。第一動作指令は、例えば多軸ロボット１０の先端部の位置・姿勢目標値を定める数値データである。第二動作指令は、例えば周辺装置２０のサーボモータ２１の角度目標値を定める数値データである。
【００２７】
第一動作指令出力部３４２は、第一動作指令を第一通信部３２０により第一コントローラ１００に出力する。
【００２８】
補正情報取得部３４５は、多軸ロボット１０の現在位置に関する情報を第一通信部３２０により第一コントローラ１００から取得する。なお、現在位置とは、現在位置を特定するための情報（例えば関節軸Ｊ１〜Ｊ６の現在の角度）のセンシングが実行された時点の位置を意味する。多軸ロボット１０の現在位置に関する情報は、多軸ロボット１０の現在位置と、多軸ロボット１０のモデル情報（後述）と、第一動作指令とに基づいて導出される、多軸ロボット１０の予測位置情報（例えば次の制御周期に移行する時点の予測位置情報）である。多軸ロボット１０の現在位置に関する情報は、多軸ロボット１０の現在位置自体を示す情報であってもよい。
【００２９】
指令補正部３４６は、補正情報取得部３４５が取得した情報に基づいて、指令生成部３４１が生成した第二動作指令を補正する。例えば、指令補正部３４６は、多軸ロボット１０の動作と周辺装置２０の動作とのタイミングのずれを小さくするように第二動作指令を補正する。
【００３０】
第二動作指令出力部３４３は、指令補正部３４６により補正された第二動作指令を第二通信部３３０により第二コントローラ２００に出力する。
【００３１】
第一コントローラ１００は、例えばロボットコントローラであり、第三コントローラ３００から出力された上記第一動作指令に応じて多軸ロボット１０を動作させるようにアクチュエータ１１〜１６を制御する。第一コントローラ１００は、機能モジュールとして、通信部１１０と、モデル記憶部１２０と、制御処理部１３０とを有する。
【００３２】
通信部１１０は、第三コントローラ３００との間で情報の入出力を行う。
【００３３】
モデル記憶部１２０は、多軸ロボット１０のモデル情報を記憶する。モデル情報は、例えば、多軸ロボット１０の構造、大きさ、質量等の他、アクチュエータ１１〜１６の定格出力及び制御ゲイン等のような、多軸ロボット１０の機構パラメータ及び制御パラメータを示す数値データの集合である。
【００３４】
制御処理部１３０は、多軸ロボット１０の現在位置と、多軸ロボット１０のモデル情報と、第一動作指令とに基づいて上記予測位置情報を導出し、当該予測位置情報を通信部１１０により第三コントローラ３００に出力するように構成されている。
【００３５】
例えば制御処理部１３０は、より細分化された機能モジュールとして、指令変換部１３１と、予測位置情報生成部１３２と、フィードバック情報取得部１３３とを有する。
【００３６】
指令変換部１３１は、上記第一動作指令を通信部１１０により第三コントローラ３００から取得し、当該第一動作指令を関節軸Ｊ１〜Ｊ６の角度目標値に変換する。例えば指令変換部１３１は、通信部１１０により取得した多軸ロボット１０の先端部の位置・姿勢目標値と、モデル記憶部１２０に記憶されたモデル情報とを用いて逆運動学演算を行うことで、関節軸Ｊ１〜Ｊ６の角度目標値を生成する。
【００３７】
フィードバック情報取得部１３３は、多軸ロボット１０の現在位置を特定するための情報を多軸ロボット１０から取得する。例えばフィードバック情報取得部１３３は、関節軸Ｊ１〜Ｊ６の角度を示す情報をアクチュエータ１１〜１６から取得する。
【００３８】
予測位置情報生成部１３２は、多軸ロボット１０の現在位置と、多軸ロボット１０のモデル情報と、第一動作指令とに基づいて上記予測位置情報を導出し、当該予測位置情報を通信部１１０により第三コントローラ３００に出力する。例えば予測位置情報生成部１３２は、指令変換部１３１により生成された関節軸Ｊ１〜Ｊ６の角度目標値と、フィードバック情報取得部１３３により取得された関節軸Ｊ１〜Ｊ６の角度情報と、モデル記憶部１２０に記憶されたモデル情報とを用いて運動学演算・動力学演算を行うことで、次の制御周期への移行時点における予測位置情報（例えば、多軸ロボット１０の先端部の予測位置・姿勢を示す数値データ）を生成し、これを通信部１１０により制御処理部１３０に出力する。
【００３９】
なお、予測位置情報生成部１３２は、同期制御モードの全制御周期において、予測位置情報の導出に多軸ロボット１０の現在位置情報（フィードバック情報取得部１３３により取得された関節軸Ｊ１〜Ｊ６の角度情報）を用いてもよいし、一部の制御周期では多軸ロボット１０の現在位置情報を用い、他の制御周期では多軸ロボット１０の現在位置情報に代えて一つ前の制御周期における予測位置情報を用いてもよい。例えば、同期制御モードの開始直後の制御周期では、多軸ロボット１０の現在位置情報を用いて予測位置情報を導出し、以後、同期制御モードが通常制御モードに切り替わるまでの制御周期では、多軸ロボット１０の現在位置情報に代えて、一つ前の制御周期における予測位置情報を用いてもよい。
【００４０】
電力出力部１４０は、第一動作指令に応じた駆動電力を多軸ロボット１０に出力する。例えば電力出力部１４０は、指令変換部１３１により生成された角度目標値に従って関節軸Ｊ１〜Ｊ６を動作させるための駆動電力をアクチュエータ１１〜１６に出力する。
【００４１】
第二コントローラ２００は、例えばサーボコントローラであり、第三コントローラ３００から出力された上記第二動作指令に応じて周辺装置２０を動作させるようにサーボモータ２１を制御する。
【００４２】
図２は、コントロールシステム１のハードウェア構成の一例を示すブロック図である。図２に示すように、第三コントローラ３００は回路３５０を有し、回路３５０は、一つ又は複数のプロセッサ３５１と、記憶部３５２と、通信ポート３５３，３５４とを有する。
【００４３】
記憶部３５２は、メモリ３５５及びストレージ３５６を含む。ストレージ３５６は、上記モーション記憶部３１０として機能し、且つ上記制御処理部３４０の各機能モジュールを構成するためのプログラムを記録している。ストレージ３５６は、コンピュータ読み取り可能であればどのようなものであってもよい。具体例として、ハードディスク、不揮発性の半導体メモリ、磁気ディスク及び光ディスク等が挙げられる。メモリ３５５は、ストレージ３５６からロードしたプログラム及びプロセッサ３５１の演算結果等を一時的に記憶する。プロセッサ３５１は、メモリ３５５と協働してプログラムを実行することで、制御処理部３４０の各機能モジュールを構成する。すなわち、プロセッサ３５１は制御処理部３４０として機能する。
【００４４】
通信ポート３５３は、プロセッサ３５１からの指令に応じ、第一コントローラ１００の通信ポート１５３（後述）との間で情報通信（例えば高速シリアル通信）を行う。通信ポート３５３は上記第一通信部３２０として機能する。通信ポート３５４は、プロセッサ３５１からの指令に応じ、第二コントローラ２００の通信ポート２５３（後述）との間で情報通信（例えば高速シリアル通信）を行う。通信ポート３５４は上記第二通信部３３０として機能する。
【００４５】
第一コントローラ１００は回路１５０を有し、回路１５０は、一つ又は複数のプロセッサ１５１と、記憶部１５２と、通信ポート１５３と、入出力ポート１５４と、ドライバ１５５とを有する。
【００４６】
記憶部１５２は、メモリ１５６及びストレージ１５７を含む。ストレージ１５７は、上記モデル記憶部１２０として機能し、且つ上記制御処理部１３０の各機能モジュールを構成するためのプログラムを記録している。ストレージ１５７は、コンピュータ読み取り可能であればどのようなものであってもよい。具体例として、ハードディスク、不揮発性の半導体メモリ、磁気ディスク及び光ディスク等が挙げられる。メモリ１５６は、ストレージ１５７からロードしたプログラム及びプロセッサ１５１の演算結果等を一時的に記憶する。プロセッサ１５１は、メモリ１５６と協働してプログラムを実行することで、制御処理部１３０の各機能モジュールを構成する。すなわち、プロセッサ１５１は制御処理部１３０として機能する。
【００４７】
通信ポート１５３は、プロセッサ１５１からの指令に応じ、第三コントローラ３００の通信ポート３５３との間で情報通信を行う。通信ポート３５３は上記通信部１１０として機能する。入出力ポート１５４は、プロセッサ１５１からの指令に応じ、関節軸Ｊ１〜Ｊ６の角度を示す電気信号をアクチュエータ１１〜１６から取得する。ドライバ１５５は、プロセッサ１５１からの指令に応じ、アクチュエータ１１〜１６に駆動電力を出力する。ドライバ１５５は、上記電力出力部１４０として機能する。
【００４８】
第二コントローラ２００は回路２５０を有し、回路２５０は、一つ又は複数のプロセッサ２５１と、記憶部２５２と、通信ポート２５３と、入出力ポート２５４と、ドライバ２５５とを有する。
【００４９】
記憶部２５２は、メモリ２５６及びストレージ２５７を含む。ストレージ２５７は、周辺装置２０を制御するためのプログラムを記録している。ストレージ２５７は、コンピュータ読み取り可能であればどのようなものであってもよい。具体例として、ハードディスク、不揮発性の半導体メモリ、磁気ディスク及び光ディスク等が挙げられる。メモリ２５６は、ストレージ２５７からロードしたプログラム及びプロセッサ２５１の演算結果等を一時的に記憶する。プロセッサ２５１は、メモリ２５６と協働してプログラムを実行することで、上記第二動作指令に応じた周辺装置２０の制御を実行する。
【００５０】
通信ポート２５３は、プロセッサ２５１からの指令に応じ、第三コントローラ３００の通信ポート３５４との間で情報通信を行う。入出力ポート２５４は、プロセッサ２５１からの指令に応じ、サーボモータ２１の回転角度を示す電気信号を取得する。ドライバ２５５は、プロセッサ２５１からの指令に応じ、サーボモータ２１に駆動電力を出力する。
【００５１】
なお、コントローラ１００，２００，３００のハードウェア構成は、必ずしもプログラムにより各機能ブロックを構成するものに限られない。例えばコントローラ１００，２００，３００の上記機能モジュールの少なくとも一部は、専用の論理回路又はこれを集積したＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）により構成されていてもよい。
【００５２】
〔制御方法〕
続いて、制御方法の一例として、第三コントローラにおける制御処理手順及び第一コントローラにおける制御処理手順を説明する。
【００５３】
（第三コントローラにおける制御処理手順）
図３に示すように、第三コントローラ３００は、まずステップＳ０１を実行する。ステップＳ０１では、指令生成部３４１が、第一動作指令出力部３４２及び第一通信部３２０を介して多軸ロボット１０の制御の開始指令を第一コントローラ１００に出力し、第二動作指令出力部３４３及び第二通信部３３０を介して周辺装置２０の制御の開始指令を第二コントローラ２００に出力する。
【００５４】
次に、第三コントローラ３００はステップＳ０２を実行する。ステップＳ０２では、指令生成部３４１が、モーション記憶部３１０に記憶されたモーション情報に基づいて、制御開始後の最初の第一動作指令及び第二動作指令を生成し、制御モードを設定する。
【００５５】
次に、第三コントローラ３００はステップＳ０３を実行する。ステップＳ０３では、第一動作指令出力部３４２が、指令生成部３４１により生成された第一動作指令を第一通信部３２０により第一コントローラ１００に出力する。
【００５６】
次に、第三コントローラ３００はステップＳ０４を実行する。ステップＳ０４では、現在の制御モードを確認する。
【００５７】
ステップＳ０４において、現在の制御モードが同期制御モードであると判定した場合、第三コントローラ３００はステップＳ０５を実行する。ステップＳ０５では、補正情報取得部３４５が、多軸ロボット１０の現在位置に関する情報を第一通信部３２０により第一コントローラ１００から取得する。例えば補正情報取得部３４５は、多軸ロボット１０の現在位置に関する情報として上記予測位置情報（例えば、次の制御周期への移行時点における多軸ロボット１０の先端部の予測位置・姿勢を示す数値データ）を第一コントローラ１００から取得する。
【００５８】
次に、第三コントローラ３００はステップＳ０６を実行する。ステップＳ０６では、指令補正部３４６が、補正情報取得部３４５により取得された上記予測位置情報に基づいて、指令生成部３４１が生成した第二動作指令を補正する。例えば、指令補正部３４６は、多軸ロボット１０の動作と周辺装置２０の動作とのタイミングのずれを小さくするように第二動作指令を補正する。より具体的に、指令補正部３４６は、多軸ロボット１０の先端部の上記予測位置・姿勢に対応する位置にワークを配置するように第二動作指令を補正する。上記予測位置・姿勢に対応する位置とは、例えば、多軸ロボット１０が上記予測位置・姿勢に先端部を配置して実行する作業に適した位置である。指令補正部３４６は、モーション記憶部３１０に記憶されたモーション情報を参照し、上記予測位置・姿勢に一致する第一動作指令と同じタイミングで出力予定であった第二動作指令を特定し、これを補正後の第二動作指令としてもよい。ここでの「一致」は、誤差レベル（無視し得るレベル）の差異が残った状態を含む。
【００５９】
次に、第三コントローラ３００はステップＳ０７を実行する。ステップＳ０７では、第二動作指令出力部３４３が、指令補正部３４６により補正された第二動作指令を第二通信部３３０により第二コントローラ２００に出力する。
【００６０】
ステップＳ０４において、現在の制御モードが通常制御モードであると判定した場合、第三コントローラ３００は、ステップＳ０５，Ｓ０６を実行することなくステップＳ０７を実行する。このため、通常制御モードにおいては、同期用の補正処理を経ることなく第二動作指令が第二コントローラ２００に出力される。
【００６１】
ステップＳ０７を実行した後、第三コントローラ３００は、ステップＳ０８を実行する。ステップＳ０８では、上記モーション情報により規定される全ての動作指令の出力が完了したか否かを指令生成部３４１が確認する。
【００６２】
ステップＳ０８において、出力すべき動作指令が残っていると判定した場合、第三コントローラ３００はステップＳ０９を実行する。ステップＳ０９では、指令生成部３４１が、モーション記憶部３１０に記憶されたモーション情報に基づいて、次の制御周期用の第一動作指令及び第二動作指令を生成し、制御モードを設定する。
【００６３】
次に、第三コントローラ３００はステップＳ１０を実行する。ステップＳ１０では、指令生成部３４１が制御周期の経過を待機する。その後、第三コントローラ３００は処理をステップＳ０３に戻す。以後、全ての動作指令の出力が完了するまで、第一動作指令の出力、第二動作指令の補正、第二動作指令の出力、及び動作指令の更新が制御周期で繰り返される。
【００６４】
ステップＳ０８において、全ての動作指令の出力が完了したと判定した場合、第三コントローラ３００はステップＳ１３を実行する。ステップＳ１３では、指令生成部３４１が、第一動作指令出力部３４２及び第一通信部３２０を介して多軸ロボット１０の制御の完了指令を第一コントローラ１００に出力し、第二動作指令出力部３４３及び第二通信部３３０を介して周辺装置２０の制御の完了指令を第二コントローラ２００に出力する。以上で第三コントローラ３００における制御処理手順が完了する。
【００６５】
（第一コントローラにおける制御処理手順）
図４に示すように、第一コントローラ１００は、まずステップＳ３１を実行する。ステップＳ３１では、指令変換部１３１が、第一通信部３２０から通信部１１０への指令の受信状況を確認し、多軸ロボット１０の制御の開始指令を待機する。
【００６６】
次に、第一コントローラ１００はステップＳ３２を実行する。ステップＳ３２では、指令変換部１３１が、第一通信部３２０から通信部１１０への指令の受信状況を確認し、上記第一動作指令の受信を待機する。
【００６７】
次に、第一コントローラ１００はステップＳ３３を実行する。ステップＳ３３では、フィードバック情報取得部１３３が、多軸ロボット１０の現在位置を示す情報を多軸ロボット１０から取得する。例えばフィードバック情報取得部１３３は、関節軸Ｊ１〜Ｊ６の角度を示す情報をアクチュエータ１１〜１６から取得する。
【００６８】
次に、第一コントローラ１００はステップＳ３４を実行する。ステップＳ３４では、予測位置情報生成部１３２が、多軸ロボット１０の現在位置と、多軸ロボット１０のモデル情報と、第一動作指令とに基づいて上記予測位置情報を導出し、当該予測位置情報を通信部１１０により第三コントローラ３００に出力する。例えば予測位置情報生成部１３２は、指令変換部１３１により生成された関節軸Ｊ１〜Ｊ６の角度目標値と、フィードバック情報取得部１３３により取得された関節軸Ｊ１〜Ｊ６の角度情報と、モデル記憶部１２０に記憶されたモデル情報とを用いて運動学演算・動力学演算を行うことで、次の制御周期への移行時点における予測位置情報（例えば、多軸ロボット１０の先端部の予測位置・姿勢を示す数値データ）を算出し、これを通信部１１０により制御処理部１３０に出力する。
【００６９】
次に、第一コントローラ１００はステップＳ３５を実行する。ステップＳ３５では、電力出力部１４０が、第一動作指令に応じた駆動電力を多軸ロボット１０に出力する。例えば電力出力部１４０は、指令変換部１３１により生成された角度目標値に従って関節軸Ｊ１〜Ｊ６を動作させるための駆動電力をアクチュエータ１１〜１６に出力する。より具体的に、電力出力部１４０は、指令変換部１３１により生成された角度目標値と、フィードバック情報取得部１３３により取得された角度との差分に比例演算、比例・積分演算、又は比例・積分・微分演算等を施した値の駆動電力をアクチュエータ１１〜１６に出力する。なお、第一コントローラ１００は、ステップＳ３４に先立ってステップＳ３５を実行してもよいし、ステップＳ３４と並行してステップＳ３５を実行してもよい。
【００７０】
次に、第一コントローラ１００はステップＳ３６を実行する。ステップＳ３６では、指令変換部１３１が、第一通信部３２０から通信部１１０への指令の受信状況を確認し、多軸ロボット１０の制御の完了指令を受信しているかを確認する。
【００７１】
ステップＳ３６において、上記完了指令を受信していないと判定した場合、第一コントローラ１００は処理をステップＳ０２に戻す。以後、上記完了指令を受信するまで、第一動作指令の取得、予測位置情報の算出・出力、及び駆動電力の出力が制御周期で繰り返される。
【００７２】
ステップＳ３６において、上記完了指令を受信したと判定した場合、第一コントローラ１００は処理を完了する。以上で第一コントローラ１００における制御処理手順が完了する。
【００７３】
〔本実施形態の効果〕
以上に説明したように、コントロールシステム１は、第一制御対象を制御する第一コントローラ１００と、第一制御対象に比べて応答性の高い第二制御対象を制御する第二コントローラ２００と、第一コントローラ１００を介して第一制御対象を動作させ、第二コントローラ２００を介して第二制御対象を動作させる第三コントローラ３００とを備える。第三コントローラ３００は、第一コントローラ１００との間で情報の入出力を行う第一通信部３２０と、第二コントローラ２００との間で情報の入出力を行う第二通信部３３０と、第一制御対象を動作させる第一動作指令を第一通信部３２０により第一コントローラ１００に出力することと、第二制御対象を動作させる第二動作指令を第二通信部３３０により第二コントローラ２００に出力することと、第一制御対象の現在位置に関する情報を第一通信部３２０により第一コントローラ１００から取得することと、第一制御対象の現在位置に関する情報に基づいて、第二動作指令を補正することと、を実行するように構成された制御処理部３４０と、有する。
【００７４】
コントロールシステム１によれば、第一制御対象の現在位置に関する情報に応じて第二動作指令が補正される。これにより、第一制御対象の動作と第二制御対象の動作とのタイミングのずれを低減することができる。
【００７５】
第一制御対象の現在位置に関する情報は、第一制御対象の現在位置と、第一制御対象のモデル情報と、第一動作指令とに基づいて導出される、第一制御対象の予測位置情報であってもよい。第一制御対象の現在位置を把握し、これに第二制御対象の動作を適応させようとする場合、当該現在位置に対応する位置に第二制御対象が移動する時点で、既に第一制御対象の位置が変わっていることとなるため、第二制御対象の動作タイミングに遅れが生じ得る。これに対し、第一制御対象の現在位置に関する情報として、第一制御対象の予測位置情報を用いることで、第二制御対象の動作タイミングの遅れを低減することができる。
【００７６】
第一コントローラ１００は、第三コントローラ３００との間で情報の入出力を行う通信部１１０と、第一制御対象の現在位置と、第一制御対象のモデル情報と、第一動作指令とに基づいて予測位置情報を導出し、予測位置情報を通信部１１０により第三コントローラ３００に出力する制御処理部１３０とを有してもよい。予測位置情報を導出する機能が第一コントローラ１００に組み込まれることにより、第一制御対象を制御するための既存のモデル情報を予測位置情報の導出に流用可能である。このため、予測位置情報の導出のみを目的として、第一制御対象のモデル情報を入力する必要がないので、情報処理の効率化及び使い勝手の向上を図ることができる。
【００７７】
第一制御対象は複数の関節軸を有する多軸ロボット１０であり、第二制御対象は多軸ロボット１０と協調して動作可能な周辺装置２０であってもよい。多軸ロボットを含む設備においては、多軸ロボットとその周辺装置との間で応答性の差異が大きくなる傾向がある。このため、上記特許文献１に示されるように、伝達関数を用いて動作指令を調節するのみでは、多軸ロボット及び周辺装置の動作タイミングのずれを十分に低減できない可能性がある。これに対し、多軸ロボット１０を第一制御対象とし、周辺装置２０を第二制御対象としてコントロールシステム１の構成を適用することにより、多軸ロボット１０の現在位置に関する情報に応じて第二動作指令を補正することができるので、多軸ロボット１０と周辺装置２０との動作タイミングのずれを十分に低減することができる。
【００７８】
なお、第一制御対象を多軸ロボット１０とし、第二制御対象を周辺装置２０とした構成は、マシンコントローラ（第三コントローラ３００）とロボットコントローラ（第一コントローラ１００）との間に主従関係を持たせた構成に相当する。この場合、協調制御等を実現するための上位の演算部をマシンコントローラ側に集中させ、ロボットコントローラの機能を多軸ロボット１０の制御に特化させることが可能となるので、ロボットコントローラの簡素化が可能となる。また、マシンコントローラを介してロボットコントローラを制御することが可能となるので、マシンコントローラ用のプログラミング言語とロボットコントローラ用のプログラミング言語とを使い分ける煩雑さを解消することが可能である。従って、コントロールシステム全体として、構成の簡素化及び使い勝手の向上を図るのにも有効である。
【００７９】
以上、実施形態について説明したが、本発明は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。
【符号の説明】
【００８０】
１…コントロールシステム、１００…第一コントローラ、２００…第二コントローラ、３００…第三コントローラ、１０…多軸ロボット、２０…周辺装置、Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６…関節軸、３２０…第一通信部、３３０…第二通信部、３４０…制御処理部、１１０…通信部、１３０…制御処理部、１４０…電力出力部。
【図１】
2018153881.tif 000003
【図２】
2018153881.tif 000004
【図３】
2018153881.tif 000005
【図４】
2018153881.tif 000006