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