(57)【要約】【課題】ワークに対して何らかの外力が与えられるようなシステムについても総合的に挙動をシミュレーションできる構成を提供する。【解決手段】シミュレーション装置は、仮想空間に配置された１または複数のワークの挙動を算出する第１のシミュレータと、仮想空間の任意の視点位置に配置された仮想カメラで仮想空間を撮像することで生成される仮想画像に対して、計測処理を実行する計測処理部と、計測処理部によるワークの計測結果に応じて生成される動作指令に基づいて、仮想空間に配置されたワークを搬送するロボットの挙動を算出する第２のシミュレータと、仮想空間をビジュアル化した画像を生成する画像生成部とを含む。【選択図】図１
2020011340.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間に配置された１または複数のワークの挙動を算出する第１のシミュレータと、
前記仮想空間の任意の視点位置に配置された仮想カメラで前記仮想空間を撮像することで生成される仮想画像に対して、計測処理を実行する計測処理部と、
前記計測処理部によるワークの計測結果に応じて生成される動作指令に基づいて、前記仮想空間に配置された前記ワークを搬送するロボットの挙動を算出する第２のシミュレータと、
前記仮想空間をビジュアル化した画像を生成する画像生成部とを備える、シミュレーション装置。
【請求項２】
前記第１のシミュレータが挙動を算出する前記１または複数のワークに対して外力を与えるワーク搬送装置の挙動を算出する第３のシミュレータをさらに備える、請求項１に記載のシミュレーション装置。
【請求項３】
前記仮想空間に配置される前記仮想カメラを管理するとともに、前記仮想カメラの視点位置および視野範囲に応じて、前記仮想画像を生成する仮想撮像部をさらに備える、請求項１または２に記載のシミュレーション装置。
【請求項４】
前記第１のシミュレータは、所定のタイムステップ毎に各ワークの位置および姿勢を算出して更新する、請求項１〜３のいずれか１項に記載のシミュレーション装置。
【請求項５】
前記第１のシミュレータは、任意の時間における任意のワークの位置または特性に対する変更操作に応答して、変更後の位置または特性に従って、前記１または複数のワークの挙動の算出を継続する、請求項１〜４のいずれか１項に記載のシミュレーション装置。
【請求項６】
コンピュータにシミュレーションを実行させるためのシミュレーションプログラムであって、前記コンピュータに
仮想空間に配置された１または複数のワークの挙動を算出するステップと、
前記仮想空間の任意の視点位置に配置された仮想カメラで前記仮想空間を撮像することで生成される仮想画像に対して、計測処理を実行するステップと、
前記計測処理の実行により得られる計測結果に応じて生成される動作指令に基づいて、前記仮想空間に配置された前記ワークを搬送するロボットの挙動を算出するステップと、
前記仮想空間をビジュアル化した画像を生成するステップとを実行させる、シミュレーションプログラム。
【請求項７】
コンピュータにおいて実行されるシミュレーション方法であって、前記コンピュータによって実行される、
仮想空間に配置された１または複数のワークの挙動を算出するステップと、
前記仮想空間の任意の視点位置に配置された仮想カメラで前記仮想空間を撮像することで生成される仮想画像に対して、計測処理を実行するステップと、
前記計測処理の実行により得られる計測結果に応じて生成される動作指令に基づいて、前記仮想空間に配置された前記ワークを搬送するロボットの挙動を算出するステップと、
前記仮想空間をビジュアル化した画像を生成するステップとを備える、シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、仮想空間に配置されたワークの挙動を推定できるシミュレーション装置、シミュレーションプログラムおよびシミュレーション方法に関する。
【背景技術】
【０００２】
コンピュータを用いたシミュレーションは様々な技術分野に応用されている。このようなシミュレーションを用いることで、現実の装置が存在しない状態であっても、様々な事前検討が可能となる。このようなシミュレーションをＦＡ（Factory Automation）に利用した例として、例えば、特開２０１６−０４２３７８号公報（特許文献１）は、仮想撮影部に対応する実空間の視覚センサを含めた機械システムの統合シミュレーションを開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−０４２３７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の特許文献１に開示される統合シミュレーションは、仮想コンベア上に配置される仮想ワークを仮想視覚センサにより仮想的に撮像するものである。仮想ワークの位置は、仮想コンベアの動きにより一意に決定される。現実には、ワークがコンベアにより搬送されるシステムだけではなく、何らかのアクチュエータなどによってワークの位置が変更されるようなシステムも存在する。特許文献１は、このようなシステムについてのシミュレーションについて何ら開示していない。
【０００５】
本技術は、ワークに対して何らかの外力が与えられるようなシステムについても総合的に挙動をシミュレーションできる構成を提供することを一つの目的とする。
【課題を解決するための手段】
【０００６】
一つの実施の形態に係るシミュレーション装置は、仮想空間に配置された１または複数のワークの挙動を算出する第１のシミュレータと、仮想空間の任意の視点位置に配置された仮想カメラで仮想空間を撮像することで生成される仮想画像に対して、計測処理を実行する計測処理部と、計測処理部によるワークの計測結果に応じて生成される動作指令に基づいて、仮想空間に配置されたワークを搬送するロボットの挙動を算出する第２のシミュレータと、仮想空間をビジュアル化した画像を生成する画像生成部とを含む。
【０００７】
この開示によれば、仮想空間に配置された１または複数のワークの挙動を算出する処理と、仮想画像に対して計測処理を実行する処理と、ワークの計測結果に応じて生成される動作指令に基づいて仮想空間に配置されたワークを搬送するロボットの挙動を算出する処理とを互いに連係させたシミュレーションを実現できる。これによって、各ワークの挙動を再現したシミュレーションを実現できる。
【０００８】
上述の開示において、シミュレーション装置は、第１のシミュレータが挙動を算出する１または複数のワークに対して外力を与えるワーク搬送装置の挙動を算出する第３のシミュレータをさらに含んでいてもよい。この開示によれば、各ワークに与える外力を決定するワーク搬送装置の挙動についても再現できるので、各ワークの挙動をより正確に再現できる。
【０００９】
上述の開示において、シミュレーション装置は、仮想空間に配置される仮想カメラを管理するとともに、仮想カメラの視点位置および視野範囲に応じて、仮想画像を生成する仮想撮像部をさらに含んでいてもよい。この開示によれば、仮想カメラを仮想空間の任意の位置に配置した上で、画像計測を再現できるので、仮想カメラの位置を異ならせた評価も実現できる。
【００１０】
上述の開示において、第１のシミュレータは、所定のタイムステップ毎に各ワークの位置および姿勢を算出して更新するようにしてもよい。この開示によれば、タイムステップ毎にワークの挙動を再現できる。
【００１１】
上述の開示において、第１のシミュレータは、任意の時間における任意のワークの位置または特性に対する変更操作に応答して、変更後の位置または特性に従って、１または複数のワークの挙動の算出を継続するようにしてもよい。この開示によれば、特定のワークの挙動を異ならせるなどの任意の試行錯誤を容易に実現できる。
【００１２】
本技術の別の実施の形態によれば、コンピュータにシミュレーションを実行させるためのシミュレーションプログラムが提供される。シミュレーションプログラムは、コンピュータに、仮想空間に配置された１または複数のワークの挙動を算出するステップと、仮想空間の任意の視点位置に配置された仮想カメラで仮想空間を撮像することで生成される仮想画像に対して、計測処理を実行するステップと、計測処理の実行により得られる計測結果に応じて生成される動作指令に基づいて、仮想空間に配置されたワークを搬送するロボットの挙動を算出するステップと、仮想空間をビジュアル化した画像を生成するステップとを実行させる。
【００１３】
この開示によれば、仮想空間に配置された１または複数のワークの挙動を算出する処理と、仮想画像に対して計測処理を実行する処理と、ワークの計測結果に応じて生成される動作指令に基づいて仮想空間に配置されたワークを搬送するロボットの挙動を算出する処理とを互いに連係させたシミュレーションを実現できる。これによって、各ワークの挙動を再現したシミュレーションを実現できる。
【００１４】
本技術のさらに別の実施の形態によれば、コンピュータにおいて実行されるシミュレーション方法が提供される。シミュレーション方法は、コンピュータによって実行される、仮想空間に配置された１または複数のワークの挙動を算出するステップと、仮想空間の任意の視点位置に配置された仮想カメラで仮想空間を撮像することで生成される仮想画像に対して、計測処理を実行するステップと、計測処理の実行により得られる計測結果に応じて生成される動作指令に基づいて、仮想空間に配置されたワークを搬送するロボットの挙動を算出するステップと、仮想空間をビジュアル化した画像を生成するステップとを含む。
【００１５】
この開示によれば、仮想空間に配置された１または複数のワークの挙動を算出する処理と、仮想画像に対して計測処理を実行する処理と、ワークの計測結果に応じて生成される動作指令に基づいて仮想空間に配置されたワークを搬送するロボットの挙動を算出する処理とを互いに連係させたシミュレーションを実現できる。これによって、各ワークの挙動を再現したシミュレーションを実現できる。
【発明の効果】
【００１６】
本技術によれば、ワークに対して何らかの外力が与えられるようなシステムについても総合的に挙動をシミュレーションできる構成を提供できる。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態に係るシミュレーション装置の適用例を示す模式図である。
【図２】本実施の形態に係るシミュレーション装置によるシミュレーションの対象となるワーク搬送システムの一例を示す外観図である。
【図３】図２に示すワーク搬送システムを実現するための制御機能を説明する模式図である。
【図４】本実施の形態に係るシミュレーション装置を実現するためのハードウェア構成の一例を示す模式図である。
【図５】本実施の形態に係るシミュレーション装置を実現するための機能構成の一例を示す模式図である。
【図６】本実施の形態に係るシミュレーション装置による実行されるシミュレーション結果をビジュアル化した仮想空間を示す表示画面の一例を示す図である。
【図７】本実施の形態に係るシミュレーション装置による実行されるシミュレーション結果のうちワークを示すオブジェクトの時間的変化の一例を示す図である。
【図８】本実施の形態に係るシミュレーション装置による実行されるシミュレーション結果のうち画像計測に係る表示画面の一例を示す図である。
【図９】本実施の形態に係るシミュレーション装置による実行される物理シミュレーションの一例を示す図である。
【図１０】本実施の形態に係るシミュレーション装置において実行される処理手順を示すフローチャートである。
【図１１】本実施の形態に係るシミュレーション装置を用いたパラメータ調整に係る処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１８】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１９】
＜Ａ．適用例＞
まず、本発明が適用される場面の一例について説明する。
【００２０】
本実施の形態に係るシミュレーション装置１は、ワークに対して何らかの外力が与えられるようなシステムについても総合的に挙動をシミュレーションできる。典型的には、後述するようなワーク搬送装置により外力を与えることでワークを搬送するとともに、搬送されたワークを撮像して得られる仮想画像に対して計測処理を実行し、その計測処理の結果に基づいて、ロボットでワークをピックするようなアプリケーションに適用可能である。
【００２１】
図１は、本実施の形態に係るシミュレーション装置１の適用例を示す模式図である。図１を参照して、シミュレーション装置１は、仮想空間および仮想空間に配置されたオブジェクトを規定する仮想空間情報１０５を含む。仮想空間における各オブジェクトの挙動が算出されることで、仮想空間情報１０５の内容は適宜更新される。
【００２２】
シミュレーション装置１は、仮想空間に配置された１または複数のワークの挙動を算出するワーク挙動シミュレータ１５４を含む。ワーク挙動シミュレータ１５４は第１のシミュレータに相当する。ワーク挙動シミュレータ１５４は、ワークパラメータに基づいて、仮想空間に存在する各ワークの挙動を推定する。
【００２３】
シミュレーション装置１は、仮想空間の任意の視点位置に配置された仮想カメラで仮想空間を撮像することで生成される仮想画像に対して、計測処理を実行する画像計測モジュール１５８を含む。画像計測モジュール１５８は計測処理部に相当する。すなわち、画像計測モジュール１５８は、仮想空間を対象とする一種の視覚センサである。
【００２４】
シミュレーション装置１は、画像計測モジュール１５８によるワークの計測結果に応じて生成される動作指令に基づいて、仮想空間に配置されたワークを搬送するロボットの挙動を算出するロボットシミュレータ１６０を含む。ロボットシミュレータ１６０は、第２のシミュレータに相当する。
【００２５】
シミュレーション装置１は、仮想空間をビジュアル化した画像を生成するビジュアライザ１６４を含む。ビジュアライザ１６４は、画像生成部に相当する。
【００２６】
これらのコンポーネントおよびモジュールが互いに連携することで、現実のシステムが存在しなくても、現実のシステムでワークを処理したときに生じるであろうワークおよび各装置の挙動を正確に推定できる。
【００２７】
＜Ｂ．対象システム例＞
次に、本実施の形態に係るシミュレーション装置１によるシミュレーションの対象となるシステムの一例について説明する。
【００２８】
図２は、本実施の形態に係るシミュレーション装置１によるシミュレーションの対象となるワーク搬送システム２の一例を示す外観図である。図２を参照して、ワーク搬送システム２は、ワーク搬送装置１０と、カメラ２２と接続された画像計測装置２０と、ロボット３０と、コンベア５０とを含む。
【００２９】
ワーク搬送装置１０は、ワーク供給部１２と、ワーク搬送部１４とを含む。ワーク供給部１２は、複数のワーク４を収容部に保持するとともに、定期的または何らかのイベントに応じて振動することで、収容部に保持されているワークの一部または全部をワーク搬送部１４の搬送面１６に供給する。ワーク搬送部１４についても、定期的または何らかのイベントに応じて振動可能になっており、搬送面１６上に配置されたワーク４に対して外力を与えることで、各ワーク４の配置位置および姿勢を変更させる。
【００３０】
カメラ２２は、ワーク搬送部１４の搬送面１６の少なくとも一部が視野に入るように配置されている。画像計測装置２０は、カメラ２２の撮像により取得される画像に対する計測処理を実行することで、搬送面１６上に配置されたワーク４の位置および姿勢を計測する。ワーク搬送部１４が定期的またはイベントに応じて振動することで、各ワーク４の位置および姿勢を適宜変更し、画像計測装置２０によりワーク４が適切に計測される確率を高める。
【００３１】
ロボット３０は、画像計測装置２０によるワーク４の計測結果（位置および姿勢）に基づいて、計測されたいずれかのワーク４をアーム先端に配置された吸着部３２により吸着する。そして、ロボット３０は、吸着（ピック）したワーク４をコンベア５０まで搬送し、コンベア５０の所定位置に配置する（プレイス）。ワーク搬送システム２におけるロボット３０の動作は、ピックアンドプレイス動作とも称される。
【００３２】
コンベア５０の搬送面は、基本的には、一定速度で移動しており、搬送面に配置されたワーク４は一定速度で下流側の処理工程へ搬送される。
【００３３】
図３は、図２に示すワーク搬送システム２を実現するための制御機能を説明する模式図である。図３を参照して、ワーク搬送システム２は、カメラ２２に接続された画像計測装置２０を有している。画像計測装置２０は、予め設定されるワークモデル情報２４に基づいて、カメラ２２により撮像された画像に対して計測処理を実行することで、ワーク計測結果（各ワークの位置および姿勢の計測結果を含む）を出力する。
【００３４】
ワーク搬送システム２は、ロボットコントローラ４０をさらに有している。ロボットコントローラ４０は、画像計測装置２０からのワーク計測結果に基づいて、ピックすべきワークの位置および姿勢を取得し、当該取得した情報に基づいて、ロボット３０に対して動作指令を与える。
【００３５】
ワーク搬送システム２は、フィーダコントローラ１８をさらに有している。フィーダコントローラ１８は、定期的または何らかのイベントに応じて、振動発生アクチュエータであるワーク供給部１２を駆動する。同様に、フィーダコントローラ１８は、定期的または何らかのイベントに応じて、振動発生アクチュエータであるワーク搬送部１４を駆動する。
【００３６】
以下では、典型例として、本実施の形態に係るシミュレーション装置１が、図２および図３に示すワーク搬送システム２の各装置およびワーク４の動作や挙動を高精度に再現する場合を説明する。
【００３７】
＜Ｃ．ハードウェア構成＞
次に、本実施の形態に係るシミュレーション装置１のハードウェア構成の一例について説明する。
【００３８】
図４は、本実施の形態に係るシミュレーション装置１を実現するためのハードウェア構成の一例を示す模式図である。シミュレーション装置１は、図４に示すような情報処理装置１００が必要なプログラムを実行することで実現される。
【００３９】
情報処理装置１００は、主たるコンポーネントとして、オペレーティングシステム（ＯＳ：Operating System）および後述するような各種プログラムを実行するプロセッサ１０２と、プロセッサ１０２でのプログラム実行に必要なデータを格納するための作業領域を提供する主メモリ１０４と、キーボードやマウスなどのユーザ操作を受付ける操作ユニット１０６（操作受付部）と、ディスプレイ、各種インジケータ、プリンタなどの処理結果を出力する出力ユニット１０８と、ネットワークに接続されるネットワークインターフェイス１１０と、光学ドライブ１１２と、外部装置と通信するローカル通信インターフェイス１１６と、ストレージ１２０とを含む。これらのコンポーネントは、内部バス１１８などを介してデータ通信可能に接続される。
【００４０】
情報処理装置１００は、光学ドライブ１１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する光学記録媒体（例えば、ＤＶＤ（Digital Versatile Disc）など）のコンピュータ読取可能な記録媒体１１４から、各種プログラムを読取ってストレージ１２０などにインストールする。
【００４１】
情報処理装置１００で実行される各種プログラムは、コンピュータ読取可能な記録媒体１１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係る機能安全の評価に係るプログラムは、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００４２】
ストレージ１２０は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Flash Solid State Drive）などで構成され、プロセッサ１０２で実行されるプログラムを格納する。具体的には、ストレージ１２０は、本実施の形態に係るシミュレーションを実現するためのシミュレーションプログラムとして、物理シミュレーションプログラム１２２と、画像計測プログラム１２６と、ロボットシミュレーションプログラム１３０と、統合プログラム１３４とを含む。
【００４３】
物理シミュレーションプログラム１２２は、ワーク搬送装置１０の挙動およびワーク搬送装置１０からの影響を受けたワーク４の挙動を算出する。物理シミュレーションプログラム１２２には、ワーク搬送装置１０の挙動を規定するパラメータ、および、ワーク４の重さや形状などを規定するパラメータを含む、物理シミュレーションパラメータ１２４が与えられる。物理シミュレーションパラメータ１２４の値は、ユーザ操作や統合プログラム１３４などにより適宜変更されるようにしてもよい。
【００４４】
物理シミュレーションパラメータ１２４として、ワーク搬送装置１０およびワーク４のＣＡＤデータを用いてもよい。ＣＡＤデータを用いることで、現実の装置の挙動をより正確に再現できる。
【００４５】
画像計測プログラム１２６は、物理シミュレーションプログラム１２２により算出される各ワーク４の位置および姿勢を反映する仮想撮像された画像に対して、画像計測装置２０と実質的に同一の計測処理を実行する。画像計測プログラム１２６には、画像計測装置２０における計測処理に必要なパラメータを含む画像計測パラメータ１２８が与えられる。
【００４６】
ロボットシミュレーションプログラム１３０は、ロボット３０の挙動を再現するシミュレータとして機能する。ロボットシミュレーションプログラム１３０は、画像計測プログラム１２６の実行により算出される計測結果に基づいて、ロボット３０によるワーク４のピックアンドプレイス動作を再現する。ロボットシミュレーションプログラム１３０には、ロボット３０の挙動の再現に必要なパラメータを含むロボットパラメータ１３２が与えられる。
【００４７】
統合プログラム１３４は、物理シミュレーションプログラム１２２と、画像計測プログラム１２６と、ロボットシミュレーションプログラム１３０とを互いに連携させるための処理を実行する。具体的には、統合プログラム１３４は、典型的には主メモリ１０４上に、仮想空間のオブジェクトの状態を記述する仮想空間情報１０５を生成および更新する。物理シミュレーションプログラム１２２、画像計測プログラム１２６、および、ロボットシミュレーションプログラム１３０は、仮想空間情報１０５を参照して各シミュレーションの処理を実行するとともに、その実行結果のうち必要な情報を仮想空間情報１０５に反映する。統合プログラム１３４が提供する機能により、ワーク搬送装置１０と、画像計測装置２０と、ロボット３０とからなるワーク搬送システム２による挙動および処理を再現する。
【００４８】
図４には、単一の情報処理装置１００でシミュレーション装置１を実現する例を示したが、複数の情報処理装置を連係させてシミュレーション装置１を実現するようにしてもよい。この場合には、シミュレーション装置１を実現するために必要な処理の一部を情報処理装置１００で実行させるとともに、残りの処理をネットワーク上のサーバ（クラウド）などで実行するようにしてもよい。
【００４９】
図４には、プロセッサ１０２が１または複数のプログラムを実行することで、シミュレーション装置１が実現される例を示すが、シミュレーション装置１を実現するために必要な処理および機能の一部を、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）などを用いて実装するようにしてもよい。
【００５０】
＜Ｄ．機能構成＞
次に、本実施の形態に係るシミュレーション装置１の機能構成の一例について説明する。図５は、本実施の形態に係るシミュレーション装置１を実現するための機能構成の一例を示す模式図である。図５に示す各機能構成は、典型的には、情報処理装置１００のプロセッサ１０２がプログラム（物理シミュレーションプログラム１２２、画像計測プログラム１２６、ロボットシミュレーションプログラム１３０、および、統合プログラム１３４など）を実行することで実現される。
【００５１】
図５を参照して、シミュレーション装置１は、その機能構成として、仮想空間情報管理モジュール１５０と、ワーク搬送シミュレータ１５２と、ワーク挙動シミュレータ１５４と、仮想撮像モジュール１５６と、画像計測モジュール１５８と、ロボットシミュレータ１６０と、ワークトラッキングモジュール１６２と、ビジュアライザ１６４とを含む。
【００５２】
仮想空間情報管理モジュール１５０は、統合プログラム１３４（図４）が実行されることで実現され、シミュレーションが実施される仮想空間の各オブジェクトの位置および姿勢などの情報を規定する仮想空間情報１０５を管理する。
【００５３】
ワーク搬送シミュレータ１５２は、ワーク挙動シミュレータ１５４が挙動を算出する１または複数のワーク４に対して外力を与えるワーク搬送装置１０の挙動を算出する第３のシミュレータに相当する。ワーク搬送シミュレータ１５２は、物理シミュレーションプログラム１２２が実行されることで実現され、物理シミュレーションパラメータ１２４に従って、ワーク搬送装置１０の挙動を再現する。より具体的には、ワーク搬送シミュレータ１５２は、ワーク搬送装置１０を構成する、ワーク供給部１２およびワーク搬送部１４の挙動をそれぞれ再現する。ワーク搬送シミュレータ１５２により算出されるワーク搬送装置１０の挙動の情報は、仮想空間情報１０５に反映される。
【００５４】
ワーク挙動シミュレータ１５４は、仮想空間に配置された１または複数のワーク４の挙動を算出する第１のシミュレータに相当する。具体的には、ワーク挙動シミュレータ１５４は、物理シミュレーションプログラム１２２が実行されることで実現され、ワーク搬送シミュレータ１５２によるワーク搬送装置１０の挙動の情報に応じて、所定のタイムステップ毎に仮想空間に配置される各ワーク４の位置および姿勢を算出して更新する。ワーク挙動シミュレータ１５４は、各ワーク４の位置および姿勢をタイムステップ毎に算出するにあたって、各ワーク４の重量、位置、姿勢、移動速度、移動方向などがタイムステップ毎に算出される。各ワーク４の位置および姿勢は、ユーザなどから任意に設定されるワークパラメータに基づいて算出される。ワーク挙動シミュレータ１５４により算出されるワーク４の位置および姿勢の情報は、仮想空間情報１０５に反映される。
【００５５】
仮想撮像モジュール１５６は、仮想空間に配置される仮想カメラを管理するとともに、仮想カメラの視点位置および視野範囲に応じて、仮想画像を生成する仮想撮像部に相当する。仮想撮像モジュール１５６は、画像計測プログラム１２６が実行されることで実現され、仮想空間の任意の視点位置に配置された仮想カメラで仮想空間を撮像することで、仮想画像を生成する。ユーザが任意の位置に仮想カメラを配置でき、かつ、仮想カメラの視野範囲についても任意に変更できる。
【００５６】
画像計測モジュール１５８は、仮想空間の任意の視点位置に配置された仮想カメラで仮想空間を撮像することで生成される仮想画像に対して、計測処理を実行する計測処理部に相当する。画像計測モジュール１５８は、画像計測プログラム１２６が実行されることで実現され、仮想撮像モジュール１５６からの仮想画像に対して、画像計測パラメータ１２８により規定される計測処理が実行され、計測結果が出力される。
【００５７】
ロボットシミュレータ１６０は、計測処理部によるワークの計測結果に応じて生成される動作指令に基づいて、仮想空間に配置されたワーク４を搬送するロボット３０の挙動を算出する第２のシミュレータに相当する。より具体的には、ロボットシミュレータ１６０は、ロボットシミュレーションプログラム１３０が実行されることで実現され、画像計測モジュール１５８からの計測結果に応じて、ロボット３０の挙動を再現する。ロボットシミュレータ１６０により算出されるロボット３０の挙動の情報は、仮想空間情報１０５に反映される。
【００５８】
ワークトラッキングモジュール１６２は、ロボットシミュレーションプログラム１３０が実行されることで実現され、ロボットシミュレータ１６０からのロボット３０の挙動情報に基づいて、仮想空間においてロボット３０によりピックアンドプレイスされるワーク４をトラッキングする。ワークトラッキングモジュール１６２によりトラッキングされるワーク４の位置情報（ワーク位置）は、仮想空間情報１０５に反映される。
【００５９】
ビジュアライザ１６４は、仮想空間をビジュアル化した画像を生成する画像生成部に相当する。ビジュアライザ１６４は、仮想空間情報管理モジュール１５０が管理する仮想空間情報１０５に基づいて、仮想空間の各オブジェクト（ワーク搬送装置１０、ロボット３０、ワーク４など）の挙動をビジュアル化する。
【００６０】
図５に示すような各機能が互いに連携することで、シミュレーション対象のシステム（例えば、ワーク搬送システム２）の挙動を高精度に再現できる。
【００６１】
＜Ｅ．シミュレーション例＞
次に、本実施の形態に係るシミュレーション装置１により提供されるシミュレーションの一例について説明する。
【００６２】
図６は、本実施の形態に係るシミュレーション装置１による実行されるシミュレーション結果をビジュアル化した仮想空間を示す表示画面２００の一例を示す図である。図６を参照して、表示画面２００においては、シミュレーションが実行される仮想空間２０２が表現されるとともに、仮想空間２０２内に配置されたロボットを示すオブジェクト２０４、複数のワークに相当するオブジェクト２０６、および、ワーク搬送装置１０の搬送面１６を簡略的に示すオブジェクト２０８が表現されている。
【００６３】
シミュレーション装置１によるシミュレーションの実行によってタイムステップ毎に算出される位置および姿勢の情報（時間的変化）に基づいて、これらのオブジェクト２０４，２０６，２０８は位置および姿勢を変化させる。この結果、仮想空間２０２内をオブジェクト２０４，２０６，２０８が動いているように表現される。
【００６４】
図７は、本実施の形態に係るシミュレーション装置１による実行されるシミュレーション結果のうちワーク４を示すオブジェクト２０６の時間的変化の一例を示す図である。図７（Ａ）〜（Ｃ）には、ワーク４として、複数のボルトおよびナットを示す。図７（Ａ）〜（Ｃ）に示されるビジュアル化された結果において、ワーク４の各々に対応するオブジェクト２０６の位置は、時間的に変化している。
【００６５】
本実施の形態においては、物理シミュレーションによって、各ワーク４の位置および姿勢が個別に算出されるとともに、他のワーク４などとの衝突による影響も反映される。ワーク４の各々の質量や与えられる外力の大きさなどによって、ワーク４の各々の軌跡も変化することになる。
【００６６】
その結果、例えば、図７（Ａ）〜（Ｃ）に示すように、初期状態においてある程度の集合体であったワーク４は、時間的経過とともにばらばらになっていくことになる。このように、本実施の形態に係るシミュレーション装置１においては、物理シミュレーションにより、ワーク４の挙動が個別に算出されるので、精度の高いシミュレーションを実現できる。
【００６７】
図８は、本実施の形態に係るシミュレーション装置１による実行されるシミュレーション結果のうち画像計測に係る表示画面の一例を示す図である。図８を参照して、表示画面２１０は、画像計測モジュール１５８による計測処理の対象となる仮想画像２２０の一例を含む。仮想画像２２０内には、仮想画像２２０に対する計測処理により得られる認識結果２２２が表示されている。
【００６８】
表示画面２１０は、計測処理に係る画像計測パラメータ１２８を設定するための設定ウィンドウ２２４を含む。ユーザは、設定ウィンドウ２２４を操作することで、任意の画像計測パラメータ１２８を設定することもできる。画像計測パラメータ１２８の詳細については、一般的な計測処理に用いられるものを採用できるので、各パラメータについてさらなる詳細な説明は行わない。
【００６９】
図６〜図８に示すようなビジュアル化された結果を見ることで、ユーザは、シミュレーション対象のシステム（例えば、ワーク搬送システム２）が現実に存在しなくても、その高精度に再現される挙動を確認できる。
【００７０】
＜Ｆ．物理シミュレーション＞
次に、本実施の形態に係るシミュレーション装置１において採用される物理シミュレーションについて説明する。
【００７１】
本実施の形態に係るシミュレーション装置１においては、複数のワーク４が対象となる場合であっても、各ワーク４の時間的な挙動を算出することができる。ワーク４が多数存在する場合には、演算量が増加するため、公知のアルゴリズムを用いて演算量を低減するようにしてもよい。
【００７２】
このような演算量を低減するアルゴリズムの一例として、ＨＡＣＤ（Hierarchical Approximate Convex Decomposition：階層的近似凸分解）アルゴリズムを用いることができる。ＨＡＣＤアルゴリズムによれば、物理シミュレーションの対象となるオブジェクトを凸分解することによって、当該オブジェクトの形状を変化させることなく、オブジェクトを単純化することで物理演算を高速化できる。
【００７３】
本実施の形態に係るシミュレーション装置１において採用される物理シミュレーションは、ワーク４の各々の挙動を推定できる。さらに、任意の時間において、任意のワーク４の位置や特性などを任意に変更することもできる。
【００７４】
図９は、本実施の形態に係るシミュレーション装置１による実行される物理シミュレーションの一例を示す図である。図９（Ａ）に示す表示画面２３０においては、任意のワーク４に対応するオブジェクト２０６をカーソル２３２により選択することができる。任意のオブジェクト２０６が選択されることで、シミュレーション全体が一時停止するようにしてもよい。このとき、図９（Ｂ）に示すように、選択されたオブジェクト２０６をカーソル２３２により任意の位置に配置することで、当該新たに配置された位置からシミュレーションを再開できる。
【００７５】
すなわち、ワーク挙動シミュレータ１５４（第１のシミュレータ）は、任意の時間における任意のワークの位置または特性に対する変更操作に応答して、変更後の位置または特性に従って、１または複数のワーク４の挙動の算出を継続する。
【００７６】
このように、本実施の形態に係るシミュレーション装置１において採用される物理シミュレーションにおいては、複数のワーク４のうち任意のワーク４についての挙動を任意の時間において変更できるので、仮想空間上で、任意のワーク４を任意の位置に配置することで、各装置の挙動を事前に確かめることができる。
【００７７】
＜Ｇ．処理手順＞
次に、本実施の形態に係るシミュレーション装置１において実行される処理手順について説明する。
【００７８】
図１０は、本実施の形態に係るシミュレーション装置１において実行される処理手順を示すフローチャートである。図１０に示す各ステップは、典型的には、情報処理装置１００のプロセッサ１０２がプログラム（物理シミュレーションプログラム１２２、画像計測プログラム１２６、ロボットシミュレーションプログラム１３０、および、統合プログラム１３４など）を実行することで実現される。
【００７９】
図１０を参照して、まず、情報処理装置１００は、ユーザにより指定された各種設定（物理シミュレーションパラメータ１２４、画像計測パラメータ１２８、ロボットパラメータ１３２、ＣＡＤデータ、および、その他の設定情報）を読込み（ステップＳ１００）、シミュレーションに必要な初期データを生成する（ステップＳ１０２）。
【００８０】
シミュレーションの開始が指示されると（ステップＳ１０４においてＹＥＳ）、情報処理装置１００は、仮想空間に配置された１または複数のワーク４の挙動を算出する処理を実行する。
【００８１】
具体的には、情報処理装置１００は、次のタイムステップにおけるワーク搬送装置１０の状態（位置、速度、加速度、姿勢など）を算出する（ステップＳ１０６）。そして、情報処理装置１００は、次にタイムステップにおけるワーク搬送装置１０の状態に基づいて、各ワーク４に与えられる外力を算出し（ステップＳ１０８）、算出された外力に基づいて、各ワーク４の状態（位置、速度、加速度、姿勢など）を算出する（ステップＳ１１０）。
【００８２】
ステップＳ１０６〜Ｓ１１０の処理は、典型的には、物理シミュレーションプログラム１２２の実行により提供される。
【００８３】
続いて、情報処理装置１００は、仮想空間の任意の視点位置に配置された仮想カメラで仮想空間を撮像することで生成される仮想画像に対して、計測処理を実行する。より具体的には、情報処理装置１００は、仮想空間に配置された仮想カメラによる仮想撮像により仮想画像を生成し（ステップＳ１１２）、当該生成した仮想画像に対して計測処理を実行する（ステップＳ１１４）。計測処理は、仮想画像に対する形状サーチなどの処理を含む。そして、情報処理装置１００は、計測処理により得られる計測結果に基づいて、ロボットに対する指令を生成または更新する（ステップＳ１１６）。
【００８４】
ステップＳ１１４およびＳ１１６の処理は、画像計測プログラム１２６の実行により提供される。
【００８５】
続いて、情報処理装置１００は、計測処理の実行により得られる計測結果に応じて生成される動作指令に基づいて、仮想空間に配置されたワーク４を搬送するロボット３０の挙動を算出する処理を実行する。より具体的には、情報処理装置１００は、ステップＳ１１６において生成または更新されるロボットに対する指令に従って、ロボット３０の状態（位置、速度、加速度、姿勢など）を算出する（ステップＳ１１８）。併せて、情報処理装置１００は、算出したロボット３０の状態が予め定められた状態（ピック位置またはプレイス位置）にあれば（ステップＳ１２０）、対象のワーク４をピック状態またはプレイス状態に設定する（ステップＳ１２２）。
【００８６】
ステップＳ１１６〜Ｓ１２２の処理は、ロボットシミュレーションプログラム１３０の実行により提供される。
【００８７】
最終的に、情報処理装置１００は、上述のステップにおいて算出された各装置の状態を反映した情報（仮想空間のオブジェクトの状態を記述する仮想空間情報１０５）に基づいて、仮想空間をビジュアル化した画像を生成して出力する（ステップＳ１２４）。
【００８８】
情報処理装置１００は、予め定められた終了条件または停止条件が成立しているか否かを判断する（ステップＳ１２６）。予め定められた終了条件および停止条件のいずれも成立していない場合（ステップＳ１２６においてＮＯの場合）には、ステップＳ１０６以下の処理が繰返される。
【００８９】
一方、予め定められた終了条件または停止条件が成立している場合（ステップＳ１２６においてＹＥＳの場合）には、情報処理装置１００は処理を終了する。
【００９０】
＜Ｈ．シミュレーション装置の応用例＞
上述したような本実施の形態に係るシミュレーション装置１を利用することで、現実の装置が存在しない場合（例えば、設備導入前や工事中など）であっても、予め、最適なパラメータを調整することができる。また、工場エラーや何らかの問題で、ロボットが停止した場合などの原因分析にも用いることができる。
【００９１】
以下、本実施の形態に係るシミュレーション装置１の応用例として、各種パラメータの調整を行う例について説明する。このようなパラメータの調整の対象としては、画像計測パラメータ１２８が想定されるが、それ以外のパラメータも調整の対象としてもよい。通常、画像計測については、パラメータ値が認識結果に大きく影響するので、画像計測パラメータ１２８を最適化することは重要である。
【００９２】
このようなパラメータの調整方法としては、パラメータ値を適宜変更し、上述したシミュレーションを実行して得られた結果（例えば、ワーク４の搬送率や不認識率など）を評価する処理を繰返すことで、最も良い結果を得られたパラメータを最適値として決定することができる。
【００９３】
図１１は、本実施の形態に係るシミュレーション装置１を用いたパラメータ調整に係る処理手順を示すフローチャートである。図１１に示す各ステップは、典型的には、情報処理装置１００のプロセッサ１０２がプログラム（物理シミュレーションプログラム１２２、画像計測プログラム１２６、ロボットシミュレーションプログラム１３０、および、統合プログラム１３４など）を実行することで実現される。
【００９４】
図１１を参照して、情報処理装置１００は、調整対象のパラメータ候補、および、調整対象のパラメータ調整幅の設定を受付ける（ステップＳ２００）。そして、情報処理装置１００は、ステップＳ２００において受付けた調整対象のパラメータ候補のうちから１または複数のパラメータ値を対応するパラメータ調整幅の任意の値に設定する（ステップＳ２０２）。
【００９５】
そして、情報処理装置１００は、ステップＳ２０２において設定後のパラメータ、および、その他の固定されたパラメータに基づいて、図１０に示すシミュレーションを実行する（ステップＳ２０４）。シミュレーションの内容が予め定められた状態になると（ステップＳ２０６においてＹＥＳ）、情報処理装置１００は、シミュレーションの実行を停止するとともに、そのシミュレーション結果についての評価値を算出する（ステップＳ２０８）。
【００９６】
続いて、情報処理装置１００は、ステップＳ２００において受付けた調整対象のパラメータ候補について、対応するパラメータ調整幅のすべての値を選択済みであるか否かを判断する（ステップＳ２１０）。すなわち、ステップＳ２００において受付けたすべての調整対象のパラメータ候補を設定されたパラメータ調整幅のすべての値に設定して、シミュレーションの実行が完了されたか否かが判断される。
【００９７】
対応するパラメータ調整幅のすべての値を選択済みでなければ（ステップＳ２１０においてＮＯ）、情報処理装置１００は、ステップＳ２０２以下の処理を繰返す。
【００９８】
これに対して、対応するパラメータ調整幅のすべての値を選択済みであれば（ステップＳ２１０においてＹＥＳ）、情報処理装置１００は、ステップＳ２０８においてそれぞれ算出された評価値のうち、最も高い評価値に対応するパラメータ値を調整結果として出力する（ステップＳ２１２）。そして、パラメータ調整の処理は終了する。
【００９９】
図１１に示すフローチャートに示される処理は、調整対象のパラメータ候補の数、および、各パラメータ候補についてのパラメータ調整幅の大きさに応じて、多数回繰返されることになる。
【０１００】
このようなパラメータ調整の処理を用いることで、現実の装置が存在しなくても、事前のパラメータ調整が可能となる。
【０１０１】
＜Ｉ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
仮想空間（２０２）に配置された１または複数のワーク（４）の挙動を算出する第１のシミュレータ（１５４）と、
前記仮想空間の任意の視点位置に配置された仮想カメラで前記仮想空間を撮像することで生成される仮想画像（２２０）に対して、計測処理を実行する計測処理部（１５８）と、
前記計測処理部によるワークの計測結果に応じて生成される動作指令に基づいて、前記仮想空間に配置された前記ワークを搬送するロボット（３０）の挙動を算出する第２のシミュレータ（１６０）と、
前記仮想空間をビジュアル化した画像を生成する画像生成部（１６４）とを備える、シミュレーション装置。
［構成２］
前記第１のシミュレータが挙動を算出する前記１または複数のワーク（４）に対して外力を与えるワーク搬送装置（１０）の挙動を算出する第３のシミュレータ（１５２）をさらに備える、構成１に記載のシミュレーション装置。
［構成３］
前記仮想空間に配置される前記仮想カメラを管理するとともに、前記仮想カメラの視点位置および視野範囲に応じて、前記仮想画像を生成する仮想撮像部（１５６）をさらに備える、構成１または２に記載のシミュレーション装置。
［構成４］
前記第１のシミュレータは、所定のタイムステップ毎に各ワークの位置および姿勢を算出して更新する、構成１〜３のいずれか１項に記載のシミュレーション装置。
［構成５］
前記第１のシミュレータは、任意の時間における任意のワークの位置または特性に対する変更操作に応答して、変更後の位置または特性に従って、前記１または複数のワークの挙動の算出を継続する、構成１〜４のいずれか１項に記載のシミュレーション装置。
［構成６］
コンピュータにシミュレーションを実行させるためのシミュレーションプログラム（１２２，１２６，１３０，１３４）であって、前記コンピュータ（１００）に
仮想空間に配置された１または複数のワークの挙動を算出するステップ（Ｓ１１０）と、
前記仮想空間の任意の視点位置に配置された仮想カメラで前記仮想空間を撮像することで生成される仮想画像（２２０）に対して、計測処理を実行するステップ（Ｓ１１４）と、
前記計測処理の実行により得られる計測結果に応じて生成される動作指令に基づいて、前記仮想空間に配置された前記ワークを搬送するロボットの挙動を算出するステップ（Ｓ１１８）と、
前記仮想空間をビジュアル化した画像を生成するステップ（Ｓ１２４）とを実行させる、シミュレーションプログラム。
［構成７］
コンピュータ（１００）において実行されるシミュレーション方法であって、前記コンピュータによって実行される、
仮想空間に配置された１または複数のワークの挙動を算出するステップ（Ｓ１１０）と、
前記仮想空間の任意の視点位置に配置された仮想カメラで前記仮想空間を撮像することで生成される仮想画像（２２０）に対して、計測処理を実行するステップ（Ｓ１１４）と、
前記計測処理の実行により得られる計測結果に応じて生成される動作指令に基づいて、前記仮想空間に配置された前記ワークを搬送するロボットの挙動を算出するステップ（Ｓ１１８）と、
前記仮想空間をビジュアル化した画像を生成するステップ（Ｓ１２４）とを備える、シミュレーション方法。
【０１０２】
＜Ｊ．利点＞
本実施の形態に従うシミュレーション装置１は、ワークに対して何らかの外力が与えられるようなシステムについても総合的に挙動をシミュレーションできる。
【０１０３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０４】
１  シミュレーション装置、２  ワーク搬送システム、４  ワーク、１０  ワーク搬送装置、１２  ワーク供給部、１４  ワーク搬送部、１６  搬送面、１８  フィーダコントローラ、２０  画像計測装置、２２  カメラ、２４  ワークモデル情報、３０  ロボット、３２  吸着部、４０  ロボットコントローラ、５０  コンベア、１００  情報処理装置、１０２  プロセッサ、１０４  主メモリ、１０５  仮想空間情報、１０６  操作ユニット、１０８  出力ユニット、１１０  ネットワークインターフェイス、１１２  光学ドライブ、１１４  記録媒体、１１６  ローカル通信インターフェイス、１１８  内部バス、１２０  ストレージ、１２２  物理シミュレーションプログラム、１２４  物理シミュレーションパラメータ、１２６  画像計測プログラム、１２８  画像計測パラメータ、１３０  ロボットシミュレーションプログラム、１３２  ロボットパラメータ、１３４  統合プログラム、１５０  仮想空間情報管理モジュール、１５２  ワーク搬送シミュレータ、１５４  ワーク挙動シミュレータ、１５６  仮想撮像モジュール、１５８  画像計測モジュール、１６０  ロボットシミュレータ、１６２  ワークトラッキングモジュール、１６４  ビジュアライザ、２００，２１０，２３０  表示画面、２０２  仮想空間、２０４，２０６，２０８  オブジェクト、２２０  仮想画像、２２２  認識結果、２２４  設定ウィンドウ、２３２  カーソル。
【図１】
2020011340.tif 000003
【図２】
2020011340.tif 000004
【図３】
2020011340.tif 000005
【図４】
2020011340.tif 000006
【図５】
2020011340.tif 000007
【図６】
2020011340.tif 000008
【図７】
2020011340.tif 000009
【図８】
2020011340.tif 000010
【図９】
2020011340.tif 000011
【図１０】
2020011340.tif 000012
【図１１】
2020011340.tif 000013