以下、本発明の制御装置、ロボットおよびロボットシステムを添付図面に示す好適な実施形態に基づいて詳細に説明する。
≪ロボットシステム≫
図1は、本発明の好適な実施形態に係るロボットシステムの斜視図である。図2は、図1に示すロボットの概略図である。図3は、図1に示すロボットが有するエンドエフェクターおよび力検出部を示す図である。図4は、図1に示すロボットシステムのシステム構成図である。なお、以下では、説明の便宜上、図1中の上側を「上」、下側を「下」と言う。また、図1中のベース側を「基端」、その反対側(エンドエフェクター側)を「先端」と言う。また、図1では、説明の便宜上、互いに直交する3軸として、X軸、Y軸およびZ軸を図示している。また、以下では、X軸に平行な方向を「X軸方向」とも言い、Y軸に平行な方向を「Y軸方向」とも言い、Z軸に平行な方向を「Z軸方向」とも言う。また、以下では、図示された各矢印の先端側を「+(プラス)」、基端側を「−(マイナス)」と言う。また、+Y軸方向側を「正面側」とも言い、−Y軸方向側を「背面側」ともいう。また、図1の上下方向を「鉛直方向」とし、左右方向を「水平方向」とする。本明細書において、「水平」とは、水平に対して5°以下の範囲内で傾斜している場合も含む。同様に、本明細書において、「鉛直」とは、鉛直に対して5°以下の範囲内で傾斜している場合も含む。
図1に示すロボットシステム100は、ロボット1と、ロボット1の駆動を制御する制御装置5とを備えている。
〈ロボット〉
図1に示すロボット1は、双腕ロボットであり、例えば、精密機器等を製造する製造工程等で用いられ、制御装置5による制御の下、精密機器やその部品等の対象物の把持や搬送等を行うことができる。
図1に示すように、ロボット1は、ベース(基台)210と、ベース210に対して鉛直方向に昇降する昇降部240と、昇降部240を介してベース210に連結されている胴体220と、胴体220の左右に連結されている一対のロボットアーム230(230a、230b)と、2つの力検出部30(30a、30b)と、2つのエンドエフェクター40(40a、40b)と、表示入力装置270と、を有する。
また、図4に示すように、ロボット1は、複数の駆動部131、132と、複数の位置センサー135、136(角度センサー)とを有する。
以下、ロボット1を構成する各部について説明する。
(ベース)
図1に示すベース210は、昇降部240を介して胴体220およびロボットアーム230を支持する部材である。このベース210は、制御装置5を収納している基部2101と、基部2101の上部に設けられた筒状の柱部2102と、を有する。
基部2101には、図示しない複数の車輪(回転部材)と、各車輪をロックする図示しないロック機構と、ロボット1を移動する際に把持するハンドル211(把持部)とが設けられている。これにより、ロボット1を移動させたり、ロボット1を所定の位置で固定したりすることができる。
柱部2102の正面側には、バンパー213が着脱可能に取り付けられている。このバンパー213は、ロボット1とその周りに配置される周辺機器(例えば、図5に示す作業台90等)とが不本意に接触等することを防止または抑制するために用いられる部材である。このバンパー213を周辺機器に当接させることで、ロボット1と周辺機器とを所定の間隔を隔てて向き合わせることができ、よって、ロボット1と周辺機器との意図しない接触等を防止または抑制することができる。また、バンパー213は、柱部2102に対して鉛直方向に移動可能であり、様々な高さの周辺機器に対応することが可能なように構成されている。
また、柱部2102には、非常停止ボタン214が設けられている。非常時にはこの非常停止ボタン214を押すことによって、ロボット1を緊急停止させることができる。
(昇降部)
昇降部240は、ベース210の柱部2102に接続されている。昇降部240は、柱部2102内に挿通して接続されている筒状の筐体部2401と、筐体部2401内に設けられ、筐体部2401を柱部2102に対して例えば鉛直方向に昇降させる昇降機構(図示せず)と、を有している。昇降機構の構成は、胴体220を柱部2102に対して昇降させることができれば、特に限定されず、例えば、モーター、ラック&ピニオン、減速機等で構成することができる。
(胴体)
図1に示すように、胴体220は、昇降部240等に連結されており、これにより、胴体220は、鉛直方向に昇降可能となっている。具体的には、図2に示すように、胴体220は、関節310を介して昇降部240に連結されており、昇降部240に対して鉛直方向に沿った第1回動軸O1まわりに回動可能となっている。
また、胴体220には、胴体220を昇降部240に対して回動させる駆動力を発生させるモーター(図示せず)とモーターの駆動力を減速する減速機(図示せず)とを有する駆動部131と、駆動部131が有するモーターの回転軸の回転角度等を検出する位置センサー135(角度センサー)とが設けられている(図4参照)。
駆動部131が有するモーターとしては、例えば、ACサーボモーター、DCサーボモーター等のサーボモーターを用いることができる。駆動部131が有する減速機としては、例えば、遊星ギア型の減速機、波動歯車装置等を用いることができる。位置センサー135(角度センサー)としては、例えば、エンコーダー、ロータリーエンコーダー等を用いることができる。また、駆動部131は、電気的に接続されたモータードライバー(図示せず)を介して制御装置5により制御されている。
また、図1に示すように、胴体220には、ステレオカメラ250および信号灯260が設けられている。ステレオカメラ250は、鉛直方向下方を撮像できるように胴体220に取り付けされている。例えば、ステレオカメラ250により撮像されたデータを基に、作業者は例えば対象物の位置を確認しながら作業を行うことができる。また、信号灯260は、ロボット1の状態(例えば、駆動状態、正常停止状態、異常停止状態等)等の信号を示す機器であり、これにより、作業者は、ロボット1の状態を容易に確認することができる。
(ロボットアーム)
図1に示すように、2つのロボットアーム230(230a、230b)は、同様の構成であり、それぞれ、第1アーム231(アーム、第1肩部)と、第2アーム232(アーム、第2肩部)と、第3アーム233(アーム、上腕部)と、第4アーム234(アーム、第1前腕部)と、第5アーム235(アーム、第2前腕部)と、第6アーム236(手首部)と、第7アーム237(アーム、連結部)とを有する。また、図2に示すように、2つのロボットアーム230(230a、230b)は、それぞれ、一方のアームを他方のアーム(または胴体220)に対して回動可能に支持する機構を有する7つの関節171〜177を有する。
図2に示すように、第1アーム231は、関節171を介して胴体220に連結されており、胴体220に対して第1回動軸O1に直交する第2回動軸O2まわりに回動可能となっている。また、第2アーム232は、関節172を介して第1アーム231に連結されており、第1アーム231に対して第2回動軸O2に直交する第3回動軸O3まわりに回動可能となっている。また、第3アーム233は、関節173を介して第2アーム232に連結されており、第2アーム232に対して第3回動軸O3に直交する第4回動軸O4まわりに回動可能になっている。また、第4アーム234は、関節174を介して第3アーム233に連結されており、第3アーム233に対して第4回動軸O4と直交する第5回動軸O5まわりに回動可能となっている。また、第5アーム235は関節175を介して第4アーム234に連結されており、第4アーム234に対して第5回動軸O5と直交する第6回動軸O6まわりに回動可能となっている。また、第6アーム236は、関節176を介して第5アーム235に連結されており、第5アーム235に対して第6回動軸O6と直交する第7回動軸O7まわりに回動可能となっている。また、第7アーム237は、関節177を介して第6アーム236に連結されており、第6アーム236に対して第7回動軸O7と直交する第8回動軸O8まわりに回動可能となっている。
また、関節171〜177には、それぞれ、各アーム231〜237を回動させる駆動力を発生させるモーター(図示せず)とモーターの駆動力を減速する減速機(図示せず)とを有する駆動部132と、駆動部132が有するモーターの回転軸の回転角度等を検出する位置センサー136(角度センサー)とが設けられている(図4参照)。すなわち、ロボット1は、7つの関節171〜177と同じ数(本実施形態では7つ)の駆動部132および位置センサー136を有している。
駆動部132が有するモーターとしては、例えば、ACサーボモーター、DCサーボモーター等のサーボモーターを用いることができる。駆動部132が有する減速機としては、例えば、遊星ギア型の減速機、波動歯車装置等を用いることができる。位置センサー136(角度センサー)としては、例えば、エンコーダー、ロータリーエンコーダー等を用いることができる。また、各駆動部132は、電気的に接続されたモータードライバー(図示せず)を介して制御装置5により制御されている。
このような各ロボットアーム230によれば、上述のような比較的簡単な構成によって、人間の腕部と同様に、関節(肩、肘、手首)の曲げ伸ばし、上腕および前腕の捻りを実現することができる。
(力検出部)
図1に示すように、2つのロボットアーム230の先端部(下端部)には、それぞれ、力検出部30(30a、30b)が着脱可能に取り付けられている。
2つの力検出部30は、同様の構成であり、それぞれ、エンドエフェクター40に加わる力(モーメントを含む)を検出する力検出器(力覚センサー)である。本実施形態では、力検出部30として、互いに直交する3つの軸(x軸、y軸、z軸)方向の並進力成分Fx、Fy、Fzおよび3つの軸周りの回転力成分(モーメント)Mx、My、Mzの6成分を検出することができる6軸力覚センサーを用いている。また、力検出部30は、検出した検出結果(力出力値)を制御装置5へ出力する。なお、力検出部30は、6軸力覚センサーに限定されず、例えば、3軸力覚センサー等であってもよい。
(エンドエフェクター)
図1に示すように、各力検出部30の先端部(下端部)には、それぞれ、エンドエフェクター40(40a、40b)が着脱可能に取り付けられている。
2つのエンドエフェクター40は、同様の構成であり、それぞれ、各種対象物に対して作業を行う器具であり、対象物を把持する機能を有する。本実施形態では、エンドエフェクター40として、対象物を把持する複数の指42を有するハンドを用いている。具体的には、図3に示すように、エンドエフェクター40は、力検出部30に取り付けられる部分である取付部41と、対象物を把持する4つの指42と、取付部41と指42とを繋ぐ接続部43とを有する。接続部43は、4つの指42を互いに接近させたり、離間させる駆動機構を備えている。これにより、エンドエフェクター40は、対象物の把持や把持の解除を行うことができる。
なお、エンドエフェクター40としては、対象物を保持する機能を有すれば、図示の構成に限定されず、例えば、対象物を吸着する吸着機構等を有する構成であってもよい。ここで、対象物の「保持」とは、把持や吸着等を含む意味である。
(表示入力装置)
図1に示すように、上述したベース210の背面側に取り付けられたハンドル211には、例えばタッチパネル等で構成された表示入力装置270が取り付けられている。この表示入力装置270は、例えば操作用のウィンドウ等の各種画面を表示させる液晶パネル等で構成される表示装置としての機能と、作業者が制御装置5に指示を与えるために用いられるタッチパッド等で構成される入力装置としての機能とを有する。また、表示入力装置270は、上述したステレオカメラ250により撮像されたデータが表示される。このような表示入力装置270によって、作業者は、ロボット1の状態を確認することができるとともに、ロボット1が所望の作業を行うように制御装置5に対して指令を与えることができる。
なお、ロボット1は、表示入力装置270の代わりに、例えば、液晶パネル等を備える表示装置とマウスやキーボード等の入力装置とを有していてもよい。また、本実施形態では、ロボット1が表示入力装置270を有する構成であるが、ロボット1と表示入力装置270とは別体であってもよい。
以上、ロボット1の構成について簡単に説明した。次に、制御装置5について説明する。
〈制御装置〉
本実施形態では、制御装置5は、例えば、CPU(Central Processing Unit)やROM(Read Only Memory)およびRAM(Random Access Memory)等が内蔵されたパーソナルコンピューター(PC)等で構成することができる。この制御装置5は、本実施形態では、図1に示すように、ロボット1のベース210に内蔵されているが、制御装置5は、ロボット1の外部に設けられていてもよい。また、制御装置5は、ロボット1に対してケーブルで接続され、有線方式で通信を行うようにしてもよく、また、ケーブルを省略し、無線方式で通信を行うようにしてもよい。
図4に示すように、制御装置5は、表示制御部51と、入力制御部52と、制御部53(ロボット制御部)と、取得部54と、記憶部55と、を備える。
表示制御部51は、例えばグラフィックコントローラーで構成されており、上述した表示入力装置270に電気的に接続されている。この表示制御部51は、表示入力装置270に各種画面(例えば、操作用のウィンドウ等)を表示させる機能を有する。
入力制御部52は、例えばタッチパネルコントローラーで構成されており、表示入力装置270に電気的に接続されている。この入力制御部52は、表示入力装置270からの入力を受け付ける機能を有する。
制御部53(ロボット制御部)は、CPU等で構成され、または、CPUにより各種プログラムを実行することにより実現でき、ロボット1の各部を制御する。
例えば、制御部53は、駆動部131に対して制御信号を出力して胴体220の駆動を制御し、また、各駆動部132に対して制御信号を出力して2つのロボットアーム230a、230bを協調制御する。
また、制御部53は、駆動部131および各駆動部132に対して制御信号を出力してロボット1に対して位置制御(速度制御を含む)と力制御とを実行する。
具体的には、制御部53は、目標軌道に沿ってエンドエフェクター40の先端が移動するようにロボットアーム230を駆動させる位置制御を行う。より具体的には、制御部53は、エンドエフェクター40の位置および姿勢が目標軌道上の複数の目標点における位置および姿勢(目標位置および目標姿勢)となるように、各駆動部131、132の駆動を制御する。また、本実施形態では、各位置センサー135、136から出力された位置検出情報(例えば、各駆動部131、132の回転軸の回転角度や角速度)に基づいた制御を行う。また、本実施形態では、位置制御として、例えば、CP制御またはPTP制御を行う。なお、制御部53は、目標軌道を設定(生成)し、エンドエフェクター40の先端の位置および姿勢や、エンドエフェクター40の目標軌道に沿った方向の移動における速度(角速度を含む)等を設定(生成)する機能を有する。
また、制御部53は、エンドエフェクター40が目標力(所望の力)で対象物を押圧(接触)するようにロボット1を制御する力制御を行う。具体的には、制御部53は、エンドエフェクター40に作用する力(モーメントを含む)が目標力(目標のモーメントを含む)となるように、各駆動部131、132の駆動を制御する。また、制御部53は、力検出部30から出力された検出結果に基づいて各駆動部131、132の駆動を制御する。本実施形態では、制御部53は、力制御として、エンドエフェクター40の先端に作用する力に応じたインピーダンス(質量、粘性係数、弾性係数)を設定し、そのインピーダンスを擬似的に実現するように各駆動部131、132を制御するインピーダンス制御を行う。
また、制御部53は、上述の位置制御に関わる成分(制御量)と力制御に関わる成分(制御量)とを組み合わせて(合成して)、ロボットアーム230を駆動させる制御信号を生成して出力する機能を有する。したがって、制御部53は、力制御したり、位置制御したり、力制御および位置制御を組み合わせたハイブリット制御を行ったりして、ロボットアーム230を動作させる。
また、制御部53は、エンドエフェクター40の駆動、力検出部30の作動および位置センサー135、136の作動等を制御する。
また、制御部53は、例えば、同一の作業を複数行う際に、作業回数をカウントする処理等の各種処理を行う機能も有する。
図4に示す取得部54は、力検出部30および各位置センサー135、136から出力された検出結果等を取得する。
また、図4に示す記憶部55は、制御部53が各種処理を行うためのプログラムやデータ等を記憶する機能を有する。また、記憶部55には、例えば、目標軌道や、力検出部30および各位置センサー135、136から出力された検出結果等を記憶することができる。
以上、ロボットシステム100の構成について簡単に説明した。次に、ロボットシステム100による作業の一例を説明しつつ、制御装置5の制御に基づくロボット1の動作について説明する。
図5は、図1に示すロボットが作業を行う作業台の一例を示す図である。図6は、図5に示す組立台上にケースが載置された状態を示す図である。図7は、図5に示す組立台上にあるケース上に蓋部材が載置された状態を示す図である。図8は、一方のロボットアームの先端の目標軌道A1を示す図である。図9は、他方のロボットアームの先端の目標軌道A2を示す図である。図10は、作業フローの一例を示すフローチャートである。図11は、図10に示す第1制御を示すフローチャートである。図12は、一方のエンドエフェクターの先端が教示点P11に位置している状態を示す図である。図13は、一方のエンドエフェクターの先端が補正教示点P110に位置している状態を示す図である。図14は、一方のエンドエフェクターの先端が教示点P12に位置している状態を示す図である。図15は、一方のエンドエフェクターの先端が補正教示点P120に位置している状態を示す図である。図16は、他方のエンドエフェクターの先端が教示点P21に位置している状態を示す図である。図17は、他方のエンドエフェクターの先端が補正教示点P210に位置している状態を示す図である。図18は、他方のエンドエフェクターの先端が教示点P22に位置している状態を示す図である。図19は、他方のエンドエフェクターの先端が補正教示点P220に位置している状態を示す図である。図20は、図8に示す目標軌道A1を補正して得られた目標軌道A10を示す図である。図21は、図9に示す目標軌道A2を補正して得られた目標軌道A20を示す図である。図22は、図10に示す第2制御を示すフローチャートである。また、図25は、エンドエフェクターでケースを把持している状態を模式的に示す斜視図である。また、各図では、説明の便宜上、必要に応じて各部の寸法等を適宜誇張して図示しており、各部間の寸法比等は実際の寸法比等とは必ずしも一致しない。
以下では、ロボット1の図5に示すような作業台90上における組立作業を例に説明する。また、以下では、図6に示すような凹部811を有するケース81上に、図7に示すような板状の蓋部材82を載置することにより、ケース81(作業対象物)と蓋部材82(作業対象物)とを組み立てる組立作業を例に説明する。
図5に示す作業台90上には、組立作業を行う組立台91と、ケース81が載置されている載置台93と、蓋部材82が載置されている載置台94とが設けられている。ロボット1は、一方のエンドエフェクター40aにより、載置台93上のケース81を把持し、組立台91上にケース81を搬送して載置する(図5および図6参照)。また、ロボット1は、他方のエンドエフェクター40bにより、載置台94上の蓋部材82を把持し、ケース81上に蓋部材82を搬送して載置する(図5および図7参照)。このようにして、ロボット1は組立作業を行う。なお、組立台91には、組立台91上でのケース81および蓋部材82の位置決めの役割をする突き当て板92が設けられており、この突き当て板92にケース81および蓋部材82を突き当てることで、ケース81および蓋部材82の組立台91上での位置決めがなされる。
また、組立作業におけるロボット1の駆動は、例えば、ダイレクトティーチにより教示されている。この教示により得られた教示データに基づいて、制御装置5はロボット1を駆動させる。教示データは、エンドエフェクター40aの先端の目標軌道A1(図8参照)、エンドエフェクター40bの先端の目標軌道A2(図9参照)、および、ロボットアーム230a、230bの各部の駆動に関する動作命令等を含む。
図8に示す目標軌道A1は、エンドエフェクター40aの先端(ツールセンターポイントTCP)が移動する経路である。図9に示す目標軌道A2は、エンドエフェクター40bの先端(ツールセンターポイントTCP)が移動する経路である。なお、本実施形態では、ツールセンターポイントTCPは、4つの指42の各先端同士の間の箇所である(図4参照)。
また、図8に示す目標軌道A1上の教示点P11は、載置台93上のケース81近傍(直上)の地点である。目標軌道A1上の教示点P12は、組立台91上のケース81近傍(直上)の地点である。また、図9に示す目標軌道A2上の教示点P21は、載置台94上の蓋部材82近傍(直上)の地点である。目標軌道A2上の教示点P22は、組立台91上に載置されたケース81上の蓋部材82近傍(直上)の地点である。
なお、目標軌道A1、A2は、それぞれ、ダイレクトティーチによる教示により生成した経路に限定されず、例えばCADデータ等によって生成した経路等であってもよい。
以下、図10に示す作業フローに沿って、上述の組立作業について詳細に説明する。本実施形態では、上述の組立作業を複数回行う。すなわち、同じ作業対象物(ケース81および蓋部材82)に対し、同一の組立作業を複数回行う。
<第1制御(ステップS1)>
作業者による作業開始の指示がなされると、図10に示すように、制御装置5は、まず、第1制御(ステップS1)を開始して、第1回目の組立作業を行う。この第1制御(ステップS1)を、図11に示すフローチャートと、図8、図9、図12〜図21に示す図を参照しつつ説明する。
まず、制御部53は、位置制御によりロボットアーム230aを駆動させて、図12に示すようにエンドエフェクター40aの先端(ツールセンターポイントTCP)を教示点P11に位置させる(図11:ステップS11)。
次に、制御部53は、力制御を開始して、力検出部30aの検出結果に基づいてロボットアーム230aを駆動させ、ケース81とエンドエフェクター40aとの接触を検出したら、図13に示すようにエンドエフェクター40aにケース81を把持させる(図11:ステップS12)。より具体的には、図25に示すように、エンドエフェクター40aの4つの指42で、ケース81の縁部(側面部)の一辺を把持する。また、この際のエンドエフェクター40aの先端の位置を、教示点P11を補正した補正教示点P110として記憶する。
次に、制御部53は、位置制御によりロボットアーム230aを駆動させて、目標軌道A1に沿ってエンドエフェクター40aの先端を移動させる(図8参照)。そして、制御部53は、図14に示すようにエンドエフェクター40aの先端を教示点P12に位置させる(図11:ステップS13)。
次に、制御部53は、力制御を開始して、力検出部30aの検出結果に基づいてロボットアーム230aを駆動させ、ケース81と、組立台91の上面および突き当て板92との接触を検出して、図15に示すようにケース81の載置を完了する(図11:ステップS14)。なお、ケース81の載置が完了したら、エンドエフェクター40aをケース81から離脱させる。また、ステップS14では、ケース81の載置が完了したときのエンドエフェクター40aの先端の位置を、教示点P12を補正した補正教示点P120として記憶する。
次に、制御部53は、位置制御によりロボットアーム230bを駆動させて、図16に示すようにエンドエフェクター40bの先端(ツールセンターポイントTCP)を教示点P21に位置させる(図11:ステップS15)。
次に、制御部53は、力制御を開始して、力検出部30bの検出結果に基づいてロボットアーム230bを駆動させて、蓋部材82とエンドエフェクター40bとの接触を検出し、図17に示すようにエンドエフェクター40bに蓋部材82を把持させる(図11:ステップS16)。また、この際のエンドエフェクター40bの先端の位置を、教示点P21を補正した補正教示点P210として記憶する。
次に、制御部53は、位置制御によりロボットアーム230bを駆動させて、目標軌道A2に沿ってエンドエフェクター40bの先端を移動させる(図9参照)。そして、制御部53は、図18に示すようにエンドエフェクター40bの先端を教示点P22に位置させる(図11:ステップS17)。
次に、制御部53は、力制御を開始して、力検出部30bの検出結果に基づいてロボットアーム230bを駆動させ、蓋部材82と、ケース81の上面および突き当て板92のとの接触を検出したら、図19に示すように蓋部材82のケース81上への載置を完了する(図11:ステップS18)。また、ステップS18では、蓋部材82の載置が完了したときのエンドエフェクター40bの先端の位置を、教示点P22を補正した補正教示点P220として記憶する。
以上にて、図10に示す第1制御(ステップS1)が終了し、ロボット1による第1回目の組立作業が終了する。上述したように、第1制御(ステップS1)では、力制御(特に、インピーダンス制御)を行って、ケース81および蓋部材82の把持と、ケース81および蓋部材82の載置とを行っている。そのため、ケース81および蓋部材82のそれぞれに無理な力が加わることを抑制または防止することができ、また、位置決め精度を高くすることができる。なお、本発明では、ステップS11〜S14とステップS15〜S18とは、実行される順番が必ずしもこの順に限らず、ステップS11〜S14とステップS15〜S18とが、同時にまたは一部が時間的に重複して行われてもよい。
<カウントアップ(ステップS2)>
次に、図10に示すように、制御部53は、ロボット1による組立作業の回数をカウントアップする(ステップS2)。制御部53は、初期値を「0(零)」として、例えば、このステップS2にて組立作業の回数を「1」とカウントする。
<データ更新(ステップS3)>
次に、図10に示すように、制御部53は、教示点P11、P12、P21、P22を、第1制御(ステップS1)において記録した補正教示点P110、P120、P210、P220に更新(補正)し、予め設定されていた教示データを更新(補正)する(ステップS3)。これにより、第1回目の作業に基づいて生成された新たな教示データを得ることができる。この新たな教示データは、図8に示す目標軌道A1を補正した図20に示すような目標軌道A10(補正目標軌道)、図9に示す目標軌道A2を補正した図21に示すような目標軌道A20(補正目標軌道)、および、目標軌道A10、A20に沿ってエンドエフェクター40a、40bの先端が移動するためのロボットアーム230a、230bの各部の駆動に関する動作命令等を含む。
<第2制御(ステップS4)>
次に、図10に示すように、制御部53は、第2制御(ステップS4)を開始して、第2回目の組立作業を行う。この第2制御(ステップS4)を、図22に示すフローチャートを参照しつつ説明する。
まず、制御部53は、位置制御によりロボットアーム230aを駆動させて、エンドエフェクター40aの先端を補正教示点P110に位置させ(図22:ステップS41)、エンドエフェクター40aにケース81を把持させる(図22:ステップS42)。なお、このケース81は、第1回目の組立作業の際のケース81と同形状、同重量のものである。
次に、制御部53は、位置制御によりロボットアーム230aを駆動させて、目標軌道A10に沿ってエンドエフェクター40aの先端を移動させる(図20参照)。そして、制御部53は、エンドエフェクター40aの先端を補正教示点P120に位置させ(図22:ステップS43)、ケース81の載置を完了する(図22:ステップS44)。なお、ケース81の載置が完了したら、エンドエフェクター40aをケース81から離脱させる。
次に、制御部53は、位置制御によりロボットアーム230bを駆動させて、エンドエフェクター40bの先端を補正教示点P210に位置させ(図22:ステップS45)、エンドエフェクター40bに蓋部材82を把持させる(図22:ステップS46)。なお、この蓋部材82は、第1回目の組立作業の際の蓋部材82と同形状、同重量のものである。
次に、制御部53は、位置制御によりロボットアーム230bを駆動させて、目標軌道A20に沿ってエンドエフェクター40bの先端を移動させる(図21参照)。そして、制御部53は、エンドエフェクター40bの先端を補正教示点P220に位置させ(図22:ステップS47)、蓋部材82のケース81上への載置を完了する(図22:ステップS48)。
なお、本発明では、ステップS41〜S44とステップS45〜S48とは、実行される順番が必ずしもこの順に限らず、ステップS41〜S44とステップS45〜S48とが、同時にまたは一部が時間的に重複して行われてもよい。
以上にて、図10に示す第2制御(ステップS4)が終了して、ロボット1による第2回目の組立作業が終了する。このように、第2回目の作業では、第1回目の作業で新たに得られた教示データを基に位置制御を行っているため、力制御を省いても、エンドエフェクター40の先端を補正教示点P110、P120、P210、P220に適切に位置させることができる。また、力制御でロボットアーム230を駆動させると、力検出部30の応答性や制御周期の不足により、ロボットアーム230の動作速度が遅くなり易い傾向があるが、本実施形態のように、第2回目の作業では、力制御を省くことができるため、第1回目の作業よりもロボットアーム230の動作速度を速くすることができる。
また、本実施形態では、制御部53は、第2制御において位置制御を行っている間、力検出部30の出力に基づいてロボット1の異常を検出している。そして、図10に示す作業フローには図示していないが、制御部53は、異常を検出したら、例えばロボット1の駆動を停止したり、必要に応じて第1回目の作業を再度やり直すよう制御する。これにより、より安定して組立作業を行うことができる。ここで、「異常」とは、例えば、力検出部30からの検出結果(出力値)が任意に設定された所定値を超えた場合を示す。具体的には、例えば、作業において異常であることとは、必要以上にケース81や蓋部材82をエンドエフェクター40により押圧している場合のこと等が挙げられる。例えば、位置制御は、例えば実空間内における目標点にエンドエフェクター40の先端を位置させる制御であるため、用いるケース81や蓋部材82の寸法誤差等によって、ケース81に対して蓋部材82を必要以上に押圧してしまう場合がある。したがって、位置制御において、力検出部30からの出力を検出しておくことで、力制御を行わずとも、ケース81や蓋部材82に対して無理な力が加わることを回避することができる。
<カウントアップ(ステップS5)>
次に、図10に示すように、制御部53は、ロボット1による組立作業の回数をカウントアップする(ステップS5)。制御部53は、例えば、このステップS5にて組立作業の回数を「2」とカウントする。
<A×B回目か否かの判断(ステップS6)>
次に、図10に示すように、制御部53は、組立作業の回数が、作業者が任意に設定した所定値Aの倍数であるか否かを判断する(ステップS6)。すなわち、所定値Aと整数B(1、2、3…)との乗算値(A×B)であるか否かを判断する。例えば、所定値Aを「10」としたら、乗算値が「10、20、30…」のいずれかであるか否かを判断する。乗算値(A×B)でなければ、すなわちA×B回目でなければ(ステップS6:No)、A×B回目になるまで第2制御(ステップS4)およびカウントアップ(ステップS5)を繰り返す。したがって、A×B回目(例えば、10、20、30…)を除く回数における作業では、力制御を省き、位置制御により組立作業を行う。そのため、ロボットアーム230の動作速度を速くすることができ、よって、複数回の組立作業におけるサイクルタイムを短くすることができる。
<作業回数が所定回数Cを達成したか否かの判断(ステップS7)>
次に、図10に示すように、制御部53は、作業回数がA×B回目であれば(ステップS6:Yes)、作業回数が、作業者が任意に設定した所定回数Cを達成したか否か、つまり終了予定回数に達したか否かを判断する(ステップS7)。例えば、所定回数C(終了予定回数)を「30」としたら、所定回数Cが「30」でなければ(ステップS7:No)、第1制御(ステップS1)に戻る。したがって、所定回数Cを達成するまでは、A×B回目ごとに、力検出部30の検出結果に基づいた力制御を行うこととなる。そのため、A×B回目ごとに、精密な位置決めが実現できているかを確認したり、補正教示点P110、P120、P210、P220を必要に応じて補正し直して、さらに新たな教示データを生成し直すことができる。そのため、複数回作業を繰り返しても、位置決め精度が特に高い作業を実現することができる。
一方、所定回数Cが「30」であるならば(ステップS7:Yes)、組立作業を終了する。
以上のようにして、複数回の組立作業が終了する。
以上説明したように、本発明の制御装置の一例である制御装置5は、力検出部30(30a、30b)を有するロボット1の駆動を制御する制御装置5であって、ロボット1に対して作業を複数回行わせるに際し、第1回目の作業では、力検出部30からの出力(検出結果)に基づいてロボット1を力制御して、「第1位置」としての補正教示点P110、P120、P210、P220を教示し、第2回目の作業では、第1回目の作業で得た補正教示点P110、P120、P210、P220に関するデータ(第1位置データ)に基づいて、ロボット1を位置制御して、ロボット1の「所定部位」としてのエンドエフェクター40(40a、40b)の先端を補正教示点P110、P120、P210、P220へ移動させる制御部53を備える。このような制御装置5によれば、第1回目の作業では、力制御を行っているため、精密な位置決めを実現でき、第2回目の作業では、第1回目の作業で得た第1位置データを含む新たな教示データに基づいて位置制御することができる。そのため、第2回目の作業では、力制御を省いても精密な位置決めを実現することができ、また、力制御を省くことで第1回目の作業よりもロボットアーム230の動作速度(エンドエフェクター40の先端の移動速度)を速くすることができる。したがって、例えば安定して質の高い製品(ケース81と蓋部材82とが組み立てられることで得られた製品)を数多く生産することができるため、当該製品の生産性を高めることができる。
なお、本実施形態では、補正教示点P110、P120、P210、P220を、それぞれ「第1位置」として捉え、第1位置が複数あるものとしたが、補正教示点P110、P120、P210、P220のいずれか任意の補正教示点のみを「第1位置」として捉えてもよい。すなわち、「第1位置」とは、力制御を行うことで得られた教示点(または本実施形態のように教示点を補正した補正教示点)であればよく、その数は、複数あってもよいし、1つであってもよい。また、本実施形態では、エンドエフェクター40の先端を「所定部位」としたが、「所定部位」は、ロボット1の任意の箇所であればよく、エンドエフェクター40の先端に限定されない。例えば、「所定部位」は、第7アーム237の先端等であってもよい。
また、上述した第1位置データは、第1回目の作業において力制御して、予め設定された「第1教示点」としての教示点P11、P12、P21、P22に関するデータを補正することにより得る。ここで、上述したように、第1位置データは、力制御を行うことで得られた教示点(第1位置)に関するデータであればよいが、本実施形態のように、予め設定された教示点P11、P12、P21、P22に関するデータを補正することにより得られたデータ(補正教示点P110、P120、P210、P220)であることが好ましい。これにより、作業におけるより適切な位置に関する第1位置データおよびそれを含む新たな教示データを得ることができる。
また、上述したように、制御部53は、第2回目以降の作業(本実施形態では例えば第2回目から9回目の作業)では、第1位置データに基づいてロボット1を位置制御して、ロボット1の「所定部位」としてのエンドエフェクター40の先端を「第1位置」としての補正教示点P110、P120、P210、P220へ移動させる。このように、第2回目の作業だけでなく、それ以降の作業においても、力制御を省くことでロボットアーム230の動作速度を速くすることができる。そのため、複数回の作業においてサイクルタイムを速くすることができ、よって、生産性をより高めることができる。
なお、「第2回目以降の作業」とは、第2回目以降全ての作業として捉えることに限らず、本実施形態のように第2回目から9回目の作業、すなわち、第2回目以降から任意の回数までの作業として捉えることも含む意味である。
さらに、上述したように、制御部53は、特許請求の範囲に規定した「所定回目」としてのA×B回目(例えば、10、20、30…)の作業では、力検出部30からの出力に基づいてロボット1を力制御して、「所定部位」としてのエンドエフェクター40を「第1位置」としての補正教示点P110、P120、P210、P220へ移動させる。このように、第1回目以外のA×B回目において、力制御して、エンドエフェクター40を補正教示点P110、P120、P210、P220へ移動させる。すなわち、A×B回目ごとに、力検出部30の検出結果に基づいた力制御を伴う作業を行う。これにより、全ての回で力制御を行うことによる弊害(例えば、長時間化、手間の増大)がなく、A×B回目ごとに、精密な位置決めが実現できているかを確認したり、補正教示点P110、P120、P210、P220に関する第1位置データの補正をすることができる。そのため、複数回作業を繰り返しても、位置決め精度が特に高い作業を実現することができ、より安定して質の高い製品を生産し続けることができる。
なお、本実施形態では、特許請求の範囲に規定した「所定回目」について、「所定回目」をA×B回目(例えば、10、20、30…)として捉えた場合を例に説明したが、「所定回目」は任意の回数であり、A×B回目(例えば、10、20、30…)に限定されない。
また、本実施形態では、特許請求の範囲に規定した「第1回目」は、上述したように第1回目である。このように、複数回の作業のうちの作業開始である第1回目の作業で力制御によって精密な位置決めが実現されることで、第2回目以降の作業をロボットに対して適切かつ比較的速い速度で行わせることができる。
なお、特許請求の範囲に規定した「第1回目」および「第2回目」について、本実施形態における第1回目および第2回目として捉えた場合を例に説明したが、特許請求の範囲に規定した「第1回目」および「第2回目」は、これに限定されない。例えば、特許請求の範囲に規定した「第1回目」および「第2回目」は、本実施形態における第2回目および第3回目として捉えてもよい。その場合には、第2回目の作業においては、力制御を伴う作業を行い、第3回目の作業においては力制御を省いた作業を行い、第1回目の作業では、第2回目の作業と同様に力制御を伴う作業を行ってもよい。すなわち、2回(第1回目および第2回目)の力制御を伴う作業を行った後に、力制御を省いた第3回目の作業を行ってもよい。これにより、2回の力制御に伴う作業に基づいた新たな教示データを基に3回目の作業を行うことができるため、第3回目の作業における位置決め精度をさらに高めることができる。
また、上述したように、制御部53は、位置制御を行っている間、力検出部30の出力に基づいて、ロボット1の異常を検出する。特に、エンドエフェクター40に把持されたケース81の組立台91への接触、および、エンドエフェクター40に把持された蓋部材82のケース81への接触において、上述のロボット1の異常を検出することが好ましい。すなわち、エンドエフェクター40またはエンドエフェクター40が把持(保持)しているケース81や蓋部材82が、周辺部材(例えば組立台91等)等に接触しているときに、力検出部30の出力に基づいてロボット1の異常を検出することが好ましい。これにより、制御部53は、異常を検出したら、例えばロボット1の駆動を停止したり、第1回目の作業を再度やり直すよう制御することができる。そのため、位置制御において、力制御を行わずとも、ケース81や蓋部材82に対して無理な力が加わることを回避することができ、より安定して質の高い製品をより数多く生産することができる。
また、本発明のロボットの一例であるロボット1は、上述したように、力検出部30を有し、作業を複数回行うロボット1であって、制御装置5によって制御されている。このようなロボット1によれば、制御装置5の制御の下、精密な位置決めを実現しつつ、作業におけるサイクルタイムを短くすることができ、生産性をより高めることができる。
さらに、本実施形態では、ロボット1は、複数(本実施形態では2つ)のロボットアーム230を有し、力検出部30は、複数のロボットアーム230全てに設けられている。これにより、複数のロボットアーム230の各駆動を高精度に制御することができる。また、一般的に、複数のロボットアーム230を有するロボット1は、ロボットアーム230同士の配置等を考慮して、比較的アーム幅が細く構成される。そのため、ロボットアーム230の剛性が不足して、精密な位置決めをすることが難しくなる傾向がある。しかし、本実施形態における制御装置5によれば、このようなロボット1であっても、位置決め精度を高くすることができ、よって、生産性を高めることができる。
なお、本実施形態では、力検出部30は、複数のロボットアーム230全てに設けられている場合を例に説明したが、ロボット1の作業内容等によっては、力検出部30は、無くてもよい場合があり、よって、力検出部30は、複数のロボットアーム230のうちの少なくとも1つに設けられていればよい。
また、上述した説明では、第2回目以降の作業では、全ての処理(ステップS41〜ステップS48)において力制御を省いたが、任意の処理において、力制御および位置制御の双方を行うようにしてもよい。例えば、上述したステップS43、S44において、位置制御により、補正教示点P120への移動を行うとともに、力制御により、ケース81の組立台91への載置を行うことも可能である。つまり、例えば、制御部53は、第2回目の作業において、補正教示点P110、P210、P220(第1位置)に関しては、力制御を省いて位置制御を実行し、補正教示点P120(第2位置)に関しては、力制御および位置制御を実行してもよい。
したがって、例えば、制御部53は、1つの作業(例えば前述した組立作業)において、補正教示点P110、P210、P220(第1位置)と、これらとは異なる補正教示点P120(第2位置)とをそれぞれ教示することが可能であり、第1回目の作業では、力検出部30の出力に基づいてロボット1を力制御して、補正教示点P110、P210、P220を教示し、かつ、補正教示点P120を教示する。また、制御部53は、第2回目の作業では、第1回目の作業で得た補正教示点P110、P210、P220に関する第1位置データに基づいて、補正教示点P110、P210、P220に関しては位置制御を行ってロボット1を駆動させることで、「所定部位」としてのエンドエフェクター40の先端を補正教示点P110、P210、P220に位置させる。また、制御部53は、第2回目の作業では、第1回目の作業で得た補正教示点P120に関する第2位置データに基づいてロボット1を制御する位置制御と、力検出部30からの出力に基づいてロボット1を制御する力制御とを行ってロボット1を駆動させることで、「所定部位」としてのエンドエフェクター40の先端を補正教示点P120に位置させている。前述したように、第2回目の作業において、例えばケース81の組立台91への載置に関わる処理(ステップS43、S44)では、位置制御とともに力制御を行う処理を行っているが、ケース81の組立台91への載置は、その後の処理であるケース81上への蓋部材82への載置の位置精度にも大きくかかわる処理である。そのため、このような処理において位置制御および力制御を行うことで、第2回目の作業においても、ケース81と蓋部材82との組み立てをより正確に行うことができる。このように、第2回目の作業では、処理内容等に応じて、第1位置データに基づいた位置制御のみを行う処理(例えば、ステップS43、44を除くステップ)と、第2位置データに基づいた位置制御および力制御の双方を行う処理(例えば、ステップS43、44)とを併用することで、より高精度でかつ迅速な組立作業をロボット1に行わせることができる。
第2回目の作業において、処理内容等に応じて位置制御および力制御の双方を行うことは、例えば以下のような嵌合作業において特に有効である。
図23は、エンドエフェクターの先端が補正教示点P310に位置している状態を示す図である。図24は、エンドエフェクターの先端が補正教示点P320に位置している状態を示す図である。
図23および図24に示すように、立方体状の嵌合部材84を、嵌合部材84の外形に対応した形状の凹部831を有する被嵌合部材83に嵌合する嵌合作業を例に説明する。
例えば、図23に示すように、嵌合部材84を凹部831に挿入する前のエンドエフェクター40の先端の補正教示点P310を「第1位置」とする。これに対し、図24に示すように、嵌合部材84を凹部831に挿入し、凹部831の底面に接触する際の、つまり接触する直前のエンドエフェクター40の先端の補正教示点P320を「第2位置」とする。そして、例えば、第2回目の作業では、嵌合部材84を凹部831に挿入して凹部831の底面に至る前まで、つまり底面に接触する直前までは位置制御を行う。また、凹部831の底面に接触したときに力制御を行う。より具体的には、凹部831に接触する直前で位置制御および力制御を行い、凹部831の底面に接触してから力制御を行う。
つまり、制御部53は、1つの作業(例えば前述した嵌合作業)において、補正教示点P310(第1位置)と、補正教示点P310とは異なる補正教示点P320(第2位置)とをそれぞれ教示することが可能であり、第1回目の作業では、力検出部30の出力に基づいてロボット1を力制御して、補正教示点P310を教示し、かつ、補正教示点P320を教示する。また、制御部53は、第2回目の作業では、第1回目の作業で得た補正教示点P310に関する第1位置データに基づいて、補正教示点P310に関しては位置制御を行ってロボット1を駆動させることで、「所定部位」としてのエンドエフェクター40の先端を補正教示点P310に位置させる。また、制御部53は、第2回目の作業では、第1回目の作業で得た補正教示点P320に関する第2位置データに基づいてロボット1を制御する位置制御と、力検出部30からの出力に基づいてロボット1を制御する力制御とを行ってロボット1を駆動させることで、「所定部位」としてのエンドエフェクター40の先端を補正教示点P320に位置させる。特に、本実施形態では、第1位置データに基づいて位置制御を行い、第2位置データに基づいた位置制御および力制御を行った後、力制御のみを行う。
これにより、第2回目の作業において、嵌合作業を迅速に行うことができるとともに、嵌合終了近傍では嵌合作業が適切に行われているか否かを力検出部30からの出力に基づいて確認することができる。このように、第2回目(およびそれ以降の作業)においても、第1位置データに基づいた位置制御を行う処理と、第2位置データに基づいた位置制御および力制御の双方を行う処理とを併用することで、より高精度で迅速な嵌合作業をロボット1に行わせることができる。
以上説明したような本発明のロボットシステムの一例としてのロボットシステム100は、制御装置5と、制御装置5によって制御され、力検出部30を有するロボット1とを備える。このようなロボットシステム100によれば、制御装置5の制御の下、ロボット1の作業において精密な位置決めを実現しつつ、ロボット1の作業におけるサイクルタイムを短くすることができる。そのため、製品の生産性を高めることができる。
以上、本発明の制御装置、ロボットおよびロボットシステムを図示の実施形態に基づいて説明したが、本発明は、これに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物が付加されていてもよい。また、各実施形態を適宜組み合わせてもよい。
また、ロボットアームの回動軸の数は、特に限定されず、任意である。また、ロボットアームの数は、特に限定されず、1つでも、3つ以上であってもよい。また、ロボットは、いわゆる水平多関節ロボットであってもよい。
また、上述した実施形態では、力検出部は、ロボットアームの先端部に設けられている例を説明したが、力検出部の設置箇所は、ロボットの任意の箇所にかかる力やモーメントを検出することができれば如何なる箇所であってもよい。例えば、力検出部は、第6アームの基端部(第5アームと第6アームとの間)に設けられていてもよい。