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