JP2023135018A - ロボットシステム、制御方法および制御プログラム - Google Patents

ロボットシステム、制御方法および制御プログラム Download PDF

Info

Publication number
JP2023135018A
JP2023135018A JP2022040015A JP2022040015A JP2023135018A JP 2023135018 A JP2023135018 A JP 2023135018A JP 2022040015 A JP2022040015 A JP 2022040015A JP 2022040015 A JP2022040015 A JP 2022040015A JP 2023135018 A JP2023135018 A JP 2023135018A
Authority
JP
Japan
Prior art keywords
screw
robot
driver bit
moment
insertion depth
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.)
Pending
Application number
JP2022040015A
Other languages
English (en)
Inventor
智強 劉
Chikyo Ryu
祐貴 土橋
Yuki Dobashi
正大 村井
Masahiro Murai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2022040015A priority Critical patent/JP2023135018A/ja
Publication of JP2023135018A publication Critical patent/JP2023135018A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

【課題】ロボットに対するねじ締付の設定に関する手間を軽減する。【解決手段】ロボットシステム1は、ねじ50を回転させるためのドライバビット20を装着可能なロボット10と、ドライバビット20に発生する荷重を検出するセンサ19と、ロボット10を制御するロボットコントローラ100とを備える。ロボットコントローラ100は、ドライバビット20から与えられるトルクにより、ねじ50が対象物70のねじ穴72に挿入された状態で回転するように、ロボット10に指令を与え、センサ19によって検出されるドライバビット20の押し付け方向のモーメント、および、ねじ50のリードに基づいて、ねじ50のねじ穴72への挿入深さを推定する。【選択図】図1

Description

