JP7135823B2 - ロボットシステム及びロボットの制御方法 - Google Patents

ロボットシステム及びロボットの制御方法 Download PDF

Info

Publication number
JP7135823B2
JP7135823B2 JP2018235558A JP2018235558A JP7135823B2 JP 7135823 B2 JP7135823 B2 JP 7135823B2 JP 2018235558 A JP2018235558 A JP 2018235558A JP 2018235558 A JP2018235558 A JP 2018235558A JP 7135823 B2 JP7135823 B2 JP 7135823B2
Authority
JP
Japan
Prior art keywords
articulated robot
detection
external force
weight
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
JP2018235558A
Other languages
English (en)
Other versions
JP2020097069A (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 JP2018235558A priority Critical patent/JP7135823B2/ja
Publication of JP2020097069A publication Critical patent/JP2020097069A/ja
Application granted granted Critical
Publication of JP7135823B2 publication Critical patent/JP7135823B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Description

本開示は、ロボットシステム及びロボットの制御方法に関する。
特許文献1には、サーボモータにより駆動されるロボットアームと、サーボモータと回転位置からロボットアームに作用する外乱を推定する外乱推定オブザーバとを備えるロボットシステムが開示されている。
特開2008-253132号公報
本開示は、ロボットに作用する外力の情報をより有効に活用することができるロボットシステムを提供する。
本開示の一側面に係るロボットシステムは、ワークを把持して搬送する多関節ロボットと、前記多関節ロボットに作用する外力を検出する外力センサと、前記外力センサの検出値に基づいて前記多関節ロボットと物体との接触を検知する接触検知部と、前記外力センサの検出値に基づいて前記ワークの重量を検出する重量検出部と、を備える。
本開示の他の側面に係るロボットの制御方法は、ワークを把持して搬送する多関節ロボットに作用する外力の検出値に基づいて多関節ロボットと物体との接触を検知することと、外力の検出値に基づいてワークの重量を検出することと、を含む。
本開示によれば、ロボットに作用する外力の情報をより有効に活用することができるロボットシステムを提供することができる。
ロボットシステムの全体構成を示す模式図である。 コントローラの機能的な構成を例示するブロック図である。 コントローラのハードウェア構成を例示するブロック図である。 仕分制御手順を例示するフローチャートである。 外力対応処理手順を例示するフローチャートである。 外力対応処理手順を例示するフローチャートである。 ステータス更新手順を例示するフローチャートである。
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
〔ロボットシステム〕
図1に示すロボットシステム1は、ロボットと作業者との協働を前提とする人協働型のシステムである。ロボットシステム1は、多関節ロボット10と、外力センサ20と、物体センサ30と、コントローラ100とを備える。
多関節ロボット10は、ワークを把持して搬送する。多関節ロボット10は、例えば6軸の垂直多関節ロボットであり、基部11と、先端部12と、ハンド13と、多関節アーム40とを有する。基部11は、多関節ロボット10用の作業エリアにおいて、例えば床面(設置面)に設置されている。多関節アーム40は、基部11及び先端部12を接続する。
多関節アーム40は複数の関節を有し、当該複数の関節の角度を変更することで基部11に対する先端部12の位置及び姿勢を調節する。例えば多関節アーム40は、旋回部41と、下アーム42と、上アーム43と、手首部46と、アクチュエータ61,62,63,64,65,66と、角度センサ71,72,73,74,75,76とを有する。旋回部41は、鉛直な軸線Ax1まわりに旋回可能となるように、基部11の上部に設けられている。すなわち多関節アーム40は、軸線Ax1まわりに旋回部41を旋回可能とする関節51を有する。
下アーム42は、軸線Ax1に交差(例えば直交)する軸線Ax2まわりに揺動可能となるように旋回部41に接続されている。すなわち多関節アーム40は、軸線Ax2まわりに下アーム42を揺動可能とする関節52を有する。なお、ここでの交差とは、所謂立体交差のように、互いにねじれの関係にある場合も含む。以下においても同様である。
上アーム43は、軸線Ax1に交差する軸線Ax3まわりに揺動可能となるように、下アーム42の端部に接続されている。すなわち多関節アーム40は、軸線Ax3まわりに上アーム43を揺動可能とする関節53を有する。軸線Ax3は軸線Ax2に平行であってもよい。
上アーム43の先端部は、上アーム43の中心に沿う軸線Ax4まわりに旋回可能となっている。すなわち多関節アーム40は、軸線Ax4まわりに上アーム43の先端部を旋回可能とする関節54を有する。換言すると、上アーム43の先端部側45は、基端部側44に対して旋回可能である。
手首部46は、軸線Ax4に交差(例えば直交)する軸線Ax5まわりに揺動可能となるように上アーム43の先端部に接続されている。すなわち多関節アーム40は、軸線Ax5まわりに手首部46を揺動可能とする関節55を有する。
先端部12は、手首部46の中心に沿う軸線Ax6まわりに旋回可能となるように、手首部46の先端部に接続されている。すなわち多関節アーム40は、軸線Ax6まわりに先端部12を旋回可能とする関節56を有する。
アクチュエータ61,62,63,64,65,66は、例えば電動モータを動力源とし、多関節アーム40の複数の可動部をそれぞれ駆動する。例えばアクチュエータ61は、軸線Ax1まわりに旋回部41を旋回させ、アクチュエータ62は軸線Ax2まわりに下アーム42を揺動させ、アクチュエータ63は軸線Ax3まわりに上アーム43を揺動させ、アクチュエータ64は軸線Ax4まわりに上アーム43の先端部を旋回させ、アクチュエータ65は軸線Ax5まわりに手首部46を揺動させ、アクチュエータ66は軸線Ax6まわりに先端部12を旋回させる。すなわちアクチュエータ61~66は、関節51~56をそれぞれ駆動する。アクチュエータ61~66の駆動力を増大させる減速機、又はベルト、ギア等の動力伝達機構がアクチュエータ61~66と関節51~56との間にそれぞれ配置されていてもよい。この場合、アクチュエータ61~66の駆動力は、当該減速機又は動力伝達機構を介して、関節51~56を駆動する。角度センサ71,72,73,74,75,76は、例えばロータリーエンコーダ又はレゾルバ等であり、関節51,52,53,54,55,56の動作角度をそれぞれ検出する。角度センサ71~76がそれぞれアクチュエータ61~66に配置されている場合には、角度センサ71~76の検出値から、各関節の動力伝達機構の総合減速比を考慮して、関節51~56の動作角度を算出する。
ハンド13は、先端部12に装着されており、ワークを把持する。例えばハンド13は、複数の指部14と、アクチュエータ15とを有する。アクチュエータ15は、例えば電動モータを動力源とし、複数の指部14を互いに近付ける又は遠ざける。以下、複数の指部14を互いに近付けることを「ハンド13を閉じる」といい、複数の指部14を互いに遠ざけることを「ハンド13を開く」という。
なお、上述した多関節ロボット10の構成はあくまで一例である。多関節ロボット10は、基部11に対する先端部12の位置及び姿勢を調節し得る限りいかに構成されていてもよい。例えば多関節ロボット10は、上記6軸の垂直多関節ロボットに冗長軸を追加した7軸のロボットであってもよい。また、多関節ロボット10は所謂スカラー型のロボットであってもよい。
外力センサ20は、多関節ロボット10に作用する外力を検出する。例えば外力センサ20は、多関節ロボット10の少なくとも一つの関節に作用するトルクを検出するトルクセンサを含む。例えば外力センサ20は、多関節ロボット10の関節51,52,53,54,55,56に作用するトルクをそれぞれ検出するトルクセンサ21,22,23,24,25,26を含む。トルクセンサ21,22,23,24,25,26は、例えばひずみゲージ式等のトルクセンサである。
物体センサ30は、多関節ロボット10の周囲に設けられ、多関節ロボット10の周囲に物体が存在するか否かを検出する。物体は、人の体を含む。物体センサ30の具体例としては、赤外線センサ、レーザスキャナ、超音波センサ、カメラ、及びマットスイッチ等のエリアセンサが挙げられる。物体センサ30は、多関節ロボット10に設けられた接触センサであってもよい。また、物体センサ30は、上述のエリアセンサと接触センサとの両方を含んでいてもよい。この場合、多関節ロボット10への物体の接触検知によっても当該物体の存在が検知される。
コントローラ100は、予め設定された動作パターンに従って多関節ロボット10を動作させる。コントローラ100は、多関節ロボット10の制御に際し、多関節ロボット10に作用する外力の検出値に基づいて多関節ロボット10と物体との接触を検知することと、外力の検出値に基づいてワークの重量を検出することとを実行するように構成されている。
図2に示すように、例えばコントローラ100は、機能上の構成(以下、「機能モジュール」という。)として、モデル保持部111と、仕分制御部112と、慣性力算出部113と、慣性力除外部114と、外力算出部115と、接触検知部116と、重量検出部117と、モデル補正部118と、退避制御部119とを有する。モデル保持部111は、多関節ロボット10のモデル情報を記憶する。モデル情報の具体例としては、多関節ロボット10の構造を複数のリンクと複数の関節とで表した場合の各リンクの長さ情報と、各リンク及び各関節の重心位置、重量情報等が挙げられる。
仕分制御部112は、ワークの重量に基づいて、ワークの仕分け作業を多関節ロボット10に実行させる。例えば仕分制御部112は、ワークの重量と、複数の重量クラスごとに予め定められた複数の搬送先とに基づいてワークの搬送先を決定し、決定した搬送先にワークを搬送するように多関節ロボット10を制御する。
慣性力算出部113は、多関節ロボット10のモデルに基づいて、多関節ロボット10の動作に伴う慣性力を算出する。例えば慣性力算出部113は、角度センサ71,72,73,74,75,76と、モデル保持部111が記憶するモデル情報とに基づく動力学演算により、関節51,52,53,54,55,56に作用する慣性トルク(慣性力に起因して生じるトルク)を算出する。
慣性力除外部114は、外力センサ20による検出値から慣性力を除外して外力を算出する。外力とは、多関節ロボット10の外から多関節ロボット10に作用する力である。例えば慣性力除外部114は、トルクセンサ21,22,23,24,25,26が検出するトルクから、慣性力算出部113が算出した慣性トルクを減算して関節51,52,53,54,55,56に作用する外力トルク(外力に起因して生じるトルク)を算出する。
外力算出部115は、外力センサ20の検出値に基づいて、ハンド13(多関節ロボット10のうちワークを把持する部分)に作用する外力を算出する。以下、ハンド13に作用する外力を「ハンド外力」という。例えば外力算出部115は、関節51,52,53,54,55,56の外力トルクの発生要因がハンド外力のみであるという仮定に基づいて、関節51,52,53,54,55,56の外力トルクに対応するハンド外力を算出する。なお、ハンド13の複数の指部14がワークを把持する力は、ハンド13における内力に相当するのでハンド外力に含まれない。
接触検知部116は、外力センサ20の検出値に基づいて多関節ロボット10と物体との接触を検知する。例えば接触検知部116は、関節51,52,53,54,55,56の少なくともいずれかの外力トルクが所定の接触閾値を超えている場合に、多関節ロボット10と物体との接触を検知する。ここでの接触の検知とは、例えば、外力緩和のために多関節ロボット10に退避動作を行わせることを必要とする接触(例えば多関節ロボット10の動作中における物体との衝突)の検知を意味する。
重量検出部117は、外力センサ20の検出値に基づいてワークの重量を検出する。例えば重量検出部117は、関節51,52,53,54,55,56の外力トルクに基づいてワークの重量を検出する。例えば重量検出部117は、外力算出部115が算出するハンド外力がワークの重力に相当するという仮定に基づいてワークの重量を検出する。
モデル補正部118は、ハンド13の重量に重量検出部117による検出結果を加算して、モデル保持部111が記憶する多関節ロボット10のモデルを補正する。退避制御部119は、物体との接触に起因する外力の増加を抑制するように多関節ロボット10を制御する。例えば退避制御部119は、多関節ロボット10の動作を停止させる。退避制御部119は、多関節ロボット10のうち外力が作用する部分を外力の方向に移動させるように多関節ロボット10を制御してもよい。例えば退避制御部119は、外力トルクに従って関節51,52,53,54,55,56を動作させるように多関節ロボット10を制御してもよい。
コントローラ100は、重量の検出結果に基づいて多関節ロボット10の動作を変更するように構成されていてもよい。例えば仕分制御部112は、重量検出部117によるワークの重量の検出結果に基づいて、ワークの仕分け作業を多関節ロボット10に実行させる。例えば仕分制御部112は、重量検出部117によるワークの重量の検出結果と、複数の重量クラスごとに予め定められた複数の搬送先とに基づいてワークの搬送先を変更する。
コントローラ100は、重量の検出結果に基づいてワークの異常を検出するように構成されていてもよい。例えばコントローラ100は、ワーク異常検知部121を更に有する。ワーク異常検知部121は、重量検出部117によるワークの重量の検出結果に基づいてワークの異常を検知する。例えばワーク異常検知部121は、ワークの設計上の重量と、重量検出部117によるワークの重量の検出結果との差が所定の検知閾値を超えている場合にワークの異常を検知する。
コントローラ100は、ハンド13がワークを把持しているか否かに基づいて、接触の検知と重量の検出とのいずれかを選択するように構成されていてもよい。コントローラ100は、ハンド13が把持しているワークが浮上しているか否かに更に基づいて接触の検知と重量の検出とのいずれかを選択するように構成されていてもよい。コントローラ100は、物体センサ30の検出結果に更に基づいて接触の検知と重量の検出とのいずれかを選択するように構成されていてもよい。コントローラ100は、ハンド13に作用する外力の方向に更に基づいて接触の検知と重量の検出とのいずれかを選択するように構成されていてもよい。
例えばコントローラ100は、機能モジュールとして、ステータス保持部122と、把持検知部123と、浮上検知部124と、搬送完了検知部125と、解放検知部126と、ステータス更新部127と、処理選択部128とを更に有する。ステータス保持部122は、多関節ロボット10の動作のステータス情報を記憶する。例えばステータス保持部122は、多関節ロボット10の動作が、予め設定された複数のステータスのいずれであるかを記憶する。複数のステータスは、ハンド13がワークを把持していない「解放」と、ハンド13が把持するワークを多関節ロボット10が浮上させている「浮上」と、ワークが搬送先に到達している「搬送完了」とを含む。
把持検知部123は、例えば仕分制御部112による動作指令に基づいて、ハンド13がワークを把持したことを検知する。例えば把持検知部123は、ハンド13を閉じる動作指令が仕分制御部112により出力されたことに基づいてハンド13がワークを把持したことを検知する。浮上検知部124は、ハンド13が把持しているワークの浮上を多関節ロボット10の動作に基づいて検知する。ここでの浮上は、設置面より上方に位置するワークがハンド13のみによって支持されている状態を意味する。例えば浮上検知部124は、角度センサ71,72,73,74,75,76による検出値とモデル保持部111が記憶するモデルとに基づく順運動学演算によりハンド13の上昇及びワークの浮上を検知する。
なお、人協働型のシステムにおいては、設置面より上方において人と多関節ロボット10との間でワークの受け渡しが行われる場合もあり得る。この場合、浮上検知部124は、設置面より上方においてハンド13がワークを把持したことと、ハンド13に作用する下向きの外力の増加とに基づいてワークの浮上を検知することが可能である。
搬送完了検知部125は、多関節ロボット10によるワークの搬送完了を検知する。例えば搬送完了検知部125は、角度センサ71,72,73,74,75,76による検出値とモデル保持部111が記憶するモデルとに基づく順運動学演算によりワークが搬送先に到達したことを検知する。
解放検知部126は、例えば仕分制御部112による動作指令に基づいて、ハンド13がワークを解放したことを検知する。例えば解放検知部126は、ハンド13を開く動作指令が仕分制御部112により出力されたことに基づいてハンド13がワークを解放したことを検知する。
ステータス更新部127は、把持検知部123、浮上検知部124、搬送完了検知部125及び解放検知部126による検知結果に基づいて、ステータス保持部122が記憶するステータスを更新する。例えばステータス更新部127は、ハンド13によるワークの把持を把持検知部123が検知した場合に、ステータスを「解放」から「把持」に変更する。また、ステータス更新部127は、ワークの浮上を浮上検知部124が検知した場合に、ステータスを「把持」から「浮上」に変更する。また、ステータス更新部127は、搬送先へのワークの到達を搬送完了検知部125が検知した場合に、ステータスを「浮上」から「搬送完了」に変更する。また、ステータス更新部127は、ワークの解放を解放検知部126が検知した場合に、ステータスを「搬送完了」から「解放」に変更する。
処理選択部128は、把持検知部123による検知結果に基づいて、接触検知部116による接触の検知と重量検出部117による重量の検出とのいずれかを選択する。処理選択部128は、浮上検知部124による検知結果に更に基づいて接触検知部116による接触の検知と重量検出部117による重量の検出とのいずれかを選択してもよい。処理選択部128は、物体センサ30の検出結果に更に基づいて接触検知部116による接触の検知と重量検出部117による重量の検出とのいずれかを選択してもよい。処理選択部128は、外力算出部115により算出されるハンド外力の方向に更に基づいて接触検知部116による接触の検知と重量検出部117による重量の検出とのいずれかを選択してもよい。
例えば処理選択部128は、ステータス保持部122が記憶するステータスと、物体センサ30の検出結果とに基づいて、接触検知部116による接触の検知と重量検出部117による重量の検出とのいずれかを選択してもよい。なお、ここでの選択は、接触の検知と重量の検出とのいずれか一方を実行させて他方を実行させないことと、接触の検知と重量の検出との両方を実行させていずれか一方の結果を選択することとの両方を含む。
図3に示すように、コントローラ100は、回路190を備える。回路190は、少なくとも一つのプロセッサ191と、メモリ192と、ストレージ193と、入出力ポート194と、ドライバ195とを含む。ストレージ193は、コンピュータによって読み取り可能な不揮発型の記憶媒体(例えばフラッシュメモリ)である。ストレージ193は、予め設定された動作パターンに従って多関節ロボット10を動作させることと、多関節ロボット10に作用する外力の検出値に基づいて多関節ロボット10と物体との接触を検知することと、外力の検出値に基づいてワークの重量を検出することとをコントローラ100に実行させるためのプログラムを記憶している。例えばストレージ193は、コントローラ100により上述した各機能モジュールを構成するためのプログラムを記憶している。
メモリ192は、ストレージ193からロードしたプログラム及びプロセッサ191による演算結果等を一時的に記憶する。プロセッサ191は、メモリ192と協働して上記プログラムを実行することで、コントローラ100の各機能モジュールを構成する。入出力ポート194は、プロセッサ191からの指令に応じてトルクセンサ21~26、物体センサ30及び角度センサ71~76からの信号を取得する。ドライバ195は、プロセッサ191からの指令に応じてアクチュエータ61~66に駆動電力を出力する。コントローラ100は、必ずしもプログラムにより各構成が構成されるものに限られない。コントローラ100の少なくとも一部の機能モジュール、例えば通信を制御する機能モジュールが、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により構成されていてもよい。
〔制御手順〕
続いて、ロボットの制御方法の一例として、コントローラ100が実行する制御手順を説明する。この制御手順は、予め設定された動作パターンに従って多関節ロボット10を動作させることと、多関節ロボット10に作用する外力の検出値に基づいて多関節ロボット10と物体との接触を検知することと、外力の検出値に基づいてワークの重量を検出することとを含む。
例えばコントローラ100は、動作パターンに基づく目標位置に多関節ロボット10を追従させることを所定の制御周期で繰り返す。例えば図4に示すように、コントローラ100は、まずステップS01,S02を実行する。ステップS01では、仕分制御部112が、予め設定された動作パターンに基づいて、最初の目標位置を設定する。目標位置は、例えば関節51,52,53,54,55,56の目標動作角度を含む。ステップS02では、ステータス更新部127が、ステータス保持部122のステータスを「解放」に変更する。
次に、コントローラ100はステップS03,S04を実行する。ステップS03では、仕分制御部112が、目標位置と、多関節ロボット10の位置との偏差を算出する。例えば、仕分制御部112は、関節51,52,53,54,55,56の目標動作角度と、角度センサ71,72,73,74,75,76による検出値との偏差を算出する。ステップS04では、仕分制御部112が、多関節ロボット10を目標位置に追従させる。例えば、仕分制御部112は、関節51,52,53,54,55,56の動作角度を目標動作角度に追従させる。より具体的に、例えば仕分制御部112は、ステップS03で算出した偏差に比例演算、比例・積分演算、又は比例・積分・微分演算を施して得られる動作指令に基づいてアクチュエータ61,62,63,64,65,66を動作させる。
次に、コントローラ100はステップS05を実行する。ステップS05では、慣性力算出部113が、多関節ロボット10のモデルに基づいて、多関節ロボット10の動作に伴う慣性力を算出し、慣性力除外部114が、外力センサ20による検出値から慣性力を除外して外力を算出する。また、ステップS05では、処理選択部128が、慣性力除外部114による算出結果(例えば上記外力トルク)に基づいて、多関節ロボット10に作用する外力があるかを確認する。例えば処理選択部128は、慣性力除外部114により算出結果が所定の検出閾値を超えている場合に、多関節ロボット10に作用する外力があると判定してもよい。
ステップS05において多関節ロボット10に作用する外力があると判定した場合、コントローラ100はステップS06を実行する。ステップS06は、外力に応じて接触の検知又はワークの重量の検出等を実行することを含む。ステップS06の具体的内容については後述する。
次に、コントローラ100はステップS07を実行する。ステップS05において多関節ロボット10に作用する外力がないと判定した場合、コントローラ100はステップS06を実行することなくステップS07を実行する。ステップS07では、仕分制御部112が、動作パターンで規定された全ての動作が完了したか否かを確認する。
ステップS07において全ての動作が完了していないと判定した場合、コントローラはステップS08,S09,S11を実行する。ステップS08では、仕分制御部112が動作パターンに基づいて次の目標位置を設定する。ステップS09では、ステータス更新部127は、把持検知部123、浮上検知部124、搬送完了検知部125及び解放検知部126による検知結果に基づいて、ステータス保持部122が記憶するステータスを更新する。ステップS09の具体的内容については後述する。ステップS11では、仕分制御部112が制御周期の経過を待機する。
その後、コントローラ100は処理をステップS03に戻す。以後、動作パターンで規定された全ての動作が完了するまでは、必要に応じ外力対応処理を実行しながら、多関節ロボット10の制御が制御周期で繰り返される。ステップS07において全ての動作が完了していると判定した場合、コントローラ100は多関節ロボット10の制御を完了する。
図5及び図6は、ステップS06の外力対応処理手順を例示するフローチャートである。図5に示すように、コントローラ100は、まずステップS21を実行する。ステップS21では、処理選択部128が、ステータス保持部122が記憶するステータスが「浮上」であるか否かを確認する。
ステップS21においてステータスが「浮上」であると判定した場合、コントローラ100はステップS22,S23を実行する。ステップS22では、外力算出部115が外力センサ20の検出値に基づいてハンド外力を算出する。ステップS23では、処理選択部128が、物体センサ30による検出結果に基づいて、多関節ロボット10の周辺に物体が存在しないかを確認する。
ステップS23において多関節ロボット10の周辺に物体が存在しないと判定した場合、コントローラ100はステップS24,S25,S26,S27を実行する。ステップS24では、重量検出部117が、外力算出部115が算出したハンド外力をワークの重量として検出する。ステップS25では、モデル補正部118が、ハンド13の重量に重量検出部117による検出結果を加算して、モデル保持部111が記憶する多関節ロボット10のモデルを補正する。ステップS26では、ワーク異常検知部121が、重量検出部117によるワークの重量の検出結果に基づいてワークの異常の有無を確認する。ワークの異常を検知した場合、ワーク異常検知部121はワークの異常をモニタ等に表示する。ステップS27では、仕分制御部112が、重量検出部117による検出結果と、複数の重量クラスごとに予め定められた複数の搬送先とに基づいてワークの搬送先を決定する。これにより、ワークの仕分けが実行されることとなる。
ステップS23において多関節ロボット10の周辺に物体が存在すると判定した場合、コントローラはステップS28を実行する。ステップS28では、処理選択部128が、ハンド外力が鉛直下向きであるかを確認する。例えば処理選択部128は、ハンド外力が下向きであり、ハンド外力の水平方向成分が実質的にゼロであるかを確認する。実質的にゼロであるとは、誤差として無視可能な値であることを意味する。以下においても同様である。
ステップS28においてハンド外力が鉛直下向きであると判定した場合、コントローラ100は上記ステップS24,S25,S26,S27を実行する。ステップS28においてハンド外力が鉛直下向きでないと判定した場合、コントローラ100はステップS31,S32を実行する。ステップS31では、接触検知部116が、多関節ロボット10と物体との接触を検知する。ステップS32では、退避制御部119が、物体との接触に起因する外力の増加を抑制するように多関節ロボット10を制御する。
ステップS21においてステータスが「浮上」でないと判定した場合、図6に示すようにコントローラ100はステップS41を実行する。ステップS41では、ステータス保持部122が記憶するステータスが「搬送完了」であるか否かを処理選択部128が確認する。
ステップS41においてステータスが「搬送完了」であると判定した場合、コントローラ100はステップS42,S43を実行する。ステップS42では、外力算出部115が外力センサ20の検出値に基づいてハンド外力を算出する。ステップS43では、処理選択部128が、物体センサ30による検出結果に基づいて、多関節ロボット10の周辺に物体が存在しないかを確認する。
ステップS43において多関節ロボット10の周辺に物体が存在しないと判定した場合、コントローラ100はステップS44を実行する。ステップS44では、仕分制御部112が搬送先へのワークの載置を検知する。
ステップS43において多関節ロボット10の周辺に物体が存在すると判定した場合、コントローラ100はステップS45を実行する。ステップS45では、処理選択部128が、ハンド外力が鉛直上向きであるかを確認する。例えば処理選択部128は、ハンド外力が上向きであり、ハンド外力の水平方向成分が実質的にゼロであるかを確認する。ステップS45においてハンド外力が鉛直上向きであると判定した場合、コントローラ100は上記ステップS44を実行する。
ステップS41においてステータスが「搬送完了」でないと判定した場合、及びステップS45においてハンド外力が鉛直上向きでないと判定した場合、コントローラ100はステップS46,S47を実行する。ステップS46では、接触検知部116が多関節ロボット10と物体との接触を検知する。ステップS47では、退避制御部119が、物体との接触に起因する外力の増加を抑制するように多関節ロボット10を制御する。以上で外力対応処理手順が完了する。
図7は、ステップS09のステータス更新手順を例示するフローチャートである。図7に示すように、コントローラ100は、まずステップS51を実行する。ステップS51では、ステータス保持部122が記憶するステータスが「解放」であるか否かをステータス更新部127が確認する。
ステップS51においてステータスが「解放」であると判定した場合、コントローラ100はステップS52を実行する。ステップS52では、ハンド13がワークを把持したか否かを把持検知部123が検知する。ステップS52においてハンド13がワークを把持したと判定した場合、コントローラ100はステップS53を実行する。ステップS53では、ステータス保持部122が記憶するステータスをステータス更新部127が「解放」から「把持」に変更する。ステップS52においてハンド13がワークを把持していないと判定した場合、コントローラ100はステップS53を実行しない。
ステップS51においてステータスが「解放」でないと判定した場合、コントローラ100はステップS54を実行する。ステップS54では、ステータス保持部122が記憶するステータスが「把持」であるか否かをステータス更新部127が確認する。
ステップS54においてステータスが「把持」であると判定した場合、コントローラ100はステップS55を実行する。ステップS55では、ハンド13が把持しているワークが浮上しているか否かを浮上検知部124が検知する。ステップS55においてワークが浮上していると判定した場合、コントローラ100はステップS56を実行する。ステップS56では、ステータス保持部122が記憶するステータスをステータス更新部127が「把持」から「浮上」に変更する。ステップS55においてワークが浮上していないと判定した場合、コントローラ100はステップS56を実行しない。
ステップS54においてステータスが「把持」でないと判定した場合、コントローラ100はステップS57を実行する。ステップS57では、ステータス保持部122が記憶するステータスが「浮上」であるか否かをステータス更新部127が確認する。
ステップS57においてステータスが「浮上」であると判定した場合、コントローラ100はステップS58を実行する。ステップS58では、ワークが搬送先に到達したか否かを搬送完了検知部125が検知する。ステップS58においてワークが搬送先に到達したと判定した場合、コントローラ100はステップS59を実行する。ステップS59では、ステータス保持部122が記憶するステータスをステータス更新部127が「浮上」から「搬送完了」に変更する。ステップS58においてワークが搬送先に到達していないと判定した場合、コントローラ100はステップS59を実行しない。
ステップS57においてステータスが「浮上」でないと判定した場合、コントローラ100はステップS61を実行する。ステップS61では、ハンド13がワークを解放したか否かを解放検知部126が検知する。ステップS61においてハンド13がワークを解放したと判定した場合、コントローラ100はステップS62,S63を実行する。ステップS62では、ステータス保持部122が記憶するステータスをステータス更新部127が「搬送完了」から「解放」に変更する。ステップS63では、モデル保持部111が記憶する多関節ロボット10のモデルをモデル補正部118が補正前に戻す。すなわちモデル補正部118は、ハンド13の重量からワークの重量を減算する。ステップS61においてハンド13がワークを解放していないと判定した場合、コントローラ100はステップS62,S63を実行しない。以上でステータス更新手順が完了する。
〔本実施形態の効果〕
以上に説明したように、ロボットシステム1は、ワークを把持して搬送する多関節ロボット10と、多関節ロボット10に作用する外力を検出する外力センサ20と、外力センサ20の検出値に基づいて多関節ロボット10と物体との接触を検知する接触検知部116と、外力センサ20の検出値に基づいてワークの重量を検出する重量検出部117と、を備える。
このロボットシステム1によれば、外力情報を、多関節ロボット10と周辺物体との接触の検知と、ワークの重量の検出とに活用することができる。従って、多関節ロボット10に作用する外力の情報をより有効に活用することができる。
ロボットシステム1は、多関節ロボット10がワークを把持していることを検知する把持検知部123と、把持検知部123による検知結果に基づいて、接触検知部116による接触の検知と重量検出部117による重量の検出とのいずれかを選択する処理選択部128と、を更に備えていてもよい。
多関節ロボット10がワークを把持していない場合、多関節ロボット10に作用する外力がワークの重量に起因している可能性は低い。これに比べ、多関節ロボット10がワークを把持している場合、多関節ロボット10に作用する外力がワークの重量に起因している可能性は高い。すなわち、多関節ロボット10がワークを把持しているか否かは、多関節ロボット10に作用する外力がワークの重量に起因する確率に影響する。このため、把持検知部123による検出結果に基づくことで、接触検知部116による接触の検知と、重量検出部117による重量の検出とを高い信頼性で選択することができる。従って、多関節ロボット10に作用する外力の情報を更に有効に活用することができる。
ロボットシステム1は、多関節ロボット10の動作に基づいて多関節ロボット10が把持しているワークの浮上を検知する浮上検知部124を更に備え、処理選択部128は、浮上検知部124による検知結果に更に基づいて接触検知部116による接触の検知と重量検出部117による重量の検出とのいずれかを選択してもよい。
多関節ロボット10が把持しているワークを浮上させている場合、多関節ロボット10に作用する外力がワークの重量に起因している可能性はより高い。すなわち、多関節ロボット10がワークを浮上させているか否かは、多関節ロボット10に作用する外力がワークの重量に起因する確率に更に影響する。このため、浮上検知部124による検出結果に更に基づくことで、接触検知部116による接触の検知と、重量検出部117による重量の検出とをより高い信頼性で選択することができる。従って、多関節ロボット10に作用する外力の情報を更に有効に活用することができる。
ロボットシステム1は、多関節ロボット10の周囲に物体が存在するか否かを検出する物体センサ30を更に備え、処理選択部128は、物体センサ30の検出結果に更に基づいて接触検知部116による接触の検知と重量検出部117による重量の検出とのいずれかを選択してもよい。
多関節ロボット10の周囲に物体が存在しない場合、多関節ロボット10に作用する外力が物体との接触に起因している可能性は低い。これに比べ、多関節ロボット10の周囲に物体が存在する場合、多関節ロボット10に作用する外力が物体との接触に起因する可能性は高い。すなわち、多関節ロボット10の周囲に物体が存在するか否かは、多関節ロボット10に作用する外力が物体との接触に起因する確率に影響する。このため、物体センサ30による検出結果に更に基づくことで、接触検知部116による接触の検知と、重量検出部117による重量の検出とをより高い信頼性で選択することができる。従って、多関節ロボット10に作用する外力の情報を更に有効に活用することができる。
ロボットシステム1は、外力センサ20の検出値に基づいて、多関節ロボット10のうちワークを把持する部分に作用する外力を算出する外力算出部115を更に備え、処理選択部128は、外力算出部115により算出される外力の方向に更に基づいて接触検知部116による接触の検知と重量検出部117による重量の検出とのいずれかを選択してもよい。
多関節ロボット10のうちワークを把持する部分(以下、「把持部」という。)に作用する外力において、鉛直下方に向かう成分の割合が高くなるにつれて、多関節ロボット10に作用する外力がワークの重量に起因している可能性が高くなる。すなわち、把持部に作用する外力の向きは、多関節ロボット10に作用する外力がワークの重量に起因する確率に影響する。このため、外力算出部115により算出される力の方向に更に基づくことで、接触検知部116による接触の検知と、重量検出部117による重量の検出とをより高い信頼性で選択することができる。従って、多関節ロボット10に作用する外力の情報を更に有効に活用することができる。
外力センサ20は、多関節ロボット10の少なくとも一つの関節51~56に作用するトルクを検出するトルクセンサ21~26を含んでいてもよい。
ロボットシステム1は、多関節ロボット10のモデルに基づいて、多関節ロボット10の動作に伴う慣性力を算出する慣性力算出部113と、多関節ロボット10のうちワークを把持する部分の重量に重量検出部117による検出結果を加算してモデルを補正するモデル補正部118と、を更に備え、接触検知部116は、モデル補正部118により補正されたモデルに基づき慣性力算出部113が算出した慣性力と、外力センサ20の検出値とに基づいて多関節ロボット10と物体との接触を検知してもよい。この場合、把持部の重量に重量検出部117による検出結果を加算してモデルを補正することで、慣性力算出部113が算出する慣性力の精度が高まる。これにより、慣性力に起因する成分を高い精度で外力から取り除くことができる。このため、外力に基づく接触検知の精度を更に向上させることができる。従って、多関節ロボット10に作用する外力の情報を更に有効に活用することができる。
ロボットシステム1は、重量検出部117による重量の検出結果に基づいて、ワークの仕分け作業を多関節ロボット10に実行させる仕分制御部112を更に備えていてもよい。この場合、重量検出部117による検出結果を更に有効に活用することができる。
ロボットシステム1は、重量検出部117による重量の検出結果に基づいてワークの異常を検知するワーク異常検知部121を更に備えていてもよい。この場合、重量検出部117による検出結果を更に有効に活用することができる。
以上、実施形態について説明したが、本発明は必ずしも上述した形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である。例えば、トルクセンサ21,22,23,24,25,26のいずれかを省略してもよい。例えば外力センサ20は、トルクセンサ21,22,23を含み、トルクセンサ24,25,26を含んでいなくてもよい。また、外力センサ20は、トルクセンサ21,22,23,25を含み、トルクセンサ24,26を含んでいなくてもよい。
1…ロボットシステム、10…多関節ロボット、20…外力センサ、21,22,23,24,25,26…トルクセンサ、30…物体センサ、51,52,53,54,55,56…関節、112…仕分制御部、113…慣性力算出部、115…外力算出部、116…接触検知部、117…重量検出部、118…モデル補正部、121…ワーク異常検知部、123…把持検知部、124…浮上検知部、128…処理選択部。

Claims (9)

  1. ワークを把持して搬送する多関節ロボットと、
    前記多関節ロボットに作用する外力を検出する外力センサと
    前記外力センサの検出値に基づいて前記ワークの重量を検出する重量検出部と、
    前記多関節ロボットのうち前記ワークを把持する部分の重量に前記重量検出部による検出結果を加算して前記多関節ロボットのモデルを補正するモデル補正部と、
    前記モデルに基づいて、前記多関節ロボットの動作に伴う慣性力を算出する慣性力算出部と、
    前記モデル補正部により補正された前記モデルに基づき前記慣性力算出部が算出した慣性力と、前記外力センサの検出値とに基づいて前記多関節ロボットと物体との接触を検知する接触検知部と、
    を備えるロボットシステム。
  2. 前記多関節ロボットが前記ワークを把持していることを検知する把持検知部と、
    前記把持検知部による検知結果に基づいて、前記接触検知部による接触の検知と前記重量検出部による重量の検出とのいずれかを選択する処理選択部と、を更に備える請求項1記載のロボットシステム。
  3. 前記多関節ロボットの動作に基づいて前記多関節ロボットが把持している前記ワークの浮上を検知する浮上検知部を更に備え、
    前記処理選択部は、前記浮上検知部による検知結果に更に基づいて前記接触検知部による接触の検知と前記重量検出部による重量の検出とのいずれかを選択する、請求項2記載のロボットシステム。
  4. 前記多関節ロボットの周囲に物体が存在するか否かを検出する物体センサを更に備え、
    前記処理選択部は、前記物体センサの検出結果に更に基づいて前記接触検知部による接触の検知と前記重量検出部による重量の検出とのいずれかを選択する、請求項2又は3記載のロボットシステム。
  5. 前記外力センサの検出値に基づいて、前記多関節ロボットのうち前記ワークを把持する部分に作用する外力を算出する外力算出部を更に備え、
    前記処理選択部は、前記外力算出部により算出される前記外力の方向に更に基づいて前記接触検知部による接触の検知と前記重量検出部による重量の検出とのいずれかを選択する、請求項2~4のいずれか一項記載のロボットシステム。
  6. 外力センサは、多関節ロボットの少なくとも一つの関節に作用するトルクを検出するトルクセンサを含む、請求項1~5のいずれか一項記載のロボットシステム。
  7. 前記重量検出部による重量の検出結果に基づいて、前記ワークの仕分け作業を前記多関節ロボットに実行させる仕分制御部を更に備える、請求項1~のいずれか一項記載のロボットシステム。
  8. 前記重量検出部による重量の検出結果に基づいて前記ワークの異常を検知するワーク異常検知部を更に備える、請求項1~のいずれか一項記載のロボットシステム。
  9. ワークを把持して搬送する多関節ロボットに作用する外力の検出値に基づいて前記ワークの重量を検出することと、
    前記多関節ロボットのうち前記ワークを把持する部分の重量に前記ワークの重量検出結果を加算して前記多関節ロボットのモデルを補正することと、
    補正した前記モデルに基づいて、前記多関節ロボットの動作に伴う慣性力を算出することと、
    補正した前記モデルに基づき算出した慣性力と、前記外力の検出値とに基づいて前記多関節ロボットと物体との接触を検知することと、を含むロボットの制御方法。
JP2018235558A 2018-12-17 2018-12-17 ロボットシステム及びロボットの制御方法 Active JP7135823B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018235558A JP7135823B2 (ja) 2018-12-17 2018-12-17 ロボットシステム及びロボットの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018235558A JP7135823B2 (ja) 2018-12-17 2018-12-17 ロボットシステム及びロボットの制御方法

Publications (2)

Publication Number Publication Date
JP2020097069A JP2020097069A (ja) 2020-06-25
JP7135823B2 true JP7135823B2 (ja) 2022-09-13

Family

ID=71105599

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018235558A Active JP7135823B2 (ja) 2018-12-17 2018-12-17 ロボットシステム及びロボットの制御方法

Country Status (1)

Country Link
JP (1) JP7135823B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008253132A (ja) 1999-05-20 2008-10-16 Yaskawa Electric Corp サーボモータおよび多関節ロボットの異常負荷検出制御方法
JP2013052486A (ja) 2011-09-06 2013-03-21 Seiko Epson Corp ロボットおよびロボット制御方法
JP2017074660A (ja) 2015-10-16 2017-04-20 ファナック株式会社 人と協働して物体を運搬するロボットを制御するロボット制御装置、ロボットシステム、およびその方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05318363A (ja) * 1992-05-21 1993-12-03 Sanyo Electric Co Ltd ロボットの制御方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008253132A (ja) 1999-05-20 2008-10-16 Yaskawa Electric Corp サーボモータおよび多関節ロボットの異常負荷検出制御方法
JP2013052486A (ja) 2011-09-06 2013-03-21 Seiko Epson Corp ロボットおよびロボット制御方法
JP2017074660A (ja) 2015-10-16 2017-04-20 ファナック株式会社 人と協働して物体を運搬するロボットを制御するロボット制御装置、ロボットシステム、およびその方法

Also Published As

Publication number Publication date
JP2020097069A (ja) 2020-06-25

Similar Documents

Publication Publication Date Title
JP4508263B2 (ja) パワーアシスト装置およびその制御方法
JP5765355B2 (ja) ロボットピッキングシステム及び被加工物の製造方法
US8326454B2 (en) Power assist apparatus, and its control method
US8509950B2 (en) Control apparatus and control method for robot, robot, and control program therefor
US20100152896A1 (en) Robot, controlling device and controlling method for robot, and controlling program for robot-controlling device
JP2010142910A5 (ja)
WO2008004487A1 (fr) Appareil et procédé de commande de bras robotisé, robot et programme de commande de bras robotisé
JPWO2017033376A1 (ja) 産業用ロボットおよびその運転方法
DK2492062T3 (en) industrial Robot
JP6332018B2 (ja) 搬送ロボット、及びその制御方法
JP2010069584A (ja) マニピュレータの制御装置および制御方法
EP3546137B1 (en) Robot system and method for controlling robot
JP2009018380A (ja) ロボット、ロボットの制御方法、及びロボットの制御システム
WO2016147592A1 (ja) ロボット、ロボットの制御方法、ワークの取付方法及びワークの搬送方法
JP2007168053A (ja) 垂直多関節型ロボットのティーチング方法および産業用ロボット装置
WO2018066601A1 (ja) ロボットシステム及びその運転方法
JP2017196681A (ja) 産業用ロボット
JP2009012132A (ja) 多関節型ロボットおよびワーク受け渡し方法
JP7135823B2 (ja) ロボットシステム及びロボットの制御方法
KR20220145387A (ko) 로봇 장치
JP2010247309A (ja) ロボットアーム、及びその制御方法
JP2009034755A (ja) パワーアシスト装置及びその制御方法
JP6881525B2 (ja) ロボットシステム、コントローラ及び制御方法
CN110871449B (zh) 机械手
JP7483597B2 (ja) 装着型ロボット

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220526

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220815

R150 Certificate of patent or registration of utility model

Ref document number: 7135823

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150