(57)【特許請求の範囲】
【請求項１】
対象物に対して処理装置が処理を行うシステムの挙動を推定するシミュレーション装置であって、
前記システムを３次元仮想空間内に仮想的に構築する構築手段を備え、前記システムは、前記対象物を搬送するための搬送機を含み、
前記３次元仮想空間内の前記搬送機の搬送路上にある所定の場所に予め設定される第１の領域に関連付けて、被写体として対象物の少なくとも一部を含む入力画像に対する画像計測処理を行う計測手段とを備え、前記画像計測処理は、前記入力画像から、予め設定された１または複数の参照情報に対応する部分を探索する処理を含み、
前記計測手段による計測結果に基づいて前記処理装置に対する制御指令を生成する制御演算を実行する実行手段と、
前記実行手段により出力される前記制御指令の時系列データ、および、前記計測手段による計測結果に基づいて、前記入力画像から探索された対象物の種別および当該対象物の向きについての情報とともに、前記探索された対象物の挙動を前記システム上で再現する再現手段とを備え、
前記再現手段は、前記対象物を搬送する搬送機の位置または変位を示す情報に基づいて、前記３次元仮想空間内の前記対象物の表示位置を順次更新する、シミュレーション装置。
【請求項２】
前記対象物の種別は、前記予め設定された複数の参照情報のうち、前記対象物との対応の度合いが最も確からしいものを示す情報を含む、請求項１に記載のシミュレーション装置。
【請求項３】
前記対象物の種別は、前記対象物と前記予め設定された参照情報との間の対応の度合いが予め設定された条件を満たしているか否かの情報を含む、請求項１に記載のシミュレーション装置。
【請求項４】
前記再現手段は、対象物の種別ごとに、色、形状、大きさの少なくとも１つを異ならせて表示する、請求項１〜３のいずれか１項に記載のシミュレーション装置。
【請求項５】
対象物の種別ごとの表示に用いる色、形状、大きさの少なくとも１つの設定を受付ける入力手段をさらに備える、請求項４に記載のシミュレーション装置。
【請求項６】
前記計測手段は、前記入力画像に含まれているいずれかの参照情報に対応する部分の回転角を前記計測結果として出力し、
前記再現手段は、前記計測結果の回転角に基づいて、前記対象物の向きについての情報を生成する、請求項１〜５のいずれか１項に記載のシミュレーション装置。
【請求項７】
前記再現手段は、前記対象物の向きを示すオブジェクトを前記対象物に付加して表示する、請求項１〜６のいずれか１項に記載のシミュレーション装置。
【請求項８】
前記再現手段は、前記対象物の向きに対応付けて、再現する対象物の外観に特徴を付加して表示する、請求項１〜６のいずれか１項に記載のシミュレーション装置。
【請求項９】
対象物に対して処理装置が処理を行うシステムの挙動を推定するコンピュータによって
実行されるシミュレーション方法であって、
前記システムを３次元仮想空間内に仮想的に構築するステップを備え、前記システムは、前記対象物を搬送するための搬送機を含み、
前記３次元仮想空間内の前記搬送機の搬送路上にある所定の場所に予め設定される第１の領域に関連付けて、被写体として対象物の少なくとも一部を含む入力画像に対する画像計測処理を行うステップとを実行させ、前記画像計測処理は、前記入力画像から、予め設定された１または複数の参照情報に対応する部分を探索する処理を含み、
前記画像計測処理の計測結果に基づいて前記処理装置に対する制御指令を生成する制御演算を実行するステップと、
前記制御指令の時系列データおよび前記計測結果に基づいて、前記入力画像から探索された対象物の種別および当該対象物の向きについての情報とともに、前記探索された対象物の挙動を前記システム上で再現するステップとを備え、
前記再現するステップは、前記対象物を搬送する搬送機の位置または変位を示す情報に基づいて、前記３次元仮想空間内の前記対象物の表示位置を順次更新するステップを含む、シミュレーション方法。
【請求項１０】
対象物に対して処理装置が処理を行うシステムの挙動を推定するシミュレーションプログラムであって、前記シミュレーションプログラムはコンピュータに
前記システムを３次元仮想空間内に仮想的に構築するステップを備え、前記システムは、前記対象物を搬送するための搬送機を含み、
前記３次元仮想空間内の前記搬送機の搬送路上にある所定の場所に予め設定される第１の領域に関連付けて、被写体として対象物の少なくとも一部を含む入力画像に対する画像計測処理を行うステップとを備え、前記画像計測処理は、前記入力画像から、予め設定された１または複数の参照情報に対応する部分を探索する処理を含み、
前記画像計測処理の計測結果に基づいて前記処理装置に対する制御指令を生成する制御演算を実行するステップと、
前記制御指令の時系列データおよび前記計測結果に基づいて、前記入力画像から探索された対象物の種別および当該対象物の向きについての情報とともに、前記探索された対象物の挙動を前記システム上で再現するステップとを実行させ、
前記再現するステップは、前記対象物を搬送する搬送機の位置または変位を示す情報に基づいて、前記３次元仮想空間内の前記対象物の表示位置を順次更新するステップを含む、シミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの挙動を推定するシミュレーション装置、シミュレーション方法、およびシミュレーションプログラムに関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）分野では、視覚センサを用いた自動制御技術が広く利用されている。例えば、ワークなどの対象物を撮像し、その撮像された画像に対してパターンマッチングなどの画像計測処理を実行することで、各種の制御機器を操作するといった自動化処理が実現されている。
【０００３】
例えば、特開２０１２−１８７６５１号公報（特許文献１）は、視覚センサおよびロボットを含むコンベアトラッキングの構成を開示する。このコンベアトラッキングのシステムでは、視覚センサおよびロボットを制御するロボット制御装置とがネットワークを介して接続されている。
【０００４】
上述のような自動制御技術の対象となるシステムの設計または検討などの段階において、システム全体の性能などを予め評価する必要がある。このようなニーズに対して、仮想的にシステムを構築して動作をシミュレーションする技術が実現されている。例えば、特開２０１３−１９１１２８号公報（特許文献２）は、仮想撮像部に対応する実空間の視覚センサを含めた機械システムの統合シミュレーションを行う技術が開示されている。特許文献２に開示される技術においては、３Ｄシミュレータと視覚センサシミュレータとが連携することで、各タイミングにおける３Ｄ空間内のワークの撮像画像を仮想的に生成する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１８７６５１号公報
【特許文献２】特開２０１３−１９１１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えば、上述の特許文献１に開示されるようなコンベアトラッキングのシステムでは、視覚センサでの計測結果に基づいて各装置への制御指令が生成されることになる。そのため、このようなシステムをシミュレーションした場合には、各装置の挙動とともに、視覚センサでの計測結果を併せて確認したいというニーズが存在する。
【０００７】
また、例えば、あるコンベア上のワークを別のコンベアに移動して配置するような場合には、ワークの向きを予め設定された方向に整えるような処理もなされる。そのため、このようなワークに対する処理が適切に実施されているかを確認したいというニーズも存在する。
【課題を解決するための手段】
【０００８】
本発明のある局面によれば、対象物に対して処理装置が処理を行うシステムの挙動を推定するシミュレーション装置が提供される。シミュレーション装置は、システムを３次元仮想空間内に仮想的に構築する構築手段と、３次元仮想空間内の所定の場所に予め設定される第１の領域に関連付けて、被写体として対象物の少なくとも一部を含む入力画像に対する画像計測処理を行う計測手段とを含む。画像計測処理は、入力画像から、予め設定された１または複数の参照情報に対応する部分を探索する処理を含む。シミュレーション装置は、計測手段による計測結果に基づいて処理装置に対する制御指令を生成する制御演算を実行する実行手段と、実行手段により出力される制御指令の時系列データ、および、計測手段による計測結果に基づいて、入力画像から探索された対象物の種別および当該対象物の向きについての情報とともに、探索された対象物の挙動をシステム上で再現する再現手段とを含む。
【０００９】
好ましくは、対象物の種別は、予め設定された複数の参照情報のうち、対象物との対応の度合いが最も確からしいものを示す情報を含む。
【００１０】
好ましくは、対象物の種別は、対象物と予め設定された参照情報との間の対応の度合いが予め設定された条件を満たしているか否かの情報を含む。
【００１１】
好ましくは、再現手段は、対象物の種別ごとに、色、形状、大きさの少なくとも１つを異ならせて表示する。
【００１２】
好ましくは、シミュレーション装置は、対象物の種別ごとの表示に用いる色、形状、大きさの少なくとも１つの設定を受付ける入力手段をさらに含む。
【００１３】
好ましくは、計測手段は、入力画像に含まれているいずれかの参照情報に対応する部分の回転角を計測結果として出力し、再現手段は、計測結果の回転角に基づいて、対象物の向きについての情報を生成する。
【００１４】
好ましくは、再現手段は、対象物の向きを示すオブジェクトを対象物に付加して表示する。
【００１５】
好ましくは、再現手段は、対象物の向きに対応付けて、再現する対象物の外観に特徴を付加して表示する。
【００１６】
好ましくは、システムは対象物を搬送するための搬送機を含み、所定の場所は、搬送機の搬送路上である。
【００１７】
好ましくは、再現手段は、対象物を搬送する搬送機の位置または変位を示す情報に基づいて、３次元仮想空間内の対象物の表示位置を順次更新する。
【００１８】
本発明の別の局面によれば、対象物に対して処理装置が処理を行うシステムの挙動を推定するコンピュータによって実行されるシミュレーション方法が提供される。シミュレーション方法は、システムを３次元仮想空間内に仮想的に構築するステップと、３次元仮想空間内の所定の場所に予め設定される第１の領域に関連付けて、被写体として対象物の少なくとも一部を含む入力画像に対する画像計測処理を行うステップとを含む。画像計測処理は、入力画像から、予め設定された１または複数の参照情報に対応する部分を探索する処理を含む。シミュレーション方法は、画像計測処理の計測結果に基づいて処理装置に対する制御指令を生成する制御演算を実行するステップと、制御指令の時系列データおよび計測結果に基づいて、入力画像から探索された対象物の種別および当該対象物の向きについての情報とともに、探索された対象物の挙動をシステム上で再現するステップとを含む。
【００１９】
本発明のさらに別の局面によれば、対象物に対して処理装置が処理を行うシステムの挙動を推定するシミュレーションプログラムが提供される。シミュレーションプログラムはコンピュータに、システムを３次元仮想空間内に仮想的に構築するステップと、３次元仮想空間内の所定の場所に予め設定される第１の領域に関連付けて、被写体として対象物の少なくとも一部を含む入力画像に対する画像計測処理を行うステップとを実行させる。画像計測処理は、入力画像から、予め設定された１または複数の参照情報に対応する部分を探索する処理を含む。シミュレーションプログラムはコンピュータに、画像計測処理の計測結果に基づいて処理装置に対する制御指令を生成する制御演算を実行するステップと、制御指令の時系列データおよび計測結果に基づいて、入力画像から探索された対象物の種別および当該対象物の向きについての情報とともに、探索された対象物の挙動をシステム上で再現するステップとを実行させる。
【発明の効果】
【００２０】
本発明によれば、制御指令に従って処理装置が処理する対象物の位置および向きの両方を確認しつつ、システムの挙動を評価できるので、システムの妥当性を一見して把握することができる。
【図面の簡単な説明】
【００２１】
【図１】本実施の形態に係るシミュレーション装置でのシミュレーションの対象となるシステム構成例を示す模式図である。
【図２】本実施の形態に係るシミュレーション装置を用いたシミュレーションの方法を説明するための模式図である。
【図３】本実施の形態に係るシミュレーション装置のハードウェア構成を示す模式図である。
【図４】本実施の形態に係るシミュレーション装置の機能構成を示す模式図である。
【図５】本実施の形態に係るシミュレーション装置の機能構成の別形態を示す模式図である。
【図６】本実施の形態に係るシミュレーション装置を用いたシミュレーションの処理手順を示すフローチャートである。
【図７】本実施の形態に係るシミュレーション装置での画像計測処理の一例を説明するための模式図である。
【図８】本実施の形態に係るシミュレーション装置での画像計測処理による計測結果の内容を説明するための模式図である。
【図９】本実施の形態に係るシミュレーション装置が提供するシミュレーション結果を再現するユーザインターフェイス画面の一例を示す図である。
【図１０】本実施の形態に係るシミュレーション装置が提供するシミュレーション結果の表示態様に対するユーザ設定の一例を説明するための模式図である。
【図１１】本実施の形態に係るシミュレーション装置が提供するシミュレーション結果の表示態様に対するユーザ設定の別の一例を説明するための模式図である。
【図１２】本実施の形態に係るシミュレーション装置が提供するシミュレーション結果の表示態様に対するユーザ設定のさらに別の一例を説明するための模式図である。
【図１３】本実施の形態に係るシミュレーション装置が提供するシミュレーション結果において種別の確認を支援するためのユーザインターフェイス画面の一例を示す図である。
【図１４】本実施の形態に係るシミュレーション装置が提供するシミュレーション結果におけるワークの向きについての表示形態の一例を示す図である。
【図１５】本実施の形態に係るシミュレーション装置が提供するシミュレーション結果におけるワークの向きについての表示形態の別の一例を示す図である。
【図１６】本実施の形態に係るシミュレーション装置が提供するシミュレーション結果を再現するユーザインターフェイス画面の別の一例を示す図である。
【発明を実施するための形態】
【００２２】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２３】
＜Ａ．概要＞
本実施の形態に係るシミュレーション装置は、システムの挙動を推定する。より具体的には、本実施の形態に係るシミュレーション装置は、任意の入力画像を用いて、仮想的に構築したシステムの挙動などを推定できる。本実施の形態においては、典型例として、搬送経路上を搬送される対象物に対して処理装置が処理を行うシステムをシミュレーション対象とした場合について説明するが、これに限られることなく、任意のシステムへの応用が可能である。
【００２４】
以下の説明では、搬送経路上で対象物を搬送する搬送機の一例として、１または複数のコンベアを採用するとともに、対象物に対して処理を行う処理装置の一例として１または複数のロボットを想定する。但し、搬送機および処理装置については、これらに限られることなく、対象のシステムに応じて適宜選択される。以下では、対象物を「ワーク」とも称し、ワークとしては、最終生成物あるいはその一部、または、中間生成物あるいはその一部など、視覚センサにて計測可能なものであれば、どのようなものであってもよい。
【００２５】
先に、本実施の形態に係るシミュレーション装置でのシミュレーションの概要について説明する。
【００２６】
図１は、本実施の形態に係るシミュレーション装置でのシミュレーションの対象となるシステム構成例を示す模式図である。図１を参照して、一例として、コンベアトラッキングシステム１では、コンベア２３０上を連続的に搬送されるワーク２３２が所定のトラッキングエリア２３１まで到達すると、トラッキングエリア２３１内のワーク２３２をロボット２１０で把持して、コンベア２４０まで搬送し、コンベア２４０上に配置する。このようなロボット２１０による把持・搬送・配置の一連の動作は、「ピック＆プレース動作」とも称される。このピック＆プレース動作において、ロボット２１０がコンベア２３０上のワーク２３２を把持した後、ワーク２３２を回転させて予め設定された向きに揃えるような処理がなされる場合もある。
【００２７】
ロボット２１０によるピック＆プレース動作は、コンベア２３０の一部に設定された撮像エリア２２１を撮像部２２２にて撮像するとともに、視覚センサ２２０が撮像部２２２の撮像により取得された入力画像に対してパターンマッチングなどの画像計測処理を行うことで、ワーク２３２の位置、種別、向きなどの情報を含む計測結果が取得される。
【００２８】
制御装置２００は、視覚センサ２２０からの計測結果に基づいて、予め設定された制御ロジックを実行することで、ワーク２３２の位置を順次更新（すなわち、トラッキング）するとともに、ロボット２１０に対する制御指令を生成する。制御装置２００としては、典型的には、プログラマブルコントローラ（以下「ＰＬＣ」とも称す。）を用いて実装される。
【００２９】
制御装置２００は、ロボット２１０に対する制御指令を生成する際には、ロボット２１０の状態値、コンベア２３０を駆動する駆動ローラ２３４に結合されたエンコーダ２３６からのエンコーダ値（エンコーダ値１）、および、コンベア２４０を駆動する駆動ローラ２４４に結合されたエンコーダ２４６からのエンコーダ値（エンコーダ値１）を参照する。制御装置２００および視覚センサ２２０は、ネットワーク２０２を介してデータ通信可能に接続されており、視覚センサ２２０からの計測結果は、ネットワーク２０２を介して、制御装置２００へ伝送される。
【００３０】
図１に示すようなコンベアトラッキングシステム１を導入するにあたって、処理能力（タクトタイムなど）および処理の精度などを事前に評価したいというニーズが存在する。すなわち、コンベアトラッキングシステム１を現実に作成して、その処理能力を検討することが、コスト的または時間的な制約上、不可能な場合も多い。本実施の形態に係るシミュレーション装置は、このようなコンベアトラッキングシステム１の挙動をより簡便に推定したいというニーズに対処するものである。
【００３１】
より具体的には、本実施の形態に係るシミュレーション装置は、シミュレーション対象のシステムを３次元仮想空間内に仮想的に構築するとともに、当該仮想的に構築したシステムに対して、任意の入力画像を融合されることで、より効率的なシミュレーションを実現する。
【００３２】
図２は、本実施の形態に係るシミュレーション装置を用いたシミュレーションの方法を説明するための模式図である。図２を参照して、シミュレーション装置は、シミュレーション対象のコンベアトラッキングシステム２全体をモデル化するとともに、撮像部２２２での撮像を模擬するために、任意の入力画像がこのシステムモデルに与えられる。
【００３３】
コンベアトラッキングシステム１のシステムモデルに与えられる入力画像としては、設計上想定されている仕様（例えば、ワーク２３２の移動速度または時間あたりの個数など）を表現できる入力画像が利用される。典型的には、類似の製造ラインにて現実に撮像された入力画像を用いることが想定される。
【００３４】
シミュレーションに用いられる入力画像としては、既存のシステム（例えば、シミュレーション対象のシステムが更新後のシステムである場合の更新前のシステム）にて撮像されたものが想定されるが、これに限らず、任意のシステムおよび状況において撮像されたものを用いてもよい。すなわち、シミュレーションの対象物（典型的には、ワーク２３２）についての時間的変化の情報を含むものであれば、どのような入力画像を用いてもよい。
【００３５】
また、入力画像としては、動画像データであってもよいし、時系列に並べられた複数の静止画像データであってもよい。さらに、動画像データの再生速度、または、複数の静止画像データの更新速度を適宜調整することで、制御対象となる対象物の時間的変化（すなわち、移動速度）を調整することもできる。システムモデルに対して与える入力画像をこのように調整することで、制御対象の時間的変化の最適値などについても、シミュレーションにて決定することもできる。
【００３６】
さらに、複数の静止画像としては、現実に連続的に撮像した画像ではなく、異なるシーンで撮像された複数の画像を適宜並べて時間的に変化させたものとして取り扱うことで、動入力画像とみなしてもよい。この場合、生成される複数の画像間には、ワークの重なりは生じなくなるが、シミュレーションを実施する際の事実上の問題はない。
【００３７】
このような視覚センサを含むシステムをシミュレーションするにあたって、視覚センサによるワークの計測結果、および、当該計測結果に基づく制御装置の挙動などを評価したいというニーズがある。上述のピック＆プレース動作においては、入力画像に対する画像計測処理によってワークの情報（例えば、ワークの種別など）が正しく得られているか、あるいは、ロボットのピック＆プレース動作によって、ワークの向きが正しく揃えられているか、といった点を評価する必要がある。
【００３８】
そこで、本実施の形態に係るシミュレーション装置１００は、画像計測処理によって取得されたワークの種別および当該対象物の向きについての情報とともに、ワークの挙動をシステム上で再現できるようになっている。以下、本実施の形態に係るシミュレーション装置１００の詳細について説明する。
【００３９】
＜Ｂ．シミュレーション装置のハードウェア構成＞
次に、本実施の形態に係るシミュレーション装置１００のハードウェア構成について説明する。本実施の形態に係るシミュレーション装置１００は、典型的には、１または複数のコンピュータがプログラムを実行することで実現される。
【００４０】
図３は、本実施の形態に係るシミュレーション装置１００のハードウェア構成を示す模式図である。図３を参照して、シミュレーション装置１００は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。シミュレーション装置１００は、プロセッサ１０２と、主メモリ１０４と、入力部１０６と、表示部１０８と、ネットワークインターフェイス１１０と、ハードディスク（ＨＤＤ：Hard Disk Drive）１２０と、光学ドライブ１１２と、通信インターフェイス１１６とを含む。これらのコンポーネントは、内部バス１１８を介して互いに通信可能に接続されている。
【００４１】
プロセッサ１０２は、ハードディスク１２０に格納されているプログラムを主メモリ１０４に展開して実行することで、後述するような機能および処理を実現する。主メモリ１０４は、揮発性メモリにより構成され、プロセッサ１０２によるプログラム実行に必要なワークメモリとして機能する。
【００４２】
入力部１０６は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受付ける。表示部１０８は、ディスプレイ、インジケータなどからなり、ユーザに対して各種情報を提示する。
【００４３】
ネットワークインターフェイス１１０は、サーバ装置などの外部機器との間でネットワークを介してデータを遣り取りする。光学ドライブ１１２は、光学ディスク１１４などから、その中に格納されている各種プログラムを読み出して、ハードディスク１２０にインストールする。通信インターフェイス１１６は、例えば、ＵＳＢ（Universal Serial Bus）などの通信インターフェイスからなり、補助記憶装置などの外部機器との間でローカル通信を介してデータを遣り取りする。
【００４４】
ハードディスク１２０は、ＯＳ（Operating System）１２２およびシミュレーションプログラム１２４などのシミュレーション装置として機能するために必要なプログラムを格納するとともに、シミュレーションに用いる予め取得された入力画像である画像データ群１４０についても格納する。
【００４５】
図３には、光学ドライブ１１２を介して必要なプログラムをシミュレーション装置１００にインストールする構成例を示すが、これに限られることなく、ネットワーク上のサーバ装置などからダウンロードするようにしてもよい。
【００４６】
このように汎用コンピュータを用いて実現する場合には、本実施の形態に係る機能を提供するためのプログラムに加えて、コンピュータの基本的な機能を提供するためのＯＳ（Operating System）がインストールされていてもよい。この場合には、本実施の形態に係るシミュレーションプログラムは、ＯＳの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の順序および／またはタイミングで呼出して処理を実行するものであってもよい。すなわち、本実施の形態に係るプログラムは、上記のようなモジュールを含んでおらず、ＯＳと協働して処理が実行される場合もある。そのため、本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。
【００４７】
本実施の形態に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るシミュレーションプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。
【００４８】
図３には、汎用コンピュータによってシミュレーション装置１００を実現する例を示すが、これに限られることなく、その全部または一部を専用回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）など）を用いて実現してもよい。さらに、一部の処理を外部装置に担わせるようにしてもよい。
【００４９】
図３には、本実施の形態に係るシミュレーション装置１００が単一の装置によって実装される例を示すが、複数の装置が連携してシミュレーション装置１００を実現してもよい。すなわち、本実施の形態に係るシミュレーション装置１００は、複数の独立した装置の組み合わせによって構成されるシステムも含み得る。
【００５０】
＜Ｃ．シミュレーション装置の機能構成＞
次に、本実施の形態に係るシミュレーション装置１００の機能構成について説明する。
【００５１】
図４は、本実施の形態に係るシミュレーション装置１００の機能構成を示す模式図である。図４を参照して、シミュレーション装置１００は、ソフトウェア機能として、視覚センサシミュレータ１５０と、コントローラシミュレータ１６０と、再現モジュール１７０と、ユーザインターフェイスモジュール１８０と、エンコーダエミュレータ１９０とを含む。これらの機能モジュール群は、典型的には、プロセッサ１０２がシミュレーションプログラム１２４（いずれも図３参照）を実行することで実現される。
【００５２】
ユーザインターフェイスモジュール１８０は、設定パラメータ１５２、制御プログラム１６２、３次元設計データ１７２、およびワーク表示態様設定パラメータ１７４についてのユーザによる設定・作成を支援するための操作画面などを提供する。また、ユーザインターフェイスモジュール１８０は、再現モジュール１７０によるシミュレーション結果の表示に際しても、必要なユーザインターフェイスを提供する。
【００５３】
ユーザインターフェイスモジュール１８０は、３次元設計データ１７２を扱う機能としてモデル構築モジュール１８２を含む。モデル構築モジュール１８２は、シミュレーション対象のシステムを３次元仮想空間内に仮想的に構築する。より具体的には、モデル構築モジュール１８２は、３次元仮想空間を表示するとともに、シミュレーション対象のシステムを当該３次元仮想空間内に構築するための設定・操作画面を提供する。
【００５４】
本実施の形態に係るシミュレーション装置１００においては、典型的には、搬送機（典型例として、コンベア）を含むシステムが３次元仮想空間内に仮想的に構築される。そして、図２に示すように、搬送機（コンベア）に関連付けられた搬送経路上の第１の場所に視覚センサ２２０が仮想配置されるとともに、搬送経路上の第２の場所に制御装置２００が仮想配置される。また、システムモデル内に視覚センサの撮像エリアが設定される。図１および図２に示すようなピック＆プレース動作に向けられたシステムモデルにおいては、ワークを把持（ピック）するエリア（トラッキングエリア）、および、ワークを配置（プレース）するエリアが設定されてもよい。
【００５５】
視覚センサシミュレータ１５０は、視覚センサ２２０での処理を模擬するモジュールであり、３次元仮想空間内の搬送経路（コンベア）上に予め設定される撮像エリアに関連付けて、被写体としてワークの少なくとも一部を含む入力画像に対する画像計測処理を行う。より具体的には、視覚センサシミュレータ１５０は、コントローラシミュレータ１６０からの取込指令（典型例として、トリガー信号）に応答して、予め取得された画像データ群１４０のうち対象の画像データを取込んで、視覚センサ２２０（図１および図２参照）に対応する画像計測処理を行う。典型的には、視覚センサシミュレータ１５０で実行される画像計測処理は、入力画像から、予め設定された１または複数の参照情報に対応する部分を探索する処理を含む。
【００５６】
視覚センサシミュレータ１５０での画像計測処理により得られた計測結果は、コントローラシミュレータ１６０へ出力される。すなわち、図１および図２に示すコンベアトラッキングシステムにおける、ネットワーク２０２を介した、視覚センサ２２０から制御装置２００への計測結果の伝送に相当する処理が実行される。ここで、視覚センサシミュレータ１５０における画像計測処理は、予め設定された設定パラメータ１５２に従って実行される。
【００５７】
コントローラシミュレータ１６０は、視覚センサシミュレータ１５０による計測結果に基づいて、処理装置の一例であるロボットに対する制御指令を生成する制御演算を実行する。コントローラシミュレータ１６０は、制御装置２００（図１および図２参照）での処理を模擬するモジュールであり、予め作成された制御プログラム１６２に従って、制御演算（シーケンス命令、モーション命令、各種機能命令など）を実行する。コントローラシミュレータ１６０での制御演算に係る入力および出力を含むトレースデータは、トレースデータとして、再現モジュール１７０へ出力される。
【００５８】
トレースデータは、コントローラシミュレータ１６０による出力されるロボットに対する制御指令の時系列データ、および、視覚センサシミュレータ１５０による計測結果を含む。
【００５９】
コントローラシミュレータ１６０で実行される制御演算は、視覚センサシミュレータ１５０に対して画像データの取込指令（トリガー信号）を生成するための処理を含む。すなわち、コントローラシミュレータ１６０は、予め設定された条件が満たされると、トリガー信号を発生する。予め設定された条件とは、例えばコンベアが所定距離だけ移動したこと、あるいは、予め設定された周期が到来したこと、などを用いることができる。後述するように、コンベアの移動距離などは、エンコーダエミュレータ１９０が発生する情報などに基づいて検知される。
【００６０】
再現モジュール１７０は、コントローラシミュレータ１６０により出力されるトレースデータ（ロボットに対する制御指令の時系列データ、および、視覚センサシミュレータ１５０による計測結果を含む）に基づいて、入力画像から探索されたワークの種別および当該ワークの向きについての情報とともに、当該探索されたワークの挙動をシステム上で再現する。より具体的には、再現モジュール１７０は、定義ファイルである３次元設計データ１７２に基づいて、３次元仮想空間内に仮想的に構築されたシステムを視覚化するとともに、コントローラシミュレータ１６０からのトレースデータに基づいて、システムでのワークおよびロボットの時間的変化などを再現する。
【００６１】
再現モジュール１７０は、ワーク表示態様設定モジュール１７１を含む。ワーク表示態様設定モジュール１７１は、ワーク表示態様設定パラメータ１７４に基づいて、再現するワークの表示態様などを決定する。より具体的には、ワーク表示態様設定モジュール１７１は、ワーク表示態様設定パラメータ１７４に従って、３次元仮想空間内に表示するワークの色、形状、大きさ、向きなどを設定および変更する。再現されるワークに付与される情報の詳細については、後述する。
【００６２】
このように、再現モジュール１７０は、シミュレーション結果の時間変化をアニメーションまたは動画の状態でシミュレーション装置１００の表示部１０８（図３）上に表現する。
【００６３】
図４に示す機能構成においては、コントローラシミュレータ１６０が、コントローラシミュレータ１６０による出力されるロボットに対する制御指令の時系列データ、および、視覚センサシミュレータ１５０による計測結果を含むトレースデータを出力するが、これに限らず、再現モジュール１７０がそれぞれのデータを合成して、システムの挙動を再現するようにしてもよい。
【００６４】
図５は、本実施の形態に係るシミュレーション装置１００の機能構成の別形態を示す模式図である。図５に示すシミュレーション装置１００は、ソフトウェア機能として、図４に示す機能モジュールに加えて、計測結果格納部１３０を含む。計測結果格納部１３０は、視覚センサシミュレータ１５０での画像計測処理により得られた計測結果をエンコーダ値と対応付けて順次格納する。なお、計測結果およびエンコーダ値に加えて、その画像計測処理の対象となった入力画像を格納するようにしてもよい。
【００６５】
再現モジュール１７０は、計測結果格納部１３０に格納されるそれぞれの計測結果に基づくワークを、対応するエンコーダ値に基づいて３次元仮想空間内に表示することで、システムでのワークおよびロボットの時間的変化などを再現する。
【００６６】
図５に示す機能構成に採用することで、例えば、ワークの挙動を再現する際に、画像計測処理に用いられた入力画像そのものを併せて表示することもできる。
【００６７】
上述の図４および図５には、コントローラシミュレータ１６０により出力されるトレースデータを用いて、再現モジュール１７０が構築されたシステムの挙動を再現する構成例を示すが、必ずしも、シミュレーション装置１００内に再現モジュール１７０を実装する必要はない。例えば、コントローラシミュレータ１６０により出力されるトレースデータを外部装置または外部アプリケーションへ出力し、当該外部装置または外部アプリケーションがシステムの挙動を再現するようにしてもよい。あるいは、再現モジュール１７０は、システムの挙動を再現するための動画像データを生成して任意の記憶媒体に格納するのみであり、当該動画像データを別のアプリケーションが再生するようにしてもよい。
【００６８】
エンコーダエミュレータ１９０は、搬送機の移動に関連付けて、当該搬送機の位置または変位を示す情報を生成する。一例として、エンコーダエミュレータ１９０は、基準位置からの変位量を示すエンコーダ値を出力してもよいし、搬送機（コンベア）の単位時間あたりの移動量に比例するパルスを発生してもよい。すなわち、エンコーダ値は、コンベアの位置を示すことになり、単位時間あたりのパルス数は、コンベアの速度を示すことになる。
【００６９】
＜Ｄ．処理手順＞
次に、本実施の形態に係るシミュレーション装置１００を用いたシミュレーションの処理手順について説明する。
【００７０】
図６は、本実施の形態に係るシミュレーション装置１００を用いたシミュレーションの処理手順を示すフローチャートである。図６を参照して、まず、シミュレーション装置１００は、システムモデルの設定を受付ける（ステップＳ２）。システムモデルの設定は、システムを構成する各装置の配置位置、搬送機であるコンベアの移動速度などの設定を含む。システムモデルの設定に基づいて、シミュレーション装置１００（モデル構築モジュール１８２）は、シミュレーション対象のシステム（システムモデル）を３次元仮想空間内に仮想的に構築する。
【００７１】
シミュレーション装置１００（ユーザインターフェイスモジュール１８０）は、システムモデル内に設定される視覚センサの撮像エリアを受付ける（ステップＳ４）。すると、構築されたシステムと設定された撮像エリアとの相対位置関係に基づいて、計測結果を制御演算の入力値に変換するための変換パラメータであるキャリブレーションパラメータが算出される。
【００７２】
続いて、シミュレーション装置１００（ユーザインターフェイスモジュール１８０）は、システムモデルを制御するための制御プログラムを受付ける（ステップＳ６）。この制御プログラムは、システムに関連付けられたプログラムであり、コントローラシミュレータ１６０で実行されることになる。
【００７３】
シミュレーション装置１００（ユーザインターフェイスモジュール１８０）は、視覚センサシミュレータ１５０で実行されるべき画像計測処理の内容設定を受付ける（ステップＳ８）。ここで設定される内容としては、画像計測処理の処理内容の指定、および、指定された処理内容に応じた参照情報（モデル画像、モデル画像から算出される特徴量など）を含む。
【００７４】
以上のような手順により、シミュレーションを行うための設定が完了する。
シミュレーションの開始が指示されると、指定された時間間隔に従って、シミュレーション装置１００（エンコーダエミュレータ１９０）は、仮想的に配置されたコンベアの位置または移動量を示すエンコーダ値を更新する（ステップＳ１０）。シミュレーション装置１００（コントローラシミュレータ１６０）は、トリガー信号を発生する条件が満たされているか否かを判断する（ステップＳ１２）。トリガー信号を発生する条件が満たされていれば（ステップＳ１２においてＹＥＳの場合）、仮想的にトリガー信号を発生する（ステップＳ１４）。トリガー信号を発生する条件が満たされていなければ（ステップＳ１２においてＮＯの場合）、ステップＳ１４の処理はスキップされる。
【００７５】
トリガー信号の発生に応答して、シミュレーション装置１００（視覚センサシミュレータ１５０）は、予め取得された画像データ群のうち対象の画像データを取込み（ステップＳ１００）、画像計測処理を実行する（ステップＳ１０２）。シミュレーション装置１００（視覚センサシミュレータ１５０）は、画像計測処理の実行後、その計測結果を出力する（ステップＳ１０４）。このステップＳ１００〜Ｓ１０４の処理は、コントローラシミュレータ１６０での処理とは独立して実行される。
【００７６】
続いて、シミュレーション装置１００（コントローラシミュレータ１６０）は、画像計測処理の計測結果が更新されているか否かを判断する（ステップＳ１６）。すなわち、視覚センサシミュレータ１５０から新たな計測結果を受信したか否かが判断される。画像計測処理の計測結果が更新されていれば（ステップＳ１６においてＹＥＳの場合）、シミュレーション装置１００（コントローラシミュレータ１６０）は、当該更新された画像計測処理の計測結果に基づいて制御演算を実行する（ステップＳ１８）。画像計測処理の計測結果が更新されていなければ（ステップＳ１６においてＮＯの場合）、ステップＳ１８の処理はスキップされる。
【００７７】
シミュレーション装置１００（コントローラシミュレータ１６０）は、この制御演算の実行によって算出されるそれぞれの値を時間情報であるエンコーダ値に関連付けて格納する（ステップＳ２０）。
【００７８】
シミュレーション装置１００は、予め設定されているシミュレーション期間が満了したか否かを判断する（ステップＳ２２）。予め設定されているシミュレーション期間が満了していなければ（ステップＳ２２においてＮＯの場合）、ステップＳ１０以下の処理が繰返される。
【００７９】
これに対して、予め設定されているシミュレーション期間が満了していれば（ステップＳ２２においてＹＥＳの場合）、シミュレーション装置１００は、ステップＳ２０において順次格納されたトレースデータを用いて、システムモデルの挙動を再現する（ステップＳ２４）。
【００８０】
ユーザ操作に応じて、シミュレーション装置１００は、システムモデルの挙動を再現する際に用いられるワークの表示態様の設定が変更されると（ステップＳ２６においてＹＥＳの場合）、設定されたワークの表示態様に従って、システムモデルの挙動が再現される（ステップＳ２４）。
【００８１】
また、シミュレーション装置１００は、ユーザ操作に応じて、再現されるシステムモデルの挙動の時間間隔および更新間隔などを適宜変更することができる。
【００８２】
以上のような処理手順によって、システムモデルにおける処理能力（タクトタイムなど）および処理の精度などを事前に評価できる。
【００８３】
＜Ｅ．画像計測処理＞
次に、本実施の形態に係るシミュレーション装置において想定されている画像計測処理は、入力画像から、予め設定された１または複数の参照情報に対応する部分を探索する処理を含む。このような画像計測処理の一例について説明する。但し、画像計測処理としては、以下に例示するものに限らず、様々な画像計測処理が利用可能である。
【００８４】
図７は、本実施の形態に係るシミュレーション装置１００での画像計測処理の一例を説明するための模式図である。図７（Ａ）には、ワークの種別を判断するのに適した処理を示し、図７（Ｂ）には、ワークの良否を判断するのに適した処理を示す。
【００８５】
図７（Ａ）を参照して、例えば、予め設定された参照情報として、識別したい各ワークを被写体として撮像したモデル画像を複数登録しておき、搬送経路上のワークを順次撮像した入力画像と当該予め登録された複数のモデル画像との間の対応の度合い（典型的には、相関値）を順次算出する。そして、算出されたそれぞれのモデル画像との間の相関値のうち、予め設定されたしきい値を超え、かつ、最も高いものを決定し、その決定した相関値に対応するモデル画像からワークの種別を決定する。
【００８６】
このように、ワークの種別は、予め設定された複数のモデル画像（参照情報）のうち、ワークとの対応の度合いが最も確からしいものを示す情報を含む。なお、参照情報としては、サンプルとなるワークを撮像して得られる入力画像そのものを用いてもよいし、入力画像から特徴量（例えば、エッジ量など）を抽出した特徴画像を用いてもよい。
【００８７】
このような画像計測処理を採用することで、ベルトコンベア上を複数種別のワークが混在して搬送されるシステムであっても、各ワークがいずれの種別であるかを判別できる。
【００８８】
図７（Ｂ）を参照して、例えば、予め設定された参照情報として、良品のワークを被写体として撮像したモデル画像を登録しておき、搬送経路上のワークを順次撮像した入力画像と当該予め登録された複数のモデル画像との間の対応の度合い（典型的には、相関値）を算出する。そして、算出されたそれぞれのモデル画像との間の相関値が予め設定されたしきい値を超えていれば、対象のワークは良品と判断でき、そうでなければ、対象のワークは不良品であると判断できる。
【００８９】
このように、ワークの種別は、ワークと予め設定されたモデル画像（参照情報）との間の対応の度合いが予め設定された条件を満たしているか否かの情報を含む。なお、参照情報としては、サンプルとなるワークを撮像して得られる入力画像そのものを用いてもよいし、入力画像から特徴量（例えば、エッジ量など）を抽出した特徴画像を用いてもよい。
【００９０】
このような画像計測処理を採用することで、ベルトコンベア上を複数のワークが搬送されるシステムにおいて、各ワークに対する良品判断を行うことができる。
【００９１】
図８は、本実施の形態に係るシミュレーション装置１００での画像計測処理による計測結果の内容を説明するための模式図である。図８には、予め設定されたモデル画像を用いた入力画像に対するパターンマッチングの例を示す。
【００９２】
図８には、入力画像内のオブジェクトがモデル画像と対応したと判断されており、その計測結果として、（ｘ，ｙ，θ，種別／良否／相関値）が出力される。すなわち、画像計測処理の計測結果は、典型的には、（１）入力画像内の探索された部分（オブジェクト）の中心位置を示す座標値（ｘ，ｙ）、（２）入力画像内の探索された部分のモデル画像に対する回転角θ、（３）入力画像内でマッチングしたモデル画像の種別を含む。回転角θは、入力画像に含まれているいずれかのモデル画像（参照情報）に対応する部分の回転角に相当する。
【００９３】
上述したように、ワークがいずれのモデル画像と一致したのかを示す種別に代えて、特定のモデル画像との対応の度合いが予め設定された条件（しきい値）を満たしているか否か（良否）、あるいは、特定のモデル画像との対応の度合いを示す値（相関値）を含めてもよい。
【００９４】
制御装置２００での処理を模擬するコントローラシミュレータ１６０（図４および図５参照）は、視覚センサ２２０での処理を模擬する視覚センサシミュレータ１５０（図４および図５参照）からの図８に示すような計測結果を、システムモデルでの座標系の座標に変換した上で制御指令を生成する。このとき、各ワークの検出された回転角に基づいて、必要な処理（例えば、各ワークの向きを揃えるための処理）を実施するための制御指令も生成する。
【００９５】
＜Ｆ．シミュレーション結果の再現におけるワークの表示位置＞
次に、本実施の形態に係るシミュレーション装置１００によるシステムモデルの挙動を再現する際のワーク位置の算出処理について説明する。具体的には、シミュレーション装置１００（再現モジュール１７０）は、ワークを搬送するコンベアの位置または変位を示す情報に基づいて、３次元仮想空間内のワークの表示位置を順次更新する。
【００９６】
図８を参照して説明したように、画像計測処理の計測結果は、入力画像内の探索された部分（オブジェクト）の中心位置を示す座標値（ｘ，ｙ）を含む。この座標値（ｘ，ｙ）は、画像計測処理で用いられるローカル座標系での値であり、３次元仮想空間内の座標値に変換する必要がある。
【００９７】
具体的には、シミュレーション装置１００は、画像計測処理で用いられる入力画像に設定されるカメラ座標系の座標（ｘ，ｙ）を、３次元仮想空間を定義するワールド座標系の座標（Ｘ，Ｙ）に変換する変換係数Ａ〜Ｆを用いて、視覚センサシミュレータ１５０にて検出されたワークの座標値（ｘ，ｙ）からコントローラシミュレータ１６０に入力されたときの初期表示位置を以下のように算出できる。
【００９８】
ワークの初期表示位置Ｘ０＝Ａ×ｘ＋Ｂ×ｙ＋Ｃ
ワークの初期表示位置Ｘ０＝Ｄ×ｘ＋Ｅ×ｙ＋Ｆ
エンコーダ値の１パルスあたりの、コンベアのＸ軸方向の移動量ＸｄおよびＹ軸方向の移動量Ｙｄとを用いて、エンコーダ値の変位量Ｅｔにおけるワークの表示位置は、以下のように算出できる。
【００９９】
ワークの表示位置（Ｘ）＝Ｘｄ×Ｅｔ＋Ｘ０
ワークの表示位置（Ｙ）＝Ｙｄ×Ｅｔ＋Ｙ０
なお、エンコーダ値の絶対値を用いる場合には、各ワークが初期表示された時点のエンコーダ値から偏差を上述の算出式に適用することもできる。
【０１００】
シミュレーション装置１００は、このような算出式に従って、各ワークの表示位置を順次更新する。
【０１０１】
＜Ｇ．シミュレーション結果の視覚化＞
次に、本実施の形態に係るシミュレーション装置１００によるシステムモデルの挙動を視覚化する処理について説明する。本実施の形態においては、画像計測処理により探索されたワークの種別および当該ワークの向きについての情報とともに、当該ワークの挙動がシステムモデル上で再現される。
【０１０２】
図９は、本実施の形態に係るシミュレーション装置１００が提供するシミュレーション結果を再現するユーザインターフェイス画面の一例を示す図である。図９に示すユーザインターフェイス画面に関して、３次元仮想空間内のオブジェクトを任意の方向からレンダリングすることができる。すなわち、ユーザインターフェイス画面に描画される視点は、ユーザが任意に変更できる。
【０１０３】
図９に示されるシステムモデルにおいて、把持（ピック）されるワークを搬送するコンベア２３０、および、配置（プレース）されたワークを搬送するコンベア２４０が並列に配置されている。そして、コンベア２３０およびコンベア２４０に対応付けて、２つのロボット３１１および３１３が配置されている。このシステムモデルでは、紙面左側から紙面右側に向けてワーク２３２がコンベア２３０により搬送される。ワーク２３２が予め設定されたトラッキングエリア２３１またはトラッキングエリア２３３に到着すると、それぞれロボット３１１またはロボット３１３が到着したワーク２３２を把持して、コンベア２４０にワークを配置（プレース）する。ロボット３１１およびロボット３１３は、それぞれコンベア２４０に関連付けて設定されたトラッキングエリア２３５および２３７にワーク２３２を配置する。コンベア２３０を搬送されるワーク２３２はランダムな方向を向いているが、コンベア２４０に配置される場合には、予め設定された向きに揃えられるとする。
【０１０４】
また、アプリケーションの一例として、コンベア２３０上には、少なくとも２種類のワーク２３２が存在する。ロボット３１１は、ある特定の種別のワークをピック＆プレースするように制御され、ロボット３１３は、別の種別のワークをピック＆プレースするように制御される。ワークの形状などが種別に応じて異なっている場合もあり、このような場合には、各種別のワークにそれぞれ適したツールを装着したロボットを専用化して使用することが好ましいからである。
【０１０５】
ワーク２３２の各々は、ワークの種別およびワークの向きについての情報が付与される。
【０１０６】
図９に示すユーザインターフェイス画面においては、ワーク２３２の種別は、ワーク２３２の外観に付与される色を用いて識別可能になっている。すなわち、ロボット３１１がピック＆プレースするワーク２３２の外観に付与される色と、ロボット３１３がピック＆プレースするワーク２３２の外観に付与される色とは、互いに異なったものとなっている。上述したように、ワークの種別は、対象のワークがいずれのモデル画像に対応するのかといった情報の他、ワークの良否を示す場合もある。この場合においても、例えば、良品と判断されたワークと、不良品と判断されたワークとの間で、外観に付与される色を異ならせてもよい。
【０１０７】
また、ワーク２３２の向きについての情報として、計測結果に含まれる回転角を示す２つの座標軸３２０がワーク２３２に付与される。座標軸３２０は、コンベア２３０の一部に設定された撮像エリア２２１に設定される座標原点を基準とした、画像計測処理によって計測されたワーク２３２の回転角を示す。すなわち、上述の図８に示す回転角θを、システムモデルを定義する座標系に変換させて表現したものであり、一種のローカル座標に相当する。
【０１０８】
このような座標軸３２０を用いて、ワーク２３２の向きを表現することで、ユーザは、ロボットを制御する制御プログラムが正しく動いているか否かを評価することができる。また、座標軸３２０を用いてワーク２３２の向きを表現することで、３６０°の範囲の回転を表現できるので、例えば、立方体形状のワーク２３２がモデル画像の向きと一致している（回転角＝０°）のか、あるいは、全く反転している（回転角＝１８０°）であるのかを識別可能に表現することができる。
【０１０９】
図９に示すユーザインターフェイス画面においては、２つのロボット３１１および３１３の設計情報などに基づいて、ロボット３１１および３１３自体が移動し得る移動領域３１２および３１４も併せて表示されてもよい。このような移動領域３１２および３１４が表示されることで、隣接配置されるロボットの間の間隔についても、最適な設計を事前検討することができる。
【０１１０】
さらに、コンベア２３０上に設定されるトラッキングエリア２３１および２３３、ならびに、コンベア２４０上に設定されるトラッキングエリア２３５および２３７についても表示されるため、ロボット３１１および３１３の移動可能領域（ワークを把持および配置できる範囲）についても、視覚的に把握することができる。
【０１１１】
図９に示すユーザインターフェイス画面においてワークの挙動を再現する場合には、視覚センサシミュレータ１５０にていずれかのワークが計測されたタイミング（シミュレーションにおいて用いられるコンベア２３０の移動量を示すエンコーダ値を用いて特定される）でワークを出現させ、そして、エンコーダ値の更新（増加）に伴って、出現させたワークの表示位置を更新する。そして、ロボットによって把持されてコンベア２４０に配置されたワークについては、コンベア２４０の移動量を示すエンコーダ値に基づいて、その表示位置が順次更新される。ワークの表示位置がコンベア２４０の域外を示す値になると、すなわちコンベア２４０の終端に到達すると、当該ワークは非表示になる。
【０１１２】
上述の図９には、本実施の形態に係るシミュレーションを再現するユーザインターフェイス画面の一例について説明したが、ワークの種別および当該ワークの向きについての情報の表示形態については、以下に説明するように、各種の表示形態および設定方法を採用可能である。
【０１１３】
（ｇ１：ワークの種別の表示形態）
本実施の形態に係るシミュレーション装置１００（再現モジュール１７０）は、ワークの種別ごとに、色、形状、大きさの少なくとも１つを異ならせて表示する。図９には、色を用いてワークの種別を識別する表示形態を採用したが、例えば、色に加えて、あるいは、色に代えて、各種別に応じた形状のオブジェクトを用いてワークを表現してもよい。
【０１１４】
図１０は、本実施の形態に係るシミュレーション装置１００が提供するシミュレーション結果の表示態様に対するユーザ設定の一例を説明するための模式図である。例えば、図１０（Ａ）に示すような設定画面４００を提供することで、シミュレーション結果を再現する際に用いるワークの表示態様をユーザが任意に設定できるようにしてもよい。このように、シミュレーション装置１００は、ワークの種別ごとの表示に用いる色、形状、大きさの少なくとも１つの設定を受付けるユーザインターフェイスモジュール１８０（入力手段）を有していてもよい。
【０１１５】
設定画面４００には、ワークの種別ごとに表示態様を設定するプルダウンアイテム４０２が設けられており、プルダウンアイテム４０２の選択によって、プルダウンメニュー４０４が表示されるようになっている。
【０１１６】
プルダウンメニュー４０４は、対象のワークを表示する際の色を選択する色選択欄４０６と、対象のワークを表示する際の形状を選択する形状選択欄４０８とを含む。ユーザは、色選択欄４０６にリスティングされる色候補のうち任意の候補を選択するとともに、形状選択欄４０８にリスティングされる形状候補のうち任意の候補を選択する。このように、ユーザは、挙動を再現したいワークの種別ごとに、表示に用いられる色および形状を任意に選択することができる。
【０１１７】
このように色および形状が指定されることで、図１０（Ｂ）に示されるような表示態様で、シミュレーション結果が再現される。
【０１１８】
あるいは、ユーザがワークの大きさを任意に設定できるようにしてもよい。図１１は、本実施の形態に係るシミュレーション装置１００が提供するシミュレーション結果の表示態様に対するユーザ設定の別の一例を説明するための模式図である。図１１に示す設定画面４１０においては、ユーザがプルダウンアイテム４１２を選択することで、プルダウンメニュー４１４が表示されるようになっている。
【０１１９】
プルダウンメニュー４１４は、対象のワークを表示する際の色を選択する色選択欄４１６と、対象のワークの大きさ（たて幅、よこ幅、高さ）をそれぞれ設定可能な大きさ入力欄４１８とを含む。ユーザは、色選択欄４１６にリスティングされる色候補のうち任意の候補を選択するとともに、大きさ入力欄４１８に表示に用いるワークの大きさを設定する。
【０１２０】
大きさ入力欄４１８には、現実のワークの大きさをそのまま入力できるようにすることが好ましい。この場合、３次元空間内に仮想的に構築されたシステムモデルにも現実の大きさが値付けされているため、システムモデルの大きさから算出される換算パラメータに従って、ワークについても、対応する大きさで表現されることになる。
【０１２１】
このように、ワークの大きさを任意に設定できるので、シミュレーション対象のアプリケーションに応じて、シミュレーション結果をより現実に近い形で確認することができる。
【０１２２】
さらに、ユーザがワークの再現に用いる画像を任意に設定できるようにしてもよい。図１２は、本実施の形態に係るシミュレーション装置１００が提供するシミュレーション結果の表示態様に対するユーザ設定のさらに別の一例を説明するための模式図である。図１２に示す設定画面４２０においては、ユーザが設定ボタン４２２を選択することで、画像選択メニュー４２４が表示されるようになっている。
【０１２３】
画像選択メニュー４２４は、対象のワークを表示する際に使用する画像がファイル名４２６とともにリスト表示されており、ユーザは、リスティングされるファイル名４２６のうち任意の画像ファイルを選択する。ユーザがＯＫボタン４２８を選択すると、先に選択されている画像ファイルの選択が有効化される。これによって、各種別のワークが、指定された画像ファイルに含まれる画像を用いて再現されることになる。
【０１２４】
このように、ワークの表示に用いる画像を任意に設定できるので、シミュレーション対象のアプリケーションに応じて、シミュレーション結果をより現実に近い形で確認することができる。
【０１２５】
なお、シミュレーション結果の再現において、各ワークに付与された種別を示す情報がいずれの種別を示すのかを一見して把握できることが好ましい。
【０１２６】
図１３は、本実施の形態に係るシミュレーション装置１００が提供するシミュレーション結果において種別の確認を支援するためのユーザインターフェイス画面の一例を示す図である。
【０１２７】
図１３（Ａ）に示すユーザインターフェイス画面においては、ワーク２３２に付与された色がいずれの種別を意味するのかを示す凡例３４０が併せて表示されるようになっている。ユーザは、凡例３４０に表示される内容を参照することで、ワーク２３２がいずれの種別であるかを一見して把握することができる。
【０１２８】
図１３（Ｂ）に示すユーザインターフェイス画面においては、各ワーク２３２に関連付けて、「種別１」、「種別２」といったラベル３４２が付与される。ユーザは、ラベル３４２の内容を参照することで、ワーク２３２がいずれの種別であるかを一見して把握することができる。
【０１２９】
図１３に示す表示例に限定されることなく、ワークの種別をユーザが一見して把握できる支援表示を採用することができる。上述した表示例のうち複数を適宜組合せるようにしてもよい。
【０１３０】
（ｇ２：ワークの向きの表示形態）
本実施の形態に係るシミュレーション装置１００（再現モジュール１７０）は、計測結果に含まれる回転角に基づいて、ワークの向きについての情報を生成する。図９には、ワークの向きを示すオブジェクトとして、２つの座標軸３２０を用いてワークの向きを示す表示形態を採用したが、別の表示態様を採用してもよい。
【０１３１】
図１４は、本実施の形態に係るシミュレーション装置１００が提供するシミュレーション結果におけるワークの向きについての表示形態の一例を示す図である。
【０１３２】
図１４（Ａ）に示す表示例においては、基準方向を示すマーク３６０がワーク２３２に付与されている。基準方向としては、例えば、対応するモデル画像に対して回転角がゼロになる方向として定めることができる。図８を参照したように、予め設定されたモデル画像と一致する方向が基準方向として設定され、設定された基準方向に対応するワーク２３２中の部分にマーク３６０が関連付けられる。このようなマーク３６０によって、ユーザは、それぞれのワーク２３２がいずれの方向を向いているのかを一見して把握することができる。
【０１３３】
図１４（Ｂ）に示す表示例においては、座標軸３２０に加えて、ワーク２３２の回転角を示すラベル３６２が付与される。ラベル３６２の各々は、対応するワーク２３２が向いている方向の角度を示すことになる。図１４（Ｂ）には、座標軸３２０とラベル３６２とを付加する表示例を示したが、ラベル３６２のみを表示するようにしてもよい。
【０１３４】
このように、ワークの向きを示すオブジェクト（座標軸３２０、マーク３６０またはラベル３６２）をワークに付加して表示するようにしてもよい。
【０１３５】
あるいは、表示に用いるワークの形状をワークの向きに関連付けてもよい。図１５は、本実施の形態に係るシミュレーション装置１００が提供するシミュレーション結果におけるワークの向きについての表示形態の別の一例を示す図である。
【０１３６】
図１５（Ａ）に示す表示例においては、ワーク２３２の基準方向に対応する領域が他の領域とは異なる表示態様になっている。より具体的には、ワーク２３２の基準方向に対応する領域（図１５（Ａ）に示す表示例では、角柱の一辺）３６４に他の領域とは異なる色が付与されている。この領域３６４の表示態様によって、ユーザは、それぞれのワーク２３２がいずれの方向を向いているのかを一見して把握することができる。
【０１３７】
図１５（Ａ）においては、角柱の一辺の表示態様を他の領域とは異ならせているが、これに限らず、例えば、角柱の特定の面について、表示態様を他の領域とは異ならせているようにしてもよい。
【０１３８】
図１５（Ｂ）に示す表示例においては、ワーク２３２の基準方向に対応する領域が他の領域とは異なる形状になっている。より具体的には、ワーク２３２の基準方向に対応する領域（図１５（Ｂ）に示す表示例では、角柱の一隅）３６６が「面取り」されている。この領域３６６の形状によって、ユーザは、それぞれのワーク２３２がいずれの方向を向いているのかを一見して把握することができる。なお、面取りされた領域３６６の表面の色を他の領域とは異ならせるようにしてもよい。
【０１３９】
このように、ワークの向きに対応付けて、再現するワークの外観に特徴（領域３６４または領域３６６）を付加して表示してもよい。
【０１４０】
図１４および図１５に示す表示例に限定されることなく、ワークの向きをユーザが一見して把握できる任意の表示態様を採用することができる。上述した表示例のうち複数を適宜組合せるようにしてもよい。
【０１４１】
（ｇ３：付加的なオブジェクト）
上述の説明においては、画像計測処理によって入力画像から探索されたワークの表示態様について説明したが、ワークに加えて、付加的なオブジェクトを表示することで、より現実のアプリケーションに近いシミュレーションを行うことができる。以下では、付加的なオブジェクトとともに、シミュレーション結果を再現する一例について説明する。
【０１４２】
例えば、ピック＆プレース動作のアプリケーションとして、箱詰め作業のような、１または複数のワークをケースに配置するような処理が想定される。この場合には、ワークを箱詰めする先の箱についても、３次元仮想空間内に表示することが好ましい。さらに、このような箱についても、コンベアによって搬送されることになるので、このような挙動についても視覚化することで、コンベアおよびロボットが設計通りに動作しているか否かを、事前に評価することができる。
【０１４３】
図１６は、本実施の形態に係るシミュレーション装置１００が提供するシミュレーション結果を再現するユーザインターフェイス画面の別の一例を示す図である。図１６を参照して、コンベア２４０上には、ユーザが予め設定した間隔に沿って、複数の基準線２６０が表示される。表示される基準線２６０の間隔は、例えば、要求される仕様（タクトタイムなど）に基づいて予め設定される。この設定に基づいて、シミュレーション結果を再現する際に、コンベア２４０上に基準線２６０が重ねて表示される。
【０１４４】
基準線２６０は、例えば、ピック＆プレース動作においてワークの配置先を定める基準を示すものとして用いることができる。ユーザは、コンベア２４０上の各ワーク２３２が基準線２６０に対応付けられた位置に正しく配置されているか否かを評価することができる。
【０１４５】
基準線２６０に代えて、あるいは、基準線２６０とともに、現実のアプリケーションで用いる箱に相当するオブジェクト２５０を表示するようにしてもよい。オブジェクト２５０の表示位置または表示間隔についても、基準線２６０と同様に、ユーザが予め設定することができる。さらに、オブジェクト２５０の形状などについても、ユーザが予め任意に設定することができる。上述の図１０〜図１２を参照して説明したワークの外観の設定方法と同様に、オブジェクト２５０についても任意の形状・色・大きさを設定することができる。さらに、オブジェクト２５０とワーク２３２との位置関係を一見して把握できるように、オブジェクト２５０を透明または半透明で表示してもよい。
【０１４６】
図１６に示すように、ワーク２３２に加えて、付加的なオブジェクト２５０および／または基準線２６０を仮想的に表示することで、ワークに対する処理が設計どおりに動作しているか否かを視覚的に評価することができる。
【０１４７】
＜Ｈ．変形例＞
上述の実施の形態においては、典型例として、搬送経路上を搬送される対象物を対象にした場合について例示したが、以下のような他のシステムにも適用できる。
【０１４８】
例えば、ワークに対して複数の工程がなされる場合には、複数のロボットが並び連携して必要な動作を行う構成、あるいは、人間とロボットとが連携して必要な動作を行う構成が採用される。このような構成において、工程間でワークを受け渡しするために、工程の上流側のロボットまたは人と、工程の下流側のロボットとの間に共有作業領域が設けられる。共有作業領域には、コンベアのような搬送機ではなく、単なるワークをバッファリングするような機能をもつことになる。このような共有作業領域に視覚センサの撮像エリアを設定したようなシステムについても、上述したような処理手順に従って、３次元仮想空間内に対象となるシステムを仮想的に構築することで、ワークに対する処理が設計どおりに動作しているか否かを視覚的に評価することができる。
【０１４９】
＜Ｉ．利点＞
本実施の形態に係るシミュレーション装置１００によれば、ワークを処理するようなシステムについて、制御指令に従ってロボットなどの処理装置が処理するワークの位置および向きの両方を確認しつつ、システムの全体の挙動を評価できるので、検討対象のシステムの妥当性を一見して把握することができる。
【０１５０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１５１】
１，２  コンベアトラッキングシステム、１００  シミュレーション装置、１０２  プロセッサ、１０４  主メモリ、１０６  入力部、１０８  表示部、１１０  ネットワークインターフェイス、１１２  光学ドライブ、１１４  光学ディスク、１１６  通信インターフェイス、１１８  内部バス、１２０  ハードディスク、１２２  ＯＳ、１２４  シミュレーションプログラム、１３０  計測結果格納部、１４０  画像データ群、１５０  視覚センサシミュレータ、１５２  設定パラメータ、１６０  コントローラシミュレータ、１６２  制御プログラム、１７０  再現モジュール、１７１  ワーク表示態様設定モジュール、１７２  ３次元設計データ、１７４  ワーク表示態様設定パラメータ、１８０  ユーザインターフェイスモジュール、１８２  モデル構築モジュール、１９０  エンコーダエミュレータ、２００  制御装置、２０２  ネットワーク、２１０，３１１，３１３  ロボット、２２０  視覚センサ、２２１  撮像エリア、２２２  撮像部、２３０，２４０  コンベア、２３１，２３３，２３５  トラッキングエリア、２３２  ワーク、２３４，２４４  駆動ローラ、２３６，２４６  エンコーダ、２５０  オブジェクト、２６０  基準線、４００，４１０，４２０  設定画面、４０２，４１２  プルダウンアイテム、４０４，４１４  プルダウンメニュー、４０６，４１６  色選択欄、４０８  形状選択欄、４１８  大きさ入力欄、４２２  設定ボタン、４２４  画像選択メニュー。
【図１】
0006540472.tif 000002
【図２】
0006540472.tif 000003
【図３】
0006540472.tif 000004
【図４】
0006540472.tif 000005
【図５】
0006540472.tif 000006
【図６】
0006540472.tif 000007
【図７】
0006540472.tif 000008
【図８】
0006540472.tif 000009
【図９】
0006540472.tif 000010
【図１０】
0006540472.tif 000011
【図１１】
0006540472.tif 000012
【図１２】
0006540472.tif 000013
【図１３】
0006540472.tif 000014
【図１４】
0006540472.tif 000015
【図１５】
0006540472.tif 000016
【図１６】
0006540472.tif 000017