JP6930457B2 - シミュレーション装置、方法、及びプログラム - Google Patents

シミュレーション装置、方法、及びプログラム Download PDF

Info

Publication number
JP6930457B2
JP6930457B2 JP2018035342A JP2018035342A JP6930457B2 JP 6930457 B2 JP6930457 B2 JP 6930457B2 JP 2018035342 A JP2018035342 A JP 2018035342A JP 2018035342 A JP2018035342 A JP 2018035342A JP 6930457 B2 JP6930457 B2 JP 6930457B2
Authority
JP
Japan
Prior art keywords
work
acceleration
simulation
robot arm
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018035342A
Other languages
English (en)
Other versions
JP2019150887A (ja
Inventor
慎一郎 白堀
慎一郎 白堀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2018035342A priority Critical patent/JP6930457B2/ja
Priority to PCT/JP2019/006400 priority patent/WO2019167765A1/ja
Publication of JP2019150887A publication Critical patent/JP2019150887A/ja
Application granted granted Critical
Publication of JP6930457B2 publication Critical patent/JP6930457B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B11/00Automatic controllers
    • G05B11/01Automatic controllers electric
    • G05B11/36Automatic controllers electric with provision for obtaining particular characteristics, e.g. proportional, integral, differential
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)
  • Feedback Control In General (AREA)

Description