本発明は、ロボットシステム、制御方法および制御プログラムに関する。
産業オートメーション(Industrial Automation)の分野において、様々な用途にロボットが利用されている。このような用途の一つとして、ねじの締め付けなどの作業がある。
例えば、特開2012-96296号公報(特許文献1)は、機器の組立工程に利用されるねじ締付装置を開示する。ねじ締付装置は、ドライバビットにかかる外力を検出するセンサの出力に基づいて、ドライバビットの位置および、ねじ部材に与えられる推力を制御する。
特開2012-96296号公報
ねじ部材を対象物に締め付けるための条件を決定するために、ねじ部材の材質、ねじ部材の径など、多くのパラメータを考慮する必要がある。したがって、ねじ部材の種類ごとに、締め付けのための条件出しが必要となる。しかし、最適な締結条件を得るために、装置の動作に関する多くの項目を設定する必要がある。このため、装置にねじ締付動作を設定するためには、一般的に多くの手間が必要となる。
本発明は、ロボットに対するねじ締付の設定に関する手間を軽減できるソリューションを提供する。
本開示の一例によれば、ロボットシステムは、ねじを回転させるためのドライバビットを装着可能なロボットと、ドライバビットに発生する荷重を検出するセンサと、ロボットを制御するロボットコントローラとを備える。ロボットコントローラは、ドライバビットから与えられるトルクにより、ねじが対象物のねじ穴に挿入された状態で回転するように、ロボットに指令を与え、センサによって検出されるドライバビットの押し付け方向のモーメント、および、ねじのリードに基づいて、ねじのねじ穴への挿入深さを推定する。
上記の開示によれば、センサによって検出される値(ドライバビットの押し付け方向のモーメント)を用いて、ねじの回転数を推定することができる。ねじの長さおよびリードは既知であるので、ねじの回転数およびリードから挿入深さを推定することができる。したがって、ロボットに対するねじ締付の設定に関する手間を軽減できる。
上述の開示において、ロボットコントローラは、所定の周期ごとに、センサの出力から前記モーメントの周波数を求めて、モーメントの周波数をねじの回転数と推定する。
センサの出力、すなわちドライバビットの押し付け方向のモーメントの周波数を、ねじの回転数と推定することにより、推定したねじの回転数およびリードからねじの挿入深さを推定することができる。
上述の開示において、所定の周期は、ロボットシステムの制御周期と同期する。
計算の周期を、ロボットシステムの制御周期と同期させることにより、ねじの挿入深さの推定とロボットシステムの制御とを効果的に結びつけることができる。
上述の開示において、ロボットコントローラは、ねじのねじ穴への挿入深さがねじの首下長さに達したか否かを判定して、挿入深さがねじの首下長さに達した場合には、ドライバビットに目標トルクを与えてねじを締結させる。
ねじのねじ穴への挿入深さを推定することにより、挿入深さがねじの首下長さに達したか否かが判断される。ねじの挿入深さがねじの首下長さに達した状態とは、ねじの頭が着座した状態である。この状態でドライバビットに目標トルクを与えることにより、ねじを確実に締結させることができる。また、挿入深さがねじの首下長さに達したかどうかを判定することにより、ねじの頭が着座した状態か否かの判定が容易となる。
上述の開示において、ロボットコントローラは、ねじの締結の完了の目標時間、リードおよび首下長さを含むねじのパラメータ、および目標トルクの値を受け付けて、推定した挿入深さと首下長さとの比較から、目標時間内にねじの締結が完了するように、ドライバビットの回転数を制御する。
ねじをねじ穴に挿入する間のドライバビットの回転数を調整することにより、目標時間内にねじ締めを完了させることができる。
上述の開示において、ロボットコントローラは、センサによって検出されるドライバビットの押し付け方向のモーメントに含まれるオフセットを補償して、ねじ穴の軸方向のモーメントを求め、ねじ穴の軸方向のモーメントを、ねじの挿入深さの推定に使用する。
センサの配置の都合等の理由により、センサがドライバビットの押し付け方向に無い場合がある。このような場合に、センサによって検出される、ドライバビットの押し付け方向のモーメントにはオフセット成分が含まれる。このオフセットを補償することにより、ドライバビットの押し付け方向のモーメントの正確な値を求めることができる。したがって、ドライバビットの回転数も正確に推定することができるので、ねじの挿入深さを正確に推定することができる。
本開示の一例によれば、ねじを対象物に締結させるためのロボットをロボットコントローラによって制御する制御方法であって、ロボットには、ねじと係合するためのドライバビットと、ドライバビットに発生する荷重を検出するセンサとが装着されており、制御方法は、ねじが対象物のねじ穴に挿入された状態で回転するように、ドライバビットにトルクを与えるステップと、センサによって検出されるドライバビットの押し付け方向のモーメント、および、ねじのリードに基づいて、ねじのねじ穴への挿入深さを推定するステップとを備える。
上記の開示によれば、センサによって検出される値(ドライバビットの押し付け方向のモーメント)を用いて、ねじの回転数を推定することができる。ねじの長さおよびリードは既知であるので、ねじの回転数およびリードから挿入深さを推定することができる。したがって、ロボットに対するねじ締付の設定に関する手間を軽減できる。
上述の開示において、推定するステップは、所定の周期ごとに、センサの出力から前記モーメントの周波数を求めて、モーメントの周波数をねじの回転数と推定するステップを含む。
センサの出力、すなわちドライバビットの押し付け方向のモーメントの周波数を、ねじの回転数と推定することにより、推定したねじの回転数およびリードからねじの挿入深さを推定することができる。
上述の開示において、所定の周期は、ロボットシステムの制御周期と同期する。
計算の周期を、ロボットシステムの制御周期と同期させることにより、ねじの挿入深さの推定とロボットシステムの制御とを効果的に結びつけることができる。
上述の開示において、制御方法は、ねじのねじ穴への挿入深さがねじの首下長さに達したか否かを判定するステップと、挿入深さがねじの首下長さに達した場合には、ドライバビットに目標トルクを与えてねじを締結させるステップとをさらに備える。
ねじのねじ穴への挿入深さを推定することにより、挿入深さがねじの首下長さに達したか否かが判断される。ねじの挿入深さがねじの首下長さに達した状態とは、ねじの頭が着座した状態である。この状態でドライバビットに目標トルクを与えることにより、ねじを確実に締結させることができる。また、挿入深さがねじの首下長さに達したかどうかを判定することにより、ねじの頭が着座した状態か否かの判定が容易となる。
上述の開示において、ねじの締結の完了の目標時間、リードおよび首下長さを含むねじのパラメータ、および目標トルクの値を受け付けるステップと、推定した挿入深さと首下長さとの比較から、目標時間内にねじの締結が完了するように、ドライバビットの回転数を制御するステップとをさらに備える。
ねじをねじ穴に挿入する間のドライバビットの回転数を調整することにより、目標時間内にねじ締めを完了させることができる。
制御方法は、センサによって検出されるドライバビットの押し付け方向のモーメントに含まれるオフセットを補償して、ねじ穴の軸方向のモーメントを求めるステップをさらに備え、推定するステップにおいて、ねじ穴の軸方向のモーメントを、ねじの挿入深さの推定に使用する。
オフセットを補償することにより、ドライバビットの押し付け方向のモーメントの正確な値を求めることができる。したがって、ドライバビットの回転数も正確に推定することができるので、ねじの挿入深さを正確に推定することができる。
本開示の一例によれば、ねじを前記対象物に締結させるためのロボットを制御するための制御プログラムは、コンピュータに、ねじが対象物のねじ穴に挿入された状態で回転するように、ロボットに装着されたドライバビットにトルクを与えるステップと、ドライバビットに発生する荷重を検出するセンサによって検出されるドライバビットの押し付け方向のモーメント、および、ねじのリードに基づいて、ねじのねじ穴への挿入深さを推定するステップとを含む制御方法を実行させる。
上記の開示によれば、センサによって検出される値(ドライバビットの押し付け方向のモーメント)を用いて、ねじの回転数を推定することができる。ねじの長さおよびリードは既知であるので、ねじの回転数およびリードから挿入深さを推定することができる。したがって、ロボットに対するねじ締付の設定に関する手間を軽減できる。
本発明によれば、ロボットに対するねじ締付の設定に関する手間を軽減できる。
本実施の形態に係るロボットシステムの構成例を示す模式図である。 本実施の形態に係るロボットシステムによるねじの締め付けの適用例を示す図である。 本実施の形態に係るロボットシステムのハードウェア構成例を示す模式図である。 ロボットによるねじの締付動作における各工程を示す図である。 図1に示す例における、ねじの回転と、荷重センサの出力との関係を示す図である。 本実施の形態に係るロボットシステムにおけるねじを締め付けるための処理手順例を示すフローチャートである。 本実施の形態に係るロボットシステムにおけるねじの挿入深さを推定するための処理手順例を示すフローチャートである。 ロボットコントローラによって算出されたモーメントの時系列を例示した模式図である。 ロボットコントローラによって算出されたモーメントの周波数成分を例示した模式図である。 算出された総ねじ挿入深さの推移を示す模式図である。 プロファイルを設定する場合のパラメータのリストと、本実施の形態によるパラメータのリストとを比較した図である。 本実施の形態に係るねじ締め付け動作の流れを説明する図である。 本実施の形態に係るロボットシステムの別の構成例を示す模式図である。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。
図1は、本実施の形態に係るロボットシステム1の構成例を示す模式図である。図1を参照して、ロボットシステム1は、多関節ロボット(以下、単に「ロボット10」と称す。)と、ロボット10を制御するロボットコントローラ100とを含む。
ロボット10は、ドライバビット20の先端に保持されたねじ50をワーク70のねじ穴72に挿入して、ねじ50をワーク70に締め付ける。
ロボット10は、ベース11と、複数の可動部12,13,14,15,16,17とを含む。可動部12,13,14,15,16,17は、ロボット10のジョイントに相当する。可動部12,13,14,15,16,17の各々は、図1に示すような回転軸に沿ってロボット10を構成するリンクを駆動する。
ロボット10のアーム先端には、エンドエフェクタ18が取り付けられている。エンドエフェクタ18には、任意のツール先端治具が装着可能になっている。
図1に示す構成例においては、エンドエフェクタ18には、ねじ50を回転させるためのドライバビット20が回転可能に取り付けられている。さらに、エンドエフェクタ18には、ドライバビット20を駆動する駆動ユニット18Aが取り付けられている。駆動ユニット18Aは、ドライバビット20を回転させるモータおよび、モータの回転軸に結合された減速機を含む。なお、減速機とドライバビット20とは、図示しないカップリング装置を介して結合されてもよい。
ドライバビット20がねじ50を保持するための機構の一例として、ドライバビット20の外周側には吸着スリーブ22が設けられている。ドライバビット20の先端近傍には、吸着スリーブ22の開口部21が設けられている。吸着スリーブ22は、図示しないエジェクタと連通しており、エジェクタが発生する負圧によりねじ50を吸着する。また、エジェクタから吸着スリーブ22までの経路には、当該経路のゲージ圧を検出する図示しない圧力センサ28(図3を参照)が設けられている。
ドライバビット20にねじ50を保持するための機構は、負圧によりねじ50を吸着する。但し、ドライバビット20にねじ50を保持するための機構としては、吸着(負圧)による構成に限らず、磁力を用いる構成などを用いてもよい。
ロボット10のアームにエンドエフェクタ18が取り付けられる部分には、エンドエフェクタ18およびドライバビット20などに発生する荷重を検出する荷重センサ19が設けられている。荷重センサ19は、発生している荷重の大きさ、および、荷重が発生している方向を示す検出結果を出力する。荷重センサ19は、検出結果として、TCP座標系のX軸方向(X)の荷重、Y軸方向(Y)の荷重、Z軸方向(Z)の荷重をそれぞれ出力するとともに、X軸を中心とした回転方向(RX)の荷重(モーメント)、Y軸を中心とした回転方向(RY)の荷重(モーメント)、Z軸を中心とした回転方向(RZ)の荷重(モーメント)を出力する。Z軸は、ドライバビット20が、ねじ50を押し付ける方向に沿った軸である。荷重センサ19の検出結果は、一種のベクトルの形で出力されてもよい。なお、以下では「RZ」を単に「R」と表記する。
ロボットコントローラ100には、情報処理装置200が接続されてもよい。情報処理装置200は、典型的には、汎用コンピュータであり、ロボットコントローラ100からの情報をユーザに提示するとともに、ユーザ操作に従ってユーザ指示をロボットコントローラ100へ与える。
図2は、本実施の形態に係るロボットシステム1によるねじ50の締め付けの適用例を示す図である。図2(A)を参照して、ドライバビット20の先端が、ねじ50のねじ頭に形成された溝52に挿入されることにより、ドライバビット20と、ねじ50とは噛み合っている。この状態でロボットコントローラ100は、ワーク70に対して、ねじ50を仮締めするように、ロボット10に指令を与える。具体的には、ロボットコントローラ100は、ドライバビット20に、ねじ50を押し付ける力、および、ねじ50を回転させるためのトルクを与えるように、ロボット10に指令を与える。このときに、ロボットコントローラ100は、荷重センサ19(図1を参照)によって検出されるドライバビット20の荷重に基づいて、ねじ50の挿入深さを推定する。荷重センサ19によって検出されるドライバビット20の荷重とは、Z軸を中心とした回転方向(RZ)の荷重(モーメント)である。このときのトルクを以後、「仮締めトルク」と呼ぶ。
ロボットコントローラ100は、推定した挿入深さと、ねじ50の首下長さとを比較して、ねじ50への仮締めトルクの印加を継続するか否かを判定する。推定した挿入深さが、ねじ50の首下長さに接近している場合、ロボットコントローラ100は、ねじ50の仮締めを終了すると判定する。
図2(B)に示すように、ロボットコントローラ100は、ドライバビット20によって、ねじ50を本締めするための締結トルクをドライバビット20に与えるように、ロボット10に指令を与える。締結トルクは、仮締めトルクよりも大きい。すなわち、本締めの工程では、ロボットコントローラ100は、ねじ50に印加されるトルクを仮締めのときのトルクよりも大きくするようにロボット10に指令を与える。
本締めの工程では、ロボットコントローラ100は、所定の時間、締結トルクを保持するようにロボット10に指令を与える。所定の時間の経過後に、ロボットコントローラ100は、締結トルクおよび、ねじ50を押さえつける力を解放するように、ロボット10に指令を与える。
<B.ロボットシステム1のハードウェア構成例>
図3は、本実施の形態に係るロボットシステム1のハードウェア構成例を示す模式図である。図3を参照して、ロボット10は、可動部12,13,14,15,16,17にそれぞれ対応付けられたモータ31,32,33,34,35,36と、モータ31,32,33,34,35,36をそれぞれ駆動するドライバ41,42,43,44,45,46とを含む。また、ロボット10は、ドライバビット20を回転駆動するためのモータ37およびドライバビット20を上下方向に移動するためのモータ38、ならびに、モータ37,38をそれぞれ駆動するドライバ47,48を含む。モータ37,38およびドライバ47,48は、図1に示した駆動ユニット18Aに含まれる。
ロボット10は、負圧を発生するエジェクタ39と、エジェクタ39による負圧の発生のオン/オフを制御する電磁弁49とを含む。
ドライバ41,42,43,44,45,46,47,48、荷重センサ19、圧力センサ28およびティーチングペンダント26は、インターフェイス40を介して、ロボットコントローラ100と電気的に接続される。ティーチングペンダント26は、ユーザ操作に応じて、ロボット10のティーチングなどを行う。ティーチングペンダント26は、ロボット10に対して着脱可能に構成されてもよい。
ロボットコントローラ100は、一種のコンピュータであり、主要なハードウェアコンポーネントとして、プロセッサ102と、メモリ104と、インターフェイス106と、ストレージ110とを含む。これらのコンポーネントはバス108を介して電気的に接続される。
プロセッサ102は、典型的には、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などで構成される。メモリ104は、典型的には、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置で構成される。ストレージ110は、典型的には、SSD(Solid State Disk)やフレッシュメモリなどの不揮発性記憶装置で構成される。ストレージ110は、基本的な処理を実現するためのシステムプログラム112と、制御プログラム114とを格納する。制御プログラム114は、ロボット10を制御するためのコンピュータ読取可能な命令を含む。プロセッサ102は、ストレージ110に格納されたシステムプログラム112および制御プログラム114を読出して、メモリ104に展開して実行することで、後述するようなロボット10を制御するための処理を実現する。
インターフェイス106は、ロボットコントローラ100とロボット10との間の信号および/またはデータのやり取りを担当する。ロボットシステム1においては、ドライバ41,42,43,44,45,46,47および電磁弁49を制御するための指令がロボットコントローラ100からロボット10へ送信されるとともに、荷重センサ19および圧力センサ28によるそれぞれの検出結果がロボット10からロボットコントローラ100へ送信される。
図3には、プロセッサ102がプログラムを実行することで必要な処理が提供される構成例を示したが、これらの提供される処理の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
図3には、ロボットコントローラ100をロボット10から独立して構成した例を示しているが、ロボットコントローラ100が提供する機能および処理の一部または全部をロボット10に組み入れてもよい。この場合、ロボットコントローラ100は、ロボット制御に専用化されたコントローラとして実装してもよいし、汎用的なPLC(プログラマブルコントローラ)あるいはパーソナルコンピュータを用いて実装してもよい。
さらに、ロボットコントローラ100が提供する機能および処理の一部または全部をいわゆるクラウドと称されるネットワーク上のコンピューティングリソースを用いて実現してもよい。
以上のように、本実施の形態に係るロボットシステム1は、どのように実装してもよい。
<C.ねじ締結の動作における課題>
図4は、ロボット10によるねじの締付動作の一般的な工程を示す図である。図4を参照して、ねじの締付動作は「仮締め」、「本締め」、「本締め保持」および「サーボ解放」の4つの工程からなる。ロボット10が各工程を実行するために、動作プロファイルが設定される。図4において、「+R方向」とは、ねじ50がねじ穴に挿入するための、ねじ50の回転方向である。
「仮締め」において、ねじ50がねじ穴72に接触すると、ロボットコントローラ100はR軸トルクおよびZ軸推力を上昇させる。これによりねじ50が回転しながら、ねじ穴72に挿入される。
ねじの頭部座面がワーク70に着座すると、R軸方向のトルクが指定トルクを超過する。これにより、ロボットコントローラ100は、本締めを行うようにロボット10に指令を送る。なお、図4に表記した「仮着座」とは、仮締めの段階において、ねじ50の頭部座面がワーク70に着座したことを意味する。
「本締め」において、ロボットコントローラ100は、Z軸方向の押付力を維持しつつ、R軸トルクを増大させる。R軸トルクが次の指定トルクを超過する。これにより、ロボットコントローラ100は、所定時間の間、R軸方向のトルクを保持するようにロボット10に指令を送る。
R軸トルクを一定の時間の間保持した後、「サーボ解放」の工程において、ロボットコントローラ100は、ドライバビット20を逆回転させて、ねじ50のR軸トルクおよびZ軸方向の推力を減少させる。これによりねじ締めが完了する。
このような一連の工程を実行するためには、ねじ締結の条件ごとに最適なプロファイルを作成する必要がある。しかし、ねじ締め付け動作のプロファイルは、ねじの仕様に応じて異なる。たとえば、ねじのリード(ねじ1回転あたりに軸方向に進む距離)が異なれば、ねじの下降速度を変更する必要がある。あるいは、同じ仕様のねじであっても、締結対象物の種類、あるいはねじ穴の大きさに依存してプロファイルが異なりうる。したがって、ねじ締結の最適な条件を得るためには、ロボットを試運転させて、プロファイルを調整する必要がある。このため、プロファイルの設定に時間と手間を要する。
締結に使用されるねじのリード、首下長さといった仕様は、既知である。したがって、ねじの回転数を把握することにより、ねじの挿入深さが推定できると考えられる。しかしながら図1に示すように、モータとドライバビットとの間には減速機がある。減速機の減速比は既知の情報である。しかし実際には、減速比の精度(ばらつき)により、モータの回転数および減速比から算出した回転数が、ドライバビット20の実際の回転数と正確に一致しないことが起こりえる。したがって、プロファイルの設定には多くのパラメータを用いる必要がある。
また仮締めから本締めへの切り替え、および本締めから本締め保持への切り替えなど、工程の進捗の管理にR軸トルクの値が用いられる。R軸トルクの値は、工程の異常の有無を監視するためにも用いられる。したがって、工程管理あるいは異常監視において用いられるR軸トルクの閾値を、最適値に設定する必要がある。しかし最適な閾値が得られるようにプロファイルを調整するための手間が多くなる。
<D.本実施の形態に係るねじ締め付け動作の前提>
図5は、図1に示す例における、ねじの回転と、荷重センサの出力との関係を示す図である。図5を参照して、グラフは、ねじ50をねじ穴72内で回転させたときの、Z軸周りのモーメント(Mz)の時間変化を示す。グラフの縦軸はZ軸周りのモーメントMzを表し、横軸は、経過時間を規格化したものである。
曲線で囲まれた領域内の波形が表すように、ねじ50をねじ穴72内で回転させる間、Z軸周りのモーメント(Mz)が周期的に変化する。この波形から、ねじ50の回転数と、モーメントMzの回転周波数との間には定量的な関係があることが理解できる。すなわち、モーメントMzの回転周波数は、ねじ50の回転数と相関がある。上記の通り、ねじ50の回転数とねじ50のリードから、ねじの挿入深さを算出することができる。したがって本開示の実施の形態では、モーメントMzの回転周波数を、ねじ50の回転数と推定して、その推定した回転数とねじ50のリードから、ねじ50のねじ穴への挿入深さを推定する。なお、ねじ50の回転数の推定に用いられるモーメントは、ねじ50の挿入方向に依存する。図1に示す例では、ねじ50の挿入方向がZ軸方向であるため、モーメントMzの回転周波数を、ねじ50の回転数と推定する。たとえば、ねじ50の挿入方向が図1のX軸に沿う場合は、X軸周りのモーメントMxの回転周波数を、ねじ50の回転数と推定すればよい。以下の説明において、モーメントMzをMxに置き換えることにより、ねじ50の挿入方向が図1のX軸に沿う場合の挿入深さを推定することができる。
<E.動作フロー>
図6は、本実施の形態に係るロボットシステム1におけるねじ50を締め付けるための処理手順例を示すフローチャートである。図6に示す各ステップは、典型的には、ロボットコントローラ100のプロセッサ102が制御プログラム114を実行することで実現される。この結果、ロボットコントローラ100からロボット10に対して指令が与えることで図6に示す処理が実現される。
なお、図6に示す処理が開始される前に、ロボットコントローラ100は、予め、ねじ50の締結の完了の目標時間(目標タクトタイム)、ねじ50のリードおよび首下長さを含む仕様、および、本締め時の目標トルクの値を受け付ける。ロボット10は、ねじ50をピックするとともに、ドライバビット20がワーク70のねじ穴72の上方にある目標位置に到着するようにドライバビット20を位置決めする。
図6を参照して、ロボットコントローラ100は、ロボット10に指令を与えて、ドライバビット20の回転を開始させ(ステップS1)、次にドライバビット20の下降を開始させる(ステップS2)。ねじ50の先端がねじ穴72に接触すると、Z軸方向の荷重(Fz)が変化する。この荷重Fzの変化が荷重センサ19によって検出される。
ロボットコントローラ100は、荷重センサ19により検出されたZ軸方向の荷重Fzに基づいて、ねじ50の先端がねじ穴72に接触したことを検知する(ステップS3)。これにより、ロボットコントローラ100は、ねじ50の仮締めを行うようロボット10に指令を与える。
仮締めの工程において、ロボットコントローラ100は、ロボット10に指令を与えて、ドライバビット20のトルクを切り替える。すなわちドライバビット20に仮締めトルクが印加される(ステップS4)。ロボットコントローラ100は、荷重センサ19によって検出されたZ軸まわりのモーメントMzに基づいて、ねじ50の挿入深さを推定する(ステップS5)。ねじ50の挿入深さを推定する処理の詳細は後述する。
ロボットコントローラ100は、推定された挿入深さが、ねじの首下長さ付近に到達したか否かを判定する(ステップS6)。推定された挿入深さが、ねじの首下長さより小さく、かつ、ねじの首下長さと挿入深さとの差が、上記の所定範囲を超える場合(ステップS6においてNO)、ステップS5の処理が実行される。すなわち、推定された挿入深さが、ねじ50の首下長さ付近にまだ到達していないと判定される。なお、「所定範囲」の長さは特に限定されるものではないが、たとえば、ねじ50のリードの整数倍の長さであってもよい。一方、推定された挿入深さが、ねじの首下長さより小さく、かつ、ねじの首下長さと挿入深さとの差が上記の所定範囲以内であれば、ロボットコントローラ100は、推定された挿入深さが、ねじの首下長さ付近に到達したと判定する。この状態は、ねじ50の仮着座(図4を参照)に対応する。この場合(ステップS6においてYES)、ロボットコントローラ100は、本締め、および、本締め保持を行うように、ロボット10に指令を与える(ステップS7)。
本締めの工程において、ロボットコントローラ100は、ロボット10に指令を与えて、ドライバビット20のトルクおよび下降速度を切り替える。具体的には、ドライバビット20のトルクが、仮締めの時のトルクよりも大きくなる。一方、ドライバビット20の下降速度は、仮締めの時の速度から低下する。ロボットコントローラ100は、ドライバビット20に目標トルクを与えるとともに、所定期間、そのトルクを保持するようにロボット10に指令を与える。これにより、ねじ50が締結される。
本締め保持の工程が終了すると、ロボットコントローラ100は、解放工程を行うようにロボット10に指令を与える(ステップS8)。具体的には、ロボットコントローラ100は、ロボット10に指令を与えて、ドライバビット20を逆回転させる。
解放工程の後、ロボットコントローラ100は、停止工程を行うようロボット10に指令を与える(ステップS9)。具体的には、ロボットコントローラ100は、ロボット10に指令を与えて、ドライバビット20の回転および下降を停止する。これにより、ねじ締め付けが終了する。ロボットコントローラ100は、ドライバビット20を上昇させるようにロボットコントローラ100に指令を与える。
図7は、本実施の形態に係るロボットシステム1におけるねじ50の挿入深さを推定するための処理手順例を示すフローチャートである。この処理は、図6に示したステップS5の処理に対応する。
図7を参照して、ロボットコントローラ100は、荷重センサ19の出力に基づいて、ドライバビット20のZ軸周りのモーメントMz、すなわち、ドライバビット20の押し付け方向のモーメントを計算する(ステップS11)。図1に示すように、荷重センサ19は、Z軸(すなわちドライバビット20の軸)に対してオフセットした位置に設けられる。このため、ロボットコントローラ100は、荷重センサ19によって検出されたZ軸周りのモーメントのオフセットを補償することによりモーメントMzを算出する。これにより、補償によって得られたモーメントMzを用いて、ねじ50の挿入深さを推定することができる。
次に、ロボットコントローラ100は、算出したモーメントMzの値(時系列データ)を蓄積する(ステップS12)。図8は、ロボットコントローラによって算出されたモーメントMzの時系列を例示した模式図である。たとえばロボットコントローラ100は、所定周期でモーメントMzの値をサンプリングして、その値(時系列データ)を蓄積する。
図7に戻り、蓄積されたデータの数が所定数に達すると、ロボットコントローラ100は、そのデータ(モーメントMz)を周波数解析する(ステップS13)。周波数解析の手法は特に限定されないが、一般的な手法としてFFT(高速フーリエ変換)を用いることができる。
図9は、ロボットコントローラ100によって算出されたモーメントMzの周波数成分を例示した模式図である。ロボットコントローラ100は、モーメントMzの周波数成分のうち最大ピークを持つ要素に対応する周波数を計算する(ステップS13)。これにより、ロボットコントローラ100は、モーメントMzのピーク周波数ωを取得する。
ロボットコントローラ100は、ステップS13の処理によって算出された周波数(ω)に基づいて、1計算サイクルごとのねじ挿入深さを計算する(ステップS14)。具体的には、ロボットコントローラ100は、以下の式に従って、1計算サイクルごとのねじ挿入深さを算出する。
(ねじ挿入深さ)=(モーメントMzの最大要素の周波数)[rad/s]÷2π[rad/rot]×計算サイクル周期[s]×リード[mm/rot]
なお、上述の式において、計算サイクル周期は特に限定されない。たとえば、計算サイクル周期は、ロボットコントローラ100の制御周期と同期していてもよい。
ロボットコントローラ100は、ステップS14において算出したねじ挿入深さを、総ねじ深さに加算する(ステップS15)。これにより、挿入深さの計算の1サイクルが終了する。図7に示した処理が繰り返して実行されることによって、図10に示すように、算出された総ねじ挿入深さが、ねじの首下長さに次第に接近する。総ねじ挿入深さが、ねじの首下長さ付近に到達したと判定された場合、ねじ締めの工程は、仮締めから本締めへと移行する。
<F.プロファイルの設定>
図11は、プロファイルを設定する場合の一般的なパラメータのリストと、本実施の形態によるパラメータのリストとを比較した図である。図11に示すように、一般的なプロファイルの設定では、工程ごとに多数のパラメータを設定する必要がある。図11に示した「押付力」は、Z軸方向の力制御を実現する場合に必要である。一方、Z軸方向の制御を速度制御のみで実現する場合には「押付力」の項目は不要となる。
各パラメータは、ユーザの入力値、固定値、あるいは入力値と固定値との組み合わせによって決定される。したがって、一般的な設定方法では、すべてのパラメータを設定するための手間が多くなる。
一方、本実施の形態では、設定に用いられるパラメータの数を少なくすることができる。本実施の形態では、必要なパラメータが、締結トルク、目標タクトタイム、および、ねじ仕様の3つに集約される。締結トルクは、製品仕様にしたがって定められる目標トルクである。目標タクトタイムは、要求される製造工程の能力にしたがって定められる。ねじ仕様(首下長さ、リードなど)はカタログに記載された仕様によって定められる。なお、仮締めトルクは、たとえば締結トルクに所定の割合を乗じることによって決定することができるので、締結トルクから仮締めトルクを決定することができる。
図12は、本実施の形態に係るねじ締め付け動作の流れを説明する図である。図12を参照して、時刻t1において仮締めが開始される。具体的には、ドライバビット20が、ねじ50を保持したまま回転するとともに下降する。
時刻t2において、ねじ50がねじ穴72に接触する。ロボットコントローラ100は、ドライバビット20の回転トルクおよび下降速度を上昇させる。これにより、ねじ50がねじ穴72に挿入される。ロボットコントローラ100は、ねじ50のねじ穴72への挿入深さを推定するとともに、ねじの挿入深さが本締めのための深さ(すなわち、ねじ首下長さ付近)に達したどうかを判断する。
時刻t3において、ねじの挿入深さが本締めのための深さに達したと判定されると、ロボットコントローラ100は、ドライバビット20の回転トルクをさらに上昇させる。一方、下降速度は0となる。この状態で、ロボットコントローラ100は、時刻t4までドライバビット20の回転トルクを保つ。
時刻t4において、ねじ締めトルクが解放される。ロボットコントローラ100は、ドライバビット20を逆回転させた後、ドライバビット20の回転を停止する。時刻t5において、一連のねじ締め動作が停止される。
ねじの仕様に関する情報は予め得られているので、ねじの首下長さは既知である。したがって仮締めの段階において、挿入深さを推定し、その推定した挿入深さを既知の首下長さと比較することにより、仮締めを終了させるかどうかを判断することができる。仮締めが終了した後、予め指定された締結トルクをねじに印加して、その状態を一定期間保持する。これにより、本締めを行うことができる。したがってねじ締め動作のためのプロファイルの設定を不要とすることができる。
本実施の形態によれば、ロボット10を制御するためのプロファイルの作成が不要となるので、ねじ締め付けの条件の設定に要する手間を軽減できる。また、本実施の形態によれば、仮締め時には、ねじの挿入深さを推定することによって、ねじの挿入の速度を制御することができる。したがってロボットコントローラ100は、目標タクトタイム内にねじ締め動作が完了するようにロボット10を制御することができる。
<G.ロボットの別の構成例>
図13は、本実施の形態に係るロボットシステム1の別の構成例を示す模式図である。図13に示すように、荷重センサ19は、Z軸上に配置される。この点において、ロボット10Aは、図1に示したロボット10と異なる。図12に示された構成により、ねじ50の挿入深さを推定する場合には、荷重センサ19によって検出されるZ軸まわりのモーメントの値に含まれるオフセット成分が小さくなる。たとえば、オフセット成分を無視できる場合には、図7に示すステップS11の処理において、荷重センサ19によって検出された値を補償する処理を省略することができる。したがって、ロボットコントローラ100の計算の負荷を下げることができる。
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
(構成1)
ロボットシステム(1)であって、
ねじ(50)を回転させるためのドライバビット(20)を装着可能なロボット(10,10A)と、
前記ドライバビット(20)に発生する荷重を検出するセンサ(19)と、
前記ロボット(10,10A)を制御するロボットコントローラ(100)とを備え、
前記ロボットコントローラ(100)は、
前記ドライバビット(20)から与えられるトルクにより、前記ねじ(50)が対象物(70)のねじ穴(72)に挿入された状態で回転するように、前記ロボット(10,10A)に指令を与え、
前記センサ(19)によって検出される前記ドライバビット(20)の押し付け方向のモーメント、および、前記ねじ(50)のリードに基づいて、前記ねじ(50)の前記ねじ穴(72)への挿入深さを推定する、ロボットシステム(1)。
(構成2)
前記ロボットコントローラ(100)は、所定の周期ごとに、前記センサ(19)の出力から前記モーメントの周波数(ω)を求めて、前記モーメントの周波数(ω)を前記ねじ(50)の回転数と推定する、構成1に記載のロボットシステム(1)。
(構成3)
前記所定の周期は、前記ロボットシステム(1)の制御周期と同期する、構成2に記載のロボットシステム(1)。
(構成4)
前記ロボットコントローラ(100)は、
前記ねじ(50)の前記ねじ穴(72)への前記挿入深さが前記ねじ(50)の首下長さに達したか否かを判定して、前記挿入深さが前記ねじの首下長さに達した場合には、前記ドライバビット(20)に目標トルクを与えて前記ねじ(50)を締結させる、構成1から構成3のいずれか1項に記載のロボットシステム(1)。
(構成5)
前記ロボットコントローラ(100)は、
前記ねじ(50)の締結の完了の目標時間、
前記リードおよび前記首下長さを含む前記ねじ(50)のパラメータ、および
前記目標トルクの値、
を受け付けて、推定した前記挿入深さと前記首下長さとの比較から、前記目標時間内に前記ねじ(50)の締結が完了するように、前記ドライバビット(20)の回転数を制御する、構成4に記載のロボットシステム(1)。
(構成6)
前記ロボットコントローラ(100)は、前記センサ(19)によって検出される前記ドライバビット(20)の押し付け方向のモーメントに含まれるオフセットを補償して、前記ねじ穴(72)の軸方向のモーメントを求め、前記ねじ穴(72)の前記軸方向のモーメントを、前記ねじ(50)の前記挿入深さの推定に使用する、構成1から構成5のいずれか1項に記載のロボットシステム(1)。
(構成7)
ねじ(50)を対象物(70)に締結させるためのロボット(10,10A)をロボットコントローラ(100)によって制御する制御方法であって、前記ロボット(10,10A)には、前記ねじ(50)と係合するためのドライバビット(20)と、前記ドライバビット(20)に発生する荷重を検出するセンサ(19)とが装着されており、前記制御方法は、
前記ねじ(50)が前記対象物(70)のねじ穴(72)に挿入された状態で回転するように、前記ドライバビット(20)にトルクを与えるステップ(S4)と、
前記センサ(19)によって検出される前記ドライバビット(20)の押し付け方向のモーメント、および、前記ねじ(50)のリードに基づいて、前記ねじ(50)の前記ねじ穴(72)への挿入深さを推定するステップ(S5)とを備える、制御方法。
(構成8)
前記推定するステップ(S5)は、
所定の周期ごとに、センサ(19)の出力から前記モーメントの周波数(ω)を求めて、モーメントの周波数(ω)をねじ(50)の回転数と推定するステップ(S11~S15)を含む、構成7に記載の制御方法。
(構成9)
前記所定の周期は、前記ロボットシステム(1)の制御周期と同期する、構成8に記載の制御方法。
(構成10)
前記ねじ(50)の前記ねじ穴(72)への前記挿入深さが前記ねじ(50)の首下長さに達したか否かを判定するステップ(S6)と、
前記挿入深さが前記ねじ(50)の首下長さに達した場合には、前記ドライバビット(20)に目標トルクを与えて前記ねじ(50)を締結させるステップ(S7)とをさらに備える、構成7から構成9のいずれか1項に記載の制御方法。
(構成11)
前記ねじ(50)の締結の完了の目標時間、前記リードおよび前記首下長さを含む前記ねじ(50)のパラメータ、および前記目標トルクの値を受け付けるステップと、
推定した前記挿入深さと前記首下長さとの比較から、前記目標時間内に前記ねじ(50)の締結が完了するように、前記ドライバビット(20)の回転数を制御するステップとをさらに備える、構成10に記載の制御方法。
(構成12)
前記センサ(19)によって検出される前記ドライバビット(20)の押し付け方向のモーメントに含まれるオフセットを補償して、前記ねじ穴(72)の軸方向のモーメントを求めるステップ(S11)をさらに備え、
前記推定するステップにおいて、前記ねじ穴(72)の前記軸方向のモーメントを、前記ねじ(50)の前記挿入深さの推定に使用する、構成7から構成11のいずれか1項に記載の制御方法。
(構成13)
ねじ(50)を対象物(70)に締結させるためのロボット(10,10A)を制御するための制御プログラム(114)であって、コンピュータ(100)に、
前記ねじ(50)が前記対象物(70)のねじ穴(72)に挿入された状態で回転するように、前記ロボット(10,10A)に装着されたドライバビット(20)にトルクを与えるステップ(S4)と、
前記ドライバビット(20)に発生する荷重を検出するセンサ(19)によって検出される前記ドライバビット(20)の押し付け方向のモーメント、および、前記ねじ(50)のリードに基づいて、前記ねじ(50)の前記ねじ穴(72)への挿入深さを推定するステップ(S5)とを含む制御方法を実行させる、制御プログラム(114)。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 ロボットシステム、10,10A ロボット、11 ベース、12,13,14,15,16,17 可動部、18 エンドエフェクタ、18A 駆動ユニット、19 荷重センサ、20 ドライバビット、21 開口部、22 吸着スリーブ、26 ティーチングペンダント、28 圧力センサ、31,32,33,34,35,36,37,38 モータ、39 エジェクタ、40,106 インターフェイス、41,42,43,44,45,46,47,48 ドライバ、49 電磁弁、50 ねじ、52 ねじ頭の溝、70 ワーク、72 ねじ穴、100 ロボットコントローラ、102 プロセッサ、104 メモリ、108 バス、110 ストレージ、112 システムプログラム、114 制御プログラム、200 情報処理装置、S1~S15 ステップ、t1,t2,t3,t4,t5 時刻。

