JP6881525B2 - ロボットシステム、コントローラ及び制御方法 - Google Patents

ロボットシステム、コントローラ及び制御方法 Download PDF

Info

Publication number
JP6881525B2
JP6881525B2 JP2019153124A JP2019153124A JP6881525B2 JP 6881525 B2 JP6881525 B2 JP 6881525B2 JP 2019153124 A JP2019153124 A JP 2019153124A JP 2019153124 A JP2019153124 A JP 2019153124A JP 6881525 B2 JP6881525 B2 JP 6881525B2
Authority
JP
Japan
Prior art keywords
irregular
robot
robots
control unit
release operation
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
JP2019153124A
Other languages
English (en)
Other versions
JP2021030368A (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.)
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 JP2019153124A priority Critical patent/JP6881525B2/ja
Priority to US16/997,945 priority patent/US11745340B2/en
Priority to EP20191840.6A priority patent/EP3782772B1/en
Publication of JP2021030368A publication Critical patent/JP2021030368A/ja
Application granted granted Critical
Publication of JP6881525B2 publication Critical patent/JP6881525B2/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/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position 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/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/085Force or torque sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip 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/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • 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/34Director, elements to supervisory
    • G05B2219/34348Coordination of operations, different machines, robots execute different tasks
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39121Two manipulators operate on same object
    • 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/40201Detect contact, collision with human
    • 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/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50391Robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Description

