JP6052372B2 - シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム - Google Patents

シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム Download PDF

Info

Publication number
JP6052372B2
JP6052372B2 JP2015222259A JP2015222259A JP6052372B2 JP 6052372 B2 JP6052372 B2 JP 6052372B2 JP 2015222259 A JP2015222259 A JP 2015222259A JP 2015222259 A JP2015222259 A JP 2015222259A JP 6052372 B2 JP6052372 B2 JP 6052372B2
Authority
JP
Japan
Prior art keywords
virtual
machine
movement
simulation
unit
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
JP2015222259A
Other languages
English (en)
Other versions
JP2016042378A (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 JP2015222259A priority Critical patent/JP6052372B2/ja
Publication of JP2016042378A publication Critical patent/JP2016042378A/ja
Application granted granted Critical
Publication of JP6052372B2 publication Critical patent/JP6052372B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Numerical Control (AREA)
  • Debugging And Monitoring (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Description

この発明は、シミュレーション装置、シミュレーション方法、および、シミュレーションプログラムに関し、特に、対象物を扱う機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを実行するのに適したシミュレーション装置、シミュレーション方法、および、シミュレーションプログラムに関する。
従来、検査対象物をカメラで撮影した画像から計測結果を抽出する画像処理装置で用いられる制御プログラムを作成するプログラム作成装置があった。このプログラム作成装置では、実際のカメラで撮影した画像を登録画像として予め保持しておき、この登録画像から計測結果を抽出することで、オフラインでシミュレーションをすることができる。
特開2009−123069号公報
しかし、特許文献1のオフラインでのシミュレーションにおいては、カメラなどの視覚センサの計測結果および機械の制御が同じ時間軸で同期的に動作するシミュレーションができなかった。
この発明は、上述の問題を解決するためになされたものであり、その目的の1つは、視覚センサを含めた統合的なシミュレーションを実現することが可能なシミュレーション装置、シミュレーション方法、および、シミュレーションプログラムを提供することである。
上述の目的を達成するために、この発明のある局面によれば、シミュレーション装置は、対象物を扱う機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを実行する制御部を有する装置である。
制御部は、制御プログラムにしたがって、仮想空間において機械に対応する仮想機械によって扱われ対象物に対応する仮想対象物のモデルデータに基づいて、仮想機械を動かせるための指令値を計算する第1の計算部と、第1の計算部によって計算された指令値にしたがった仮想機械の動きを計算する第2の計算部と、第2の計算部によって計算された仮想機械の動きによって動かされる仮想対象物の動きを計算する第3の計算部と、第2の計算部によって計算された仮想機械の動き、または、第3の計算部によって計算された仮想対象物の動きを、仮想的に撮影した場合に得られる仮想空間画像を生成する仮想撮影部とを含む。第1の計算部は、仮想撮影部によって生成された仮想空間画像にさらに基づいて、指令値を計算する。
好ましくは、第1の計算部、第2の計算部、第3の計算部、および、仮想撮影部は、同一の時間軸にしたがって、それぞれ、指令値、仮想機械の動き、および、仮想対象物の動きを計算し、仮想空間画像を生成する。
好ましくは、制御部は、さらに、仮想撮影部に対応する実空間の視覚センサによって撮影された実空間画像から対象物または機械の状態を特定する特定部と、特定部によって特定された状態から対象物または機械の初期状態を計算する第4の計算部とを含む。第1の計算部は、第4の計算部によって計算された初期状態をシミュレーションの開始時の状態として指令値を計算する。
好ましくは、シミュレーション装置は、記憶部と、表示部とをさらに備える。記憶部は、仮想撮影部に対応する実空間の視覚センサによって撮影された実空間画像と当該実空間画像に対応する仮想空間画像とを対応付けて予め記憶する画像記憶部を含む。制御部は、さらに、仮想撮影部によって生成された仮想空間画像に対応して画像記憶部に記憶されている実空間画像を表示部に表示させる表示制御部を含む。
この発明の他の局面によれば、シミュレーション方法は、対象物を扱う機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを実行する制御部を有するシミュレーション装置で行なわれる方法である。
シミュレーション方法は、制御部が、制御プログラムにしたがって、仮想空間において機械に対応する仮想機械によって扱われ対象物に対応する仮想対象物のモデルデータに基づいて、仮想機械を動かせるための指令値を計算する第1のステップと、第1のステップで計算された指令値にしたがった仮想機械の動きを計算する第2のステップと、第2のステップで計算された仮想機械の動きによって動かされる仮想対象物の動きを計算する第3のステップと、第2のステップで計算された仮想機械の動き、または、第3のステップで計算された仮想対象物の動きを、仮想的に撮影した場合に得られる仮想空間画像を生成する仮想撮影ステップとを含む。第1のステップは、仮想撮影ステップで生成された仮想空間画像に基づいて、指令値を計算するステップを含む。
この発明のさらに他の局面によれば、シミュレーションプログラムは、対象物を扱う機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを実行する制御部を有するシミュレーション装置で実行されるプログラムである。
シミュレーションプログラムは、制御プログラムにしたがって、仮想空間において機械に対応する仮想機械によって扱われ対象物に対応する仮想対象物のモデルデータに基づいて、仮想機械を動かせるための指令値を計算する第1のステップと、第1のステップで計算された指令値にしたがった仮想機械の動きを計算する第2のステップと、第2のステップで計算された仮想機械の動きによって動かされる仮想対象物の動きを計算する第3のステップと、第2のステップで計算された仮想機械の動き、または、第3のステップで計算された仮想対象物の動きを、仮想的に撮影した場合に得られる仮想空間画像を生成する仮想撮影ステップとを制御部に実行させる。第1のステップは、仮想撮影ステップで生成された仮想空間画像に基づいて、指令値を計算するステップを含む。
この発明に従えば、視覚センサを含めた統合シミュレーションを実現できる。また、視覚センサを用いて機械を制御する場合のテストをすることができる。
この発明の実施の形態に従う制御システムの構成を説明する図である。 この発明の実施の形態に従うPCのハードウェア構成を説明する図である。 CPUがシミュレーションプログラムを実行することにより実現される機能ブロックを説明する図である。 この発明の実施の形態におけるシミュレーションの状況を示す第1の図である。 第1の実施の形態におけるシミュレーションの制御の流れを示すフローチャートである。 第1の実施の形態におけるシミュレーションの3D空間を示す図である。 第1の実施の形態における仮想視覚センサにより認識された仮想ワークの位置に基づく制御を説明するための図である。 第2の実施の形態におけるシミュレーションの制御の流れを示すフローチャートである。 第2の実施の形態におけるシミュレーションの3D空間を示す図である。 第2の実施の形態における仮想視覚センサにより認識された仮想ワークの位置に基づく制御を説明するための図である。 第3の実施の形態におけるシミュレーションの制御の流れを示すフローチャートである。 第3の実施の形態におけるシミュレーションの3D空間を示す図である。
以下、この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
[第1の実施の形態]
図1は、この発明の実施の形態に従う制御システムの構成を説明する図である。図1を参照して、この発明の実施の形態に従う制御システムは、サーバ2と、ネットワーク4と、PC(Personal Computer)6と、コントローラ14と、制御対象装置16とから構成されている。
サーバ2は、ネットワーク4を介してPC6と接続されている。PC6は、制御対象装置16を制御するコントローラ14と通信可能に接続されている。
PC6は、この発明の一実施形態におけるシミュレーション装置に相当する。PC6には、シミュレーションプログラムを含むコントローラサポートプログラム8がインストールされており、また、ユーザが作成した制御プログラム10が記憶されている。CD−ROM(Compact Disc-Read Only Memory)12は、コントローラサポートプログラム8を格納している。PC6にインストールされているコントローラサポートプログラム8は、このCD−ROM12からインストールされたものである。
コントローラ14は、制御対象装置16の動きを制御する。この発明の実施の形態においては、コントローラ14として一例として、PLC(Programmable Logic Controller)が用いられる。すなわち、このPLCには、いわゆるモーションコントロール機能が備えられている。コントローラ14は、制御対象装置16に対する制御内容を規定する制御プログラム15を記憶している。コントローラ14は、制御周期ごとに制御プログラム15を一巡実行する。ここで、コントローラ14に記憶されている制御プログラム15は、PC6に記憶されている制御プログラム10をコピーしたコピーデータであり、PC6から送信されたものである。
制御対象装置16は、サーボモータ、ステッピングモータなどのモータ18およびモータを駆動するモータドライバ17を含む。
モータ18はモータドライバ17から駆動電流を供給される。モータドライバ17は、制御プログラム15を実行するコントローラ14から制御周期ごとに位置の指令値を与えられ、それに応じた駆動電流をモータ18に供給する。モータ18がサーボモータである場合、モータ18にはエンコーダが備えられており、モータ18の回転位置の実測値がエンコーダによって検出される。モータの回転位置の実測値は、モータドライバ17がフィードバック制御に利用する。
なお、上記においては、CD−ROM12を介して、PC6にシミュレーションプログラムをインストールする場合について説明したが、特にこれに限られず、サーバ2からネットワーク4を介してシミュレーションプログラムをPC6にダウンロードするようにしても良い。制御プログラムについても同様である。
図2は、この発明の実施の形態に従うPC6のハードウェア構成を説明する図である。図2を参照して、この発明の実施の形態に従うPC6は、処理手段であるCPU901と、記憶手段であるROM902、RAM903、およびHDD904と、データ読取部であるCD−ROM駆動装置908と、通信手段である通信IF909と、表示手段であるモニタ907と、入力手段であるキーボード905およびマウス906とを含む。なお、これらの部位は、内部バス910を介して互いに接続される。
HDD904は、典型的には不揮発性の磁気メモリであり、CD−ROM駆動装置908によりCD−ROM12から読取られたシミュレーションプログラムを格納する。また、制御プログラム15も格納している。
CPU901は、HDD904に格納されている、本実施の形態に従うコントローラサポートプログラム8をRAM903などに展開して実行する。
RAM903は、揮発性メモリであり、ワークメモリとして使用される。ROM902は、一般的に、オペレーティングシステム(OS:Operating System)等のプログラムを格納している。
通信IF909は、典型的にはイーサネット(登録商標)およびUSB(Universal Serial Bus)といった汎用的な通信プロトコルをサポートし、ネットワーク4を介してサーバ2との間でデータ通信を提供するとともに、コントローラ14との間でデータ通信を提供する。
モニタ907は、液晶表示装置、CRT(Cathode Ray Tube)、プラズマディスプレイ装置などで構成され、PC6による処理結果などを表示する。キーボード905は、ユーザによるキー入力を受付け、マウス906は、ユーザによるポインティング操作を受付ける。
図3は、CPU901がコントローラサポートプログラム8を実行することにより実現される機能ブロックを説明する図である。図3を参照して、ここでは、ユーザインタフェース部802と、表示データ作成部804と、シミュレーション部806と、制御プログラム記憶部808と、制御プログラム編集部810と、コントローラインタフェース部812とが示されている。
ユーザインタフェース部802は、PC6のモニタ907に表示するウインドウ画面の内容を作成し、また、キーボード905やマウス906によるユーザの操作を受け付ける部位である。
制御プログラム編集部810は、ユーザに制御プログラムの入力および編集を行わせる。制御プログラムを実行するためにコンパイルが必要である場合はコンパイルも行う。作成された制御プログラムは、コントローラインタフェース部812を介してコントローラ14に送られる。また、作成された制御プログラムは、HDD904の所定領域である制御プログラム記憶部808に格納される。また、制御プログラム編集部810は、コントローラインタフェース部812を介してコントローラ14に記憶されている制御プログラム15を読み出して編集することもできる。
シミュレーション部806は、コントローラ14のシミュレータである。シミュレーション部806は、制御プログラム記憶部808に記憶された制御プログラム10に従ってコントローラ14が制御プログラム15を実行する動作をシミュレートし、コントローラ14が制御周期ごとに出力するはずの位置の指令値を算出する。
また、シミュレーション部806は、外部からの信号が到来して制御プログラムの動作に影響を与える状態をシミュレートしたり、制御プログラム15の実行自体によってコントローラ14のメモリの記憶内容などのコントローラ14の内部状態が変化して、その変化が制御プログラム15の動作に影響を与える状態をシミュレートしたりすることができる。
また、シミュレーション部806は、ユーザインタフェース部802を介してシミュレーション実行に関するユーザの指示を受け付ける。すなわち、ユーザインタフェース部802は、シミュレーション部806に対するユーザの指示を受け付ける手段としても働く。
表示データ作成部804は、シミュレーション部806によって作成された実行結果データの時間的な変化を表示するための表示データを作成する。表示データ作成部804は、作成した表示データをユーザインタフェース部802に送ることによりPC6のモニタ907に表示データをグラフや文字の態様や3D表現の態様で表示する。
図4は、この発明の実施の形態におけるシミュレーションの状況を示す第1の図である。図4を参照して、この実施の形態においては、実空間に対応する仮想的な空間である3D空間500には、実空間のコンベアに対応する仮想コンベア520と、実空間の視覚センサに対応する仮想視覚センサ510と、実空間のワークに対応する仮想ワーク540とが配置される。
図3で示したシミュレーション部806は、3Dシミュレータと、視覚センサシミュレータと、機械制御シミュレータとを実行する。
3Dシミュレータは、データトレースで取得した結果に基づいて3D空間500にオブジェクト(この実施の形態においては、仮想視覚センサ510、仮想コンベア520、および、仮想ワーク540)を表示する。
視覚センサシミュレータは、3D空間500において取得されたオブジェクト(ここでは、仮想ワーク540)の仮想画像データ570に対して画像処理を行ない、画像処理での判定結果を3D空間500における仮想的な機械である仮想機械(この実施の形態においては、仮想コンベア520)の制御に反映させる。
機械制御シミュレータは、3D空間500における仮想機械を制御する。具体的には、機械制御シミュレータは、仮想機械への制御の指令値を計算して、その指令値に対する仮想機械の動きを計算する。
この仮想画像データ570と実画像データ590とをマッチングさせることで、3Dシミュレータ、視覚センサシミュレータおよび機械制御シミュレータの同期を取ることができる。
具体的には、仮想画像データ570と実画像データ590とのマッチングの手法としては、仮想画像データ570内のワーク(オブジェクト)の輪郭および実画像データ590内のワーク(オブジェクト)の輪郭を抽出する画像処理と、抽出した2組の輪郭をマッチングして一致しているかどうかを判別する処理とを組合せた手法がある。また、実画像データ590の色データを削減してグレースケール画像に変換する処理と、変換したグレースケール画像と仮想画像データ570との近似値を計算して一致しているかどうかを判別する処理とを組合せた手法がある。
また、仮想画像データ570と実画像データ590とのマッチングの結果を用いた3Dシミュレータ、視覚センサシミュレータおよび機械制御シミュレータの同期を取る手法としては、(1)機械制御シミュレータが、撮影指示を行ない、(2)撮影指示に応じて、視覚センサシミュレータが、3D空間500の仮想画像データ570の取得要求を行ない、(3)取得要求に応じて、3Dシミュレータが、所定撮影位置の仮想画像データ570を送信し、(4)受信した仮想画像データ570に基づいて、視覚センサシミュレータが、仮想画像データ570と実画像データ590とのマッチングの結果を用いてワーク位置を認識し、認識したワーク位置を送信し、(5)受信したワーク位置に基づいて、機械制御シミュレータが、仮想機械を制御するといった連携を取ることによって同期を取る手法がある。
図5は、第1の実施の形態におけるシミュレーションの制御の流れを示すフローチャートである。図5を参照して、シミュレーション部806は、3Dシミュレータを実行することによって、ステップS101で、キャリブレーション用のサンプルオブジェクトを3D空間500の所定キャリブレーション位置に仮想的に配置する。
シミュレーション部806は、視覚センサシミュレータを実行することによって、ステップS201で、3Dシミュレータによって3D空間500の所定キャリブレーション位置に配置されたサンプルオブジェクトを仮想的に撮影してキャリブレーションを実行する。キャリブレーションにおいては、予め保持されている所定のサンプルオブジェクトの画像と同じ撮影画像が得られるか否かが確認され、同じ撮影画像が得られない場合は、同じ撮影画像が得られるように、得られる画像の範囲などを調整する。
その後、シミュレーション部806は、機械制御シミュレータを実行することによって、ステップS311で、ワークの初期位置を設定する。
図6は、第1の実施の形態におけるシミュレーションの3D空間500を示す図である。図6を参照して、この実施の形態においては、仮想ワーク540A〜540Dは、仮想コンベア520の上に置かれて、仮想コンベア520のベルトが駆動されることによって、図の左から右方向に移動し、実空間のロボットに対応する3D空間500における仮想ロボット530A,530Bによってハンドリングされる。また、仮想ワーク540A〜540Dは、仮想視覚センサ510によって撮影される。
仮想ワーク540A〜540Dの初期位置は、図において実線で描かれている仮想ワーク540A〜540Dの左側の仮想コンベア520の上に設定される。
図5に戻って、次に、シミュレーション部806は、機械制御シミュレータを実行することによって、ステップS312で、制御プログラム15の実行を開始することによって、仮想機械(ここでは、仮想コンベア520、仮想ロボット530A,530B)の制御を開始する。
ステップS313では、シミュレーション部806は、ワークの位置に基づいて、シーケンス制御を実行する。ステップS314では、シミュレーション部806は、ワークの位置に基づいて、モーション制御を実行する。
そして、シミュレーション部806は、ステップS315で、モーション制御の結果としての機械およびワークの状態を計算し、ステップS316で、計算した機械およびワークの状態を、3Dシミュレータに送信する。
次いで、シミュレーション部806は、3Dシミュレータを実行することによって、ステップS112で、機械制御シミュレータから送信された機械およびワークの状態を受信し、ステップS113で、受信した状態の機械およびワークを、モニタ907の3D空間500に表示させるために、必要な実行結果データが表示データ作成部804に受け渡される。
図6を再び参照して、シーケンス制御およびモーション制御が行なわれることで、仮想ワーク540A〜540Dが、仮想コンベア520によって、右方向に運ばれるとともに、仮想ロボット530A,530Bによって、仮想ワーク540A〜540Dが持ち上げられて、別の場所に配置される。この状況が、図6で示されるように、モニタ907に表示される。
図5に戻って、次に、シミュレーション部806は、機械制御シミュレータを実行することによって、現時点が撮影タイミングであるか否かを判断する。図6においては、仮想コンベア520のエンコーダ軸の現在位置が指定位置に到達したか否かが判断されることによって、現時点が撮影タイミングであるか否かが判断される。あるいは、仮想的な光電管センサを別途設けて、仮想ワークが光軸を遮ったときが、撮影タイミングであることとしてもよい。
撮影タイミングでないと判断した場合(ステップS317でNOと判断した場合)、シミュレーション部806は、実行する処理をステップS313の処理に戻す。
一方、撮影タイミングであると判断した場合(ステップS317でYESと判断した場合)、シミュレーション部806は、ステップS318で、撮影指示を視覚センサシミュレータに送信する。
シミュレーション部806は、視覚センサシミュレータを実行することによって、ステップS212で、機械制御シミュレータから送信されてきた撮影指示を受信したか否かを判断する。受信していないと判断した場合(ステップS212でNOと判断した場合)、シミュレーション部806は、ステップS212の処理を繰返す。
一方、撮影指示を受信したと判断した場合(ステップS212でYESと判断した場合)、シミュレーション部806は、視覚センサシミュレータを実行することによって、ステップS213で、3D空間500の仮想画像データ570を取得する画像取得要求を、3Dシミュレータに送信する。
シミュレーション部806は、3Dシミュレータを実行することによって、ステップS114で、視覚センサシミュレータから送信されてきた画像取得要求を受信したか否かを判断する。受信していないと判断した場合(ステップS114でNOと判断した場合)、シミュレーション部806は、実行する処理をステップS112の処理に戻す。
一方、画像取得要求を受信したと判断した場合(ステップS114でYESと判断した場合)、シミュレーション部806は、ステップS115で、所定撮影位置の仮想画像データ570を視覚センサシミュレータに送信する。所定撮影位置とは、仮想視覚センサ510に対応する実空間の視覚センサが向けられている実空間の位置に対応する3D空間500の位置である。ステップS115の後、シミュレーション部806は、実行する処理をステップS112の処理に戻す。
シミュレーション部806は、視覚センサシミュレータを実行することによって、ステップS214で、3Dシミュレータから送信されてきた所定撮影位置の仮想画像データ570を受信する。
次に、シミュレーション部806は、視覚センサシミュレータを実行することによって、ステップS215で、仮想画像データ570からワークの位置を認識し、ステップS216で、認識したワークの位置を機械制御シミュレータに送信し、実行する処理をステップS212の処理に戻す。
シミュレーション部806は、機械制御シミュレータを実行することによって、ステップS319で、視覚センサシミュレータから送信されてきたワークの位置を受信し、実行する処理をステップS313の処理に戻す。この受信されたワークの位置に基づいて、前述したステップS313およびステップS314の処理が実行される。
図6を再び参照して、たとえば、仮想視覚センサ510の仮想画像データ570から認識された仮想ワーク540A〜540Dの位置に基づいて、仮想ロボット530A,530Bは、仮想ワーク540A〜540Dを持ち上げて、別の場所に配置する。
図7は、第1の実施の形態における仮想視覚センサ510により認識された仮想ワーク540A〜540Dの位置に基づく制御を説明するための図である。図7を参照して、図5の3DシミュレータのステップS115が実行されることで、仮想視覚センサ510で撮影されたこととされる仮想画像データ570が作成される。この仮想画像データ570には、仮想コンベア520の上に仮想ワーク540A〜540Dが配置されている状態が撮影されている。
そして、図5の視覚センサシミュレータのステップS215が実行されることで、仮想画像データ570が認識され、仮想ワーク540A〜540Dの位置が特定される。
次に、図5の機械制御シミュレータのステップS313,ステップS314が実行されることで、仮想ロボット530A,530Bへの指令値が計算され、モーション制御が実行される。
次いで、図5の3DシミュレータのステップS113が実行されることで、仮想ロボット530A,530Bによって仮想ワーク540A〜540Dがハンドリングされている状況が、モニタ907の3D空間500に表示される。
[第2の実施の形態]
図8は、第2の実施の形態におけるシミュレーションの制御の流れを示すフローチャートである。図8を参照して、第2の実施の形態においては、第1の実施の形態の図5で説明したステップS101の後に、シミュレーション部806は、3Dシミュレータを実行することによって、ステップS102で、仮想視覚センサ510に対応する実空間の視覚センサで撮影された所定撮影位置での実画像データ590を読込む。
次に、シミュレーション部806は、ステップS103で、読込んだ実画像データ590から所定撮影位置(ここでは、3D空間500においては、仮想視覚センサ510が向けられている位置、実空間においては、視覚センサが向けられている位置)でのワークの位置を特定する。
図9は、第2の実施の形態におけるシミュレーションの3D空間500を示す図である。図9を参照して、仮想視覚センサ510の所定撮影位置(図では破線の平行四辺形で囲まれている部分)の仮想画像データ570に対応する実画像データ590からワークの位置が特定される。
図8に戻って、シミュレーション部806は、ステップS104で、ステップS103で特定されたワークの位置から、ワークの初期位置を算出する。ワークの初期位置は、実画像データ590から特定された位置であってもよいし、実画像データ590から特定された位置よりも前の位置であってもよい。
次いで、シミュレーション部806は、ステップS105で、ステップS104で算出されたワークの初期位置を、機械制御シミュレータに送信する。ステップS105の後のステップS112以降の処理については、第1の実施の形態の図5の処理と同様であるので重複する説明は繰返さない。
次に、シミュレーション部806は、機械制御シミュレータを実行することによって、ステップS301で、3Dシミュレータから送信されてきたワークの初期位置を受信し、ステップS311Aで、受信したワークの初期位置を、シミュレーションをするワークの初期位置として設定する。ステップS311Aの後のステップS312以降の処理については、第1の実施の形態の図5の処理と同様であるので重複する説明は繰返さない。
これにより、実画像データ590に基づく位置からのシミュレーションを実行することで、実空間での状況を再現することができる。また、ステップS102で読込まれる実画像データ590が、異常発生時の実画像データ590であれば、シミュレーションで、異常発生時の状態を再現することができる。たとえば、ワークを持上げるのに失敗した場合の実画像データ590を読込ませた場合は、シミュレーションで、ワークの持上げを失敗する状況を再現することができる。
図10は、第2の実施の形態における仮想視覚センサ510により認識された仮想ワーク540A〜540Dの位置に基づく制御を説明するための図である。図10を参照して、図8の3DシミュレータのステップS103,ステップS104が実行されることで、実画像データ590のワークの輪郭抽出により、ワークの位置や形状などのワークモデルが特定され生成される。その後の流れは、図7で説明した第1の実施の形態における流れと同様であるので、重複する説明は繰返さない。
[第3の実施の形態]
図11は、第3の実施の形態におけるシミュレーションの制御の流れを示すフローチャートである。図11を参照して、第3の実施の形態においては、第1の実施の形態の図5で説明したステップS113の後に、シミュレーション部806は、3Dシミュレータを実行することによって、ステップS121で、実空間の視覚センサが向けられている位置に対応する3D空間500の所定撮影位置の仮想画像データ570に近似する画像データに対応する実画像データ590をHDD904から読出す。なお、HDD904には、3D空間500の仮想画像データ570とそれに対応する実空間の実画像データ590とが対応付けられて予め記憶されている。
次に、シミュレーション部806は、ステップS122で、ステップS121で読出した実画像データ590で示される実画像を、モニタ907に表示させるために、必要な実画像データ590が表示データ作成部804に受け渡される。このステップS122を含むステップS112からステップS115のループ処理は、ごく短い周期(たとえば、数ミリ秒から数十ミリ秒単位)で実行されるため、実画像は、動画としてモニタ907に表示される。ステップS122の後のステップS114以降の処理については、第1の実施の形態の図5の処理と同様であるので重複する説明は繰返さない。
図12は、第3の実施の形態におけるシミュレーションの3D空間500を示す図である。図12を参照して、図で示すように、3D空間500の仮想画像データ570A〜570Cが、その仮想画像データ570C〜570Cに近似する画像データと対応して予め記憶されている実画像データ590A〜590Cに置換えられて、実画像の動画として表示される。
[まとめ]
(1) 以上説明したように、上述した実施の形態に係るシミュレーション装置であるPC6は、対象物(たとえば、仮想ワーク540,540A〜540D)を扱う機械(たとえば、仮想コンベア520、仮想ロボット530,530A,530B)の動きを制御するコントローラ(たとえば、コントローラ14)において実行される制御プログラム(たとえば、制御プログラム10,制御プログラム15)のシミュレーションを実行する制御部(たとえば、CPU901)を有する装置である。
制御部は、第1の計算部と、第2の計算部と、第3の計算部と、仮想撮影部とを含む。第1の計算部は、制御プログラムにしたがって、仮想空間(たとえば、3D空間500)において機械に対応する仮想機械(たとえば、3D空間500における仮想コンベア520、仮想ロボット530,530A,530B)によって扱われ対象物に対応する仮想対象物(たとえば、3D空間におけるワーク)のモデルデータに基づいて、仮想機械を動かせるための指令値を計算する部分である(たとえば、図5のステップS313,ステップS314が実行されることでCPU901に形成される部分である)。
第2の計算部は、第1の計算部によって計算された指令値にしたがった仮想機械の動きを計算する部分である(たとえば、図5のステップS315が実行されることでCPU901に形成される部分である)。
第3の計算部は、第2の計算部によって計算された仮想機械の動きによって動かされる仮想対象物の動きを計算する部分である(たとえば、図5のステップS315が実行されることでCPU901に形成される部分である)。
仮想撮影部は、第2の計算部によって計算された仮想機械の動き、または、第3の計算部によって計算された仮想対象物の動きを、仮想的に撮影した場合に得られる所定撮影位置の画像を生成する部分である(たとえば、仮想視覚センサ510および図5のステップS115が実行されることでCPU901に形成される部分である)。
第1の計算部は、仮想撮影部によって生成された仮想空間画像にさらに基づいて指令値を計算する(たとえば、ステップS215で所定撮影位置の仮想画像データ570からワークの位置が認識され、ステップS313,ステップS314で、ワークの位置に基づいて機械の制御が行なわれ、機械への指令値が計算される)。
このように、制御プログラムにしたがって、仮想空間において機械に対応する仮想機械によって扱われ対象物に対応する仮想対象物のモデルデータに基づいて、仮想機械を動かせるための指令値が計算され、計算された指令値にしたがった仮想機械の動きが計算され、計算された仮想機械の動きによって動かされる仮想対象物の動きが計算され、計算された仮想機械の動き、または、仮想対象物の動きを、仮想的に撮影した場合に得られる仮想空間画像が生成され、生成された仮想空間画像にさらに基づいて、指令値が計算される。
これによれば、実空間の機械に対応する仮想空間における仮想機械が、実空間の視覚センサによって撮影される実空間画像に対応する仮想撮影部によって生成された仮想空間画像に基づいて制御される。仮想撮影部に対応する実空間の視覚センサを含めた機械システムの統合シミュレーションを実現できる。また、視覚センサを用いて機械を制御する場合のテストをすることができる。
(2) また、第1の計算部、第2の計算部、第3の計算部、および、仮想撮影部は、同一の時間軸にしたがって、それぞれ、指令値、仮想機械の動き、および、仮想対象物の動きを計算し、仮想空間画像を生成する(たとえば、図5の機械制御シミュレータ、3Dシミュレータ、および、視覚センサシミュレータは、それぞれ、データをやり取りしながら、それぞれのループ処理を実行するので、それぞれのやり取りのタイミングで同期が取られ、共通の時間軸にしたがって動作する)。これによれば、同期性を持った統合シミュレーションを実現できる。
(3) また、制御部は、さらに、特定部と、第4の計算部とを含む。特定部は、仮想撮影部に対応する実空間の視覚センサによって撮影された実空間画像から対象物または機械の状態を特定する部分である(たとえば、図8のステップS103を実行することでCPU901に形成される部分である)。
第4の計算部は、特定部によって特定された状態から対象物または機械の初期状態を計算する部分である(たとえば、図8のステップS104を実行することでCPU901に形成される部分である)。
第1の計算部は、第4の計算部によって計算された初期状態をシミュレーションの開始時の状態として指令値を計算する(たとえば、図8のステップS311Aで初期値が設定されて、図5のステップS313,ステップS314で機械の制御が行なわれ、機械への指令値が計算される)。
これによれば、実空間での状態を再現することができる。実空間で異常が発生した場合には異常発生状態の再現をすることができる。
(4) また、シミュレーション装置は、記憶部(たとえば、RAM903、HDD904)と、表示部(たとえば、モニタ907)とをさらに備える。記憶部は、仮想撮影部に対応する実空間の視覚センサによって撮影された実空間画像と当該実空間画像に対応する仮想空間画像とを対応付けて予め記憶する画像記憶部(たとえば、3D空間500の仮想画像データ570とそれに対応する実空間の実画像データ590とが対応付けられて予め記憶される記憶領域)を含む。
制御部は、さらに、表示制御部を含む。表示制御部は、仮想撮影部によって生成された仮想空間画像に対応して画像記憶部に記憶されている実空間画像を表示部に表示させる部分である(たとえば、図11のステップS121,ステップS122を実行することでCPU901に形成される部分である)。
これによれば、仮想空間での対象物または機械の動きを実空間での対象物または機械のように表示することができる。
[変形例]
(1) 前述した実施の形態においては、実空間での視覚センサで撮影された実画像データ590を用いた機械の制御のシミュレーションとして、仮想空間である3D空間500での仮想視覚センサ510の仮想画像データ570を用いた仮想機械の制御を行なうようにした。この場合に、仮想視覚センサ510で、仮想対象物である仮想ワーク540,540A〜540Dを撮影することとし、撮影した仮想対象物の仮想画像データ570に基づいて仮想機械としての仮想コンベア520および仮想ロボット530A,530Bを制御するようにした。
しかし、これに限定されず、仮想視覚センサ510で仮想コンベア520または仮想ロボット530A,530Bなどの仮想機械を撮影することとし、撮影した仮想機械の仮想画像データ570に基づいて仮想機械を制御するようにしてもよい。
また、仮想視覚センサ510で仮想機械および仮想対象物の両方を撮影することとし、撮影した仮想機械および仮想対象物の仮想画像データ570に基づいて仮想機械を制御するようにしてもよい。
(2) 前述した実施の形態においては、シミュレーション部806が実行するシミュレータが、3Dシミュレータ、視覚センサシミュレータ、および、機械制御シミュレータの3つに分かれている場合について説明した。
しかし、これに限定されず、これらの3つのうちのいずれか2つが統合されていてもよいし、3つが統合されていてもよい。このようにすれば、それぞれのシミュレータ間でのデータのやり取りを行なわずに済むので、効率よくシミュレーションを実行することができる。
(3) 前述した実施の形態においては、実画像データ590を扱う視覚センサに対応する仮想視覚センサ510を用いたシミュレーションを行なうことを説明した。しかし、これに限定されず、対象物または機械の状態を認識可能なセンサであれば、視覚センサに限定されず、他のセンサ、たとえば、超音波センサであってもよいし、光センサであってもよいし、赤外線センサであってもよいし、温度センサであってもよいし、変位センサであってもよい。
(4) 前述した実施の形態においては、シミュレーション装置の発明として説明した。しかし、これに限定されず、シミュレーション装置で行なわれるシミュレーション方法の発明として捉えることができるし、シミュレーション装置で実行されるシミュレーションプログラムの発明として捉えることができる。
(5) 前述した第3の実施の形態においては、3D空間500の仮想画像データ570とそれに対応する実空間の実画像データ590とが対応付けられて予め記憶されていることとし、図11のステップS121で、実空間の視覚センサが向けられている位置に対応する3D空間500の所定撮影位置の仮想画像データ570に近似する画像データに対応する実画像データ590をHDD904から読出すようにした。
しかし、これに限定されず、実空間の視覚センサで撮影した実画像データ590をそのままHDD904に保存しておき、シミュレーション実行時に仮想視覚センサ510で撮影された仮想画像データ570とマッチングする実画像データ590をHDD904からリアルタイムで検索するようにしてもよい。マッチングの手法としては、第1の実施の形態の図4で説明した手法を用いることができる。
(6) 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
2 サーバ、4 ネットワーク、8 コントローラサポートプログラム、10,15 制御プログラム、12 CD−ROM、14 コントローラ、16 制御対象装置、17 モータドライバ、18 モータ、500 3D空間、510 仮想視覚センサ、520 仮想コンベア、530,530A,530B 仮想ロボット、540,540A〜540D 仮想ワーク、570,570A〜570C 仮想画像データ、590,590A〜590C 実画像データ、802 ユーザインタフェース部、804 表示データ作成部、806 シミュレーション部、808 制御プログラム記憶部、810 制御プログラム編集部、812 コントローラインタフェース部、901 CPU、902 ROM、903 RAM、904 HDD、905 キーボード、906 マウス、907 モニタ、908 CD−ROM駆動装置、909 通信IF、910 内部バス。

Claims (8)

  1. 対象物を扱う機械の動きを仮想空間において再現するシミュレーション装置であって、
    実空間画像から前記対象物の状態を特定する特定手段と、
    前記特定手段によって特定された前記対象物の状態に対応する仮想対象物の前記仮想空間における初期位置を計算する第1の計算手段と、
    前記機械の動きを制御する制御プログラムにしたがって、前記仮想空間において前記機械に対応する仮想機械によって扱われる前記仮想対象物の位置に基づいて、前記仮想機械を動かすための指令値を計算する第2の計算手段と
    前記第2の計算手段によって計算された前記指令値によって動かされる前記仮想機械の動きまたは前記仮想対象物の動きを表示するための表示データを作成する表示データ作成手段とを備える、シミュレーション装置。
  2. 前記第1の計算手段は、前記対象物を撮影する視覚センサに対応する仮想撮影手段が撮影する撮影位置と前記実空間画像とを対応付けて、前記撮影位置内における前記仮想対象物の前記初期位置を計算する、請求項1に記載のシミュレーション装置。
  3. 前記表示データ作成手段は、前記初期位置に前記仮想対象物を配置するための表示データを作成する、請求項1に記載のシミュレーション装置。
  4. 前記第2の計算手段および前記表示データ作成手段は、同一の時間軸にしたがって、それぞれ、前記指令値、前記仮想機械の動き、および、前記仮想対象物の動きを計算し、前記仮想機械の動きおよび前記仮想対象物の動きを表示するための表示データを作成する、請求項1に記載のシミュレーション装置。
  5. 前記第2の計算手段によって計算された前記指令値にしたがった前記仮想機械の動きを計算する第3の計算手段と、
    前記第3の計算手段によって計算された前記仮想機械の動きによって動かされる前記仮想対象物の動きを計算する第4の計算手段とをさらに備え、
    前記表示データ作成手段は、前記第3の計算手段によって計算された前記仮想機械の動きまたは前記第4の計算手段によって計算された前記仮想対象物の動きを表示するための表示データを作成する、請求項1から請求項4のいずれかに記載のシミュレーション装置。
  6. 表示部をさらに備え、
    前記表示データ作成手段は、前記表示データで示される画像を前記表示部に表示させる、請求項1から請求項5のいずれかに記載のシミュレーション装置。
  7. 対象物を扱う機械の動きを仮想空間において再現する制御部を有するシミュレーション装置で行なわれるシミュレーション方法であって、
    前記制御部が、
    実空間画像から前記対象物の状態を特定する特定ステップと、
    前記特定ステップで特定された前記対象物の状態に対応する仮想対象物の前記仮想空間における初期位置を計算する第1のステップと、
    前記機械の動きを制御する制御プログラムにしたがって、前記仮想空間において前記機械に対応する仮想機械によって扱われる前記仮想対象物の位置に基づいて、前記仮想機械を動かすための指令値を計算する第2のステップと
    前記第2のステップで計算された前記指令値によって動かされる前記仮想機械の動きまたは前記仮想対象物の動きを表示するための表示データを作成するステップを含む、シミュレーション方法。
  8. 対象物を扱う機械の動きを仮想空間において再現する制御部を有するシミュレーション装置で実行されるシミュレーションプログラムであって、
    実空間画像から前記対象物の状態を特定する特定ステップと、
    前記特定ステップで特定された前記対象物の状態に対応する仮想対象物の前記仮想空間における初期位置を計算する第1のステップと、
    前記機械の動きを制御する制御プログラムにしたがって、前記仮想空間において前記機械に対応する仮想機械によって扱われる前記仮想対象物の位置に基づいて、前記仮想機械を動かすための指令値を計算する第2のステップと
    前記第2のステップで計算された前記指令値によって動かされる前記仮想機械の動きまたは前記仮想対象物の動きを表示するための表示データを作成するステップ前記制御部に実行させる、シミュレーションプログラム。
JP2015222259A 2015-11-12 2015-11-12 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム Active JP6052372B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015222259A JP6052372B2 (ja) 2015-11-12 2015-11-12 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015222259A JP6052372B2 (ja) 2015-11-12 2015-11-12 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012058273A Division JP5838873B2 (ja) 2012-03-15 2012-03-15 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム

Publications (2)

Publication Number Publication Date
JP2016042378A JP2016042378A (ja) 2016-03-31
JP6052372B2 true JP6052372B2 (ja) 2016-12-27

Family

ID=55592063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015222259A Active JP6052372B2 (ja) 2015-11-12 2015-11-12 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム

Country Status (1)

Country Link
JP (1) JP6052372B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101933784B1 (ko) * 2017-03-17 2018-12-28 두산중공업 주식회사 가스 터빈 실시간 시뮬레이션 시스템 및 그 방법
JP7052250B2 (ja) 2017-08-10 2022-04-12 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP6915441B2 (ja) 2017-08-10 2021-08-04 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP6972873B2 (ja) 2017-10-04 2021-11-24 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP6988665B2 (ja) 2018-04-20 2022-01-05 オムロン株式会社 情報処理システム、情報処理方法、および情報処理プログラム
JP7124509B2 (ja) * 2018-07-19 2022-08-24 オムロン株式会社 シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法
JP7388074B2 (ja) 2019-09-17 2023-11-29 オムロン株式会社 シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法
JP7456249B2 (ja) 2020-04-10 2024-03-27 オムロン株式会社 シミュレーションのためのプログラムおよび装置
JP2022043871A (ja) * 2020-09-04 2022-03-16 オムロン株式会社 制御装置、制御システムおよびプログラム
JP2022099420A (ja) 2020-12-23 2022-07-05 オムロン株式会社 シミュレーション装置およびシミュレーションプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006235699A (ja) * 2005-02-22 2006-09-07 Denso Corp シミュレーション装置及びシミュレーション方法
JP4153528B2 (ja) * 2006-03-10 2008-09-24 ファナック株式会社 ロボットシミュレーションのための装置、プログラム、記録媒体及び方法
JP4238256B2 (ja) * 2006-06-06 2009-03-18 ファナック株式会社 ロボットシミュレーション装置

Also Published As

Publication number Publication date
JP2016042378A (ja) 2016-03-31

Similar Documents

Publication Publication Date Title
JP5838873B2 (ja) シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム
JP6052372B2 (ja) シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム
CN106873550B (zh) 模拟装置以及模拟方法
CN106896790B (zh) 模拟装置以及模拟方法
JP5471355B2 (ja) 3次元視覚センサ
EP0278421B1 (en) Instruction system of remote-control robot
JP2008021092A (ja) ロボットシステムのシミュレーション装置
JPWO2008026723A1 (ja) 3次元モデルデータ確認方法及び3次元モデルデータ確認装置
CN108627515B (zh) 计算成为检查***的检查对象外的图像区域的装置及方法
JP2008100315A (ja) 制御シミュレーションシステム
JP7052250B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
JP6915441B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
KR20170016436A (ko) 작업 로봇의 교시 데이터 생성 장치 및 교시 데이터 생성 방법
JP2014065100A (ja) ロボットシステム、及びロボットのティーチング方法
WO2013145952A1 (ja) シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム
CN115803155A (zh) 编程装置
JP2000235596A (ja) 画像システムハードウェア構成要素シミュレーションシステムおよび方法
WO2019202934A1 (ja) 情報処理システム、情報処理方法、および情報処理プログラム
CN112805127A (zh) 用于创建机器人控制程序的方法和设备
JP7376318B2 (ja) アノテーション装置
WO2021149646A1 (ja) 画像解析装置、制御装置、機械システム、画像解析方法、及び画像解析のためのコンピュータプログラム
WO2023157083A1 (ja) ワークの位置を取得する装置、制御装置、ロボットシステム、及び方法
WO2023105637A1 (ja) 産業機械の動作を検証するための装置、及び方法
KR20170082028A (ko) 림 모션 장치
Marques Rapid Development of a High-Level Robot Controller for Automated Touch-Screen Testing

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161025

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: 20161101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161114

R150 Certificate of patent or registration of utility model

Ref document number: 6052372

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250