(57)【要約】【課題】ワークを円弧状の軌道に沿って搬送する搬送装置によってワークを搬送したときに、該ワークを追随するロボットの動作をシミュレーションする技術が求められている。【解決手段】シミュレーション装置１０は、ロボットモデルを仮想空間に配置するロボットモデル配置部２６と、ワークモデルを円弧状の仮想軌道に沿って搬送可能な搬送装置モデルを仮想空間に配置する搬送装置モデル配置部２８と、ワークモデルを仮想空間において搬送装置モデルの上に配置するワークモデル配置部４２と、ワークモデルを検出可能な検出装置モデルを仮想空間に配置する検出装置モデル配置部３０と、ロボットモデルの追従動作範囲を仮想空間において設定する動作範囲設定部３６と、シミュレーションを実行するシミュレーション実行部４０とを備える。【選択図】図１
2018069357.tif 000002
【特許請求の範囲】
【請求項１】
ロボットハンドを有するロボットが該ロボットハンドを移動中のワークに追従させる動作をシミュレーションするためのシミュレーション装置であって、
前記ロボットハンドの３次元モデルであるロボットハンドモデルを有する、前記ロボットの３次元モデルであるロボットモデルを仮想空間に配置するロボットモデル配置部と、
前記ワークを円弧状の軌道に沿って搬送可能な搬送装置の３次元モデルである搬送装置モデルを前記仮想空間に配置する搬送装置モデル配置部であって、前記円弧状の軌道に対応する前記仮想空間における仮想軌道の少なくとも一部は、前記ロボットモデルが前記ロボットハンドモデルを移動させることができる仮想可動範囲に含まれる、搬送装置モデル配置部と、
前記ワークの３次元モデルであるワークモデルを、前記仮想空間において前記搬送装置モデルの上に配置するワークモデル配置部と、
前記ワークを検出可能な検出装置の３次元モデルである検出装置モデルを、前記搬送装置モデルが搬送する前記ワークモデルを検出できるように、前記仮想空間に配置する検出装置モデル配置部と、
前記搬送装置モデルが搬送する前記ワークモデルに、前記ロボットモデルが前記ロボットハンドモデルを追従させる動作を行うときの追従動作範囲を、前記仮想空間において設定する動作範囲設定部と、
前記搬送装置モデルが前記ワークモデルを搬送し、前記検出装置モデルが、搬送中の前記ワークモデルを検出し、前記ロボットモデルが、前記検出装置モデルによる前記ワークモデルの仮想検出結果に基づいて、前記ロボットハンドモデルを前記追従動作範囲内で前記ワークモデルに追従させる動作のシミュレーションを実行するシミュレーション実行部と、を備える、シミュレーション装置。
【請求項２】
前記シミュレーション実行部は、前記ロボットモデルが、前記ロボットハンドモデルを前記追従動作範囲内で前記ワークモデルに追従させているときに、該ロボットハンドモデルによって該ワークモデルを把持し、把持した該ワークモデルを、前記搬送装置モデルとは別の前記仮想空間における場所まで搬送する動作のシミュレーションを実行する、請求項１に記載のシミュレーション装置。
【請求項３】
前記ロボットモデル配置部は、第２のロボットハンドモデルを有する第２のロボットモデルを前記仮想空間に配置し、
前記シミュレーション実行部は、前記第２のロボットモデルが、前記搬送装置モデルとは別の前記仮想空間における場所に配置された前記ワークモデルを前記第２のロボットハンドモデルによって把持し、把持した該ワークモデルを前記搬送装置モデルの上に置く動作のシミュレーションを実行する、請求項１または２に記載のシミュレーション装置。
【請求項４】
前記仮想軌道の半径を決定する軌道決定部をさらに備え、
前記シミュレーション実行部は、前記仮想検出結果と前記半径とに基づいて、前記ロボットモデルが前記ロボットハンドモデルを前記ワークモデルに追従させる動作のシミュレーションを実行する、請求項１〜３のいずれか１項に記載のシミュレーション装置。
【請求項５】
前記軌道決定部が決定した前記半径に基づいて、前記仮想空間において前記検出装置モデルが前記仮想軌道の上方に配置されるように、前記仮想空間における前記検出装置モデルの位置を決定するモデル位置決定部をさらに備える、請求項４に記載のシミュレーション装置。
【請求項６】
ロボットハンドを有するロボットが該ロボットハンドを移動中のワークに追従させる動作をシミュレーションする方法であって、
前記ロボットハンドの３次元モデルであるロボットハンドモデルを有する、前記ロボットの３次元モデルであるロボットモデルを仮想空間に配置することと、
前記ワークを円弧状の軌道に沿って搬送可能な搬送装置の３次元モデルである搬送装置モデルを、前記円弧状の軌道に対応する前記仮想空間における仮想軌道の少なくとも一部が、前記ロボットモデルが前記ロボットハンドモデルを移動させることができる仮想可動範囲に含まれるように、前記仮想空間に配置することと、
前記ワークの３次元モデルであるワークモデルを、前記仮想空間において前記搬送装置モデルの上に配置することと、
前記ワークを検出可能な検出装置の３次元モデルである検出装置モデルを、前記搬送装置モデルが搬送する前記ワークモデルを検出できるように、前記仮想空間に配置することと、
前記搬送装置モデルが搬送する前記ワークモデルに、前記ロボットモデルが前記ロボットハンドモデルを追従させる動作を行うときの追従動作範囲を、前記仮想空間において設定することと、
前記搬送装置モデルが前記ワークモデルを搬送し、前記検出装置モデルが、搬送中の前記ワークモデルを検出し、前記ロボットモデルが、前記検出装置モデルによる前記ワークモデルの仮想検出結果に基づいて、前記ロボットハンドモデルを前記追従動作範囲内で前記ワークモデルに追従させる動作のシミュレーションを実行することと、を備える、方法。
【請求項７】
請求項６に記載の方法をコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作をシミュレーションするシミュレーション装置、およびシミュレーション方法に関する。
【背景技術】
【０００２】
ワークを把持するロボットの動作をシミュレーションする装置が知られている。（例えば、特許文献１および２）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１２９９１５号公報
【特許文献２】特開２０１４−１００７８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ワークを円弧状の軌道に沿って搬送する搬送装置によってワークを搬送したときに、該ワークを追随するロボットの動作をシミュレーションする技術が求められている。
【課題を解決するための手段】
【０００５】
本発明の一態様において、ロボットハンドを有するロボットが該ロボットハンドを移動中のワークに追従させる動作をシミュレーションするためのシミュレーション装置は、ロボットハンドの３次元モデルであるロボットハンドモデルを有する、ロボットの三次元モデルであるロボットモデルを仮想空間に配置するロボットモデル配置部を備える。
【０００６】
このシミュレーション装置は、ワークを円弧状の軌道に沿って搬送可能な搬送装置の三次元モデルである搬送装置モデルを仮想空間に配置する搬送装置モデル配置部を備える。円弧状の軌道に対応する仮想空間における仮想軌道の少なくとも一部は、ロボットモデルがロボットハンドモデルを移動させることができる仮想可動範囲に含まれる。
【０００７】
このシミュレーション装置は、ワークの三次元モデルであるワークモデルを、仮想空間において搬送装置モデルの上に配置するワークモデル配置部と、ワークを検出可能な検出装置の三次元モデルである検出装置モデルを、搬送装置モデルが搬送するワークモデルを検出できるように、仮想空間に配置する検出装置モデル配置部とを備える。
【０００８】
このシミュレーション装置は、搬送装置モデルが搬送するワークモデルに、ロボットモデルがロボットハンドモデルを追従させる動作を行うときの追従動作範囲を、仮想空間において設定する動作範囲設定部を備える。
【０００９】
このシミュレーション装置は、搬送装置モデルがワークモデルを搬送し、検出装置モデルが、搬送中のワークモデルを検出し、ロボットモデルが、検出装置モデルによるワークモデルの仮想検出結果に基づいて、ロボットハンドモデルを追従動作範囲内でワークモデルに追従させる動作のシミュレーションを実行するシミュレーション実行部を備える。
【００１０】
シミュレーション実行部は、ロボットモデルが、ロボットハンドモデルを追従動作範囲内でワークモデルに追従させているときに、該ロボットハンドモデルによって該ワークモデルを把持し、把持した該ワークモデルを、搬送装置モデルとは別の仮想空間における場所まで搬送する動作のシミュレーションを実行してもよい。
【００１１】
ロボットモデル配置部は、第２のロボットハンドモデルを有する第２のロボットモデルを仮想空間に配置してもよい。シミュレーション実行部は、第２のロボットモデルが、搬送装置モデルとは別の仮想空間における場所に配置されたワークモデルを第２のロボットハンドモデルによって把持し、把持した該ワークモデルを搬送装置モデルの上に置く動作のシミュレーションを実行してもよい。
【００１２】
シミュレーション装置は、仮想軌道の半径を決定する軌道決定部をさらに備えてもよい。シミュレーション実行部は、仮想検出結果と半径とに基づいて、ロボットモデルがロボットハンドモデルをワークモデルに追従させる動作のシミュレーションを実行してもよい。
【００１３】
シミュレーション装置は、軌道決定部が決定した半径に基づいて、仮想空間において検出装置モデルが仮想軌道の上方に配置されるように、仮想空間における検出装置モデルの位置を決定するモデル位置決定部をさらに備えてもよい。
【００１４】
本発明の他の態様において、ロボットハンドを有するロボットが該ロボットハンドを移動中のワークに追従させる動作をシミュレーションする方法は、ロボットハンドの３次元モデルであるロボットハンドモデルを有する、ロボットの三次元モデルであるロボットモデルを仮想空間に配置することを備える。
【００１５】
この方法は、ワークを円弧状の軌道に沿って搬送可能な搬送装置の三次元モデルである搬送装置モデルを、円弧状の軌道に対応する仮想空間における仮想軌道の少なくとも一部が、ロボットモデルがロボットハンドモデルを移動させることができる仮想可動範囲に含まれるように、仮想空間に配置することを備える。
【００１６】
この方法は、ワークの三次元モデルであるワークモデルを、仮想空間において搬送装置モデルの上に配置することと、ワークを検出可能な検出装置の三次元モデルである検出装置モデルを、搬送装置モデルが搬送するワークモデルを検出できるように、仮想空間に配置することとを備える。
【００１７】
この方法は、搬送装置モデルが搬送するワークモデルに、ロボットモデルがロボットハンドモデルを追従させる動作を行うときの追従動作範囲を、仮想空間において設定することを備える。
【００１８】
この方法は、搬送装置モデルがワークモデルを搬送し、検出装置モデルが、搬送中のワークモデルを検出し、ロボットモデルが、検出装置モデルによるワークモデルの仮想検出結果に基づいて、ロボットハンドモデルを追従動作範囲内でワークモデルに追従させる動作のシミュレーションを実行することを備える。
【００１９】
本発明の他の態様において、コンピュータプログラムは、上記の方法をコンピュータに実行させる。
【図面の簡単な説明】
【００２０】
【図１】一実施形態に係るシミュレーション装置のブロック図である。
【図２】一実施形態に係る、実空間における搬送システムの図である。
【図３】図１に示すシミュレーション装置の動作フローの一例を示すフローチャートである。
【図４】図３中のステップＳ１を実行したときの仮想空間の画像の一例を示す。
【図５】図３中のステップＳ２を実行したときの仮想空間の画像の一例を示す。
【図６】図３中のステップＳ３を実行したときの仮想空間の画像の一例を示す。
【図７】図３中のステップＳ４を説明するための図であって、図６に示す仮想空間を、搬送装置座標系モデルＣＣＭのｚ軸プラス方向から見た図である。
【図８】図３中のステップＳ５を説明するための図であって、図７に示す仮想空間の画像に対応する。
【図９】図３中のステップＳ６を説明するための図であって、図６に示す仮想空間の画像に対応する。
【図１０】図３中のステップＳ６を説明するための図であって、図８に示す仮想空間の画像に対応する。
【図１１】図３中のステップＳ７を説明するための図であって、図９に示す仮想空間の画像に対応する。
【図１２】図３中のステップＳ７を説明するための図であって、図１０に示す仮想空間の画像に対応する。
【図１３】図３中のステップＳ８を説明するための図であって、図１１に示す仮想空間の画像に対応する。
【図１４】他の実施形態に係る仮想空間の画像の一例を示す。
【図１５】さらに他の実施形態に係る仮想空間の画像の一例を示す。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。
【００２２】
図１を参照して、一実施形態に係るシミュレーション装置１０について説明する。シミュレーション装置１０は、ＣＰＵ１２、システムメモリ１４、ワークメモリ１６、入力／出力インターフェース（Ｉ／Ｏインターフェース）１８、データ入力部２０、および表示部２２を備える。
【００２３】
ＣＰＵ１２は、システムメモリ１４、ワークメモリ１６、およびＩ／Ｏインターフェース１８と、バス２４を介して通信可能に接続されており、これらの要素と通信しつつ、後述する各種のプロセスを実行する。
【００２４】
システムメモリ１４は、電気的に消去・記録可能な不揮発性メモリであり、例えば、ＥＥＰＲＯＭ（登録商標）等から構成される。システムメモリ１４は、後述するシミュレーションを実行するのに要する定数、変数、設定値、プログラム等を、シミュレーション装置１０の非動作時にも失われないように記録している。
【００２５】
ワークメモリ１６は、ＣＰＵ１２が各種のプロセスを実行するのに要するデータを一時的に保管する。また、ワークメモリ１６には、システムメモリ１４に記録されている定数、変数、設定値、プログラム等が適宜展開され、ＣＰＵ１２は、ワークメモリ１６に展開されたデータを、各種のプロセスを実行するために利用する。
【００２６】
Ｉ／Ｏインターフェース１８は、データ入力部２０と通信可能に接続され、ＣＰＵ１２からの指令の下、データ入力部２０からデータを受信する。また、Ｉ／Ｏインターフェース１８は、表示部２２と通信可能に接続され、ＣＰＵ１２からの指令の下、表示部２２に画像データを送信する。
【００２７】
Ｉ／Ｏインターフェース１８は、例えばイーサネットポートまたはＵＳＢポート等から構成され、表示部２２およびデータ入力部２０と有線で通信してもよい。または、Ｉ／Ｏインターフェース１８は、例えばＷｉ−Ｆｉまたは無線ＬＡＮを介して、表示部２２およびデータ入力部２０と無線で通信してもよい。
【００２８】
データ入力部２０は、例えばキーボード、タッチパネル、またはマウスから構成され、使用者は、データ入力部２０を操作することによって、データを入力できる。データ入力部２０は、入力されたデータを、Ｉ／Ｏインターフェース１８を介して、ＣＰＵ１２に送信する。
【００２９】
表示部２２は、例えばＣＲＴ、液晶ディスプレイ（ＬＣＤ）、または有機ＥＬディスプレイから構成され、Ｉ／Ｏインターフェース１８から送信された画像データを受信し、使用者が視認可能な画像として表示する。
【００３０】
シミュレーション装置１０は、搬送中のワークをロボットハンドで追随して把持するワーク搬送システムの動作をシミュレーションするための装置である。
【００３１】
以下、図２を参照して、実空間におけるワーク搬送システム１００の一例について説明する。ワーク搬送システム１００は、ロボット１０２、搬送装置１０４、および検出装置１０６を備える。
【００３２】
ロボット１０２は、垂直多関節ロボットであって、ロボットベース１０８、旋回胴１１０、ロボットアーム１１２、手首部１１４、およびロボットハンド１１６を有する。ロボットベース１０８は、実空間の作業セルの床に固定される。
【００３３】
旋回胴１１０は、ロボットベース１０８に回動可能に設けられる。ロボットアーム１１２は、旋回胴１１０に回動可能に連結された上腕部１１８と、該上腕部１１８の先端に回動可能に連結された前腕部１２０とを有する。手首部１１４は、前腕部１２０の先端に連結され、ロボットハンド１１６を３軸周りに回動可能に支持する。
【００３４】
ロボットハンド１１６は、手首部１１４に連結されたハンドベース１２２と、該ハンドベース１２２に開閉可能に設けられた複数の指部１２４とを有する。ロボットハンド１１６は、ワークＷｒを解放可能に把持する。
【００３５】
ロボット１０２は、ロボット座標系ＣＲを有し、該ロボット座標系ＣＲを基準として、該ロボット１０２の各構成要素を動作させる。例えば、ロボット座標系ＣＲのｚ軸は、実空間の鉛直方向に平行に配置され、旋回胴１１０は、ロボット座標系ＣＲのｚ軸周りに回動される。
【００３６】
一方、ロボットハンド１１６に対しては、ツール座標系ＣＴが設定される。このツール座標系ＣＴは、ロボット座標系ＣＲにおけるロボットハンド１１６の位置および姿勢を規定する座標系である。
【００３７】
例えば、ツール座標系ＣＴの原点が、ロボットハンド１１６の指部１２４の間に位置し、ツール座標系ＣＴのｚ軸が、指部１２４の開閉方向に対して直交するように、ツール座標系ＣＴは、設定される。
【００３８】
ロボット１０２は、ロボットハンド１１６の位置および姿勢を、ツール座標系ＣＴによって規定される位置および姿勢に一致させるように、ロボット座標系ＣＲにおいて旋回胴１１０、ロボットアーム１１２、手首部１１４を動作させる。
【００３９】
搬送装置１０４は、ベース部１２６と、ターンテーブル１２８を有する。ベース部１２６は、実空間の作業セルの床の上に固定される。ターンテーブル１２８は、ベース部１２６に回転可能に設置される。
【００４０】
搬送装置１０４は、搬送装置座標系ＣＣを有する。例えば、搬送装置座標系ＣＣのｚ軸は、実空間の鉛直方向に平行に配置され、搬送装置１０４は、ターンテーブル１２８を、搬送装置座標系ＣＣのｚ軸周りに、図２中の矢印Ａに示す方向へ、回転させる。ワークＷｒは、ターンテーブル１２８の上に載置され、搬送装置１０４は、ターンテーブル１２８の上に載置されたワークＷｒを、円弧状の軌道に沿って搬送する。
【００４１】
検出装置１０６は、ターンテーブル１２８の上方（すなわち、搬送装置座標系ＣＣのｚ軸プラス方向）に設置され、ターンテーブル１２８によって搬送されるワークＷｒを検出することができる。検出装置１０６は、例えば３次元視覚センサであって、ワークＷｒを撮像し、該ワークＷｒの画像を取得する。
【００４２】
検出装置１０６は、センサ座標系ＣＳを有する。例えば、センサ座標系ＣＳのｚ軸プラス方向は、検出装置１０６の視線方向と一致し、且つ、実空間の鉛直下方に一致するように、設定される。
【００４３】
次に、ワーク搬送システム１００の動作について説明する。まず、ワークＷｒが、停止したターンテーブル１２８の上の予め定められた供給位置に載置される。この供給位置は、ターンテーブル１２８の回転方向において、検出装置１０６の上流側に配置される。
【００４４】
次いで、搬送装置１０４は、ターンテーブル１２８を回転させ、これにより、ターンテーブル１２８の上に載置されたワークＷｒを方向Ａへ回転させる。
【００４５】
次いで、検出装置１０６は、ターンテーブル１２８の上に載置されたワークＷｒを検出する。具体的には、検出装置１０６は、ターンテーブル１２８上のワークＷｒを撮像し、該ワークＷｒの画像を取得する。
【００４６】
次いで、ロボット１０２は、検出装置１０６が取得したワークＷｒの検出画像に基づいて、ロボット座標系ＣＲにおけるワークＷｒの位置および姿勢を取得する。そして、ロボット１０２は、取得した位置および姿勢に基づいて、ツール座標系ＣＴの原点が搬送中のワークＷｒの所定位置（例えばワークＷｒの中心位置）に継続して配置されるように、ツール座標系ＣＴを設定する。
【００４７】
ロボット１０２は、ツール座標系ＣＴによって規定される位置および姿勢にロボットハンド１１６を配置するように、旋回胴１１０、ロボットアーム１１２、手首部１１４を動作させる。こうして、ロボット１０２は、搬送中のワークＷｒにロボットハンド１１６を追随させる。
【００４８】
次いで、ロボット１０２は、指部１２４を閉じて、該指部１２４によってワークＷｒを把持する。こうして、搬送中のワークＷｒは、ロボットハンド１１６によって把持される。
【００４９】
本実施形態に係るシミュレーション装置１０は、このようなワーク搬送システム１００の動作をシミュレーションする。
【００５０】
次に、図３を参照して、シミュレーション装置１０の動作について説明する。なお、本稿においては、実空間におけるワーク搬送システムの構成要素の名称が「ＸＸ」であった場合、その構成要素の仮想空間における３次元モデルを「ＸＸモデル」として言及する。例えば、実空間における「ロボットハンド」の３次元モデルは、「ロボットハンドモデル」として言及される。
【００５１】
図３に示すフローは、例えば、使用者がデータ入力部２０を操作してシミュレーション開始指令を入力し、ＣＰＵ１２が、データ入力部２０からシミュレーション開始指令を受け付けたときに、開始する。
【００５２】
なお、ＣＰＵ１２は、図３に示すステップＳ１〜Ｓ８を、コンピュータプログラムに従って実行してもよい。この場合において、該コンピュータプログラムは、システムメモリ１４に予め記憶され得る。
【００５３】
ステップＳ１において、ＣＰＵ１２は、ロボットモデルを仮想空間に配置する。システムメモリ１４は、上述のロボット１０２を含む、複数種類のロボットのロボットモデルを予め記憶する。
【００５４】
一例として、ＣＰＵ１２は、システムメモリ１４に記憶された複数種類のロボットモデルをリストの形態で表した画像データを生成し、表示部２２に表示させる。使用者は、データ入力部２０を操作して、表示部２２に表示されたリストの中から、所望のロボットモデルを選択する。
【００５５】
以下、使用者が、上記したロボット１０２のロボットモデル１０２Ｍ（図４）を選択した場合について説明する。データ入力部２０は、使用者が入力した入力データを、Ｉ／Ｏインターフェース１８を介して、ＣＰＵ１２に送信する。
【００５６】
ＣＰＵ１２は、受信した入力データに応じて、システムメモリ１４に記憶された複数種類のロボットモデルの中から、ロボットモデル１０２Ｍを読み出し、仮想空間に配置する。そして、ＣＰＵ１２は、該仮想空間を画像データとして生成し、表示部２２に表示させる。
【００５７】
このようにして表示部２２に表示された仮想空間２００の画像の例を、図４に示す。図４に示す仮想空間２００においては、ロボットベースモデル１０８Ｍ、旋回胴モデル１１０Ｍ、ロボットアームモデル１１２Ｍ、手首部モデル１１４Ｍ、およびロボットハンドモデル１１６Ｍを有するロボットモデル１０２Ｍが配置されている。
【００５８】
システムメモリ１４は、ロボットモデル１０２Ｍに関連付けて、種々の仮想動作パラメータを記憶する。この仮想動作パラメータは、実空間でロボット１０２を動作させるのに要する動作パラメータに対応するパラメータである。
【００５９】
例えば、仮想動作パラメータは、上述したロボット座標系ＣＲに対応する、仮想空間２００でのロボット座標系モデルＣＲＭ、上述したツール座標系ＣＴに対応する、仮想空間２００でのツール座標系モデルＣＴＭ、および、仮想可動範囲を含む。
【００６０】
この仮想可動範囲は、実空間でロボット１０２がロボットハンド１１６を移動させることのできる可動範囲（すなわち、ツール座標系ＣＴを設定可能な範囲）に対応する、仮想空間２００内の範囲である。
【００６１】
ＣＰＵ１２は、図４に示すように、ロボットモデル１０２Ｍとともに、ロボット座標系モデルＣＲＭとツール座標系モデルＣＴＭとを仮想空間２００に配置する。このように、本実施形態においては、ＣＰＵ１２は、ロボットモデル１０２Ｍを仮想空間２００に配置するロボットモデル配置部２６（図１）として機能する。
【００６２】
ステップＳ２において、ＣＰＵ１２は、搬送装置モデルを仮想空間２００に配置する。システムメモリ１４は、上述の搬送装置１０４を含む、複数種類の搬送装置の搬送装置モデルを予め記憶する。
【００６３】
一例として、ＣＰＵ１２は、システムメモリ１４に記憶された複数種類の搬送装置モデルをリストの形態で表した画像データを生成し、表示部２２に表示する。使用者は、データ入力部２０を操作して、表示部２２に表示されたリストの中から、所望の搬送装置モデルを選択する。
【００６４】
以下、使用者が、上述した搬送装置１０４の搬送装置モデル１０４Ｍ（図５）を選択した場合について説明する。データ入力部２０は、使用者が入力した入力データを、Ｉ／Ｏインターフェース１８を介して、ＣＰＵ１２に送信する。
【００６５】
ＣＰＵ１２は、受信した入力データに応じて、システムメモリ１４に記憶された複数種類の搬送装置モデルの中から、搬送装置モデル１０４Ｍを読み出し、仮想空間２００に配置する。
【００６６】
このとき、ＣＰＵ１２は、ロボットモデル１０２Ｍの仮想可動範囲に、ターンテーブルモデル１２８Ｍの全域が含まれるように、搬送装置モデル１０４Ｍを仮想空間２００に配置する。
【００６７】
これとともに、ＣＰＵ１２は、上述した搬送装置座標系ＣＣに対応する搬送装置座標系モデルＣＣＭを仮想空間２００に配置する。こうして、図５に示すように、ベース部モデル１２６Ｍおよびターンテーブルモデル１２８Ｍを有する搬送装置モデル１０４Ｍが、仮想空間２００に配置される。
【００６８】
このように、本実施形態においては、ＣＰＵ１２は、搬送装置モデル１０４Ｍを仮想空間２００に配置する搬送装置モデル配置部２８（図１）として機能する。
【００６９】
なお、ＣＰＵ１２は、搬送装置モデル１０４Ｍが仮想空間２００に配置されたときに、データ入力部２０からの入力データに応じて、搬送装置モデル１０４Ｍおよび搬送装置座標系モデルＣＣＭを仮想空間２００内で移動させてもよい。
【００７０】
例えば、使用者は、搬送装置モデル１０４Ｍが仮想空間２００に配置されたとき、データ入力部２０（例えばマウス）を操作して、表示部２２に表示された搬送装置モデル１０４Ｍを移動させる（例えば、ドラッグアンドドロップ）。
【００７１】
ＣＰＵ１２は、使用者によるデータ入力部２０からの入力データに応じて、搬送装置モデル１０４Ｍを仮想空間２００内で移動させる。このとき、ＣＰＵ１２は、移動した搬送装置モデル１０４Ｍの位置がロボットモデル１０２Ｍの仮想可動範囲外となる場合に、搬送装置モデル１０４Ｍの移動を禁止するか、または、表示部２２に警告画像を表示してもよい。
【００７２】
ステップＳ３において、ＣＰＵ１２は、検出装置モデルを仮想空間２００に配置する。システムメモリ１４は、上述の検出装置１０６を含む、複数種類の検出装置の検出装置モデルを予め記憶する。
【００７３】
一例として、ＣＰＵ１２は、システムメモリ１４に記憶された複数種類の検出装置モデルをリストの形態で表した画像データを生成し、表示部２２に表示する。使用者は、データ入力部２０を操作して、表示部２２に表示されたリストの中から、所望の検出装置モデルを選択する。
【００７４】
以下、使用者が、上述した検出装置１０６の搬送装置モデル１０４Ｍ（図６）を選択した場合について説明する。データ入力部２０は、使用者が入力した入力データを、Ｉ／Ｏインターフェース１８を介して、ＣＰＵ１２に送信する。
【００７５】
ＣＰＵ１２は、受信した入力データに応じて、システムメモリ１４に記憶された複数種類の検出装置モデルの中から、検出装置モデル１０６Ｍを読み出し、仮想空間２００に配置する。
【００７６】
このとき、ＣＰＵ１２は、検出装置モデル１０６Ｍがターンテーブルモデル１２８Ｍの上方（すなわち、搬送装置座標系モデルＣＣＭのｚ軸プラス方向）に位置するように、配置する。
【００７７】
これとともに、ＣＰＵ１２は、上述したセンサ座標系ＣＳに対応するセンサ座標系モデルＣＳＭを仮想空間２００に配置する。こうして、図６に示すように、検出装置モデル１０６Ｍが仮想空間２００に配置される。
【００７８】
このように、本実施形態においては、ＣＰＵ１２は、検出装置モデル１０６Ｍを仮想空間２００に配置する検出装置モデル配置部３０（図１）として機能する。
【００７９】
このステップＳ３の結果、ロボットモデル１０２Ｍ、搬送装置モデル１０４Ｍ、および検出装置モデル１０６Ｍを有する搬送システムモデル１００Ｍが、仮想空間２００内で構築される。
【００８０】
ステップＳ４において、ＣＰＵ１２は、仮想軌道Ｔ（図７）の半径Ｒを決定する。この仮想軌道Ｔは、実空間で搬送装置１０４がターンテーブル１２８によってワークＷｒを搬送する円弧状の軌道に対応する、仮想空間２００内の軌道である。
【００８１】
換言すれば、この仮想軌道Ｔは、後述するステップＳ８を実行するときに、搬送装置モデル１０４Ｍが仮想空間２００においてターンテーブルモデル１２８Ｍの上に載置されたワークモデルを該ターンテーブルモデル１２８Ｍによって搬送する軌道である。
【００８２】
仮想軌道Ｔは、後述するステップＳ８でワークモデルを仮想空間２００にてターンテーブルモデル１２８Ｍの上に配置するときの、該ターンテーブルモデル１２８Ｍ上の位置を規定する。
【００８３】
一例として、ＣＰＵ１２は、使用者が仮想軌道Ｔの半径Ｒを入力可能とするための入力画像データを生成し、表示部２２に表示する。使用者は、データ入力部２０を操作して、表示部２２に表示された入力画像に所望の半径Ｒを入力する。
【００８４】
データ入力部２０は、使用者が入力した半径Ｒの入力データを、Ｉ／Ｏインターフェース１８を介して、ＣＰＵ１２に送信する。ＣＰＵ１２は、受信した入力データに従って、仮想軌道Ｔの半径Ｒを決定する。その結果、仮想軌道Ｔの半径Ｒが、図７に示すように決定される。本実施形態においては、半径Ｒは、搬送装置座標系モデルＣＣＭのｚ軸を中心とした円の半径に相当する。
【００８５】
このように、本実施形態においては、ＣＰＵ１２は、仮想軌道Ｔの半径Ｒを決定する軌道決定部３２（図１）として機能する。
【００８６】
なお、仮想軌道Ｔの半径Ｒは、ターンテーブルモデル１２８Ｍの外周縁からの距離（例えば、１０ｍｍ）として定義されてもよい。この場合、使用者がターンテーブルモデル１２８Ｍの外周縁からの距離を入力可能とするための入力画像データを生成し、表示部２２に表示する。ＣＰＵ１２は、入力された外周縁からの距離に従って、仮想軌道Ｔの半径Ｒを決定する。
【００８７】
ステップＳ５において、ＣＰＵ１２は、検出装置モデル１０６Ｍの位置を決定する。具体的には、ＣＰＵ１２は、上述のステップＳ３にて仮想空間２００に配置された検出装置モデル１０６Ｍの位置を、そのセンサ座標系モデルＣＳＭのｚ軸が、上述のステップＳ４で決定された仮想軌道Ｔの上方（すなわち、搬送装置座標系モデルＣＣＭのｚ軸プラス方向）に配置されるように、決定する。
【００８８】
そして、ＣＰＵ１２は、図８に示すように、検出装置モデル１０６Ｍの位置を、図８中の点線１０６Ｍ’で示す、ステップＳ３の終了時点での位置から、仮想空間２００内で移動させる。その結果、検出装置モデル１０６Ｍは、そのセンサ座標系モデルＣＳＭのｚ軸が仮想軌道Ｔの上方に配置されるように、ターンテーブルモデル１２８Ｍに対して位置決めされる。
【００８９】
このように、本実施形態においては、ＣＰＵ１２は、検出装置モデル１０６Ｍの位置を決定するモデル位置決定部３４（図１）として機能する。
【００９０】
ステップＳ６において、ＣＰＵ１２は、追従動作範囲を仮想空間２００において設定する。この追従動作範囲は、後述するステップＳ８を実行するときに、搬送装置モデル１０４Ｍが搬送するワークモデルにロボットモデル１０２Ｍがロボットハンドモデル１１６Ｍを追従させる動作を行うときの、仮想空間２００における動作範囲である。
【００９１】
一例として、ＣＰＵ１２は、追従動作範囲を規定する角度θ（図１０）を使用者が入力可能とするための入力画像データを生成し、表示部２２に表示する。使用者は、データ入力部２０を操作して、表示部２２に表示された入力画像に所望の角度θを入力する。
【００９２】
データ入力部２０は、使用者が入力した角度θの入力データを、Ｉ／Ｏインターフェース１８を介して、ＣＰＵ１２に送信する。ＣＰＵ１２は、受信した入力データに従って、追従動作範囲の上流端２０２と下流端２０４を、ステップＳ４で決定した仮想軌道Ｔ上に設定する。
【００９３】
このとき、上流端２０２は、検出装置モデル１０６Ｍの下流側に配置される。その結果、図９および図１０に示すように、追従動作範囲は、上流端２０２および下流端２０４の間の範囲として、設定される。
【００９４】
このように、本実施形態においては、ＣＰＵ１２は、追従動作範囲を仮想空間２００において設定する動作範囲設定部３６（図１）として機能する。
【００９５】
なお、ＣＰＵ１２は、追従動作範囲が設定されたときに、データ入力部２０からの入力データに応じて、追従動作範囲の上流端２０２または下流端２０４を仮想空間２００内で移動させてもよい。
【００９６】
例えば、使用者は、追従動作範囲が設定されたとき、データ入力部２０（例えばマウス）を操作して、表示部２２に表示された上流端２０２または下流端２０４を移動させる（例えば、ドラッグアンドドロップ）。ＣＰＵ１２は、使用者によるデータ入力部２０からの入力データに応じて、上流端２０２または下流端２０４を仮想空間２００内で移動させる。
【００９７】
なお、使用者の入力データに応じて上流端２０２または下流端２０４を移動させた結果、検出装置モデル１０６Ｍの、搬送装置座標系モデルＣＣＭのｘ-ｙ平面における位置が、追従動作範囲内となる場合に、上流端２０２または下流端２０４の移動を禁止するか、または、表示部２２に警告画像を表示してもよい。
【００９８】
ステップＳ７において、ＣＰＵ１２は、後述するステップＳ８を実行するときに仮想空間２００にワークモデルの供給するときの供給方法を決定する。ワークモデルの供給方法に関するパラメータとして、例えば、ワークモデルの供給範囲、ワークモデルの搬送速度、ワークモデルの供給個数、ワークモデルの間隔、および、ワークモデルの位置および姿勢のオフセット量がある。
【００９９】
ワークモデルの供給範囲は、後述するステップＳ８を実行するときに、仮想空間２００において搬送装置モデル１０４Ｍがワークモデルを搬送する範囲であって、仮想軌道Ｔ上に配置される上流端および下流端によって画定される。
【０１００】
この供給範囲の上流端は、ステップＳ８でワークモデルをターンテーブルモデル１２８Ｍ上に載置する位置を規定する。また、供給範囲の下流端は、仮想空間２００で搬送装置モデル１０４Ｍがワークモデルを搬送する経路の終点を規定する。一例として、ワークモデルの供給範囲は、角度（例えば、１８０°）で規定される。
【０１０１】
ワークモデルの搬送速度は、後述のステップＳ８を実行するときに、搬送装置モデル１０４Ｍがワークモデルを搬送するときの速度であって、ターンテーブルモデル１２８Ｍの回転速度に相当する。
【０１０２】
ワークモデルの供給個数は、後述のステップＳ８を実行するときに、ターンテーブルモデル１２８Ｍの上に供給するワークモデルの総数である。ワークモデルの間隔は、後述のステップＳ８でターンテーブルモデル１２８Ｍの上にワークモデルを供給するときの、互いに隣接する２つのワークモデルの間の距離である。
【０１０３】
ワークモデルの位置のオフセット量は、後述のステップＳ８でターンテーブルモデル１２８Ｍの上にワークモデルを供給するときの、仮想軌道Ｔからのオフセット量（例えば、仮想軌道Ｔから径方向に±１０ｍｍ）である。
【０１０４】
ワークモデルの姿勢のオフセット量は、後述のステップＳ８でターンテーブルモデル１２８Ｍの上にワークモデルを供給するときの、ワークモデルの姿勢（例えば、搬送装置座標系モデルＣＣＭのｚ軸方向からワークモデルを見たときの、搬送装置座標系モデルＣＣＭのｙ軸に対する該ワークモデルの長手方向の角度）のオフセット量（例えば、±５°）である。
【０１０５】
一例として、ＣＰＵ１２は、ワークモデルの供給方法に関するパラメータ（すなわち、ワークモデルの供給範囲、ワークモデルの搬送速度、ワークモデルの供給個数、ワークモデルの間隔、および、ワークモデルの位置および姿勢のオフセット量）を使用者が入力可能とするための入力画像データを生成し、表示部２２に表示する。
【０１０６】
使用者は、データ入力部２０を操作して、表示部２２に表示された入力画像に所望のパラメータを入力する。データ入力部２０は、使用者が入力した入力データを、Ｉ／Ｏインターフェース１８を介して、ＣＰＵ１２に送信する。
【０１０７】
ＣＰＵ１２は、受信した入力データに含まれるパラメータに従って、後述のステップＳ８を実行するときのワークモデルの供給方法を決定する。例えば、使用者が、ワークモデルの供給範囲を「１８０°」と入力した場合、ＣＰＵ１２は、図１１および図１２に示すように、供給範囲の上流端２０６と下流端２０８とを、ステップＳ４で決定した半径Ｒの仮想軌道Ｔ上に、設定する。
【０１０８】
このとき、供給範囲の上流端２０６は、追従動作範囲の上流端２０２の上流側に配置される一方、供給範囲の下流端２０８は、追従動作範囲の下流端２０４の下流側に配置される。こうして、ワークモデルの供給範囲は、図９および図１０に示すように、上流端２０６および下流端２０８の間の範囲として、設定される。
【０１０９】
また、ＣＰＵ１２は、使用者が入力した入力データに従って、後述のステップＳ８を実行するときに用いる、ワークモデルの搬送速度、ワークモデルの供給個数、ワークモデルの間隔、および、ワークモデルの位置および姿勢のオフセット量といった、ワークモデルの供給方法に関する各種パラメータを、設定する。
【０１１０】
このように、本実施形態においては、ＣＰＵ１２は、仮想空間２００にワークモデルを供給するときの供給方法を決定する供給決定部３８（図１）として機能する。
【０１１１】
ステップＳ８において、ＣＰＵ１２は、仮想空間２００で搬送システムモデル１００Ｍを動作させるシミュレーションを実行する。具体的には、ＣＰＵ１２は、ステップＳ７で決定した供給範囲の上流端２０６の位置に、ワークモデルＷＭを配置する。
【０１１２】
このとき、ＣＰＵ１２は、ステップＳ７で決定したワークモデルＷＭの位置および姿勢のオフセット量に従って、ワークモデルＷＭを配置する。その結果、図１２に示すように、ワークモデルＷＭが仮想空間２００に配置される。
【０１１３】
このように、本実施形態においては、ＣＰＵ１２は、ワークモデルＷＭを仮想空間２００において搬送装置モデル１０４Ｍの上に配置するワークモデル配置部４２（図１）として機能する。
【０１１４】
次いで、ＣＰＵ１２は、仮想空間２００において搬送装置モデル１０４Ｍを動作させ、搬送装置モデル１０４Ｍは、ターンテーブルモデル１２８Ｍを図１２中の矢印ＡＭで示す方向へ、搬送装置座標系モデルＣＣＭのｚ軸周りに回転させる。
【０１１５】
このとき、ＣＰＵ１２は、ステップＳ７で決定したワークモデルＷＭの搬送速度に従って、ターンテーブルモデル１２８Ｍを回転させる。その結果、ターンテーブルモデル１２８Ｍ上のワークモデルＷＭは、仮想空間２００内で仮想軌道Ｔに沿って矢印ＡＭの方向へ搬送される。
【０１１６】
最初のワークモデルＷＭをターンテーブルモデル１２８Ｍ上に配置した後、ＣＰＵ１２は、ステップＳ７で決定したワークモデルＷＭの供給個数および間隔に従って、供給範囲の上流端２０６の位置に、ワークモデルＷＭを連続的に配置する。
【０１１７】
次いで、ＣＰＵ１２は、仮想空間２００において検出装置モデル１０６Ｍを動作させ、検出装置モデル１０６Ｍは、搬送中のワークモデルＷＭを検出する。ここで、上述のステップＳ５において、検出装置モデル１０６Ｍは、そのセンサ座標系モデルＣＳＭのｚ軸（すなわち、検出装置モデル１０６Ｍの視線方向）が仮想軌道Ｔの上方に配置されるように、位置決めされている。
【０１１８】
したがって、検出装置モデル１０６Ｍは、搬送中のワークモデルＷＭの全体を検出できる。ＣＰＵ１２は、検出装置モデル１０６Ｍの視線データと、ワークモデルＷＭの搬送装置座標系モデルＣＣＭにおける位置とに基づいて、検出装置モデル１０６Ｍが仮想空間２００内でワークモデルＷＭを検出したときに得られるべき仮想検出画像（仮想検出結果）を生成する。
【０１１９】
ついで、ＣＰＵ１２は、生成した仮想検出画像から、ロボット座標系モデルＣＲＭにおけるワークモデルＷＭの位置および姿勢を取得する。そして、ＣＰＵ１２は、取得したワークモデルＷＭの位置および姿勢と、ステップＳ４で決定した仮想軌道Ｔの半径Ｒと、ステップＳ６で設定した追従動作範囲と、ロボットプログラムとに基づいて、ロボットモデル１０２Ｍを仮想空間２００内で動作させる。
【０１２０】
具体的には、ＣＰＵ１２は、ツール座標系モデルＣＴＭの原点を搬送中のワークモデルＷＭの所定位置（例えばワークモデルＷＭの中心位置）に継続して配置するように、ツール座標系モデルＣＴＭを順次設定する。
【０１２１】
ＣＰＵ１２は、ツール座標系モデルＣＴＭによって規定される位置および姿勢にロボットハンドモデル１１６Ｍを配置するように、ロボットモデル１０２Ｍを仮想空間２００内で動作させる。
【０１２２】
こうして、ロボットモデル１０２Ｍは、仮想空間２００において、ロボットハンドモデル１１６Ｍを追従動作範囲内でワークモデルＷＭに追従させる。なお、上述のロボットプログラムは、システムメモリ１４に予め記憶される。
【０１２３】
次いで、ＣＰＵ１２は、ロボットモデル１０２Ｍを仮想空間２００内で動作させ、ロボットハンドモデル１１６ＭによってワークモデルＷＭを把持する。
【０１２４】
ステップＳ７で決定したワークモデルの供給方法（例えば、ワークモデルＷＭの搬送速度、間隔、位置および姿勢のオフセット量といった各種パラメータ）に対してロボットプログラムが適切に構築されていた場合、図１３に示すように、ロボットハンドモデル１１６Ｍは、仮想空間２００においてワークモデルＷＭを適切に把持できる。
【０１２５】
一方、ロボットプログラムが適切に構築されていなかった場合、ロボットハンドモデル１１６Ｍは、ワークモデルＷＭを把持し損なうことになる。この場合、ＣＰＵ１２は、表示部２２に警告画像を表示してもよい。
【０１２６】
ＣＰＵ１２は、以上に述べた搬送システムモデル１００Ｍの動作のシミュレーションを実行する。したがって、本実施形態においては、ＣＰＵ１２は、シミュレーションを実行するシミュレーション実行部４０（図１）として機能する。
【０１２７】
以上のように、本実施形態においては、ＣＰＵ１２は、搬送装置１０４によってワークを円弧状の軌道に沿って搬送し、搬送中のワークをロボット１０２で追従して把持するワーク搬送システム１００の動作をシミュレーションすることができる。
【０１２８】
この構成によれば、ワーク搬送システム１００が実空間で適正に動作するか否かを事前にシミュレーションすることができ、シミュレーションの結果、ワークの供給方法（ワークの搬送速度、間隔、位置および姿勢のオフセット量といった各種パラメータ）、またはロボットプログラムの妥当性について、検証することができる。したがって、ワーク搬送システム１００の立ち上げ作業に掛かる労力および時間を、大幅に縮減できる。
【０１２９】
また、本実施形態においては、ＣＰＵ１２は、ステップＳ４で仮想軌道Ｔの半径Ｒを決定し、ステップＳ４で決定した半径Ｒに基づいて、搬送システムモデル１００Ｍの動作のシミュレーションを実行している。
【０１３０】
この構成によれば、搬送装置１０４によるワークの搬送軌道が互いに異なる種々のアプリケーションに関して、ワーク搬送システム１００の動作のシミュレーションを行うことができる。
【０１３１】
また、本実施形態においては、ＣＰＵ１２は、ステップＳ４で決定した半径Ｒに応じて、検出装置モデル１０６Ｍの位置を最適化している（ステップＳ５）。この構成によれば、使用者がステップＳ４で仮想軌道Ｔの半径を任意に決定したとしても、ステップＳ８の実行時において、検出装置モデル１０６Ｍは、搬送中のワークモデルＷＭを仮想空間２００内で確実に検出できる。
【０１３２】
また、本実施形態においては、使用者は、追従動作範囲を角度θによって規定できる。この構成によれば、使用者は、ステップＳ８の実行時にワークモデルＷＭをロボットハンドモデル１１６Ｍによって追従させる範囲を、円弧状の仮想軌道Ｔに対して、直観的且つ簡単に設定できる。
【０１３３】
なお、ＣＰＵ１２は、上述のステップＳ８において、ロボットハンドモデル１１６ＭでワークモデルＷＭを把持した後に、把持した該ワークモデルＷＭを、搬送装置モデル１０４Ｍとは別の仮想空間２００における場所まで搬送する動作のシミュレーションを実行してもよい。
【０１３４】
このようなシミュレーションについて、図１４を参照して説明する。このシミュレーションを実行する場合、例えば、ステップＳ２において、ＣＰＵ１２は、第２の搬送装置モデル１３２Ｍを仮想空間２００に配置する。
【０１３５】
第２の搬送装置モデル１３２Ｍは、支持部モデル１３６Ｍおよび１３８Ｍと、該支持部モデル１３６Ｍおよび１３８Ｍに対して可動なコンベアモデル１３４Ｍとを有する。第２の搬送装置モデル１３２Ｍは、第２の搬送装置座標系モデルＣＣＭ２を有する。第２の搬送装置モデル１３２Ｍは、仮想空間２００において、コンベアモデル１３４Ｍを、第２の搬送装置座標系モデルＣＣＭ２のｘ軸プラス方向へ移動させる。
【０１３６】
第２の搬送装置モデル１３２Ｍを仮想空間２００に配置するとき、ＣＰＵ１２は、ロボットモデル１０２Ｍの仮想可動範囲に、コンベアモデル１３４Ｍの少なくとも一部が含まれるように、第２の搬送装置モデル１３２Ｍを仮想空間２００に配置する。
【０１３７】
そして、ステップＳ８において、ＣＰＵ１２は、ロボットハンドモデル１１６ＭでワークモデルＷＭを把持した後に、ロボットプログラムに従ってロボットモデル１０２Ｍを動作させて、把持したワークモデルＷＭを、移動中のコンベアモデル１３４Ｍの上に載置する。
【０１３８】
第２の搬送装置モデル１３２Ｍは、コンベアモデル１３４Ｍの上に載置されたワークモデルＷＭを、第２の搬送装置座標系モデルＣＣＭ２のｘ軸プラス方向へ搬送する。ＣＰＵ１２は、このような動作のシミュレーションを実行することもできる。
【０１３９】
なお、ＣＰＵ１２は、ステップＳ８において、第２の搬送装置モデル１３２Ｍがコンベアモデル１３４Ｍによって搬送するワークモデルＷＭを、ロボットハンドモデル１１６Ｍによって把持し、把持した該ワークモデルＷＭをターンテーブルモデル１２８Ｍの上に置く動作のシミュレーションを実行してもよい。
【０１４０】
また、ＣＰＵ１２は、第２の搬送装置モデル１３２Ｍのコンベアモデル１３４Ｍを停止させた状態で、ステップＳ８において、ロボットハンドモデル１１６ＭでワークモデルＷＭを把持した後に、把持したワークモデルＷＭを、停止したコンベアモデル１３４Ｍの上に載置する動作のシミュレーションを実行してもよい。
【０１４１】
なお、ＣＰＵ１２、システムメモリ１４、ワークメモリ１６、およびＩ／Ｏインターフェース１８を、デスクトップ型コンピュータに内蔵し、データ入力部２０（例えばキーボード）と、表示部２２（例えばＬＣＤ）とを、該デスクトップ型コンピュータに外付けしてもよい。
【０１４２】
または、ＣＰＵ１２、システムメモリ１４、ワークメモリ１６、およびＩ／Ｏインターフェース１８、データ入力部２０（例えばタッチセンサ）、および表示部２２（例えばＬＣＤ）を、１つのタブレット型コンピュータとして構成してもよい。
【０１４３】
また、シミュレーション装置１０から、システムメモリ１４、ワークメモリ１６、Ｉ／Ｏインターフェース１８、データ入力部２０（例えばタッチセンサ）、および表示部２２の少なくとも１つを省略してもよい。
【０１４４】
この場合、省略されたシステムメモリ１４、ワークメモリ１６、Ｉ／Ｏインターフェース１８、データ入力部２０（例えばタッチセンサ）、および表示部２２の少なくとも１つは、シミュレーション装置１０に外付けされる外部機器として構成され得る。
【０１４５】
また、図３に示すフローにおいて、ステップＳ３を、ステップＳ５の後に実行してもよい。例えば、ＣＰＵ１２は、ステップＳ４において、使用者からの入力データに従って仮想軌道Ｔの半径Ｒを決定し、ステップＳ５において、センサ座標系モデルＣＳＭのｚ軸が、決定された仮想軌道Ｔの上方に配置されるように、検出装置モデル１０６Ｍの位置を決定する。
【０１４６】
次いで、ステップＳ３において、ＣＰＵ１２は、直前に実行したステップＳ５で決定した仮想空間２００内の位置に検出装置モデルを配置する。その結果、図８に示すように、検出装置モデル１０６Ｍは、そのセンサ座標系モデルＣＳＭのｚ軸が仮想軌道Ｔの上方に配置されるように、仮想空間２００内に配置されることになる。
【０１４７】
また、上述のステップＳ２において、ＣＰＵ１２は、ロボットモデル１０２Ｍの仮想可動範囲に、ターンテーブルモデル１２８Ｍの少なくとも一部が含まれるように、搬送装置モデル１０４Ｍを仮想空間２００に配置してもよい。
【０１４８】
また、上述のステップＳ３において、使用者は、データ入力部２０（例えばマウス）を操作して、表示部２２に表示された検出装置モデル１０６Ｍを仮想空間２００内で移動させてもよい（例えば、ドラッグアンドドロップ）。
【０１４９】
この場合、ＣＰＵ１２は、使用者によるデータ入力部２０からの入力データに応じて、検出装置モデル１０６Ｍを仮想空間２００内で移動させる。このとき、ＣＰＵ１２は、移動した検出装置モデル１０６Ｍのセンサ座標系モデルＣＳＭのｚ軸が、ターンテーブルモデル１２８Ｍの領域から外れた場合に、検出装置モデル１０６Ｍの移動を禁止するか、または、表示部２２に警告画像を表示してもよい。
【０１５０】
また、上述のステップＳ４およびＳ５の少なくとも一方を省略することもできる。また、検出装置１０６は、３次元視覚センサに限らず、例えば近接センサのような、ワークの位置および姿勢を検出することなくワークの存在のみを非接触で検出する装置であってもよい。
【０１５１】
この場合、図３のステップＳ８において、ＣＰＵ１２は、ワークモデルＷＭを、ターンテーブルモデル１２８Ｍ上に、同じ位置および姿勢で配置する。そして、検出装置モデル１０６Ｍは、ターンテーブルモデル１２８Ｍで搬送されたワークモデルＷＭが検出装置モデル１０６Ｍの下方を通過したときに、該ワークモデルＷＭを仮想空間２００内で検出する。
【０１５２】
次いで、ＣＰＵ１２は、検出装置モデル１０６Ｍの仮想検出結果に基づいて、仮想空間２００におけるワークモデルＷＭの位置を算出し、ロボットモデル１０２ＭをワークモデルＷＭに追随させる動作のシミュレーションを実行する。
【０１５３】
また、上述の実施形態においては、ステップＳ８において、ＣＰＵ１２が供給範囲の上流端２０６の位置にワークモデルＷＭを連続的に配置する場合について述べた。しかしながら、これに限らず、ＣＰＵ１２は、第２のロボットモデルによってワークモデルＷＭをターンテーブルモデル１２８Ｍ上に供給するシミュレーションを実行してもよい。
【０１５４】
このようなシミュレーションについて、図１５を参照して説明する。図１５に示す仮想空間２００には、搬送システムモデル１００Ｍ’が配置されている。搬送システムモデル１００Ｍ’は、ロボットモデル１０２Ｍ、第２のロボットモデル１０２Ｍ’、搬送装置モデル１０４Ｍ、および検出装置モデル１０６Ｍを備える。
【０１５５】
第２のロボットモデル１０２Ｍ’は、ロボットモデル１０２Ｍと同じ構成要素モデル（すなわち、ロボットベースモデル１０８Ｍ、旋回胴モデル１１０Ｍ、ロボットアームモデル１１２Ｍ、手首部モデル１１４Ｍ、およびロボットハンドモデル１１６Ｍ）を有する。また、第２のロボットモデル１０２Ｍ’は、ロボット座標系モデルＣＲＭ’を有する。
【０１５６】
第２のロボットモデル１０２Ｍ’は、固定台モデル２１０の上に配置されたワークモデルＷＭを把持して、ワーク載置範囲内でターンテーブルモデル１２８Ｍの上に載置する。
【０１５７】
固定台モデル２１０は、第２のロボットモデル１０２Ｍ’の仮想可動範囲内の予め定められた場所に配置される。また、ワーク載置範囲は、上流端２１２と下流端２１４との間の範囲として画定される。ワーク載置範囲の上流端２１２は、追従動作範囲の下流端２０４の下流側に配置され、ワーク載置範囲の下流端２１４は、検出装置モデル１０６Ｍの上流側に配置される。
【０１５８】
本実施形態に係るシミュレーションを実行する場合、図３中のステップＳ１において、ＣＰＵ１２は、ロボットモデル１０２Ｍに加えて、第２のロボットモデル１０２Ｍ’と固定台モデル２１０とを仮想空間２００に配置する。
【０１５９】
次いで、ステップＳ６において、ＣＰＵ１２は、上述の追従動作範囲に加えて、ワーク載置範囲（すなわち、上流端２１２および下流端２１４）を仮想空間２００に設定する。次いで、ステップＳ８において、ＣＰＵ１２は、ワークモデル配置部４２として機能し、固定台モデル２１０の上にワークモデルＷＭを配置する。
【０１６０】
次いで、ＣＰＵ１２は、仮想空間２００において第２のロボットモデル１０２Ｍ’を動作させ、第２のロボットモデル１０２Ｍ’は、固定台モデル２１０の上に配置されたワークモデルＷＭをロボットハンドモデル１１６Ｍで把持する。
【０１６１】
そして、第２のロボットモデル１０２Ｍ’は、把持したワークモデルＷＭを、ステップＳ６で設定されたワーク配置範囲内で、ターンテーブルモデル１２８Ｍ上に載置する。このとき、第２のロボットモデル１０２Ｍ’は、ステップＳ４で半径Ｒを決定した仮想軌道Ｔ上に、把持したワークモデルＷＭを載置する。
【０１６２】
次いで、ＣＰＵ１２は、上述の実施形態と同様に、搬送装置モデル１０４ＭによってワークモデルＷＭを搬送し、検出装置モデル１０６Ｍによって第２のロボットモデル１０２Ｍ’が載置したワークモデルＷＭを検出し、ロボットハンドモデル１１６Ｍを追従動作範囲内でワークモデルＷＭに追従させる。
【０１６３】
なお、上述の実施形態においては、仮想空間２００内に、ロボット座標系モデルＣＲＭ（ＣＲＭ’）、ツール座標系モデルＣＴＭ、搬送装置座標系モデルＣＣＭ（ＣＣＭ２）、およびセンサ座標系モデルＣＳＭを設定した場合について述べた。しかしながら、これに限らず、仮想空間２００に１つの基準座標系モデルを設定し、該基準座標系モデルを基準として、図３中のステップＳ１〜Ｓ８を実行してもよい。
【０１６４】
また、ステップＳ４における仮想軌道Ｔの半径Ｒ、ステップＳ６における追従動作範囲、または、ステップＳ７におけるワークモデルの供給方法に関するパラメータ（すなわち、ワークモデルの供給範囲、ワークモデルの搬送速度、ワークモデルの供給個数、ワークモデルの間隔、および、ワークモデルの位置および姿勢のオフセット量）は、コンピュータプログラムに従って自動的に決定されてもよい。
【０１６５】
以上、発明の実施形態を通じて本発明を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。また、本発明の実施形態の中で説明されている特徴を組み合わせた形態も本発明の技術的範囲に含まれ得るが、これら特徴の組み合わせの全てが、発明の解決手段に必須であるとは限らない。さらに、上述の実施形態に、多様な変更または改良を加えることが可能であることも当業者に明らかである。
【０１６６】
また、特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、工程、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」、「次いで」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１６７】
１０    シミュレーション装置
１２    ＣＰＵ
１００    ワーク搬送システム
１００Ｍ，１００Ｍ’    搬送システムモデル
１０２    ロボット
１０２Ｍ，１０２Ｍ’    ロボットモデル
１０４    搬送装置
１０４Ｍ    搬送装置モデル
１０６    検出装置
１０６Ｍ    検出装置モデル
２００    仮想空間
【図１】
2018069357.tif 000003
【図２】
2018069357.tif 000004
【図３】
2018069357.tif 000005
【図４】
2018069357.tif 000006
【図５】
2018069357.tif 000007
【図６】
2018069357.tif 000008
【図７】
2018069357.tif 000009
【図８】
2018069357.tif 000010
【図９】
2018069357.tif 000011
【図１０】
2018069357.tif 000012
【図１１】
2018069357.tif 000013
【図１２】
2018069357.tif 000014
【図１３】
2018069357.tif 000015
【図１４】
2018069357.tif 000016
【図１５】
2018069357.tif 000017