本開示は、ロボットシステム、コントローラ及び制御方法に関する。
特許文献1には、ロボットに作用する外力が第1の条件を満たした場合に、ロボットの動作軌跡を反転させることでロボットを退避させる反転退避モードを実行し、反転退避モードの実行状況が第2の条件を満たした場合には、外力が小さくなるようにロボットを退避させる外力低減退避モードを実行するロボットシステムが開示されている。
特開2019−081234号公報
本開示は、協調動作する複数台のロボットにおけるイレギュラー状態の解除と、複数台のロボットの協調状態の継続との両立に有効なロボットシステムを提供する。
本開示の一側面に係るロボットシステムは、2台のロボットと、同一のワークに対する協調動作を2台のロボットに実行させる動作制御部と、協調動作を実行する2台のロボットのうち1台のロボットでイレギュラー状態が検出されたときに、イレギュラー状態を解除するための解除動作を2台のロボットに協調して実行させるイレギュラー制御部と、を備える。
本開示の他の側面に係るコントローラは、同一のワークに対する他のロボットとの協調動作をロボットに実行させる動作制御部と、ロボットでイレギュラー状態が検出された場合に、イレギュラー状態を解除するための解除動作をロボットに実行させるイレギュラー制御部と、解除動作に協調する解除動作を他のロボットに実行させることを他のロボットのコントローラに要求する解除動作要求部と、を備える。
本開示の更に他の側面に係る制御方法は、同一のワークに対する協調動作を2台のロボットに実行させることと、協調動作を実行する2台のロボットのうち1台のロボットでイレギュラー状態が検出されたときに、イレギュラー状態を解除するための解除動作を2台のロボットに協調して実行させることと、を含む。
本開示によれば、協調動作する複数台のロボットにおけるイレギュラー状態の解除と、複数台のロボットの協調状態の継続との両立に有効なロボットシステムを提供することができる。
ロボットシステムの全体構成を示す模式図である。 ロボットの構成を示す模式図である。 コントローラのハードウェア構成を例示するブロック図である。 ロボットの動作制御手順を例示するフローチャートである。 イレギュラー処理手順を例示するフローチャートである。 完全協調モードのイレギュラー処理手順を例示するフローチャートである。 完全協調モードのイレギュラー処理手順を例示するフローチャートである。 個別モードのイレギュラー処理手順を例示するフローチャートである。 個別モードのイレギュラー処理手順を例示するフローチャートである。 混在モードのイレギュラー処理手順を例示するフローチャートである。 混在モードのイレギュラー処理手順を例示するフローチャートである。 ロボットシステムの変形例を示す模式図である。 図10のコントローラのハードウェア構成を示すブロック図である。 コントローラの他の変形例を例示するブロック図である。
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
〔ロボットシステム〕
図1に示すように、ロボットシステム1は、3台のロボット10と、コントローラ100とを備える。なお、ロボットシステム1が備えるロボット10の台数は、少なくとも2台以上であればよく、3台に限られない。例えば、ロボットシステム1が備えるロボット10の台数は2台であってもよいし、4台以上であってもよい。
3台のロボット10のそれぞれは、ワークの保持・搬送を含む様々な作業を実行可能な汎用ロボットである。例えばロボット10は、図2に示すように、6軸の垂直ロボットであり、基部11と、先端部12と、多関節アーム20とを有する。基部11は、作業エリアにおいて例えば床面に設置されている。基部11は、移動台車の上に設置されていてもよい。
先端部12は、ワークに対する作業用のツール13を含む。ツール13の具体例としては、ワークを保持するためのハンド、溶接トーチ、塗装用のガン、ねじ締めツール等が挙げられる。先端部12のツール13は、ロボット10が実行する作業内容に応じて交換可能である。
多関節アーム20は、基部11と先端部12とを接続し、基部11に対する先端部12の位置及び姿勢を変更する。多関節アーム20は複数の関節を有し、当該複数の関節の角度を変更してロボット10の姿勢を変更する。これにより、基部11に対する先端部12の位置及び姿勢が変更される。
例えば多関節アーム20は、旋回部21と、下アーム22と、上アーム23と、手首部26と、アクチュエータ41,42,43,44,45,46と、角度センサ51,52,53,54,55,56とを有する。
旋回部21は、鉛直な軸線Ax1まわりに旋回可能となるように、基部11の上部に設けられている。すなわち多関節アーム20は、軸線Ax1まわりに旋回部21を旋回可能とする関節31を有する。
下アーム22は、軸線Ax1に交差(例えば直交)する軸線Ax2まわりに揺動可能となるように旋回部21に接続されている。すなわち多関節アーム20は、軸線Ax2まわりに下アーム22を揺動可能とする関節32を有する。なお、ここでの交差とは、所謂立体交差のように、互いにねじれの関係にある場合も含む。以下においても同様である。
上アーム23は、軸線Ax1に交差する軸線Ax3まわりに揺動可能となるように、下アーム22の端部に接続されている。すなわち多関節アーム20は、軸線Ax3まわりに上アーム23を揺動可能とする関節33を有する。軸線Ax3は軸線Ax2に平行であってもよい。
上アーム23の先端部は、上アーム23の中心に沿う軸線Ax4まわりに旋回可能となっている。すなわち多関節アーム20は、軸線Ax4まわりに上アーム23の先端部を旋回可能とする関節34を有する。換言すると、上アーム23の先端部25は、上アーム23の基端部24に対して旋回可能である。
手首部26は、軸線Ax4に交差(例えば直交)する軸線Ax5まわりに揺動可能となるように上アーム23の先端部25に接続されている。すなわち多関節アーム20は、軸線Ax5まわりに手首部26を揺動可能とする関節35を有する。
先端部12は、手首部26の中心に沿う軸線Ax6まわりに旋回可能となるように、手首部26の先端部に接続されている。すなわち多関節アーム20は、軸線Ax6まわりに先端部12を旋回可能とする関節36を有する。
アクチュエータ41,42,43,44,45,46は、例えば電動モータを動力源とし、多関節アーム20の複数の可動部をそれぞれ駆動する。例えばアクチュエータ41は、軸線Ax1まわりに旋回部21を旋回させ、アクチュエータ42は軸線Ax2まわりに下アーム22を揺動させ、アクチュエータ43は軸線Ax3まわりに上アーム23を揺動させ、アクチュエータ44は軸線Ax4まわりに上アーム23の先端部25を旋回させ、アクチュエータ45は軸線Ax5まわりに手首部26を揺動させ、アクチュエータ46は軸線Ax6まわりに先端部12を旋回させる。すなわちアクチュエータ41〜46は、関節31〜36をそれぞれ駆動する。
角度センサ51,52,53,54,55,56は、例えばロータリーエンコーダ、レゾルバ又はポテンショメータ等であり、関節31,32,33,34,35,36の動作角度をそれぞれ検出する。角度センサ51,52,53,54,55,56は、関節31,32,33,34,35,36の角度を直接検出するように設けられていてもよいし、アクチュエータ41,42,43,44,45,46の動力源である電動モータの出力軸の動作角度を検出するように設けられていてもよい。電動モータと関節31,32,33,34,35,36との間に減速機が設けられている場合、電動モータの出力軸の動作角度に、減速比に応じた換算を施すことによって関節31,32,33,34,35,36の動作角度が得られる。
ロボットシステム1は、ロボット10を人と協働させる人協働型のシステムであってもよい。換言すると、ロボット10は、人協働ロボットであってもよい。人協働ロボットとは、人協働型のシステムにおいて人と協働するロボットである。人と協働するとは、人の立ち入りが制限されていない空間で作業を行うことを意味する。人協働ロボットには、人との接近又は接触を検出し得ることが求められる。
一例として、ロボット10は、周辺物体との接触に伴う反力(以下、「イレギュラー反力」という。)を検出する反力センサ60を更に有する。なお、「周辺物体」は人体を含む。例えば反力センサ60は、ロボット10の少なくとも一つの関節に作用するトルクを検出するトルクセンサを含む。例えば反力センサ60は、ロボット10の関節31,32,33,34,35,36に作用するトルクをそれぞれ検出するトルクセンサ61,62,63,64,65,66を含む。トルクセンサ61,62,63,64,65,66は、例えばひずみゲージ式等のトルクセンサである。なお、トルクセンサ61,62,63,64,65,66による検出値には、ロボット10自体の慣性により生じるトルク(以下、「慣性トルク」という。)が含まれる場合がある。この場合、ロボット10の各部の形状、寸法及び重量に基づく動力学演算により慣性トルクを算出し、当該算出結果をトルクセンサ61,62,63,64,65,66による検出値から差し引くことによってイレギュラー反力が得られる。
反力センサ60は、上記トルクセンサに代えて、ロボット10の外皮に作用する力を検出する圧力センサを含んでいてもよい。反力センサ60は、上記トルクセンサ及び上記圧力センサの両方を含んでいてもよい。
ロボット10は、反力センサ60に代えて、周辺物体との接近を非接触で検出する接近センサを有してもよい。接近センサの具体例としては、赤外線センサ、超音波センサ、カメラ等が挙げられる。ロボット10は、上記反力センサ60及び上記接近センサの両方を有してもよい。
以上に説明したロボット10の構成はあくまで一例である。ロボット10は、基部11に対する先端部12の位置及び姿勢を調節し得る限りいかに構成されていてもよい。例えばロボット10は、上記6軸の垂直多関節ロボットに冗長軸を追加した7軸のロボットであってもよい。また、ロボット10は所謂スカラー型のロボットであってもよい。
また、ロボットシステム1は、2台のロボット10の一例として、双腕型ロボットを備えていてもよい。双腕型ロボットは、可動型の胴部と、胴部に装着された2台のロボット10とを有する。胴部に装着された2台のロボット10は、双腕型ロボットにおける双腕に相当する。
図1に戻り、コントローラ100は、同一のワークに対する協調動作を少なくとも2台のロボット10に実行させることと、協調動作を実行する少なくとも2台のロボット10のうち1台のロボット10でイレギュラー状態が検出されたときに、イレギュラー状態を解除するための解除動作を2台のロボット10に協調して実行させることと、を実行するように構成されている。
協調動作とは、一方の動作が他方の動作に影響を及ぼす関係にて動作することを意味する。ここでの動作には、停止状態を保つことも含まれる。協調動作は、一方の動作が他方の動作に影響を及ぼす関係にて同時に動く動作であってもよい。このような協調動作の具体例としては、少なくとも2台のロボット10が同一のワークを協働して保持し、搬送する動作、いずれかのロボット10がワークの姿勢を変更し他のロボット10が当該ワークに加工を施す動作等が挙げられる。
なお、いずれかのロボット10が保持するワーク(以下、「第1ワーク」という。)に、他のロボット10が保持するワーク(以下、「第2ワーク」という。)を取り付ける動作も「同一のワークに対する協調動作」に含まれる。第1ワークを保持するロボット10は第1ワークを介して第2ワークに対する動作を行い、第2ワークを保持するロボット10は第2ワークを介して第1ワークに対する動作を行っているためである。
コントローラ100は、互いに独立した個別動作を少なくとも2台のロボット10に更に実行させることと、個別動作を実行する少なくとも2台のロボット10のうち1台のロボット10でイレギュラー状態が検出されたときに、当該1台のロボット10に解除動作を実行させ、他のロボット10に個別動作を継続させることとを更に実行するように構成されていてもよい。
互いに独立した個別動作とは、一方の動作が他方の動作に影響を及ぼさない関係にて個別に動作することを意味する。このような個別動作の具体例としては、2台のロボット10が2つのワークをそれぞれ搬送する動作等が挙げる。
なお、作業エリアに固定された同一のワークにおける2つの部位に対し、2台のロボット10がそれぞれ加工を施す動作も個別動作に含まれる。当該ワークが作業エリアに固定されていれば、一方のロボット10の動作が他方のロボット10の動作に影響を及ぼさないためである。
3台のロボット10のうちいずれか1台のロボット10(以下、「ロボット10A」という。)が、他の1台のロボット10(以下、「ロボット10B」という。)と協調動作をするが、更に他の1台のロボット10(以下、「ロボット10C」という。)とは協調動作をしない場合、ロボット10Aとロボット10Bとは協調動作を実行する2台のロボットであり、ロボット10Aと10Cとは互いに独立した個別動作を実行する2台のロボットである。ロボット10Bとロボット10Cも互いに独立した個別動作を実行する2台のロボットである。すなわち、「個別動作」とは、2台のロボット10の動作の関係を意味するに過ぎず、いかなるロボット10とも協調動作していないことを意味するわけではない。以下、協調動作及び個別動作の両方にあてはまる説明においては、これらを総称して「通常動作」という。
ここで、イレギュラー状態とは、通常動作の継続が許容されない状態を意味する。イレギュラー状態の具体例としては、接近が想定されていない周辺物体への接近、接触が想定されていない周辺物体への接触等が挙げられる。
イレギュラー状態を解除するとは、イレギュラー状態が検出されない状態にすることを意味する。例えば、イレギュラー状態が周辺物体への接近である場合、周辺物体への接近が検出されない程度まで周辺物体から離すことがイレギュラー状態を解除することに相当する。イレギュラー状態が周辺物体への接触である場合、周辺物体から離すことがイレギュラー状態の解除に相当する。なお、後述のイレギュラー反力のように、大きさを表し得るイレギュラー状態の場合、大きさを縮小することもイレギュラー状態の解除に相当する。
2台のロボットに解除動作を協調して実行させるとは、同一のワークに対する協調が保たれるように2台のロボットに解除動作を実行させることを意味する。同一のワークに対する協調が保たれることの具体例としては、同一のワークを協働して保持している2台のロボットにおいて、当該ワークの保持が維持されることが挙げられる。
例えばコントローラ100は、機能上の構成(以下、「機能ブロック」という。)として、動作プログラム記憶部111と、動作制御部112と、イレギュラー制御部113とを有する。
動作プログラム記憶部111は、上記協調動作又は個別動作をロボット10に実行させるための動作プログラムを記憶している。動作プログラムは、時系列の複数の動作指令を3台のロボットごとに含む。例えば動作プログラムは、通常動作における実行順序(以下、「通常順序」という。)で並ぶ複数の動作指令を3台のロボットごとに含む。動作指令は、各ロボット10の先端部12の位置・姿勢目標値、当該位置・姿勢目標値までの変位速度、及び当該位置・姿勢目標値までの補間方式等を含む。補間方式の具体例としては、現在位置・姿勢から位置・姿勢目標値までの変位を線形にする線形補間等が挙げられる。
複数の動作指令は、協調動作指令を含む。協調動作指令は、少なくとも1台の他のロボット10との協調動作を実行させるための動作指令である。協調動作指令は、1台のロボット10に対する動作指令と、他のロボット10に対する協調指令とを含んでいてもよい。協調指令は、少なくとも他のロボット10の識別情報を含む。
1台のロボット10の動作指令と、協調指令とに基づけば、他のロボット10に協調動作を実行させるための動作指令を演算により自動生成することが可能である。このため、動作プログラムは、協調指令により指定された他の協調ロボット10に対する動作指令を含んでいなくてもよい。
協調指令によれば、3台のロボット10のうち少なくとも2台のロボット10が協調動作をするか否かと、いずれのロボット10が協調動作をするのかとが時系列で示されることとなる。従って、協調指令は、少なくとも2台のロボット10の動作指令が協調関係(協調動作を実行する関係)にあるかを時系列で示す情報(以下、「協調情報」という。)の一例である。また、協調指令は、3台のロボット10のいずれのロボット10の動作指令が協調関係にあるかを時系列で示す協調情報の一例である。
複数の動作指令は、個別動作指令を更に含んでいてもよい。個別動作指令は、他のロボット10の動作から独立した個別動作を実行させるための動作指令である。
動作制御部112は、同一のワークに対する協調動作を少なくとも2台のロボット10に実行させる。動作制御部112は、互いに独立した個別動作を少なくとも2台のロボットに更に実行させてもよい。例えば動作制御部112は、動作プログラム記憶部111が記憶する動作プログラムに従って3台のロボット10に通常動作を実行させる。より具体的に、動作制御部112は、動作指令に従って先端部12を変位させるようにロボット10を制御することを、3台のロボット10に対し上記通常順序で順次実行する。
動作制御部112は、3台のロボット10に対する制御を同じ制御周期で繰り返し実行する。例えば動作制御部112は、動作指令に基づくロボット10の目標姿勢と、ロボット10の現在姿勢との偏差を縮小するようにロボット10を動作させることを、3台のロボット10に対し同じ制御周期で繰り返し実行する。例えば動作制御部112は、各制御周期において、上記動作指令に対応する関節31,32,33,34,35,36の角度目標値を逆運動学演算により算出し、関節31,32,33,34,35,36の角度目標値と関節31,32,33,34,35,36の現在角度(角度センサ51,52,53,54,55,56による検出値)との偏差を縮小するようにアクチュエータ41,42,43,44,45,46を駆動する。
動作制御部112は、動作プログラムにおける上記協調動作指令に従って少なくとも2台のロボット10に協調動作を実行させる。例えば動作制御部112は、同一のワークを協働して保持し、搬送する協調動作を少なくとも2台のロボット10に実行させる。動作制御部112は、動作プログラムにおける上記個別動作指令に従って3台のロボット10のそれぞれに個別動作を実行させる。
イレギュラー制御部113は、3台のロボット10のうちいずれか1台のロボット10でイレギュラー状態が検出されたときに、少なくとも当該1台のロボット10(以下、「イレギュラーロボット」という。)に解除動作を実行させる。イレギュラー制御部113は、イレギュラーロボットの姿勢が、イレギュラー状態の検出時点の姿勢から変化するように、イレギュラーロボットに解除動作を実行させてもよい。
イレギュラー状態が検出されることの具体例としては、反力センサ60によりイレギュラー反力が検出されること、上記接近センサによりイレギュラー接近が検出されること等が挙げられる。イレギュラー反力とは、通常動作の継続が許容されないレベルの反力を意味する。イレギュラー接近とは、通常動作の継続が許容されないレベルの接近を意味する。
例えばイレギュラー制御部113は、3台のロボット10のうちいずれか1台のロボット10の反力センサ60によりイレギュラー反力が検出されたときに当該ロボット10をイレギュラーロボットとし、当該イレギュラー反力を縮小するようにイレギュラーロボットに解除動作を実行させてもよい。
例えば、イレギュラー制御部113は、イレギュラー反力の検出時点までのイレギュラーロボットの通常動作を、当該検出時点よりも前の時点まで逆再生するように、イレギュラーロボットに解除動作を実行させる。例えば、イレギュラー制御部113は、動作指令に従って先端部12を変位させるようにロボット10を制御することを、イレギュラー反力の検出時点から上記通常順序の逆順序で順次実行する。イレギュラー反力は、通常動作の結果生じたものなので、通常動作を逆再生することによりイレギュラー反力を縮小させることができる。以下、通常動作の逆再生による解除動作を「逆再生動作」という。
イレギュラー制御部113は、イレギュラー反力の作用部位及び作用方向を算出し、当該作用部位を当該作用方向に沿って変位させるように、イレギュラーロボットに解除動作を実行させてもよい。例えばイレギュラー制御部113は、上記作用部位を上記作用方向に沿って所定距離又は所定時間移動させるように解除動作用の動作プログラム(以下、「解除用動作プログラム」という。)を算出し、解除動作プログラムに従ってイレギュラーロボットに解除動作を実行させる。
解除用動作プログラムは、時系列の複数の動作指令(以下、「解除用動作指令」という。)を含む。例えば解除用動作プログラムは、解除動作における実行順序(以下、「解除順序」という。)で並ぶ複数の解除用動作指令を含む。解除用動作指令は、先端部12の位置・姿勢目標値、当該位置・姿勢目標値までの変位速度、及び当該位置・姿勢目標値までの補間方式等を含む。
イレギュラー制御部113は、解除用動作プログラムに従ってイレギュラーロボットに解除動作を実行させる。より具体的に、イレギュラー制御部113は、解除用動作指令に従って先端部12を変位させるようにイレギュラーロボットを制御することを、上記解除順序で順次実行する。以下、上記作用部位を上記作用方向に沿って移動させる解除動作を「反力追従動作」という。
イレギュラー制御部113は、イレギュラーロボットの解除動作の動作量を、イレギュラー反力の大きさに基づいて変更してもよい。例えばイレギュラー制御部113は、イレギュラー反力が大きくなるのに応じてイレギュラーロボットの解除動作の動作量を大きくしてもよい。逆再生動作の場合、イレギュラー制御部113は、イレギュラー反力の検出時点からの通常動作の逆再生時間をイレギュラー反力が大きくなるのに応じて長くしてもよい。反力追従動作の場合、イレギュラー制御部113は、上記作用部位の上記作用方向への変位距離又は変位時間をイレギュラー反力が大きくなるのに応じて長くしてもよい。
また、イレギュラー制御部113は、イレギュラー反力を縮小するように所定の動作量でイレギュラーロボットに解除動作を実行させた後に、イレギュラーロボットの反力センサ60によりイレギュラー反力が再度検出されているときに、当該イレギュラー反力を更に縮小するようにイレギュラーロボットに更なる解除動作を実行させてもよい。
逆再生動作の場合、イレギュラー制御部113は、イレギュラー反力の検出時点から所定時間前の時点までの逆再生動作をイレギュラーロボットに実行させた後に、イレギュラーロボットの反力センサ60によりイレギュラー反力が再度検出されているときに、更に前の時点までの解除動作をイレギュラーロボットに更に実行させてもよい。
反力追従動作の場合、イレギュラー制御部113は、上記作用部位を上記作用方向に所定距離又は所定時間移動させた後に、イレギュラーロボットの反力センサ60によりイレギュラー反力が再度検出されているときに、イレギュラーロボットに更なる反力追従動作を実行させてもよい。
イレギュラー制御部113は、イレギュラー反力の再確認の前後で、解除動作の方式を切り替えてもよい。例えばイレギュラー制御部113は、イレギュラー反力の検出時点から所定時間前の時点までの逆再生動作をイレギュラーロボットに実行させた後に、イレギュラーロボットの反力センサ60によりイレギュラー反力が再度検出されているときに、反力追従動作をイレギュラーロボットに実行させてもよい。
協調動作を実行する少なくとも2台のロボット10(以下、「複数台の協調ロボット」という。)のうち1台の協調ロボットでイレギュラー状態が検出された場合、イレギュラー制御部113は、イレギュラー状態を解除するための解除動作を複数台の協調ロボットに協調して実行させる。例えばイレギュラー制御部113は、イレギュラーロボットの先端部の位置及び姿勢を基準として、他の協調ロボットの先端部12の相対位置及び相対姿勢を維持するように、複数台の協調ロボットに解除動作を協調して実行させる。イレギュラーロボットに逆再生動作を実行させる場合、イレギュラー制御部113は、当該逆再生動作に同期して他の協調ロボットにも逆再生動作を実行させる。
イレギュラーロボットに反力追従動作を実行させる場合、イレギュラー制御部113は、他の協調ロボットに対する複数の解除用動作指令を更に含む解除用動作プログラムを算出する。例えばイレギュラー制御部113は、反力追従動作を実行するイレギュラーロボットの先端部の位置及び姿勢を基準として、他の協調ロボットの先端部12の相対位置及び相対姿勢を維持するように、他の協調ロボットに対する解除用動作指令を算出する。以下、イレギュラーロボットに対する解除用動作指令を「マスター側動作指令」といい、他の協調ロボットに対する解除用動作指令を「スレーブ側動作指令」という。
イレギュラー制御部113は、解除用動作プログラムに従ってイレギュラーロボット及び他の協調ロボットに解除動作を実行させる。より具体的に、イレギュラー制御部113は、マスター側動作指令に従って先端部12を変位させるようにイレギュラーロボットを制御することと、スレーブ側動作指令に従って先端部12を変位させるように他の協調ロボットを制御することとを、上記解除順序で順次実行する。
イレギュラーロボットが協調ロボットである場合、イレギュラー制御部113は、複数台の協調ロボットに協調して実行させる解除動作の動作量を、イレギュラーロボットにおけるイレギュラー反力の大きさに基づいて変更してもよい。例えばイレギュラー制御部113は、複数台の協調ロボットに協調して実行させる解除動作の動作量を、イレギュラー反力が大きくなるのに応じて大きくしてもよい。
また、イレギュラー制御部113は、イレギュラー反力を縮小するように所定の動作量で複数台の協調ロボットに解除動作を実行させた後に、イレギュラーロボットの反力センサ60によりイレギュラー反力が再度検出されているときに、当該イレギュラー反力を更に縮小するように複数台の協調ロボットに更なる解除動作を協調して実行させてもよい。
個別動作を実行する少なくとも2台のロボット10のうち1台のロボット10でイレギュラー状態が検出された場合、イレギュラー制御部113は、イレギュラーロボットに解除動作を実行させ、他のロボット10に個別動作を継続させてもよい。以下、イレギュラーロボットに解除動作を実行させ、他のロボット10に個別動作を継続させることを「個別モードのイレギュラー処理」という。一方、イレギュラーロボットを含む複数台の協調ロボットに解除動作協調して実行させることを「協調モードのイレギュラー処理」という。また、個別モードのイレギュラー処理及び協調モードのイレギュラー処理を、「イレギュラー処理」と総称する。
なお、協調モードのイレギュラー処理は、他のすべてのロボット10に解除動作を実行させるイレギュラー処理(以下、「完全協調モードのイレギュラー処理」という。)と、他のロボット10に解除動作を実行させつつ、更に他のロボット10に個別動作を継続させるイレギュラー処理(以下、「混在モードのイレギュラー処理」という。)とを含む。
いずれのイレギュラー処理においても、イレギュラー制御部113は、3台のロボット10に対する制御を同じ制御周期で繰り返し実行してもよい。例えばイレギュラー制御部113は、動作指令又は解除用動作指令に基づくロボット10の目標姿勢と、ロボット10の現在姿勢との偏差を縮小するようにロボット10を動作させることを、3台のロボット10に対し同じ制御周期で繰り返し実行する。
例えばイレギュラー制御部113は、各制御周期において、動作指令又は解除用動作指令に対応する関節31,32,33,34,35,36の角度目標値を逆運動学演算により算出し、関節31,32,33,34,35,36の角度目標値と関節31,32,33,34,35,36の現在角度(角度センサ51,52,53,54,55,56による検出値)との偏差を縮小するようにアクチュエータ41,42,43,44,45,46を駆動する。
イレギュラー制御部113は、イレギュラーロボットに対する動作指令と、他のロボット10に対する動作指令との関係に基づいて、協調モードのイレギュラー処理と、個別モードのイレギュラー処理とのいずれかを選択する、例えばイレギュラー制御部113は、イレギュラーロボットに対する動作指令と、他のロボット10に対する動作指令とが協調関係にある場合に協調モードのイレギュラー処理を選択し、当該他のロボット10にも解除動作を実行させてもよい。イレギュラーロボットに対する動作指令と、当該他のロボット10に対する動作指令とが協調関係にある場合の具体例としては、イレギュラーロボットの先端部の位置及び姿勢を基準として、他のロボット10の先端部12の相対位置及び相対姿勢が一定に保たれている場合が挙げられる。
イレギュラー制御部113は、動作プログラムが含む上記協調情報に基づいて協調モードのイレギュラー処理と個別モードのイレギュラー処理とのいずれかを選択してもよい。例えばイレギュラー制御部113は、イレギュラーロボットを含む少なくとも2台のロボット10の動作指令が協調関係にあることが協調情報により示されている場合に協調モードのイレギュラー処理を選択し、当該少なくとも2台のロボット10に解除動作を協調して実行させてもよい。
コントローラ100は、いずれか1台のロボット10でイレギュラー状態が検出されたときに、少なくとも2台のロボット10に解除動作を協調して実行させることが必要であるかを時系列で示す解除時協調情報をユーザの入力に基づいて取得することを更に実行し、いずれか1台のロボット10でイレギュラー状態が検出されたときに、解除時協調情報に基づいて上記協調モードのイレギュラー処理と、上記個別モードのイレギュラー処理とのいずれかを選択するように構成されていてもよい。
例えばコントローラ100は、カスタマイズ部114を更に有してもよい。カスタマイズ部114は、解除時協調情報をユーザの入力(例えば後述の入力デバイス126への入力)に基づいて取得する。例えばカスタマイズ部114は、3台のロボット10のいずれのロボット10に解除動作を協調して実行させるかを時系列で示す解除時協調情報をユーザの入力に基づいて取得し、動作プログラム記憶部111に記録する。一例として、カスタマイズ部114は、解除動作を協調して実行させるべきロボット10の動作指令と、他のいずれのロボット10と協調して解除動作を実行させるかを示す解除時協調指令とを対応付けて動作プログラム記憶部111に記録する。
コントローラ100がカスタマイズ部114を更に有する場合に、イレギュラー制御部113は、解除時協調情報に基づいて、上記協調モードのイレギュラー処理と上記個別モードのイレギュラー処理とのいずれかを選択する。例えばイレギュラー制御部113は、イレギュラーロボットを含む少なくとも2台のロボット10に解除動作を協調して実行させることが解除時協調情報により示されている場合に協調モードのイレギュラー処理を選択し、当該少なくとも2台のロボット10に解除動作を協調して実行させる。
図3は、コントローラ100のハードウェア構成を例示するブロック図である。図3に示すように、コントローラ100は、回路120を有する。回路120は、一つ又は複数のプロセッサ121と、メモリ122と、ストレージ123と、タイマ124と、表示デバイス125と、入力デバイス126と、入出力ポート127,128,129と、ドライバ回路131,132,133と、を含む。ストレージ123は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ123は、同一のワークに対する協調動作を少なくとも2台のロボット10に実行させることと、協調動作を実行する少なくとも2台のロボット10のうち1台のロボット10でイレギュラー状態が検出されたときに、イレギュラー状態を解除するための解除動作を2台のロボット10に協調して実行させることと、をコントローラ100に実行させるためのプログラムを記憶している。例えばストレージ123は、コントローラ100に上記各機能ブロックを構成するためのプログラムを記憶している。
メモリ122は、ストレージ123の記憶媒体からロードしたプログラム及びプロセッサ121による演算結果を一時的に記憶する。プロセッサ121は、メモリ122と協働して上記プログラムを実行することで、コントローラ100の各機能ブロックを構成する。タイマ124は、プロセッサ121からの指令により所定周期のクロックパルスをカウントして経過時間を計測する。表示デバイス125は、例えば液晶ディスプレイ、有機ELディスプレイ等を含み、ユーザに対する情報表示に用いられる。入力デバイス126は、ユーザによる操作入力を取得する。入力デバイス126の具体例としては、例えばキーパッド等が挙げられる。表示デバイス125及び入力デバイス126は、所謂タッチパネルとして一体化されていてもよい。表示デバイス125及び入力デバイス126は、コントローラ100の本体とは別体とされ、当該本体と有線又は無線で通信するティーチングペンダントであってもよい。
入出力ポート127は、プロセッサ121からの指令に従って、ロボット10Aの角度センサ51〜56及びトルクセンサ61〜66との間で情報の入出力を行う。入出力ポート128は、プロセッサ121からの指令に従って、ロボット10Bの角度センサ51〜56及びトルクセンサ61〜66との間で情報の入出力を行う。入出力ポート129は、プロセッサ121からの指令に従って、ロボット10Cの角度センサ51〜56及びトルクセンサ61〜66との間で情報の入出力を行う。
ドライバ回路131は、プロセッサ121からの指令に従って、ロボット10Aのアクチュエータ41〜46に駆動電力を出力する。ドライバ回路132は、プロセッサ121からの指令に従って、ロボット10Bのアクチュエータ41〜46に駆動電力を出力する。ドライバ回路133は、プロセッサ121からの指令に従って、ロボット10Cのアクチュエータ41〜46に駆動電力を出力する。
なお、回路120は、必ずしもプログラムにより各機能を構成するものに限られない。例えば回路120は、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により少なくとも一部の機能を構成してもよい。
〔制御手順〕
以下、制御方法の一例として、コントローラ100が実行する制御手順を例示する。この手順は、同一のワークに対する協調動作を少なくとも2台のロボット10に実行させることと、協調動作を実行する少なくとも2台のロボット10のうち1台のロボット10でイレギュラー状態が検出されたときに、イレギュラー状態を解除するための解除動作を2台のロボット10に協調して実行させることと、を含む。
図4は、ロボットの動作制御手順を例示するフローチャートである。図4に示すように、コントローラ100は、まずステップS01,S02を実行する。ステップS01では、動作制御部112が、通常動作用の動作指令に基づくロボット10の目標姿勢と、ロボット10の現在姿勢との偏差を縮小するようにロボット10を動作させることを、3台のロボット10に対し実行する。ステップS02では、いずれのロボット10においてもイレギュラー反力が検出されていないかを、イレギュラー制御部113が確認する。
ステップS02において、いずれかのロボット10においてイレギュラー反力が検出されていると判定した場合、コントローラ100はステップS03を実行する。ステップS03では、イレギュラー制御部113が、少なくとも上記イレギュラーロボットに解除動作を実行させる(上記イレギュラー処理を実行する。)。ステップS03の具体的処理内容については後述する。
次に、コントローラ100は、ステップS04を実行する。ステップS02においていずれのロボット10においてもイレギュラー反力が検出されていないと判定した場合、コントローラ100は、ステップS03を実行することなくステップS04を実行する。ステップS04では、全てのロボット10の通常動作が完了したか否かを動作制御部112が確認する。
ステップS04において、通常動作が完了していないロボット10が残っていると判定した場合、コントローラ100はステップS05を実行する。ステップS05では、動作制御部112が、制御周期の経過を待機する。その後、コントローラ100は処理をステップS01に戻す。以後、全てのロボット10の通常動作が完了するまでは、通常動作用の動作指令に基づく3台のロボット10の制御を行い、必要に応じて少なくともイレギュラーロボットに解除動作を実行させることが繰り返される。ステップS04において、全てのロボット10の通常動作が完了したと判定した場合、ロボット10の動作制御手順が完了する。
図5は、ステップS03におけるイレギュラー処理手順を例示するフローチャートである。図5に示すように、コントローラ100は、まずステップS11を実行する。ステップS11では、イレギュラーロボットが協調動作中であるか否かをイレギュラー制御部113が確認する。例えばイレギュラー制御部113は、イレギュラーロボットを含む少なくとも2台のロボット10の動作指令が協調関係にあることが協調情報により示されている場合に、イレギュラーロボットが協調動作中であると判定する。なお、イレギュラー制御部113は、イレギュラーロボットが協調動作中であるかに代えて、イレギュラーロボットを含む少なくとも2台のロボット10に解除動作を協調して実行させることが上記解除時協調情報により示されているか否かを確認してもよい。
ステップS11においてイレギュラーロボットが協調動作中でないと判定した場合、コントローラ100はステップS12を実行する。ステップS12では、イレギュラー制御部113が、上記個別モードのイレギュラー処理を実行する。
ステップS11においてイレギュラーロボットが協調動作中であると判定した場合、コントローラ100はステップS13を実行する。ステップS13では、イレギュラーロボットと協調動作中のロボット10の他に、個別動作中のロボット10があるか否かを確認する。例えばイレギュラー制御部113は、動作指令がイレギュラーロボットの動作指令と協調関係にないロボット10が存在しないかを協調情報に基づき確認する。なお、イレギュラー制御部113は、イレギュラーロボットと協調動作中のロボット10の他に、個別動作中のロボット10があるかに代えて、イレギュラーロボットと解除動作を協調して実行させることが上記解除時協調情報により示されていないロボット10があるかを確認してもよい。
ステップS13において、イレギュラーロボットと協調動作中のロボット10の他に、個別動作中のロボット10がないと判定した場合(例えば動作指令がイレギュラーロボットの動作指令と協調関係にないロボット10は存在しないと判定した場合)、コントローラ100はステップS14を実行する。ステップS14では、イレギュラー制御部113が、上記完全協調モードのイレギュラー処理を実行する。
ステップS13において、イレギュラーロボットと協調動作中のロボット10の他に、個別動作中のロボット10があると判定した場合(例えば動作指令がイレギュラーロボットの動作指令と協調関係にないロボット10が存在すると判定した場合)、コントローラ100はステップS15を実行する。ステップS15では、イレギュラー制御部113が、上記混在モードのイレギュラー処理を実行する。
以下、各モードのイレギュラー処理の具体的手順を例示する。図6及び図7は、完全協調モードのイレギュラー処理手順を例示するフローチャートである。図6に示すように、コントローラ100は、まずステップS21,S22,S23,S24を実行する。ステップS21では、イレギュラー制御部113が、イレギュラー反力を縮小するように、全てのロボット10の解除動作を設定する。例えばイレギュラー制御部113は、全てのロボット10について、イレギュラー反力の検出時点から、当該検出時点よりも所定時間前までの逆再生動作を解除動作とする。
イレギュラー制御部113は、イレギュラーロボットについて、所定距離又は所定時間の反力追従動作を解除動作としてもよい。この場合、イレギュラー制御部113は、反力追従動作を実行するイレギュラーロボットの先端部の位置及び姿勢を基準として、先端部12の相対位置及び相対姿勢を維持する動作を他のロボット10の解除動作とする。
ステップS22では、イレギュラー制御部113が、解除動作用のイレギュラーロボットの目標姿勢と、イレギュラーロボットの現在姿勢との偏差を縮小するようにイレギュラーロボットのアクチュエータ41,42,43,44,45,46を駆動する。ステップS23では、イレギュラー制御部113が、解除動作用の他のロボット10の目標姿勢と、他のロボット10の現在姿勢との偏差を縮小するように、他のロボット10のアクチュエータ41,42,43,44,45,46を駆動する。なお、ステップS22,S23の実行順序は逆転可能である。また、ステップS22,S23が実質的に同時に実行されてもよい。ステップS24では、ステップS21において設定された解除動作が完了したか否かを、イレギュラー制御部113が確認する。
ステップS24において解除動作が完了していないと判定した場合、コントローラ100はステップS25を実行する。ステップS25では、イレギュラー制御部113が、制御周期の経過を待機する。その後、コントローラ100は処理をステップS22に戻す。以後、全てのロボット10の解除動作が完了するまでは、解除動作用の動作指令に基づく3台のロボット10の制御が繰り返される。
ステップS24において解除動作が完了したと判定した場合、コントローラ100はステップS26を実行する。ステップS26では、イレギュラーロボットの反力センサ60によりイレギュラー反力が再度検出されていないかをイレギュラー制御部113が確認する。
ステップS26においてイレギュラー反力が検出されていると判定した場合、コントローラ100はステップS27,S28を実行する。ステップS27では、イレギュラー制御部113が、イレギュラーロボットにおけるイレギュラー反力を更に縮小するように、全てのロボット10の解除動作を設定する。例えばイレギュラー制御部113は、全てのロボット10について、上記所定時間前よりも更に前の時点までの逆再生動作を更なる解除動作とする。
イレギュラー制御部113は、イレギュラーロボットについて、再度検出されたイレギュラー反力に対する反力追従動作を更なる解除動作としてもよい。この場合、イレギュラー制御部113は、反力追従動作を実行するイレギュラーロボットの先端部の位置及び姿勢を基準として、先端部12の相対位置及び相対姿勢を維持する動作を他のロボット10の更なる解除動作とする。
ステップS28では、イレギュラー制御部113が、制御周期の経過を待機する。その後、コントローラ100は処理をステップS22に戻す。以後、全てのロボット10の更なる解除動作が完了するまでは、解除動作用の動作指令に基づく3台のロボット10の制御が繰り返される。
ステップS26においてイレギュラー反力が検出されていないと判定した場合、コントローラ100は、図7に示すようにステップS31,S32を実行する。ステップS31では、イレギュラー制御部113が、制御周期の経過を待機する。ステップS32では、通常動作への復帰指令が入力されているか否かをイレギュラー制御部113が確認する。復帰指令は、例えばユーザにより入力デバイス126に入力される。
ステップS32において復帰指令が入力されていないと判定した場合、コントローラ100は処理をステップS31に戻す。以後、復帰指令が入力されるまでは、全てのロボット10が停止した状態に保たれる。
ステップS32において復帰指令が入力されていると判定した場合、コントローラ100はステップS33,S34,S35を実行する。ステップS33では、イレギュラー制御部113が、復帰動作用のイレギュラーロボットの目標姿勢と、イレギュラーロボットの現在姿勢との偏差を縮小するようにイレギュラーロボットのアクチュエータ41,42,43,44,45,46を駆動する。復帰動作は、解除動作の逆向きの動作である。以下においても同様である。
ステップS34では、イレギュラー制御部113が、復帰動作用の他のロボット10の目標姿勢と、他のロボット10の現在姿勢との偏差を縮小するように、他のロボット10のアクチュエータ41,42,43,44,45,46を駆動する。なお、ステップS33,S34の実行順序は逆転可能である。また、ステップS33,S34が実質的に同時に実行されてもよい。
ステップS35では、復帰動作が完了したか否かをイレギュラー制御部113が確認する。ステップS35において復帰動作が完了していないと判定した場合、コントローラ100はステップS36を実行する。ステップS36では、イレギュラー制御部113が制御周期の経過を待機する。その後、コントローラ100は処理をステップS33に戻す。以後、全てのロボット10の復帰動作が完了するまでは、復帰動作用の動作指令に基づく3台のロボット10の制御が繰り返される。ステップS35において復帰動作が完了したと判定した場合、完全協調モードのイレギュラー処理が完了する。
図8及び図9は、個別モードのイレギュラー処理手順を例示するフローチャートである。図8に示すように、コントローラ100は、まずステップS41,S42,S43,S44を実行する。ステップS41では、イレギュラー制御部113が、イレギュラー反力を縮小するように、イレギュラーロボットの解除動作を設定する。例えばイレギュラー制御部113は、イレギュラー反力の検出時点から、当該検出時点よりも所定時間前までの逆再生動作をイレギュラーロボットの解除動作とする。イレギュラー制御部113は、所定距離又は所定時間の反力追従動作をイレギュラーロボットの解除動作としてもよい。
ステップS42では、イレギュラー制御部113が、解除動作用のイレギュラーロボットの目標姿勢と、イレギュラーロボットの現在姿勢との偏差を縮小するようにイレギュラーロボットのアクチュエータ41,42,43,44,45,46を駆動する。ステップS43では、イレギュラー制御部113が、通常動作用の他のロボット10の目標姿勢と、他のロボット10の現在姿勢との偏差を縮小するように他のロボット10のアクチュエータ41,42,43,44,45,46を駆動する。なお、ステップS42,S43の実行順序は逆転可能である。また、ステップS42,S43が実質的に同時に実行されてもよい。ステップS44では、ステップS41において設定された解除動作が完了したか否かをイレギュラー制御部113が確認する。
ステップS44において解除動作が完了していないと判定した場合、コントローラ100はステップS45を実行する。ステップS45では、イレギュラー制御部113が制御周期の経過を待機する。その後、コントローラ100は処理をステップS42に戻す。以後、イレギュラーロボットの解除動作が完了するまでは、解除動作用の動作指令に基づくイレギュラーロボットの制御と、通常動作用の動作指令に基づく他のロボット10の制御とが繰り返される。
ステップS44において解除動作が完了したと判定した場合、コントローラ100はステップS46を実行する。ステップS46では、イレギュラーロボットの反力センサ60によりイレギュラー反力が再度検出されていないかをイレギュラー制御部113が確認する。
ステップS46においてイレギュラー反力が検出されていると判定した場合、コントローラ100はステップS47,S48を実行する。ステップS47では、イレギュラー制御部113が、イレギュラーロボットにおけるイレギュラー反力を更に縮小するように、イレギュラーロボットの解除動作を設定する。例えばイレギュラー制御部113は、上記所定時間前よりも更に前の時点までの逆再生動作をイレギュラーロボットの更なる解除動作とする。イレギュラー制御部113は、再度検出されたイレギュラー反力に対する反力追従動作をイレギュラーロボットの更なる解除動作としてもよい。
ステップS48では、イレギュラー制御部113が制御周期の経過を待機する。その後、コントローラ100は処理をステップS42に戻す。以後、イレギュラーロボットの更なる解除動作が完了するまでは、解除動作用の動作指令に基づくイレギュラーロボットの制御と、通常動作用の動作指令に基づく他のロボット10の制御とが繰り返される。
ステップS46においてイレギュラー反力が検出されていないと判定した場合、コントローラ100は、図9に示すようにステップS51,S52を実行する。ステップS51では、イレギュラー制御部113が、制御周期の経過を待機する。ステップS52では、通常動作への復帰指令が入力されているかをイレギュラー制御部113が確認する。復帰指令は、例えばユーザにより入力デバイス126に入力される。
ステップS52において復帰指令が入力されていないと判定した場合、コントローラ100はステップS53を実行する。ステップS53では、イレギュラー制御部113が、通常動作用の他のロボット10の目標姿勢と、他のロボット10の現在姿勢との偏差を縮小するように他のロボット10のアクチュエータ41,42,43,44,45,46を駆動する。その後、コントローラ100は処理をステップS51に戻す。以後、復帰指令が入力されるまでは、イレギュラーロボットが停止した状態に保たれ、通常動作用の動作指令に基づく他のロボット10の制御が継続される。
ステップS52において復帰指令が入力されていると判定した場合、コントローラ100はステップS54,S55,S56を実行する。ステップS54では、イレギュラー制御部113が、復帰動作用のイレギュラーロボットの目標姿勢と、イレギュラーロボットの現在姿勢との偏差を縮小するようにイレギュラーロボットのアクチュエータ41,42,43,44,45,46を駆動する。ステップS55では、イレギュラー制御部113が、通常動作用の他のロボット10の目標姿勢と、他のロボット10の現在姿勢との偏差を縮小するように、他のロボット10のアクチュエータ41,42,43,44,45,46を駆動する。なお、ステップS54,S55の実行順序は逆転可能である。また、ステップS54,S55が実質的に同時に実行されてもよい。ステップS56では、復帰動作が完了したか否かをイレギュラー制御部113が確認する。
ステップS56において復帰動作が完了していないと判定した場合、コントローラ100はステップS57を実行する。ステップS57では、イレギュラー制御部113が制御周期の経過を待機する。その後、コントローラ100は処理をステップS54に戻す。以後、イレギュラーロボットの復帰動作が完了するまでは、復帰動作用の動作指令に基づくイレギュラーロボットの制御と、通常動作用の動作指令に基づく他のロボット10の制御とが繰り返される。ステップS56において復帰動作が完了したと判定した場合、個別協調モードのイレギュラー処理が完了する。
図10及び図11は、混在モードのイレギュラー処理手順を例示するフローチャートである。上述のように、混在モードのイレギュラー処理においては、イレギュラーロボットと協調して解除動作を実行する他のロボット10(以下、「協調ロボット」という。)と、個別動作を実行する他のロボット10(以下、「個別ロボット」という。)とが混在する。
図10に示すように、コントローラ100は、まずステップS61,S62,S63,S64,S65を実行する。ステップS61では、イレギュラー制御部113が、イレギュラー反力を縮小するように、イレギュラーロボット及び協調ロボットの解除動作を設定する。例えばイレギュラー制御部113は、イレギュラーロボット及び協調ロボットについて、イレギュラー反力の検出時点から、当該検出時点よりも所定時間前までの逆再生動作を解除動作とする。
イレギュラー制御部113は、イレギュラーロボットについて、所定距離又は所定時間の反力追従動作を解除動作としてもよい。この場合、イレギュラー制御部113は、反力追従動作を実行するイレギュラーロボットの先端部の位置及び姿勢を基準として、先端部12の相対位置及び相対姿勢を維持する動作を協調ロボットの解除動作とする。
ステップS62では、イレギュラー制御部113が、解除動作用のイレギュラーロボットの目標姿勢と、イレギュラーロボットの現在姿勢との偏差を縮小するようにイレギュラーロボットのアクチュエータ41,42,43,44,45,46を駆動する。ステップS63では、イレギュラー制御部113が、解除動作用の協調ロボットの目標姿勢と、協調ロボットの現在姿勢との偏差を縮小するように、協調ロボットのアクチュエータ41,42,43,44,45,46を駆動する。
ステップS64では、イレギュラー制御部113が、通常動作用の個別ロボットの目標姿勢と、個別ロボットの現在姿勢との偏差を縮小するように個別ロボットのアクチュエータ41,42,43,44,45,46を駆動する。なお、ステップS62,S63,S64の実行順序は入れ替え可能である。また、ステップS62,S63,S64が実質的に同時に実行されてもよい。ステップS65では、ステップS61において設定された解除動作が完了したか否かをイレギュラー制御部113が確認する。
ステップS65において解除動作が完了していないと判定した場合、コントローラ100はステップS66を実行する。ステップS66では、イレギュラー制御部113が制御周期の経過を待機する。その後、コントローラ100は処理をステップS62に戻す。以後、イレギュラーロボットの解除動作が完了するまでは、解除動作用の動作指令に基づくイレギュラーロボット及び協調ロボットの制御と、通常動作用の動作指令に基づく個別ロボットの制御とが繰り返される。
ステップS65において解除動作が完了したと判定した場合、コントローラ100はステップS67を実行する。ステップS67では、イレギュラーロボットの反力センサ60によりイレギュラー反力が再度検出されていないかをイレギュラー制御部113が確認する。
ステップS67においてイレギュラー反力が検出されていると判定した場合、コントローラ100はステップS68,S69を実行する。ステップS68では、イレギュラー制御部113が、イレギュラーロボットにおけるイレギュラー反力を更に縮小するように、イレギュラーロボット及び協調ロボットの解除動作を設定する。例えばイレギュラー制御部113は、上記所定時間前よりも更に前の時点までの逆再生動作をイレギュラーロボット及び協調ロボットの更なる解除動作とする。
イレギュラー制御部113は、再度検出されたイレギュラー反力に対する反力追従動作をイレギュラーロボットの更なる解除動作としてもよい。この場合、イレギュラー制御部113は、反力追従動作を実行するイレギュラーロボットの先端部の位置及び姿勢を基準として、先端部12の相対位置及び相対姿勢を維持する動作を協調ロボットの更なる解除動作とする。
ステップS69では、イレギュラー制御部113が制御周期の経過を待機する。その後、コントローラ100は処理をステップS62に戻す。以後、イレギュラーロボット及び協調ロボットの更なる解除動作が完了するまでは、解除動作用の動作指令に基づくイレギュラーロボット及び協調ロボットの制御と、通常動作用の動作指令に基づく個別ロボットの制御とが繰り返される。
ステップS67においてイレギュラー反力が検出されていないと判定した場合、コントローラ100は、図11に示すようにステップS71,S72を実行する。ステップS71では、イレギュラー制御部113が制御周期の経過を待機する。ステップS72では、通常動作への復帰指令が入力されているか否かをイレギュラー制御部113が確認する。復帰指令は、例えばユーザにより入力デバイス126に入力される。
ステップS72において復帰指令が入力されていないと判定した場合、コントローラ100はステップS73を実行する。ステップS73では、イレギュラー制御部113が、通常動作用の個別ロボットの目標姿勢と、個別ロボットの現在姿勢との偏差を縮小するように個別のアクチュエータ41,42,43,44,45,46を駆動する。その後、コントローラ100は処理をステップS71に戻す。以後、復帰指令が入力されるまでは、イレギュラーロボット及び協調ロボットが停止した状態に保たれ、通常動作用の動作指令に基づく個別ロボットの制御が継続される。
ステップS72において復帰指令が入力されたと判定した場合、コントローラ100はステップS74,S75,S76,S77を実行する。ステップS74では、イレギュラー制御部113が、復帰動作用のイレギュラーロボットの目標姿勢と、イレギュラーロボットの現在姿勢との偏差を縮小するようにイレギュラーロボットのアクチュエータ41,42,43,44,45,46を駆動する。ステップS75では、イレギュラー制御部113が、復帰動作用の協調ロボットの目標姿勢と、協調ロボットの現在姿勢との偏差を縮小するように協調ロボットのアクチュエータ41,42,43,44,45,46を駆動する。
ステップS76では、イレギュラー制御部113が、通常動作用の個別ロボットの目標姿勢と、個別ロボットの現在姿勢との偏差を縮小するように、個別ロボットのアクチュエータ41,42,43,44,45,46を駆動する。なお、ステップS74,S75,S76の実行順序は入れ替え可能である。また、ステップS74,S75,S76が実質的に同時に実行されてもよい。ステップS77では、復帰動作が完了したか否かをイレギュラー制御部113が確認する。
ステップS77において復帰動作が完了していないと判定した場合、コントローラ100はステップS78を実行する。ステップS78では、イレギュラー制御部113が制御周期の経過を待機する。その後、コントローラ100は処理をステップS74に戻す。以後、イレギュラーロボット及び協調ロボットの復帰動作が完了するまでは、復帰動作用の動作指令に基づくイレギュラーロボット及び協調ロボットの制御と、通常動作用の動作指令に基づく個別ロボットの制御とが繰り返される。ステップS77において復帰動作が完了したと判定した場合、混在モードのイレギュラー処理が完了する。
図8〜図11においては、イレギュラーロボット及び協調ロボットの解除動作と並行して個別ロボットに通常動作を継続させる主体が、イレギュラー制御部113であるものとしているが、個別ロボットに通常動作を継続させる主体は動作制御部112であってもよい。この場合も、イレギュラー制御部113が、イレギュラーロボットの他のロボット10に協調動作を実行させて、更に他のロボット10には協調動作を実行させない結果として、動作制御部112が更に他のロボット10に通常動作を継続させることとなるので、イレギュラー制御部113が個別ロボットに通常動作を継続させているものといえる。
〔変形例〕
図12は、ロボットシステムの変形例を示す模式図である。図1のロボットシステム1においては、1つのコントローラ100が複数台のロボット10を制御していたが、図12のロボットシステム1においては、複数のコントローラ200が複数台のロボット10をそれぞれ制御する。図示を簡略化するために、図12におけるロボット10の台数は2台となっているが、ロボット10の台数は3台以上であってもよい。
コントローラ200は、同一のワークに対する他のロボット10との協調動作を制御対象のロボット10(以下、「自ロボット」という。)に実行させることと、制御対象のロボット10でイレギュラー状態が検出された場合に、イレギュラー状態を解除するための解除動作を自ロボットに実行させることと、解除動作に協調する解除動作を他のロボット10に実行させることを他のロボット10のコントローラ200に要求することと、を実行するように構成されている。
例えばコントローラ200は、機能ブロックとして、動作プログラム記憶部211と、動作制御部212と、イレギュラー制御部213と、カスタマイズ部214と、解除動作要求部215とを有する。動作プログラム記憶部211は、上述した動作プログラム記憶部111が記憶する動作プログラムのうち、自ロボット用の動作プログラムを記憶する。動作制御部212は、上述した動作制御部112の機能のうち、自ロボットを動作させる機能を担う。
イレギュラー制御部213は、上述したイレギュラー制御部113の機能のうち、自ロボットを動作させる機能を担う。例えばイレギュラー制御部213は、自ロボットでイレギュラー状態が検出された場合に、イレギュラー状態を解除するための解除動作を自ロボットに実行させる。また、イレギュラー制御部213は、他のロボット10のコントローラ200からの要求に従って、他のロボット10の解除動作に協調する解除動作を自ロボットに実行させる。
カスタマイズ部214は、上述したカスタマイズ部114の機能のうち、自ロボットの解除時協調情報をユーザの入力に基づいて取得する機能を担う。解除動作要求部215は、イレギュラー制御部213が自ロボットに解除動作を実行させる場合に、当該解除動作に協調する解除動作を他のロボット10(上記協調ロボット)に実行させることを他のロボット10のコントローラ200に要求する。
図13は、コントローラ200のハードウェア構成を例示するブロック図である。図3に示すように、コントローラ200は、回路220を有する。回路220は、一つ又は複数のプロセッサ221と、メモリ222と、ストレージ223と、タイマ224と、表示デバイス225と、入力デバイス226と、入出力ポート227と、ドライバ回路228と、通信ポート229とを含む。ストレージ223は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ223は、同一のワークに対する他のロボット10との協調動作を制御対象のロボット10(以下、「自ロボット」という。)に実行させることと、制御対象のロボット10でイレギュラー状態が検出された場合に、イレギュラー状態を解除するための解除動作を自ロボットに実行させることと、解除動作に協調する解除動作を他のロボット10に実行させることを他のロボット10のコントローラ200に要求することと、をコントローラ200に実行させるためのプログラムを記憶している。例えばストレージ223は、コントローラ200に上記各機能ブロックを構成するためのプログラムを記憶している。
メモリ222は、ストレージ223の記憶媒体からロードしたプログラム及びプロセッサ221による演算結果を一時的に記憶する。プロセッサ221は、メモリ222と協働して上記プログラムを実行することで、コントローラ200の各機能ブロックを構成する。タイマ224は、プロセッサ221からの指令により所定周期のクロックパルスをカウントして経過時間を計測する。表示デバイス225は、例えば液晶、有機EL等を含み、ユーザに対する情報表示に用いられる。入力デバイス226は、ユーザによる操作入力を取得する。入力デバイス226の具体例としては、例えばキーパッド等が挙げられる。表示デバイス225及び入力デバイス226は、所謂タッチパネルとして一体化されていてもよい。表示デバイス225及び入力デバイス226は、コントローラ100の本体とは別体とされ、当該本体と有線又は無線で通信するティーチングペンダントであってもよい。
入出力ポート227は、プロセッサ221からの指令に従って、ロボット10の角度センサ51〜56及びトルクセンサ61〜66との間で情報の入出力を行う。ドライバ回路228は、プロセッサ221からの指令に従って、ロボット10のアクチュエータ41〜46に駆動電力を出力する。通信ポート229は、プロセッサ221からの指令に従って、他のコントローラ200との間で通信を行う。
なお、回路120は、必ずしもプログラムにより各機能を構成するものに限られない。例えば回路120は、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により少なくとも一部の機能を構成してもよい。
図14に示すように、ロボットシステム1は、複数のコントローラ200に動作指令を出力するコントローラ300を更に備えてもよい。この場合、イレギュラー処理のモード設定、解除動作の設定などの処理がコントローラ300において実行されてもよい。コントローラ300の具体例としては、プログラマブルロジックコントローラ等が挙げられる。
〔実施形態の効果〕
以上に説明したように、ロボットシステム1は、2台のロボット10と、同一のワークに対する協調動作を2台のロボット10に実行させる動作制御部112と、協調動作を実行する2台のロボット10のうち1台のロボット10でイレギュラー状態が検出されたときに、イレギュラー状態を解除するための解除動作を2台のロボット10に協調して実行させるイレギュラー制御部113と、を備える。
協調動作を実行する2台のロボット10のうち1台のロボット10でイレギュラー状態が検出された場合、当該1台のロボット10に速やかに解除動作を実行させることが必要となる。しかしながら、1台のロボット10が協調動作を中断して解除動作を実行すると、他のロボット10との協調関係が崩れることとなる。例えば、2台のロボット10が同一のワークを協調して搬送している場合に、2台のロボット10の協調関係が崩れると、ワークの脱落、破損等のおそれもある。これに対し、本ロボットシステム1によれば、イレギュラー状態を解除するための解除動作が2台のロボット10により協調して実行される。これにより、イレギュラー状態を解除する際にも、2台のロボット10の協調関係が維持される。従って、協調動作する複数台のロボット10におけるイレギュラー状態の解除と、複数台のロボット10の協調状態の継続との両立に有効である。
動作制御部112は、互いに独立した個別動作を2台のロボット10に更に実行させ、イレギュラー制御部113は、個別動作を実行する2台のロボット10のうち1台のロボット10でイレギュラー状態が検出されたときに、当該1台のロボット10に解除動作を実行させ、他のロボット10に個別動作を継続させてもよい。この場合、協調関係の維持が不要であるときには、他のロボット10に個別動作を継続させることで、解除動作の実行に伴う2台のロボット10の作業遅延を抑制することができる。
動作制御部112は、時系列の複数の動作指令を2台のロボット10ごとに含む動作プログラムに従って2台のロボットを動作させ、イレギュラー制御部113は、2台のロボット10のうち1台のロボット10でイレギュラー状態が検出されたときに、2台のロボット10に対する動作指令の関係に基づいて、2台のロボット10に解除動作を協調して実行させる協調モードのイレギュラー処理と、他のロボット10に個別動作を継続させる個別モードのイレギュラー処理とのいずれかを選択してもよい。この場合、協調モードのイレギュラー処理又は個別モードのイレギュラー処理の適切な選択を容易に実行することができる。
ロボットシステム1は、2台のロボット10を含む3台以上のロボット10を備え、動作制御部112は、時系列の複数の動作指令を3台以上のロボット10ごとに含む動作プログラムに従って3台以上のロボット10を動作させ、イレギュラー制御部113は、3台以上のロボット10のうち1台のロボット10でイレギュラー状態が検出されたときに、当該1台のロボット10を含む少なくとも2台のロボット10に対する動作指令が協調関係にある場合に協調モードのイレギュラー処理を選択し、当該少なくとも2台のロボット10に解除動作を協調して実行させてもよい。この場合、3台以上のロボット10に、協調動作を行うロボット10と個別動作を行うロボット10とが混在する状態でイレギュラー状態が検出されたときにも、協調モードのイレギュラー処理又は個別モードのイレギュラー処理を適切に選択し、協調モードのイレギュラー処理の対象となるロボットを適切に選択することができる。
動作プログラムは、2台のロボット10の動作指令が協調関係にあるかを時系列で示す協調情報を更に含み、イレギュラー制御部113は、2台のロボット10のうち1台のロボット10でイレギュラー状態が検出されたときに、協調情報に基づいて協調モードのイレギュラー処理と個別モードのイレギュラー処理とのいずれかを選択してもよい。この場合、予め動作プログラムに含められた協調情報に基づくことで、協調モードのイレギュラー処理又は個別モードのイレギュラー処理の適切な選択をより迅速に実行することができる。
ロボットシステム1は、2台のロボット10を含む3台以上のロボット10を備え、動作制御部112は、時系列の複数の動作指令を3台以上のロボット10ごとに含む動作プログラムに従って3台以上のロボット10を動作させ、動作プログラムは、3台のロボットのいずれのロボット10の動作指令が協調関係にあるかを時系列で示す協調情報を更に含み、イレギュラー制御部は、3台以上のロボット10のうち1台のロボット10でイレギュラー状態が検出されたときに、当該1台のロボット10を含む少なくとも2台のロボット10の動作指令が協調関係にあることが協調情報により示されている場合に協調モードのイレギュラー処理を選択し、当該少なくとも2台のロボット10に解除動作を協調して実行させてもよい。この場合、3台以上のロボット10に、協調動作を行うロボット10と個別動作を行うロボット10とが混在する状態でイレギュラー状態が検出されたときにも、協調モードのイレギュラー処理又は個別モードのイレギュラー処理の適切な選択と、協調モードのイレギュラー処理の対象となるロボット10の適切な選択とをより迅速に実行することができる。
ロボットシステム1は、2台のロボット10のうちいずれか1台のロボット10でイレギュラー状態が検出されたときに、2台のロボット10に解除動作を協調して実行させることが必要であるかを時系列で示す解除時協調情報をユーザの入力に基づいて取得するカスタマイズ部114を更に備え、イレギュラー制御部113は、2台のロボット10のうち1台のロボットでイレギュラー状態が検出されたときに、解除時協調情報に基づいて、2台のロボット10に解除動作を協調して実行させる協調モードのイレギュラー処理と、他のロボット10に個別動作を継続させる個別モードのイレギュラー処理とのいずれかを選択してもよい。この場合、よりユーザニーズにマッチした条件で協調モードのイレギュラー処理又は個別モードのイレギュラー処理を選択することができる。
ロボットシステム1は、2台のロボット10を含む3台以上のロボット10を備え、カスタマイズ部114は、3台以上のロボットのいずれのロボット10に解除動作を協調して実行させるかを時系列で示す解除時協調情報をユーザの入力に基づいて取得し、イレギュラー制御部113は、3台以上のロボット10のうち1台のロボット10でイレギュラー状態が検出されたときに、当該1台のロボット10を含む少なくとも2台のロボット10に解除動作を協調して実行させることが解除時協調情報により示されている場合に協調モードのイレギュラー処理を選択し、当該少なくとも2台のロボット10に解除動作を協調して実行させてもよい。この場合、3台以上のロボット10に、解除動作を協調して実行させるべきロボット10と、個別動作を継続させるべきロボット10とを混在させるニーズにもマッチした条件にて協調モードのイレギュラー処理又は個別モードのイレギュラー処理を選択し、協調モードのイレギュラー処理の対象となるロボット10を選択することができる。
イレギュラー制御部113は、イレギュラー状態が検出された1台のロボット10の姿勢が、当該イレギュラー状態の検出時点の姿勢から変化するように少なくとも当該1台のロボット10に解除動作を実行させてもよい。この場合、イレギュラー状態をより確実に解除することができる。
2台のロボット10のそれぞれは、先端部12と、先端部12の位置及び姿勢を変更する多関節アーム20とを有し、イレギュラー制御部113は、協調動作を実行中する2台のロボット10のうち1台のロボット10でイレギュラー状態が検出されたときに、当該1台のロボット10の先端部12の位置及び姿勢を基準として、他のロボット10の先端部12の相対位置及び相対姿勢を維持するように、2台のロボット10に協調して解除動作を実行させてもよい。この場合、2台のロボット10の協調関係をより確実に維持することができる。
動作制御部112は、同一のワークを協働して保持し、搬送する協調動作を2台のロボット10に実行させてもよい。この場合、2台のロボット10の協調状態の継続を、イレギュラー状態の解除と両立させることがより有益である。
複数台のロボット10のそれぞれは、人協働ロボットであってもよい。この場合、イレギュラー状態の解除の必要性がより高い人協働環境においても、2台のロボット10を協働させ、人の作業をより多様にサポートすることができる。
2台のロボット10のそれぞれは、周辺物体との接触に伴うイレギュラー反力をイレギュラー状態として検出する反力センサ60を備え、イレギュラー制御部113は、協調動作を実行する2台のロボット10のうちいずれか1台のロボット10の反力センサ60によりイレギュラー反力が検出されたときに、当該イレギュラー反力を縮小するように2台のロボット10に解除動作を協調して実行させてもよい。この場合、イレギュラー状態の一例であるイレギュラー反力の縮小(解除)と、上記協調状態の継続との両立に有効である。
イレギュラー制御部113は、協調動作を実行する2台のロボット10のうち1台のロボット10でイレギュラー反力が検出されたときに、当該イレギュラー反力の検出時点までの動作を、当該検出時点よりも前の時点まで逆再生するように、2台のロボット10に解除動作を実行させてもよい。この場合、解除動作用の動作指令を新たに算出する必要が無いので、1台のロボット10における解除動作と、他のロボット10における解除動作とを迅速に実行させることができる。また、イレギュラー反力の検出時点より前にはイレギュラー反力が検出されなかった動作が逆再生されるので、解除動作に起因する二次的なイレギュラー状態の発生を抑制することもできる。
イレギュラー制御部113は、協調動作を実行する2台のロボット10のうち1台のロボット10でイレギュラー反力が検出されたときに、2台のロボット10に協調して実行させる解除動作の動作量を、当該1台のロボット10におけるイレギュラー反力の大きさに基づいて変更してもよい。この場合、イレギュラー反力をより確実に縮小させることができる。
イレギュラー制御部113は、協調動作を実行する2台のロボット10のうち1台のロボット10で検出されたイレギュラー反力を縮小するように、2台のロボット10に解除動作を協調して実行させた後に、当該1台のロボット10の反力センサ60によりイレギュラー反力が再度検出されているときに、当該イレギュラー反力を更に縮小するように、2台のロボット10に更なる解除動作を協調して実行させてもよい。この場合、イレギュラー反力をより確実に縮小させることができる。
動作制御部112及びイレギュラー制御部113は、ロボット10の目標姿勢と現在姿勢との偏差を縮小するように当該ロボット10を動作させることを、2台のロボット10に対して同じ制御周期で繰り返し実行してもよい。この場合、2台のロボット10の動作タイミングのずれが、1制御周期以下に抑制されるので、2台のロボット10の協調状態をより確実に維持することができる。
以上、実施形態について説明したが、本開示は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。例えば、上述の実施形態においては、解除動作の後、復帰指令に従って復帰動作を実行するシステムを例示したが、解除動作が完了した時点で、少なくとも解除動作を実行したロボットの動作を完了させてもよい。
1…ロボットシステム、10,10A,10B,10C…ロボット、12…先端部、20…多関節アーム、60…反力センサ、100,200,300…コントローラ、112,212…動作制御部、113,213…イレギュラー制御部、114,214…カスタマイズ部、215…解除動作要求部。