本発明は、シミュレーション装置、シミュレーション方法、及びシミュレーションプログラムに関する。
工場の製造ラインなどにおいて、部品や製品等のワークを搬送する装置の一つとしてピックアンドプレース装置がある。ピックアンドプレース装置は、例えば、吸着パッドなど、ワークを吸着することによって保持する保持体を備え、所定の場所でワークを吸着して保持し、保持した状態でワークを搬送し、目的の場所で吸着を解除してワークを載置する。
ピックアンドプレース装置の最適な実行条件を決定するために、ワークモデル及びハンドリングロボットのモデルを用いたシミュレーション装置が提案されている(例えば、特許文献1参照)。
特許文献1に記載の技術によれば、ハンドリングロボットの動作速度及びワークモデルの質量からワークモデルにかかる振動加速度を算出し、振動加速度に基づいて、装置の動作条件を決定可能とする。
特開平7−256578号公報
しかしながら、特許文献1に記載の技術では、シミュレーションにおいてワークモデルにかかる振動を確認できるものの、搬送時にワークがどれだけ傾くかを確認することはできない。例えば、ワーク内で内容物が移動できる隙間が多少許されているような場合に、ワークの傾き度合いが大きいと、内容物がワーク内で偏った位置に配置されてしまうなどの不具合が生じる。ワークの傾きを確認できない場合には、このような不具合の発生を予防することができない。
本発明は、上記の点に鑑みてなされたものであり、搬送時のワークの傾き度合いを算出することができるシミュレーション装置、方法、及びプログラムを提供することを目的とする。
上記目的を達成するために、本発明に係るシミュレーション装置は、ワーク、前記ワークを保持した保持体、及び前記保持体が取り付けられたロボットアームを含むシミュレーションモデルであって、前記ロボットアームに対して前記ワークが相対運動可能なシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際の前記ロボットアームの加速度に対する前記ワークの加速度を導出する加速度導出部と、前記加速度導出部で導出された前記ワークの加速度を用いて、前記加速度運動時における前記ワークの傾き度合いを算出する算出部とを含んで構成されている。
本発明に係るシミュレーション装置によれば、加速度導出部が、ワーク、ワークを保持した保持体、及び保持体が取り付けられたロボットアームを含むシミュレーションモデルであって、ロボットアームに対してワークが相対運動可能なシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際のロボットアームの加速度に対するワークの加速度を導出する。そして、算出部が、加速度導出部で導出されたワークの加速度を用いて、加速度運動時におけるワークの傾き度合いを算出する。
このように、シミュレーションにより、ロボットアームの加速度に対するワークの加速度を導出し、このワークの加速度を用いることで、搬送時のワークの傾き度合いを算出することができる。
また、前記算出部は、前記加速度導出部で導出された前記ワークの加速度、前記動作指令に基づく前記ロボットアームの加速度の変化に対する前記ワークの加速度のステップ応答の周期から得られる前記ワークの揺れの角周波数、及び、前記ワークの回転中心と前記ワークの加速度が生じる前記ワーク上の点との距離、で表される前記ワークの揺れ角を、前記ワークの傾き度合いとして算出することができる。これにより、ワークの加速度から、ワークの傾き度合いとして、ワークの揺れ角を簡易に算出することができる。
また、前記算出部は、前記加速度導出部で導出された前記ワークの加速度を2回積分した値で表される前記ワークの揺れ幅を、前記ワークの傾き度合いとして算出することができる。これにより、ワークの加速度から、ワークの傾き度合いとして、ワークの揺れ幅を簡易に算出することができる。
また、本発明に係るシミュレーション装置は、前記ワークの傾き度合いの許容値を受け付ける受付部と、前記算出部で算出される前記傾き度合いが、前記受付部で受け付けられた傾き度合いの許容値を超えない範囲で、前記ロボットアームの加速度を特定する特定部とをさらに含んで構成することができる。これにより、ユーザは、許容できるワークの傾き度合いに応じた最適なロボットアームの加速度を知ることができる。
また、本発明に係るシミュレーション装置は、前記シミュレーションを実行した際の前記ロボットアームの加速度と前記ワークの加速度との差により前記保持体に発生する負荷モーメントを導出する負荷モーメント導出部をさらに含んで構成することができ、前記特定部は、前記負荷モーメント導出部で導出された負荷モーメントが、前記ワークの落下の可能性を示す閾値を超えない範囲で、前記ロボットアームの加速度を特定することができる。これにより、ユーザは、許容できるワークの傾き度合いに応じ、かつワークが落下しないロボットアームの加速度を知ることができる。
また、本発明に係るシミュレーション装置は、前記シミュレーションを実行した際の前記ロボットアームの加速度と前記ワークの加速度との差により前記保持体に発生する負荷モーメントを導出する負荷モーメント導出部をさらに含んで構成することができ、前記受付部は、前記ワークの落下率の許容値を受け付け、前記特定部は、前記ワークの落下率と前記負荷モーメントとの予め定めた関係に基づいて、前記負荷モーメント導出部で導出された負荷モーメントが、前記受付部で受け付けられた落下率の許容値に対応する負荷モーメントを超えない範囲で、前記ロボットアームの加速度を特定することができる。これにより、ユーザは、許容できるワークの傾き度合い及び落下率に応じた最適なロボットアームの加速度を知ることができる。
また、本発明に係るシミュレーション装置は、前記シミュレーションを実行した際の前記ロボットアームの加速度と前記ワークの加速度との差により前記保持体に発生する負荷モーメントを、前記ワークに生じるモーメントから、慣性力により発生するモーメントを差し引いて導出する負荷モーメント導出部をさらに含んで構成することができ、前記慣性力により発生するモーメントは、前記算出部により算出された前記ワークの揺れ角によって、慣性力を水平方向及び鉛直方向に分解した場合における、水平方向に作用する水平慣性力によるモーメントと鉛直方向に作用する鉛直慣性力によるモーメントとの和とすることができる。これにより、水平方向に交差する方向にロボットアームを運動させる場合でも、算出した揺れ角を利用して、ワークの落下に影響を与える負荷モーメントを精度良く導出することができる。
また、本発明に係るシミュレーション方法は、コンピュータが、ワーク、前記ワークを保持した保持体、及び前記保持体が取り付けられたロボットアームを含むシミュレーションモデルであって、前記ロボットアームの加速度に対して前記ワークが相対運動可能なシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際の前記ロボットアームに対する前記ワークの加速度を導出し、前記加速度導出部で導出された前記ワークの加速度を用いて、前記加速度運動時における前記ワークの傾き度合いを算出することを含む処理を実行する方法である。
また、本発明に係るシミュレーションプログラムは、コンピュータを、ワーク、前記ワークを保持した保持体、及び前記保持体が取り付けられたロボットアームを含むシミュレーションモデルであって、前記ロボットアームに対して前記ワークが相対運動可能なシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際の前記ロボットアームの加速度に対する前記ワークの加速度を導出する加速度導出部、及び、前記加速度導出部で導出された前記ワークの加速度を用いて、前記加速度運動時における前記ワークの傾き度合いを算出する算出部として機能させるためのプログラムである。
本発明に係るシミュレーション装置、方法、及びプログラムによれば、シミュレーションにより、ロボットアームの加速度に対するワークの加速度を導出し、このワークの加速度を用いて、搬送時のワークの傾き度合いを算出することができる。
シミュレーション装置のハードウェア構成を示すブロック図である。 第1実施形態に係るシミュレーション装置の機能構成の例を示すブロック図である。 ロボットが動作する座標位置の例を示す図である モーションプログラムの例を示す図である。 モーションパラメータの例を示す図である。 ロボットアーム、保持体、及びワークを含む物理モデルの例を示す図である。 ワークの揺れ角の定義を説明するための図である。 第1実施形態に係るシミュレーション装置の動作の流れを示すフローチャートである。 許容揺れ角の入力を受け付ける画面の一例を示す図である。 第2実施形態に係るシミュレーション装置の機能構成を示すブロック図である。 ワークにかかる下向きの力を示す図である。 ロボットアームとワークの加速度の差を示す図である。 ワークの回転を示す図である。 第2実施形態に係るシミュレーション装置の動作の流れを示すフローチャートである。 第3実施形態に係るシミュレーション装置の機能構成を示すブロック図である。 落下率に相当する物理量と負荷モーメントとの相関関係の一例を示す図である。 第3実施形態に係るシミュレーション装置の動作の流れを示すフローチャートである。 第4実施形態に係るシミュレーション装置の機能構成を示すブロック図である。 ワークに係る力を示す図である。 第4実施形態に係るシミュレーション装置の動作の流れを示すフローチャートである。 ワークの揺れ幅の定義を説明するための図である。
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
(第1実施形態)
図1は、本実施形態に係るシミュレーション装置10のハードウェア構成を示すブロック図である。
本実施形態のシミュレーション装置10は、対象となる装置、装置が扱うワーク及び障害物などをシミュレーションモデルとして、シミュレーションモデルの挙動を予測及び設計する。シミュレーションモデルとしては、例えば、装置等に働く物理現象を数式で表現した物理モデル、又は実機の計測データからシステム同定あるいは機械学習などにより得られた動的モデルがある。
本実施形態では、シミュレーションの対象となる装置は、ロボットアームを備えたロボットである。ロボットアームの先端には弾性を有する保持体が取り付けられ、ロボットは、保持体によりワークをピックアップして、搬送し、目的地にワークを載置する、いわゆるピックアンドプレース装置である。本実施形態では、特に、保持体が吸着パッドであり、ロボットアームがワークを吸着搬送する場合について説明する。
図1に示すように、シミュレーション装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、モニタ16、光ディスク駆動装置17、及び通信インタフェース18を有する。各構成は、バス19を介して相互に通信可能に接続されている。
本実施形態では、ROM12又はストレージ14には、シミュレーションを実行するシミュレーションプログラムが格納されている。CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記録されているプログラムにしたがって、上記各構成の制御及び各種の演算処理を行う。
ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
入力部15は、キーボード151、及びマウス152等のポインティングデバイスを含み、各種の入力を行うために使用される。モニタ16は、例えば、液晶ディスプレイであり、シミュレーション結果等の各種の情報を表示する。モニタ16は、タッチパネル方式を採用して、入力部15として機能してもよい。光ディスク駆動装置17は、各種の記録媒体(CD−ROM又はブルーレイディスクなど)に記憶されたデータの読み込みや、記録媒体に対するデータの書き込み等を行う。
通信インタフェース18は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi−Fi(登録商標)等の規格が用いられる。
次に、第1実施形態に係るシミュレーション装置10の機能構成について説明する。
図2は、シミュレーション装置10の機能構成の例を示すブロック図である。図3は、ロボットが動作する座標位置の例を示す図、図4は、モーションプログラムの例を示す図、図5は、モーションパラメータの例を示す図である。
図2に示すように、シミュレーション装置10は、機能構成として、モーションプログラム編集部101、モーションパラメータ設定部102、モーション指令値計算部103、ダイナミクス計算部104、許容値受付部105、揺れ角算出部106、最適指令値特定部107、及び3D表示部108を有する。各機能構成は、CPU11がROM12又はストレージ14に記憶されたシミュレーションプログラムを読み出し、RAM13に展開して実行することにより実現される。なお、ダイナミクス計算部104は、本発明の加速度導出部の一例であり、揺れ角算出部106は、本発明の算出部の一例であり、最適指令値特定部107は、本発明の特定部の一例である。
モーションプログラム編集部101は、シミュレーションにおけるロボットの所望の動作をユーザから受け付けたり、動作の編集を受け付けたりする。ユーザは、モニタ16を参照しつつ、入力部15によりモーションプログラムを入力又は編集できる。なお、モーションプログラム編集部101は、装置及び障害物の配置情報から、装置の動作モーションプログラムを自動的に生成するモーションプランニング部として機能してもよい。
モーションプログラム編集部101では、例えば、図3に示すような動作をロボットアームに実行させるために、図4に示すモーションプログラムが設定される。図3に示す動作の例では、位置p0からロボットアームの移動が開始し、位置p1及び位置p2を経て、位置p3にロボットアームが到達する動作を示す。位置p0は、xyz座標系において座標(0,0,0)、すなわち原点を表す。位置p1は、座標(0,0,30)であり、位置p0からz方向(高さ方向)に座標で定義される単位で30だけ移動した位置である。位置p2は、座標(50,0,30)であり、位置p1からさらに、x方向に50進んだ位置である。位置p3は、座標(50,0,0)であり、位置p2からさらに、−z方向に30進んだ位置である。このように、図3に示す動作は、ロボットアームが原点から上昇する鉛直運動と、高さを維持した水平運動と、下降する鉛直運動とによる3つの運動が連続する動作である。
このような動作のための命令は、モーションプログラムとして、例えば図4に示すようにモーションプログラム編集部101に入力される。図4に示すモーションプログラムは、行番号の昇順に命令を実行させるための三行の動作指令を含む。ピックアンドプレース装置の場合、ピックアップ及びプレースの動作もモーションプログラムに含まれうる。ロボットの移動だけでなく、ワークの保持(吸着)及び解放等の動作についても、モーションプログラムにより命令される。
モーションパラメータ設定部102は、モーションプログラムにより命令される動作のパラメータを設定する。モーションパラメータは、例えば、図5に示すように、各命令による動作における最大速度及び最大加速度を設定する。最大速度及び最大加速度は、ロボットに予め設定されている基準速度及び基準加速度に対する割合として設定されうる。基準速度に対する割合としてパラメータが設定されることにより、ロボットの常識的な動作速度に対して、どの程度の動作速度が設定されたかを直観的に把握することができる。なお、モーションパラメータ設定部102は、速度及び加速度の物理量の数値を設定してもよい。
なお、本明細書では、「加速度」は、加速する際の加速度(正の値)、及び減速する際の減速度(負の値)の両方の概念を含む用語として使用する。したがって、図5の最大加速度のパラメータは、加速の際の最大加速度だけでなく、減速の際の最大減速度も含む。ただし、最大加速度と最大減速度のパラメータが同じ値として一律に設定される必要はなく、それぞれ個別に設定されてもよい。
モーション指令値計算部103は、シミュレーションの開始が指示されると、モーションプログラム編集部101で得られたモーションプログラムのうち最初の動作のための命令を読み込む。次に、モーション指令値計算部103は、モーションパラメータ設定部102で設定されたモーションパラメータのうち、命令に対応するモーションパラメータを読み込む。そして、モーション指令値計算部103は、読み込んだ命令とモーションパラメータとから、シミュレーションで用いるモーション指令値(動作指令値)を順次計算し、出力する。同様に、モーション指令値計算部103は、後続の命令と対応するモーションパラメータとを順に読み込み、モーション指令値を出力する。
本実施形態では、モーション指令値計算部103は、モーション指令値の1つとして、各時刻におけるロボットアームの加速度を出力する。したがって、モーション指令値計算部103は、ピック位置からプレース位置までのロボットアームの加速度の時系列を含むモーション指令値を出力する。
ダイナミクス計算部104は、モーション指令値計算部103から出力されたモーション指令値と、ロボットの三次元CADデータと、ワーク、吸着パッド(保持体)、及びロボットアームの各々を表すモデルを含むシミュレーションモデルとを読み込む。ダイナミクス計算部104は、読み込んだモーション指令値、CADデータ、及びシミュレーションモデルから、ダイナミクス(動力学)を考慮したシミュレーションモデルの動作に関わる各種データを計算し、出力する。ロボットの三次元CADデータ及びシミュレーションモデルは、ストレージ14に予め格納されていてもよいし、光ディスク駆動装置17から読み込まれて取得されてもよいし、あるいは、通信インタフェース18を介して外部機器から取得されてもよい。なお、上記では三次元CADデータを用いる点を例示しているが、三次元CADデータを用いなくても、シミュレーションは実行可能である。例えば、二次元CADデータ、ロボットの寸法データ、又はロボットの設計データ等を用いてシミュレーションを実行してもよい。
ダイナミクス計算部104により出力される各種データには、ワークの加速度が含まれる。以下、シミュレーションにおけるワークの加速度の導出方法について説明する。
図6に示すように、第1実施形態のシミュレーションモデルは、ワークW、ワークWを吸着した吸着パッドP、及び先端に吸着パッドPが取り付けられたロボットアームRの各々を表すモデルを含む物理モデルとして構成されている。図6に示す物理モデルでは、ワークW及びロボットアームRは剛体とし、吸着パッドPは、質量mpad、回転減衰係数Cpad、及び回転弾性係数Kpadの弾性体としている。
図6に示す物理モデルを用いたシミュレーションにおいて、ワークWの加速度aは、吸着パッドPとワークWとの間の伝達関数G(s)、及びロボットアームRの加速度aを用いて、次の式(1)で表される。
=G(s)×a … 式(1)
ここで伝達関数G(s)は、吸着パッドPを図6に示す物理モデルで表した場合、例えば、以下の式(2)で表される。物理モデルは、実機の動作データから、ワークWの加速度aに影響を及ぼすパラメータを抽出して構築される。例えば、図6では、ロボットアームRを加速度aで加速度運動させたときに、ワークWの加速度aに影響する吸着パッドPの質量mpad、回転減衰係数Cpad、及び回転弾性係数Kpadが吸着パッドモデルのパラメータとして抽出されている。特にワークWの加速度aに影響を及ぼすパラメータだけで吸着パッドモデルを構築することにより、加速度a以外の外部影響を低減でき、より高い精度により加速度aを求めることができる。
Figure 0006930457
許容値受付部105は、ワーク搬送時に許容されるワークの傾きの最大値に相当するワークの揺れ角(以下、「許容揺れ角」という)をユーザから受け付ける。本実施形態では、ロボットアームRとワークWとの間には、弾性を有する吸着パッドPが介在しているため、搬送時にワークWに傾きが生じる。そこで、図7に示すように、吸着パッドPに想定される回転軸を回転中心とし、鉛直方向に対するワークの重心Wの回転角度を、ワークWの揺れ角θと定義する。
揺れ角算出部106は、ダイナミクス計算部104により導出されたワークWの加速度aを用いて、ワークWの揺れ角θを算出する。具体的には、揺れ角算出部106は、ワークの加速度aと、回転中心からワークWの底面までの鉛直方向の長さLと、ワークWの揺れの角周波数ωを用いて、ワークWの揺れ角θを算出する。ワークWの加速度aは、ダイナミクス計算部104で導出された値である。長さLは、実測値である。ωは、例えば、式(1)及び式(2)の伝達関数を用いた物理モデルを用いる場合、ロボットアームRの加速度aを時系列で入力したときの出力であるワークWの加速度aの時系列変化を示すステップ応答のピーク間の時間差から求めることができる。以下、ワークWの加速度a、回転中心からワークWの底面までの鉛直方向の長さL、及びワークWの角周波数ωを用いたワークWの揺れ角θの算出について説明する。
まず、ワークWの揺れ角θを、下記式(3)に示すように単純化して考える。
Figure 0006930457
AはワークWの揺れの振幅、tは時間である。ワークWの角加速度は、式(3)を時間tで2階微分して、下記式(4)のように表すことができる。
Figure 0006930457
ここで、ワークWの揺れ角θが小さい場合、ワークWの角加速度は、下記式(5)のように近似することができる。
Figure 0006930457
なお、第1実施形態では、ロボットアームRに保持された状態のワークWの底面に取り付けた加速度センサにより計測されたワークの加速度aを用いて、図6に示すような物理モデルを構築し、シミュレーション時には、この物理モデルにより導出されたワークWの加速度aを用いることを想定している。そのため、式(5)の近似では、図7に示すように、ロボットアームRに保持され、揺れ角θが0の状態におけるワークWの鉛直方向の長さを、回転中心からワークWの底面までの長さLとして用いている。
上記式(3)〜式(5)を整理すると、ワークWの揺れ角θは、下記式(6)のように算出することができる。
Figure 0006930457
最適指令値特定部107は、モーション指令値の1つであるロボットアームRの加速度aのパターン(a(t))として、最適パターンを特定する。本実施形態では、ロボットアームRの加速度aの最適パターンを、揺れ角算出部106で算出されたワークWの揺れ角θが、許容値受付部105で受け付けられた許容揺れ角を超えない範囲で、タクトタイムが最短となるパターンとする。タクトタイムとは、ワークWがピックアップされてからプレースされるまでの時間である。なお、最適パターンは、上記の例に限定されず、例えば、タクトタイムが予め定めた時間より短くなるパターンのうち、揺れ角算出部106で算出されたワークの揺れ角θが最小となるパターンなど、適宜設定可能である。
具体的には、最適指令値特定部107は、モーションパラメータ設定部102に対し、パラメータの取りうる値の全組み合わせの各々を設定するように指示すると共に、モーション指令値計算部103に対し、パラメータの全組み合わせの各々について、モーション指令値の1つであるロボットアームRの加速度aのパターン(a(t))を計算するように指示する。また、最適指令値特定部107は、ロボットアームRの加速度aのパターン(a(t))に対して、ダイナミクス計算部104で導出されたワークWの加速度aのパターン(a(t))を用いて、ワークWの揺れ角θ(t)を、揺れ角算出部106に算出させる。
最適指令値特定部107は、揺れ角算出部106で算出された、各パターンに対応するワークWの揺れ角θ(t)が、許容値受付部105で受け付けられた許容揺れ角の範囲内であるパターンを抽出する。また、最適指令値特定部107は、抽出した各パターンでロボットアームRを加速度運動させた場合のタクトタイムを算出する。そして、最適指令値特定部107は、抽出した各パターンのうち、タクトタイムが最小となるパターンを、ロボットアームRの加速度aの最適パターンとして特定する。最適指令値特定部107は、特定した最適パターンに対応するモーションパラメータ及びタクトタイムを、モニタ16に表示する。
3D表示部108は、ダイナミクス計算部104により計算されたシミュレーションモデルの動作を、モニタ16に表示する。3D表示部108は、例えば、ロボットがワークを搬送する様子を経時的に三次元に示す動画をモニタ16に表示させる。表示は、三次元に限定されず、二次元あるいは数値であってもよい。
次に、第1実施形態に係るシミュレーション装置10の作用について説明する。
図8は、シミュレーション装置10のCPU11により実行される動作の流れを示すフローチャートである。CPU11がROM12又はストレージ14からシミュレーションプログラムを読み出して、RAM13に展開し実行することにより、シミュレーション処理が行なわれる。図9は、ユーザから許容値等の入力を受け付けると共に、最適パラメータ等を表示するための画面の一例を示す図である。
CPU11は、許容値受付部105として、ワークWの許容揺れ角を受け付ける(ステップS101)。以下では、受け付けた許容揺れ角に「θth」の符号を付す。例えば、CPU11は、図9に示すような画面をモニタ16に表示させ、入力ボックス201に許容揺れ角θthの入力を許可する。ユーザは、入力部15を介して許容揺れ角θthを入力できる。
CPU11は、モーションプログラム編集部101として、モーションプログラムを受け付ける。また、CPU11は、モーションパラメータ設定部102として、モーションパラメータの初期値を設定する(ステップS102)。モーションパラメータの初期値は、モーションパラメータの全組み合わせのいずれか(例えば、全てのパラメータが「100%」)とすることができる。
なお、事前にモーションプログラムの一部が決まっている場合には、残りの一部だけの入力を受け付けてもよい。例えば、CPU11は、図9に示す画面をモニタ16に表示させ、入力ボックス202〜204に、モーションプログラムとして設定されるロボットアームR(ワークW)の移動距離の入力を受け付ける。ステップS103以降の処理は、例えば、図9の「最適パラメータ算出実行」ボタン205をユーザが押下することをトリガーとして開始してもよい。
CPU11は、モーション指令値計算部103として、モーションプログラム及びモーションパラメータを読み込み、モーション指令値を計算する(ステップS103)。
CPU11は、ダイナミクス計算部104として、モーション指令値の1つであるロボットアームRの加速度aのパターン(a(t))を用いて、シミュレーションモデルによりシミュレーションを実行し、ワークWの加速度aのパターン(a(t))を導出する(ステップS104)。
CPU11は、揺れ角算出部106として、例えば、ワークWの加速度a(t)と、回転中心からワークWの底面までの鉛直方向の長さLと、ワークWの揺れの角周波数ωとを用いて、上記式(6)により、ワークWの揺れ角θ(t)を算出する(ステップS105)。
CPU11は、最適指令値特定部107として、ワークWの揺れ角θ(t)が、許容揺れ角θthの範囲内か否かを判断する(ステップS106)。ワークWの揺れ角θ(t)に許容揺れ角θthを超える値が含まれる場合(ステップS106:NO)、CPU11は、ステップS109の処理に進む。ワークWの揺れ角θ(t)が許容揺れ角θthの範囲内の場合(ステップS106:YES)、CPU11は、シミュレーションにおいてロボットアームRがワークWを搬送するタクトタイムを算出する(ステップS107)。CPU11は、ステップS102又は後述するステップS110で設定したモーションパラメータと、ステップS107で算出したタクトタイムと、ステップS105で算出したワークWの揺れ角θ(t)とを関連付けて、ストレージ14又はRAM13に記憶する(ステップS108)。
CPU11は、変更し得る全てのモーションパラメータの組合せについて、ワークWの揺れ角θ(t)が許容揺れ角θthの範囲内か否かを判断する処理を終了したか否かを判断する(ステップS109)。全てのモーションパラメータの組合せについて判断が終了していない場合(ステップS109:NO)、CPU11は、モーションパラメータの設定を変更し(ステップS110)、ステップS103の処理に戻る。
全てのモーションパラメータの組合せについて判断が終了した場合(ステップS109:YES)、CPU11は、上記ステップS108で、ストレージ14又はRAM13に記憶した中で、タクトタイムが最短となるモーションパラメータの組合せを最適パラメータとして、タクトタイムと共にモニタ16に表示する(ステップS111)。CPU11は、例えば、図9の算出結果表示ウィンドウ206に示すように、ロボットアームRの各動作におけるモーションパラメータ及び当該モーションパラメータによる動作時のタクトタイムを表示する。また、CPU11は、算出されたワークWの揺れ角θ(t)をグラフ化して表示してもよい。
CPU11は、ステップS111で最適パラメータとして決定したモーションパラメータにより、モーション指令値計算部103及びダイナミクス計算部104としてシミュレーションを行い、3D表示部108として、シミュレーション結果を表示する(ステップS112)。シミュレーション結果は、例えば、シミュレーションモデルの動作の動画として表示される。CPU11は、シミュレーション処理を終了する。
以上のように、第1実施形態のシミュレーション装置10によれば、シミュレーションにより、ロボットアームの加速度に対するワークの加速度を導出し、このワークの加速度を用いて、搬送時におけるワークの傾き度合いを示す揺れ角を算出することができる。また、シミュレーション装置10によれば、算出した揺れ角を利用して、ワークの揺れ角が、受け付けた許容揺れ角を超えない範囲で最適なロボットアームの加速度を特定することができる。これにより、ユーザは、許容できる揺れ角に応じた最適な動作指令値を知ることができる。例えば、ワーク内で内容物が移動できる隙間が多少許されているような場合に、ワークの傾き度合いが大きくなり過ぎて、内容物がワーク内で偏った位置に配置されてしまうなどの不具合を防止しつつ、例えばタクトタイムが最短となるようにロボットアームを動作させることができる。
(第2実施形態)
図10は、第2実施形態に係るシミュレーション装置10Aの機能構成を示すブロック図である。なお、シミュレーション装置10Aのハードウェア構成については、第1実施形態に係るシミュレーション装置10と同様であるため、説明を省略する。
図10に示すように、シミュレーション装置10Aは、第1実施形態に係るシミュレーション装置10の機能構成における最適指令値特定部107に変えて、最適指令値特定部107Aを有する。また、シミュレーション装置10Aは、第1実施形態に係るシミュレーション装置10の機能構成に加え、負荷導出部109を有する。なお、最適指令値特定部107Aは、本発明の特定部の一例であり、負荷導出部109は、本発明の負荷モーメント導出部の一例である。
負荷導出部109は、ダイナミクス計算部104により計算されたシミュレーションモデルの動作から、シミュレーションモデルが鉛直運動する際にワークにかかる下向きの力を導出する。また、負荷導出部109は、ダイナミクス計算部104により計算されたシミュレーションモデルの動作から、シミュレーションモデルが水平運動する際のロボットアームの加速度とワークの加速度との差により吸着パッドに発生する負荷モーメント(詳細は後述)を導出する。負荷導出部109は、下向きの力及び負荷モーメントを、シミュレーションモデルの動作から計算してもよく、また、予め登録されているテーブルから導出してもよい。
最適指令値特定部107Aは、ワークの揺れ角θが許容揺れ角θthの範囲内であることに加え、負荷導出部109により導出した下向きの力及び負荷モーメントに基づいて、ワークが吸着パッドから落下しないような、ロボットアームの加速度aの最適パターンを特定する。
具体的には、最適指令値特定部107Aは、負荷導出部109により導出した下向きの力及び負荷モーメントに基づいて、ワークが吸着パッドから落下するか否かを判定する。最適指令値特定部107Aは、シミュレーションモデルが鉛直運動する際には、下向きの力が閾値(以下、閾値Tvと呼ぶ)より大きいか否かによりワークの落下を判定する。また、最適指令値特定部107Aは、シミュレーションモデルが水平運動する際には、負荷モーメントが閾値(以下、閾値Thと呼ぶ)より大きいか否かによりワークの落下を判断する。なお、水平運動においてもワークには重力がかかるが、閾値Thは、重力に加えてどの程度の負荷モーメントが発生すればワークが落下するかを表す値である。
閾値Tv及び閾値Thは、いずれもワークの落下を考慮して設定される値である。例えば、閾値Tvは、シミュレーションモデルに相当するロボットの実機を動作させたときに、ワークが落下しなかった実行条件で発生する下向きの力として設定され得る。好ましくは、閾値Tvは、シミュレーションモデルに相当するロボットの実機を実行条件を変更して繰り返し動作させたときに、ワークが落下しなかった実行条件で発生する下向きの力のうちの最大値として設定される。同様に、閾値Thは、シミュレーションモデルに相当するロボットの実機を動作させたときに、ワークが落下しなかった実行条件で発生する負荷モーメントとして設定され得る。好ましくは、閾値Thは、シミュレーションモデルに相当するロボットの実機を実行条件を変更して繰り返し動作させたときに、ワークが落下しなかった実行条件で発生する負荷モーメントのうちの最大値として設定される。なお、閾値Tvおよび閾値Thは、必ずしも実機を動作させることにより設定されなくてもよい。ワーク毎の閾値を前もって蓄積したデータベースを参照し、搬送対象のワークと類似しているワークの鉛直運動の際の閾値及び水平運動の際の閾値を、閾値Tv及び閾値Thとして設定してもよい。
次に、下向きの力及び負荷モーメントについて、詳細に説明する。
図11は、ワークにかかる下向きの力を示す図、図12は、ロボットアームとワークとの加速度の差を示す図、図13はワークの回転を示す図である。
まず、下向きの力について説明する。図11に示すように、ロボットアームRが鉛直方向上方に加速度aにより加速度運動する場合、シミュレーションモデルに含まれるワークWの重心には、重力m×gと、慣性力m×aとの和の力がかかる。ここで、mは、ワークWの質量、gは重力加速度、aはワークWの加速度である。重力m×gと慣性力m×aとの和である下向きの力が閾値Tv以下の場合、ワークWは落下せず、閾値Tvよりも大きい場合にワークWは落下すると判定する。閾値Tvは、シミュレーションモデルに相当するロボットの実機を実行条件を変更して繰り返し動作させたときに、ワークが落下しなかった実行条件で発生する下向きの力のうちの最大値として設定される。
次に、負荷モーメントについて説明する。図12に示すように、ロボットアームRが動作指令に基づいて水平方向に加速度aにより加速度運動する場合について説明する。ここで、ロボットアームRとワークWとの間には、弾性を有する吸着パッドPが介在している。このため、加速度運動時に吸着パッドPが変形し、ワークWは、吸着パッドPに想定される回転軸を回転中心として、図13に示すように回転し、ワークW及びロボットアームR間に加速度の差が生じる。ここで、ワークの加速度をaで表し、回転中心からワークWの重心までの距離を記号L1で表し、回転中心からワークの底部までの距離を記号L2で表す。また、シミュレーションモデルの回転部分のワークWの慣性モーメントを記号Iで表す。ワークWの鉛直方向に対する回転角度をθとして表す。ワークW及びロボットアームRが移動する慣性座標系においては、ワークWに生じるモーメントτは、次の式(7)により表される。
Figure 0006930457
ここで、ワークの揺れ角θが小さい場合、角加速度は、下記式(8)のように近似することができる。
Figure 0006930457
式(7)に式(8)を代入すると、次の式(9)が得られる。
Figure 0006930457
式(9)に示すように、ワークWの加速度aとロボットアームRの加速度aとの差により、ワークWに生じるモーメントτが表される。
一方、ワークWに生じるモーメントτは、ロボットアームRと共に運動する並進座標系において考えることもできる。並進座標系においては、ワークに生じるモーメントτは、次の式(10)に示す回転の運動方程式により表される。
Figure 0006930457
並進座標系においては、ワークWに生じるモーメントτは、ロボットアームRの加速度運動(水平運動)により水平方向に作用する水平慣性力により、ワークWに作用する(みかけの)慣性モーメントmaL1と、吸着パッドPに負荷としてかかる力、すなわち、負荷モーメントMとの和で表すことができる。式(10)のように、並進座標系で考えれば、式(7)よりも、吸着パッドPにかかる負荷モーメントMを考慮する分、ワークWに生じるモーメントτをより正確に表現することができる。
式(10)に式(8)を代入し、負荷モーメントMの式に変形すると、式(11)が得られる。従って、加速度aを与えれば、上記の式(1)から加速度aが求められるので、式(11)から負荷モーメントMを求めることができる。
Figure 0006930457
以下の説明では、負荷モーメントMを式(11)で表す場合について説明する。負荷モーメントMが上述した閾値Th以下の場合、ワークWは落下せず、閾値Thよりも大きい場合にワークWは落下する。閾値Thは、シミュレーションモデルに相当するロボットの実機を実行条件を変更して繰り返し動作させたときに、ワークが落下しなかった実行条件で発生する負荷モーメントのうちの最大値として設定される。
図14は、第2実施形態に係るシミュレーション装置10AのCPU11により実行される動作の流れを示すフローチャートである。CPU11がROM12又はストレージ14からシミュレーションプログラムを読み出して、RAM13に展開し実行することにより、シミュレーション処理が行なわれる。
ステップS201〜ステップS205及びステップS208〜S213は、図8に示すステップS101〜ステップS105及びステップS107〜S112と同様であるので、説明を省略する。
CPU11は、負荷導出部109として、シミュレーション中に変化する、全ての下向きの力及び式(11)に基づく全ての負荷モーメントMを導出する(ステップS206)。
CPU11は、最適指令値特定部107Aとして、ワークWの揺れ角θ(t)が、許容揺れ角θthの範囲内で、全ての下向きの力が閾値Tv以下で、かつ全ての負荷モーメントMが閾値Th以下か否かを判断する(ステップS207)。ワークWの揺れ角θ(t)が許容揺れ角θthを超える値を含む場合、閾値Tvより大きい下向きの力が存在する場合、及び閾値Thより大きい負荷モーメントMが存在する場合の少なくともいずれかの場合(ステップS207:NO)、CPU11は、ステップS210の処理に進む。一方、ワークWの揺れ角θ(t)が許容揺れ角θthの範囲内で、全ての下向きの力が閾値Tv以下で、かつ全ての負荷モーメントMが閾値Th以下の場合(ステップS207:YES)、CPU11は、ステップS208の処理に進む。
以上のように、第2実施形態のシミュレーション装置10Aによれば、算出した揺れ角を利用して、ワークの揺れ角が受け付けた許容揺れ角を超えない範囲で、かつ下向きの力及び負荷モーメントが閾値以下となる最適なロボットアームの加速度を特定することができる。これにより、ユーザは、許容できる揺れ角に応じた最適な動作指令値であって、かつワークが落下しない動作指令値を知ることができる。
(第3実施形態)
図15は、第3実施形態に係るシミュレーション装置10Bの機能構成を示すブロック図である。なお、シミュレーション装置10Bのハードウェア構成については、第1実施形態に係るシミュレーション装置10と同様であるため、説明を省略する。
図15に示すように、シミュレーション装置10Bは、第2実施形態に係るシミュレーション装置10Aの機能構成における最適指令値特定部107Aに変えて、最適指令値特定部107Bを有する。また、シミュレーション装置10Bは、第2実施形態に係るシミュレーション装置10Aの機能構成における許容値受付部105に変えて、許容値受付部105Bを有する。また、シミュレーション装置10Bは、第2実施形態に係るシミュレーション装置10Aの機能構成における負荷導出部109に変えて、負荷モーメント導出部109Bを有する。また、シミュレーション装置10Bは、第2実施形態に係るシミュレーション装置10Aの機能構成に加え、相関関係取得部110を有する。なお、最適指令値特定部107B及び相関関係取得部110は、本発明の特定部の一例である。
負荷モーメント導出部109Bは、ダイナミクス計算部104により計算されたシミュレーションモデルの動作から、シミュレーションモデルが水平運動する際のロボットアームの加速度とワークの加速度との差に応じて吸着パッドに作用する負荷モーメントを導出する。負荷モーメント導出部109Bにより導出される負荷モーメントは、第2実施形態における負荷導出部109により導出される負荷モーメントMと同様である。
許容値受付部105Bは、ワークWの許容揺れ角と共に、許容されるワークWの落下率(以下、「許容落下率」という)を受け付ける。例えば、ロボットが包材により包装されたワークWを吸着する場合、包材にランダムなシワが発生する。ランダムなシワは、ロボットによるワークWの吸着力をランダムに低下させてしまい、ロボットによるワークWの保持を失敗させる可能性がある。つまり、包材を有するワークWを搬送する場合、ロボットを同じ動作条件により動かしても、ワークWが落下したりしなかったりする。同じ動作条件における複数回の搬送のうち、ワークWが落下する割合をワークの落下率と呼ぶ。許容落下率は、ユーザがどの程度の落下率まで許容できるかを表す。例えば、許容落下率が0.1%の場合、ユーザは、1000回の搬送のうち平均1回はワークが落下してしまうことを許容していることを表す。
相関関係取得部110は、負荷モーメントと、ワークの落下率に相当する物理量との相関関係を示すデータを取得する。データの取得先は、例えば、ストレージ14又は外部のサーバである。相関関係は、実験により求めた負荷モーメントと落下率との相関を表す確率分布を、確率紙を用いてプロットすることにより求められる。例えば、負荷モーメントと落下率との相関をワイブル分布として表し、ワイブル確率紙にプロットすることにより相関関係が得られる。確率分布はワイブル分布に限らず、正規分布、対数正規分布、グンベル分布、フレシェ分布、指数関数型最小値漸近分布、指数分布又はレーリー分布等も適用し得る。この場合も、それぞれに合わせた確率紙にプロットすることにより相関関係が得られる。図16に、負荷モーメントと、ワークの落下率に相当する物理量との相関関係の一例を示す。
最適指令値特定部107Bは、ワークWの揺れ角θが許容揺れ角θthの範囲内であることに加え、負荷モーメント導出部109Bにより導出される負荷モーメントに対応して、相関関係取得部110により取得される落下率が許容落下率を超えない範囲で、ロボットアームRの加速度aの最適パターンを特定する。
図17は、第3実施形態に係るシミュレーション装置10BのCPU11により実行される動作の流れを示すフローチャートである。CPU11がROM12又はストレージ14からシミュレーションプログラムを読み出して、RAM13に展開し実行することにより、シミュレーション処理が行なわれる。
ステップS303〜ステップS306及びステップS309〜S314は、図8に示すステップS102〜ステップS105及びステップS107〜S112と同様であるので、説明を省略する。
CPU11は、許容値受付部105Bとして、ワークWの許容揺れ角θth及び許容落下率を受け付ける(ステップS301)。以下では、受け付けた許容落下率に符号「p」を付す。許容落下率pの受け付けは、例えば、図9に示すような画面により許容揺れ角θthを受け付ける場合と同様に受け付けることができる。
CPU11は、相関関係取得部110として、上述の負荷モーメントと、ワークの落下率に相当する物理量との相関関係(例えば、図16)を参照し、ステップS301において受け付けた許容落下率pに対応する負荷モーメントMを閾値Tpとして設定する(ステップS302)。閾値Tpは、ストレージ14又はRAM13に一旦記憶される。
CPU11は、負荷モーメント導出部109Bとして、シミュレーション中に変化する、全ての負荷モーメントMを、式(11)に基づいて導出する(ステップS307)。
CPU11は、最適指令値特定部107Bとして、ワークWの揺れ角θ(t)が、許容揺れ角θthの範囲内で、かつ全ての負荷モーメントMが閾値Tp以下か否かを判断する(ステップS308)。ワークWの揺れ角θ(t)が許容揺れ角θthを超える値を含む場合、又は閾値Tpより大きい負荷モーメントMが存在する場合(ステップS308:NO)、CPU11は、ステップS311の処理に進む。一方、ワークWの揺れ角θ(t)が許容揺れ角θthの範囲内で、かつ全ての負荷モーメントMが閾値Tp以下の場合(ステップS308:YES)、CPU11は、ステップS309の処理に進む。
以上のように、第3実施形態のシミュレーション装置10Bによれば、算出した揺れ角を利用して、ワークの揺れ角が受け付けた許容揺れ角を超えない範囲で、かつ負荷モーメントに対応する落下率が許容落下率を超えない範囲で、最適なロボットアームの加速度を特定することができる。これにより、ユーザは、許容できる揺れ角及び落下率に応じた最適な動作指令値を知ることができる。
(第4実施形態)
第1〜第3実施形態では、揺れ角算出部106により算出されたワークWの揺れ角θを、ロボットアームRの加速度aの最適パターンを特定するために利用する場合について説明した。第4実施形態では、ワークWにロボットアームRの水平方向の加速度及び鉛直方向の加速度が作用することを考慮した負荷モーメントの導出に、算出されたワークWの揺れ角θを利用する場合について説明する。例えば、ロボットアームRが水平方向に対して傾斜した運動を行なう場合に、水平方向の加速度及び鉛直方向の加速度がワークWに作用する。
図18は、第4実施形態に係るシミュレーション装置10Cの機能構成を示すブロック図である。なお、シミュレーション装置10Cのハードウェア構成については、第1実施形態に係るシミュレーション装置10と同様であるため、説明を省略する。
図18に示すように、シミュレーション装置10Cは、第3実施形態に係るシミュレーション装置10Bの機能構成における最適指令値特定部107Bに変えて、最適指令値特定部107Cを有する。また、シミュレーション装置10Cは、第3実施形態に係るシミュレーション装置10Bの機能構成における負荷モーメント導出部109Bに変えて、負荷モーメント導出部109Cを有する。なお、シミュレーション装置10Cは、第3実施形態に係るシミュレーション装置10Bの機能構成における許容値受付部105B及び相関関係取得部110は有さない。なお、最適指令値特定部107Cは、本発明の特定部の一例である。
ここで、負荷モーメント導出部109Cにおける負荷モーメントの導出を説明するために、まず、図19に、ワークWにかかる力を示す。
図19において、ロボットアームRの加速度aを分解して得られる水平方向の加速度をa、鉛直方向の加速度をaとして示す。また、ワークWにかかる合成慣性力をF、合成慣性力Fを分解して得られる水平方向の慣性力をF、鉛直方向の慣性力をFとして示す。ワークWの鉛直方向に対する回転角度をθとして表す。また、ワークWの質量をm、シミュレーションモデルの回転する部分に作用する慣性モーメントをIとして表す。ワークWの回転中心からワークWの重心までの距離がL1、回転中心からワークWの先端(底面)までの距離をL2とする。
水平方向の慣性力Fは、F=m×aとして表され、鉛直方向の慣性力Fは、F=m×aとして表される。
慣性力による水平方向のモーメントの腕の長さはL1sinθ、鉛直方向のモーメントの腕の長さはL1cosθで表され、θが小さい場合、各々L1θ、L1で表される。したがって、ロボットアームRと共に運動する並進座標系においては、ワークWに生じるモーメントτは、次の式(12)に示す回転の運動方程式により表される。
Figure 0006930457
ワークWに生じるモーメントτと、慣性力によるモーメントとの差が、吸着パッドPに負荷としてかかる力、すなわち、負荷モーメントMである。
式(12)に上記の式(8)を代入し、負荷モーメントMの式に変形すると、式(13)が得られる。
Figure 0006930457
したがって、負荷モーメント導出部109Cは、上記式(13)のθとして、揺れ角算出部106により算出されたワークWの揺れ角θを用いて、負荷モーメントMを導出する。
最適指令値特定部107Cは、負荷モーメント導出部109Cにより導出される負荷モーメントMが、予め定めた閾値Mpを超えない範囲で、ロボットアームRの加速度aの最適パターンを特定する。閾値Mpは、例えば、シミュレーションモデルに相当するロボットの実機を実行条件を変更して繰り返し動作させたときに、ワークが落下しなかった実行条件で発生する負荷モーメントのうちの最大値などを設定しておくことができる。
図20は、第4実施形態に係るシミュレーション装置10CのCPU11により実行される動作の流れを示すフローチャートである。CPU11がROM12又はストレージ14からシミュレーションプログラムを読み出して、RAM13に展開し実行することにより、シミュレーション処理が行なわれる。
ステップS401〜ステップS404及びステップS407〜S412は、図8に示すステップS102〜ステップS105及びステップS107〜S112と同様であるので、説明を省略する。
CPU11は、負荷モーメント導出部109Cとして、シミュレーション中に変化する、全ての負荷モーメントMを、ステップS404で算出されたワークWの揺れ角θ、及び式(13)に基づいて導出する(ステップS405)。
CPU11は、最適指令値特定部107Cとして、全ての負荷モーメントMが閾値Tp以下か否かを判断する(ステップS406)。閾値Tpより大きい負荷モーメントMが存在する場合(ステップS406:NO)、CPU11は、ステップS409の処理に進む。一方、全ての負荷モーメントMが閾値Tp以下の場合(ステップS406:YES)、CPU11は、ステップS407の処理に進む。
以上のように、第4実施形態のシミュレーション装置10Cによれば、水平方向に交差する方向にロボットアームを運動させる場合でも、算出した揺れ角を利用して、精度良く負荷モーメントを導出することができる。ワークの落下に影響を与える負荷モーメントを精度良く導出できることにより、ワークが落下しないようなロボットアームの加速度の最適パターンを特定することができる。これにより、ユーザは、ワークが落下しない最適な動作指令値を知ることができる。
なお、シミュレーション装置は、上記の各実施形態に限定されず、種々の改変が可能である。
例えば、上記各実施形態では、ワークWの傾きの度合いの一例として、ワークWの揺れ角θを算出する場合について説明したが、ワークWの揺れ幅を算出するようにしてもよい。ワークWの揺れ幅xは、例えば図21に示すように、ワークWの回転軸を通る鉛直方向を基準とし、回転中心とワークWの重心とを通る直線とワークWの底面との交点の水平方向の距離と定義することができる。この場合、揺れ幅xは、x=Lsinθにより、算出することができる。
また、ワークWの揺れ幅は、ワークWの加速度aの二階積分により求めることができる。ワークWの揺れが小さい場合、下記式(14)に示すように、揺れ幅xを利用した近似により、ワークWの揺れ角θを算出してもよい。
Figure 0006930457
また、上記各実施形態では、算出したワークWの揺れ角θを利用して、ロボットアームRの加速度aの最適パターンを特定する場合について説明したが、これに限定されない。例えば、第1実施形態では、算出されたワークWの揺れ角θが、許容揺れ角θthの範囲内か否かをユーザに提示するようにしてもよい。また、ユーザから許容揺れ角θthを受け付けることなく、算出されたワークWの揺れ角θをユーザに提示するようにしてもよい。
また、上記各実施形態では、モーションパラメータの取りうる全ての組み合わせに対応するロボットアームRの加速度aのパターン(a(t))から、最適パターンを探索する場合について説明したが、これに限定されない。例えば、算出された揺れ角θと、許容揺れ角θthとの比較結果に応じて、次にシミュレーションするモーションパラメータの組合せを決定し、所定の条件を満たすモーションパラメータが特定できた場合には、モーションパラメータの全ての組み合わせについてシミュレーションを行うことなく、シミュレーション処理を終了してもよい。所定の条件は、例えば、算出された揺れ角θが、許容揺れ角θthの範囲内で、かつタクトタイムが予め定めた時間以下の場合とすることができる。
また、上記各実施形態では保持体として吸着パッドを用いた例について説明した。しかし、吸着パッドに限定されず、ロボットアームに対してワークが相対運動可能な構成、すなわち、ロボットアームの加速度とワークの加速度とに差が生じる構成であればよい。例えば、ワークをチャック等により両サイドから把持し、把持された部分を結ぶ線を軸に、ワークに傾きが生じる場合などにも、本発明を適用することができる。
また、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行したシミュレーション処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field−Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、シミュレーション処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
また、上記各実施形態では、シミュレーションプログラムがストレージ14またはROM12に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD−ROM(Compact Disk Read Only Memory)、DVD−ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
10、10A、10B、10C シミュレーション装置
101 モーションプログラム編集部
102 モーションパラメータ設定部
103 モーション指令値計算部
104 ダイナミクス計算部
105、105B 許容値受付部
106 揺れ角算出部
107、107A、107B、107C 最適指令値特定部
108 3D表示部
109 負荷導出部
109B、109C 負荷モーメント導出部
110 相関関係取得部

