(57)【特許請求の範囲】
【請求項１】
作業空間において容器内にバラ積みされた複数のワークをロボットによって順次取出す取出工程をシミュレーションするロボットシミュレーション装置であって、
前記作業空間を三次元で表現した仮想空間を作成する仮想空間作成部と、
前記容器を三次元で表現した容器モデル、及び前記複数のワークを三次元で表現した複数のワークモデルを作成するモデル作成部と、
前記容器モデルを前記仮想空間に配置するとともに、任意の姿勢を有する各々の前記ワークモデルを、各々の前記ワークモデルが互いに干渉しないように、かつ各々の前記ワークモデルが前記容器モデル内に落下するように、前記容器モデルの上方の初期位置に配置するモデル配置部と、
各々の前記ワークが、重力の作用を受けて前記初期位置から前記容器内に落下する落下動作をシミュレーションする落下動作シミュレーション部と、
前記落下動作のシミュレーションの結果として得られる各々の前記ワークモデルの位置及び姿勢に基づいて、前記ワークモデルのバラ積み状態を作成する、バラ積み状態作成部と、
を備える、ロボットシミュレーション装置。
【請求項２】
前記落下動作シミュレーション部が、各々の前記ワークモデルに作用する重力、前記ワークモデルどうしの干渉、及び各々の前記ワークモデルと前記容器モデルとの間の干渉を考慮して、前記落下動作をシミュレーションするように構成される、請求項１に記載のロボットシミュレーション装置。
【請求項３】
前記落下動作シミュレーション部は、各々の前記ワークモデルに作用する衝撃力及び摩擦力をさらに考慮して、前記落下動作をシミュレーションするように構成される、請求項２に記載のロボットシミュレーション装置。
【請求項４】
前記落下動作のシミュレーションの実行中に、各々の前記ワークモデルの位置及び姿勢を算出する位置姿勢算出部と、
前記落下動作のシミュレーションが完了したか否かを判定する判定部と、をさらに備えており、
前記判定部は、前記位置姿勢算出部によって算出される各々の前記ワークモデルの位置及び姿勢の変化量が予め定められる閾値よりも小さい場合に、前記落下動作のシミュレーションが完了したと判定するように構成される、請求項１から３のいずれか１項に記載のロボットシミュレーション装置。
【請求項５】
前記位置姿勢算出部は、前記取出工程のシミュレーションの実行中において、各々の前記ワークモデルの位置及び姿勢を算出するようにさらに構成されており、
前記落下動作シミュレーション部は、前記位置姿勢算出部によって前記取出工程のシミュレーションの実行中に得られる各々の前記ワークモデルの位置及び姿勢に基づいて、前記ワークの落下動作をシミュレーションするようにさらに構成されており、
前記バラ積み状態作成部は、前記取出工程のシミュレーションの実行中における前記落下動作のシミュレーションの結果として得られる各々の前記ワークモデルの位置及び姿勢に基づいて、前記ワークのバラ積み状態を作成するようにさらに構成される、請求項４に記載のロボットシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークの取出工程をシミュレーションするロボットシミュレーション装置に関する。
【背景技術】
【０００２】
ロボットシミュレーション装置は、ロボットによるワークのハンドリングなどの所定の動作を仮想空間内でシミュレーションするために使用される。シミュレーション結果は、ロボットの制御プログラムを評価するとともに、必要に応じて修正を加えるために利用される。
【０００３】
特許文献１には、容器内にバラ積みされている複数のワークを取出す際に、ロボットとワークとの間の干渉、及びロボットと容器との間の干渉を予測することを目的として使用される、ロボットシミュレーション装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３２６１６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば容器内にバラ積みされたワークをロボットで順次取出す際のロボットの動作をシミュレーションする場合、バラ積み状態のワークを仮想空間内に作成する必要がある。特許文献１に開示されるロボットシミュレーション装置では、各々のワークモデルの位置及び姿勢がランダムに決定される。しかしながら、ワークモデルをランダムに配置する場合、重力などの影響を考慮していないため、実際に発生しうるバラ積み状態を十分に反映していない不自然なバラ積み状態が作成されていた。
【０００６】
したがって、ワークに作用する重力及びワークに対する干渉を考慮してバラ積み状態のワークを作成できるようにしたロボットシミュレーション装置が求められている。
【課題を解決するための手段】
【０００７】
本願の１番目の態様によれば、作業空間において容器内にバラ積みされた複数のワークをロボットによって順次取出す取出工程をシミュレーションするロボットシミュレーション装置であって、前記作業空間を三次元で表現した仮想空間を作成する仮想空間作成部と、前記容器を三次元で表現した容器モデル、及び前記複数のワークを三次元で表現した複数のワークモデルを作成するモデル作成部と、前記容器モデルを前記仮想空間に配置するとともに、任意の姿勢を有する各々の前記ワークモデルを、各々の前記ワークモデルが互いに干渉しないように、かつ各々の前記ワークモデルが前記容器モデル内に落下するように、前記容器モデルの上方の初期位置に配置するモデル配置部と、各々の前記ワークが、重力の作用を受けて前記初期位置から前記容器内に落下する落下動作をシミュレーションする落下動作シミュレーション部と、前記落下動作のシミュレーションの結果として得られる各々の前記ワークモデルの位置及び姿勢に基づいて、前記ワークモデルのバラ積み状態を作成する、バラ積み状態作成部と、を備える、ロボットシミュレーション装置が提供される。
本願の２番目の態様によれば、１番目の態様に係るロボットシミュレーション装置において、前記落下動作シミュレーション部が、各々の前記ワークモデルに作用する重力、前記ワークモデルどうしの干渉、及び各々の前記ワークモデルと前記容器モデルとの間の干渉を考慮して、前記落下動作をシミュレーションするように構成される。
本願の３番目の態様によれば、２番目の態様に係るロボットシミュレーション装置において、前記落下動作シミュレーション部は、各々の前記ワークモデルに作用する衝撃力及び摩擦力をさらに考慮して、前記落下動作をシミュレーションするように構成される。
本願の４番目の態様によれば、１番目から３番目のいずれかの態様に係るロボットシミュレーション装置において、前記落下動作のシミュレーションの実行中に、各々の前記ワークモデルの位置及び姿勢を算出する位置姿勢算出部と、前記落下動作のシミュレーションが完了したか否かを判定する判定部と、をさらに備えており、前記判定部は、前記位置姿勢算出部によって算出される各々の前記ワークモデルの位置及び姿勢の変化量が予め定められる閾値よりも小さい場合に、前記落下動作のシミュレーションが完了したと判定するように構成される。
本願の５番目の態様によれば、４番目の態様に係るロボットシミュレーション装置において、前記位置姿勢算出部は、前記取出工程のシミュレーションの実行中において、各々の前記ワークモデルの位置及び姿勢を算出するようにさらに構成されており、前記落下動作シミュレーション部は、前記位置姿勢算出部によって前記取出工程のシミュレーションの実行中に得られる各々の前記ワークモデルの位置及び姿勢に基づいて、前記ワークの落下動作をシミュレーションするようにさらに構成されており、前記バラ積み状態作成部は、前記取出工程のシミュレーションの実行中における前記落下動作のシミュレーションの結果として得られる各々の前記ワークモデルの位置及び姿勢に基づいて、前記ワークのバラ積み状態を作成するようにさらに構成される。
【０００８】
これら及び他の本発明の目的、特徴及び利点は、添付図面に示される本発明の例示的な実施形態に係る詳細な説明を参照することによって、より明らかになるであろう。
【発明の効果】
【０００９】
上記構成を備えたロボットシミュレーション装置によれば、重力の影響を考慮した上で、容器モデル内にバラ積みされたワークモデルを作成できるようになり、より自然なバラ積み状態を作成できる。それによって、実際に発生しうるバラ積み状態に近い条件でワークの取出工程をシミュレーションできるようになり、シミュレーションの信頼性を向上できる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係るロボットシミュレーション装置を含む、ロボットシステムの全体配置図である。
【図２】ロボットシミュレーション装置の表示部による表示例である。
【図３】ロボットシミュレーション装置の機能ブロック図である。
【図４】バラ積み状態のワークモデルを作成する工程の流れを示すフローチャートである。
【図５Ａ】ワークモデルの配置条件を説明するための図である。
【図５Ｂ】図５Ａに示されるワークモデルのうちの１つを拡大して示す拡大図である。
【図６Ａ】初期位置にあるワークモデルを示す図である。
【図６Ｂ】初期位置から落下したワークモデルを示す図である。
【図７】ワークモデルに作用する重力、衝撃力及び摩擦力を示す図である。
【図８】ロボットシミュレーション装置の機能ブロック図である。
【図９】取出工程のシミュレーションの実行中に、バラ積み状態のワークモデルを作成する工程の流れを示すフローチャートである。
【図１０Ａ】バラ積み状態のワークモデルを示す図である。
【図１０Ｂ】ワークモデルの位置及び姿勢が変化した状態を示す図である。
【図１０Ｃ】落下動作をシミュレーションした後のワークモデルを示す図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態を説明する。図示される実施形態の構成要素は、本発明の理解を助けるために縮尺が適宜変更されている。また、同一又は対応する構成要素には、同一の参照符号が複数の図面にわたって使用される。
【００１２】
図１は、本実施形態に係るロボットシミュレーション装置１０を含む、ロボットシステム１００の全体配置図である。ロボットシミュレーション装置１０は、例えばロボットプログラムを作成し、実行できるように構成されたデジタルコンピュータである。ロボットシステム１００は、ロボット１３０をさらに備えている。ロボット１３０は、ロボット制御装置１４０によって制御される多関節ロボットである。ロボットシミュレーション装置１０とロボット制御装置１４０とは、公知の構成を有する通信手段１０２を介して互いに接続されている。通信手段１０２は、例えばロボットシミュレーション装置１０において作成された制御プログラムをロボット制御装置１４０に送信するのに使用される。
【００１３】
ロボット１３０は、例えばワーク１６０を把持可能なハンド１３２をアームの先端に備えている。ロボット１３０は、容器１５０内にバラ積みされた、すなわち不規則に配置された多数のワーク１６０からワーク１６０を順次取出すように、ロボット制御装置１４０によって制御される。
【００１４】
容器１５０は、例えば底壁１５２と、底壁１５２から概ね鉛直方向上方に延在する周壁１５４と、を有するカゴ状の形態を有している。容器１５０は上方に向かって開口しており、ロボット１３０は、容器１５０の底壁１５２及び周壁１５４によって画定される収容空間１５６に対して上方からアクセスできるようになっている。
【００１５】
図示された例では、ワーク１６０は直方体の形状を有しているものの、ワーク１６０の形状はこれには限定されない。また、容器１５０は、ロボット１３０によって収容空間１５６内にアクセス可能であれば、他の任意の形状を有していてもよい。
【００１６】
ロボットシミュレーション装置１０は、図示されないものの、各種演算処理を実行するＣＰＵと、ＣＰＵの演算結果を記憶するＲＡＭと、各種プログラムを記憶するＲＯＭと、入力デバイスと、を備えている。入力デバイスは、マウス、キーボードなどの公知の入力手段である。ロボットシミュレーション装置１０は、液晶ディスプレイなどの表示部１２をさらに備えている。
【００１７】
図２は、ロボットシミュレーション装置１０の表示部１２による表示例を示している。表示部１２には、図１に示されるロボット１３０の作業空間を三次元で表現した仮想空間が表示される。図示されるように、表示部１２の画面には、ロボット１３０を三次元で表現したロボットモデル３０と、容器１５０を三次元で表現した容器モデル５０と、ワーク１６０を三次元で表現したワークモデル６０と、がそれぞれ表示されている。また、ロボットモデル３０のハンド３２及び容器モデル５０の底壁５２及び周壁５４もそれぞれ画面上に表示される。
【００１８】
図２には二次元の情報のみが表示部１２に示されているものの、操作者は、マウス又はキーボードなどの入力デバイスを使って視点を変更することによって、各要素の位置関係を三次元空間において確認できるようになっている。
【００１９】
ロボットシミュレーション装置１０は、容器モデル５０内にバラ積みされたワークモデル６０をロボットモデル３０によって順次取出す取出工程を仮想空間内で実行できるように構成される。操作者は、仮想空間で実行されるシミュレーションの様子を確認しながら、ロボット１３０に対する制御プログラムが適切かどうかを確認できる。
【００２０】
図３は、ロボットシミュレーション装置１０の機能ブロック図である。図示されるように、ロボットシミュレーション装置１０は、仮想空間作成部１４と、モデル作成部１６と、モデル配置部１８と、落下動作シミュレーション部２０と、バラ積み状態作成部２２と、位置姿勢算出部２４と、判定部２６と、を備えている。
【００２１】
仮想空間作成部１４は、図１に示されるようなロボット１３０の作業空間を三次元で表現した仮想空間を作成する機能を有する。仮想空間作成部１４によって作成された仮想空間は、ロボットシミュレーション装置１０の表示部１２の画面上に表示される（図２参照）。
【００２２】
モデル作成部１６は、ロボット１３０、容器１５０及びワーク１６０を三次元でそれぞれ表現したロボットモデル３０、容器モデル５０及びワークモデル６０を作成する機能を有する。各々のモデル３０，５０，６０は、例えばロボットシミュレーション装置１０のＲＯＭに記憶された各要素の形状情報に従って作成される。或いは、操作者がロボットシミュレーション装置１０の入力手段を使用して各々のモデル３０，５０，６０の形状を設定できるようになっていてもよい。
【００２３】
モデル配置部１８は、モデル作成部１６によって作成されたロボットモデル３０、容器モデル５０及びワークモデル６０をそれぞれ仮想空間内の所定の位置に配置する機能を有する。
【００２４】
落下動作シミュレーション部２０は、各々のワークモデル６０に作用する重力と、ワークモデル６０どうしの干渉と、ワークモデル６０と容器モデル５０との間の干渉と、を考慮して、ワーク１６０が落下する動作をシミュレーションする機能を有する。さらに、落下動作シミュレーション部２０は、後述するように、ワークモデル６０に作用する衝撃力及び摩擦力を考慮してワーク１６０の挙動をシミュレーションするように構成されていてもよい。
【００２５】
バラ積み状態作成部２２は、ワーク１６０の落下動作のシミュレーションの結果として得られるワークモデル６０の位置及び姿勢に基づいて、複数のワークモデル６０が容器モデル５０内においてバラ積みされたバラ積み状態を作成する機能を有する。
【００２６】
位置姿勢算出部２４は、仮想空間内におけるワークモデル６０の位置及び姿勢を算出する機能を有する。ワークモデル６０の位置は、例えば仮想空間に対して設定される基準座標系におけるワークモデル６０の重心の位置に応じて定まる。また、ワークモデル６０の姿勢は、例えばワークモデル６０の重心を通る平面の傾斜角度に従って計算される。
【００２７】
判定部２６は、ワークモデル６０の落下動作が完了したか否かを判定する機能を有する。判定部２６は、例えば、位置姿勢算出部２４によって検出されるワークモデル６０の位置及び姿勢の変化量が十分に小さくなったときにワークモデル６０の落下動作が完了したと判定するように構成される。すなわち、落下動作は、各々のワークモデル６０の落下後の挙動が収束したときに完了したものとみなされる。
【００２８】
ロボットシミュレーション装置１０は、ＲＯＭに記憶された動作プログラムに従って、容器内にバラ積みされたワークを仮想空間内に作成できるように構成されている。図４は、バラ積み状態のワークモデルを作成する工程の流れを示すフローチャートである。
【００２９】
先ず、ステップＳ４０１において、仮想空間作成部１４によって、ロボット１３０の作業空間（図１参照）に対応する三次元の仮想空間を作成する。作成された仮想空間は、ロボットシミュレーション装置１０の表示部１２に表示される。
【００３０】
次いで、ステップＳ４０２において、モデル作成部１６によって、容器１５０及びワーク１６０にそれぞれ対応する三次元の容器モデル５０及びワークモデル６０を作成する。
【００３１】
ステップＳ４０３では、モデル配置部１８によって、ステップＳ４０２において作成された容器モデル５０及びワークモデル６０を仮想空間内に配置する。本実施形態において、ワークモデル６０は、容器モデル５０の上方に重力の作用を無視して配置される。
【００３２】
図５Ａは、ワークモデル６０の配置条件を説明するための図である。図５Ｂは、図５Ａに示されるワークモデル６０のうちの１つを拡大して示す拡大図である。図５Ａには、各々のワークモデル６０に対応する仮想的な球体６２が破線で描かれている。なお、球体６２は、ワークモデル６０の初期位置を決定する際に利用されるものの、表示部１２に実際に表示される必要はない。
【００３３】
図５Ｂに示されるように、球体６２は、ワークモデル６０の重心Ｇを中心とし、重心Ｇから最も遠位に位置する頂点Ｐまでの距離Ｄを半径とする球である。図示されるような直方体の形状を有するワークモデル６０の場合、各々の頂点と重心Ｇとの間の距離は互いに同一であるので、いずれの頂点を選択してもよい。
【００３４】
再び図５Ａを参照すると分かるように、各々の球体６２は、互いに重なり合うことなく、すなわち各々の球体６２の重心Ｇどうしの間の距離が２Ｄ以上離間するようにそれぞれ配置されている。このように各々のワークモデル６０を配置すれば、各々のワークモデル６０が初期位置において互いに重なり合うのを防止できる。
【００３５】
また、各々の球体６２は、容器モデル５０の周壁５４の先端５４ａから鉛直方向上方に伸ばした仮想線によって画定される領域の内側に配置されるようになっている。このような配置によれば、各々のワークモデル６０を後述するように落下させたときに、ワークモデル６０が容器モデル５０の収容空間５６内に落下するのを保証できる。このような所定の配置条件に従ってワークモデル６０を配置するようにモデル配置部１８を構成すれば、操作者の負担を低減できる。
【００３６】
なお、ワークモデル６０の位置（重心Ｇの位置）は、上記のように所定の条件に従って定められるものの、ワークモデル６０の姿勢は、例えば乱数に従ってランダムに設定される。或いは、各々のワークモデル６０の姿勢は、操作者によって任意に設定されてもよい。
【００３７】
図４に戻り、ステップＳ４０４において、落下動作シミュレーション部２０によって、ステップＳ４０３で初期位置に配置されたワークモデル６０が容器モデル５０内に落下する落下動作をシミュレーションする。すなわち、ステップＳ４０３では無視していた重力をここでは考慮して、ワークモデル６０が落下する際の挙動を計算する。
【００３８】
図６Ａは、初期位置にあるワークモデル６０ａ，６０ｂ，６０ｃを示す図である。図６Ｂは、図６Ａの初期位置からそれらワークモデル６０ａ，６０ｂ，６０ｃを落下させた状態を示す図である。図６Ｂには、参考のため、初期位置から落下する途中のワークモデル６０ａ，６０ｂ，６０ｃが破線で示されている。図６Ａ及び図６Ｂには、説明を簡単にするために、３つのワークモデル６０ａ，６０ｂ，６０ｃのみが図示されているものの、任意の数のワークモデルを配置できる。
【００３９】
ステップＳ４０４において実行される落下動作のシミュレーションにおいて、各々のワークモデル６０ａ，６０ｂ，６０ｃどうしに作用する干渉、及びワークモデル６０ａ，６０ｂ，６０ｃと容器モデル５０との間の干渉が考慮される。ここでいう２つの要素間の「干渉」とは、一方の要素の移動が他方の要素の存在によって物理的に妨げられることをいう。図６Ｂには、ワークモデル６０ａとワークモデル６０ｂとの間の干渉部Ｑ１、ワークモデル６０ｂとワークモデル６０ｃとの間の干渉部Ｑ２、ワークモデル６０ａと容器モデル５０との間の干渉部Ｑ３、及びワークモデル６０ｃと容器モデル５０との間の干渉部Ｑ４がそれぞれ示されている。
【００４０】
また、落下動作のシミュレーションにおいては、各々のワークモデル６０ａ，６０ｂ，６０ｃに作用する摩擦力及び衝撃力をさらに考慮してもよい。図７は、ワークモデル６０に作用する重力、衝撃力及び摩擦力を示す図である。図７においては、説明を簡単にするため、１つのワークモデル６０のみが示されている。
【００４１】
図７の矢印Ａ１は重力の作用方向を示している。矢印Ａ２は、ワークモデル６０が容器モデル５０の底壁５２に落下したときの衝撃力の作用方向を示している。矢印Ａ３は、ワークモデル６０と容器モデル５０の底壁５２との間に作用する摩擦力の作用方向を示している。
【００４２】
ワークモデル６０に作用する各々の力は、次の計算式（１）〜（３）に従ってそれぞれ計算される。
重力  ＝  Ｍｇ      式（１）
衝撃力  ＝  ＭＶ（１＋ｅ）／ｔ      式（２）
摩擦力  ＝  μｓＭｇ      式（３）
【００４３】
なお、「Ｍ」はワークモデル６０の質量を表しており、「ｇ」は重力加速度を表しており、「Ｖ」はワークモデル６０が容器モデル５０に衝突する直前の速度を表しており、「ｅ」は反発係数を表しており、「ｔ」はワークモデル６０と容器モデル５０との間の衝突時間を表しており、「μ」は動摩擦係数を表しており、「ｓ」はワークモデル６０と容器モデル５０との間の接触面積を表している。なお、このとき、容器モデル５０の位置は固定されているものとする。落下動作のシミュレーションに必要なパラメータは、ロボットシミュレーション装置１０のＲＯＭに記憶されているか、或いは入力手段を用いて設定される。
【００４４】
再び図４を参照すると、落下動作のシミュレーションの実行中においては、位置姿勢算出部２４によって、各々のワークモデル６０ａ，６０ｂ，６０ｃの位置及び姿勢を所定の周期で算出する（ステップＳ４０５）。
【００４５】
続いて、ステップＳ４０６において、ワークモデル６０ａ，６０ｂ，６０ｃの位置及び姿勢の変化量を計算するとともに、得られた変化量を予め定められる閾値と比較する。ステップＳ４０６において、ワークモデル６０ａ，６０ｂ，６０ｃの位置及び姿勢の変化量が閾値以上である場合、判定部２６によって、落下動作が完全に終了していないと判定される。その場合、ステップＳ４０４に戻り、落下動作のシミュレーションを継続する。
【００４６】
他方、ステップＳ４０６において、ワークモデル６０ａ，６０ｂ，６０ｃの位置及び姿勢の変化量が閾値よりも小さいと判定された場合、判定部２６によって、ワークモデル６０ａ，６０ｂ，６０ｃの落下動作が完了したと判定する。なお、ステップＳ４０６で位置の変化量と比較される閾値は、限定されないものの、例えばワークモデル６０に関連付けられる球体の半径Ｄ（図５Ｂ参照）の１００分の１の値が使用される。また、姿勢の変化量（傾斜角度の変化量）と比較される閾値は、限定されないものの、例えば０．１度である。
【００４７】
このようにして得られた落下動作が完了したときの各々のワークモデル６０ａ，６０ｂ，６０ｃの位置及び姿勢に基づいて、バラ積み状態作成部２２は、ワークモデル６０ａ，６０ｂ，６０ｃのバラ積み状態を作成する。作成されたバラ積み状態は、ワークをロボットによって順次取出す取出工程をシミュレーションするために使用される。
【００４８】
本実施形態によれば、ワークモデルに作用する重力と、ワークモデルどうしの干渉と、ワークモデルと容器モデルとの干渉と、を考慮して、容器モデル内におけるワークモデルのバラ積み状態が作成される。それにより、実際に発生しうるバラ積み状態により近い状態を仮想空間内で作成できるようになる。そして、そのようなバラ積み状態のワークを使用して、取出工程のシミュレーションを実行すれば、シミュレーションの信頼性を向上させられる。
【００４９】
また、任意にワークモデルに作用する衝撃力及び摩擦力を考慮して落下動作のシミュレーションを実行すれば、さらにより自然なバラ積み状態を仮想空間内で作成できるようになる。
【００５０】
図８は、取出工程のシミュレーションの実行中に、バラ積み状態のワークモデルを作成するように構成されたロボットシミュレーション装置１０の機能ブロック図である。図示されるように、ロボットシミュレーション装置１０は、図３に示される構成に加えて、取出工程シミュレーション部２１と、位置姿勢変化判定部２３と、初期配置設定部２５と、をさらに備えている。
【００５１】
取出工程シミュレーション部２１は、図１に示されるように、ロボット１３０によって、ワーク１６０を容器１５０から順次取出す取出工程のシミュレーションを実行する機能を有する。このような取出工程のシミュレーションは公知であるので、本明細書では詳細な説明を省略する。
【００５２】
位置姿勢変化判定部２３は、取出工程のシミュレーションの実行中に、ワークモデル６０の位置及び姿勢のうちの少なくともいずれか一方が変化したか否かを判定する機能を有する。取出工程のシミュレーションの実行中において、各々のワークモデル６０の位置及び姿勢は、位置姿勢算出部２４によって周期的に算出される。したがって、位置姿勢変化判定部２３は、位置姿勢算出部２４と協働して、上記判定を実行するように構成される。
【００５３】
初期配置設定部２５は、落下動作シミュレーション部２０によって実行されるワーク１６０の落下動作をシミュレーションする際の初期配置を設定する機能を有する。
【００５４】
図１０Ａは、容器モデル５０内にバラ積みされたワークモデル６０ａ，６０ｂ，６０ｃを示している。図１０Ｂは、ワークモデル６０ｂが容器モデル５０から取出された状態を示している。このとき、ワークモデル６０ａ，６０ｃは、重力の影響が無視されていて宙に浮いている。このように、ワークモデル６０ｂの位置及び姿勢が変化したときに、他のワークモデル６０ａ，６０ｃの位置及び姿勢が不自然な状態になる場合がある。従来技術では、この不自然な状態のまま、取出工程のシミュレーションが継続されていた。
【００５５】
本実施形態に係るロボットシミュレーション装置１０によれば、図１０Ｂに示される状態をワークモデル６０ａ，６０ｃの初期配置として、ワークの落下動作のシミュレーションを実行することにより、バラ積み状態を再度作成する。図１０Ｃは、重力の作用を考慮して、図１０Ｂに示されるワークモデル６０ａ，６０ｃを容器モデル５０内に落下させた後の状態を示している。
【００５６】
図９は、取出工程のシミュレーションの実行中に、バラ積み状態のワークモデルを作成する工程の流れを示すフローチャートである。
【００５７】
先ず、ステップＳ９０１において、取出工程シミュレーション部２１によって、容器内においてバラ積みされたワークを取出す取出工程のシミュレーションを実行する。このとき、仮想空間内のワークモデル６０は、バラ積み状態作成部２２によって、前述したような態様で容器モデル５０内においてバラ積みされている（図１０Ａ参照）。
【００５８】
ステップＳ９０２では、取出工程のシミュレーションが完了したか否かが判定される。シミュレーションが完了している場合は、終了処理を実行する。
【００５９】
ステップＳ９０２において取出工程のシミュレーションが完了していないと判定された場合、位置姿勢算出部２４によって、各々のワークモデル６０ａ，６０ｂ，６０ｃの位置及び姿勢を算出する（ステップＳ９０３）。そして、ステップＳ９０４において、位置姿勢変化判定部２３によって、ワークモデル６０ａ，６０ｂ，６０ｃの位置又は姿勢が変化したか否かが判定される。ワークモデル６０ａ，６０ｂ，６０ｃの位置又は姿勢が変化していないと判定された場合、ステップＳ９０１に戻り、取出工程のシミュレーションを継続する。
【００６０】
他方、ステップＳ９０４において、ワークモデル６０ａ，６０ｂ，６０ｃの位置又は姿勢が変化した（図１０Ｂ参照）と判定された場合、ステップＳ９０５に進む。ステップＳ９０５では、先のステップＳ９０３において算出された各々のワークモデル６０の位置及び姿勢を初期配置として設定する。
【００６１】
次いで、ステップＳ９０６において、ステップＳ９０５で設定された初期配置に従って、各々のワークモデル６０の落下動作のシミュレーションを実行する。ステップＳ９０６〜Ｓ９０８の工程は、図４のステップＳ４０４〜Ｓ４０６の工程に対応していて同様の態様で実行されうるので、詳細な説明を省略する。
【００６２】
ステップＳ９０６〜Ｓ９０８の工程に従って、バラ積み状態作成部２２によって、ワークモデルのバラ積み状態を作成したら、再びステップＳ９０１に戻り、新たに作成されたバラ積み状態のワークを使用して、ロボットによる取出工程のシミュレーションが継続される。
【００６３】
このような実施形態によれば、取出工程のシミュレーションの実行中において、ワークの位置及び姿勢の少なくともいずれか一方が変化したときに、変化後のワークの配置に基づいて、ワークのバラ積み状態が改めて作成される。それにより、取出工程のシミュレーションの実行中において、自然なバラ積み状態が常時維持されるようになる。したがって、取出工程のシミュレーションの信頼性を向上させられる。
【００６４】
以上、本発明の種々の実施形態について説明したが、他の実施形態によっても本発明の意図される作用効果を奏することができることは当業者に自明である。特に、本発明の範囲を逸脱することなく前述した実施形態の構成要素を削除又は置換することが可能であるし、公知の手段をさらに付加することもできる。また、本明細書において明示的又は暗示的に開示される複数の実施形態の特徴を任意に組合せることによっても本発明を実施できることは当業者に自明である。
【符号の説明】
【００６５】
１０    ロボットシミュレーション装置
１２    表示部
１４    仮想空間作成部
１６    モデル作成部
１８    モデル配置部
２０    落下動作シミュレーション部
２１    取出工程シミュレーション部
２２    バラ積み状態作成部
２３    位置姿勢変化判定部
２４    位置姿勢算出部
２５    初期配置設定部
２６    判定部
５０    容器モデル
６０    ワークモデル
１００    ロボットシステム
１３０    ロボット
１４０    ロボット制御装置
１５０    容器
１６０    ワーク
【図１】
0005877857.tif 000002
【図２】
0005877857.tif 000003
【図３】
0005877857.tif 000004
【図４】
0005877857.tif 000005
【図５Ａ】
0005877857.tif 000006
【図５Ｂ】
0005877857.tif 000007
【図６Ａ】
0005877857.tif 000008
【図６Ｂ】
0005877857.tif 000009
【図７】
0005877857.tif 000010
【図８】
0005877857.tif 000011
【図９】
0005877857.tif 000012
【図１０Ａ】
0005877857.tif 000013
【図１０Ｂ】
0005877857.tif 000014
【図１０Ｃ】
0005877857.tif 000015