Claims (22)

  1. 2台のロボットと、
    同一のワークに対する協調動作と、互いに独立した個別動作とを前記2台のロボットに実行させる動作制御部と、
    前記協調動作を実行する前記2台のロボットのうち1台のロボットでイレギュラー状態が検出されたときに、前記イレギュラー状態を解除するための解除動作を前記2台のロボットに協調して実行させるイレギュラー制御部と、
    前記2台のロボットのうちいずれか1台のロボットでイレギュラー状態が検出されたときに、前記2台のロボットに前記解除動作を協調して実行させることが必要であるかを時系列で示す解除時協調情報をユーザの入力に基づいて取得するカスタマイズ部と、
    を備え
    前記イレギュラー制御部は、前記2台のロボットのうち1台のロボットで前記イレギュラー状態が検出されたときに、前記解除時協調情報に基づいて、前記2台のロボットに前記解除動作を協調して実行させる協調モードのイレギュラー処理と、前記2台のロボットのうち1台のロボットに前記解除動作を実行させ、他のロボットに前記個別動作を継続させる個別モードのイレギュラー処理とのいずれかを選択するロボットシステム。
  2. 前記2台のロボットを含む3台以上のロボットを備え、
    前記カスタマイズ部は、前記3台以上のロボットのいずれのロボットに前記解除動作を協調して実行させるかを時系列で示す解除時協調情報をユーザの入力に基づいて取得し、
    前記イレギュラー制御部は、
    前記3台以上のロボットのうち1台のロボットで前記イレギュラー状態が検出されたときに、当該1台のロボットを含む少なくとも2台のロボットに前記解除動作を協調して実行させることが前記解除時協調情報により示されている場合に前記協調モードのイレギュラー処理を選択し、当該少なくとも2台のロボットに前記解除動作を協調して実行させる、請求項記載のロボットシステム。
  3. 先端部と、前記先端部の位置及び姿勢を変更する多関節アームと、をそれぞれ有する2台のロボットと、
    同一のワークに対する協調動作を前記2台のロボットに実行させる動作制御部と、
    前記協調動作を実行する前記2台のロボットのうち1台のロボットでイレギュラー状態が検出されたときに、当該1台のロボットの前記先端部の位置及び姿勢を基準として、他のロボットの前記先端部の相対位置及び相対姿勢を維持するように、前記イレギュラー状態を解除するための解除動作を前記2台のロボットに協調して実行させるイレギュラー制御部と、を備えるロボットシステム。
  4. 周辺物体との接触に伴うイレギュラー反力をイレギュラー状態として検出する反力センサをそれぞれ有する2台のロボットと、
    同一のワークに対する協調動作を前記2台のロボットに実行させる動作制御部と、
    前記協調動作を実行する前記2台のロボットのうち1台のロボットで、当該ロボットの反力センサにより前記イレギュラー反力が検出されたときに、当該イレギュラー反力を縮小するように、前記イレギュラー状態を解除するための解除動作を前記2台のロボットに協調して実行させるイレギュラー制御部と、を備えるロボットシステム。
  5. 前記イレギュラー制御部は、前記協調動作を実行する前記2台のロボットのうち1台のロボットで前記イレギュラー反力が検出されたときに、当該イレギュラー反力の検出時点までの動作を、当該検出時点よりも前の時点まで逆再生するように、前記2台のロボットに前記解除動作を実行させる、請求項記載のロボットシステム。
  6. 前記イレギュラー制御部は、前記協調動作を実行する前記2台のロボットのうち1台のロボットで前記イレギュラー反力が検出されたときに、前記2台のロボットに協調して実行させる前記解除動作の動作量を、当該1台のロボットにおけるイレギュラー反力の大きさに基づいて変更する、請求項又は記載のロボットシステム。
  7. 前記イレギュラー制御部は、前記協調動作を実行する前記2台のロボットのうち1台のロボットで検出された前記イレギュラー反力を縮小するように、前記2台のロボットに解除動作を協調して実行させた後に、当該1台のロボットの前記反力センサによりイレギュラー反力が再度検出されているときに、当該イレギュラー反力を更に縮小するように、前記2台のロボットに更なる解除動作を協調して実行させる、請求項記載のロボットシステム。
  8. 前記動作制御部は、互いに独立した個別動作を前記2台のロボットに更に実行させ、
    前記イレギュラー制御部は、
    前記個別動作を実行する2台のロボットのうち1台のロボットで前記イレギュラー状態が検出されたときに、当該1台のロボットに前記解除動作を実行させ、他のロボットに前記個別動作を継続させる、請求項3〜7のいずれか一項記載のロボットシステム。
  9. 前記動作制御部は、時系列の複数の動作指令を前記2台のロボットごとに含む動作プログラムに従って前記2台のロボットを動作させ、
    前記イレギュラー制御部は、
    前記2台のロボットのうち1台のロボットで前記イレギュラー状態が検出されたときに、前記2台のロボットに対する前記動作指令の関係に基づいて、前記2台のロボットに前記解除動作を協調して実行させる協調モードのイレギュラー処理と、前記2台のロボットのうち1台のロボットに前記解除動作を実行させ、他のロボットに前記個別動作を継続させる個別モードのイレギュラー処理とのいずれかを選択する、請求項記載のロボットシステム。
  10. 前記2台のロボットを含む3台以上のロボットを備え、
    前記動作制御部は、時系列の複数の動作指令を前記3台以上のロボットごとに含む動作プログラムに従って前記3台以上のロボットを動作させ、
    前記イレギュラー制御部は、
    前記3台以上のロボットのうち1台のロボットで前記イレギュラー状態が検出されたときに、当該1台のロボットを含む少なくとも2台のロボットに対する動作指令が協調関係にある場合に前記協調モードのイレギュラー処理を選択し、当該少なくとも2台のロボットに前記解除動作を協調して実行させる、請求項記載のロボットシステム。
  11. 前記動作プログラムは、前記2台のロボットの動作指令が協調関係にあるかを時系列で示す協調情報を更に含み、
    前記イレギュラー制御部は、
    前記2台のロボットのうち1台のロボットで前記イレギュラー状態が検出されたときに、協調情報に基づいて前記協調モードのイレギュラー処理と前記個別モードのイレギュラー処理とのいずれかを選択する、請求項記載のロボットシステム。
  12. 前記2台のロボットを含む3台以上のロボットを備え、
    前記動作制御部は、時系列の複数の動作指令を前記3台以上のロボットごとに含む動作プログラムに従って前記3台以上のロボットを動作させ、
    前記動作プログラムは、前記3台のロボットのいずれのロボットの動作指令が協調関係にあるかを時系列で示す協調情報を更に含み、
    前記イレギュラー制御部は、
    前記3台以上のロボットのうち1台のロボットで前記イレギュラー状態が検出されたときに、当該1台のロボットを含む少なくとも2台のロボットの動作指令が協調関係にあることが前記協調情報により示されている場合に前記協調モードのイレギュラー処理を選択し、当該少なくとも2台のロボットに前記解除動作を協調して実行させる、請求項11記載のロボットシステム。
  13. 前記動作制御部は、前記同一のワークを協働して保持し、搬送する協調動作を前記2台のロボットに実行させる、請求項1〜12のいずれか一項記載のロボットシステム。
  14. 複数台の前記ロボットのそれぞれは、人協働ロボットである、請求項1〜13のいずれか一項記載のロボットシステム。
  15. 前記動作制御部及び前記イレギュラー制御部は、前記ロボットの目標姿勢と現在姿勢との偏差を縮小するように当該ロボットを動作させることを、前記2台のロボットに対して同じ制御周期で繰り返し実行する、請求項1〜14のいずれか一項記載のロボットシステム。
  16. 同一のワークに対する他のロボットとの協調動作をロボットに実行させる動作制御部と、
    前記ロボットでイレギュラー状態が検出された場合に、前記イレギュラー状態を解除するための解除動作を前記ロボットに実行させるイレギュラー制御部と、
    前記解除動作に協調する解除動作を前記他のロボットに実行させることを前記他のロボットのコントローラに要求する解除動作要求部と、
    前記ロボットでイレギュラー状態が検出されたときに、前記他のロボットに前記解除動作を前記ロボットと協調して実行させることが必要であるかを時系列で示す解除時協調情報をユーザの入力に基づいて取得するカスタマイズ部と、
    を備え
    前記解除動作要求部は、前記ロボットで前記イレギュラー状態が検出されたときに、前記解除時協調情報に基づいて、前記解除動作に協調する解除動作を前記他のロボットに実行させることを前記他のロボットのコントローラに要求する協調モードのイレギュラー処理と、前記他のロボットに、前記ロボットの動作から独立した個別動作を継続させる個別モードのイレギュラー処理とのいずれかを選択するコントローラ。
  17. 同一のワークに対する他のロボットとの協調動作をロボットに実行させる動作制御部と、
    前記ロボットでイレギュラー状態が検出された場合に、前記イレギュラー状態を解除するための解除動作を前記ロボットに実行させるイレギュラー制御部と、
    前記解除動作に協調する解除動作を前記他のロボットに実行させることを前記他のロボットのコントローラに要求する解除動作要求部と、を備え、
    前記ロボット及び前記他のロボットのそれぞれは、先端部と、前記先端部の位置及び姿勢を変更する多関節アームとを有し、
    前記解除動作要求部は、前記ロボットでイレギュラー状態が検出されたときに、当該ロボットの前記先端部の位置及び姿勢を基準として、前記他のロボットの前記先端部の相対位置及び相対姿勢を維持するように、前記ロボットが実行する前記解除動作に協調する解除動作を前記他のロボットに実行させることを前記他のロボットのコントローラに要求するコントローラ。
  18. 周辺物体との接触に伴うイレギュラー反力をイレギュラー状態として検出する反力センサを有するロボットに、同一のワークに対する他のロボットとの協調動作を実行させる動作制御部と、
    前記反力センサにより前記イレギュラー反力が検出されたときに、当該イレギュラー反力を縮小するように、前記イレギュラー状態を解除するための解除動作を前記ロボットに実行させるイレギュラー制御部と、
    前記解除動作に協調する解除動作を前記他のロボットに実行させることを前記他のロボットのコントローラに要求する解除動作要求部と、を備えるコントローラ。
  19. 前記イレギュラー制御部は、前記他のロボットのコントローラからの要求に従って、前記他のロボットの解除動作に協調する前記解除動作を前記ロボットに実行させる、請求項16〜18のいずれか一項記載のコントローラ。
  20. 同一のワークに対する協調動作と、互いに独立した個別動作とを2台のロボットに実行させることと、
    前記2台のロボットのうち1台のロボットでイレギュラー状態が検出されたときに、前記イレギュラー状態を解除するための解除動作を前記2台のロボットに協調して実行させることが必要であるかを時系列で示す解除時協調情報をユーザの入力に基づいて取得することと、
    前記協調動作を実行する前記2台のロボットのうち1台のロボットでイレギュラー状態が検出されたときに、前記解除時協調情報に基づいて、前記イレギュラー状態を解除するための解除動作を前記2台のロボットに協調して実行させる協調モードのイレギュラー処理と、前記2台のロボットのうち1台のロボットに前記解除動作を実行させ、他のロボットに前記個別動作を継続させる個別モードのイレギュラー処理とのいずれかを選択することと、を含む制御方法。
  21. 先端部と、前記先端部の位置及び姿勢を変更する多関節アームと、をそれぞれ有する2台のロボットに、同一のワークに対する協調動作を実行させることと、
    前記協調動作を実行する前記2台のロボットのうち1台のロボットでイレギュラー状態が検出されたときに、当該1台のロボットの前記先端部の位置及び姿勢を基準として、他のロボットの前記先端部の相対位置及び相対姿勢を維持するように、前記イレギュラー状態を解除するための解除動作を前記2台のロボットに協調して実行させることと、を含む制御方法。
  22. 周辺物体との接触に伴うイレギュラー反力をイレギュラー状態として検出する反力センサをそれぞれ有する2台のロボットに、同一のワークに対する協調動作を実行させることと、
    前記協調動作を実行する前記2台のロボットのうち1台のロボットで、当該ロボットの反力センサによりイレギュラー反力が検出されたときに、当該イレギュラー反力を縮小するように、前記イレギュラー状態を解除するための解除動作を前記2台のロボットに協調して実行させることと、を含む制御方法。