Claims (13)

  1. ロボットシステムであって、
    ねじを回転させるためのドライバビットを装着可能なロボットと、
    前記ドライバビットに発生する荷重を検出するセンサと、
    前記ロボットを制御するロボットコントローラとを備え、
    前記ロボットコントローラは、
    前記ドライバビットから与えられるトルクにより、前記ねじが対象物のねじ穴に挿入された状態で回転するように、前記ロボットに指令を与え、
    前記センサによって検出される前記ドライバビットの押し付け方向のモーメント、および、前記ねじのリードに基づいて、前記ねじの前記ねじ穴への挿入深さを推定する、ロボットシステム。
  2. 前記ロボットコントローラは、所定の周期ごとに、前記センサの出力から前記モーメントの周波数を求めて、前記モーメントの周波数を前記ねじの回転数と推定する、請求項1に記載のロボットシステム。
  3. 前記所定の周期は、前記ロボットシステムの制御周期と同期する、請求項2に記載のロボットシステム。
  4. 前記ロボットコントローラは、
    前記ねじの前記ねじ穴への前記挿入深さが前記ねじの首下長さに達したか否かを判定して、前記挿入深さが前記ねじの首下長さに達した場合には、前記ドライバビットに目標トルクを与えて前記ねじを締結させる、
    請求項1から請求項3のいずれか1項に記載のロボットシステム。
  5. 前記ロボットコントローラは、
    前記ねじの締結の完了の目標時間、
    前記リードおよび前記首下長さを含む前記ねじのパラメータ、および
    前記目標トルクの値、
    を受け付けて、推定した前記挿入深さと前記首下長さとの比較から、前記目標時間内に前記ねじの締結が完了するように、前記ドライバビットの回転数を制御する、請求項4に記載のロボットシステム。
  6. 前記ロボットコントローラは、前記センサによって検出される前記ドライバビットの押し付け方向のモーメントに含まれるオフセットを補償して、前記ねじ穴の軸方向のモーメントを求め、前記ねじ穴の前記軸方向のモーメントを、前記ねじの前記挿入深さの推定に使用する、請求項1から請求項5のいずれか1項に記載のロボットシステム。
  7. ねじを対象物に締結させるためのロボットをロボットコントローラによって制御する制御方法であって、前記ロボットには、前記ねじと係合するためのドライバビットと、前記ドライバビットに発生する荷重を検出するセンサとが装着されており、前記制御方法は、
    前記ねじが前記対象物のねじ穴に挿入された状態で回転するように、前記ドライバビットにトルクを与えるステップと、
    前記センサによって検出される前記ドライバビットの押し付け方向のモーメント、および、前記ねじのリードに基づいて、前記ねじの前記ねじ穴への挿入深さを推定するステップとを備える、制御方法。
  8. 前記推定するステップは、
    所定の周期ごとに、前記センサの出力から前記モーメントの周波数を求めて、前記モーメントの周波数を前記ねじの回転数と推定するステップを含む、請求項7に記載の制御方法。
  9. 前記所定の周期は、前記ロボットシステムの制御周期と同期する、請求項8に記載の制御方法。
  10. 前記ねじの前記ねじ穴への前記挿入深さが前記ねじの首下長さに達したか否かを判定するステップと、
    前記挿入深さが前記ねじの首下長さに達した場合には、前記ドライバビットに目標トルクを与えて前記ねじを締結させるステップとをさらに備える、請求項7から請求項9のいずれか1項に記載の制御方法。
  11. 前記ねじの締結の完了の目標時間、前記リードおよび前記首下長さを含む前記ねじのパラメータ、および前記目標トルクの値を受け付けるステップと、
    推定した前記挿入深さと前記首下長さとの比較から、前記目標時間内に前記ねじの締結が完了するように、前記ドライバビットの回転数を制御するステップとをさらに備える、請求項10に記載の制御方法。
  12. 前記センサによって検出される前記ドライバビットの押し付け方向のモーメントに含まれるオフセットを補償して、前記ねじ穴の軸方向のモーメントを求めるステップをさらに備え、
    前記推定するステップにおいて、前記ねじ穴の前記軸方向のモーメントを、前記ねじの前記挿入深さの推定に使用する、請求項7から請求項11のいずれか1項に記載の制御方法。
  13. ねじを前記対象物に締結させるためのロボットを制御するための制御プログラムであって、コンピュータに、
    前記ねじが前記対象物のねじ穴に挿入された状態で回転するように、前記ロボットに装着されたドライバビットにトルクを与えるステップと、
    前記ドライバビットに発生する荷重を検出するセンサによって検出される前記ドライバビットの押し付け方向のモーメント、および、前記ねじのリードに基づいて、前記ねじの前記ねじ穴への挿入深さを推定するステップとを含む制御方法を実行させる、制御プログラム。
