JP7095417B2 - 制御システム、制御システムの制御方法、および制御システムのプログラム - Google Patents

制御システム、制御システムの制御方法、および制御システムのプログラム Download PDF

Info

Publication number
JP7095417B2
JP7095417B2 JP2018108922A JP2018108922A JP7095417B2 JP 7095417 B2 JP7095417 B2 JP 7095417B2 JP 2018108922 A JP2018108922 A JP 2018108922A JP 2018108922 A JP2018108922 A JP 2018108922A JP 7095417 B2 JP7095417 B2 JP 7095417B2
Authority
JP
Japan
Prior art keywords
coordinate system
position information
controller
time
world coordinate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018108922A
Other languages
English (en)
Other versions
JP2019212123A (ja
Inventor
哲司 若年
征彦 仲野
純児 島村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2018108922A priority Critical patent/JP7095417B2/ja
Priority to PCT/JP2019/021220 priority patent/WO2019235314A1/ja
Publication of JP2019212123A publication Critical patent/JP2019212123A/ja
Application granted granted Critical
Publication of JP7095417B2 publication Critical patent/JP7095417B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller

Description

この発明は、ロボットを含む複数の制御アプリケーションを制御装置により制御する制御システム、制御システムの制御方法、および制御システムのプログラムに関する。
ロボットがワークを工作機のワーク固定位置まで搬送する場合、ロボットにワーク固定位置をティーチングする必要がある。この際の位置は、ロボット座標系で表現する。さらに、工作機がワークを加工する場合、工作機の座標系で表現した加工位置を指定する必要がある。したがって、プログラミングを行う際には、複数の座標系を意識する必要があり、非常に煩雑な作業となっていた。
従来は、このような課題を解決するために、例えば特許文献1のように、ロボット座標系をワールド座標系として、ロボット座標系上の設定点の位置を取得し、さらに工作機座標系上の当該設定点の位置を計測することにより、ロボット座標系と工作機座標系の相対関係を導出することが開示されている。
特開2011-48467号公報
しかしながら、画像処理装置、ロボット、および工作機は、それぞれの周期で位置情報を更新する。例えば、画像処理装置のカメラ座標系での位置は、数百msおきに更新されるが、ロボット座標系の位置は、数msおきに更新される。そのため、コンベア上に流れるワークの位置をカメラで計測した場合、その位置情報をロボットコントローラが受信した時には、ワークは計測時とは異なる位置に進んでいる。
また、画像処理装置、ロボット、工作機、コントローラは、それぞれ時計を有しており、これらの時計は常にずれが生じる。上述のようにそれぞれの周期が異なる上に、周期を作り出す時計にもずれが生じるため、上述のような位置情報のずれを解消することは困難であった。
そこで、この発明の課題は、それぞれの時計を有し、それぞれ異なる周期で位置情報を更新する機器をコントローラで制御する場合に、それぞれの位置情報のずれをなくし、高精度な位置制御を行うことのできる制御システム、制御システムの制御方法、および制御システムのプログラムを提供することにある。
上記課題を解決するため、この開示の制御システムは、
コントローラと、前記コントローラに接続され、ワークに関する所定の処理を行う処理装置とを備える制御システムであって、
前記処理装置は、
時刻を計時する計時部と、
前記処理装置から出力される位置情報を、前記処理装置における座標系で所定の周期により更新する位置情報更新部と、
前記位置情報更新部により更新した前記位置情報と、更新を行った時刻情報とを、前記コントローラに送信する送信部と、を備え、
前記コントローラは、
前記位置情報と前記時刻情報とを、前記処理装置から受信する受信部と、
前記位置情報が出力された前記処理装置における前記座標系と、ワールド座標系との相対関係を表す予め与えられた座標変換式を用いて、前記位置情報を、前記ワールド座標系のワールド座標系位置情報に変換する座標変換部と、
前記ワールド座標系位置情報と前記時刻情報とに基づいて、前記ワールド座標系位置情報間における位置情報を推定する推定部と、
前記ワールド座標系位置情報と、前記推定部により推定した位置情報とを、時間軸上で管理するワールド座標系管理部と、を備える、
上述の制御システムでは、処理装置は、位置情報更新部によりワーク等の位置情報を所定の周期で更新し、送信部により、更新した位置情報と、更新を行った時刻情報とを、コントローラに送信する。更新を行った時刻情報は、計時部により計時した時刻に基づいている。コントローラは、受信部により位置情報と時刻情報とを処理装置から受信し、座標変換部により位置情報をワールド座標系のワールド座標系位置情報に変換する。座標変換部による変換は、位置情報が出力された処理装置における座標系と、ワールド座標系との相対関係を表す予め与えられた座標変換式を用いて行われる。さらに、推定部により、ワールド座標系位置情報と時刻情報とに基づいて、ワールド座標系位置情報間における位置情報を推定する。そして、ワールド座標系管理部は、ワールド座標系位置情報と、推定部により推定した位置情報とを、時間軸上で管理する。
上述の制御システムによれば、処理装置における座標系がそれぞれ異なり、それぞれ異なる周期で位置情報の更新を行う場合であっても、処理装置から出力される位置情報は、位置情報を更新した時刻情報と共にコントローラに送信される。したがって、コントローラにおいて処理装置の座標系による位置情報をワールド座標系位置情報に変換することにより、それぞれの処理装置の位置情報を、統一したワールド座標系において、時間軸上で管理することができる。しかも、処理装置における位置情報の更新期間が長い場合、あるいは、更新に定時性がない場合であっても、ワールド座標系位置情報間における位置情報が時刻情報に基づいて推定される。したがって、処理装置の位置情報、および推定した位置情報を、統一したワールド座標系において、時間軸上で管理することができ、それぞれの処理装置における位置情報のずれをなくし、高精度な位置制御を行うことができる。
一実施形態の制御システムは、前記計時部は、時刻補正機能を備えることが好ましい。
この一実施形態の制御システムでは、それぞれの処理装置における計時部は、時刻補正機能を備えているので、通信による遅れ等が補正され、コントローラとそれぞれの処理装置との間で、共通の時間軸上における時刻情報を伴った位置情報がやり取りされることになる。その結果、処理装置における座標系がそれぞれ異なり、それぞれ異なる周期で位置情報の更新を行う場合であっても、それぞれの処理装置における位置情報のずれをなくし、高精度な位置制御を行うことができる。
一実施形態の制御システムは、前記ワールド座標系位置情報を表示する表示部を備えていてもよい。
この一実施形態の制御システムでは、処理装置の座標系における位置情報が、ワールド座標系位置情報に変換され、表示部において表示される。したがって、ユーザは、コントローラと処理装置との相対的な関係の設定等を容易に行うことができる。
上記課題を解決するため、この開示の制御システムの制御方法は、
コントローラと、前記コントローラに接続され、ワークに関する所定の処理を行う処理装置とを備える制御システムにおける制御方法であって、
前記処理装置において、
時刻を計時するステップと、
前記処理装置から出力される位置情報を、前記処理装置における座標系で所定の周期により更新するステップと、
更新した前記位置情報と、更新を行った時刻情報とを、前記コントローラに送信するステップと、を備え、
前記コントローラにおいて、
前記位置情報と前記時刻情報とを、前記処理装置から受信するステップと、
前記位置情報が出力された前記処理装置における前記座標系と、ワールド座標系との相対関係を表す予め与えられた座標変換式を用いて、前記位置情報を、前記ワールド座標系のワールド座標系位置情報に変換するステップと、
前記ワールド座標系位置情報と前記時刻情報とに基づいて、前記ワールド座標系位置情報間における位置情報を推定するステップと、を備える、
前記ワールド座標系位置情報と、前記推定した位置情報とを、時間軸上で管理するステップと、を備える。
この開示の制御システムの制御方法によれば、処理装置における座標系がそれぞれ異なり、それぞれ異なる周期で位置情報の更新を行う場合であっても、処理装置から出力される位置情報は、位置情報を更新した時刻情報と共にコントローラに送信される。したがって、コントローラにおいて処理装置の座標系による位置情報をワールド座標系位置情報に変換することにより、それぞれの処理装置の位置情報を、統一したワールド座標系において、時間軸上で管理することができる。しかも、処理装置における位置情報の更新期間が長い場合、あるいは、更新に定時性がない場合であっても、ワールド座標系位置情報間における位置情報が時刻情報に基づいて推定される。したがって、処理装置の位置情報、および推定した位置情報を、統一したワールド座標系において、時間軸上で管理することができ、それぞれの処理装置における位置情報のずれをなくし、高精度な位置制御を行うことができる。
上記課題を解決するため、この開示の制御システムのプログラムは、上記制御システムの制御方法をコンピュータに実行させるためのプログラムである。
この開示のプログラムをコンピュータに実行させることによって、上記制御システムの制御方法を実施することができる。
以上より明らかなように、この開示の制御システム、制御システムの制御方法および制御システムのプログラムによれば、それぞれの時計を有し、それぞれ異なる周期で位置情報を更新する機器をコントローラで制御する場合に、それぞれの位置情報のずれをなくし、高精度な位置制御を行うことができる。
第1実施形態における制御システムの概略構成を示す図である。 制御システムの機能ブロック図である。 第1制御アプリケーションおよび第2制御アプリケーションと、コントローラとの通信のタイミングの一例を示す図である。 制御システムの処理の手順を示すフローチャートである。 統合開発環境におけるGUIの一例を示す図である。 基準座標系と物体座標系との関係を説明するための図である。 基準座標系と物体座標系との関係を説明するための図である。 ターゲットパターンが描画されたキャリブレーション用シートの一例を示す図である。 ファンクションブロックを概略的に示す概念図である。 ファンクションブロックを概略的に示す概念図である。 ラダーダイアグラムでのプログラム例を示す図である。 第2実施形態における制御システムの機能ブロックを示す図である。
以下、この発明の実施の形態を、図面を参照しながら詳細に説明する。
(第1実施形態)
図1は、第1実施形態における制御システム1の概略構成を示す図である。図1に示すように、制御システム1は、コントローラ100と、統合開発環境200と、画像処理装置510と、ロボット520と、工作機530と、第1コンベア546と、第2コンベア544とを備えている。
コントローラ100は、上位ネットワーク3を介して、上位コンピュータ300と、タッチパネル400とに接続されている。また、コントローラ100は、産業用ネットワーク2を介して、画像処理装置510と、ロボットコントローラ522と、工作機530と、サーボアンプ540とに接続されている。さらに、コントローラ100は、統合開発環境200と接続されている。産業用ネットワーク2は、例えば、EtherCAT(登録商標)が用いられる。
コントローラ100は、一例として、PLC(Programmable Logic Controller)であり、アーム型ロボット520の動作を制御するロボット制御プログラムと、ロボット520に取り付けられたエンドエフェクタの動作および工作機530の動作を制御するシーケンス制御プログラムとを実行し、制御信号を出力する。
統合開発環境200は、一例として、パーソナルコンピュータ等のコンピュータであり、コントローラ100と通信可能に接続されている。統合開発環境200は、コントローラ100で実行されるロボット制御プログラムおよびシーケンス制御プログラムをコントローラ100にダウンロードする機能、これらのプログラムをデバッグする機能、並びに、これらのプログラムをシミュレートする機能等を有している。
ロボット520は、一例として、6軸の垂直多関節ロボットであり、ロボットコントローラ522と通信可能に接続されている。ロボット520は、サーボモータ等の動力源を備えており、ロボット制御プログラムに基づいてコントローラ100から出力される制御信号により、ロボットコントローラ522を介してサーボモータを駆動し、各関節軸を動作させる。
ロボット520の先端部には、エンドエフェクタが取り付けられており、エンドエフェクタは、シーケンス制御プログラムに基づいてコントローラ10から出力される制御信号により、ロボットコントローラ522を介してエンドエフェクタ内のサーボモータを駆動する。エンドエフェクタは、ロボット520の先端部に取り付けられ、一例として、部品を把持する機構等を備えている。
工作機530は、テーブルや刃物台等の搭載部上のワークWをツールにより加工する。加工後のワークWは、ロボット520に取り付けられたエンドエフェクタにより把持され、第1コンベア546上に載置される。
第2コンベア544は、サーボモータ542を備えており、サーボモータ542は、サーボアンプ540と接続されている。サーボアンプ540には、カウンタとエンコーダとを備えており、カウンタおよびエンコーダは、電気的に接続されている。エンコーダは、第2コンベア544を駆動するためのサーボモータ542に電気的に接続されている。
カウンタは、エンコーダから発生するパルス波に基づいて、第2コンベア544の移動量を計測する。より具体的には、エンコーダは、第2コンベア544の移動量に応じて、パルス信号を発生する。カウンタは、エンコーダからパルス信号を受け、このパルス信号に含まれるパルス数をカウントすることで、第2コンベア544の移動量を計測する。カウンタは、パルス波のカウント値を、サーボアンプ540を介して、コントローラ100に一定の通信周期ごとに送信する。
画像処理装置510には、カメラ512が接続されている。カメラ512は、第2コンベア544上を移動するワークWを撮影する。画像処理装置510は、撮影された画像をコントローラ100に一定の通信周期ごとに送信する。
ワークWは、製品または半製品であり、例えば、コネクタ等の電子部品であってもよい。
図2は、本実施形態における制御システム1の機能ブロック図である。図2に示すように、コントローラ100は、上位ネットワークインターフェース101と、ロジック処理部102と、ワールド座標系管理部104と、位置データ推定処理部105と、フィールドネットワークインターフェース106と、時計108とを備えている。ロジック処理部102は、モーション処理部103を備えている。
コントローラ100は、上位ネットワークインターフェース101を介して、上位コンピュータ300、タッチパネル400、および統合開発環境200と接続されている。
さらに、コントローラ100は、フィールドネットワークインターフェース106を介して、処理装置としての第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、画像処理装置510、およびサーボアンプ540と接続されている。
また、第1制御アプリケーションエンジン700、および第2制御アプリケーションエンジン710は、ロボット520、工作機530等の制御アプリケーション600と接続されている。
第1制御アプリケーションエンジン700は、ロボット520に取り付けられるエンドエフェクタ、および工作機530を制御する。第1制御アプリケーションエンジン700についても、図2においては、簡略化のために1つのみを示している。第2制御アプリケーションエンジン710は、ロボット520を制御する。図1に示すロボットコントローラ522は、第1制御アプリケーションエンジン700と第2制御アプリケーションエンジン710の機能を備えている。
コントローラ100、第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、画像処理装置510、およびサーボアンプ540には、それぞれ計時部としての時計108,701,711,511,541が備えられている。また、第1制御アプリケーションエンジン700、および第2制御アプリケーションエンジン710には、I/Oインターフェースを介してアクチュエータ600が接続されている。さらに、画像処理装置510には、I/Oインターフェースを介してカメラ512が接続されている。
(全体処理)
次に、本実施形態の制御システム1における全体処理について説明する。コントローラ100のワールド座標系管理部104は、ワールド座標系を管理している。画像処理装置510、第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、工作機530、およびサーボアンプ540は、それぞれのローカル座標系を管理している。
第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、画像処理装置510、およびサーボアンプ540は、位置情報更新部としての機能を有しており、それぞれの周期でそれぞれのローカル座標系での位置を更新する。ここで、位置とは、第1制御アプリケーションエンジン700においては、エンドエフェクタの位置、および工作機530の搭載部上のワークWや工作機530におけるツールの位置のことを言う。また、第2制御アプリケーションエンジン710においては、ロボット520の6軸で表される座標値を言う。さらに、画像処理装置510においては、カメラ512で撮影した画像のことを言う。また、サーボアンプ540は、エンコーダの値のことを言う。
図3は、第1制御アプリケーションエンジン700および第2制御アプリケーションエンジン710と、コントローラ100との通信のタイミングの一例を示す図である。図3に示すように、第1制御アプリケーションエンジン700と第2制御アプリケーションエンジン710は、それぞれ、コントローラ100の制御周期とは異なる周期でデータの送受信を行っている。
第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、画像処理装置510、およびサーボアンプ540は、位置情報を更新すると、それぞれ位置情報を更新した時刻を位置情報に付与する。
第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、画像処理装置510、およびサーボアンプ540は、位置情報と時刻情報とを産業用ネットワーク2を介して、コントローラ100に送信する。つまり、第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、画像処理装置510、およびサーボアンプ540は、更新した位置情報と時刻情報とをコントローラ100に送信する送信部としての機能を有している。
コントローラ100のワールド座標系管理部104は、フィールドネットワークインターフェース106を介して、位置情報と時刻情報と受信する。したがって、ワールド座標系管理部104とフィールドネットワークインターフェース106は受信部としての機能を有している。
コントローラ100の座標変換部としてのワールド座標系管理部104は、予め与えられたワールド座標系と各座標系との相対関係を表す座標変換式を用いてワールド座標系に変換する。また、コントローラ100の推定部としての位置データ推定処理部105は、第1制御アプリケーションエンジン700等からから新たなデータを得られるまでの間、位置データの推定処理を行う。
コントローラ100のワールド座標系管理部104は、第1制御アプリケーションエンジン700等から得られた位置データや推定した位置データを、所定時刻の位置データとしてワールド座標系で管理する。
コントローラ100上で動作するユーザプログラムでは、ワールド座標系表現の位置を使って各制御アプリケーションに対する位置制御を行うことができ、ワールド座標系表現の指令位置を管理することができる。
統合開発環境200は、コントローラ100が管理するワールド座標系での位置情報を表示することができる。ユーザは、統合開発環境200からワールド座標系での位置情報を入力することができる。したがって、統合開発環境200は、コントローラ100の表示部としての機能を有している。
次に、図4に示すフローチャートを参照しつつ、制御システム1における処理の手順について説明する。図4は、制御システム1の処理の手順を示すフローチャートである。
まず、ユーザは、上位コンピュータ300において3次元CAD/CAM等のCAEソフトウェアを実行させ、ワールド座標系と、制御アプリケーションおよびカメラとの位置関係を設定する(S10)。次に、ユーザは、上位コンピュータ300から、統合開発環境200にCAEデータを取り込む(S20)。統合開発環境200においてCAEデータを取り込む方法として、例えば、CAEデータをDFXファイルに変換し、この変換したデータを取り込む方法が挙げられる。
ユーザは、統合開発環境200の設定画面で、ワールド座標系と、それぞれの制御アプリケーション600におけるそれぞれのローカル座標系との座標系間の設定を行う(S30)。
図5は、統合開発環境200におけるGUI(Graphical User Interface)210の一例を示す図である。図5に示すように、ユーザは、ワールド座標系と各制御アプリケーションの各ローカル座標系との相対関係を、このGUI210において入力する。GUI210上には計測ツールが備えられており、この計測ツールのデータが参考値としてGUI210上に表示される。
以上のような座標系間の設定を行った後、ユーザは、統合開発環境200において、ユーザプログラムを作成する(S40)。ユーザプログラムの作成後、ユーザは、統合開発環境200からコントローラ100にユーザプログラムをダウンロードする。
コントローラ100は、ユーザプログラムに従い、制御アプリケーション600の動作、および画像処理装置510における画像処理、およびサーボアンプ540の動作の制御を開始する(S60)。
コントローラ100、ユーザプログラムに従い、第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、画像処理装置510、およびサーボアンプ540の時計701,711,511,541を補正する(S70)。
第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、画像処理装置510、およびサーボアンプ540は、それぞれの更新周期で、所定時刻における位置データをコントローラ100に送信する(S80)。
コントローラ100のワールド座標系管理部104は、同一時刻に更新された位置データについては、同一時刻の位置データとして、ワールド座標系の位置表現に変換する(S90)。
コントローラ100の位置データ推定処理部105は、画像処理装置510から新たな位置データを得られない場合に、サーボアンプ540から得られるエンコーダの値に基づいて、位置データの推定を行う(S100)。
コントローラ100のワールド座標系管理部104は、ユーザプログラムや統合開発環境200にワールド座標系表現の位置を渡す(S110)。
ユーザプログラムは、ワールド座標系表現の指令位置をコントローラ100に渡す(S120)。
コントローラ100は、ワールド座標系表現の指令位置を各制御アプリケーション600のそれぞれのローカル座標系に逆変換して第1制御アプリケーションエンジン700、および第2制御アプリケーションエンジン710に渡す(S130)。
以下、図4においては図示を省略するが、ステップS70~S130の処理を制御の終了まで繰り返す。
(ワールド座標系と各ローカル座標系の座標変換式)
次に、ワールド座標系と各ローカル座標系の座標変換式について、図6および図7を参照しつつ説明する。図6および図7は、基準座標系と物体座標系との関係を説明するための図である。
ロボット520自身、工具、ワークW等の位置および姿勢を表現するには、ある基準となる直交座標系から見た場合の、物体に固定した直交座標系の原点位置、および各座標軸の方向によって表示を行う。前者を基準座標系、後者を物体座標系と呼ぶ。
図6に示すように、基準座標系をΣとし、その原点をO、直交する3軸をX,Y,Zとする。また、物体座標系をΣとし、その原点をO、直交する3軸をX,Y,Zとする。さらに、原点Oから原点O向かうベクトル(O位置ベクトル)を基準座標系Σで表示したものをと書き、3軸X,Y,Zの方向を向く単位ベクトルを基準座標系Σで表したものを、と書くこととする。
このとき、基準座標系Σから見た物体の位置はで表現でき、その姿勢は()で表現できる。なお、左上つき添字Aは、そのベクトルが基準座標系Σで表されていることを示す。
物体の姿勢は、3つのベクトル()で表現することができ、これらを回転行列で表す。
=[
図7に示すように、基準座標系Σと物体座標系Σとが与えられ、物体座標系Σの基準座標系Σに対する位置が]で、また姿勢の回転行列がで与えられているとする。このとき、物体座標系Σに関してrで表示された点を、基準座標系Σで表示すると、
r= r+
となる。
この関係は、4×4行列を用いて
r=
と表すことができる。
この式は同次変換式と呼ばれ、は同次変換行列と呼ばれる。同次変換式を用いることにより、並行移動と回転移動の両方を表すことが可能である。
本実施形態においては、コントローラ100のワールド座標系管理部104は、このような同次変換式を用いることにより、各ローカル座標系からワールド座標系への変換と、ワールド座標系から各ローカル座標系への逆変換を行っている。
本実施形態においては、ローカル座標系Aを用いた位置表現は次のようになる。
(X,Y,Z,φ,θ,ψ,t
また、ワールド座標系を用いた位置表現
(X,Y,Z,φ,θ,ψ,t)は次のようになる。
ここで、(φ,θ,ψ)は、ロール、ピッチ、ヨー角であり、回転角を表す。また、tは時刻情報を表す。
(キャリブレーション方法)
次に、ロボット座標系とカメラ座標系との位置関係を同定するためのキャリブレーション方法について説明する。キャリブレーション方法は、従来のキャリブレーション方法を用いることができ、例えば、特開2012-187651号公報に開示されたキャリブレーション方法用いることができる。
本実施形態に係るキャリブレーションにおいては、図8に示すターゲットパターンが描画されたキャリブレーション用シートSを用いられる。図8は、本実施形態におけるターゲットパターンが描画されたキャリブレーション用シートSの一例を示す図である。このキャリブレーション用シートSに示されたターゲットパターンは、その内部が約90°ずつ塗り分けられた5個の円(マーク)を含む。なお、後述するように、基本的には4個のマークを用いてキャリブレーションが行われるが、追加的に配置された1個のマークは、キャリブレーション用シートSの配置向きを所定方向に統一するために用いられる。
[第1段階]
第1段階としては、ユーザは、ターゲットパターンが描画されたキャリブレーション用シートSをカメラ512の視野内に配置する。そして、ユーザは、コントローラ100から画像処理装置510に対して撮像指示を与える。すると、画像処理装置510は、撮像によって得られた画像(ターゲットパターンが被写体として含まれる画像)をコントローラ100に送信する。
コントローラ100は、受信した画像に対して計測処理を行い、ターゲットパターンに含まれる四隅に配置された4個のマークについての各中心点の座標値を決定する。これによって、ターゲットパターンに含まれる4個のマークについての画像座標系の座標値[pixel]がそれぞれ取得される。この取得される4個の座標値を、(xi1,yi1)、(xi2,yi2)、(xi3,yi3)、(xi4,yi4)とする。
[第2段階]
第2段階としては、ユーザは、第2コンベア544を動かしてターゲットパターンが描画されたキャリブレーション用シートSをロボット520のトラッキング範囲(稼動範囲)内に配置するとともに、ロボット520を操作して、ターゲットパターンに含まれる4個のマークとロボット520との位置関係を対応付ける。
より具体的には、まず、ユーザは、コンベア544を動かして、キャリブレーション用シートSをロボット520のトラッキング範囲(稼動範囲)内に配置する。なお、この第2コンベア544の移動前(キャリブレーション開始時)のエンコーダのカウント値が、予め取得されているものとする。このカウント値をE1とする。
続いて、ユーザは、ロボットコントローラ522に付属しているティーチングペンダントを操作するなどによって、ロボット520のハンド先端をキャリブレーション用シートS上の1つのマークと対応するように位置決めする。ユーザは、この位置決めされた状態で指示を与えることで、ロボットコントローラ522が把握しているロボット520の位置情報(ロボット520のハンド先端の位置を示すロボット座標系での座標値)が画像処理装置510からコントローラ100へ送信される。このロボット520のハンド先端の位置決め、および、位置決め状態におけるロボット520の位置情報をコントローラ100へ送信する処理は、ターゲットパターンに含まれる4個のマークのすべてに対して繰り返し実行される。
このような手順によって、ターゲットパターンに含まれる4個のマークに対応するロボット520の位置情報がそれぞれ取得される。この取得される4個のマークに対応するロボット520の位置情報を、例えば、(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)とする。
なお、キャリブレーション用シートSがロボット520のトラッキング範囲(稼動範囲)内に配置された状態は、4個のマークすべてに対応するロボット520の位置情報が画像処理装置510からコントローラ100へ送信されるまで維持される。
また、コントローラ100は、第2コンベア544をロボット稼動範囲(上流)まで移動させた状態におけるカウント値についても格納する。このカウント値をE2とする。
[第3段階]
第3段階としては、ユーザは、第2コンベア544をさらに動かしてキャリブレーション用シートSをロボット520のトラッキング範囲(稼動範囲)の最下流の位置に配置するとともに、ロボット520を操作して、ターゲットパターンに含まれる1個のマークとロボット520との位置関係を対応付ける。
より具体的には、まず、ユーザは、第2コンベア544を動かして、キャリブレーション用シートSをロボット520のトラッキング範囲(稼動範囲)の下流側端部に配置する。
続いて、ユーザは、ティーチングペンダントを操作するなどによって、ロボット520のハンド先端をキャリブレーション用シートS上の1番目のマーク(第2段階で座標値(X1,Y1)を取得したマーク)と対応するように位置決めする。ユーザは、この位置決めされた状態で指示を与えることで、ロボットコントローラ522が把握しているロボット520の位置情報(ロボット520のハンド先端の位置を示すロボット座標系での座標値)がコントローラ100へ送信される。
このような手順によって、ターゲットパターンに含まれる1番目のマークに対応するロボット520の位置情報がそれぞれ取得される。この取得される1番目のマークに対応するロボット520の位置情報を(X5,Y5)とする。
また、コントローラ100は、第2コンベア544をロボット520の稼動範囲(下流)まで移動させ状態におけるカウント値についても格納する。このカウント値をE3とする。
[パラメータ算出処理]
上述したような第1~第3段階の処理によって取得されたパラメータを用いて、まず、エンコーダからの1カウントあたりのワークWの移動量dXおよびdYが算出される。より具体的には、以下の式に従って算出される。
dX=(X5-X1)/(E3-E2)
dY=(Y5-Y1)/(E3-E2)
これらの式は、第2コンベア544をロボット520の稼動範囲(上流)まで移動させた状態と、第2コンベア544をロボット520の稼動範囲(下流)まで移動させた状態との間で、ロボット520のハンド先端がキャリブレーション用シートS内の同一のマークに位置決めされた場合に生じる、カウント値の変化量に対するロボット520の位置情報の変化量を算出することを意味する。これらの演算式によって、1カウントあたりのワークWの移動量dXおよびdYが決定される。すなわち、ロボット-コンベア間のキャリブレーションが実現される。
また、キャリブレーション用シートSをカメラ512の視野内に配置した状態で取得されるカメラ座標系の座標値(xi1,yi1),(xi2,yi2),(xi3,yi3),(xi4,yi4)と、第2コンベア544をロボット520の稼動範囲(上流)まで移動させた状態で取得されるロボット座標系の座標値(X1,Y1),(X2,Y2),(X3,Y3),(X4,Y4)との対応関係に基づいて、座標系の変換に係る変換式の6個のパラメータA~Fが決定される。すなわち、公知の手法を用いて、以下の式を満たす(あるいは、誤差が最小となる)パラメータA~Fが決定される。
X=A・xi+B・yi+C
Y=D・xi+E・yi+F
これにより、ロボット座標系とカメラ座標系との位置関係を同定するためのキャリブレーションが実現される。
(位置を推定する方法)
次に、本実施形態におけるワークWの位置の推定方法について説明する。画像処理装置510の計測は、コントローラ100の通信周期に比べて長く、計測時間に定時性がない。したがって、コントローラ100は、画像処理装置510から位置データを得られない周期では、コントローラ100がワークWの位置の推定を行う。
画像処理装置510は、時刻N-1と時刻Nで撮影した2枚の画像と、2枚の画像が撮影された時刻データを、産業用ネットワーク2を介して、コントローラ100に送信する。
コントローラ100の位置データ推定処理部105は、2枚の画像中のワークWにおける端等の特徴点の移動ピクセル数と時刻の差を計測する。これにより、コントローラ100の位置データ推定処理部105は、ワークWの移動速度と移動方向を割り出す。そして、コントローラ100の位置データ推定処理部105は、このベクトル情報を基に、コントローラ100の制御周期におけるワークの位置を推定する。
(時計補正の方法)
次に、時計補正の方法について説明する。時計補正の方法は、従来の方法を用いることができ、例えば、特許第5794449号に開示された方法用いることができる。
コントローラ100は、第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、画像処理装置510、およびサーボアンプ540に対して、時刻合わせのための時間同期フレームを送信する機能を有している。以下、説明を簡単にするために、第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、画像処理装置510、およびサーボアンプ540をスレーブユニットと呼びこととする。
各スレーブユニットは、コントローラ100から時間同期フレームを受信すると、そのフレームにデータを追加したりすることなくそのまますぐに次のスレーブユニットに向けて時間同期フレームを送信する。これにより、1つのスレーブユニットで時間同期フレームを受信してから、次のスレーブユニットに送信するまでに要する時間はほぼ一定となる。また、時間同期フレームがスレーブユニット内部の線路や、スレーブユニット間のシステムバスを移動する時間も、線路長から一意に規定され一定となる。よって、次のスレーブユニットに時間同期フレームを転送するための要する時間は、スレーブユニットであればほぼ等しいと言える。
従って、あるスレーブユニットから時間同期フレームが送信されたときから、その時間同期フレームが次のスレーブユニットで受信されるとともに当該次のスレーブユニットから出力されるまでに要する時間は、各スレーブユニットとも等しく一定とみなせる。係る一定の時間を基準時間と称してt0とすると、つまり、コントローラ100から時間同期フレームが送信されたときから、その時間同期フレームが1番目のスレーブユニットから出力されるまでに要する伝搬遅延時間は、t0となる。
同様に、その1番目のスレーブユニットから時間同期フレームが送信されたときから、その時間同期フレームが2番目のスレーブユニットで受信され、次のスレーブユニットに対して出力されるまでに要する伝搬遅延時間は、t0となる。従って、コントローラ100から時間同期フレームが送信されたときから、その時間同期フレームが2番目のスレーブユニットから送信されるまでに要する伝搬遅延時間は、2×t0となる。同様に、コントローラ100から時間同期フレームが送信されたときから、その時間同期フレームがN番目のスレーブユニットの送信制御部から送信されるまでに要する伝搬遅延時間は、N×t0となる。なお、各スレーブユニットの内部処理、すなわち、時間同期フレームを受信してから次のスレーブユニットに対して出力するまでに要する時間に比べて、スレーブユニット間のシステムバス上を伝送する時間は非常に短く無視することもできる。よって、係るt0は、スレーブユニットの内部処理に要する時間としてもよい。
このように、各スレーブユニットの接続位置で、ほぼ固定的な伝搬遅延時間となるので、N番目のスレーブユニットにおいては、伝搬遅延時間に基づく補正時間として、“N×t0”をメモリあるいはレジスタに格納する。本実施形態の例では、1番目の画像処理装置510のレジスタには、“t0”が格納され、2番目の第1制御アプリケーションエンジン700のレジスタには、“2×t0”が格納され、3番目の第2制御アプリケーションエンジン710のレジスタには、“3×t0”が格納される。
このように、各スレーブユニットのレジスタに格納する補正時間は、コントローラ100に近いスレーブユニットから順にt0ずつ加算した時間(N番目のスレーブユニットは“N×t0”)となる。従って、ユーザがマニュアル操作で補正時間をレジスタに格納する場合、ユーザは設定対象のスレーブユニットがコントローラ100から何番目のスレーブユニットであるかを確認し、設定ツール装置を用いて対応する補正時間を個々に設定したり、各スレーブユニットに補正時間の設定用のスイッチなどを設け、ユーザがそのスイッチを操作してユニットごとに設定したりすることもできる。このスイッチは、例えばN番目であることを特定するスイッチとする。すると、各スレーブユニットは、予め記憶保持しておいた補正の基準時間t0とスイッチで特定されるNを乗算して補正時間を求めレジスタに格納する。
また、マスタであるコントローラ100が、各スレーブユニットのレジスタに対して補正時間を自動的に設定するようにしても良い。すなわち、電源投入時やシステム立ち上げ時の初期処理として、コントローラ100が、各スレーブユニットの接続位置情報を取得し、補正時間の設定対象の各スレーブユニットの補正時間を算出すると共に、その算出した補正時間をそれぞれのスレーブユニットに通知する。そして、係る通知を受けたスレーブユニットは、送られてきた補正時間をレジスタに格納する。すなわち、コントローラ100は、通信に先立ち、各スレーブユニットに対し、プロファイル要求メッセージを送信する。各スレーブユニットは、自己のプロファイル(機種情報等)を送る。これにより、コントローラ100は、受信した各ノードを構成するスレーブユニットのプロファイル情報から各ノードに何のスレーブユニットがセットされているのかの構成情報を認識する。そこでコントローラ100は、その収集した構成情報に基づき、各スレーブユニットが何番目に接続されているのかを求めるとともに、基準時間t0を乗算して補正時間を求めることができる。
次に、実際の制御実行時の時刻合わせについて説明する。コントローラ100は、時計108の時刻情報をブロードキャスト配信する。すなわち、コントローラ100は、時刻合わせの条件を満たすと、時間同期フレームのための送信データ(時刻情報)を送信準備を開始する。なお、送信条件は、本実施形態では、送信タイマのタイムアップである。よって、時間同期フレームの送信処理は、送信タイマで設定される時間間隔で定時処理されることになる。この時間同期フレームは、最優先で送信される。
コントローラ100は、マスタ時刻となる時計108の時刻情報をラッチし、時間同期フレームのデータ部内に格納する。コントローラ100は、このようにして生成した時間同期フレームを符号化し、1番目のスレーブユニットに対して送信する。コントローラ100は、時刻情報をラッチしたならば、時間同期フレームを最優先で遅滞なく送信する。
そして、時間同期フレーム(シリアル)は、1番目のスレーブユニット(本実施形態では、画像処理装置510)に受信される。1番目のスレーブユニットは、時間同期フレームに格納されたマスタ時刻を取得できる。
1番目のスレーブユニットは、受信した時間同期フレームで送られてきたマスタ時刻をラッチし、当該マスタ時刻に対して、レジスタに格納された補正時間を加算することで現在の時刻を求め、その求めた時刻に基づいて自己の時計(本実施形態では、画像処理装置510の時計511)を補正する。
求めた現在時刻に基づく時計の補正は、例えば、時計の時刻を、上記の求めた現在の時刻によって上書きすることにより更新する処理を行うことで実現できる。また、このように上書きにより更新すると、補正前後で時計の示す値が離散的に飛んでしまう。それを防ぐために、1番目のスレーブユニットは、所定の補正アルゴリズム等を用い、時計の時間の進む速度を速めたり遅らせたりすることで、時刻を連続的に徐々にマスタ時刻に合わせるように修正するようにしてもよい。
また、1番目のスレーブユニットは、2番目のスレーブユニットに対して、時間同期フレームを送信する。
このようにしてデジチェーン方式で送信された時間同期フレームは、次段に隣接するスレーブユニット(ここでは、2番目の第1制御アプリケーションエンジン700)にて受信される。そして、上記と同様に、2番目のスレーブユニットは、受信した時間同期フレームに格納されていたマスタ時刻を取得し、補正時間(2×t0)を加算した値を現在時刻となるように時計(本実施形態では、第1制御アプリケーションエンジン700の時計701)を補正する。そして、第1制御アプリケーションエンジン700は、受信した時間同期フレームを3番目のスレーブユニットに対して送信する。
このようにすることで、各スレーブユニットは、コントローラ100から送られてきた時間同期フレームをデジチェーン方式で順次隣接するスレーブユニットに転送する。さらに、N番目のスレーブユニットの時刻は、マスタ時刻に対してコントローラ100との間に存在するN-1個分のスレーブユニットの局遅延((N-1)×t0)だけ加算することで補正する
なお、上述した時計補正の方法は、あくまでも一例であり、例えば、特許第5141972号に開示された方法の他、他の方法を用いてもよい。
(ファクションブロック)
ワールド座標系で表現された位置情報は、IEC61131-3のファンクションブロックの出力情報として出力されるようにしてもよい。図9は、ファンクションブロック180を概略的に示す概念図である。また、図10は、ファンクションブロック190を概略的に示す概念図である。
ファンクションブロック180は、たとえば、コントローラ100の主メモリや記憶装置等に格納されている。ファンクションブロック180は、図9に示すように、ワールド座標系の位置と時刻が可能された構造配列変数Worldを受け付ける受付部181と、TRUEまたはFALSEを受け付けるEnable部182と、第N制御アプリケーションのローカル座標系の位置と時刻が格納された構造体変数Appli[N]を受け付ける受付部183とを備えている。
また、ファンクションブロック180は、ワールド座標系の位置と時刻が可能された構造配列変数Worldを出力する出力部184と、ファンクションブロック180が正常に動作しているかどうかを示す出力変数Statusを出力する出力部185と、異常になった場合に出力変数Errorを出力する出力部186と、エラーコードが格納される出力変数ErrorIDを出力する出力部187とを備えている。
ファンクションブロック190は、たとえば、コントローラ100の主メモリや記憶装置等に格納されている。ファンクションブロック190は、図10に示すように、ワールド座標系の位置と時刻が可能された構造配列変数Worldを受け付ける受付部191を備えている。
また、ファンクションブロック190は、ワールド座標系の位置と時刻が可能された構造配列変数Worldを出力する出力部193と、第N制御アプリケーションのローカル座標系の位置と時刻が格納された構造体変数Appli[N]を出力する出力部194と、ファンクションブロック190が正常に動作しているかどうかを示す出力変数Statusを出力する出力部195と、異常になった場合に出力変数Errorを出力する出力部196と、エラーコードが格納される出力変数ErrorIDを出力する出力部197とを備えている。
図11は、IEC61131-3で定義されたラダーダイアグラムでのプログラム例を示す図である。図11に示すように、SW1がTRUEのとき、第1制御アプリケーションの座標系の位置と時刻が格納された構造体配列変数Appli[1]が変換され、変換された座標系の位置と時刻は、ワールド座標系の構造体配列変数Worldに格納され、出力部184から出力される。
ファンクションブロック180が正常に動作している際には、出力部185から出力される出力変数StatusはTRUEとなる。異常になった場合には、出力部186から出力される出力変数ErrorがTRUEとなり、出力変数ErrorIDにエラーコードが格納されて出力部187から出力される。
また、図11に示すように、SW2がTRUEのとき、ワールド座標系の位置と時刻が可能された構造配列変数Worldが受付部191に受け付けられると、第1制御アプリケーションのローカル座標系の位置と時刻に変換され、構造体配列変数Appli[1]に格納されて出力部194から出力される。
ファンクションブロック190が正常に動作している際には、出力部195から出力される出力変数StatusはTRUEとなる。異常になった場合には、出力部196から出力される出力変数ErrorがTRUEとなり、出力変数ErrorIDにエラーコードが格納されて出力部197から出力される。
ワールド座標系で表現された位置情報は、上述のようなファンクションブロックの出力情報として出力する態様の他に、図5に示した統合開発環境200のGUIに表示させるようにしてもよい。
以上のように本実施形態によれば、コントローラ100、第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、画像処理装置510、およびサーボアンプ540におけるそれぞれの時計108,701,711,511,541を補正した上で、コントローラ100は、第1制御アプリケーションエンジン700、第2制御アプリケーションエンジン710、画像処理装置510、およびサーボアンプ540から、それぞれの周期で更新したそれぞれのローカル座標系の位置と、更新した時刻情報とを受信する。したがって、異なる座標系で表され、かつ、異なる周期で更新されるそれぞれの位置情報を、統一されたワールド座標系の位置情報として、それぞれに共通した時刻で管理することが可能になる。
その結果、コントローラ100で動作するユーザプログラムは、ワールド座標系で表現された位置を使って指令を行ったり、位置の監視を行ったりすることができる。
また、更新周期が長い場合や、定時性がない制御アプリケーションエンジンや画像処理装置510から位置データが出力されるであっても、コントローラ100における制御周期で位置を推定することができる。その結果、コントローラ100における制御周期で制御アプリケーションエンジンに指令位置を出力することができる。
さらに、本実施形態によれば、ワールド座標系の位置を管理するだけでなく、速度および加速度データを算出することができるので、ワールド座標系の位置、速度および加速度データを、上位コンピュータ300、タッチパネル400、および統合開発環境200に送信することができる。また、統合開発環境200においては、出力されたワールド座標系の位置、速度および加速度データを、GUIで表示することができる。
本実施形態においては、第1制御アプリケーションエンジン700、および第2制御アプリケーションエンジン710から、速度、加速度、トルク、電流値等の情報を、コントローラ100に送信するようにしてもよい。なお、第1制御アプリケーションエンジン700、および第2制御アプリケーションエンジン710はあくまでも例示であり、必要に応じて制御アプリケーションエンジンの数は適宜増減可能である。
(第2実施形態)
次に、本開示の第2実施形態について添付図面を参照しつつ説明する。第1実施形態においては、第1制御アプリケーションエンジン700と、第2制御アプリケーションエンジン710とが、コントローラ100の外部に設けられた態様について説明した。しかしながら、本実施形態では、第1制御アプリケーションエンジン700と、第2制御アプリケーションエンジン710とが、コントローラ100の内部に設けられている点が第1実施形態と異なる。
図12は、本実施形態における制御システム1の機能ブロックを示す図である。図12に示すように、本実施形態においては、第1制御アプリケーションエンジン700と、第2制御アプリケーションエンジン710とが、コントローラ100の内部に設けられている。
また、第1制御アプリケーションエンジン700および第2制御アプリケーションエンジン710には時計が設けられておらず、ロボット520、工作機530等の制御アプリケーション600に時計601が設けられている。
さらに、図示は省略するが、位置情報を更新する位置情報更新部と、位置情報を更新した時刻と位置情報とをコントローラ100に送信する送信部も、制御アプリケーション600に設けられている。
このように構成した場合でも、制御アプリケーション600、画像処理装置510、およびサーボアンプ540におけるそれぞれの時計601,511,541を補正した上で、コントローラ100は、制御アプリケーション600、画像処理装置510、およびサーボアンプ540から、それぞれの周期で更新したそれぞれのローカル座標系の位置と、更新した時刻情報とを受信する。したがって、異なる座標系で表され、かつ、異なる周期で更新されるそれぞれの位置情報を、統一されたワールド座標系の位置情報として、それぞれに共通した時刻で管理することが可能になる。
(変形例)
上述した実施形態では、画像処理装置510から送信される画像に基づいてワークWの位置を推定する態様について説明した。しかしながら、本発明はこのような態様に限定される訳ではない。例えば、サーボアンプ540に備えられたによるカウンタ値を、サーボアンプ540からコントローラ100に送信し、このカウンタ値を基にしてワークWの位置を推定するようにしてもよい。
また、上述した実施形態では、画像処理装置510から画像を送信し、コントローラ100において画像を解析することにより、ワークWの位置を推定する態様について説明した。しかしながら、本発明はこのような態様に限定される訳ではない。例えば、画像処理装置510において、時刻N-1と時刻Nで撮影した2枚の画像中のワークWにおける端等の特徴点の移動ピクセル数と時刻の差を計測し、ワークWの移動速度と移動方向を割り出すようにしてもよい。そして、画像処理装置510からコントローラ100に対して、ワークWの移動速度と移動方向の情報を送信し、コントローラ100においてワークWの位置を推定するようにしてもよい。
以上の実施形態は例示であり、この発明の範囲から離れることなく様々な変形が可能である。上述した複数の実施の形態は、それぞれ単独で成立し得るものであるが、実施の形態同士の組みあわせも可能である。また、異なる実施の形態の中の種々の特徴も、それぞれ単独で成立し得るものであるが、異なる実施の形態の中の特徴同士の組みあわせも可能である。
1 制御システム
100 コントローラ
101 時計
510 画像処理装置
511 時計
600 制御アプリケーション
700 第1制御アプリケーションエンジン
701 時計
710 第2制御アプリケーションエンジン
711 時計

Claims (5)

  1. コントローラと、前記コントローラに接続され、ワークに関する所定の処理を行う少なくとも2以上の処理装置とを備える制御システムであって、
    前記処理装置は、
    時刻を計時する計時部と、
    前記処理装置から出力される前記ワークの位置情報を、前記処理装置における座標系で所定の周期により更新する位置情報更新部と、
    前記位置情報更新部により更新した前記位置情報と、更新を行った時刻情報とを、前記コントローラに送信する送信部と、を備え、
    前記コントローラは、
    前記位置情報と前記時刻情報とを、前記処理装置のそれぞれから受信する受信部と、
    前記位置情報が出力された前記処理装置のそれぞれにおける前記座標系と、ワールド座標系との相対関係を表す予め与えられた座標変換式を用いて、前記処理装置のそれぞれにおける前記位置情報を、前記ワールド座標系のワールド座標系位置情報に変換する座標変換部と、
    前記処理装置における複数の前記ワールド座標系位置情報および前記時刻情報とに基づいて、前記コントローラの制御周期における前記ワールド座標系上の前記ワークの位置情報を推定する推定部と、
    前記ワールド座標系位置情報と、前記推定部により推定した位置情報とを、前記処理装置のそれぞれにおける前記座標系と前記ワールド座標系とで共通する時間軸上で管理するワールド座標系管理部と、を備える、
    制御システム。
  2. 前記計時部は、時刻補正機能を備える、
    請求項1に記載の制御システム。
  3. 前記ワールド座標系位置情報を表示する表示部を備える、
    請求項1または請求項2に記載の制御システム。
  4. コントローラと、前記コントローラに接続され、ワークに関する所定の処理を行う少なくとも2以上の処理装置とを備える制御システムにおける制御方法であって、
    前記処理装置において、
    時刻を計時するステップと、
    前記処理装置から出力される前記ワークの位置情報を、前記処理装置における座標系で所定の周期により更新するステップと、
    更新した前記位置情報と、更新を行った時刻情報とを、前記コントローラに送信するステップと、を備え、
    前記コントローラにおいて、
    前記位置情報と前記時刻情報とを、前記処理装置のそれぞれから受信するステップと、
    前記位置情報が出力された前記処理装置のそれぞれにおける前記座標系と、ワールド座標系との相対関係を表す予め与えられた座標変換式を用いて、前記処理装置のそれぞれにおける前記位置情報を、前記ワールド座標系のワールド座標系位置情報に変換するステップと、
    前記処理装置における複数の前記ワールド座標系位置情報および前記時刻情報とに基づいて、前記コントローラの制御周期における前記ワールド座標系上の前記ワークの位置情報を推定するステップと、を備える、
    前記ワールド座標系位置情報と、前記推定した位置情報とを、前記処理装置のそれぞれにおける前記座標系と前記ワールド座標系とで共通する時間軸上で管理するステップと、を備える、
    制御システムの制御方法。
  5. コントローラと、前記コントローラに接続され、ワークに関する所定の処理を行う少なくとも2以上の処理装置とを備える制御システムにおけるプログラムであって、コンピュータに、
    前記処理装置において、
    時刻を計時するステップと、
    前記処理装置から出力される前記ワークの位置情報を、前記処理装置における座標系で所定の周期により更新するステップと、
    更新した前記位置情報と、更新を行った時刻情報とを、前記コントローラに送信するステップと、を備え、
    前記コントローラにおいて、
    前記位置情報と前記時刻情報とを、前記処理装置のそれぞれから受信するステップと、
    前記位置情報が出力された前記処理装置のそれぞれにおける前記座標系と、ワールド座標系との相対関係を表す予め与えられた座標変換式を用いて、前記処理装置のそれぞれにおける前記位置情報を、前記ワールド座標系のワールド座標系位置情報に変換するステップと、
    前記処理装置における複数の前記ワールド座標系位置情報および前記時刻情報とに基づいて、前記コントローラの制御周期における前記ワールド座標系上の前記ワークの位置情報を推定するステップと、を備える、
    前記ワールド座標系位置情報と、前記推定した位置情報とを、前記処理装置のそれぞれにおける前記座標系と前記ワールド座標系とで共通する時間軸上で管理するステップと、を備える、
    制御システムのプログラム。
JP2018108922A 2018-06-06 2018-06-06 制御システム、制御システムの制御方法、および制御システムのプログラム Active JP7095417B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018108922A JP7095417B2 (ja) 2018-06-06 2018-06-06 制御システム、制御システムの制御方法、および制御システムのプログラム
PCT/JP2019/021220 WO2019235314A1 (ja) 2018-06-06 2019-05-29 制御システム、制御システムの制御方法、および制御システムのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018108922A JP7095417B2 (ja) 2018-06-06 2018-06-06 制御システム、制御システムの制御方法、および制御システムのプログラム

Publications (2)

Publication Number Publication Date
JP2019212123A JP2019212123A (ja) 2019-12-12
JP7095417B2 true JP7095417B2 (ja) 2022-07-05

Family

ID=68770448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018108922A Active JP7095417B2 (ja) 2018-06-06 2018-06-06 制御システム、制御システムの制御方法、および制御システムのプログラム

Country Status (2)

Country Link
JP (1) JP7095417B2 (ja)
WO (1) WO2019235314A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005262369A (ja) 2004-03-18 2005-09-29 Yaskawa Electric Corp ロボットシステム
JP2009279608A (ja) 2008-05-21 2009-12-03 Fanuc Ltd ロボットおよびプレス機械を含むシステム、複数のロボットを含むシステム、ならびにそのようなシステムにおいて使用されるロボットの制御装置
JP2011083841A (ja) 2009-10-13 2011-04-28 Seiko Epson Corp ロボット制御装置、ロボット制御システム及びロボット制御方法
JP2017094406A (ja) 2015-11-18 2017-06-01 オムロン株式会社 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP2018024044A (ja) 2016-08-09 2018-02-15 オムロン株式会社 情報処理システム、情報処理装置、ワークの位置特定方法、およびワークの位置特定プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0866881A (ja) * 1994-08-29 1996-03-12 Toyoda Mach Works Ltd ロボット制御装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005262369A (ja) 2004-03-18 2005-09-29 Yaskawa Electric Corp ロボットシステム
JP2009279608A (ja) 2008-05-21 2009-12-03 Fanuc Ltd ロボットおよびプレス機械を含むシステム、複数のロボットを含むシステム、ならびにそのようなシステムにおいて使用されるロボットの制御装置
JP2011083841A (ja) 2009-10-13 2011-04-28 Seiko Epson Corp ロボット制御装置、ロボット制御システム及びロボット制御方法
JP2017094406A (ja) 2015-11-18 2017-06-01 オムロン株式会社 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP2018024044A (ja) 2016-08-09 2018-02-15 オムロン株式会社 情報処理システム、情報処理装置、ワークの位置特定方法、およびワークの位置特定プログラム

Also Published As

Publication number Publication date
WO2019235314A1 (ja) 2019-12-12
JP2019212123A (ja) 2019-12-12

Similar Documents

Publication Publication Date Title
CN106873550B (zh) 模拟装置以及模拟方法
EP3171237B1 (en) Simulator, simulation method, and simulation program
JP7326911B2 (ja) 制御システムおよび制御方法
US20140288710A1 (en) Robot system and calibration method
EP3342550A1 (en) Manipulator system
US20060025890A1 (en) Processing program generating device
JP2005149299A (ja) 教示位置修正装置
WO2021053855A1 (ja) シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法
JP2019155556A (ja) ロボットの制御装置、ロボット、ロボットシステム、並びに、カメラの校正方法
CN108568816B (zh) 用于控制自动化工作单元的方法
JP3349652B2 (ja) オフラインティーチング方法
JP2018001393A (ja) ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2021059012A (ja) 情報処理装置、情報処理方法及びロボットシステム
CN112469538B (zh) 数据生成装置及方法、数据生成程序、以及远程操作系统
JP5378908B2 (ja) ロボットの精度調整方法およびロボット
JP7095417B2 (ja) 制御システム、制御システムの制御方法、および制御システムのプログラム
WO2021200438A1 (ja) 較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置
JP7447568B2 (ja) シミュレーション装置およびプログラム
CN111844017A (zh) 显示方法
TW202021754A (zh) 自動定位方法以及自動控制裝置
WO2022137581A1 (ja) シミュレーション装置およびシミュレーションプログラム
WO2021181804A1 (ja) シミュレーション装置およびプログラム
TWI805437B (zh) 機器人點位演算校正系統與校正方法
JP2021154426A (ja) 画像処理装置、画像処理装置の制御方法およびプログラム
JP2022102961A (ja) ロボットの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220606

R150 Certificate of patent or registration of utility model

Ref document number: 7095417

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150