JP2019153124A 2019-08-23 2019-08-23 ロボットシステム、コントローラ及び制御方法 Active JP6881525B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019153124A JP6881525B2 (ja) 2019-08-23 2019-08-23 ロボットシステム、コントローラ及び制御方法
US16/997,945 US11745340B2 (en) 2019-08-23 2020-08-20 Robot controller
EP20191840.6A EP3782772B1 (en) 2019-08-23 2020-08-20 Robot system and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019153124A JP6881525B2 (ja) 2019-08-23 2019-08-23 ロボットシステム、コントローラ及び制御方法

Publications (2)

Publication Number Publication Date
JP2021030368A JP2021030368A (ja) 2021-03-01
JP6881525B2 true JP6881525B2 (ja) 2021-06-02

Family

ID=72178372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019153124A Active JP6881525B2 (ja) 2019-08-23 2019-08-23 ロボットシステム、コントローラ及び制御方法

Country Status (3)

Country Link
US (1) US11745340B2 (ja)
EP (1) EP3782772B1 (ja)
JP (1) JP6881525B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114313446A (zh) * 2020-10-09 2022-04-12 泰连服务有限公司 零件包装系统和方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3287153B2 (ja) * 1994-12-27 2002-05-27 日産自動車株式会社 組立用ロボットによるワーク自動組付方法およびその装置
JP2006187826A (ja) * 2005-01-05 2006-07-20 Kawasaki Heavy Ind Ltd ロボットコントローラ
JP2009297848A (ja) * 2008-06-16 2009-12-24 Yaskawa Electric Corp ロボット及びユニットコントローラ及び制御ユニット間協調制御方法
JP2010214503A (ja) * 2009-03-16 2010-09-30 Yaskawa Electric Corp ロボット及びユニットコントローラ及び制御ユニット間協調制御方法
JP6055002B2 (ja) * 2015-02-20 2016-12-27 ファナック株式会社 ロボットを退避動作させる人間協調ロボットシステム
JP6484213B2 (ja) * 2016-12-09 2019-03-13 ファナック株式会社 複数のロボットを含むロボットシステム、ロボット制御装置、及びロボット制御方法
JP6690626B2 (ja) 2017-10-31 2020-04-28 株式会社安川電機 ロボットシステムおよびロボットの退避方法
DE102017129665B3 (de) * 2017-12-12 2019-01-24 Pilz Gmbh & Co. Kg Kollisionsfreie Bewegungsplanung bei geschlossener Kinematik
JP6661804B2 (ja) * 2018-07-10 2020-03-11 株式会社星宇ハイテックSungwoo Hitech Co., Ltd. 部品組立用ロボットシステムおよび制御方法