JP2022040015A 2022-03-15 2022-03-15 ロボットシステム、制御方法および制御プログラム Pending JP2023135018A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022040015A JP2023135018A (ja) 2022-03-15 2022-03-15 ロボットシステム、制御方法および制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022040015A JP2023135018A (ja) 2022-03-15 2022-03-15 ロボットシステム、制御方法および制御プログラム

Publications (1)

Publication Number Publication Date
JP2023135018A true JP2023135018A (ja) 2023-09-28

Family

ID=88144179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022040015A Pending JP2023135018A (ja) 2022-03-15 2022-03-15 ロボットシステム、制御方法および制御プログラム

Country Status (1)

Country Link
JP (1) JP2023135018A (ja)

Similar Documents

Publication Publication Date Title
JP4202365B2 (ja) 力制御装置
US20170326731A1 (en) Robot controlling method, robot apparatus, program, recording medium, and method for manufacturing assembly component
KR102144142B1 (ko) 조인트의 적어도 하나의 특성을 결정하기 위한 방법 및 시스템
US20190275678A1 (en) Robot control device, robot, robot system, and robot control method
US9348331B2 (en) Robot apparatus and speed reducer state diagnosing method
US20080267737A1 (en) Fitting device
US9895806B2 (en) Control device for robot that performs work by pressing tool against workpiece
CN109476001B (zh) 用于以预定拧紧扭矩旋入螺钉的方法
US20120000891A1 (en) Robot system
US10996649B2 (en) Self-corrective nut running for robotic applications
EP3508313B1 (en) Control method of positioning control device and positioning control device
JP2016087700A (ja) 負荷情報の設定を確認する機能を備えた制御装置
US20180085921A1 (en) Robot control device, robot, and robot system
WO2016110320A1 (en) Method for estimation of external forces and torques on a robot arm
JP6542629B2 (ja) 加工ツールの位置決め装置及び位置決め方法
US20220134554A1 (en) Controlling a robot
WO2021261021A1 (ja) ねじ締め装置
JP2023135018A (ja) ロボットシステム、制御方法および制御プログラム
EP4183532A1 (en) Robot system, control method and control program
WO2018088199A1 (ja) ロボット制御装置、ロボット、ロボットシステム、及び、ロボット制御方法
JPH0255174B2 (ja)
US20180157237A1 (en) Servo motor controller, servo motor control method, and non-transitory computer-readable medium storing computer program
EP4385657A1 (en) Robot system and controller
JP2023125498A (ja) ねじ締めシステム、コントローラ、および制御プログラム
JP7431294B2 (ja) ロボットハンド及びロボットハンドの制御方法