Claims (9)

  1. ワーク、前記ワークを保持した保持体、及び前記保持体が取り付けられたロボットアームを含むシミュレーションモデルであって、前記ロボットアームに対して前記ワークが相対運動可能なシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際の前記ロボットアームの加速度に対する前記ワークの加速度を導出する加速度導出部と、
    前記加速度導出部で導出された前記ワークの加速度を用いて、前記加速度運動時における前記ワークの傾き度合いを算出する算出部と、
    を含むシミュレーション装置。
  2. 前記算出部は、前記加速度導出部で導出された前記ワークの加速度、前記動作指令に基づく前記ロボットアームの加速度の変化に対する前記ワークの加速度のステップ応答の周期から得られる前記ワークの揺れの角周波数、及び、前記ワークの回転中心と前記ワークの加速度が生じる前記ワーク上の点との距離、で表される前記ワークの揺れ角を、前記ワークの傾き度合いとして算出する請求項1に記載のシミュレーション装置。
  3. 前記算出部は、前記加速度導出部で導出された前記ワークの加速度を2回積分した値で表される前記ワークの揺れ幅を、前記ワークの傾き度合いとして算出する請求項1に記載のシミュレーション装置。
  4. 前記ワークの傾き度合いの許容値を受け付ける受付部と、
    前記算出部で算出される前記傾き度合いが、前記受付部で受け付けられた傾き度合いの許容値を超えない範囲で、前記ロボットアームの加速度を特定する特定部と、
    を含む請求項1〜請求項3のいずれか1項に記載のシミュレーション装置。
  5. 前記シミュレーションを実行した際の前記ロボットアームの加速度と前記ワークの加速度との差により前記保持体に発生する負荷モーメントを導出する負荷モーメント導出部を含み、
    前記特定部は、前記負荷モーメント導出部で導出された負荷モーメントが、前記ワークの落下の可能性を示す閾値を超えない範囲で、前記ロボットアームの加速度を特定する
    請求項4に記載のシミュレーション装置。
  6. 前記シミュレーションを実行した際の前記ロボットアームの加速度と前記ワークの加速度との差により前記保持体に発生する負荷モーメントを導出する負荷モーメント導出部を含み、
    前記受付部は、前記ワークの落下率の許容値を受け付け、
    前記特定部は、前記ワークの落下率と前記負荷モーメントとの予め定めた関係に基づいて、前記負荷モーメント導出部で導出された負荷モーメントが、前記受付部で受け付けられた落下率の許容値に対応する負荷モーメントを超えない範囲で、前記ロボットアームの加速度を特定する
    請求項4に記載のシミュレーション装置。
  7. 前記シミュレーションを実行した際の前記ロボットアームの加速度と前記ワークの加速度との差により前記保持体に発生する負荷モーメントを、前記ワークに生じるモーメントから、慣性力により発生するモーメントを差し引いて導出する負荷モーメント導出部を含み、
    前記慣性力により発生するモーメントは、前記算出部により算出された前記ワークの揺れ角によって、慣性力を水平方向及び鉛直方向に分解した場合における、水平方向に作用する水平慣性力によるモーメントと鉛直方向に作用する鉛直慣性力によるモーメントとの和である
    請求項2に記載のシミュレーション装置。
  8. コンピュータが、
    ワーク、前記ワークを保持した保持体、及び前記保持体が取り付けられたロボットアームを含むシミュレーションモデルであって、前記ロボットアームに対して前記ワークが相対運動可能なシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際の前記ロボットアームの加速度に対する前記ワークの加速度を導出し、
    導出された前記ワークの加速度を用いて、前記加速度運動時における前記ワークの傾き度合いを算出する
    ことを含む処理を実行するシミュレーション方法。
  9. コンピュータを、
    ワーク、前記ワークを保持した保持体、及び前記保持体が取り付けられたロボットアームを含むシミュレーションモデルであって、前記ロボットアームに対して前記ワークが相対運動可能なシミュレーションモデルを動作指令に基づいて加速度運動させるシミュレーションを実行した際の前記ロボットアームの加速度に対する前記ワークの加速度を導出する加速度導出部、及び、
    前記加速度導出部で導出された前記ワークの加速度を用いて、前記加速度運動時における前記ワークの傾き度合いを算出する算出部
    として機能させるためのシミュレーションプログラム。