Also Published As

Publication number Publication date
EP3782772B1 (en) 2023-11-08
JP2021030368A (ja) 2021-03-01
EP3782772A1 (en) 2021-02-24
US20210053219A1 (en) 2021-02-25
US11745340B2 (en) 2023-09-05

Similar Documents

Publication Publication Date Title
KR101795847B1 (ko) 산업용 로봇을 프로그래밍하기 위한 방법 및 관련 산업용 로봇
US7211978B2 (en) Multiple robot arm tracking and mirror jog
JP6238628B2 (ja) ロボット装置、ロボット制御方法、ロボット制御プログラム及びロボット装置を用いた部品の製造方法
US11247332B2 (en) Redundant underactuated robot with multi-mode control framework
EP3546137B1 (en) Robot system and method for controlling robot
JP7204354B2 (ja) ロボットシステム、ロボットシステムの制御方法、ロボットシステムを用いた物品の製造方法、プログラム及び記録媒体
JP6960242B2 (ja) ロボットシステム及びロボットシステムの制御方法
JP2010069584A (ja) マニピュレータの制御装置および制御方法
JP2016028842A (ja) アクチュエータシステム
JP2014217913A (ja) パラレルリンクロボットの動作教示方法およびパラレルリンクロボット
JP6696341B2 (ja) 制御方法
US20150343639A1 (en) Gear incorporation system and gear incorporation method
JP6881525B2 (ja) ロボットシステム、コントローラ及び制御方法
WO2016147592A1 (ja) ロボット、ロボットの制御方法、ワークの取付方法及びワークの搬送方法
JPS6334609A (ja) 複腕装置
JP2012051043A (ja) ロボットシステムまたはロボット制御装置
JP2011224745A (ja) ロボット教示装置、該装置のコントローラ、およびプログラム
JP2003136466A (ja) 産業用ロボットの制御装置
JP2017127932A (ja) ロボット装置、ロボット制御方法、部品の製造方法、プログラム及び記録媒体
JP6429977B2 (ja) ロボット装置及びロボット制御方法
JP2020104178A (ja) ロボット装置、ロボット装置の制御方法、ロボット装置を用いた物品の製造方法、制御プログラム及び記録媒体
JP2020185619A (ja) ロボットシステム及びその制御方法
JP7327991B2 (ja) 制御方法、制御プログラム、記録媒体、ロボットシステム、物品の製造方法および入力装置
JP7135823B2 (ja) ロボットシステム及びロボットの制御方法
JP2014124761A (ja) 多関節ロボット、搬送システム及び多関節ロボットの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210419

R150 Certificate of patent or registration of utility model

Ref document number: 6881525

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150