(57)【要約】【課題】ワークの落下を考慮してシミュレーションが実行できるシミュレーション装置を提供する。【解決手段】シミュレーション装置１０は、ワーク、ワークを保持した弾性を有する吸着パッド、及び吸着パッドが取り付けられたロボットアームを含むシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際、ロボットアームの加速度とワークの加速度との差により吸着パッドに発生する負荷モーメントを導出する負荷導出部１０５と、負荷導出部１０５で導出した負荷モーメントが閾値より大きい場合に、負荷導出部１０５で導出される負荷モーメントが閾値以下となるように、シミュレーションの実行条件を変更するための処理を行なう実行条件変更部１０８と、を含む。【選択図】図２
2019141939.tif 000002
【特許請求の範囲】
【請求項１】
ワーク、前記ワークを保持した弾性を有する保持体、及び前記保持体が取り付けられたロボットアームの各モデルを含むシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際、前記ロボットアームの加速度と前記ワークの加速度との差により前記保持体に発生する負荷モーメントを導出する導出部と、
前記導出部で導出した前記負荷モーメントが閾値より大きい場合に、前記導出部で導出される負荷モーメントが前記閾値以下となるように、前記シミュレーションの実行条件を変更するための処理を行なう実行条件変更部と、
を含むシミュレーション装置。
【請求項２】
前記負荷モーメントは、前記ワークに生じるモーメントから、慣性力により発生するモーメントを差し引いて導出される請求項１に記載のシミュレーション装置。
【請求項３】
前記慣性力により発生するモーメントは、前記加速度運動が水平運動の場合、水平方向に作用する水平慣性力によるモーメントであり、前記加速度運動が水平方向に対して傾斜した運動の場合、水平方向に作用する水平慣性力によるモーメントと鉛直方向に作用する鉛直慣性力によるモーメントとの和である請求項２に記載のシミュレーション装置。
【請求項４】
前記実行条件が最大加速度の場合、前記実行条件変更部は、前記導出部で導出した負荷モーメントが閾値より大きい場合に、前記最大加速度を減少するための処理を行なう請求項１〜３のいずれか一項に記載のシミュレーション装置。
【請求項５】
前記実行条件が最大加速度の場合、前記実行条件変更部は、前記導出部で導出した負荷モーメントが閾値以下の場合に、前記最大加速度を増加するための処理を行なう請求項１〜４のいずれか一項に記載のシミュレーション装置。
【請求項６】
前記実行条件変更部は、前記実行条件を変更するための処理が繰り返された場合、前記導出部で導出した前記負荷モーメントが前記閾値以下でかつ前記閾値に最も近くなる実行条件を、最終的な実行条件として提示する請求項１〜５のいずれか一項に記載のシミュレーション装置。
【請求項７】
前記導出部で導出した負荷モーメントが前記閾値より大きい場合に、前記ワークの前記保持体による保持が解除されると判定する判定部を更に含む請求項１〜６のいずれか一項に記載のシミュレーション装置。
【請求項８】
前記実行条件変更部は、前記ロボットアームの搬送経路において前記ロボットアームに対する前記動作指令に基づいて分けられる複数の区間のうち、前記判定部により前記ワークが落下すると判定されたタイミングを含む区間について、前記シミュレーションの実行条件を変更するか、又は前記実行条件を変更するために必要な提示を行なう請求項７に記載のシミュレーション装置。
【請求項９】
前記閾値は、前記シミュレーションモデルに相当するロボットアームを備えた実機を実行条件を変更して繰り返し動作させたときに、前記ワークの前記保持体による保持が解除されなかった実行条件で発生する負荷モーメントのうちの最大値として設定される請求項１〜８のいずれか一項に記載のシミュレーション装置。
【請求項１０】
前記実行条件に従うシミュレーションの結果を表示する表示部をさらに有する請求項１〜９のいずれか一項に記載のシミュレーション装置。
【請求項１１】
ワーク、前記ワークを保持した弾性を有する保持体、及び前記保持体が取り付けられたロボットアームの各モデルを含むシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際、前記ロボットアームの加速度と前記ワークの加速度との差により前記保持体に発生する負荷モーメントを導出する導出工程と、
前記導出工程で導出した前記負荷モーメントが閾値より大きい場合に、前記導出工程で導出される負荷モーメントが前記閾値以下となるように、前記シミュレーションの実行条件を変更するための処理を行なう実行条件変更工程と、
を含むシミュレーション方法。
【請求項１２】
ワーク、前記ワークを保持した弾性を有する保持体、及び前記保持体が取り付けられたロボットアームの各モデルを含むシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際、前記ロボットアームの加速度と前記ワークの加速度との差により前記保持体に発生する負荷モーメントを導出する導出工程と、
前記導出工程で導出した前記負荷モーメントが閾値より大きい場合に、前記導出工程で導出される負荷モーメントが前記閾値以下となるように、前記シミュレーションの実行条件を変更するための処理を行なう実行条件変更工程と、
を、コンピュータに実行させるシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置、シミュレーション方法及びシミュレーションプログラムに関する。
【背景技術】
【０００２】
工場の製造ラインなどにおいて、部品や製品等のワークを搬送する装置の一つとしてピックアンドプレース装置がある。ピックアンドプレース装置は、例えば、吸着パッドなど、ワークを吸着することによって保持する保持体を備え、所定の場所でワークを吸着して保持し、保持した状態でワークを搬送し、目的の場所で吸着を解除してワークを載置する。
【０００３】
ピックアンドプレース装置の最適な実行条件を決定するために、ワークモデル及びハンドリングロボットのモデルを用いたシミュレーション装置が提案されている（例えば、特許文献１参照）。
【０００４】
特許文献１に記載の技術によれば、ハンドリングロボットの動作速度及びワークモデルの質量からワークモデルにかかる振動加速度を算出し、振動加速度に基づいて、装置の動作条件を決定可能とする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−２５６５７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術では、シミュレーションにおいてワークモデルにかかる振動を確認できるものの、どれだけ振動すればハンドリングロボットによる保持が失敗し、ワークが落下するかを確認できない。
【０００７】
本発明は、上記の点に鑑みてなされたものであり、ワークの落下を考慮してシミュレーションが実行できるシミュレーション装置、シミュレーション方法及びシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るシミュレーション装置は、ワーク、ワークを保持した弾性を有する保持体、及び保持体が取り付けられたロボットアームの各モデルを含むシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際、ロボットアームの加速度とワークの加速度との差により保持体に発生する負荷モーメントを導出する導出部と、導出部で導出した負荷モーメントが閾値より大きい場合に、導出部で導出される負荷モーメントが閾値以下となるように、シミュレーションの実行条件を変更するための処理を行なう実行条件変更部と、を含む。
【０００９】
負荷モーメントは、ワークに生じるモーメントから、慣性力により発生するモーメントを差し引いて導出され得る。
【００１０】
慣性力により発生するモーメントは、加速度運動が水平運動の場合、水平方向に作用する水平慣性力によるモーメントであり、加速度運動が水平方向に対して傾斜した運動の場合、水平方向に作用する水平慣性力によるモーメントと鉛直方向に作用する鉛直慣性力によるモーメントとの和であり得る。
【００１１】
実行条件が最大加速度の場合、実行条件変更部は、導出部で導出した負荷モーメントが閾値より大きい場合に、最大加速度を減少するための処理を行ない得る。
【００１２】
実行条件が最大加速度の場合、実行条件変更部は、導出部で導出した負荷モーメントが閾値以下の場合に、最大加速度を増加するための処理を行ない得る。
【００１３】
実行条件変更部は、実行条件を変更するための処理が繰り返された場合、導出部で導出した負荷モーメントが閾値以下でかつ閾値に最も近くなる実行条件を、最終的な実行条件として提示し得る。
【００１４】
導出部で導出した負荷モーメントが閾値より大きい場合に、ワークの保持体による保持が解除される、すなわち、ワークが保持体から落下すると判定する判定部を更に含み得る。
【００１５】
実行条件変更部は、ロボットアームの搬送経路においてロボットアームに対する動作指令に基づいて分けられる複数の区間のうち、判定部によりワークが落下すると判定されたタイミングを含む区間について、シミュレーションの実行条件を変更するか、又は実行条件を変更するために必要な提示を行ない得る。
【００１６】
閾値は、シミュレーションモデルに相当するロボットアームを備えた実機を実行条件を変更して繰り返し動作させたときに、ワークの保持体による保持が解除されなかった実行条件で発生する負荷モーメントのうちの最大値として設定され得る。
【００１７】
上記のシミュレーション装置においては、実行条件に従うシミュレーションの結果を表示する表示部をさらに有する。
【００１８】
本発明に係るシミュレーション方法は、ワーク、ワークを保持した弾性を有する保持体、及び保持体が取り付けられたロボットアームの各モデルを含むシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際、ロボットアームの加速度とワークの加速度との差により保持体に発生する負荷モーメントを導出する導出工程と、導出工程で導出した負荷モーメントが閾値より大きい場合に、導出工程で導出される負荷モーメントが閾値以下となるように、シミュレーションの実行条件を変更するための処理を行なう実行条件変更工程と、を含む。
【００１９】
本発明に係るシミュレーションプログラムによれば、ワーク、ワークを保持した弾性を有する保持体、及び保持体が取り付けられたロボットアームの各モデルを含むシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際、ロボットアームの加速度とワークの加速度との差により保持体に発生する負荷モーメントを導出する導出工程と、導出工程で導出した負荷モーメントが閾値より大きい場合に、導出工程で導出される負荷モーメントが閾値以下となるように、シミュレーションの実行条件を変更するための処理を行なう実行条件変更工程と、をコンピュータに実行させる。
【発明の効果】
【００２０】
本発明によれば、負荷モーメントが閾値より大きい場合に、閾値以下となるようにシミュレーションの実行条件を変更するための処理を行なう。負荷モーメントが閾値以下になればワークの落下を回避できるため、ワークの落下を考慮したシミュレーションを提供できる。
【図面の簡単な説明】
【００２１】
【図１】第１実施形態に係るシミュレーション装置のハードウェア構成を示すブロック図である。
【図２】シミュレーション装置の機能構成の例を示すブロック図である。
【図３】ロボットが動作する座標位置の例を示す図である。
【図４】モーションプログラムの例を示す図である。
【図５】モーションパラメータの例を示す図である。
【図６】ワークの吸着の成否の様子を示す図である。
【図７】ワークにかかる下向きの力を示す図である。
【図８】ロボットアームとワークの加速度の差を示す図である。
【図９】ワークの回転運動を示す図である。
【図１０】ロボットアーム、保持体及びワークを含む物理モデルの例を示す図である。
【図１１】シミュレーション装置のＣＰＵにより実行される動作の流れを示すフローチャートである。
【図１２】鉛直運動の最大加速度（実行条件）の変更処理の流れを示すフローチャートである。
【図１３】水平運動の最大加速度（実行条件）の変更処理の流れを示すフローチャートである。
【図１４】加速時間を変更した場合の速度及び加速度の変化を示す図である。
【図１５】第２実施形態に係るシミュレーション装置のＣＰＵにより実行される動作の流れを示すフローチャートである。
【図１６】ワークにかかる力を示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【００２３】
（第１実施形態）
【００２４】
図１は、第１実施形態に係るシミュレーション装置のハードウェア構成を示すブロック図である。
【００２５】
本実施形態のシミュレーション装置１０は、対象となる装置、装置が扱うワーク及び障害物などをシミュレーションモデルとして、シミュレーションモデルの挙動を予測及び設計する。シミュレーションモデルとしては、例えば、装置等に働く物理現象を数式で表現した物理モデル、又は実機の計測データからシステム同定あるいは機械学習などにより得られた動的モデルがある。
【００２６】
本実施形態では、シミュレーションの対象となる装置は、ロボットアームを備えたロボットである。ロボットアームの先端には弾性を有する保持体が取り付けられ、ロボットは、保持体によりワークをピックアップして、搬送し、目的地にワークを載置する、いわゆるピックアンドプレース装置である。本実施形態では、特に、保持体が吸着パッドであり、ロボットアームがワークを吸着搬送する場合について説明する。
【００２７】
図１に示すように、シミュレーション装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３、ストレージ１４、入力部１５、モニタ１６、光ディスク駆動装置１７及び通信インタフェース１８を有する。各構成は、バス１９を介して相互に通信可能に接続されている。
【００２８】
本実施形態では、ＲＯＭ１２又はストレージ１４には、シミュレーションを実行するシミュレーションプログラムが格納されている。ＣＰＵ１１は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、ＣＰＵ１１は、ＲＯＭ１２又はストレージ１４からプログラムを読み出し、ＲＡＭ１３を作業領域としてプログラムを実行する。ＣＰＵ１１は、ＲＯＭ１２又はストレージ１４に記録されているプログラムにしたがって、上記各構成の制御及び各種の演算処理を行う。
【００２９】
ＲＯＭ１２は、各種プログラム及び各種データを格納する。ＲＡＭ１３は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ１４は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【００３０】
入力部１５は、キーボード１５１、及びマウス１５２等のポインティングデバイスを含み、各種の入力を行うために使用される。モニタ１６は、例えば、液晶ディスプレイであり、ワークの吸着の成否等の各種の情報を表示する。モニタ１６は、タッチパネル方式を採用して、入力部１５として機能してもよい。光ディスク駆動装置１７は、各種の記録媒体(ＣＤ−ＲＯＭ又はブルーレイディスクなど)に記憶されたデータの読み込みや、記録媒体に対するデータの書き込み等を行う。
【００３１】
通信インタフェース１８は、他の機器と通信するためのインタフェースであり、例えば、イーサネット（登録商標）、ＦＤＤＩ又はＷｉ−Ｆｉ（登録商標）等の規格が用いられる。
【００３２】
次に、シミュレーション装置の機能構成について説明する。
【００３３】
図２は、シミュレーション装置の機能構成の例を示すブロック図である。図３は、ロボットが動作する座標位置の例を示す図、図４は、モーションプログラムの例を示す図、図５は、モーションパラメータの例を示す図である。図６は、ワークの吸着の成否の様子を示す図である。
【００３４】
図２に示すように、シミュレーション装置１０は、機能構成として、モーションプログラム編集部１０１、モーションパラメータ編集部１０２、モーション指令値計算部１０３、ダイナミクス計算部１０４、負荷導出部１０５、落下判定部１０６、３Ｄ表示部１０７及び実行条件変更部１０８を有する。各機能構成は、ＣＰＵ１１がＲＯＭ１２又はストレージ１４に記憶されたシミュレーションプログラムを読み出し、ＲＡＭ１３に展開して実行することにより実現される。
【００３５】
モーションプログラム編集部１０１は、シミュレーションにおけるロボットの所望の動作をユーザから受け付けたり、動作の編集を受け付けたりする。ユーザは、モニタ１６を参照しつつ、入力部１５によりモーションプログラムを入力又は編集できる。なお、モーションプログラム編集部１０１は、装置及び障害物の配置情報から、装置の動作モーションプログラムを自動的に生成するモーションプランニング部として機能してもよい。
【００３６】
モーションプログラム編集部１０１では、例えば、図３に示すような動作をロボットアームに実行させるために、図４に示すモーションプログラムが設定される。図３に示す動作の例では、位置ｐ０からロボットアームの移動が開始し、位置ｐ１及び位置ｐ２を経て、位置ｐ３にロボットアームが到達する動作を示す。位置ｐ０は、ｘｙｚ座標系において座標（０，０，０）、すなわち原点を表す。位置ｐ１は、座標（０，０，３０）であり、位置ｐ０からｚ方向（高さ方向）に座標で定義される単位で３０だけ移動した位置である。位置ｐ２は、座標（５０，０，３０）であり、位置ｐ１からさらに、ｘ方向に５０進んだ位置である。位置ｐ３は、座標（５０，０，０）であり、位置ｐ２からさらに、−ｚ方向に３０進んだ位置である。このように、図３に示す動作は、ロボットアームが原点から上昇する鉛直運動と、高さを維持した水平運動と、下降する鉛直運動とによる３つの運動が連続する動作である。
【００３７】
このような動作のための命令は、モーションプログラムとして、例えば図４に示すようにモーションプログラム編集部１０１に入力される。図４に示すモーションプログラムは、行番号の昇順に命令を実行させるための三行の動作指令を含む。ピックアンドプレース装置の場合、ピックアップ及びプレースの動作もモーションプログラムに含まれ得る。ロボットの移動だけでなく、ワークの保持（吸着）及び解放等の動作についても、モーションプログラムにより命令される。
【００３８】
モーションパラメータ編集部１０２は、モーションプログラムにより命令される動作のパラメータの編集をユーザから受け付ける。ユーザは、モニタ１６を参照しつつ、入力部１５によりモーションパラメータを入力又は編集できる。モーションパラメータは、例えば、図５に示すように、各命令による動作における最大速度及び最大加速度を決める。最大速度及び最大加速度は、ロボットに予め設定されている基準速度及び基準加速度に対する割合として設定され得る。基準速度に対する割合としての入力を受け付けることにより、ユーザがロボットの常識的な動作速度を知らずに、機能的又は構造的に無理のある動作速度が入力されることを抑止できる。あるいは、モーションパラメータ編集部１０２は、割合に代えて、速度及び加速度の物理量の数値を受け付けてもよい。なお、本明細書では、「加速度」は、加速する際の加速度（正の値）、及び減速する際の減速度（負の値）の両方の概念を含む用語として使用する。したがって、図５の最大加速度のパラメータは、加速の際の最大加速度だけでなく、減速の際の最大減速度も含む。ただし、最大加速度と最大減速度のパラメータが同じ値として一律に設定される必要はなく、それぞれ個別に設定されてもよい。
【００３９】
モーション指令値計算部１０３は、シミュレーションの開始が指示されると、モーションプログラム編集部１０１で得られたモーションプログラムのうち最初の動作のための命令を読み込む。次に、モーション指令値計算部１０３は、モーションパラメータ編集部１０２で得られたモーションパラメータのうち、命令に対応するモーションパラメータを読み込む。そして、モーション指令値計算部１０３は、読み込んだ命令とモーションパラメータから、シミュレーションで用いる動作指令値を順次計算し、出力する。同様に、モーション指令値計算部１０３は、後続の命令と対応するモーションパラメータとを順に読み込み、動作指令値を出力する。
【００４０】
ダイナミクス計算部１０４は、モーション指令値計算部１０３から出力された動作指令値と、ロボットの三次元ＣＡＤデータと、ワーク、吸着パッド（保持体）及びロボットアームの各々を表すモデルを含むシミュレーションモデルとを読み込む。ダイナミクス計算部１０４は、読み込んだ動作指令値、ＣＡＤデータ及びシミュレーションモデルから、ダイナミクス（動力学）を考慮したシミュレーションモデルの動作に関わる各種データを計算し、出力する。ロボットの三次元ＣＡＤデータ及びシミュレーションモデルは、ストレージ１４に予め格納されていてもよいし、光ディスク駆動装置１７から読み込まれて取得されてもよいし、あるいは、通信インタフェース１８を介して外部機器から取得されてもよい。なお、上記では三次元ＣＡＤデータを用いる点を例示しているが、三次元ＣＡＤデータを用いなくても、シミュレーションは実行可能である。例えば、二次元ＣＡＤデータ、ロボットの寸法データ、又はロボットの設計データ等を用いてシミュレーションを実行してもよい。
【００４１】
負荷導出部１０５は、ダイナミクス計算部１０４により計算されたシミュレーションモデルの各種データから、シミュレーションモデルが鉛直運動する際にワークにかかる下向きの力を導出する。また、ダイナミクス計算部１０４により計算されたシミュレーションモデルの各種データから、シミュレーションモデルが水平運動する際のロボットアームの加速度とワークの加速度との差に応じて吸着パッドに作用するモーメントを導出する。本明細書では、吸着パッドに発生するモーメントを、負荷モーメントという。負荷導出部１０５は、シミュレーションモデルの動作から下向きの力及び負荷モーメントを計算してもよく、また、予め登録されているテーブルから導出してもよい。負荷導出部１０５は、シミュレーション中、シミュレーションモデルの動作に従い変化する負荷モーメントを繰り返し導出する。下向きの力及び負荷モーメントの詳細は、後述する。
【００４２】
落下判定部１０６は、負荷導出部１０５により導出した下向きの力及び負荷モーメントに基づいて、ワークが吸着パッドから落下するか否かを判定する。落下判定部１０６は、シミュレーションモデルが鉛直運動する際には、下向きの力が閾値(以下、閾値Ｔｖと呼ぶ）より大きいか否かによりワークの落下を判定する。また、落下判定部１０６は、シミュレーションモデルが水平運動する際には、負荷モーメントが閾値（以下、閾値Ｔｈと呼ぶ）より大きいか否かによりワークの落下を判断する。なお、水平運動においてもワークには重力がかかるが、閾値Ｔｈは、重力に加えてどの程度の大きさの負荷モーメントが発生すればワークが落下するかという観点から定めた値である。
【００４３】
閾値Ｔｖ及び閾値Ｔｈは、いずれもワークの落下を考慮して設定される値である。例えば、閾値Ｔｖは、シミュレーションモデルに相当するロボットの実機を動作させたときに、ワークが落下しなかった実行条件で発生する下向きの力として設定され得る。好ましくは、閾値Ｔｖは、シミュレーションモデルに相当するロボットの実機を実行条件を変更して繰り返し動作させたときに、ワークが落下しなかった実行条件で発生する下向きの力のうちの最大値として設定される。同様に、閾値Ｔｈは、シミュレーションモデルに相当するロボットの実機を動作させたときに、ワークが落下しなかった実行条件で発生する負荷モーメントとして設定され得る。好ましくは、閾値Ｔｈは、シミュレーションモデルに相当するロボットの実機を実行条件を変更して繰り返し動作させたときに、ワークが落下しなかった実行条件で発生する負荷モーメントのうちの最大値として設定される。なお、閾値Ｔｖおよび閾値Ｔｈは、必ずしも実機を動作させることにより設定されなくても良い。ワーク毎の閾値を前もって蓄積したデータベースを参照し、運びたいワークと類似しているワークの鉛直運動の際の閾値及び水平運動の際の閾値を、閾値Ｔｖ及び閾値Ｔｈとして設定しても良い。
【００４４】
３Ｄ表示部１０７は、ダイナミクス計算部１０４により計算されたシミュレーションモデルの動作を、モニタ１６に表示する。３Ｄ表示部１０７は、例えば、ロボットがワークを搬送する様子を経時的に三次元で示す動画をモニタ１６に表示させる。表示は、三次元に限定されず、二次元あるいは数値であってもよい。落下判定部１０６によりワークが落下しないと判定される場合（ワークの吸着が成功した場合）、３Ｄ表示部１０７は、例えば、図６の上図に示すような表示をモニタ１６に表示する。一方、落下判定部１０６によりワークが落下すると判定される場合（ワークの吸着が失敗した場合）、３Ｄ表示部１０７は、例えば、図６の下図に示すような表示をモニタ１６に表示する。
【００４５】
実行条件変更部１０８は、シミュレーションの実行条件を変更するための処理を行なう。シミュレーションの実行条件を変更するための処理としては、シミュレーションの実行条件を自動的に変更するか、又は実行条件を変更するために必要な提示をユーザに対して行なう処理が存在する。実行条件変更部１０８は、例えば、３Ｄ表示部１０７によるシミュレーション結果の表示後、実行条件を変更するか否かをユーザから受け付ける。この場合、実行条件変更部１０８は、実行条件の変更の要否を入力するように要求するメッセージをモニタ１６に表示し、入力をユーザに促す。あるいは、実行条件変更部１０８は、落下判定部１０６による判定結果に従いワークが落下する場合、すなわち、負荷モーメントが閾値Ｔｈより大きいか下向きの力が閾値Ｔｖより大きい場合に、自動的に実行条件を変更してもよい。あるいは、実行条件変更部１０８は、落下判定部１０６による判定結果に従いワークが落下する場合に、実行条件を変更するようにユーザに促してもよい。
【００４６】
次に、下向きの力及び負荷モーメントについて、詳細に説明する。
【００４７】
図７は、ワークにかかる下向きの力を示す図、図８は、ロボットアームとワークの加速度の差を示す図、図９はワークの回転運動を示す図、図１０は、ロボットアーム、保持体及びワークを含む物理モデルの例を示す図である。
【００４８】
図７〜図１０に示すように、第１実施形態のシミュレーションモデルは、ワーク、ワークを吸着した吸着パッド、及び先端に吸着パッドが取り付けられたロボットアームの各々を表すモデルで構成されている。図１０に示すように、シミュレーションモデルでは、ワーク及びロボットアームは剛体とし、吸着パッドは、質量ｍｐａｄ、回転減衰係数Ｃｐａｄ、及び回転弾性係数Ｋｐａｄの弾性体とした。
【００４９】
まず、下向きの力について説明する。ロボットアームＲが鉛直方向上方及び下方に加速度運動する際、ワークＷに作用する下向きの力は、重力と慣性力との和である。すなわち、図７に示すように、ロボットアームＲが鉛直方向に加速度ａｒにより加速度運動する場合、シミュレーションモデルに含まれるワークＷの重心には、重力ｍ×ｇと、慣性力ｍ×ａｚとの和の力がかかる。ここで、ｍは、ワークＷの質量、ｇは重力加速度、ａｚはワークＷの加速度である。重力ｍ×ｇと慣性力ｍ×ａｚとの和である下向きの力が閾値Ｔｖ以下の場合、ワークＷは落下せず、閾値Ｔｖよりも大きい場合にワークＷは落下すると判定する。閾値Ｔｖは、シミュレーションモデルに相当するロボットの実機を実行条件を変更して繰り返し動作させたときに、ワークが落下しなかった実行条件で発生する下向きの力のうちの最大値として設定される。
【００５０】
次に、負荷モーメントについて説明する。図８に示すように、ロボットアームＲが動作指令に基づいて水平方向に加速度ａｒにより加速度運動する場合について説明する。ここで、ロボットアームＲとワークＷとの間には、弾性を有する吸着パッドＰが介在している。このため、加速度運動時に吸着パッドＰが変形し、ワークＷは、吸着パッドＰに想定される回転軸を回転中心として、図９に示すように回転し、ワークＷ及びロボットアームＲ間に加速度の差が生じる。ここで、ワークの加速度をａｗで表し、回転中心からワークＷの重心までの距離を記号Ｌ１で表し、回転中心からワークの底部までの距離を記号Ｌ２で表す。また、シミュレーションモデルの回転部分のワークＷの慣性モーメントを記号Ｉで表す。ワークＷの鉛直方向に対する回転角度をθとして表す。ワークＷ及びロボットアームＲが移動する慣性座標系においては、ワークＷに生じるモーメントτは、次の式（１）により表される。
【００５１】
【数１】
2019141939.tif 000003
【００５２】
式（３）に示すように、ワークＷの加速度ａｗとロボットアームＲの加速度ａｒとの差により、ワークＷに生じるモーメントτが表される。モーメントτを、吸着パッドＰに負荷としてかかる力、すなわち、負荷モーメントとみなすことができる。従って、式（３）で表される負荷モーメントの大きさから、ワークＷの吸着パッドＰによる保持が解除され、ワークＷが落下するか否かを判定することもできる。
【００５３】
一方、負荷モーメントは、ロボットアームＲと共に運動する並進座標系において考えることもできる。並進座標系においては、ワークに生じるモーメントτは、次の式（４）に示す回転の運動方程式により表される。Ｍが負荷モーメントである。
【００５４】
【数２】
2019141939.tif 000004
【００５５】
並進座標系においては、モーメントτは、ロボットアームＲの加速度運動（水平運動）により水平方向に作用する水平慣性力により、ワークＷに作用する慣性力により発生するモーメントｍａｒＬ１と、吸着パッドＰに負荷としてかかる力、すなわち、負荷モーメントＭとの和で表すことができる。式（４）のように、並進座標系で考えれば、式（１）よりも、ワークＷに作用する慣性力により発生するモーメントを考慮する分、吸着パッドＰにかかる負荷モーメントＭをより正確に算出できる。
【００５６】
式（４）に式（２）を代入し、負荷モーメントＭの式に変形すると、式（５）が得られる。従って、加速度ａｒを与えれば、後述の式（６）から加速度ａｗが求められるので、式（５）から負荷モーメントを求めることができる。
【００５７】
【数３】
2019141939.tif 000005
【００５８】
以下の説明では、負荷モーメントＭを式（５）で表す場合について説明する。負荷モーメントＭが上述した閾値Ｔｈ以下の場合、ワークＷは落下せず、閾値Ｔｈよりも大きい場合にワークＷは落下する。閾値Ｔｈは、シミュレーションモデルに相当するロボットの実機を実行条件を変更して繰り返し動作させたときに、ワークが落下しなかった実行条件で発生する負荷モーメントのうちの最大値として設定される。
【００５９】
なお、シミュレーションにおいて、上記式（３）及び式（５）のワークＷの加速度ａｗは、吸着パッドＰとワークＷとの間の伝達関数Ｇ（ｓ）を用いて、次の式（６）で表される。
【００６０】
ａｗ＝Ｇ（ｓ）×ａｒ  …  式（６）
【００６１】
ここで伝達関数Ｇ（ｓ）は、吸着パッドＰを図１０に示す物理モデルで表した以下の式（７）で表される。物理モデルは、実機の動作データから、ワークＷの加速度ａｗに影響を及ぼすパラメータを抽出して構築される。例えば、図１０では、ロボットアームＲを加速度ａｒで加速度運動させたときに、ワークＷの加速度ａｗに影響する吸着パッドＰの質量ｍｐａｄ、回転減衰係数Ｃｐａｄ、及び回転弾性係数Ｋｐａｄが吸着パッドモデルのパラメータとして抽出されている。特にワークＷの加速度ａｗに影響を及ぼすパラメータだけで吸着パッドモデルを構築することにより、加速度ａｗ以外の外部影響を低減でき、より高い精度により加速度ａｗを求めることができる。伝達関数Ｇ（ｓ）は、例えば、式（７）のように表される。
【００６２】
【数４】
2019141939.tif 000006
【００６３】
次に、シミュレーション装置１０の作用について説明する。
【００６４】
図１１は、シミュレーション装置のＣＰＵにより実行される動作の流れを示すフローチャートである。ＣＰＵ１１がＲＯＭ１２又はストレージ１４からシミュレーションプログラムを読み出して、ＲＡＭ１３に展開し実行することにより、シミュレーション処理が行なわれる。
【００６５】
ＣＰＵ１１は、モーションプログラム及びモーションパラメータを読み込み（ステップＳ１０１）、モーション指令値計算部１０３として、モーション指令値を算出する（ステップＳ１０２）。動作指令の一例としてのモーション指令値としては、図５に例示したように、ｍｏｖｅ１〜３の各々の最大加速度が用いられる。
【００６６】
ＣＰＵ１１は、ダイナミクス計算部１０４として、モーション指令値及びシミュレーションモデルによりシミュレーションを実行する（ステップＳ１０３）。ＣＰＵ１１は、負荷導出部１０５として、シミュレーション中に変化する、全ての下向きの力及び式（５）及び式（６）に基づく全ての負荷モーメントＭを算出する（ステップＳ１０４）。
【００６７】
ＣＰＵ１１は、落下判定部１０６として、シミュレーション中に、下向きの力が閾値Ｔｖより大きくなるタイミング及び負荷モーメントが閾値Ｔｈより大きくなるタイミングがあるか否により、ワークＷの吸着の成否を判断する（ステップＳ１０５）。さらに、ＣＰＵ１１は、吸着の失敗があると判断した場合に、ワークＷの落下タイミングを特定する。
【００６８】
ＣＰＵ１１は、３Ｄ表示部１０７として、シミュレーションの結果をモニタ１６に表示する（ステップＳ１０６）。ここでは、ＣＰＵ１１は、シミュレーションに基づくシミュレーションモデルの動作を動画で表示する。動画では、ワークＷの吸着の成否の判定結果に応じて、図６に示す画像が表示される。ワークＷの吸着の失敗が判定された場合には、ワークＷの落下タイミングでワークＷが落下していく画像が表示される。ＣＰＵ１１は、さらに、ステップＳ１０５におけるワークＷの吸着成否の判定結果について、例えば、「水平運動中にワークが落下します」又は「鉛直運動中にワークが落下します」とモニタ１６に表示してもよい。
【００６９】
ＣＰＵ１１は、実行条件変更部１０８として、ユーザがシミュレーションの実行条件の変更を希望するか否かを確認する（ステップＳ１０７）。希望するか否かの確認方法としては、例えば、ＣＰＵ１１は、モニタ１６に「実行条件を変更しますか？」と表示し、ユーザに「はい」又は「いいえ」の選択を促すように提示する。なお、シミュレーションの実行条件の変更には、上述のモーションパラメータの変更及びモーションプログラムの変更が含まれる。ステップＳ１０７においては、特に、ステップＳ１０５の吸着成否判断において吸着失敗と判断した場合に、落下を回避するため（下向きの力が閾値Ｔｖ以下及び負荷モーメントＭが閾値Ｔｈ以下となるように）、実行条件の変更をユーザに促してもよい。このために、ＣＰＵ１１は、例えば、「ワークの落下を回避するために、実行条件を変更して下さい」などのメッセージをモニタ１６に表示してもよい。
【００７０】
ユーザが実行条件の変更を希望しない場合（ステップＳ１０７：ＮＯ）、ＣＰＵ１１は、シミュレーション処理を終了する。ユーザが実行条件の変更を希望する場合（ステップＳ１０７：ＹＥＳ）、ＣＰＵ１１は、実行条件の変更が、手動か自動かを判断する（ステップＳ１０８）。手動か否かの確認方法としては、例えば、ＣＰＵ１１は、モニタ１６に「シミュレーションの実行条件を手動で変更しますか？」と表示し、ユーザに「はい」又は「いいえ」の選択を促す。
【００７１】
ユーザが手動の変更を希望する場合（ステップＳ１０８：ＹＥＳ）、ＣＰＵ１１は、モーションプログラム編集部１０１又はモーションパラメータ編集部１０２として、モーションプログラム又はモーションパラメータの編集を受け付ける（ステップＳ１０９）。ここで、ＣＰＵ１１は、モーションプログラム及びモーションパラメータの両方の編集を受け付けてもよい。そして、ＣＰＵ１１は、ステップＳ１０２の処理に戻り、受け付けた編集に基づいて編集されたモーションプログラム及びモーションパラメータに従って、シミュレーションを行なう。
【００７２】
ユーザが自動の変更を希望する場合（ステップＳ１０８：ＮＯ）、ＣＰＵ１１は、変更の対象が水平運動か否かを判断する（ステップＳ１１０）。水平運動か否かの確認方法としては、例えば、ＣＰＵ１１は、モニタに「水平運動の実行条件を変更しますか？」と表示し、ユーザに「はい」又は「いいえ」の選択を促す。ユーザは、ステップＳ１０６におけるシミュレーション結果の表示を参考にして、変更対象を決定できる。
【００７３】
ユーザが水平運動の実行条件の変更を希望しない場合（ステップＳ１１０：ＮＯ）、ＣＰＵ１１は、鉛直運動の実行条件の変更を行なう（ステップＳ１１１）。一方、ユーザが水平運動の実行条件の変更を希望する場合（ステップＳ１１０：ＹＥＳ）、ＣＰＵ１１は、水平運動の実行条件の変更を行なう（ステップＳ１１２）。そして、ＣＰＵ１１は、ステップＳ１０２の処理に戻り、自動的な実行条件の変更に基づく、シミュレーションを行なう。鉛直運動の実行条件の変更及び水平運動の実行条件の変更の処理について、詳細は図１２及び図１３を参照しつつ、説明する。以下では、変更する実行条件の一例として、最大加速度ａｒを用いた場合について説明する。
【００７４】
まず、鉛直運動の最大加速度の変更について説明する。
【００７５】
図１２は鉛直運動の最大加速度の変更処理の流れを示すフローチャートである。
【００７６】
図１２に示すように、ＣＰＵ１１は、ステップＳ１０４において算出した全ての下向きの力が閾値Ｔｖ以下か否か判断する（ステップＳ２０１）。
【００７７】
全ての下向きの力が閾値Ｔｖ以下の場合（ステップＳ２０１：ＹＥＳ）、ＣＰＵ１１は、ロボットアームＲの全ての鉛直運動の最大加速度を所定の値だけ増加させる（ステップＳ２０２）。全ての鉛直運動には、上昇運動及び下降上昇の両方が含まれる。最大加速度には、最大減速度も含まれる。所定の値は、ロボットアームＲに要求される精度に応じて適宜設定される。例えば、０．１％の最大加速度の精度が要求される場合、所定の値は、０．１％となる。最大加速度が物理量で表される場合、所定の値も物理量として設定される。
【００７８】
閾値Ｔｖより大きい下向きの力が存在する場合（ステップＳ２０１：ＮＯ）、ＣＰＵ１１は、下向きの力が閾値Ｔｖより大きくなる落下タイミングがロボットアームＲの上昇運動時か否かを判断する（ステップＳ２０３）。ＣＰＵ１１は、ステップＳ１０５で特定した落下タイミングが、ロボットアームＲの搬送経路においてロボットアームＲに対する動作指令に基づいて分けられる（ロボットアームＲの進行方向の変化で分けられる）複数の区間のうち、どの区間に入るかを判断できる。落下タイミングが入る区間のロボットアームＲの動作を、モーションプログラムから確認することにより、上昇運動時か否かを判断できる。
【００７９】
落下タイミングが上昇運動時である場合（ステップＳ２０３：ＹＥＳ）、ＣＰＵ１１は、上昇移動の最大加速度を所定の値だけ減少する（ステップＳ２０４）。落下タイミングが下降運動時である場合（ステップＳ２０３：ＮＯ）、ＣＰＵ１１は、下降移動の最大加速度を所定の値だけ減少する（ステップＳ２０５）。ステップＳ２０４及びステップＳ２０５において、最大加速度には、最大減速度も含まれる。所定の値については、ステップＳ２０２と同様である。
【００８０】
次に、水平運動の最大加速度の変更について説明する。
【００８１】
図１３は水平運動の最大加速度の変更処理の流れを示すフローチャートである。図１４は加速時間を変更した場合の速度及び加速度の変化を示す図である。
【００８２】
図１３に示すように、ＣＰＵ１１は、ステップＳ１０４において算出した全ての負荷モーメントが閾値Ｔｈ以下か否か判断する（ステップＳ３０１）。
【００８３】
全ての負荷モーメントが閾値Ｔｈ以下の場合（ステップＳ３０１：ＹＥＳ）、ＣＰＵ１１は、ロボットアームＲの水平移動時の最大加速度を所定の値だけ増加する（ステップＳ３０２）。最大加速度には、最大減速度も含まれる。所定の値は、ロボットアームＲに要求される精度に応じて適宜設定される。例えば、０．１％の最大加速度の精度が要求される場合、所定の値は、０．１％となる。最大加速度が物理量で表される場合、所定の値も物理量として設定される。
【００８４】
閾値Ｔｈより大きい負荷モーメントがある場合（ステップＳ３０１：ＮＯ）、ＣＰＵ１１は、ロボットアームＲの水平移動時の最大加速度を所定の値だけ減少する（ステップＳ３０３）。
【００８５】
上記では最大加速度を変更する例について説明した。しかし、最大速度、加速時間、減速時間、及びジャークの少なくとも一つを変更することで、発生する加速度が変化する場合は、下向きの力及び負荷モーメントＭも変化する。従って、最大加速度に代えて、最大速度、加速時間、減速時間、及びジャークの少なくとも一つを変更してもよい。
【００８６】
すなわち、上述のように、負荷モーメントは、式（５）（又は式（３））により算出できる。ここで、実行条件として、図１４に示すように加速度は一定のまま、最大速度が変更されたとする。図１４において、実線が変更前のロボットアームＲの速度と時間の関係、及び、変更前のロボットアームＲの加速度と時間の関係を示す。点線が、変更後のロボットアームＲの速度と時間の関係、及び、変更後のロボットアームＲの加速度と時間の関係を示す。図１４の上図及び下図に示すように、加速度が変わらない場合でも、最大速度が変わると、加速（減速）時間が変わり、加速度と時間の積で表される物理量が変化する。これに伴い、ワークＷにかかる力も変わり、ワークＷの加速度ａｗも変化する。従って、例えば、加速度と時間の積で表される物理量を入力として、ワークＷの加速度ａｗを出力とする伝達関数Ｇを用意しておくことにより、負荷モーメントを算出できる。
【００８７】
また、図１３では、シミュレーションの実行条件の変更として、モーションパラメータを変更している。しかし、シミュレーションの実行条件の変更として、シミュレーションモデルを変更してもよい。シミュレーションモデルの変更には、例えば、シミュレーションモデルに含まれる吸着パッドＰの設計変更が含まれる。吸着パッドＰの設計変更には、例えば、吸着圧力、吸着時間、パッド形状（一般的なお碗型、ベローズ形、径の大きさ等）、パッド材質（ニトリルゴム、シリコン等）、パッドの吸着位置、パッドの個数等の変更が含まれる。吸着パッドＰを変更する場合、変更前の閾値Ｔｈは使えなくなってしまう。なぜなら、閾値Ｔｈは、吸着パッドの設計条件に依存するからである。従って、変更が想定される範囲内、あるいは変更を許容する範囲内で、実機の吸着パッドの設計を変更して、落下試験を行ない、吸着パッドの設計パターン毎に閾値Ｔｈを用意しておく必要がある。シミュレーションの段階で吸着パッドＰの設計が変更された場合、変更された設計に対応する閾値Ｔｈが用いられ、負荷モーメントと比較される。
【００８８】
図１３に示すようなモーションパラメータの変更、又は、上記のようなシミュレーションモデルの変更は、例えば、ワークＷの搬送時間、吸着パッドの吸着痕の許容度合いに応じて、適宜実行されてもよい。吸着痕の許容度合いが大きい場合には、吸着圧力や吸着時間を優先的に調整してもよい。
【００８９】
以上の第１実施形態のシミュレーション装置１０によれば、以下の効果が得られる。シミュレーション装置１０は、負荷モーメントを閾値Ｔｈと比較することにより、吸着の成否すなわちワークの落下を判断する。従って、ワークの落下を考慮したシミュレーションをユーザに提供できる。特に、ステップＳ１０８、ステップＳ１１０において、実行条件を変更するために必要な提示を行い、ユーザによる実行条件の変更のための選択をガイドする。従って、ユーザは、ガイドに従って、適切に実行条件の変更を選択できる。
【００９０】
また、シミュレーション装置１０は、ロボットアームが動く並進座標系で見て、ワークＷに生じるモーメントとワークＷに作用する慣性力により発生する（みかけの）モーメントとの差として、負荷モーメントを導出できる。この場合、ワークＷに生じるモーメントを負荷モーメントと定義する場合に比べて、負荷モーメントは、吸着パッドＰにかかる負荷をより正確に表すことができる。従って、より正確に吸着パッドＰにかかる負荷を考慮して、ワークＷの落下を判定できる。
【００９１】
また、シミュレーション装置１０は、シミュレーションの実行条件を最大加速度として、負荷モーメントが閾値より大きい場合に最大加速度を減少する。閾値よりも小さい負荷モーメントが得られるまで、最大加速度を減少することにより、ワークＷの落下を確実に防止できる。
【００９２】
また、シミュレーション装置１０は、シミュレーションの実行条件を最大加速度として、負荷モーメントが閾値以下の場合に最大加速度を増加する。従って、負荷モーメントが閾値に近づくように、最大加速度を変更できる。閾値を超えない範囲で、できるだけ閾値に負荷モーメントが閾値に近づくようにすれば、ワークが落下せずに達成できる最大加速度の限界値が得られる。最大加速度を限界まで大きくできるので、結果として、ワークＷを搬送するタクトタイムを短縮できる。
【００９３】
また、シミュレーション装置１０は、負荷モーメントが閾値より大きい場合に、ワークが落下すると判定する。従って、ユーザの判断に頼ることなく、機械的に落下を判定できる。
【００９４】
シミュレーション装置１０は、上記の実施形態に限定されず、種々の改変が可能である。例えば、図１１のステップＳ１０５を省略し、ステップＳ１０６におけるシミュレーションの結果の表示に代えて、単に負荷モーメントの値を表示することによってユーザに提示してもよい。熟練したユーザ（負荷モーメントに慣れたユーザ）であれば、数値を見ただけで、ワークＷの落下を判断でき、適宜実行条件を変更するか否かの入力を行なうことができる。更なる改変を以下に説明する。
【００９５】
（第２実施形態）
【００９６】
第１実施形態においては、実行条件を変更するか否かをユーザが決定している。第２実施形態においては、ユーザが実行条件の変更を決定しなくても、自動的に最適な実行条件が設定される。
【００９７】
図１５は、第２実施形態に係るシミュレーション装置のＣＰＵにより実行される動作の流れを示すフローチャートである。ＣＰＵ１１がＲＯＭ１２又はストレージ１４からシミュレーションプログラムを読み出して、ＲＡＭ１３に展開し実行することにより、シミュレーション処理が行なわれる。
【００９８】
ステップＳ４０１〜ステップＳ４０５は、図１１に示すステップＳ１０１〜ステップＳ１０５と同様であるので、説明を省略する。
【００９９】
ＣＰＵ１１は、ステップＳ４０４で導出した全ての負荷モーメントが閾値Ｔｈ以下か否かを判断する（ステップＳ４０６）。閾値Ｔｈより大きい負荷モーメントがある場合（ステップＳ４０６：ＮＯ）、ＣＰＵ１１は、ロボットアームＲの水平移動時の最大加速度を所定の値だけ減少する（ステップＳ４０７）。ＣＰＵ１１は、減少後の最大加速度を限界最大加速度として記録し（ステップＳ４０８）、減少後の最大加速度によるシミュレーションのために、ステップＳ４０２の処理に戻る。なお、ＣＰＵ１１は、限界最大加速度が以前に記憶されている場合には、今回のステップＳ４０７で減少させた最大加速度に限界最大加速度を更新する。
【０１００】
全ての負荷モーメントが閾値Ｔｈ以下の場合（ステップＳ４０６：ＹＥＳ）、ＣＰＵ１１は、限界最大加速度が記憶されているか否か判断する（ステップＳ４０９）。限界最大加速度が記憶されていない場合（ステップＳ４０９：ＮＯ）、ＣＰＵ１１は、ロボットアームＲの水平移動時の最大加速度を所定の値だけ増加する（ステップＳ４１０）。ＣＰＵ１１は、増加後の最大加速度によるシミュレーションのために、ステップＳ４０２の処理に戻る。
【０１０１】
限界最大加速度が記憶されている場合（ステップＳ４０９：ＹＥＳ）、ＣＰＵ１１は、限界最大加速度を、最終的な実行条件として決定し（ステップＳ４１１）、実行条件及びシミュレーション結果をモニタ１６に表示する（ステップＳ４１２）。
【０１０２】
以上のように、第２実施形態のシミュレーション装置１０によれば、ユーザが実行条件の変更を指示しなくても、負荷モーメントが閾値以下となるように最大加速度を増減するので、自動的に最適な実行条件を決定できる。
【０１０３】
特に、第２実施形態のシミュレーション装置１０では、負荷モーメントが閾値Ｔｈよりも大きければ、最大加速度を所定の値ずつ減少させたシミュレーションが繰り返され、最大加速度を減少する度に限界最大加速度として記憶する。最大加速度を減少してシミュレーションを実行した結果、負荷モーメントが閾値Ｔｈ以下となった場合、限界最大加速度を実行条件に決定するので、シミュレーション装置１０は、負荷モーメントが閾値Ｔｈ以下でかつ閾値Ｔｈに最も近くなる実行条件を、最終的な実行条件として提示できる。また、負荷モーメントが閾値Ｔｈ以下の場合であって、限界最大加速度が記憶されていない場合は、最大加速度を増加して、最大加速度の限界値を探索できる。
【０１０４】
（第３実施形態）
【０１０５】
第１実施形態では、ロボットアームＲが水平運動及び鉛直運動を行なう場合について説明した。特に、水平運動の際には、ロボットアームＲの鉛直加速度は考慮しない場合について説明した。第３実施形態では、ワークＷにロボットアームＲの水平方向の加速度及び鉛直方向の加速度が作用することを考慮して、負荷モーメントを導出する。例えば、ロボットアームＲが水平方向に対して傾斜した運動を行なう場合に、水平方向の加速度及び鉛直方向の加速度がワークＷに作用する。
【０１０６】
図１６は、ワークにかかる力を示す図である。
【０１０７】
図１６において、ロボットアームＲの水平方向の加速度をａｙ、鉛直方向の加速度をａｚとして表す。また、ワークＷにかかる合成慣性力をＦｗ、合成慣性力Ｆｗを分解して得られる水平方向の慣性力をＦｙ、鉛直方向の慣性力をＦｚとして表す。ワークＷの鉛直方向に対する回転角度をθとして表す。また、ワークＷの質量をｍ、シミュレーションモデルの回転する部分に作用する慣性モーメントをＩとして表す。ワークＷの回転中心からワークＷの重心までの距離がＬ１、回転中心からワークＷの先端までの距離をＬ２とする。
【０１０８】
水平方向の慣性力Ｆｙは、Ｆｙ＝ｍ×ａｙとして表され、鉛直方向の慣性力Ｆｚは、Ｆｚ＝ｍ×ａｚとして表される。
【０１０９】
水平方向の慣性力により発生するモーメントの腕の長さはＬ１ｓｉｎθ、鉛直方向の慣性力により発生するモーメントの腕の長さはＬ１ｃｏｓθで表され、θが小さい場合、各々Ｌ１θ、Ｌ１で表される。したがって、ロボットアームＲと共に運動する並進座標系においては、ワークＷに生じるモーメントτは、次の式（８）に示す回転の運動方程式により表される。
【０１１０】
【数５】
2019141939.tif 000007
【０１１１】
モーメントτと、上記のモーメントとの差が、吸着パッドＰに負荷としてかかる力、すなわち、負荷モーメントＭである。
【０１１２】
式（８）に上記の式（２）を代入し、負荷モーメントＭの式に変形すると、式（９）が得られる。
【０１１３】
【数６】
2019141939.tif 000008
【０１１４】
θについては、ユーザが入力するなどして予め用意されたワークの推定揺れ角の値を用いる。あるいは、シミュレーションにより揺れ角を算出してもよい。ワークＷの加速度ａｗも、第１実施形態と同様に伝達関数Ｇ（ｓ）を用いて算出できる。
【０１１５】
従って、シミュレーション装置１０は、上記式（８）により水平方向に交差する方向にロボットアームＲを運動させる際でも、負荷モーメントＭを算出できる。シミュレーション装置１０は、負荷モーメントＭを閾値Ｔｈと比較することにより、ワークＷの落下を判定したり、ワークＷが落下しないシミュレーションの実行条件を提示したりできる。
【０１１６】
なお、上記実施形態では保持体として吸着パッドを用いた例について説明した。しかし、吸着パッドに限定されず、弾性を有していれば、ワークを把持するチャック等を用いる場合にも適用できる。
【０１１７】
なお、上記各実施形態でＣＰＵがソフトウェア（プログラム）を読み込んで実行したシミュレーション処理を、ＣＰＵ以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の製造後に回路構成を変更可能なＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、及びＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、シミュレーション処理を、これらの各種のプロセッサのうちの１つで実行してもよいし、同種又は異種の２つ以上のプロセッサの組み合わせ（例えば、複数のＦＰＧＡ、及びＣＰＵとＦＰＧＡとの組み合わせ等）で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【０１１８】
また、上記各実施形態では、シミュレーションプログラムがストレージ１４又はＲＯＭ１２に予め記憶（インストール）されている態様を説明したが、これに限定されない。プログラムは、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、及びＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【０１１９】
１０   シミュレーション装置
１０１ モーションプログラム編集部
１０２ モーションパラメータ編集部
１０３ モーション指令値計算部
１０４ ダイナミクス計算部
１０５ 負荷導出部
１０６ 落下判定部
１０７ ３Ｄ表示部
１０８ 実行条件変更部
【図１】
2019141939.tif 000009
【図２】
2019141939.tif 000010
【図３】
2019141939.tif 000011
【図４】
2019141939.tif 000012
【図５】
2019141939.tif 000013
【図６】
2019141939.tif 000014
【図７】
2019141939.tif 000015
【図８】
2019141939.tif 000016
【図９】
2019141939.tif 000017
【図１０】
2019141939.tif 000018
【図１１】
2019141939.tif 000019
【図１２】
2019141939.tif 000020
【図１３】
2019141939.tif 000021
【図１４】
2019141939.tif 000022
【図１５】
2019141939.tif 000023
【図１６】
2019141939.tif 000024