JP2018035342A 2018-02-28 2018-02-28 シミュレーション装置、方法、及びプログラム Active JP6930457B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018035342A JP6930457B2 (ja) 2018-02-28 2018-02-28 シミュレーション装置、方法、及びプログラム
PCT/JP2019/006400 WO2019167765A1 (ja) 2018-02-28 2019-02-20 シミュレーション装置、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018035342A JP6930457B2 (ja) 2018-02-28 2018-02-28 シミュレーション装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2019150887A JP2019150887A (ja) 2019-09-12
JP6930457B2 true JP6930457B2 (ja) 2021-09-01

Family

ID=67805733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018035342A Active JP6930457B2 (ja) 2018-02-28 2018-02-28 シミュレーション装置、方法、及びプログラム

Country Status (2)

Country Link
JP (1) JP6930457B2 (ja)
WO (1) WO2019167765A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6874712B2 (ja) * 2018-02-19 2021-05-19 オムロン株式会社 シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
JP6988573B2 (ja) * 2018-03-01 2022-01-05 オムロン株式会社 シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
CN110744548B (zh) * 2019-11-08 2021-02-19 山东大学 一种多线驱连续体机械臂驱动线耦合关系的统一解耦方法
CN110941183B (zh) * 2019-11-30 2021-09-21 华南理工大学 一种基于神经网络的工业机器人动力学辨识方法
WO2024080155A1 (ja) * 2022-10-14 2024-04-18 パナソニックIpマネジメント株式会社 ロボットシステム、ロボットの制御装置、およびロボットの制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05253876A (ja) * 1991-08-21 1993-10-05 Sanyo Electric Co Ltd マニピュレータ
JPH1160153A (ja) * 1997-08-19 1999-03-02 Sumitomo Heavy Ind Ltd クレ−ンの吊り荷の振れ角計測装置
JP3910157B2 (ja) * 2003-06-11 2007-04-25 ファナック株式会社 ロボット装置
JP2005052919A (ja) * 2003-08-01 2005-03-03 Yaskawa Information Systems Co Ltd ワーク搬送装置の加速度制御方法
US7289875B2 (en) * 2003-11-14 2007-10-30 Siemens Technology-To-Business Center Llc Systems and methods for sway control
JP4408694B2 (ja) * 2003-12-22 2010-02-03 エスペックテクノ株式会社 吸着装置
JP4883272B2 (ja) * 2005-12-13 2012-02-22 株式会社Ihi クレーンの振れ止め制御方法
WO2014076935A1 (ja) * 2012-11-19 2014-05-22 株式会社タダノ 作業機械の緩停止装置
US9802793B2 (en) * 2013-01-22 2017-10-31 National Taiwan University Fast crane and operation method for same
JP6552036B2 (ja) * 2015-03-13 2019-07-31 国立大学法人三重大学 単振り子式搬送装置

