以下、本発明の制御装置、ロボットおよび制御方法を添付図面に示す実施形態に基づいて詳細に説明する。
<第1実施形態>
図1は、本発明のロボットの第1実施形態と、その第1実施形態のロボットを備えるロボットシステムとを示す側面図である。図2は、図1に示すロボットシステムのブロック図である。図3は、図1に示すロボットシステムのエンドエフェクターの斜視図である。図4は、図1に示すロボットシステムのエンドエフェクターのねじ用限界ゲージの側面図である。図5および図6は、それぞれ、図1に示すロボットシステムの制御装置のねじ穴の検査の際の制御動作を示すフローチャートである。図7〜図10は、それぞれ、図1に示すロボットシステムが行うねじ穴の検査を説明するための図である。図11は、図1に示すロボットシステムが行うねじ穴の検査の際に力検出部により検出されたz軸方向の力を示すグラフである。図12は、図1に示すロボットシステムの表示装置に表示されるウィンドウを示す図である。なお、図1では、表示装置41および入力装置42の図示は省略されている。
また、図1、図7〜図10では、説明の便宜上、互いに直交する3軸として、x軸、y軸およびz軸を図示している。また、以下では、x軸に平行な方向を「x軸方向」とも言い、y軸に平行な方向を「y軸方向」とも言い、z軸に平行な方向を「z軸方向」とも言う。また、以下では、図示された各矢印の先端側を「+(プラス)」、基端側を「−(マイナス)」と言い、+x軸方向に平行な方向を「+x軸方向」とも言い、−x軸方向に平行な方向を「−x軸方向」とも言い、+y軸方向に平行な方向を「+y軸方向」とも言い、−y軸方向に平行な方向を「−y軸方向」とも言い、+z軸方向に平行な方向を「+z軸方向」とも言い、−z軸方向に平行な方向を「−z軸方向」とも言う。また、z軸周りの方向およびz軸に平行な軸周りの方向を「u軸方向」とも言う。これらは、他の実施形態でも同様である。
また、以下では、説明の便宜上、図1中の+z軸方向(z軸方向+側)(上側)を「上」、−z軸方向(z軸方向−側)(下側)を「下」とも言う。また、ロボットアーム20については、図1中の基台21側を「基端」、その反対側(エンドエフェクター7側)を「先端」と言う。また、図1中のz軸方向(上下方向)を「鉛直方向」とし、x軸方向およびy軸方向(左右方向)を「水平方向」とする。また、ねじ用限界ゲージの中心軸と、第3回動軸O3と、z軸とは、一致または平行であるとする。また、本明細書において、「水平」とは、完全に水平な場合のみならず、水平に対して±5°以内で傾斜している場合も含む。同様に、本明細書において、「鉛直」とは、完全に鉛直な場合のみならず、鉛直に対して±5°以内で傾斜している場合も含む。また、本明細書において、「平行」とは、2つの線(軸を含む)または面が、互いに完全な平行である場合のみならず、±5°以内で傾斜している場合も含む。また、本明細書において、「一致」とは、2つの線(軸を含む)または面が、互いに完全な一致している場合のみならず、±5°以内で傾斜している場合も含む。また、本明細書において、「直交」とは、2つの線(軸を含む)または面が、互いに完全な直交である場合のみならず、±5°以内で傾斜している場合も含む。これらは、他の実施形態でも同様である。
図1および図2に示すロボットシステム100は、例えば、電子部品および電子機器等のワーク(対象物)の保持、搬送、組立ておよび検査等の作業で用いられる装置である。ロボットシステム100は、制御装置1と、ロボット2と、エンドエフェクター7と、表示装置41(表示部)と、入力装置42(入力部)とを備えている。
また、本実施形態では、制御装置1は、その全部がロボット2に内蔵されている。すなわち、制御装置1とロボット2とが一体で構成されている。
なお、制御装置1は、その全部がロボット2に内蔵されている構成に限定されず、例えば、制御装置1の一部がロボット2に内蔵されていてもよく、また、制御装置1は、ロボット2と別体で構成されていてもよい。
また、ロボット2と制御装置1とは、ケーブル(配線)で電気的に接続(以下、単に「接続」とも言う)され、有線方式で通信を行うようになっていてもよく、また、前記ケーブルを省略し、無線方式で通信を行うようになっていてもよい。すなわち、ロボット2と制御装置1とは、有線通信で接続されていてもよく、また、無線通信で接続されていてもよい。
<ロボット>
ロボット2の種類は、特に限定されないが、本実施形態では、ロボット2は、水平多関節ロボットの1例であるスカラーロボットである。
図1に示すように、ロボット2は、基台21と、第1アーム22と、第2アーム23と、作業ヘッド24と、筐体25と、配管26とを備えている。第1アーム22、第2アーム23および作業ヘッド24等によりロボットアーム20が構成される。
また、筐体25は、基台21の上部に連結されている。また、配管26の一端部は、筐体25に連結され、他端部は、第2アーム23に連結されており、配管26内には、各配線が配置されている。
また、ロボット2は、第1アーム22を基台21に対して回動(駆動)させる駆動部280と、第2アーム23を第1アーム22に対して回動させる駆動部280と、作業ヘッド24のシャフト241を第2アーム23に対して回動させる駆動部280と、シャフト241を第2アーム23に対してz軸方向に移動させる駆動部280と、各駆動部280を駆動するモータードライバー(図示せず)とを備えている。
各駆動部280は、それぞれ、駆動力を発生するモーター(図示せず)とモーターの駆動力を減速する減速機(図示せず)とを備えている。駆動部280が有するモーターとしては、例えば、ACサーボモーター、DCサーボモーター等のサーボモーターを用いることができる。また、駆動部280が有する減速機としては、例えば、遊星ギア型の減速機、波動歯車装置等を用いることができる。また、各駆動部280には、それぞれ、モーターまたは減速機の回転軸の回転角度を検出する位置センサー281(角度センサー)が設けられている。また、各駆動部280は、それぞれ、対応するモータードライバー(図示せず)に接続されており、モータードライバーを介して制御装置1のロボット制御部11により制御される。なお、各駆動部280では、それぞれ、減速機は省略されていてもよい。
また、基台21は、例えば、図示しない床面にボルト等によって固定されている。基台21の上端部には第1アーム22が連結されている。第1アーム22は、基台21に対して鉛直方向に沿う第1回動軸O1周りに回動可能となっている。第1アーム22を回動させる駆動部280が駆動すると、第1アーム22が基台21に対して第1回動軸O1周りに水平面内で回動する。また、位置センサー281により、基台21に対する第1アーム22の駆動(回動量)が検出できるようになっている。
また、第1アーム22の先端部には、第2アーム23が連結されている。第2アーム23は、第1アーム22に対して鉛直方向に沿う第2回動軸O2周りに回動可能となっている。第1回動軸O1の軸方向と第2回動軸O2の軸方向とは同一である。すなわち、第2回動軸O2は、第1回動軸O1と平行である。第2アーム23を回動させる駆動部280が駆動すると、第2アーム23が第1アーム22に対して第2回動軸O2周りに水平面内で回動する。また、位置センサー281により、第1アーム22に対する第2アーム23の駆動(回動量)が検出できるようになっている。
また、第2アーム23の先端部には、シャフト241(スプラインシャフト)を有する作業ヘッド24が設置されている。シャフト241は、第2アーム23に対して、鉛直方向に沿う第3回動軸O3(第3回転軸)周りに回動(回転)可能であり、かつ、上下方向(z軸方向の両方向)(鉛直方向の両方向)に移動(昇降)可能となっている。このシャフト241は、ロボットアーム20の第3アームであり、ロボットアーム20の最も先端のアームである。
シャフト241を回動させる駆動部280が駆動すると、シャフト241は、z軸周りに正逆回転(回動)する。また、位置センサー281により、第2アーム23に対するシャフト241の回転量が検出できるようになっている。
また、シャフト241をz軸方向に移動させる駆動部280が駆動すると、シャフト241は、上下方向(z軸方向に移動)に移動する。また、位置センサー281により、第2アーム23に対するシャフト241のz軸方向の移動量が検出できるようになっている。
また、シャフト241の先端部(下端部)には、各種のエンドエフェクターが着脱可能に連結される(取り付けられる)。エンドエフェクターとしては、特に限定されず、例えば、被搬送物を把持するもの、被加工物を加工するもの、検査に使用するもの等が挙げられる。本実施形態では、エンドエフェクター7が着脱可能に連結される。エンドエフェクター7については、後に詳述する。
なお、エンドエフェクター7は、本実施形態では、ロボット2の構成要素になっていないが、エンドエフェクター7の一部(例えば、力検出部290)または全部がロボット2の構成要素になっていてもよい。また、エンドエフェクター7は、本実施形態では、ロボットアーム20の構成要素になっていないが、エンドエフェクター7の一部(例えば、力検出部290)または全部がロボットアーム20の構成要素になっていてもよい。
<エンドエフェクター>
図1、図3および図4に示すように、エンドエフェクター7は、力検出部290と、力検出部290に取り付けられた取り付け部71(フレーム)と、取り付け部71に設けられたモーター72と、モーター72の回転軸に、着脱可能に同心的に取り付けられたねじ用限界ゲージ3(ねじゲージ)とを有している。このエンドエフェクター7では、力検出部290が、直接または図示しない連結部材を介して、シャフト241の先端部に着脱可能に連結される。したがって、ねじ用限界ゲージ3は、ロボットアーム20の力検出部290よりも先端側に設けられている。また、シャフト241の中心軸、すなわち、第3回動軸O3と、モーター72の回転軸と、ねじ用限界ゲージ3の中心軸とは、一致している。すなわち、第3回動軸O3の軸方向から見て、第3回動軸O3と、モーター72と、ねじ用限界ゲージ3とは重なっている。
また、ねじ用限界ゲージ3は、ねじゲージの1例であり、柱状の把持部31と、把持部31の一端部に設けられ、雄ねじが形成された通り側ゲージ32(ねじ部)と、把持部31の他端部に設けられ、雄ねじが形成された止まり側ゲージ33(ねじ部)とを有している。このねじ用限界ゲージ3は、通り側ゲージ32を使用する場合は、止まり側ゲージ33が設けられた把持部31の端部をモーター72の回転軸に取り付け、通り側ゲージ32を先端側に配置する。また、止まり側ゲージ33を使用する場合は、通り側ゲージ32が設けられた把持部31の端部をモーター72の回転軸に取り付け、止まり側ゲージ33を先端側に配置する。
また、通り側ゲージ32は、ねじ穴82、83(図7、図16参照)の有効径の検査、具体的には、有効径が基準値に対して小さ過ぎないことを確認する検査に用いられるものである。通り側ゲージ32を用いて行う検査の具体例を挙げると、通り側ゲージ32をねじ穴82、83にねじ込んだとき、所定の長さ以上(例えば、ねじ穴82、83の全長に亘って)ねじ込むことができた場合、「合格」とする。
また、止まり側ゲージ33は、通り側ゲージ32よりも径が大きく、ねじ穴82、83の有効径の検査、具体的には、有効径が基準値に対して大き過ぎないことを確認する検査に用いられるものである。止まり側ゲージ33を用いて行う検査の具体例を挙げると、止まり側ゲージ33をねじ穴82、83にねじ込んだとき、所定の回転回数(例えば、2回転)以上(または所定の回転回数を超えて)ねじ込まれない場合、「合格」とする。
また、モーター72としては、特に限定されないが、例えば、ACサーボモーター、DCサーボモーター等のサーボモーター、ステッピングモーター等が用いられる。
また、エンドエフェクター7は、モーター72の回転軸の回転角度を検出する図示しない位置センサー(角度センサー)を有しており、その位置センサーにより、モーター72の回転軸の回転角度が検出できるようになっている。
また、力検出部290は、例えば、ねじ用限界ゲージ3に加わる力(モーメントを含む)を検出する力覚センサー(例えば、6軸力覚センサー)等で構成されている。なお、本実施形態では、力検出部290はエンドエフェクター7の構成要素であるが、これに限定されず、ロボット2またはロボットアーム20の構成要素であってもよい。
このエンドエフェクター7では、モーター72の回転軸とねじ用限界ゲージ3との間に歯車やベルト等の動力伝達機構が介在している場合に比べて、バックラッシュによる回転精度の低下を抑制することができる。
なお、ねじ用限界ゲージ3は、このような構成のものに限定されず、例えば、通り側ゲージのみを有するねじ用限界ゲージと、止まり側ゲージのみを有するねじ用限界ゲージとを付け替えて使用する構成のものであってもよい。
また、本実施形態では、エンドエフェクター7は、ロボットアーム20に対して着脱可能であるが、これに限定されず、例えば、エンドエフェクター7は、ロボットアーム20から離脱不能になっていてもよく、また、力検出部290がロボットアーム20から離脱不能になっていてもよい。
<制御装置>
図2に示すように、制御装置1は、ロボット制御部11(制御部)と、モーター制御部12(エンドエフェクター制御部)と、表示制御部13と、記憶部14と、受付部15と、判定部16とを備えており、ロボット2、エンドエフェクター7のモーター72および表示装置41等、ロボットシステム100の各部の駆動(作動)をそれぞれ制御する。ロボット制御部11およびモーター制御部12により、本発明の制御装置における「制御部」が構成される。また、ロボット制御部11は、ロボット2の駆動を制御し、さらに、モーター制御部12に対して指令(命令)を送り、モーター制御部12は、その指令に基づいてモーター72の駆動を制御する。すなわち、ロボット制御部11は、モーター72の駆動を制御する機能を備えているとも言うことができる。この場合は、ロボット制御部11により、本発明の制御装置における「制御部」が構成される。
また、制御装置1は、ロボット制御部11と、モーター制御部12と、表示制御部13と、記憶部14と、受付部15と、判定部16との間で、それぞれ、通信可能に構成されている。すなわち、ロボット制御部11と、モーター制御部12と、表示制御部13と、記憶部14と、受付部15と、判定部16とは、互いに、有線または無線通信で接続(以下、単に「接続」とも言う)されている。
また、制御装置1には、ロボット2と、表示装置41と、入力装置42と、エンドエフェクター7(モーター72、力検出部290、図示しない位置センサー)とが、それぞれ、有線または無線通信で接続されている。
すなわち、制御装置1のロボット制御部11には、ロボット2と、力検出部290とが、それぞれ、有線または無線通信で接続されている。また、制御装置1のモーター制御部12には、モーター72およびモーター72の回転軸の回転角度を検出する位置センサー(図示せず)が有線または無線通信で接続されている。また、制御装置1の表示制御部13には、表示装置41が有線または無線通信で接続されている。また、制御装置1の受付部15には、入力装置42が有線または無線通信で接続されている。
(ロボット制御部)
ロボット制御部11は、ロボット2の駆動、すなわち、ロボットアーム20等の駆動を制御する。ロボット制御部11は、プログラム(OS等)がインストールされたコンピューターである。このロボット制御部11は、例えば、プロセッサーとしてのCPUと、RAMと、プログラムが記憶されたROMとを有する。また、ロボット制御部11の機能は、例えば、CPUにより各種プログラムを実行することにより実現することができる。
(モーター制御部)
モーター制御部12は、モーター72の駆動を制御する。モーター制御部12は、プログラム(OS等)がインストールされたコンピューターである。このモーター制御部12は、例えば、プロセッサーとしてのCPUと、RAMと、プログラムが記憶されたROMとを有する。また、モーター制御部12の機能は、例えば、CPUにより各種プログラムを実行することにより実現することができる。
(表示制御部)
表示制御部13は、表示装置41に各種の画像(ウィンドウ等の各種の画面等を含む)や文字等を表示させる機能を有している。すなわち、表示制御部13は、表示装置41の駆動を制御する。この表示制御部13の機能は、例えばGPU等により実現することができる。
(判定部)
判定部16は、ねじ穴82、83(雌ねじ)の検査において、ねじ穴82、83の合否を判定する。本実施形態では、判定部16は、ねじ穴82の深さ情報とねじ用限界ゲージ3(ねじゲージ)の回転情報と力検出部290の検出情報との少なくとも一つに基づいて、ねじ穴82の合否を判定する。判定部16は、例えば、プロセッサーとしてのCPUと、RAMと、プログラムが記憶されたROMとを有する。また、判定部16の機能は、例えば、CPUにより各種プログラムを実行することにより実現することができる。なお、判定部16は、ロボット制御部11の構成要素であってもよい。
(記憶部)
記憶部14は、各種の情報(データやプログラム等を含む)を記憶する機能を有する。この記憶部14は、制御プログラム等を記憶する。記憶部14の機能は、ROM等やいわゆる外部記憶装置(図示せず)によって実現することができる。
(受付部)
受付部15は、入力装置42からの入力を受け付ける機能を有している。この受付部15の機能は、例えばインターフェース回路によって実現することができる。なお、例えばタッチパネルを用いる場合には、受付部15は、ユーザーの指のタッチパネルへの接触等を検知する入力検知部としての機能を有する。
<表示装置>
表示装置41は、例えば、液晶ディスプレイ、ELディスプレイ等で構成されたモニター(図示せず)を備えており、例えば、各種の画像(ウィンドウ等の各種の画面等を含む)や文字等を表示する機能を有する。
<入力装置>
入力装置42は、例えば、マウスやキーボード等で構成されている。したがって、ユーザーは、入力装置42を操作することで、制御装置1に対して各種の処理等の指示を行うことができる。
具体的には、ユーザーは、表示装置41に表示される各種画面(ウィンドウ等)に対して入力装置42のマウスでクリックする操作や、入力装置42のキーボードで文字や数字等を入力する操作により、制御装置1に対する指示を行うことができる。以下、このユーザーによる入力装置42を用いた指示(入力装置42による入力)を「操作指示」とも言う。この操作指示は、入力装置42により、表示装置41に表示された内容から所望の内容を選択する選択操作や、入力装置42により、文字や数字等を入力する入力指示等を含む。また、入力には、選択も含まれる。
なお、本実施形態では、表示装置41および入力装置42の代わりに、表示装置41および入力装置42(表示部および入力部)を兼ね備えた表示入力装置(図示せず)を設けてもよい。表示入力装置としては、例えばタッチパネル(静電式タッチパネルや感圧式タッチパネル)等を用いることができる。また、入力装置42は、音(音声を含む)を認識する構成であってもよい。
<ロボットシステムにおける制御の基本>
制御装置1は、作業(例えば、検査)において、各位置センサー281、力検出部290の出力、すなわち、各位置センサー281の検出情報(検出結果)、力検出部290の検出情報(検出結果)等に基づいて、ロボット2の駆動(動作)を位置制御、力制御等で制御する。
位置制御とは、ロボット2のロボットアーム20の先端部またはエンドエフェクター7の位置や姿勢に関する情報に基づいて、ロボットアーム20の先端部またはエンドエフェクター7を目標の位置に目標の姿勢になるように移動させるロボット2の動作の制御である。また、ロボットアーム20の先端部またはエンドエフェクター7の位置や姿勢に関する情報は、各位置センサー281の検出情報に基づいて求めることが可能である。
また、力制御とは、力検出部290により力の検出を行い、力検出部290の検出情報に基づいて、ロボットアーム20の先端部またはエンドエフェクター7の位置や姿勢を変更したり、また、エンドエフェクター7を押したり、引っ張ったりするロボット2の動作の制御である。力制御には、例えば、インピーダンス制御等が含まれている。
インピーダンス制御は、倣い制御を含む。まず、簡単に説明すると、インピーダンス制御では、ロボットアーム20の先端部に加わる力を可能な限り所定の力に維持、すなわち、力検出部290により検出される所定方向の力を可能な限り目標値(0も含む)に維持するようにロボットアーム20(ロボット2)の動作を制御する。これにより、例えば、ロボットアーム20(ロボット2)に対してインピーダンス制御を行うと、ロボットアーム20は、エンドエフェクター7が対象物に対し、前記所定方向について倣う動作を行う。
また、より詳しく説明すると、ロボット2のインピーダンス制御のモデルは、例えば、下記(A)式に示す運動方程式で表すことができる。
f(t)=mx’’+cx’+kx ・・・(A)
前記(A)式において、mは、質量(慣性)、cは、粘性係数、kは、弾性(剛性)係数、f(t)は、力、xは、目標位置からの変位(位置)である。また、xの1次微分、すなわち、x’は、速度に対応し、xの2次微分、すなわち、x’’は、加速度に対応する。なお、以下では、m、cおよびkをそれぞれ単に、「パラメーター」とも言う。
インピーダンス制御では、前記(A)式の特性をロボットアーム20の先端部に持たせるための制御系を構成する。すなわち、前記(A)式で表される仮想質量、仮想粘性係数、仮想弾性係数を、あたかもロボットアーム20の先端部が持っているかのように制御を行う。
また、前記(A)式におけるパラメーターm、cおよびkは、それぞれ、特に限定されず、諸条件に基づいて適宜設定される。すなわち、パラメーターm、cおよびkは、それぞれ、ロボット2が行う作業に応じて都合のよい値に設定される。
このロボットシステム100は、例えば、制御装置1の制御の下、所定の対象物等に対して作業を行う。本実施形態では、ねじ穴82の検査を行う。このねじ穴82の検査では、ロボット2は、エンドエフェクター7のねじ用限界ゲージ3をねじ穴82に締結(挿入)する。
また、図12に示すように、ねじ穴82の検査の際は、表示装置41に、検査用のウィンドウ5(設定用画面)が表示される。このウィンドウ5には、入力用のテキストボックス51、52、53、54と、「完了」と表示されたボタン55(アイコン)とが、それぞれ、表示される。テキストボックス51は、ねじ穴82(雌ねじ)の呼び径を入力する機能を有している。また、テキストボックス52は、ねじ穴82の種類、すなわち、ねじ穴82が並目と細目とのいずれであるかを入力する機能を有している。また、テキストボックス53は、ねじ穴82の深さの規格値の上限値(上限)を入力する機能を有している。また、テキストボックス54は、ねじ穴82の深さの規格値の下限値(下限)を入力する機能を有している。
まず、ユーザーは、表示装置41に表示されたウィンドウ5において、テキストボックス51、52、53、54、55に、それぞれ、ねじ穴82の対応する情報(条件)を入力する操作指示を行う。ここで、本発明で、「入力」は、「選択」を含む。
具体的には、テキストボックス51に、ねじ穴82(ねじ)の呼び径(例えば、「M1」)を入力する。また、テキストボックス52に、ねじ穴82の種類、すなわち、ねじ穴82が並目と細目とのいずれであるか(例えば、「並目」)を入力する。また、テキストボックス53に、ねじ穴82の深さの規格値の上限値(上限)を入力する。また、テキストボックス54に、ねじ穴82の深さの規格値の下限値(下限)を入力する。
次に、ユーザーは、「完了」と表示されたボタン55に対する操作指示を行う。
制御装置1の受付部15がユーザーによるボタン55に対する操作指示を受け付けると、制御装置1、例えば、ロボット制御部11は、ねじ穴82の検査のプログラム(検査プログラム)を生成する。そして、制御装置1は、そのプログラムを実行して、ロボット2等の駆動を制御し、ねじ穴82の検査を行う。
次に、図5〜図10に基づいて、ワーク81に形成されたねじ穴82の検査におけるロボットシステム100の動作(制御装置1の制御動作)について説明する。
まず、検査対象のねじ穴82(雌ねじ)は、ワーク81に形成された有底(非貫通)のねじ穴である。このねじ穴82の軸方向は、本実施形態では、z軸方向と一致している。また、ねじ穴82の入口には、+z軸方向に向かって内径が漸増するようにテーパー(傾斜面)が形成されている。なお、テーパーは省略されていてもよい。
また、本実施形態では、ねじ穴82の検査の際、ロボットアーム20によりねじ用限界ゲージ3を回転させるのではなく、ロボットアーム20に設けられたエンドエフェクター7のモーター72によりねじ用限界ゲージ3を回転させる。以下、この方式を「モーター方式」と言う。
まず、ねじ穴82の検査における制御方法は、ロボットアーム20を作動し、ねじ用限界ゲージ3(ねじゲージ)を移動させてねじ用限界ゲージ3の通りゲージ32(または止まり側ゲージ33)をねじ穴82と接触させる工程(第1工程)と、力検出部290によりねじ用限界ゲージ3に加わるx軸方向およびy軸方向の力を検出し、力検出部290の検出情報に基づいて、ロボット2(ロボットアーム20)に対してx軸方向およびy軸方向(ねじ穴82の軸方向と直交する方向)の力制御を行い、ロボットアーム20を作動し、ねじ穴82の軸方向(z軸方向)と直交する方向における力、すなわち、x軸方向およびy軸方向における力が減少するようにねじ用限界ゲージ3を移動させる工程(第2工程)とを備えている。なお、本実施形態では、x軸方向およびy軸方向において力制御を行っているが、力制御の方向は、ねじ穴82の軸を法線とする平面内における任意の方向でよい。
次に、ねじ穴82の通り側の検査におけるロボットシステム100の動作について説明する。
まず、ロボット2(ロボットアーム20)を動作(作動)させ、ねじ用限界ゲージ3の通り側ゲージ32の先端(下端)をねじ穴82の上空に移動させる(図5に示すステップS101)。このステップS101では、ロボット2(ロボットアーム20)に対して力制御は行わずに、位置制御を行う。また、後述するステップS102以降では、ロボット2に対して位置制御および力制御を行う。
次いで、図7に示すように、ロボット2を動作させ、すなわち、シャフト241を下降させ、通り側ゲージ32の先端をねじ穴82に接触させる(ステップS102)(制御方法における第1工程)。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるz軸方向の力を検出し、z軸方向について力制御(インピーダンス制御)を行ってロボット2を動作させる。また、力制御のz軸方向の目標力は、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、例えば、2Nである。これにより、通り側ゲージ32の先端がねじ穴82の入口(+z軸方向の開口)に接触する。
なお、力制御に代えて、例えば、位置制御でねじ用限界ゲージ3をz軸方向に移動させ、力検出部290により、z軸方向において所定の力(例えば、2N)を検出した場合に停止するようにしてもよい。
次いで、図8に示すように、ロボット2を動作させ、通り側ゲージ32の先端をねじ穴82の入口に倣わせる(ステップS103)(制御方法における第2工程)。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるx軸方向およびy軸方向の力を検出し、力検出部290の検出情報(検出結果)に基づいて、ねじ穴82の軸方向と直交する方向、すなわち、x軸方向およびy軸方向における力が減少するようにねじ用限界ゲージ3を移動させる。具体的には、ねじ穴82の軸方向と直交する方向、すなわち、x軸方向およびy軸方向についてそれぞれ力制御(インピーダンス制御)を行ってロボット2を動作させる。また、力制御のx軸方向およびy軸方向の目標力は、それぞれ、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、例えば、0Nである。これにより、ねじ用限界ゲージ3がねじ用限界ゲージ3に加わるx軸方向およびy軸方向の力が減少する方向に移動し、通り側ゲージ32の先端の中心がねじ穴82の入口の中心に移動する。すなわち、z軸方向から見て、通り側ゲージ32がねじ穴82内に配置される。
ここで、ステップS103では、通り側ゲージ32の先端は、ねじ穴82の入口のテーパーに何度か当たりながらx−y平面内における移動方向を換えてx軸方向およびy軸方向に移動し、これにより、通り側ゲージ32の先端の中心は、ねじ穴82の入口の中心に徐々に接近し、z軸方向から見て、通り側ゲージ32がねじ穴82内に配置される。
具体的には、力検出部290によりねじ用限界ゲージ3に加わるx軸方向およびy軸方向の力を検出しつつ、通り側ゲージ32の先端をx軸方向およびy軸方向に移動させてねじ穴82の入口のテーパーに当てる。
次に、力検出部290の検出情報に基づいて、x−y平面内における移動方向を換えてねじ用限界ゲージ3を移動させ、かつ、ねじ用限界ゲージ3を−z軸方向に若干移動させることで、再度、通り側ゲージ32の先端をねじ穴82の入口のテーパーに当てる。これにより、通り側ゲージ32の先端の中心は、ねじ穴82の入口の中心に接近する。このような動作を複数回行うことにより、通り側ゲージ32の先端の中心は、ねじ穴82の入口の中心に徐々に接近してゆき、最終的には、z軸方向から見て、通り側ゲージ32がねじ穴82内に配置される。
なお、ねじ穴82の入口にテーパーが形成されていない場合は、例えば、通り側ゲージ32をx軸方向およびy軸方向に移動させてねじ穴82を探る探り動作等を行って、通り側ゲージ32をねじ穴82内に配置させる。
次いで、通り側ゲージ32の先端のz軸方向の現在の位置を初期位置として記憶部14に記憶する(ステップS104)。
次いで、モーター72を駆動して、通り側ゲージ32が締まる方向にねじ用限界ゲージ3を回転させる動作を開始する(ステップS105)。
次いで、シャフト241を下降させる(ステップS106)。ねじ用限界ゲージ3の回転と、シャフト241の下降とにより、通り側ゲージ32がねじ穴82に螺合し、通り側ゲージ32の先端がねじ穴82の底に向って(通り側ゲージ32が締まる方向に)移動する。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるx軸方向、y軸方向およびz軸方向の力を検出し、x軸方向、y軸方向およびz軸方向についてそれぞれ力制御(インピーダンス制御)を行い、また、z軸方向について位置制御を行ってロボット2を動作させる。また、力制御のx軸方向、y軸方向およびz軸方向の目標力は、それぞれ、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、x軸方向、y軸方向およびz軸方向の目標力は、それぞれ、例えば、0Nである。これにより、通り側ゲージ32がねじ穴82を損傷させてしまうことを抑制することができ、また、円滑かつ適確に、通り側ゲージ32を締まる方向に移動させることができる。このステップS106は、ねじ用限界ゲージ3が所定回数回転(例えば、半回転)するまで実行する。なお、本区間において、z軸方向についての力制御を省略してもよい。
次いで、引き続きシャフト241を下降させる(ステップS107)。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるx軸方向およびy軸方向の力を検出し、x軸方向およびy軸方向についてそれぞれ力制御(インピーダンス制御)を行い、また、z軸方向について位置制御を行ってロボット2を動作させる。この場合、本区間では、z軸方向については力制御を行わない。また、力制御のx軸方向およびy軸方向の目標力は、それぞれ、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、例えば、0Nである。これにより、通り側ゲージ32がねじ穴82を損傷させてしまうことを抑制することができ、また、円滑かつ適確に、通り側ゲージ32を締まる方向に移動させることができる。また、力検出部290によりz軸方向の力を検出し、z軸方向において所定の力(例えば、3N)を検出すると、シャフト241およびモーター72を停止させる。このようにして、図9に示すように、通り側ゲージ32の先端がねじ穴82の底に接触する。すなわち、通り側ゲージ32がねじ穴82に締結される。なお、通り側ゲージ32の先端がねじ穴82の底に到達しない場合もある。また、このステップS107では、z軸方向について力制御を行わないので、力検出部290のz軸方向の力の検出情報を他の制御に用いることができる。具体的には、z軸方向において所定の力を検出することをシャフト241およびモーター72の停止条件としている。
次いで、通り側ゲージ32の先端のz軸方向の現在の位置を停止位置として記憶部14に記憶する(ステップS108)。
次いで、初期位置と停止位置とに基づいて、ねじ穴82の深さ(z軸方向の長さ)を求める(ステップS109)。このねじ穴82の深さは、初期位置から停止位置を減算して求め、測定値として記憶部14に記憶する。
次いで、ねじ穴82の深さの測定値と、ねじ穴82の深さの規格値(規定値)の上限値および下限値とに基づいて、ねじ穴82の通り側について、合否を判定する。
すなわち、ねじ穴82の深さの測定値がねじ穴82の深さの規格値の範囲内であるか否かを判断し(ステップS110)、範囲内であれば、「合格」と判定し(ステップS111)、範囲外であれば、「不合格」と判定する(ステップS112)。
このねじ穴82の通り側の検査結果は、記憶部14に記憶され、必要に応じて、表示装置41により表示される。
次いで、モーター72を駆動して、通り側ゲージ32が外れる方向にねじ用限界ゲージ3を回転させる動作を開始する(ステップS113)。
次いで、シャフト241を上昇させる(ステップS114)。ねじ用限界ゲージ3の回転と、シャフト241の上昇とにより、ねじ用限界ゲージ3は、通り側ゲージ32がねじ穴82から外れる方向(緩む方向)に移動する。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるx軸方向、y軸方向およびz軸方向の力を検出し、x軸方向、y軸方向およびz軸方向についてそれぞれ力制御(インピーダンス制御)を行い、また、z軸方向について位置制御を行ってロボット2を動作させる。また、力制御のx軸方向、y軸方向およびz軸方向の目標力は、それぞれ、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、x軸方向、y軸方向およびz軸方向の目標力は、それぞれ、例えば、0Nである。これにより、通り側ゲージ32がねじ穴82を損傷させてしまうことを抑制することができ、また、円滑かつ適確に、通り側ゲージ32を外す方向に移動させることができる。このようにして、図10に示すように、通り側ゲージ32の先端が初期位置よりもz軸方向+側に所定距離(例えば、0.2mm)離間した位置に到達するまで、ねじ用限界ゲージ3を移動させ、シャフト241およびモーター72を停止させる。なお、本区間のうちの一部の区間または全区間において、z軸方向についての力制御を省略してもよい。以上で、このプログラムを終了する。
次に、ねじ穴82の止まり側の検査におけるロボットシステム100の動作について説明する。
まず、図6に示すステップS201〜ステップS206は、前述したステップS101〜ステップS106において、通り側ゲージ32を止まり側ゲージ33に代える他は、ステップS101〜ステップS106と同様であり、その説明は省略する。
ステップS206に引き続きシャフト241を下降させる(ステップS207)。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるx軸方向およびy軸方向の力を検出し、x軸方向およびy軸方向についてそれぞれ力制御(インピーダンス制御)を行い、また、z軸方向について位置制御を行ってロボット2を動作させる。また、力制御のx軸方向およびy軸方向の目標力は、それぞれ、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、例えば、0Nである。これにより、止まり側ゲージ33がねじ穴82を損傷させてしまうことを抑制することができ、また、円滑かつ適確に、止まり側ゲージ33を締まる方向に移動させることができる。また、力検出部290によりz軸方向の力を検出し、z軸方向において所定の力(例えば、3N)を検出すると、シャフト241およびモーター72を停止させる。このようにして、ねじ用限界ゲージ3は、止まり側ゲージ33の先端がねじ穴82の底に到達する前に停止するか、または、止まり側ゲージ33の先端がねじ穴82の底に到達して停止する。また、このステップS207では、z軸方向について力制御を行わないので、力検出部290のz軸方向の力の検出情報を他の制御に用いることができる。具体的には、z軸方向において所定の力を検出することをシャフト241およびモーター72の停止条件としている。
次いで、止まり側ゲージ33の先端のz軸方向の現在の位置を停止位置として記憶部14に記憶する(ステップS208)。
次いで、初期位置と停止位置とのz軸方向の距離を求める(ステップS209)。このステップS209では、初期位置から停止位置を減算し、その減算値を記憶部14に記憶する。
次いで、初期位置と停止位置とのz軸方向の距離に基づいて、ねじ穴82の止まり側について、合否を判定する。
すなわち、初期位置と停止位置とのz軸方向の距離がねじ穴82のリードの2倍未満であるか否かを判断し(ステップS210)、ねじ穴82のリードの2倍未満であれば、「合格」と判定し(ステップS211)、ねじ穴82のリードの2倍以上であれば、「不合格」と判定する(ステップS212)。ねじ穴82のリードとは、ねじ用限界ゲージ3(止まり側ゲージ33)がねじ穴82に対して1回転したときに、ねじ用限界ゲージ3がねじ穴82に対して進む距離を言う。なお、合否の閾値の「2倍」は、1例であり、他の値に設定してもよい。
このねじ穴82の止まり側の検査結果は、記憶部14に記憶され、必要に応じて、表示装置41により表示される。
なお、本実施形態では、ねじ穴82の止まり側について、初期位置と停止位置とのz軸方向の距離に基づいて合否を判定しているが、これに限らず、例えば、ねじ用限界ゲージ3(止まり側ゲージ33)の回転回数(回転量)に基づいて、合否を判定してもよい。具体的には、止まり側ゲージ33の先端が初期位置から停止位置に移動するまでにねじ用限界ゲージ3が回転する回数(回転量)を求め、そのねじ用限界ゲージ3が回転する回数が2回転未満であるか否かを判断し、2回転未満であれば、「合格」と判定し、2回転以上であれば、「不合格」と判定する。なお、合否の閾値の「2回転」は、1例であり、他の値に設定してもよい。
また、ステップS213およびステップS214は、前述したステップS113およびステップS114において、通り側ゲージ32を止まり側ゲージ33に代える他は、ステップS113およびステップS114と同様であり、その説明は省略する。以上で、このプログラムを終了する。
このねじ穴82の通り側の検査では、ねじ用限界ゲージ3に加わるz軸方向の力は、例えば、図11に示すように推移する。図11に示すグラフにおいて、「底に到達」と記載されたピークは、シャフト241を下降させたときに、ねじ用限界ゲージ3の通り側ゲージ32の先端がねじ穴82の底に到達したときのz軸方向の力を示している。
以上説明したように、ロボットシステム100によれば、容易かつ適確に、ねじ用限界ゲージ3とねじ穴82との位置合わせを行うことができ、容易かつ適確に、ねじ用限界ゲージ3の通りゲージ32や止まり側ゲージ33をねじ穴82に挿入することができる。
また、ねじ用限界ゲージ3の通りゲージ32や止まり側ゲージ33をねじ穴82に挿入する際およびねじ穴82から外す際、ねじ用限界ゲージ3がねじ穴82を損傷させてしまうことを抑制することができる。
以上説明したように、制御装置1は、力検出部290が設けられたロボットアーム20を有するロボット2を制御する装置である。
制御装置1は、ロボットアーム20を作動し、ロボットアーム20の力検出部290よりも先端側に設けられ、ねじ穴82の検査に用いられ、通り側ゲージ32および止まり側ゲージ33(ねじ部)を有するねじ用限界ゲージ3(ねじゲージ)を移動させて通り側ゲージ32(または止まり側ゲージ33)(ねじ部)をねじ穴82と接触させた後、力検出部290によりねじ用限界ゲージ3(ねじゲージ)に加わる力を検出し、力検出部290の検出情報に基づいて、ねじ穴82の軸方向と直交する方向の力制御を行い、ロボットアーム20を作動し、ねじ用限界ゲージ3(ねじゲージ)を移動させるロボット制御部11(制御部)を備えている。なお、ロボット制御部11およびモーター制御部12とで制御部を構成してもよい。また、力検出部290は、ロボットアーム20に着脱可能に設けられていてもよく、また、離脱不能に設けられていてもよい。
このような制御装置1によれば、容易かつ適確に、ねじ用限界ゲージ3とねじ穴82との位置合わせを行うことができ、容易かつ適確に、ねじ用限界ゲージ3をねじ穴82に挿入することができる。
また、ロボット制御部11(制御部)は、通り側ゲージ32(または止まり側ゲージ33)(ねじ部)をねじ穴82と接触させた後、通り側ゲージ32(または止まり側ゲージ33)(ねじ部)をねじ穴82に挿入する際、少なくとも一部の区間において、ロボット2に対してねじ穴82の軸方向の力制御を行わない。
これにより、ロボット2に対してねじ穴82の軸方向の力制御を行わない区間において、力検出部290のねじ穴82軸方向の力の検出情報を他の制御に用いることができる。
また、ロボット制御部11(制御部)は、ねじ穴82に挿入された通り側ゲージ32(または止まり側ゲージ33)(ねじ部)をねじ穴82への挿入方向と反対方向に移動させる際、少なくとも一部の区間において、ロボット2に対してねじ穴82の軸方向の力制御を行う。
これにより、ねじ用限界ゲージ3がねじ穴82を損傷させてしまうことを抑制することができ、また、円滑かつ適確に、ねじ用限界ゲージ3を挿入方向と反対方向に移動させることができる。
また、ロボット制御部11(制御部)は、ねじ用限界ゲージ3(ねじゲージ)をねじ穴82の軸回りに回転させる場合、ロボットアーム20に設けられたモーター72により回転させる。
これにより、ロボットアーム20がねじ用限界ゲージ3を回転させる必要がないので、ロボットアーム20に設けられた配線がロボットアーム20に巻き付くことを抑制することができる。
また、ロボットアーム20は、第1アーム22と、第2アーム23と、シャフト241を備える作業ヘッド24と(複数のアーム)を有している。ロボット制御部11(制御部)は、ロボットアーム20の最も先端のアームの1例であるシャフト241の回動軸(第3回動軸O3)と中心軸が一致しているねじ用限界ゲージ3(ねじゲージ)を回転させる。
これにより、ねじ用限界ゲージ3を回転させる制御を容易かつ適確に行うことができる。
また、制御装置1は、ねじ穴82の深さ情報とねじ用限界ゲージ3(ねじゲージ)の回転情報と力検出部290の検出情報との少なくとも一つに基づいてねじ穴82の合否を判定する判定部16を有する。
これにより、別途、ねじ穴82の合否を判定する装置を用意する必要がなく、ねじ穴82の検査を行うことができる。
また、ロボット2は、力検出部290が設けられたロボットアーム20を有し、制御装置1により制御される。
このようなロボット2によれば、容易かつ適確に、ねじ用限界ゲージ3とねじ穴82との位置合わせを行うことができ、容易かつ適確に、ねじ用限界ゲージ3をねじ穴に挿入することができる。
また、制御方法は、力検出部290が設けられたロボットアーム20を有するロボット2を制御する制御方法である。
この制御方法は、ロボットアーム20を作動し、ロボットアーム20の力検出部290よりも先端側に設けられ、ねじ穴82の検査に用いられ、通り側ゲージ32および止まり側ゲージ33(ねじ部)を有するねじ用限界ゲージ3(ねじゲージ)を移動させて通り側ゲージ32(または止まり側ゲージ33)(ねじ部)をねじ穴82と接触させる工程(第1工程)と、力検出部290によりねじ用限界ゲージ3(ねじゲージ)に加わる力を検出し、力検出部290の検出情報に基づいて、ねじ穴82の軸方向と直交する方向の力制御を行い、ロボットアーム20を作動し、ねじ用限界ゲージ3(ねじゲージ)を移動させる工程(第2工程)とを備える。
このような制御方法によれば、容易かつ適確に、ねじ用限界ゲージ3とねじ穴82との位置合わせを行うことができ、容易かつ適確に、ねじ用限界ゲージ3をねじ穴82に挿入することができる。
<第2実施形態>
図13は、本発明のロボットの第2実施形態と、その第2実施形態のロボットを備えるロボットシステムとを示す側面図である。
図14および図15は、それぞれ、図13に示すロボットシステムの制御装置の検査の際の制御動作を示すフローチャートである。
以下、第2実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
図13に示すように、第2実施形態では、エンドエフェクター7Aが、シャフト241の先端部に着脱可能に連結される。
エンドエフェクター7Aは、力検出部290と、力検出部290に取り付けられた取り付け部73と、取り付け部73に着脱可能に取り付けられたねじ用限界ゲージ3とを有している。すなわち、エンドエフェクター7Aは、モーターを有していない。このエンドエフェクター7Aでは、力検出部290が、直接または図示しない連結部材を介して、シャフト241の先端部に着脱可能に連結される。また、シャフト241の中心軸、すなわち、第3回動軸O3と、ねじ用限界ゲージ3の中心軸とは、一致している。すなわち、第3回動軸O3の軸方向から見て、第3回動軸O3と、ねじ用限界ゲージ3とは重なっている。
次に、図7〜図10、図14、図15に基づいて、ワーク81に形成されたねじ穴82の検査におけるロボットシステム100の動作(制御装置1の制御動作)について説明する。
まず、検査対象のねじ穴82は、ワーク81に形成された有底(非貫通)のねじ穴である。
また、本実施形態では、ねじ穴82の検査の際、ロボットアーム20によりねじ用限界ゲージ3を回転させる。以下、この方式を「ロボット方式」と言う。
まず、ねじ穴82の通り側の検査におけるロボットシステム100の動作について説明する。
まず、ロボット2を動作させ、ねじ用限界ゲージ3の通り側ゲージ32の先端をねじ穴82の上空に移動させる(図14に示すステップS301)。このステップS301では、ロボット2に対して力制御は行わずに、位置制御を行う。また、後述するステップS302以降では、ロボット2に対して位置制御および力制御を行う。
次いで、図7に示すように、ロボット2を動作させ、すなわち、シャフト241を下降させ、通り側ゲージ32の先端をねじ穴82に接触させる(ステップS302)(制御方法における第1工程)。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるz軸方向の力を検出し、z軸方向について力制御(インピーダンス制御)を行ってロボット2を動作させる。また、力制御のz軸方向の目標力は、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、例えば、2Nである。これにより、通り側ゲージ32の先端がねじ穴82の入口に接触する。
なお、力制御に代えて、例えば、位置制御でねじ用限界ゲージ3をz軸方向に移動させ、力検出部290により、z軸方向において所定の力(例えば、2N)を検出した場合に停止するようにしてもよい。
次いで、図8に示すように、ロボット2を動作させ、通り側ゲージ32の先端をねじ穴82の入口に倣わせる(ステップS303)(制御方法における第2工程)。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるx軸方向およびy軸方向の力を検出し、力検出部290の検出情報に基づいて、ねじ穴82の軸方向と直交する方向、すなわち、x軸方向およびy軸方向における力が減少するようにねじ用限界ゲージ3を移動させる。具体的には、ねじ穴82の軸方向と直交する方向、すなわち、x軸方向およびy軸方向についてそれぞれ力制御(インピーダンス制御)を行ってロボット2を動作させる。また、力制御のx軸方向およびy軸方向の目標力は、それぞれ、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、例えば、0Nである。これにより、ねじ用限界ゲージ3がねじ用限界ゲージ3に加わるx軸方向およびy軸方向の力が減少する方向に移動し、通り側ゲージ32の先端の中心がねじ穴82の入口の中心に移動する。すなわち、z軸方向から見て、通り側ゲージ32がねじ穴82内に配置される。
次いで、通り側ゲージ32の先端のz軸方向の現在の位置を初期位置として記憶部14に記憶するステップS304)。
次いで、シャフト241を所定方向に回転させつつ下降させる(ステップS305)。前記所定方向は、通り側ゲージ32が締まる方向である。これにより、ねじ用限界ゲージ3が回転し、そのねじ用限界ゲージ3の回転と、シャフト241の下降とにより、通り側ゲージ32がねじ穴82に螺合し、通り側ゲージ32の先端がねじ穴82の底に向って(通り側ゲージ32が締まる方向に)移動する。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるx軸方向、y軸方向およびz軸方向の力を検出し、x軸方向、y軸方向およびz軸方向についてそれぞれ力制御(インピーダンス制御)を行い、また、z軸方向およびu軸方向(z軸周りの方向)についてそれぞれ位置制御を行ってロボット2を動作させる。また、力制御のx軸方向、y軸方向およびz軸方向の目標力は、それぞれ、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、x軸方向、y軸方向およびz軸方向の目標力は、それぞれ、例えば、0Nである。これにより、通り側ゲージ32がねじ穴82を損傷させてしまうことを抑制することができ、また、円滑かつ適確に、通り側ゲージ32を締まる方向に移動させることができる。このステップS305は、ねじ用限界ゲージ3が所定回数回転(例えば、半回転)するまで実行する。なお、本区間において、z軸方向についての力制御を省略してもよい。
次いで、引き続きシャフト241を所定方向に回転させつつ下降させる(ステップS305)。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるx軸方向およびy軸方向の力を検出し、x軸方向およびy軸方向についてそれぞれ力制御(インピーダンス制御)を行い、また、z軸方向およびu軸方向(z軸周りの方向)についてそれぞれ位置制御を行ってロボット2を動作させる。この場合、本区間では、z軸方向については力制御を行わない。また、力制御のx軸方向およびy軸方向の目標力は、それぞれ、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、例えば、0Nである。これにより、通り側ゲージ32がねじ穴82を損傷させてしまうことを抑制することができ、また、円滑かつ適確に、通り側ゲージ32を締まる方向に移動させることができる。また、力検出部290によりz軸方向の力を検出し、z軸方向において所定の力(例えば、3N)を検出すると、シャフト241を停止させる。このようにして、図9に示すように、通り側ゲージ32の先端がねじ穴82の底に接触する。すなわち、通り側ゲージ32がねじ穴82に締結される。なお、通り側ゲージ32の先端がねじ穴82の底に到達しない場合もある。また、このステップS306では、z軸方向について力制御を行わないので、力検出部290のz軸方向の力の検出情報を他の制御に用いることができる。具体的には、z軸方向において所定の力を検出することをシャフト241の停止条件としている。
次いで、通り側ゲージ32の先端のz軸方向の現在の位置を停止位置として記憶部14に記憶する(ステップS307)。
次いで、初期位置と停止位置とに基づいて、ねじ穴82の深さ(z軸方向の長さ)を求める(ステップS308)。このねじ穴82の深さは、初期位置から停止位置を減算して求め、測定値として記憶部14に記憶する。
次いで、ねじ穴82の深さの測定値と、ねじ穴82の深さの規格値(規定値)の上限値および下限値とに基づいて、ねじ穴82の通り側について、合否を判定する。
すなわち、ねじ穴82の深さの測定値がねじ穴82の深さの規格値の範囲内であるか否かを判断し(ステップS309)、範囲内であれば、「合格」と判定し(ステップS310)、範囲外であれば、「不合格」と判定する(ステップS311)。
このねじ穴82の通り側の検査結果は、記憶部14に記憶され、必要に応じて、表示装置41により表示される。
次いで、シャフト241をステップS305と反対方向に回転させつつ上昇させる(ステップS312)。これにより、ねじ用限界ゲージ3が回転し、そのねじ用限界ゲージ3の回転と、シャフト241の上昇とにより、ねじ用限界ゲージ3は、通り側ゲージ32がねじ穴82から外れる方向(緩む方向)に移動する。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるx軸方向、y軸方向およびz軸方向の力を検出し、x軸方向、y軸方向およびz軸方向についてそれぞれ力制御(インピーダンス制御)を行い、また、z軸方向およびu軸方向(z軸周りの方向)について位置制御を行ってロボット2を動作させる。また、力制御のx軸方向、y軸方向およびz軸方向の目標力は、それぞれ、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、x軸方向、y軸方向およびz軸方向の目標力は、それぞれ、例えば、0Nである。これにより、通り側ゲージ32がねじ穴82を損傷させてしまうことを抑制することができ、また、円滑かつ適確に、通り側ゲージ32を外す方向に移動させることができる。このようにして、図10に示すように、通り側ゲージ32の先端が初期位置よりもz軸方向+側に所定距離(例えば、0.2mm)離間した位置に到達するまで、ねじ用限界ゲージ3を移動させ、シャフト241を停止させる。なお、本区間のうちの一部の区間または全区間において、z軸方向についての力制御を省略してもよい。以上で、このプログラムを終了する。
次に、ねじ穴82の止まり側の検査におけるロボットシステム100の動作について説明する。
まず、図15に示すステップS401〜ステップS405は、前述したステップS301〜ステップS305において、通り側ゲージ32を止まり側ゲージ33に代える他は、ステップS301〜ステップS305と同様であり、その説明は省略する。
ステップS405に引き続きシャフト241を所定方向に回転させつつ下降させる(ステップS406)。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるx軸方向およびy軸方向の力を検出し、x軸方向およびy軸方向についてそれぞれ力制御(インピーダンス制御)を行い、また、z軸方向およびu軸方向(z軸周りの方向)についてそれぞれ位置制御を行ってロボット2を動作させる。また、力制御のx軸方向およびy軸方向の目標力は、それぞれ、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、例えば、0Nである。これにより、止まり側ゲージ33がねじ穴82を損傷させてしまうことを抑制することができ、また、円滑かつ適確に、止まり側ゲージ33を締まる方向に移動させることができる。また、力検出部290によりz軸方向の力を検出し、z軸方向において所定の力(例えば、3N)を検出すると、シャフト241を停止させる。このようにして、ねじ用限界ゲージ3は、止まり側ゲージ33の先端がねじ穴82の底に到達する前に停止するか、または、止まり側ゲージ33の先端がねじ穴82の底に到達して停止する。また、このステップS406では、z軸方向について力制御を行わないので、力検出部290のz軸方向の力の検出情報を他の制御に用いることができる。具体的には、z軸方向において所定の力を検出することをシャフト241の停止条件としている。
次いで、止まり側ゲージ33の先端のz軸方向の現在の位置を停止位置として記憶部14に記憶する(ステップS407)。
次いで、初期位置と停止位置とのz軸方向の距離を求める(ステップS408)。このステップS408では、初期位置から停止位置を減算し、その減算値を記憶部14に記憶する。
次いで、初期位置と停止位置とのz軸方向の距離に基づいて、ねじ穴82の止まり側について、合否を判定する。
すなわち、初期位置と停止位置とのz軸方向の距離がねじ穴82のリードの2倍未満であるか否かを判断し(ステップS409)、ねじ穴82のリードの2倍未満であれば、「合格」と判定し(ステップS410)、ねじ穴82のリードの2倍以上であれば、「不合格」と判定する(ステップS411)。なお、合否の閾値の「2倍」は、1例であり、他の値に設定してもよい。
このねじ穴82の止まり側の検査結果は、記憶部14に記憶され、必要に応じて、表示装置41により表示される。
なお、本実施形態では、ねじ穴82の止まり側について、初期位置と停止位置とのz軸方向の距離に基づいて合否を判定しているが、これに限らず、例えば、ねじ用限界ゲージ3(止まり側ゲージ33)の回転回数(回転量)に基づいて、合否を判定してもよい。具体的には、止まり側ゲージ33の先端が初期位置から停止位置に移動するまでにねじ用限界ゲージ3が回転する回数(回転量)を求め、そのねじ用限界ゲージ3が回転する回数が2回転未満であるか否かを判断し、2回転未満であれば、「合格」と判定し、2回転以上であれば、「不合格」と判定する。なお、合否の閾値の「2回転」は、1例であり、他の値に設定してもよい。
また、ステップS412は、前述したステップS312において、通り側ゲージ32を止まり側ゲージ33に代える他は、ステップS312と同様であり、その説明は省略する。以上で、このプログラムを終了する。
以上のような第2実施形態によっても、前述した実施形態と同様の効果を発揮することができる。
以上説明したように、ロボット制御部11(制御部)は、ねじ用限界ゲージ3(ねじゲージ)をねじ穴82の軸周りに回転させる場合、ロボットアーム20により回転させる。
これにより、別途、ねじ用限界ゲージ3を回転させる装置をロボットアーム20に取り付けることなく、ねじ用限界ゲージ3を回転させることができ、これによって、ロボット2の小型化を図ることができる。
また、ロボットアーム20は、第1アーム22と、第2アーム23と、シャフト241を備える作業ヘッド24と(複数のアーム)を有している。ロボット制御部11(制御部)は、ロボットアーム20の最も先端のアームの1例であるシャフト241に設けられた力検出部290に取り付けられたねじ用限界ゲージ3(ねじゲージ)を回転させる。
これにより、ねじ用限界ゲージ3を回転させる制御を容易かつ適確に行うことができる。
<第3実施形態>
図16は、第3実施形態におけるねじ穴の検査を説明するための図である。
図17および図18は、それぞれ、第3実施形態におけるねじ穴の検査の際の制御装置の制御動作を示すフローチャートである。
以下、第3実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
図16に示すように、第3実施形態では、検査対象のねじ穴83(雌ねじ)は、ワーク81に形成され、ワーク81を貫通したねじ穴(貫通穴)である。この貫通したねじ穴83の検査では、通り側の検査の方法(合否の判定の仕方)が前述した有底のねじ穴82の検査と異なっている。
次に、図17、図18に基づいて、ワーク81に形成されたねじ穴83(貫通穴)の検査におけるロボットシステム100の動作(制御装置1の制御動作)について説明する。
但し、ねじ穴83の止まり側の検査におけるロボットシステム100の動作については、前述した有底のねじ穴82の検査の場合と同様であるので、その説明は省略し、以下では、ねじ穴83の通り側の検査におけるロボットシステム100の動作について説明する。
まず、図17に基づいて、第1実施形態のロボットシステム100を用いる場合、すなわち、モーター方式の場合について説明する。
まず、図17に示すステップS501〜ステップS504、ステップS506、ステップS507は、前述したステップS101〜ステップS106と同様であり、その説明は省略する。
ステップS504の後、z軸を法線とする仮想平面85を設定する(ステップS505)。
仮想平面85は、初期位置からz軸方向−側(下方)に所定距離離間した位置に設定される。この所定距離は、ねじ穴83の深さよりも所定の長さ(例えば、1mm)長い値とされる。すなわち、仮想平面85は、仮想平面85のz軸方向の位置がねじ穴83の出口(−z軸方向の開口)よりもz軸方向−側の所定の位置となるように設定される。なお、前記所定距離は、ねじ穴83の深さと同一であってもよい。すなわち、仮想平面85は、仮想平面85のz軸方向の位置がねじ穴83の出口と同一の位置となるように設定してもよい。
次いで、ステップS506、ステップS507を実行し、引き続きシャフト241を下降させる(ステップS508)。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるx軸方向およびy軸方向の力を検出し、x軸方向およびy軸方向についてそれぞれ力制御(インピーダンス制御)を行い、また、z軸方向について位置制御を行ってロボット2を動作させる。また、力制御のx軸方向およびy軸方向の目標力は、それぞれ、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、例えば、0Nである。これにより、通り側ゲージ32がねじ穴83を損傷させてしまうことを抑制することができ、また、円滑かつ適確に、通り側ゲージ32を締まる方向に移動させることができる。
次いで、力検出部290によりz軸方向の力を検出し、検出されたz軸方向の力が所定の閾値(例えば、3N)以上であるか否かを判断する(ステップS509)。
ステップS509において、力検出部290により検出されたz軸方向の力が閾値以上ではない(閾値未満である)と判断した場合は、通り側ゲージ32の先端が仮想平面85まで移動したか否かを判断する(ステップS510)。
ステップS510において、通り側ゲージ32の先端が仮想平面85まで移動していないと判断した場合は、ステップS508に戻り、再度、ステップS508以降を実行する。
また、ステップS510において、通り側ゲージ32の先端が仮想平面85まで移動したと判断した場合は、ねじ穴83の通り側について、「合格」と判定する(ステップS511)。なお、ステップS510で「YES」と判断されるのは、力検出部290により検出されたz軸方向の力が閾値未満のまま、通り側ゲージ32の先端が仮想平面85まで移動した場合である。
また、ステップS509において、力検出部290により検出されたz軸方向の力が閾値以上であると判断した場合は、ねじ穴83の通り側について、「不合格」と判定する(ステップS512)。なお、ステップS509で「YES」と判断されるのは、通り側ゲージ32の先端が仮想平面85まで移動する前に、力検出部290により検出されたz軸方向の力が閾値以上になった場合である。
このねじ穴83の通り側の検査結果は、記憶部14に記憶され、必要に応じて、表示装置41により表示される。
次いで、シャフト241およびモーター72を停止させる(ステップS513)。
このように、ステップS508からシャフト241を停止させるまではz軸方向について力制御を行わないので、力検出部290のz軸方向の力の検出情報を他の制御、具体的にはステップS509で用いることができる。
また、ステップS514およびステップS515は、前述したステップS113およびステップS114と同様であり、その説明は省略する。以上で、このプログラムを終了する。
次に、図18に基づいて、第2実施形態のロボットシステム100を用いる場合、すなわち、ロボット方式の場合について説明する。
まず、図18に示すステップS601〜ステップS604、ステップS606は、前述したステップS301〜ステップS305と同様であり、その説明は省略する。
ステップS604の後、z軸を法線とする仮想平面85を設定する(ステップS605)。この仮想平面85の設定は、前述したステップS505と同様であり、その説明は省略する。
次いで、ステップS606を実行し、引き続きシャフト241を所定方向に回転させつつ下降させる(ステップS607)。このロボット2の動作では、力検出部290によりねじ用限界ゲージ3に加わるx軸方向およびy軸方向の力を検出し、x軸方向およびy軸方向についてそれぞれ力制御(インピーダンス制御)を行い、また、z軸方向およびu軸方向(z軸周りの方向)についてそれぞれ位置制御を行ってロボット2を動作させる。また、力制御のx軸方向およびy軸方向の目標力は、それぞれ、特に限定されず、諸条件に応じて適宜設定されるものであるが、1例を挙げると、例えば、0Nである。これにより、通り側ゲージ32がねじ穴83を損傷させてしまうことを抑制することができ、また、円滑かつ適確に、通り側ゲージ32を締まる方向に移動させることができる。
次いで、力検出部290によりz軸方向の力を検出し、検出されたz軸方向の力が所定の閾値(例えば、3N)以上であるか否かを判断する(ステップS608)。
ステップS608において、力検出部290により検出されたz軸方向の力が閾値以上ではない(閾値未満である)と判断した場合は、通り側ゲージ32の先端が仮想平面85まで移動したか否かを判断する(ステップ609)。
ステップS609において、通り側ゲージ32の先端が仮想平面85まで移動していないと判断した場合は、ステップS607に戻り、再度、ステップS607以降を実行する。
また、ステップS609において、通り側ゲージ32の先端が仮想平面85まで移動したと判断した場合は、ねじ穴83の通り側について、「合格」と判定する(ステップS610)。なお、ステップS609で「YES」と判断されるのは、力検出部290により検出されたz軸方向の力が閾値未満のまま、通り側ゲージ32の先端が仮想平面85まで移動した場合である。
また、ステップS608において、力検出部290により検出されたz軸方向の力が閾値以上であると判断した場合は、ねじ穴83の通り側について、「不合格」と判定する(ステップS611)。なお、ステップS608で「YES」と判断されるのは、通り側ゲージ32の先端が仮想平面85まで移動する前に、力検出部290により検出されたz軸方向の力が閾値以上になった場合である。
このねじ穴83の通り側の検査結果は、記憶部14に記憶され、必要に応じて、表示装置41により表示される。
次いで、シャフト241を停止させる(ステップS612)。
このように、ステップS607からシャフト241を停止させるまではz軸方向について力制御を行わないので、力検出部290のz軸方向の力の検出情報を他の制御、具体的にはステップS608で用いることができる。
また、ステップS613は、前述したステップS312と同様であり、その説明は省略する。以上で、このプログラムを終了する。
以上のような第3実施形態によっても、前述した実施形態と同様の効果を発揮することができる。
以上説明したように、制御装置1では、ねじ穴の通り側の検査において、ねじ穴が貫通したねじ穴83の場合と非貫通のねじ穴82の場合とで、ねじ穴の合否の判定の仕方が異なる。
これにより、貫通したねじ穴83と非貫通のねじ穴82とのそれぞれで、適確に検査を行うことができる。
<第4実施形態>
図19は、第4実施形態におけるエンドエフェクターの斜視図である。図20は、第4実施形態におけるエンドエフェクターの正面図である。
以下、第4実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
図19および図20に示すように、第4実施形態では、エンドエフェクター7Bが、シャフト241の先端部に着脱可能に連結される。
図19および図20に示すように、エンドエフェクター7Bは、力検出部290と、力検出部290に取り付けられた取り付け部74(フレーム)と、取り付け部74に設けられたモーター72と、取り付け部74に回転可能に設けられた支持部77と、支持部77に着脱可能に取り付けられたねじ用限界ゲージ3とを有している。モーター72は、z軸方向から見て、力検出部290に対してオフセットしている。すなわち、モーター72は、z軸方向から見て、力検出部290から離間した位置に、y軸方向(水平方向)から見て、力検出部290と重なるように配置されている。これにより、力検出部290に対してモーター72がオフセットしていない場合に比べて、シャフト241の先端からねじ用限界ゲージ3の先端までの長さを短くすることができ、ロボット2の小型化を図ることができる。
また、エンドエフェクター7Bは、モーター72の回転軸に連結されたプーリー(図示せず)と、支持部77に連結されたプーリー76と、前記プーリーとプーリー76とに掛け渡されたタイミングベルト75とを有している。モーター72の回転軸に連結されたプーリーと、プーリー76と、タイミングベルト75とで、モーター72の駆動力をねじ用限界ゲージ3に伝達する動力伝達機構が構成される。なお、動力伝達機構は、このような構成のものに限定されず、例えば、互いに噛合した複数の歯車等で構成されていてもよい。
また、エンドエフェクター7Bは、モーター72の回転軸の回転角度を検出する図示しない位置センサー(角度センサー)を有しており、その位置センサーにより、モーター72Bの回転軸の回転角度が検出できるようになっている。
このエンドエフェクター7Bでは、シャフト241(図1参照)の中心軸、すなわち、第3回動軸O3(図1参照)と、ねじ用限界ゲージ3の中心軸とは、一致している。すなわち、第3回動軸O3の軸方向から見て、第3回動軸O3と、ねじ用限界ゲージ3とは重なっている。
以上のような第4実施形態によっても、前述した実施形態と同様の効果を発揮することができる。
以上説明したように、ロボットアーム20は、第1アーム22と、第2アーム23と、シャフト241を備える作業ヘッド24と(複数のアーム)を有している。ロボット制御部11(制御部)は、ロボットアーム20の最も先端のアームの1例であるシャフト241に設けられた力検出部290に対してオフセットしているモーター72によりねじ用限界ゲージ3(ねじゲージ)を回転させる。
これにより、力検出部290に対してモーター72がオフセットしていない場合に比べて、ロボットアーム20の先端からねじ用限界ゲージ3の先端までの長さを短くすることができ、ロボット2の小型化を図ることができる。
以上、本発明の制御装置、ロボットおよび制御方法を図示の実施形態に基づいて説明したが、本発明は、これに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物が付加されていてもよい。また、制御方法には、他の任意の工程が付加されていてもよい。
また、本発明は、前記各実施形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
また、前記実施形態では、ロボットアームの回動軸の数は、3つであるが、本発明では、これに限定されず、ロボットアームの回動軸の数は、例えば、2つ、または、4つ以上でもよい。すなわち、前記実施形態では、アーム(リンク)の数は、3つであるが、本発明では、これに限定されず、アームの数は、例えば、2つ、または、4つ以上でもよい。 また、前記実施形態では、ロボットアームの数は、1つであるが、本発明では、これに限定されず、ロボットアームの数は、例えば、2つ以上でもよい。すなわち、ロボットは、例えば、双腕ロボット等の複数腕ロボットであってもよい。
また、本発明では、ロボット(ロボット本体)は、他の種類(形式)のロボットであってもよい。具体例としては、例えば、垂直多関節ロボット、脚部を有する脚式歩行(走行)ロボット等が挙げられる。「垂直多関節ロボット」とは、軸数(アーム数)が3つ以上であり、かつ、3つの軸のうちの2つの軸が互いに交差(直交)しているロボットのことを言う。
ロボットとして垂直多関節ロボットを用いる場合は、互いの面同士が非平行である複数の面(多面)に形成されたねじ穴、すなわち、互いのねじ穴の軸方向が異なる複数のねじ穴の検査を容易かつ迅速に行うことができる。
また、垂直多関節ロボットを用いる場合は、例えば、前述したステップS102において、ねじ用限界ゲージ3をz軸に対して傾斜した方向(斜め方向)に移動させて、通り側ゲージ32の先端をねじ穴82に接触させてもよい。
また、ロボットとして2つのロボットアームを有する垂直多関節ロボットを用いる場合は、一方のロボットアームに、ねじ用限界ゲージを有するエンドフェクターを取り付け、他方のロボットアームに、ハンド(エンドフェクター)を取り付け、そのハンドでねじ穴が形成されたワークを把持(保持)し、ねじ穴の検査を行うことができる。