JP2021084175A - シミュレーションシステム、シミュレーション方法、シミュレーションプログラム、ロボットの製造方法、およびロボットシステム - Google Patents

シミュレーションシステム、シミュレーション方法、シミュレーションプログラム、ロボットの製造方法、およびロボットシステム Download PDF

Info

Publication number
JP2021084175A
JP2021084175A JP2019214769A JP2019214769A JP2021084175A JP 2021084175 A JP2021084175 A JP 2021084175A JP 2019214769 A JP2019214769 A JP 2019214769A JP 2019214769 A JP2019214769 A JP 2019214769A JP 2021084175 A JP2021084175 A JP 2021084175A
Authority
JP
Japan
Prior art keywords
robot
simulation
path
interference
inner loop
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.)
Granted
Application number
JP2019214769A
Other languages
English (en)
Other versions
JP6792184B1 (ja
Inventor
航 渡邉
Wataru Watanabe
航 渡邉
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.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric 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 Yaskawa Electric Corp filed Critical Yaskawa Electric Corp
Priority to JP2019214769A priority Critical patent/JP6792184B1/ja
Priority to EP20207762.4A priority patent/EP3827935A1/en
Priority to CN202011304573.5A priority patent/CN112847329A/zh
Application granted granted Critical
Priority to US17/103,949 priority patent/US20210154846A1/en
Publication of JP6792184B1 publication Critical patent/JP6792184B1/ja
Publication of JP2021084175A publication Critical patent/JP2021084175A/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
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40311Real time simulation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40317For collision avoidance and detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

【課題】ロボット制御のプランニングにおけるさらなる自動化。【解決手段】一実施形態に係るシミュレーションシステムは、ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーション部と、シミュレーション部による実行結果に基づいて、ロボットが他の物体に干渉するか否かをチェックする干渉チェック部と、干渉が発生する場合に、パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整部とを備える。【選択図】図3

Description

本開示の一側面は、シミュレーションシステム、シミュレーション方法、シミュレーションプログラム、ロボットの製造方法、およびロボットシステムに関する。
特許文献1には、データセットに基づく機械学習プロセスの結果に基づいて、任意に設定された始点と終点との間のロボッ卜のパスを生成するロボッ卜パス生成装置が記載されている。
国際公開第2018/143003号
ロボット制御のプランニングにおいてさらなる自動化が望まれている。
本開示の一側面に係るシミュレーションシステムは、ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーション部と、シミュレーション部による実行結果に基づいて、ロボットが他の物体に干渉するか否かをチェックする干渉チェック部と、干渉が発生する場合に、パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整部とを備える。
本開示の一側面に係るシミュレーション方法は、少なくとも一つのプロセッサを備えるシミュレーションシステムによって実行されるシミュレーション方法であって、ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーションステップと、シミュレーションステップにおける実行結果に基づいて、ロボットが他の物体に干渉するか否かをチェックする干渉チェックステップと、干渉が発生する場合に、パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整ステップとを含む。
本開示の一側面に係るシミュレーションプログラムは、ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーションステップと、シミュレーションステップにおける実行結果に基づいて、ロボットが他の物体に干渉するか否かをチェックする干渉チェックステップと、干渉が発生する場合に、パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整ステップとをコンピュータに実行させる。
本開示の一側面に係るロボットの製造方法は、ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーションステップと、シミュレーションステップにおける実行結果に基づいて、ロボットが他の物体に干渉するか否かをチェックする干渉チェックステップと、干渉が発生する場合に、パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整ステップと、調整されたパラメータに基づくパスにおいて干渉が発生しない場合に、該パスを含む動作プログラムに基づいてロボットを制御する制御ステップとを含む。
本開示の一側面に係るロボットシステムは、ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーション部と、シミュレーション部による実行結果に基づいて、ロボットが他の物体に干渉するか否かをチェックする干渉チェック部と、干渉が発生する場合に、パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整部と、調整されたパラメータに基づくパスにおいて干渉が発生しない場合に、該パスを含む動作プログラムに基づいてロボットを制御する制御部とを備える。
本開示の一側面によれば、ロボット制御のプランニングにおいてさらなる自動化が可能になる。
ロボットシステムの構成の一例を示す図である。 プログラミング支援装置のハードウェア構成の一例を示す図である。 プログラミング支援装置の機能構成の一例を示す図である。 プログラミング支援装置の動作の一例を示すフローチャートである。 教示点の位置を調整する一例を示す図である。 教示点とロボットの軌道との関係の一例を示す図である。 プログラミング支援装置の動作の一例を示すフローチャートである。 動作プログラムで表される一連の処理の一例を示す図である。 プログラミング支援装置の動作の一例を示すフローチャートである。
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。なお、図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
[ロボットシステム]
本実施形態では、本開示に係るシミュレーションシステムをロボットシステム1のプログラミング支援装置4に適用する。ロボットシステム1は、オペレータにより教示された動作をロボットに実行させることにより、加工、組立等の様々な作業を自動化するシステムである。図1は、実施形態に係るロボットシステムの構成の一例を示す図である。一例では、ロボットシステム1は、1以上のロボット2と、1以上のロボット2に対応する1以上のロボットコントローラ3と、プログラミング支援装置4とを備える。図1は3台のロボット2および3台のロボットコントローラ3を示し、一つのロボットコントローラ3に一つのロボット2が接続される構成を示す。しかし、各装置の台数も接続方法も限定されない。例えば、一つのロボットコントローラ3に複数台のロボット2が接続されてもよい。
一例では、ロボット2は多軸のシリアルリンク型の垂直多関節ロボットであり、その先端部5にツールを保持した状態で様々な処理を実行できるように構成される。ロボット2は、所定の範囲内において先端部5の位置および姿勢を自在に変更し得る。ロボット2は、6軸の垂直多関節ロボットでもよいし、6軸に1軸の冗長軸を追加した7軸の垂直多関節ロボットでもよい。一例では、複数台のロボット2は、同一の位置に配置された同一のワークに対し、いずれのロボット2によっても同一の処理を実行し得るように配置される。
ロボットコントローラ3は、予め生成された動作プログラムに従ってロボット2を制御する装置である。一例では、動作プログラムはロボット2を制御するためのデータを含み、例えば、ロボット2の軌道を示すパスを含む。ロボット2の軌道とは、ロボット2またはその構成要素の動きの経路のことをいう。例えば、ロボット2の軌道は先端部5の軌道であり得る。一例では、ロボットコントローラ3は、動作プログラムで示される目標値に先端部5の位置および姿勢を一致させるための関節角度目標値(ロボット2の各関節の角度目標値)を算出し、その角度目標値に従ってロボット2を制御する。
ロボットコントローラ3の制御によってロボット2は一連の処理を実行する。その一連の処理を構成する最小単位の処理をタスクという。タスクの例として「部品を取る」、「部品を置く」、「部品を(ワークに)嵌合する」、「待機姿勢を取る」等が挙げられるが、当然ながら、タスクは任意の方針で設定されてよい。一つのタスクは、該タスク中におけるロボット2の軌道である作業パスを含み得る。一例では、この作業パスはタスクを生成する際にユーザ入力に基づいて設定される。すなわち、作業パスは人手により設定される。作業パスは第1パスの一例である。
動作プログラムは、タスク間をつなぐロボット2の軌道を示すパスも含む。より具体的には、このパスは、先行するタスクにおける作業パスの終点と、後続のタスクにおける作業パスの始点とを結ぶ。本開示では、作業パスと区別するために、タスク間のパスのことを「エアカットパス」ともいう。タスク間のパスは自動的に設定され、例えば、始点および終点以外の教示点が設定されることでそのパスが自動設定される。ここで、教示点とは、パスを規定するために設定される基準点のことをいう。エアカットパスは第2パスの一例である。
プログラミング支援装置4は、動作プログラムの生成を支援する装置である。プログラミング支援装置4は、1以上のロボット2のそれぞれについて動作プログラムを生成し、この動作プログラムに基づく制御において問題があるか否かをシミュレーションする。シミュレーションとは動作プログラムを仮想的に実行する処理のことをいい、具体的には、ロボット2を実際に作動させることなく動作プログラムをコンピュータ上で模擬的に実行することをいう。より具体的には、シミュレーションは、ロボット2および他の物体が配置された仮想空間上で動作プログラムを仮想的に実行する処理である。他の物体とは、ロボット2の周辺に配置された物体であり、例えば、他のロボット2、ワーク、他の製造装置等であり得る。
[プログラミング支援装置]
図2はプログラミング支援装置4のハードウェア構成の一例を示す図である。プログラミング支援装置4は本体10、モニタ20、および入力デバイス30を備える。
本体10は少なくとも一つのコンピュータにより構成される。本体10は回路160を有し、回路160は、少なくとも一つのプロセッサ161と、メモリ162と、ストレージ163と、入出力ポート164とを有する。ストレージ163は、本体10の上記各機能モジュールを構成するためのプログラムを記録する。ストレージ163は、ハードディスク、不揮発性の半導体メモリ、磁気ディスク、光ディスク等の、コンピュータ読み取り可能な記録媒体である。メモリ162は、ストレージ163からロードされたプログラム、プロセッサ161の演算結果等を一時的に記憶する。プロセッサ161は、メモリ162と協働してプログラムを実行することで、各機能モジュールを構成する。入出力ポート164は、プロセッサ161からの指令に応じ、モニタ20、入力デバイス30、およびロボットコントローラ3の間で電気信号の入出力を行う。
モニタ20は、本体10から出力された情報を表示するための装置である。モニタ20は、グラフィック表示が可能であればいかなるものであってもよく、その具体例としては液晶パネル等が挙げられる。入力デバイス30は、本体10に情報を入力するための装置である。入力デバイス30は、所望の情報を入力可能であればいかなるものであってもよく、その具体例としてはキーパッド、マウス等が挙げられる。
モニタ20および入力デバイス30はタッチパネルとして一体化されていてもよい。例えばタブレットコンピュータのように、本体10、モニタ20、および入力デバイス30が一体化されていてもよい。
図3はプログラミング支援装置4の機能構成の一例を示す図である。一例では、プログラミング支援装置4は機能モジュールとして受付部101、シミュレーション部102、調整部103、および出力部104を備える。受付部101は、検証しようとする動作プログラムを取得する機能モジュールである。シミュレーション部102は、その動作プログラムを仮想的に実行して、該動作プログラムに問題があるか否かをチェックする機能モジュールである。より具体的には、シミュレーション部102は、シミュレーションにおいてロボット2が他の物体に干渉するか否かを判定する。本開示において、干渉とは物体同士が接触または衝突することをいい、より具体的には、ロボット2が他の物体に接触または衝突することをいう。調整部103は、シミュレーションにおいて干渉が発生した場合に、パスに対応する少なくとも一つの教示点に関するパラメータを調整する機能モジュールである。出力部104はシミュレーションの結果を出力する機能モジュールである。
[シミュレーション方法]
本開示に係るシミュレーション方法の一例として、図4を参照しながら、プログラミング支援装置4により実行される一連の処理手順の一例を説明する。図4はプログラミング支援装置4の動作の一例を処理フローS1として示すフローチャートである。すなわち、プログラミング支援装置4は処理フローS1を実行する。
ステップS101では、受付部101が、検証しようとする動作プログラムを取得する。動作プログラムの取得方法は限定されない。例えば、受付部101はユーザ入力された動作プログラムを受け付けてもよいし、ユーザ入力に基づいて所与の記憶装置から動作プログラムを読み出してもよいし、他のコンピュータから送られてきた動作プログラムを受信してもよい。
ステップS102では、シミュレーション部102が、検証しようとする一つのパスを選択する。一例では、シミュレーション部102は、作業パス(第1パス)を選択することなくエアカットパス(第2パス)を選択する。動作プログラムが複数のエアカットパスを含む場合にはシミュレーション部102は任意の方針によって一つのエアカットパスを選択してよく、例えば、一連の処理の上流から下流の方向に沿って順番にエアカットパスを選択してもよい。
ステップS103では、シミュレーション部102が、選択されたパス(例えばエアカットパス)に関する動作プログラムを仮想的に実行する。「選択されたパスに関する動作プログラム」とは、動作プログラムのうち、選択されたパスにおけるロボット2の制御を規定する部分のことをいう。本開示ではその部分を「単体動作プログラム」ともいう。シミュレーション部102は単体動作プログラムを仮想的に実行するので、或る一つのパスについて複数の干渉を特定することが可能である。ロボット2と干渉する他の物体の個数は1かもしれないし複数もしれない。
ステップS104では、シミュレーション部102が、選択されたパスにおいて干渉が発生するか否かをシミュレーションの実行結果に基づいて判定する。したがって、シミュレーション部102は干渉チェック部としても機能する。干渉が発生しない場合には(ステップS104においてNO)、処理はステップS107に進む。ステップS107については後述する。
一方、少なくとも一つの干渉が発生する場合には(ステップS104においてYES)、プログラミング支援装置4は干渉が発生しないパスを探索するために、そのパスに対応する少なくとも一つの教示点に関するパラメータを調整する。そして、プログラミング支援装置4は調整されたパラメータに基づくパスに対応する動作プログラムを仮想的に実行し、そのパスにおいて干渉が発生するか否かを判定する。ステップS105,S106はこのような再実行に関連する。
ステップS105ではシミュレーション部102がパス決定を打ち切るか否かを判定する。この打ち切り条件は任意の方針で設定されてよく、例えば、試行回数により規定されてもよいし、タイムアウト時間により規定されてもよい。
パス決定を打ち切らない場合には(ステップS105においてNO)、処理はステップS106に進む。ステップS106では、調整部103が、選択されたパスに対応する少なくとも一つの教示点に関するパラメータを調整する。このパラメータの調整によってパスの少なくとも一部が変更される。ロボット2が他の物体と複数の位置(干渉位置)で干渉する場合には、調整部103は、複数の干渉位置のそれぞれに対応する少なくとも一つの教示点についてパラメータを調整する。すなわち、調整部103はすべての干渉を解消するように少なくとも一つの教示点のパラメータを調整する。教示点のパラメータは限定されず、これに関連して、パラメータの調整方法も限定されない。以下では、その調整の例として、教示点の位置の変更と、内回り量の変更とを説明する。
(教示点の位置の変更)
一例では、調整部103は少なくとも一つの教示点の位置を、現在位置よりも他の物体(干渉が発生する他の物体)からさらに離れた位置にずらしてもよい。このように教示点の位置を変更することで、パスを規定する教示点と他の物体との距離が現在の値よりも大きくなるので、その教示点に基づくパスも他の物体から離れる。その結果として、干渉が回避され得る。
図5は教示点の位置を調整する一例を示す図である。この例では、調整部103は位置をずらす教示点を選択する。例えば、調整部103はロボット2が他の物体9に干渉する位置を干渉位置として特定し、この干渉位置に対応する一つの教示点を第1教示点として選択する。第1教示点の選択方法は限定されない。一例では、調整部103は、隣接する二つの教示点のペアのそれぞれについて、該ペアに対応するパスの一部分(これを「区間」という)を求め、干渉位置を含む区間を特定する。そして、調整部103はその区間において下流に位置する教示点を第1教示点として選択する。この処理は、干渉が発生した際におけるロボット2の直近の移動目標に対応する教示点を第1教示点として選択することを意図するものであるといえる。別の例では、調整部103は干渉位置に最も近い教示点を第1教示点として選択してもよい。
調整部103は第1教示点を含む連続した複数の教示点を選択してもよい。一例では、調整部103は、選択されたパスにおいて、第1教示点を基準として上流に位置する複数の教示点を選択してもよい。ここで、「上流に位置する教示点」とは、パスの始点に近い側に位置する教示点のことをいう。別の例では、調整部103は、選択されたパスにおいて、第1教示点を基準として下流に位置する複数の教示点(すなわち、パスの終点に近い側に位置する教示点)を選択してもよい。あるいは、調整部103は、選択されたパスにおいて、第1教示点より上流に位置する或る教示点から、第1教示点より下流に位置する或る教示点までの連続した複数の教示点を選択してもよい。連続する複数の教示点として選択される教示点の個数は任意に設定されてよい。
一例では、調整部103は、選択されたパスの始点および終点に対応する二つの教示点を、位置をずらす教示点として選択しない。すなわち、調整部103は、パスにおける最初の教示点および最後の教示点を除いた他の教示点のうちの少なくとも一つを、位置をずらす教示点として選択する。これは、パスの始点および終点がいずれも、隣接するパスとの接続に関係し、最初の教示点および最後の教示点の位置を変更するとその接続が不適切になり得る。
図5は、ロボット2の先端部5のパス201と、このパス201に対応する5個の教示点211〜215とを示す。先端部5は教示点211から教示点215に向かって進むものとし、したがって、教示点211がパス201の始点であり、教示点215がパス201の終点である。シミュレーションにおいてロボット2(より具体的には先端部5)が干渉位置221で他の物体9に干渉したとする。一例では、調整部103はその干渉位置221に対応する第1教示点として教示点214を選択する。例えば、教示点214は、干渉が発生した際におけるロボット2の直近の移動目標に対応する。続いて、調整部103はその教示点214を含む連続した複数の教示点を選択する。一例では、調整部103は教示点214を基準として上流に位置する教示点212、213をさらに選択することで、結果的に教示点212〜214を選択する。調整部103は、パス201の始点である教示点211を選択しない。
位置をずらす少なくとも一つの教示点を選択した後に、調整部103はそれぞれの教示点の位置を、現在位置よりも他の物体9からさらに離れた位置にずらす。一例では、調整部103は、選択された教示点のそれぞれについて、干渉位置と現在位置とを結ぶ仮想線の方向に沿って該教示点の位置をずらす。図5はこの手法による位置の変更を示す。図5の例では、調整部103は干渉位置221と教示点212の現在位置とを結ぶ仮想線232の方向に沿って教示点212をずらし、この結果、教示点212は位置212Aに移る。また、調整部103は干渉位置221と教示点213の現在位置とを結ぶ仮想線233の方向に沿って教示点213をずらし、この結果、教示点213は位置213Aに移る。さらに、調整部103は干渉位置221と教示点214の現在位置とを結ぶ仮想線234の方向に沿って教示点214をずらし、この結果、教示点214は位置214Aに移る。
教示点をずらす量は任意の方針で設定されてよい。例えば、調整部103は干渉位置と教示点の現在位置との距離が小さいほど、教示点の位置のずらし量を大きくしてもよい。このようなずらし方の具体的な手法は限定されない。一例では、調整部103は下記の式(1),(2)を用いてずらし量Δrを求めてもよい。
Figure 2021084175

Figure 2021084175
上記の式において、rは現在の教示点の位置を示すベクトルであり、rcnは干渉位置を示すベクトルである。MPLは教示点の所与の最大ずらし量である。関数w(x)は、干渉位置と教示点の現在位置との距離が小さいほど、教示点の位置のずらし量を大きくするために用いるシグモイド関数である。そのようなずらし量の程度は、係数α,βを調整することで決めることができる。
あるいは、調整部103は干渉時のロボット2の稼働速度(例えば先端部5の動きの速度)を考慮して教示点の位置のずらし量を設定してもよい。例えば、調整部103はその速度が大きいほどずらし量を大きくしてもよい。
図5の例では、教示点212,213,214がそれぞれ位置212A,213A,214Aに移る。すなわち、教示点212,213,214の現在位置はそれぞれ、位置212A,213A,214Aに変わる。このように少なくとも一つの教示点が干渉位置221を中心として放射方向に沿って移動するので、パス201よりも他の物体9から離れたパス201Aが得られる。パスを規定する教示点と他の物体との距離が現在の値よりも大きくなるので、その教示点に基づくパスも他の物体から離れ、その結果、干渉が回避され得る。
(内回り量の変更)
一例では、調整部103は少なくとも一つの教示点の内回り量を減少させてもよい。内回りとは、連続する3個の教示点によって規定されるロボット2の軌道(例えば先端部5の軌道)が、該3点を直線で結ぶ経路よりも短くなる現象のことをいう。内回り量とは、その内回りの程度を示す数値のことをいう。本開示では、内回り量が大きいほど、軌道の長さが短くなるものとする。したがって、内回り量が大きいほどロボット2の動作時間が短縮される。
図6は教示点とロボット2の軌道との関係の一例を示す図である。この例は、連続する3個の教示点241〜243と、3個の教示点を直線で結ぶ軌道250と、内回りの軌道251〜258とを示す。これらの軌道250〜258は教示点242に対応する。この例では、教示点241が始点であり、教示点243が終点であるとする。一般に、ロボットコントローラ3は、ロボットの動作を滑らかにするために、教示点241から教示点242への移動に関する速度指令と、教示点242から教示点243への移動に関する速度指令とを重ね合わせる。この重ね合わせによってロボット2の移動距離が短縮され、その結果、教示点242を通らない軌道が生成される。図6の例では、教示点242を通る軌道250の内回り量が0で最も小さく、軌道258の内回り量が最も大きい。
一例では、調整部103は、内回り量を決定するために、複数の内回りレベルの中から一つの内回りレベルを設定する。内回りレベルとは、内回り量の候補を段階的に示す指数のことをいう。図6の例では、軌道250の内回りレベルを0とし、軌道251の内回りレベルを1とし、軌道252の内回りレベルを2とし、同様に軌道253〜258の内回りレベルをそれぞれ3〜8とする。図6は教示点242に対応する内回りレベルのみを示すが、この内回りレベルは、パスを構成するすべての教示点について設定され、したがって、パスの始点および終点においても設定される。一例では、調整部103は、選択されたパスに対応するすべての教示点に対して同じ内回りレベルを設定する。しかし、実際の内回り量は個々の教示点によって異なり得る。
内回りレベルを用いた内回り量の調整方法は限定されない。例えば、調整部103は、内回り量が減少するように、複数の内回りレベルの中から一つの内回りレベルを二分探索法によって設定してもよい。例えば、現在の内回りレベルが「8」であれば、調整部103はその内回りレベルを「4」(すなわち、「0」と「8」との中間の内回りレベル)に変更する。内回りレベル「4」に基づくシミュレーションで干渉が発生する場合には、調整部103はその内回りレベルを「2」(すなわち、「0」と「4」との中間の内回りレベル)に変更する。内回りレベル「4」に基づくシミュレーションで干渉が発生しない場合には、調整部103はその内回りレベルを「6」(すなわち、「4」と「8」との中間の内回りレベル)に変更する。調整部103はこのように処理を進めることで、干渉が発生しない内回り量のうちの最大値(最大内回り量)を特定してもよい。あるいは、調整部103は、内回り量が減少するように、現在の内回りレベルの1段階下の内回りレベルを設定してもよい。
このように、教示点に関するパラメータの調整方法は限定されない。いずれにしても、調整部103は1以上の干渉位置のそれぞれについて、少なくとも一つの教示点のパラメータを調整する。例えば、教示点の位置を調整する場合には、一部の教示点が、複数の干渉の影響を受けて他の教示点よりも大きく現在位置からずれる可能性がある。
ステップS106の後に処理はステップS103に戻る。このステップS103では、シミュレーション部102が、調整されたパラメータに基づくパスに対応する動作プログラムを仮想的に実行する。その後、その実行結果に基づいてステップS104以降の処理が実行される。なお、内回りレベルを二分探索法によって設定する場合には、上述したように、干渉が発生しない場合(ステップS104)にも、ステップS106およびステップS103が実行され得る。
パス決定を打ち切る場合には(ステップS105においてYES)、処理はステップS107に移る。ステップS107では、シミュレーション部102がすべてのパスを検証したか否かを確認する。未だ検証していないパスが存在する場合には(ステップS107においてNO)、処理はステップS102に戻り、シミュレーション部102が、検証しようとする次のパスを選択する。その後、そのパスについてステップS103以降の処理が実行される。
すべてのパスを検証した場合には(ステップS107においてYES)、処理はステップS108に移る。ステップS108では、出力部104がシミュレーションの結果を示す結果データを出力する。
結果データのデータ構造は限定されない。例えば、結果データは動作プログラムを含んでもよい。出力部104は、干渉が発生しないことをシミュレーション上で確認できた動作プログラムを出力し得る。受付部101によって取得された動作プログラムそのものにおいて干渉が発生しなかったならば、出力部104は結果的に、入力された動作プログラムをそのまま出力し得る。パス決定を打ち切った場合には、出力部104は干渉の可能性を有する動作プログラムを出力する。結果データは、動作プログラムに加えてまたは代えて他の情報を含んでもよい。例えば、結果データは、教示点に関するパラメータがどのように調整されたかを示す調整情報を含んでもよいし、解消できなかった干渉に関する干渉情報を含んでもよい。
結果データの出力先も限定されない。例えば、出力部104は結果データを、モニタ20上に表示してもよいし、ストレージ163等の記録媒体に格納してもよいし、ロボットコントローラ3等の他のコンピュータに送信してもよい。結果データをモニタ20上に表示する場合には、出力部104はユーザ操作に応答してまたは自動的に、動作プログラムに基づくロボット2の動作をコンピュータグラフィック(CG)による動画または静止画によって表現してもよい。
一例では、出力部104は、干渉が発生しないことをシミュレーション上で確認できた動作プログラムをロボットコントローラ3に出力し、ロボットコントローラ3はその動作プログラムに基づいてロボット2を制御する。したがって、出力部104およびロボットコントローラ3のうちの少なくとも一つは制御部として機能する。動作プログラムに基づいて動作するロボット2が処理フローS1によって得られるので、処理フローS1は、本開示に係るシミュレーション方法の一例であるとともに、本開示に係るロボットの製造方法の一例でもある。
上述したように、一例では、調整部103は一つのパス内のすべての教示点について同じ内回りレベルを設定する。その一方で、複数のエアカットパスの間で内回りレベルが異なることがあり得る。
プログラミング支援装置4は内回りレベルと教示点の位置との双方を変更することで、パスに対応する教示点に関するパラメータを調整してもよい。図7を参照しながらこの調整方法の一例を説明する。図7はプログラミング支援装置4の動作の一例を処理フローS2として示すフローチャートである。すなわち、プログラミング支援装置4は処理フローS2を実行する。
この処理フローS2では、調整部103は、干渉が発生する場合に、少なくとも一つの教示点の位置を、現在位置よりも他の物体からさらに離れた位置にずらす処理を、設定された内回りレベルを維持したまま1回以上実行する。設定された内回りレベルについて、干渉が発生しない動作プログラムを取得できない場合には、調整部103は、より小さい内回り量に対応する別の内回りレベルを設定する。そして、調整部103は、その新たな内回りレベルを維持したまま、少なくとも一つの教示点の位置を他の物体からさらに離れた位置にずらす処理を1回以上実行する。要するに、調整部103は、或る内回りレベル(内回り量)を維持したまま、教示点の位置をずらしながら、干渉が発生しないパスを探索する。その内回りレベルではそのようなパスを見つけられない場合には、調整部103は新たな内回りレベルを設定した上で(すなわち、内回り量を小さくした上で)、教示点の位置をずらしながら、干渉が発生しないパスを探索する。調整部103はこのように内回りレベルおよび教示点の位置の変更を繰り返しながら、干渉が発生しないパスを探索する。
処理フローS2は或る一つのパスについての処理である。プログラミング支援装置4は、検証しようとするパスのすべてについてこの処理フローS2を実行する。
ステップS201では、シミュレーション部102が内回りレベルの初期値を設定する。一例では、シミュレーション部102はパスに対応するすべての教示点について同じ内回りレベルを設定する。例えば、内回りレベルの初期値は、内回り量が最大である内回りレベルである(図6の例では内回りレベル「8」)。
ステップS202では、シミュレーション部102が、教示点が初期位置である場合の動作プログラム(単体動作プログラム)を仮想的に実行する。
ステップS203では、シミュレーション部102が、選択されたパスにおいて干渉が発生するか否かを判定する。干渉が発生する場合には(ステップS203においてYES)、処理はステップS204に移る。
ステップS204では、調整部103が少なくとも一つの教示点の位置をずらす。この位置のずらし方が特定の手法に限定されないことは、処理フローS1を示しながら説明した通りである。ロボット2が他の物体と複数の干渉位置で干渉する場合には、調整部103はすべての干渉を解消するように少なくとも一つの教示点の位置をずらす。これは、複数の干渉位置のそれぞれに対応する少なくとも一つの教示点についてパラメータを調整する処理の一例である。
ステップS205では、シミュレーション部102が、教示点の調整された位置に基づくパスに対応する動作プログラム(単体動作プログラム)を仮想的に実行する。
ステップS206ではシミュレーション部102が、選択されたパスにおいて干渉が発生するか否かを判定する。ステップS207,S208で示すように、教示点の位置をずらしながら干渉の有無をチェックする処理は、シミュレーション部102が位置の調整を打ち切ると判定するまで繰り返される。
ステップS209では、シミュレーション部102は、内回りレベルの調整を打ち切るか否かを判定する。この調整を打ち切らない場合には(ステップS209においてNO)、処理はステップS210に進む。
ステップS210では、調整部103が内回りレベルを所与の手法により変更する。この変更方法が特定の手法に限定されないことは、処理フローS1を示しながら説明した通りである。ロボット2が他の物体と複数の干渉位置で干渉する場合には、調整部103はすべての干渉を解消するように内回り量を変更する。これは、複数の干渉位置のそれぞれに対応する少なくとも一つの教示点についてパラメータを調整する処理の一例である。続いて、変更された内回りレベルについてステップS202以降の処理が再び実行される。
或る内回りレベルにおいて、干渉が発生しないパスを特定できた場合には(ステップS203においてNO、またはステップS206においてNO)、処理はステップS211に進む。一例では、シミュレーション部102または調整部103はこの段階で、単体動作プログラムの仮想的な実行において干渉が発生しない最大内回り量を特定したことになる。
ステップS211では、調整部103はその最大内回り量よりも小さく且つ別の干渉が発生しない内回り量を予備内回り量として特定する。一例では調整部103は内回りレベルを0から順に1段階ずつ上げながら1以上の予備内回り量を特定する。この処理において予備内回り量が得られない場合もあり得る。
ステップS212では、シミュレーション部102が、パスに対応する少なくとも一つの教示点に関するパラメータを確定する。この段階で、干渉が発生しないパス(パラメータ群)が得られるかもしれないし、得られないかもしれない。
次に、図8および図9を参照しながら、連続する複数のパスに関する動作プログラムを仮想的に実行する処理を説明する。「連続する複数のパスに関する動作プログラム」とは、動作プログラムのうち、連続する複数のパスにおけるロボット2の制御を規定する部分のことをいう。本開示ではその部分を「連続動作プログラム」ともいう。
図8は動作プログラムで表される一連の処理の一例を示す図である。この例では、動作プログラムJ1は4個のタスクA,B,C,Dと、4個のエアカットパスW,X,Y,Zとを含む。タスクAはロボット2を待機させるためのタスクであるとし、タスクB,C,Dはその後の一連のタスクであるとする。エアカットパスWはタスクA,B間に設けられ、エアカットパスXはタスクB,C間に設けられ、エアカットパスYはタスクC,D間に設けられ、エアカットパスZはタスクD,A間に設けられる。連続動作プログラムに対応するパスの個数および組合せは限定されない。例えば、連続動作プログラムは、タスクAの作業パスとエアカットパスWとに対応してもよいし、エアカットパスWとタスクBの作業パスとに対応してもよい。あるいは、連続動作プログラムは、タスクDの作業パスと、エアカットパスZと、タスクAの作業パスとに対応してもよい。あるいは、連続動作プログラムは動作プログラムJ1の全体でもよい。
一つのパスにおいて(すなわち、単体動作プログラムにおいて)干渉が発生しなくても、ロボット2が複数のパスを跨いで動作すると、パスの接続部分でも内回りの軌道ができるために新たな干渉が発生し得る。単独動作プログラムのシミュレーションだけでもロボット制御のプランニングにおけるさらなる自動化を実現できるが、プログラミング支援装置4は連続動作プログラムについてもシミュレーションを実行してもよい。
図9はプログラミング支援装置4の動作の一例を処理フローS3として示すフローチャートである。すなわち、プログラミング支援装置4は処理フローS3を実行する。
ステップS301では、受付部101が連続動作プログラムを取得する。連続動作プログラムの取得方法は限定されない。例えば、受付部101はユーザ入力された連続動作プログラムを受け付けてもよいし、ユーザ入力に基づいて所与の記憶装置から連続動作プログラムを読み出してもよいし、他のコンピュータから送られてきた連続動作プログラムを受信してもよい。いずれにしても、取得される連続動作プログラムに含まれるすべてのエアカットパス(第2パス)は、干渉が発生しないことが上記の処理フローS1またはS2などによって既に確認されたパスである。
ステップS302では、シミュレーション部102がその連続動作プログラムを仮想的に実行する。これは、シミュレーション部102が、エアカットパスに関する単体動作プログラムを仮想的に実行し、そのエアカットパスにおいて干渉が発生しない場合に、連続する作業パスおよびエアカットパスに関する連続動作プログラムをさらに仮想的に実行する処理に対応する。
ステップS303では、シミュレーション部102がその連続動作プログラムにおいて干渉が発生するか否かをシミュレーションの実行結果に基づいて判定する。干渉が発生しない場合には(ステップS303においてNO)、処理はステップS306に進む。ステップS306については後述する。
一方、少なくとも一つの干渉が発生する場合には(ステップS304においてYES)、プログラミング支援装置4は、内回りレベルの調整を打ち切ると判定するまで、その干渉が発生したパスの内回りレベルを変更する。ステップS304、S305はその後続処理を示す。
ステップS304ではシミュレーション部102が内回りレベルの調整を打ち切るか否かを判定する。この打ち切り条件は任意の方針で設定されてよく、例えば、試行回数により規定されてもよいし、タイムアウト時間により規定されてもよい。
内回りレベルの調整を打ち切らない場合には(ステップS304においてNO)、処理はステップS305に進む。ステップS305では、調整部103が、選択されたパスの内回りレベルを変更する。一例では、調整部103は、最大内回り量が設定されたエアカットパスにてロボット2が他の物体に干渉する場合に、そのエアカットパスに対応する内回り量を予備内回り量に変更する。ロボット2が他の物体と複数の干渉位置で干渉する場合には、調整部103はすべての干渉を解消するように内回り量を変更する。これは、複数の干渉位置のそれぞれに対応する少なくとも一つの教示点についてパラメータを調整する処理の一例である。その後、その変更された内回り量についてステップS302以降の処理が実行される。内回りレベルの調整を打ち切る場合には(ステップS304においてYES)、処理はステップS306に進む。
ステップS306では、出力部104がシミュレーションの結果を示す結果データを出力する。処理フローS1でのステップS108と同様に、結果データのデータ構造および出力先は限定されない。動作プログラムに基づいて動作するロボット2が処理フローS3によって得られるので、処理フローS3も、本開示に係るシミュレーション方法の一例であるとともに、本開示に係るロボットの製造方法の一例でもある。
一例では、処理フローS1,S2,S3のいずれにおいても、調整部103は、作業パス(第1パス)を変更することなくエアカットパス(第2パス)について教示点に関するパラメータを調整する。典型的には、作業パスはユーザ入力に基づいて設定され、エアカットパスは自動的に設定される。したがって、パラメータの自動調整はエアカットパスのみについて実行されてもよい。
[プログラム]
プログラミング支援装置4の各機能モジュールは、プロセッサ161またはメモリ162の上にシミュレーションプログラムを読み込ませてプロセッサ161にそのプログラムを実行させることで実現される。シミュレーションプログラムは、プログラミング支援装置4の各機能モジュールを実現するためのコードを含む。プロセッサ161はシミュレーションプログラムに従って入出力ポート164を動作させ、メモリ162またはストレージ163におけるデータの読み出しおよび書き込みを実行する。このような処理によりプログラミング支援装置4の各機能モジュールが実現される。
シミュレーションプログラムは、CD−ROMやDVD−ROM、半導体メモリなどの非一時的な記録媒体に固定的に記録された上で提供されてもよい。あるいは、シミュレーションプログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
[効果]
以上説明したように、本開示の一側面に係るシミュレーションシステムは、ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーション部と、シミュレーション部による実行結果に基づいて、ロボットが他の物体に干渉するか否かをチェックする干渉チェック部と、干渉が発生する場合に、パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整部とを備える。
本開示の一側面に係るシミュレーション方法は、少なくとも一つのプロセッサを備えるシミュレーションシステムによって実行されるシミュレーション方法であって、ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーションステップと、シミュレーションステップにおける実行結果に基づいて、ロボットが他の物体に干渉するか否かをチェックする干渉チェックステップと、干渉が発生する場合に、パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整ステップとを含む。
本開示の一側面に係るシミュレーションプログラムは、ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーションステップと、シミュレーションステップにおける実行結果に基づいて、ロボットが他の物体に干渉するか否かをチェックする干渉チェックステップと、干渉が発生する場合に、パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整ステップとをコンピュータに実行させる。
本開示の一側面に係るロボットの製造方法は、ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーションステップと、シミュレーションステップにおける実行結果に基づいて、ロボットが他の物体に干渉するか否かをチェックする干渉チェックステップと、干渉が発生する場合に、パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整ステップと、調整されたパラメータに基づくパスにおいて干渉が発生しない場合に、該パスを含む動作プログラムに基づいてロボットを制御する制御ステップとを含む。
本開示の一側面に係るロボットシステムは、ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーション部と、シミュレーション部による実行結果に基づいて、ロボットが他の物体に干渉するか否かをチェックする干渉チェック部と、干渉が発生する場合に、パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整部と、調整されたパラメータに基づくパスにおいて干渉が発生しない場合に、該パスを含む動作プログラムに基づいてロボットを制御する制御部とを備える。
このような側面においては、干渉が発生するパスに対応する教示点のパラメータが自動的に変更されるので、ロボット制御のプランニングのさらなる自動化が可能になる。干渉を回避するための手法として、パスを自動生成する際にそのパスを再設定することが考えられる。しかし、その自動生成は軌道の距離を短くしようとする特性を持つので、該自動生成だけでは干渉を回避できないことが多い。一方で、従来は教示点の変更は試行錯誤しながら手動で為されるため、手間と時間が掛かる。上記の側面においてはその手動による調整が自動化され、その結果、適切な動作プログラムを効率的に得ることが可能になる。
他の側面に係るシミュレーションシステムでは、動作プログラムは、ユーザ入力に基づいて設定される第1パスと、自動的に設定される第2パスとを含み、調整部は、第1パスを変更することなく第2パスについてパラメータを調整してもよい。この場合には、ユーザにより定義される第1パスに影響を与えることなく、自動設定される第2パスに限って教示点のパラメータを調整することができる。
他の側面に係るシミュレーションシステムでは、シミュレーション部は、第2パスに関する単体動作プログラムを仮想的に実行し、第2パスにおいて干渉が発生しない場合に、連続する第1パスおよび第2パスに関する連続動作プログラムをさらに仮想的に実行してもよい。この場合には、ユーザにより定義される第1パスに影響を与えることなく、該ユーザが求める一連のパス(言い換えると、ユーザの目的を達成できる一連のパス)を自動的に設定することができる。
他の側面に係るシミュレーションシステムでは、調整部は、単体動作プログラムの仮想的な実行において、第2パスに対応する教示点の内回り量であって且つ干渉が発生しない最大内回り量と、該最大内回り量よりも小さく且つ別の干渉が発生しない予備内回り量とを特定し、連続動作プログラムの仮想的な実行において、最大内回り量が設定された第2パスにてロボットが他の物体に干渉する場合に、第2パスに対応する内回り量を予備内回り量に変更してもよい。連続動作プログラムでは、単体動作プログラムの実行からは検知できない干渉が発生し得る。最大内回り量を得るだけでなく、干渉が発生しない他の内回り量を予備内回り量として得ておくことで、目的を達成できる一連のパスを効率的に設定することができる。
他の側面に係るシミュレーションシステムでは、調整部は、ロボットが他の物体と複数の干渉位置で干渉する場合に、該複数の干渉位置のそれぞれに対応する少なくとも一つの教示点についてパラメータを調整してもよい。複数箇所の干渉のそれぞれについて教示点のパラメータが調整されるので、干渉が発生しないパスを効率的に設定することができる。
他の側面に係るシミュレーションシステムでは、調整部は、干渉が発生する場合に、パラメータの調整として、少なくとも一つの教示点の位置を、現在位置よりも他の物体からさらに離れた位置にずらしてもよい。教示点を他の物体からさらに離すことでパスも他の物体から離れるので、干渉しないパスを容易に設定することができる。
他の側面に係るシミュレーションシステムでは、調整部は、少なくとも一つの教示点について、干渉位置と現在位置とを結ぶ仮想線の方向に沿って該教示点の位置をずらしてもよい。隣接する教示点間の距離を離しつつ教示点を他の物体からさらに離すので、干渉しないパスをより確実に設定することができる。
他の側面に係るシミュレーションシステムでは、調整部は、干渉位置と現在位置との距離が小さいほど、教示点の位置のずらし量を大きくしてもよい。このようにずらし量を調整することで、干渉せず且つできるだけ短いパスを設定することができる。
他の側面に係るシミュレーションシステムでは、調整部は、少なくとも一つの教示点の位置のずらしとして、干渉位置に対応する第1教示点を含む連続した複数の教示点の位置をずらしてもよい。干渉位置の付近の複数の教示点が調整されるので、干渉しないパスを効率的に設定することができる。
他の側面に係るシミュレーションシステムでは、調整部は、複数の教示点の位置のずらしとして、パスにおいて、第1教示点を基準として上流に位置する教示点の位置をずらしてもよい。パスのうち干渉に至った区間が調整されるので、干渉しないパスを効率的に設定することができる。
他の側面に係るシミュレーションシステムでは、調整部は、干渉が発生する場合に、パラメータの調整として、少なくとも一つの教示点の内回り量を減少させてもよい。内回り量を小さくすることで、干渉しないパスを容易に設定することができる。
他の側面に係るシミュレーションシステムでは、調整部は、内回り量が減少するように、内回り量の候補である複数の内回りレベルの中から一つの内回りレベルを二分探索法によって設定してもよい。内回り量の候補を内回りレベルにより表現した上で二分探索法を用いることで、干渉しないパスをより効率的に設定することができる。
他の側面に係るシミュレーションシステムでは、調整部は、一のパスに対応するすべての教示点に対して同じ内回りレベルを設定してもよい。パス内の内回りレベルを統一することで、内回り量を容易に設定することができる。また、より滑らかなパスを得ることができる。
他の側面に係るシミュレーションシステムでは、調整部は、干渉が発生する場合に、パラメータの調整として、少なくとも一つの教示点の位置を、現在位置よりも他の物体からさらに離れた位置にずらす処理を、設定された内回りレベルを維持したまま1回以上実行し、設定された内回りレベルについて、干渉が発生しない動作プログラムを取得できない場合に、より小さい内回り量に対応する別の内回りレベルを設定してもよい。教示点の移動と内回りレベルの設定とをこのような手順で実行することで、干渉が発生せず且つできるだけ短いパスを効率的に設定することができる。
[変形例]
以上、本開示の実施形態に基づいて詳細に説明した。しかし、本開示は上記実施形態に限定されるものではない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
上記実施形態ではプログラミング支援装置4が作業パス(第1パス)を変更することなくエアカットパス(第2パス)について教示点のパラメータを調整するが、シミュレーションシステムは、第1パスについても教示点のパラメータを調整してもよい。
上記実施形態ではプログラミング支援装置4が受付部101、シミュレーション部102、調整部103、および出力部104を備えるが、シミュレーションシステムの機能構成はこれに限定されない。本開示に係るシミュレーション方法およびロボットの製造方法を実行できる限り、その機能構成は任意の方針で設計されてよい。
シミュレーションシステムのハードウェア構成は、プログラムの実行により各機能モジュールを実現する態様に限定されない。例えば、受付部101、シミュレーション部102、調整部103、および出力部104の少なくとも一部は、その機能に特化した論理回路により構成されていてもよいし、該論理回路を集積したASIC(ApplicationSpecific Integrated Circuit)により構成されてもよい。
少なくとも一つのプロセッサにより実行される方法の処理手順は上記実施形態での例に限定されない。例えば、上述したステップ(処理)の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
コンピュータシステムまたはコンピュータ内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。このような基準の選択は、二つの数値の大小関係を比較する処理についての技術的意義を変更するものではない。
1…ロボットシステム、2…ロボット、3…ロボットコントローラ、4…プログラミング支援装置、5…先端部、9…他の物体、10…本体、20…モニタ、30…入力デバイス、101…受付部、102…シミュレーション部、103…調整部、104…出力部、201,201A…パス、211〜215…教示点、221…干渉位置、232〜234…仮想線、212A、213A,214A…教示点の位置、241〜243…教示点、250〜258…軌道(内回りレベル)、J1…動作プログラム。

Claims (18)

  1. ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーション部と、
    前記シミュレーション部による実行結果に基づいて、前記ロボットが前記他の物体に干渉するか否かをチェックする干渉チェック部と、
    前記干渉が発生する場合に、前記パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整部と
    を備えるシミュレーションシステム。
  2. 前記動作プログラムは、ユーザ入力に基づいて設定される第1パスと、自動的に設定される第2パスとを含み、
    前記調整部は、前記第1パスを変更することなく前記第2パスについて前記パラメータを調整する、
    請求項1に記載のシミュレーションシステム。
  3. 前記シミュレーション部は、
    前記第2パスに関する単体動作プログラムを仮想的に実行し、
    前記第2パスにおいて干渉が発生しない場合に、連続する前記第1パスおよび前記第2パスに関する連続動作プログラムをさらに仮想的に実行する、
    請求項2に記載のシミュレーションシステム。
  4. 前記調整部は、
    前記単体動作プログラムの仮想的な実行において、前記第2パスに対応する教示点の内回り量であって且つ前記干渉が発生しない最大内回り量と、該最大内回り量よりも小さく且つ別の干渉が発生しない予備内回り量とを特定し、
    前記連続動作プログラムの仮想的な実行において、前記最大内回り量が設定された前記第2パスにて前記ロボットが前記他の物体に干渉する場合に、前記第2パスに対応する前記内回り量を前記予備内回り量に変更する、
    請求項3に記載のシミュレーションシステム。
  5. 前記調整部は、前記ロボットが前記他の物体と複数の干渉位置で干渉する場合に、該複数の干渉位置のそれぞれに対応する前記少なくとも一つの教示点について前記パラメータを調整する、
    請求項1〜4のいずれか一項に記載のシミュレーションシステム。
  6. 前記調整部は、前記干渉が発生する場合に、前記パラメータの調整として、前記少なくとも一つの教示点の位置を、現在位置よりも前記他の物体からさらに離れた位置にずらす、
    請求項1〜5のいずれか一項に記載のシミュレーションシステム。
  7. 前記調整部は、前記少なくとも一つの教示点について、干渉位置と前記現在位置とを結ぶ仮想線の方向に沿って該教示点の位置をずらす、
    請求項6に記載のシミュレーションシステム。
  8. 前記調整部は、前記干渉位置と前記現在位置との距離が小さいほど、前記教示点の位置のずらし量を大きくする、
    請求項7に記載のシミュレーションシステム。
  9. 前記調整部は、前記少なくとも一つの教示点の位置のずらしとして、干渉位置に対応する第1教示点を含む連続した複数の教示点の位置をずらす、
    請求項6〜8のいずれか一項に記載のシミュレーションシステム。
  10. 前記調整部は、前記複数の教示点の位置のずらしとして、前記パスにおいて、前記第1教示点を基準として上流に位置する教示点の位置をずらす、
    請求項9に記載のシミュレーションシステム。
  11. 前記調整部は、前記干渉が発生する場合に、前記パラメータの調整として、前記少なくとも一つの教示点の内回り量を減少させる、
    請求項1〜10のいずれか一項に記載のシミュレーションシステム。
  12. 前記調整部は、前記内回り量が減少するように、前記内回り量の候補である複数の内回りレベルの中から一つの内回りレベルを二分探索法によって設定する、
    請求項11に記載のシミュレーションシステム。
  13. 前記調整部は、一の前記パスに対応するすべての教示点に対して同じ前記内回りレベルを設定する、
    請求項12に記載のシミュレーションシステム。
  14. 前記調整部は、
    前記干渉が発生する場合に、前記パラメータの調整として、前記少なくとも一つの教示点の位置を、現在位置よりも前記他の物体からさらに離れた位置にずらす処理を、前記設定された内回りレベルを維持したまま1回以上実行し、
    前記設定された内回りレベルについて、前記干渉が発生しない前記動作プログラムを取得できない場合に、より小さい前記内回り量に対応する別の内回りレベルを設定する、
    請求項12または13に記載のシミュレーションシステム。
  15. 少なくとも一つのプロセッサを備えるシミュレーションシステムによって実行されるシミュレーション方法であって、
    ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーションステップと、
    前記シミュレーションステップにおける実行結果に基づいて、前記ロボットが前記他の物体に干渉するか否かをチェックする干渉チェックステップと、
    前記干渉が発生する場合に、前記パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整ステップと
    を含むシミュレーション方法。
  16. ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーションステップと、
    前記シミュレーションステップにおける実行結果に基づいて、前記ロボットが前記他の物体に干渉するか否かをチェックする干渉チェックステップと、
    前記干渉が発生する場合に、前記パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整ステップと
    をコンピュータに実行させるシミュレーションプログラム。
  17. ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーションステップと、
    前記シミュレーションステップにおける実行結果に基づいて、前記ロボットが前記他の物体に干渉するか否かをチェックする干渉チェックステップと、
    前記干渉が発生する場合に、前記パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整ステップと、
    前記調整されたパラメータに基づく前記パスにおいて前記干渉が発生しない場合に、該パスを含む前記動作プログラムに基づいて前記ロボットを制御する制御ステップと
    を含むロボットの製造方法。
  18. ロボットの軌道を表すパスを含む動作プログラムを、該ロボットおよび他の物体が配置された仮想空間上で仮想的に実行するシミュレーション部と、
    前記シミュレーション部による実行結果に基づいて、前記ロボットが前記他の物体に干渉するか否かをチェックする干渉チェック部と、
    前記干渉が発生する場合に、前記パスに対応する少なくとも一つの教示点に関するパラメータを調整する調整部と、
    前記調整されたパラメータに基づく前記パスにおいて前記干渉が発生しない場合に、該パスを含む前記動作プログラムに基づいて前記ロボットを制御する制御部と
    を備えるロボットシステム。
JP2019214769A 2019-11-27 2019-11-27 シミュレーションシステム、シミュレーション方法、シミュレーションプログラム、ロボットの製造方法、およびロボットシステム Active JP6792184B1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019214769A JP6792184B1 (ja) 2019-11-27 2019-11-27 シミュレーションシステム、シミュレーション方法、シミュレーションプログラム、ロボットの製造方法、およびロボットシステム
EP20207762.4A EP3827935A1 (en) 2019-11-27 2020-11-16 Simulated robot trajectory
CN202011304573.5A CN112847329A (zh) 2019-11-27 2020-11-19 仿真机器人轨迹
US17/103,949 US20210154846A1 (en) 2019-11-27 2020-11-25 Simulated robot trajectory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019214769A JP6792184B1 (ja) 2019-11-27 2019-11-27 シミュレーションシステム、シミュレーション方法、シミュレーションプログラム、ロボットの製造方法、およびロボットシステム

Publications (2)

Publication Number Publication Date
JP6792184B1 JP6792184B1 (ja) 2020-11-25
JP2021084175A true JP2021084175A (ja) 2021-06-03

Family

ID=73452049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019214769A Active JP6792184B1 (ja) 2019-11-27 2019-11-27 シミュレーションシステム、シミュレーション方法、シミュレーションプログラム、ロボットの製造方法、およびロボットシステム

Country Status (4)

Country Link
US (1) US20210154846A1 (ja)
EP (1) EP3827935A1 (ja)
JP (1) JP6792184B1 (ja)
CN (1) CN112847329A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114129263B (zh) * 2021-11-29 2023-07-25 武汉联影智融医疗科技有限公司 手术机器人路径规划方法、系统、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016036895A (ja) * 2014-08-11 2016-03-22 ファナック株式会社 駆動軸のジャークを低下させるロボットプログラムを生成するロボットプログラム生成装置
JP2018069428A (ja) * 2016-11-04 2018-05-10 トヨタ自動車株式会社 動作経路計画方法
JP2019075005A (ja) * 2017-10-18 2019-05-16 ファナック株式会社 数値制御装置および工具経路決定方法
JP2019084664A (ja) * 2017-11-10 2019-06-06 株式会社安川電機 プログラミング支援装置、ロボットシステム及びプログラム生成方法
JP2019135076A (ja) * 2018-02-05 2019-08-15 キヤノン株式会社 軌道生成方法および軌道生成装置
JP2019171501A (ja) * 2018-03-27 2019-10-10 日本電産株式会社 ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1716982B1 (en) * 2005-04-19 2008-05-07 COMAU S.p.A. Process for controlling industrial robots, and related robots, robot systems and computer programs
DE102008013988B4 (de) * 2007-03-13 2022-07-21 Continental Autonomous Mobility Germany GmbH Verfahren und Vorrichtung zum Durchführen eines Ausweichmanövers
JP2013099815A (ja) * 2011-11-08 2013-05-23 Fanuc Ltd ロボットプログラミング装置
JP2014024162A (ja) * 2012-07-27 2014-02-06 Seiko Epson Corp ロボットシステム、ロボット制御装置、ロボット制御方法及びロボット制御プログラム
JP5742862B2 (ja) * 2013-03-18 2015-07-01 株式会社安川電機 ロボット装置及び被加工物の製造方法
JP5860081B2 (ja) * 2014-02-27 2016-02-16 ファナック株式会社 ロボットの動作経路を生成するロボットシミュレーション装置
US9925664B2 (en) * 2014-02-27 2018-03-27 Fanuc Corporation Robot simulation device for generation motion path of robot
JP6379874B2 (ja) * 2014-08-29 2018-08-29 株式会社安川電機 ティーチングシステム、ロボットシステムおよびティーチング方法
WO2016103297A1 (ja) * 2014-12-25 2016-06-30 川崎重工業株式会社 アーム型のロボットの障害物自動回避方法及び制御装置
JP6114361B1 (ja) * 2015-11-02 2017-04-12 ファナック株式会社 オフラインのロボットプログラミング装置
JP6551184B2 (ja) * 2015-11-18 2019-07-31 オムロン株式会社 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP6705977B2 (ja) 2017-01-31 2020-06-03 株式会社安川電機 ロボットパス生成装置及びロボットシステム
CN106985150A (zh) * 2017-03-21 2017-07-28 深圳泰坦创新科技有限公司 控制机器人动作的方法和装置
US10828778B2 (en) * 2017-11-30 2020-11-10 Abb Schweiz Ag Method for operating a robot
US10751877B2 (en) * 2017-12-31 2020-08-25 Abb Schweiz Ag Industrial robot training using mixed reality
US11458626B2 (en) * 2018-02-05 2022-10-04 Canon Kabushiki Kaisha Trajectory generating method, and trajectory generating apparatus
JP6826076B2 (ja) * 2018-07-17 2021-02-03 ファナック株式会社 自動経路生成装置
US11254003B1 (en) * 2019-04-18 2022-02-22 Intrinsic Innovation Llc Enhanced robot path planning
CN111515953B (zh) * 2020-04-29 2021-09-03 北京阿丘机器人科技有限公司 路径规划方法、装置及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016036895A (ja) * 2014-08-11 2016-03-22 ファナック株式会社 駆動軸のジャークを低下させるロボットプログラムを生成するロボットプログラム生成装置
JP2018069428A (ja) * 2016-11-04 2018-05-10 トヨタ自動車株式会社 動作経路計画方法
JP2019075005A (ja) * 2017-10-18 2019-05-16 ファナック株式会社 数値制御装置および工具経路決定方法
JP2019084664A (ja) * 2017-11-10 2019-06-06 株式会社安川電機 プログラミング支援装置、ロボットシステム及びプログラム生成方法
JP2019135076A (ja) * 2018-02-05 2019-08-15 キヤノン株式会社 軌道生成方法および軌道生成装置
JP2019171501A (ja) * 2018-03-27 2019-10-10 日本電産株式会社 ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム

Also Published As

Publication number Publication date
CN112847329A (zh) 2021-05-28
JP6792184B1 (ja) 2020-11-25
EP3827935A1 (en) 2021-06-02
US20210154846A1 (en) 2021-05-27

Similar Documents

Publication Publication Date Title
US11213945B2 (en) Robot simulator, robot system and simulation method
US11458626B2 (en) Trajectory generating method, and trajectory generating apparatus
US11007646B2 (en) Programming assistance apparatus, robot system, and method for generating program
US10207406B2 (en) Robot trajectory generation method, robot trajectory generation apparatus, product fabrication method, recording medium, program, and robot system
CN102216037B (zh) 用于优化工业机器人的编程移动路径的方法和装置
US20200047339A1 (en) Programming support apparatus, robot system, and programming support method
US9429928B2 (en) Control method, non-transitory computer readable medium and controller of numerical control machine tool
CN111791228B (zh) 编程辅助装置、机器人系统和编程辅助方法
JP2015098076A (ja) ロボットプログラム作成方法、ロボットプログラム作成装置、プログラム及び記録媒体
JP4505295B2 (ja) Nc加工シミュレーション方法及びnc加工シミュレーション装置
JP6792184B1 (ja) シミュレーションシステム、シミュレーション方法、シミュレーションプログラム、ロボットの製造方法、およびロボットシステム
JP7259860B2 (ja) ロボットの経路決定装置、ロボットの経路決定方法、プログラム
JP2009125920A (ja) ロボットの作業動作最適化装置
WO2022034848A1 (ja) 数値制御システム及びロボット制御方法
CN115003459A (zh) 原点复位装置
US11717965B2 (en) Determination of robot posture
US20220281111A1 (en) Interference check for robot operation
US20180039720A1 (en) Simulation apparatus
JP2008046913A (ja) 工作機械の数値制御装置
WO2009141006A1 (en) A method and a system for controlling an industrial robot in accordance with a set of motion control parameters
JP6823032B2 (ja) プログラム修正装置
US20240091936A1 (en) Robot automation system
WO2021230237A1 (ja) 加工経路作成装置
JP7485705B2 (ja) ロボットシステム、タスク生成装置及び制御方法
US20230109876A1 (en) Information processing apparatus, information processing method, and method of manufacturing products

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191205

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191205

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200721

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: 20201006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201019

R150 Certificate of patent or registration of utility model

Ref document number: 6792184

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150