Also Published As

Publication number Publication date
WO2019167765A1 (ja) 2019-09-06
JP2019150887A (ja) 2019-09-12

Similar Documents

Publication Publication Date Title
JP6930457B2 (ja) シミュレーション装置、方法、及びプログラム
JP6771799B1 (ja) 壁に基づくパッキング機構を有するロボットシステム及びその動作方法
JP6988573B2 (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
US10589424B2 (en) Robot control device, robot, and robot system
EP1864764B1 (en) Robot simulation apparatus
CN109775370B (zh) 堆积模式计算装置以及机器人控制装置
JP6036662B2 (ja) ロボットシミュレーション装置、プログラム、記録媒体及び方法
US9569568B2 (en) Robot simulation system which simulates takeout process of workpiece
KR20200138071A (ko) 패킹 메커니즘을 구비한 로봇 시스템
JPWO2012140770A1 (ja) ロボット制御装置
CN111655433A (zh) 用于操作机器人的方法
JP7147571B2 (ja) 経路生成装置、経路生成方法、及び経路生成プログラム
JP6662836B2 (ja) 収容領域又は治具にワークを配置するワーク配置システム
CN109803796A (zh) 模拟装置、机器人、模拟方法及其程序
JP7233858B2 (ja) ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
JP6874712B2 (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
CN103970026B (zh) 计算方法和计算装置
JP7028092B2 (ja) 把持姿勢評価装置及び把持姿勢評価プログラム
JP2016179821A (ja) 梱包装置、及び梱包方法
JP7415013B2 (ja) ロボットの構成部材の干渉を検出するロボット装置
JP7405730B2 (ja) 軌道計画装置、軌道計画方法、及び軌道計画プログラム
JP6996441B2 (ja) マニピュレータ制御装置、マニピュレータ制御方法、及びマニピュレータ制御プログラム
JPH05111849A (ja) 衝突検知装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210713

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210726

R150 Certificate of patent or registration of utility model

Ref document number: 6930457

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150