<実施形態>
以下、本発明の実施形態について、図面を参照して説明する。
<ロボットシステムの構成>
まず、図1〜図4を参照し、ロボットシステム1の構成について説明する。図1は、実施形態に係るロボットシステム1の構成の一例を示す図である。図2は、ロボット20の構成の一例を示す図である。
ロボットシステム1は、例えば、架台BSと、撮像部10と、ロボット20を備える。なお、ロボットシステム1は、これらに加えて、物体を搬送する搬送装置(例えば、搬送用の他のロボット、ベルトコンベア等)、撮像部(例えば、ロボット20と別体のカメラ等)、距離検出部(例えば、レーザー変位計等)等の他の装置を備える構成であってもよい。
以下では、説明の便宜上、重力方向(鉛直下方向)を下方向又は下と称し、下方向と反対の方向を上方向又は上と称して説明する。以下では、一例として、下方向が、ロボット20のロボット座標系RCにおけるZ軸の負方向と一致する場合について説明する。なお、下方向は、当該負方向と一致しない構成であってもよい。
架台BSは、例えば、直方体形状の金属製の枠である。なお、架台BSの形状は、直方体形状に代えて、円柱形状等の他の形状であってもよい。また、架台BSの材質は、金属に代えて、樹脂等の他の材質であってもよい。架台BSが有する端部のうち最も上側の端部である最上部には、天井板として平板が設けられている。架台BSが有する端部のうち最も下側の端部である最下部には、床板として平板が設けられている。また、架台BSは、設置面に設置される。設置面は、例えば、床面である。なお、設置面は、床面に代えて、壁面、地面、天井面等の他の面であってもよい。ロボットシステム1では、ロボット20は、架台BSの内側において所定の作業を行うことが可能なように架台BSの天井板に設置される。なお、ロボットシステム1は、架台BSを備えない構成であってもよい。この場合、ロボット20は、架台BSに代えて、床面、壁面等に設置される。
また、架台BSの内側には、物体を載置可能な作業台TBが設けられている。作業台TBは、後述するロボット20の作業領域の内側に含まれるように架台BSに設けられる。図1に示した例では、作業台TBの上面には、ロボット20により作業が行われる対象の物体である対象物Oが載置されている。対象物Oは、製品に組み付ける産業用の部品や部材である。以下では、一例として、対象物Oが製品に組み付ける平板形状のプレートである場合について説明する。なお、対象物Oは、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。また、対象物Oの形状は、平板形状に代えて、円盤形状、直方体形状、円柱形状等の他の形状であってもよい。また、作業台TBの上面のうち対象物Oが載置される面と異なる面には、撮像部10が設けられている。
撮像部10は、例えば、集光された光を電気信号に変換する撮像素子であるCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等を備えたカメラである。この一例において、撮像部10は、光軸に沿って撮像素子からレンズに向かう方向が上方向と一致するように、作業台TBの上面のうち対象物Oが載置される面と異なる面に設けられる。撮像部10は、撮像部10が撮像可能な範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。
撮像部10は、ケーブルによってロボット制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB(Universal Serial Bus)等の規格によって行われる。なお、撮像部10は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
ロボット20は、基台Bと、基台Bにより支持された可動部Aと、ロボット制御装置30を備える単腕ロボットである。単腕ロボットは、この一例における可動部Aのような1本の腕を備えるロボットである。なお、ロボット20は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、2本以上の腕(例えば、2本以上の可動部A)を備えるロボットである。なお、複腕ロボットのうち、2本の腕を備えるロボットは、双腕ロボットとも称される。すなわち、ロボット20は、2本の腕を備える双腕ロボットであってもよく、3本以上の腕(例えば、3本以上の可動部A)を備える複腕ロボットであってもよい。また、ロボット20は、スカラロボット(水平多関節ロボット)、直交座標ロボット、円筒型ロボット等の他のロボットであってもよい。直交座標ロボットは、例えば、ガントリロボットである。
基台Bの形状は、例えば、長手方向が上下方向に沿ったほぼ直方体形状である。基台Bは、中空となっている。基台Bが有する面のうちの1つには、フランジBFが設けられている。また、フランジBFには、可動部Aが設けられている。すなわち、基台Bは、フランジBFによって可動部Aを支持している。なお、基台Bの形状は、このような形状に代えて、可動部Aを支持可能な形状であれば、立方体形状、円柱形状、多面体形状等の他の形状であってもよい。
以下では、説明の便宜上、基台Bが有する面のうちフランジBFが設けられている面を上面と称し、基台Bが有する面のうちフランジBFが設けられている面と反対側の面を下面と称して説明する。基台Bは、例えば、基台Bの下面から基台Bの上面に向かう方向が前述の下方向と一致するように、すなわち、ロボット20の作業領域の全体が当該天井板よりも下側に位置するように当該天井板に設置される。具体的には、例えば、当該天井板には、上下方向に貫通し、基台Bを挿入可能な図示しない開口部が形成されている。当該開口部は、フランジBFよりも小さい。ユーザーは、フランジBFと当該天井板とを複数本のボルトによって固定することにより、基台Bを当該天井板に設置する(取り付ける)ことができる。すなわち、フランジBFと当該天井板のそれぞれには、複数のボルトのそれぞれが挿入される複数の貫通孔が形成されている。なお、基台Bは、架台BSの他の位置に設置される構成であってもよい。また、フランジBFと当該天井板との固定方法は、他の方法であってもよい。
可動部Aは、マニピュレーターMと、エンドエフェクターEと、力検出部21と、吐出部Dを備える。
マニピュレーターMは、6個のアームである第1アームL1〜第6アームL6と、6つの関節である関節J1〜関節J6を備える。基台Bと第1アームL1は、関節J1によって連結される。第1アームL1と第2アームL2は、関節J2によって連結される。第2アームL2と第3アームL3は、関節J3によって連結される。第3アームL3と第4アームL4は、関節J4によって連結される。第4アームL4と第5アームL5は、関節J5によって連結される。第5アームL5と第6アームL6は、関節J6によって連結される。すなわち、マニピュレーターMを備える可動部Aは、6軸垂直多関節型のアームである。なお、可動部Aは、5軸以下の自由度で動作する構成であってもよく、7軸以上の自由度で動作する構成であってもよい。
第1アームL1は、関節J1の回動軸である第1回動軸AX1(例えば、図3参照)周りに回動可能である。第2アームL2は、関節J2の回動軸である第2回動軸AX2(例えば、図3参照)周りに回動可能である。第3アームL3は、関節J3の回動軸である第3回動軸AX3(例えば、図3参照)周りに回動可能である。第4アームL4は、関節J4の回動軸である第4回動軸AX4(例えば、図3参照)周りに回動可能である。第5アームL5は、関節J5の回動軸である第5回動軸AX5(例えば、図3参照)周りに回動可能である。第6アームL6は、関節J6の回動軸である第6回動軸AX6(例えば、図3参照)周りに回動可能である。
ここで、図3〜図5を参照し、マニピュレーターMについてより詳しく説明する。図3は、図1及び図2に示したロボット20の側面図の一例を示す図である。
図3に示したように、基台Bの下面から基台Bの上面に向かう方向が下方向と一致しているため、関節J2は、関節J1よりも下側に位置している。関節J2は、第1回動軸AX1の延長上に位置していない。これは、第1アームL1の形状が、屈曲した形状であるためである。この一例において、第1アームL1の形状は、ロボット座標系RCにおけるX軸の正方向から負方向に向かってロボット20を見た場合において、丸みを帯びてほぼL字型に湾曲した形状である。具体的には、第1アームL1は、4つの部位である部位L11〜部位L14によって構成されている。部位L11は、図3において、第1アームL1を構成する4つの部位のうち、基台Bから第1回動軸AX1に沿って下方向に延伸している部位のことである。部位L12は、当該4つの部位のうち、部位L11の下端から第2回動軸AX2に沿ってロボット座標系RCにおけるY軸の負方向に延伸する部位のことである。部位L13は、当該4つの部位のうち、部位L12の端部のうち部位L11と反対側の端部から、第1回動軸AX1に沿って下方向に延伸している部位のことである。部位L14は、当該4つの部位のうち、部位L13の端部のうち部位L12と反対側の端部から、第2回動軸AX2に沿って当該Y軸の正方向に延伸する部位のことである。ここで、部位L11〜部位L14は、一体として第1アームL1を構成してもよく、別体として第1アームL1を構成してもよい。また、図3において、部位L12と部位L13は、ロボット座標系RCにおけるX軸に沿ってロボット20を見た場合、ほぼ直交している。
第2アームL2の形状は、長手形状である。第2アームL2は、第1アームL1の先端部、すなわち、部位L14の端部のうち部位L13と反対側の端部に接続されている。
第3アームL3の形状は、長手形状である。第3アームL3は、第2アームL2の端部のうち第1アームL1と接続されている端部と反対側の端部に接続されている。
第4アームL4は、第3アームL3の先端部、すなわち、第3アームL3の端部のうち第2アームL2が接続されている端部と反対側の端部に接続されている。第4アームL4には、互いに対向する一対の支持部である支持部L41及び支持部L42が形成されている。支持部L41及び支持部L42は、第4アームL4の第5アームL5との接続に用いられる。すなわち、第4アームL4は、第5アームL5を支持部L41及び支持部L42の間に位置させ、支持部L41及び支持部L42によって第5アームL5に接続されている。なお、第4アームL4は、これに限られず、1つの支持部によって第5アームL5を支持する構成(片持ち)であってもよく、3つ以上の支持部によって第5アームL5を支持する構成であってもよい。
第5アームL5は、前述したように、支持部L41及び支持部L42の間に位置し、支持部L41及び支持部L42に接続される。
第6アームL6の形状は、平板形状である。すなわち、第6アームL6は、フランジである。第6アームL6は、第5アームL5の端部のうち第4アームL4と反対側の端部に接続されている。また、第6アームL6には、当該端部に力検出部21を介してエンドエフェクターEが接続される。具体的には、第6アームL6とエンドエフェクターEの間には、力検出部21が設けられる。
また、この一例において、マニピュレーターMが備える6つの関節それぞれの回動軸のうち第2回動軸AX2と第3回動軸AX3とは、互いに平行である。なお、第2回動軸AX2と第3回動軸AX3とは、互いに非平行であってもよい。
ここで、マニピュレーターMでは、第1回動軸AX1の軸方向から見て、第1アームL1と第2アームL2とが重なることが可能である。また、マニピュレーターMでは、第2回動軸AX2の軸方向から見て、第1アームL1と第2アームL2とが重なることが可能である。また、マニピュレーターMでは、第2回動軸AX2の軸方向から見て、第2アームL2と第3アームL3とが重なることが可能である。また、マニピュレーターMでは、第4回動軸AX4の軸方向から見て、第4アームL4と第5アームL5とが重なることが可能である。なお、本実施形態において、ある2つのアームをある方向から見た場合に当該2つのアームが重なるとは、当該2つのアームのうちの一方のアームが他方のアームに重なっている面積の割合が所定割合以上であることを示す。所定割合は、例えば、9割であるが、これに限られず、他の割合であってもよい。また、マニピュレーターMは、第3回動軸AX3の軸方向から見て、第3アームL3と第4アームL4とが重なることが可能であるように構成されてもよい。また、マニピュレーターMは、第5回動軸AX5の軸方向から見て、第5アームL5と第6アームL6とが重なることが可能であるように構成されてもよい。
ここで、マニピュレーターMは、マニピュレーターMの状態を、関節J2と関節J3のそれぞれを回動させることにより、コンパクト状態にすることができる。コンパクト状態は、この一例において、第1回動軸AX1に沿った方向において第2回動軸AX2と第5回動軸AX5との間の距離が最も短い状態、且つ第1回動軸AX1と第4回動軸AX4とが一致した状態のことである。すなわち、図3に示したマニピュレーターMの状態は、コンパクト状態である。図3に示したロボット20をロボット座標系RCにおけるY軸の正方向から当該Y軸の負方向に向かって見た場合、コンパクト状態におけるマニピュレーターMでは、図4に示したように第1アームL1と第2アームL2と第3アームL3との3つのアームが重なる。図4は、図3に示したロボット20をロボット座標系RCにおけるY軸の正方向から当該Y軸の負方向に向かって見た場合のロボット20の正面図の一例である。
マニピュレーターMの状態をコンパクト状態にすることができる理由は、第2アームL2が、関節J2の回動によって架台BSの天井板、第1アームL1のそれぞれと干渉しない形状及び大きさに形成されているためである。
ここで、この一例において、マニピュレーターMの状態がコンパクト状態である場合、第1回動軸AX1に沿った方向において、第1アームL1の長さは、第2アームL2の長さよりも長い。また、当該場合、当該方向において、第2アームL2の長さは、第3アームL3の長さよりも長い。また、当該場合、当該方向において、第4アームL4の長さは、第5アームL5の長さよりも長い。また、当該場合、当該方向において、第5アームL5の長さは、第6アームL6の長さよりも長い。なお、第1アームL1〜第6アームL6それぞれの長さは、これらに代えて、他の長さであってもよい。
また、マニピュレーターMの状態をコンパクト状態にすることができるため、マニピュレーターMは、図5に示したように、関節J1を回動させずに関節J2を回動させることにより、コンパクト状態を経て、関節J6の位置を、第1回動軸AX1周りに180°異なる位置に移動させることが可能である。図5は、マニピュレーターMの動作のうちコンパクト状態を経る動作を説明するための図である。関節J6の位置は、この一例において、関節J6の重心の位置によって表される。なお、関節J6の位置は、関節J6の重心の位置に代えて、関節J6に対応付けられた他の位置によって表される構成であってもよい。より具体的には、マニピュレーターMは、関節J1を回動させずに関節J2を回動させることにより、マニピュレーターMの先端である第6アームL6を図5の左側に示す左側位置から、コンパクト状態を経て、第1回動軸AX1周りに180°異なる図5の右側に示す右側位置に移動させることが可能である。なお、図5に示した動作では、第6アームL6は、第1回動軸AX1に沿った方向からロボット20を見た場合、直線上を移動する。
また、第3アームL3〜第6アームL6の長さの合計は、第2アームL2の長さよりも長い。これにより、第2回動軸AX2に沿った方向からロボット20を見た場合にマニピュレーターMの状態をコンパクト状態と一致させると、第2アームL2から第6アームL6の先端を突出させることができる。その結果、第6アームL6にエンドエフェクターEを取り付けた場合において、エンドエフェクターEが第1アームL1及び第2アームL2と干渉してしまうことを抑制することができる。
このようにマニピュレーターMは、第1回動軸AX1を回動させずに第2回動軸AX2を回動させることにより、コンパクト状態を経て、エンドエフェクターEを第1回動軸AX1周りに180°異なる位置に移動させることができる。その結果、ロボット20は、エンドエフェクターEを効率よく移動させることができるとともに、ロボット20の一部が他の物体と干渉しないようにするために設ける空間を小さくすることができる。
図2に戻る。マニピュレーターMが備える関節J1〜関節J6のそれぞれに備えられたアクチュエーターは、ケーブルによってロボット制御装置30と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置30から取得される制御信号に基づいて、マニピュレーターMを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、当該アクチュエーターのうちの一部又は全部は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
エンドエフェクターEは、物体を空気によって吸着(保持)可能な吸着部を備えるエンドエフェクターである。なお、エンドエフェクターEは、当該吸着部を備えるエンドエフェクターに代えて、物体を挟持可能な爪部(指部)を備えるエンドエフェクター等の他のエンドエフェクターであってもよい。
エンドエフェクターEは、ケーブルによってロボット制御装置30と通信可能に接続されている。これにより、エンドエフェクターEは、ロボット制御装置30から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、エンドエフェクターEは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
力検出部21は、エンドエフェクターEとマニピュレーターMの間に備えられる。力検出部21は、例えば、力センサーである。力検出部21は、エンドエフェクターE又はエンドエフェクターEにより吸着された物体に作用した外力を検出する。当該外力には、エンドエフェクターE又はエンドエフェクターEにより吸着された物体を並進させる並進力と、エンドエフェクターE又はエンドエフェクターEにより吸着された物体を回転させる回転モーメント(トルク)とが含まれる。力検出部21は、検出した外力の大きさを示す値を出力値として含む力検出情報を通信によりロボット制御装置30へ出力する。
力検出情報は、ロボット制御装置30によるロボット20の制御のうちの力検出情報に基づく制御である力制御に用いられる。力制御は、力検出情報が示す外力が所定の終了条件を満たす状態を実現するようにエンドエフェクターEとマニピュレーターMの少なくとも一方を動作させる制御である。終了条件は、力制御によるロボット20の動作をロボット制御装置30が終了させるための条件である。すなわち、力制御は、例えば、インピーダンス制御等のコンプライアントモーション制御のことである。なお、力検出部21は、トルクセンサー等のエンドエフェクターE又はエンドエフェクターEにより吸着された物体に加わる力やモーメントの大きさを示す値を検出する他のセンサーであってもよい。また、力検出部21は、エンドエフェクターEとマニピュレーターMの間に備えられる構成に代えて、マニピュレーターMの他の部位に備えられる構成であってもよい。
力検出部21は、ケーブルによってロボット制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、力検出部21とロボット制御装置30とは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によって接続される構成であってもよい。
力検出部21をロボット20が備えていることにより、ユーザーは、ロボット制御装置30にロボット20の動作を記憶させる(教示する)際、ダイレクトティーチングによってロボット制御装置30に当該動作を記憶させることができる。また、力検出部21をロボット20が備えていることにより、ロボット制御装置30は、例えば、力制御によって物体を変形させてしまうことなくロボット20に保持させることができる。
吐出部Dは、吐出物を吐出可能なディスペンサーである。また、吐出部Dは、吐出部Dを対象物に接触させずに吐出物を対象物Oに吐出することが可能な非接触式のディスペンサーである。吐出物は、液体、気体、粉粒体等の吐出可能な物質のことである。以下では、一例として、吐出物がグリース(潤滑材)である場合について説明する。吐出部Dは、図示しない吐出口と、図示しないシリンジ部と、シリンジ部の内部に空気を注入する図示しない空気注入部とを備える。吐出口は、シリンジ部に入っているグリースを吐出する孔である。シリンジ部は、内部にグリースを入れる空間を有する容器である。すなわち、吐出部Dは、空気注入部がシリンジ部の内部に空気を注入することにより、当該空気の圧力によってシリンジ部の内部に入っているグリースを吐出口から吐出する。この一例において、吐出部Dは、エンドエフェクターEに備えられる。そのため、吐出部Dが吐出物を吐出可能な位置は、可動部Aの動きに応じて変化する。
吐出部Dの形状は、この一例において、直方体形状である。なお、吐出部Dの形状は、直方体形状に代えて、円柱形状等の他の形状であってもよい。ここで、直方体形状である吐出部Dが有する6つの面のうちの1つには、前述の吐出口が形成されている。そして、吐出部Dが有する6つの面のうちの吐出口が形成された面である吐出面には、ボルト等の締結部材によって着脱可能な治具Jを取り付けることができる。図6は、治具Jが取り付けられた吐出部Dの一例を示す図である。また、図6は、直方体形状である吐出部Dが有する6つの面のうち吐出面に直交する4つの面のうちのいずれかの面に向かって吐出部Dを見た場合における吐出部D及び治具Jの側面図である。
図6に示した吐出口EHは、前述の吐出口の一例である。吐出部Dは、吐出口EHから吐出物を吐出する。この際、吐出部Dは、吐出面に直交する方向のうち吐出部Dの内側から吐出口EHを通って吐出部Dの外側に向かう方向である吐出方向に向かって吐出物を吐出する。図6に示した直線EXは、吐出口EHの中心を通る軸であって吐出方向に沿った軸を示している。すなわち、吐出部Dは、直線EXに沿って吐出物を吐出する。すなわち、直線EX上に物体の表面が位置している場合、当該表面と直線EXとの交点に吐出物が塗布される。以下では、説明の便宜上、ロボット座標系RCにおける当該交点の位置を着弾位置と称して説明する。
治具Jには、マーカーMKが設けられている。治具Jの形状は、治具Jが吐出部Dに取り付けられた場合において、吐出部Dの吐出面から最も遠い位置であって吐出方向における位置にマーカーMKが位置し、マーカーMKが直線EX上に位置する形状であれば如何なる形状であってもよい。図6に示した例では、治具Jの形状は、円錐台形状である。すなわち、円錐台形状である治具Jの先端、すなわち円錐台形状の上面の中心は、直線EX上に位置する。また、当該上面には、マーカーMKが設けられる。マーカーMKは、当該上面の中心の位置を示す印である。また、当該例では、吐出面から当該上面までの距離であって吐出方向における距離は、距離Hである。すなわち、マーカーMKは、吐出面から物体の表面までの吐出方向における距離が距離Hであった場合における着弾位置を示す印である。なお、マーカーMKの形状は、当該着弾位置を示すことができれば如何なる形状であってもよい。治具Jに設けられたマーカーMKが、当該着弾位置を示すため、治具Jの形状が円錐台形状である場合、円錐台形状である治具Jの先端、すなわち円錐台形状の上面の面積は、物体の表面上のある位置に吐出部Dが吐出物を塗布した際に吐出物が当該表面を覆う面積程度であることが望ましい。以下では、説明の便宜上、距離Hのことを治具Jの長さと称して説明する。
治具Jは、吐出面に動かないように取り付けられる。すなわち、治具Jは、吐出部Dの位置とマーカーMKが示す位置との相対的な位置関係が変化しないように吐出部Dに取り付けられる。なお、治具Jの長さ(図6に示した例では、距離H)は、可変であってもよく、可変でなくてもよい。治具Jの長さが可変である場合、治具Jは、当該長さを変更可能な機構を備える。
ここで、図1及び図2に示した吐出部Dは、治具Jが取り付けられている吐出部Dの一例である。また、図3〜図5に示した吐出部Dは、治具Jが取り付けられていない吐出部Dの一例である。
図1及び図2に戻る。ロボット制御装置30は、ロボット20を制御するコントローラーである。ロボット制御装置30は、ユーザーにより予め記憶された動作プログラムに基づいてロボット20を動作させる。これにより、ロボット制御装置30は、ロボット20に所定の作業を行わせることができる。所定の作業は、例えば、対象物Oの予め決められた位置に吐出物を塗布する作業である。なお、所定の作業は、これに代えて、他の作業であってもよい。
ロボット制御装置30は、この一例において、基台Bの内側に設けられている(内蔵されている)。なお、ロボット制御装置30は、これに代えて、ロボット20と別体であってもよい。この場合、ロボットシステム1は、ロボット20と、ロボット20と別体のロボット制御装置30とを少なくとも備える。
<ロボットを動作させる際にロボット制御装置が行う処理の概要>
以下、ロボット20を動作させる際にロボット制御装置30が行う処理の概要について説明する。
ロボット制御装置30は、エンドエフェクターEの予め決められた位置に、エンドエフェクターEとともに動くTCP(Tool Center Point)である制御点Tを設定する。エンドエフェクターEの予め決められた位置は、エンドエフェクターEの重心の位置である。なお、エンドエフェクターEの予め決められた位置は、これに代えて、エンドエフェクターEに対応付けられた他の位置であってもよい。また、ロボット制御装置30は、エンドエフェクターEの予め決められた位置に制御点Tを設定する構成に代えて、可動部Aに対応付けられた他の位置に制御点Tを設定する構成であってもよい。
制御点Tには、制御点Tの位置を示す情報である制御点位置情報と、制御点Tの姿勢を示す情報である制御点姿勢情報とが対応付けられている。なお、制御点Tには、これらに加えて、他の情報が対応付けられる構成であってもよい。ロボット制御装置30は、制御点位置情報及び制御点姿勢情報のそれぞれを指定(決定)する。ロボット制御装置30は、関節J1〜関節J6のうちの少なくとも1つを動作させることによって、指定した制御点位置情報が示す位置に制御点Tの位置を一致させるとともに、指定した制御点姿勢情報が示す姿勢に制御点Tの姿勢を一致させる。すなわち、ロボット制御装置30は、制御点位置情報及び制御点姿勢情報を指定することにより、ロボット20を動作させる。
この一例ではロボット20が6軸垂直多関節型の可動部Aを備えるため、制御点Tの位置は、関節J1〜関節J3のそれぞれを回動させることによっておおよそ決定される。なお、制御点Tの位置は、関節J4〜関節J6のそれぞれを回動させることによって微調整することもできる。また、当該一例では、制御点Tの姿勢は、関節J4〜関節J6のそれぞれを回動させることによって決定される。
この一例において、制御点Tの位置は、制御点座標系TCの原点のロボット座標系RCにおける位置によって表される。また、制御点Tの姿勢は、制御点座標系TCの各座標軸のロボット座標系RCにおける方向によって表される。制御点座標系TCは、制御点Tとともに動くように制御点Tに対応付けられた三次元直交座標系である。なお、この一例において、可動部Aの位置及び姿勢は、制御点Tの位置及び姿勢によって表される。
ここで、対象物Oの予め決められた位置に非接触式の吐出部である吐出部Dによって吐出物を塗布する場合における吐出部Dの位置をロボット制御装置30に記憶させる(教示する)場合、ユーザーが吐出物を塗布したい所望の位置に吐出物を吐出可能な位置に吐出部Dの位置が一致しているか否かを判定する必要がある。しかしながら、ロボットシステム1と異なるロボットシステムX1(例えば、従来のロボットシステム)では、当該吐出可能な位置に吐出部Dの位置が一致しているか否かを精度よく判定することは、困難な場合があった。このため、ロボット制御装置30は、対象物Oの予め決められた位置に吐出物を塗布する作業をロボット20に精度よく行わせることができない場合があった。
そこで、この一例におけるロボット制御装置30は、吐出部Dに着脱可能に取り付けられた治具Jに基づいた第1位置を用いて、可動部Aの位置に関する教示情報を生成する。ロボット制御装置30は、対象物Oの予め決められた位置に吐出物を塗布する作業をロボット20に精度よく行わせることができる。
以下では、第1位置、教示情報のそれぞれの具体例とともに、ロボット制御装置30が第1位置を用いて教示情報を生成する処理について詳しく説明する。
<ロボット制御装置のハードウェア構成>
以下、図7を参照し、ロボット制御装置30のハードウェア構成について説明する。図7は、ロボット制御装置30のハードウェア構成の一例を示す図である。
ロボット制御装置30は、例えば、CPU(Central Processing Unit)31と、記憶部32と、入力受付部33と、通信部34と、表示部35を備える。これらの構成要素は、バスBusを介して相互に通信可能に接続されている。また、ロボット制御装置30は、通信部34を介して撮像部10、ロボット20、吐出部Dのそれぞれと通信を行う。
CPU31は、記憶部32に格納された各種プログラムを実行する。
記憶部32は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)等を含む。なお、記憶部32は、ロボット制御装置30に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部32は、ロボット制御装置30が処理する各種情報(教示点情報を含む)、各種プログラム(動作プログラムを含む)、各種画像等を格納する。
入力受付部33は、例えば、キーボードやマウス、タッチパッド、その他の入力装置である。なお、入力受付部33は、これらに代えて、表示部35と一体に構成されたタッチパネルであってもよい。また、入力受付部33は、ロボット制御装置30と別体であってもよい。この場合、入力受付部33は、有線又は無線によってロボット制御装置30と通信可能に接続される。
通信部34は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
表示部35は、例えば、液晶ディスプレイパネル、あるいは、有機EL(ElectroLuminescence)ディスプレイパネルである。なお、表示部35は、ロボット制御装置30と別体であってもよい。この場合、表示部35は、有線又は無線によってロボット制御装置30と通信可能に接続される。
<ロボット制御装置の機能構成>
以下、図8を参照し、ロボット制御装置30の機能構成について説明する。図8は、ロボット制御装置30の機能構成の一例を示す図である。
ロボット制御装置30は、記憶部32と、表示部35と、制御部36を備える。
制御部36は、ロボット制御装置30の全体を制御する。制御部36は、表示制御部361と、撮像制御部363と、吐出制御部365と、画像取得部367と、力検出情報取得部369と、生成部371と、ロボット制御部373を備える。制御部36が備えるこれらの機能部は、例えば、CPU31が、記憶部32に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
表示制御部361は、ロボット制御装置30が表示部35に表示させる各種の画面(画像)を生成する。表示制御部361は、生成した画面を表示部35に表示させる。
撮像制御部363は、撮像部10が撮像可能な範囲を撮像部10に撮像させる。
吐出制御部365は、吐出部Dが吐出可能な位置に対して吐出部Dに吐出物を吐出させる。
画像取得部367は、撮像部10が撮像した撮像画像を撮像部10から取得する。
力検出情報取得部369は、力検出部21が検出した外力の大きさを示す値を出力値として含む力検出情報を力検出部21から取得する。
生成部371は、前述の教示情報を生成する。
ロボット制御部373は、ロボット20を制御する(動作させる)。
<ロボット制御装置が第1位置を用いて教示情報を生成する処理>
以下、第1位置、教示情報のそれぞれの具体例とともに、ロボット制御装置30が第1位置を用いて教示情報を生成する処理について説明する。
教示情報は、前述した通り、可動部Aの位置に関する情報である。また、教示情報は、ロボット制御装置30に記憶させる(教示する)情報であり、ロボット制御装置30がロボット20を制御する(動作させる)ために用いる情報のことである。
<教示情報の具体例1である第1教示情報を生成する処理>
以下、前述した可動部Aの位置に関する教示情報の具体例1である第1教示情報と、ロボット制御装置30が第1教示情報を生成する処理である第1処理とのそれぞれについて説明する。
第1教示情報は、吐出部Dの位置と可動部Aの位置との相対的な位置関係を示す情報である。ロボット制御装置30は、第1教示情報を生成し、生成した第1教示情報を記憶部32に記憶させることにより、可動部Aを動かすことによって吐出部Dの位置をユーザーが所望する位置に精度よく移動させることができる。
ロボット制御装置30が第1教示情報を生成する場合、吐出部Dに着脱可能に取り付けられた治具Jに基づいた第1位置は、治具Jに設けられたマーカーMKが示す位置のことである。以下では、説明の便宜上、マーカーMKが示す位置のことをマーカーMKの位置と称して説明する。すなわち、ロボット制御装置30は、吐出部Dに着脱可能に取り付けられた治具Jに設けられたマーカーMKの位置を用いて、第1教示情報を生成する。
ここで、図9を参照し、ロボット制御装置30が第1教示情報を生成する処理である第1処理について説明する。図9は、ロボット制御装置30が行う第1処理の流れの一例を示すフローチャートである。なお、図9に示したフローチャートでは、ステップS110の処理が行われる前に、ロボット制御装置30が第1処理を開始する操作をユーザーから予め受け付けた場合について説明する。ロボット制御装置30は、例えば、表示制御部361が表示部35に表示させた画面であってロボット制御装置30がユーザーからの操作を受け付ける操作画面を介して、ユーザーから第1処理を開始する操作を受け付ける。なお、ロボット制御装置30は、これに代えて、他の方法によってユーザーから第1処理を開始する操作を受け付ける構成であってもよい。
ロボット制御部373は、吐出部Dへ治具Jが取り付けられるまで待機する(ステップS110)。ロボット制御装置30は、例えば、前述の操作画面を介して、吐出部Dへの治具Jの取り付けた終了したことを示す情報をユーザーから受け付けた場合、吐出部Dへ治具Jが取り付けられたと判定する。吐出部Dへ治具Jが取り付けられたと判定した場合(ステップS110−YES)、ロボット制御部373は、制御点Tを移動させ、可動部Aの位置を予め決められた撮像位置と一致させるとともに可動部Aの姿勢を予め決められた撮像姿勢と一致させる(ステップS120)。撮像位置は、可動部Aの位置が一致した場合において、撮像部10が撮像可能な撮像範囲に吐出部Dが含まれる位置であれば如何なる位置であってもよい。撮像姿勢は、可動部Aの姿勢のうち、可動部Aの位置が撮像位置と一致している状態において、撮像部10の光軸に沿った方向と吐出方向とが平行になる姿勢であり、且つ、マーカーMKを撮像部10が撮像可能な姿勢である。この一例において、撮像姿勢は、可動部Aの姿勢のうち吐出部Dの吐出方向が下方向と一致する姿勢である。
次に、撮像制御部363は、撮像部10が撮像可能な撮像範囲を撮像部10に撮像させる(ステップS130)。次に、画像取得部367は、ステップS130において撮像部10が撮像した撮像画像を撮像部10から取得する(ステップS140)。次に、生成部371は、ステップS140において画像取得部367が取得した撮像画像に基づいて、マーカーMKの位置であってロボット座標系RCにおけるマーカーMKの位置を前述の第1位置として算出する(ステップS150)。ここで、生成部371には、撮像画像上の位置とロボット座標系RCにおける位置とを対応付けるキャリブレーションが予め行われている。また、生成部371が撮像画像に基づいてマーカーMKの位置を算出する方法は、例えば、パターンマッチング等の既知の方法であってもよく、これから開発される方法であってもよい。
次に、生成部371は、記憶部32に予め記憶された第1対応情報を記憶部32から読み出す。第1対応情報は、吐出部Dに治具Jが取り付けられた場合における位置関係であって吐出部Dの位置とマーカーMKの位置との相対的な位置関係を示す情報のことである。生成部371は、読み出した第1対応情報と、ステップS150において第1位置として算出したマーカーMKの位置とを用いて、ロボット座標系RCにおける位置関係であって吐出部Dの位置と可動部Aの位置との相対的な位置関係を算出する(ステップS160)。
次に、生成部371は、ステップS160において算出した位置関係を示す情報を第1教示情報として生成する(ステップS170)。次に、生成部371は、ステップS170において生成した第1教示情報を記憶部32に記憶させ(ステップS180)、処理を終了する。
以上のように、ロボット制御装置30は、第1処理、すなわち図9に示したフローチャートの処理を実行することにより、治具Jに基づいた第1位置(この一例において、マーカーMKの位置)を用いて、第1教示情報を生成する。これにより、ロボット制御装置30は、可動部Aを動かすことによって吐出部Dの位置をユーザーが所望する位置に精度よく移動させることができる。その結果、ロボット制御装置30は、対象物Oの予め決められた位置に吐出物を塗布する作業をロボット20に精度よく行わせることができる。
なお、ステップS120の処理が行われた後であってステップS130の処理が行われる前の間に、吐出部Dと撮像部10との間に吐出方向に直交するように透明なガラス板を配置される構成であってもよい。この場合、当該間において、ロボット制御装置30は、例えば、力制御によってガラス板に治具Jの先端を接触させる。ユーザーは、ガラス板に治具Jの先端が接触した状態において、吐出部Dから治具Jを取り外す。そして、ロボット制御装置30は、吐出部Dに吐出物をガラス板に向かって吐出させる。その後、ロボット制御装置30は、ステップS130において、撮像部10が撮像可能な撮像範囲を撮像部10に撮像させる。撮像部10が撮像した撮像画像には、ガラス板に塗布された吐出物の着弾位置が撮像されている。ロボット制御装置30は、ステップS140において、当該撮像画像を取得する。ロボット制御装置30は、ステップS150において、取得した撮像画像に基づいて、当該着弾位置を第1位置として算出する。このようにガラス板を使用しても、ロボット制御装置30は、第1教示情報を生成することができる。
<教示情報の具体例2である第2教示情報を生成する処理>
以下、可動部Aの位置に関する教示情報の具体例2である第2教示情報と、ロボット制御装置30が第2教示情報を生成する処理である第2処理とのそれぞれについて説明する。
第2教示情報は、1以上の教示点を示す教示点情報である。教示点は、ロボット制御装置30が可動部Aを動作させる際に制御点Tを移動させる目標となる仮想的な点のことである。教示点には、教示点位置情報と、教示点姿勢情報と、教示点識別情報とが対応付けられている。教示点位置情報は、教示点の位置を示す情報である。また、教示点姿勢情報は、教示点の姿勢を示す情報である。この一例において、教示点の位置は、教示点に対応付けられた三次元直交座標系である教示点座標系の原点のロボット座標系RCにおける位置によって表される。また、教示点の姿勢は、教示点座標系の各座標軸のロボット座標系RCにおける方向によって表される。教示点識別情報は、教示点を識別する情報であり、例えば、教示点を識別するIDである。なお、教示点には、教示点位置情報、教示点姿勢情報、教示点識別情報に加えて、他の情報が対応付けられる構成であってもよい。
ロボット制御装置30が第2教示情報に基づいてロボット20を制御する(動作させる)場合、ロボット制御装置30は、例えば、ユーザーにより予め入力された動作プログラムと教示点識別情報とに基づいて、第2教示情報(すなわち、教示点情報)が示す1以上の教示点を順に指定する。ロボット制御装置30は、指定した教示点の位置を示す教示点位置情報を制御点位置情報として指定するとともに、当該教示点の姿勢を示す教示点姿勢情報を制御点姿勢情報として指定する。そして、ロボット制御装置30は、可動部Aを動作させ、指定した制御点位置情報が示す位置に制御点Tの位置を一致させるとともに、指定した制御点姿勢情報が示す姿勢に制御点Tの姿勢を一致させる。すなわち、ロボット制御装置30は、制御点Tの位置及び姿勢を当該教示点の位置及び姿勢と一致させる(制御点Tを当該教示点と一致させる)。これにより、ロボット制御装置30は、可動部Aに所望の動作を行わせることができる。その結果、ロボット制御装置30は、ロボット20に所定の作業を行わせることができる。
制御点Tの位置及び姿勢を変化させる際、ロボット制御装置30は、ユーザーから受け付けた操作に基づいて予め記憶された動作プログラムと、第2教示情報(すなわち、教示点情報)とに基づいて、マニピュレーターMのアクチュエーターを制御する信号を含む制御信号を生成する。当該制御信号には、エンドエフェクターEを動かす信号等の他の信号も含まれる。そして、ロボット制御装置30は、生成した制御信号をロボット20に送信し、ロボット20に所定の作業を行わせる。
このように、ロボット制御装置30は、第2教示情報に基づいてロボット20を制御する(動作させる)。ユーザーは、ダイレクトティーチング、オンラインティーチング等によって、第2教示情報をロボット制御装置30に教示する(記憶させる)ことができる。すなわち、ロボット制御装置30は、ユーザーがロボット制御装置30に第2教示情報を記憶させる(教示する)ための動作モードとして、ユーザーがダイレクトティーチングによりロボット制御装置30に第2教示情報を記憶させる(教示する)第1教示モードと、ユーザーがオンラインティーチングによりロボット制御装置30に第2教示情報を記憶させる(教示する)第2教示モードとを有する。以下では、一例として、第1教示モードにおいてロボット制御装置30が行う第2処理について説明する。なお、ダイレクトティーチングは、可動部Aに対してユーザーが外力を加えることにより可動部Aの位置及び姿勢を所望の位置及び姿勢に変化させた後、位置を変化させた後の可動部Aの位置を示す教示点位置情報と、姿勢を変化させた後の可動部Aの姿勢を示す教示点姿勢情報とが対応付けられた教示点を示す教示点情報を第2教示情報としてロボット制御装置30に記憶させる(教示する)作業のことである。また、オンラインティーチングは、ロボット制御装置30に対してユーザーが可動部Aの位置及び姿勢を変化させる操作を行うことにより可動部Aの位置及び姿勢を所望の位置及び姿勢に変化させた後、位置を変化させた後の可動部Aの位置を示す教示点位置情報と、姿勢を変化させた後の可動部Aの姿勢を示す教示点姿勢情報とが対応付けられた教示点を示す教示点情報を第2教示情報としてロボット制御装置30に記憶させる(教示する)作業のことである。
ここで、図10を参照し、第1教示モードにおいてロボット制御装置30が第2教示情報を生成する処理である第2処理について説明する。図10は、第1教示モードにおいてロボット制御装置30が行う第2処理の流れの一例を示すフローチャートである。なお、図10に示したフローチャートでは、ステップS210の処理が行われる前に、ロボット制御装置30の動作モードを第1教示モードにする操作をロボット制御装置30がユーザーから予め受け付けた場合について説明する。また、当該フローチャートでは、当該処理が行われる前に、ロボット制御装置30が第2処理を開始する操作をユーザーから予め受け付けた場合について説明する。ロボット制御装置30は、例えば、前述の操作画面を介して、動作モードを第1教示モードにする操作をユーザーから受け付けるとともに、ユーザーから第2処理を開始する操作を受け付ける。なお、ロボット制御装置30は、これに代えて、他の方法によって動作モードを第1教示モードにする操作を受け付ける構成であってもよく、他の方法によってユーザーから第2処理を開始する操作を受け付ける構成であってもよい。
ロボット制御部373は、可動部Aに外力が加えられるまで待機する(ステップS210)。具体的には、ロボット制御部373は、力検出情報取得部369に力検出情報を力検出部21から取得させる。そして、ロボット制御部373は、力検出情報取得部369が取得した力検出情報に含まれる出力値に基づいて、可動部Aに外力が加えられたか否かを判定する。可動部Aに外力が加えられたと判定した場合(ステップS210−YES)、ロボット制御部373は、可動部Aに加えられた外力に基づく力制御によって制御点Tを移動させ、可動部Aの位置及び姿勢を変化させる(ステップS220)。この一例において、当該力制御は、前述した通り、インピーダンス制御である。
次に、生成部371は、第2教示情報をロボット制御装置30に生成させる操作である第2教示情報生成操作をユーザーから受け付けたか否かを判定する(ステップS230)。例えば、生成部371は、前述の操作画面を介して第2教示情報生成操作をユーザーから受け付ける。なお、生成部371は、これに代えて、他の方法によってユーザーから第2教示情報生成操作を受け付ける構成であってもよい。第2教示情報生成操作をユーザーから受け付けていないと生成部371が判定した場合(ステップS230−NO)、ロボット制御部373は、ステップS210に遷移し、可動部Aに外力が加えられるまで再び待機する。一方、第2教示情報生成操作をユーザーから受け付けたと判定した場合(ステップS230−YES)、生成部371は、現在の可動部Aの位置を示す教示点位置情報と、現在の可動部Aの姿勢を示す教示点姿勢情報とが対応付けられた教示点を示す教示点情報を第2教示情報として生成する(ステップS240)。この際、生成部371は、当該教示点を識別する教示点識別情報を、当該教示点位置情報及び当該教示点姿勢情報とともに対応付けた当該教示点を示す教示点情報を第2教示情報として生成する。次に、生成部371は、ステップS240において生成した第2教示情報を記憶部32に記憶させる(ステップS250)。
次に、ロボット制御部373は、第2処理を終了させる操作をユーザーから受け付けたか否かを判定する(ステップS260)。例えば、ロボット制御部373は、前述の操作画面を介して当該操作をユーザーから受け付ける。なお、ロボット制御部373は、これに代えて、他の方法によってユーザーからと当該操作を受け付ける構成であってもよい。当該操作をユーザーから受け付けていないと判定した場合(ステップS260−NO)、ロボット制御部373は、ステップS210に遷移し、可動部Aに外力が加えられるまで再び待機する。一方、当該操作をユーザーから受け付けたと判定した場合(ステップS260−YES)、ロボット制御部373は、処理を終了する。
ここで、ステップS210〜ステップS220の処理において、吐出部Dに治具Jが取り付けられている場合、ユーザーは、可動部Aに外力を加えることによって可動部Aをロボット制御装置30による力制御によって動かし、対象物Oの予め決められた位置であってユーザーが吐出物を塗布したい所望の位置に治具Jの先端を接触させた状態における可動部Aの位置及び姿勢を示す情報(すなわち、上記の教示点情報)を第2教示情報としてロボット制御装置30に記憶させることができる。すなわち、治具Jの先端が対象物Oに接触している状態における当該先端の位置(すなわち、マーカーMKの位置)は、ユーザーが吐出物を塗布したい所望の位置であり、この一例における第1位置の一例である。また、ユーザーは、ユーザーが吐出物を塗布したい所望の位置に治具Jの先端を接触させながら(すなわち、吐出部Dの位置及び姿勢を当該所望の位置に吐出物を吐出可能な位置及び姿勢と一致させながら)、吐出部Dの位置及び姿勢をユーザーが所望する位置及び姿勢と一致させることができる。その結果、ユーザーは、ロボット制御装置30に対して、ユーザーが吐出物を塗布したい所望の位置に吐出物を吐出可能な吐出部Dの位置及び姿勢であってユーザーが所望する位置及び姿勢を示す情報(すなわち、上記の教示点情報)を、第2教示情報として容易にロボット制御装置30に記憶させることができる。
以上のように、ロボット制御装置30は、第2処理、すなわち図10に示したフローチャートの処理を実行することにより、治具Jに基づいた第1位置(治具Jの先端が対象物Oに接触している状態における当該先端の位置)を用いて、第2教示情報を生成する。これにより、ロボット制御装置30は、可動部Aを動かすことによって吐出部Dの位置をユーザーが所望する位置に精度よく移動させることができる。その結果、ロボット制御装置30は、対象物Oの予め決められた位置に吐出物を塗布する作業をロボット20に精度よく行うことができる。
<教示情報の具体例3である第3教示情報を生成する処理>
以下、可動部Aの位置に関する教示情報の具体例3である第3教示情報と、ロボット制御装置30が第3教示情報を生成する処理である第3処理とのそれぞれについて説明する。
第3教示情報は、前述の作業台TBに載置された対象物Oの上面における位置のうち吐出部Dに取り付けられた治具Jの先端を接触させた3以上の位置に基づく形状に応じた情報である。当該3以上の位置のそれぞれは、第1位置の一例である。以下では、一例として、ロボット制御装置30が、当該3以上の位置に基づく形状として、当該3以上の位置に基づく平面に応じた情報を第3教示情報として生成する場合について説明する。すなわち、ロボット制御装置30は、当該3以上の位置に基づく平面、すなわち対象物Oの上面を部分的な平面として含む平面に応じた情報を第3教示情報として生成する。なお、当該3以上の位置に基づく形状は、平面に代えて、曲面、球面等の他の形状であってもよい。
また、作業台TBに載置された対象物Oの上面における位置のうち吐出部Dに取り付けられた治具Jの先端を接触させた3以上の位置に基づく平面に応じた情報は、例えば、当該平面上の位置を示す三次元直交座標系である平面座標系FCを示す情報である。平面座標系FCにおけるX軸及びY軸は、互いに直交しており、当該平面、すなわち対象物Oの上面に平行である。また、平面座標系FCにおけるZ軸は、当該X軸及び当該Y軸に直交しており、当該平面、すなわち対象物Oの上面に直交している。また、平面座標系FCにおける位置のうち、当該Z軸の座標であるZ座標が0である位置の集合が表す平面は、対象物Oの上面を部分平面として含む平面である。
ここで、作業台TBの上面に対象物Oが載置される毎に対象物Oの上面に対するXY平面の傾きが変化してしまう場合、ロボット制御装置30と異なるロボット制御装置X2(例えば、従来のロボット制御装置)では、対象物Oの上面に沿って可動部Aの位置を移動させることは、困難である。当該XY平面は、ロボット座標系RCにおけるX軸及びY軸によって張られる平面のことである。この問題を解決するため、ロボット制御装置30は、対象物Oの上面を部分的な平面として含む平面に応じた情報、すなわち平面座標系FCを示す情報を生成し、生成した当該情報に基づいて、当該上面に沿って可動部Aの位置を移動させる。これにより、ロボット制御装置30は、吐出部Dの位置をユーザーが所望する位置に精度よく移動させることができる。その結果、ロボット制御装置30は、対象物Oの予め決められた位置に吐出物を塗布する作業をロボット20に精度よく行うことができる。
ここで、図11を参照し、ロボット制御装置30が第3教示情報を生成する処理である第3処理について説明する。図11は、ロボット制御装置30が行う第3処理の流れの一例を示すフローチャートである。なお、図11に示したフローチャートでは、ステップS310の処理が行われる前に、ロボット制御装置30が第3処理を開始する操作をユーザーから予め受け付けた場合について説明する。ロボット制御装置30は、例えば、前述の操作画面を介して、ユーザーから第3処理を開始する操作を受け付ける。なお、ロボット制御装置30は、これに代えて、他の方法によってユーザーから第3処理を開始する操作を受け付ける構成であってもよい。
ロボット制御部373は、作業台TBの上面において予め決められた位置に対象物Oがユーザーにより載置されるまで待機する(ステップS310)。ロボット制御部373は、例えば、前述の操作画面を介して、当該位置に対象物Oが載置されたことを示す情報をユーザーから受け付けた場合、当該位置に対象物Oがユーザーにより載置されたと判定する。なお、ロボット制御部373は、これに代えて、他の方法によって当該位置に対象物Oがユーザーにより載置されたと判定する構成であってもよい。当該位置に対象物Oがユーザーにより載置されたと判定した場合(ステップS310−YES)、ロボット制御部373は、記憶部32に予め記憶された開始位置情報を記憶部32から読み出す。開始位置情報は、3以上の開始位置のそれぞれを示す情報である。開始位置は、ステップS340の処理を開始する際において可動部Aの位置を一致させていきたい所望の位置であってロボット座標系RCにおける位置のことである。この一例において、開始位置は、作業台TBの上面の上側に位置する位置であって対象物Oに対して吐出部Dに取り付けられた治具Jが接触しない位置である。また、開始位置は、ロボット座標系RCにおけるZ軸の正方向から負方向に向かって対象物Oの上面を見た場合において、対象物Oの輪郭の内側に位置する位置である。また、開始位置情報には、3以上の開始位置のそれぞれに対応付けられる順序を示す順序情報が含まれている。なお、開始位置は、これに代えて、他の位置であってもよい。ロボット制御部373は、読み出した開始位置情報に含まれる順序情報に基づいて、順序が早い順に当該3以上の開始位置を1つずつ対象開始位置として選択し、選択した対象開始位置毎に、ステップS330〜ステップS380の処理を繰り返し行う(ステップS320)。以下では、一例として、開始位置情報が示す開始位置の数が3である場合について説明する。なお、当該数は、3以上であれば如何なる数であってもよい。
ロボット制御部373は、制御点Tを移動させ、ステップS320において選択した対象開始位置に可動部Aの位置を一致させる(ステップS330)。この際、ロボット制御部373は、可動部Aの姿勢を、予め決められた開始姿勢と一致させる。開始姿勢は、ステップS340の処理を開始する際において可動部Aの姿勢を一致させていきたい所望の姿勢のことである。この一例において、開始姿勢は、ロボット座標系RCにおけるZ軸の負方向と、前述の吐出方向とが一致する場合における可動部Aの姿勢のことである。なお、開始姿勢は、これに代えて、当該負方向と当該吐出方向とが一致しない場合における可動部Aの他の姿勢であってもよい。
次に、ロボット制御部373は、力制御(この一例において、インピーダンス制御)を開始する(ステップS340)。具体的には、ロボット制御部373は、力検出部21により検出される外力のうちロボット座標系RCにおけるZ軸の正方向に加わる力の大きさが予め決められた閾値以上となるように制御点Tを移動させ始める。すなわち、ロボット制御部373は、力制御によって、制御点Tを当該Z軸の負方向に向かって移動させ始める。ここで、当該閾値は、例えば、0.1Nである。なお、当該閾値は、0.1Nに代えて、0.1Nより小さくてもよく、0.1Nより大きくてもよい。
次に、ロボット制御部373は、吐出部Dに取り付けられた治具Jの先端が対象物Oの上面に接触したか否かを判定する(ステップS350)。ロボット制御部373は、力検出部21により検出される外力のうちロボット座標系RCにおけるZ軸の正方向に加わる力の大きさが予め決められた閾値以上であると判定した場合、当該先端が当該上面に接触したと判定する。一方、ロボット制御部373は、力検出部21により検出される外力のうちロボット座標系RCにおけるZ軸の正方向に加わる力の大きさが予め決められた閾値未満であると判定した場合、当該先端が当該上面に接触していないと判定する。具体的には、ロボット制御部373は、力検出情報取得部369に力検出部21から力検出情報を取得させる。そして、ロボット制御部373は、力検出情報取得部369が取得した力検出情報に含まれる出力値が示す外力のうち当該正方向に加わる力の大きさが予め決められた閾値未満であると判定した場合(ステップS350−NO)、当該先端が当該上面に接触していないと判定し、ステップS330の処理を継続する。一方、ロボット制御部373は、力検出情報取得部369が取得した力検出情報に含まれる出力値が示す外力のうち当該正方向に加わる力の大きさが予め決められた閾値以上であると判定した場合(ステップS350−YES)、ロボット制御部373は、当該先端が当該上面に接触したと判定し、ステップS340において開始した力制御を終了し、制御点Tの移動を停止させる(ステップS360)。
次に、生成部371は、現在のマーカーMKのロボット座標系RCにおける位置を基準位置として特定する(ステップS370)。ここで、生成部371は、例えば、現在の可動部Aのロボット座標系RCにおける位置と、前述の第1対応情報と、前述の第1教示情報とに基づいて、マーカーMKのロボット座標系RCにおける位置を算出する。また、生成部371は、算出した当該位置のうちロボット座標系RCのZ軸方向における位置と、現在の可動部Aの位置のうち当該Z軸方向における位置との相対的な位置関係を示す情報である相対高さ情報を生成する。生成部371は、生成した相対高さ情報を記憶部32に記憶させる。なお、生成部371は、他の方法によって当該位置を算出する構成であってもよい。また、当該相対高さ情報は、この一例において、図13において説明する処理に用いる情報であるため、図11に示したフローチャートの処理で用いられることはない。基準位置は、第1位置の一例である。
次に、生成部371は、ステップS370において特定した基準位置を示す基準位置情報を生成し、生成した基準位置情報を記憶部32に記憶させる(ステップS380)。ここで、生成部371は、基準位置情報を記憶部32に記憶させる際、ステップS320において選択された対象開始位置に対応付けられた順序を示す順序情報を基準位置情報に対応付ける。そして、ロボット制御部373は、ステップS320に遷移し、次の対象開始位置を選択する。なお、ステップS320において未選択の開始位置が存在しない場合、ロボット制御部373は、ステップS390に遷移する。
ステップS320〜ステップS380の繰り返し処理が行われた後、生成部371は、記憶部32に記憶された3つの基準位置情報のそれぞれが示す基準位置に基づいて、これら3つの基準位置の全てを含む平面に応じた情報として、当該平面上の位置を示す平面座標系FCを示す情報を第3教示情報として生成する(ステップS390)。この際、生成部371は、平面座標系FCの原点のロボット座標系RCにおける位置を、3つの当該基準位置のうち最も早い順序が対応付けられた基準位置と一致させる。これにより、ロボット制御部373は、平面座標系FCにおける位置がロボット座標系RCにおける位置に対応付けられるため、平面座標系FCにおける位置をロボット座標系RCにおける位置に変換することができる。また、生成部371は、平面座標系FCのX軸及びY軸が当該平面と平行になるように平面座標系FCを示す情報を第3教示情報として生成する。これにより、平面座標系FCにおける位置のうちZ座標が0である位置の集合は、対象物Oの上面を部分平面として含む平面を表す。生成部371は、生成した第3教示情報を記憶部32に記憶させ(ステップS400)、処理を終了する。
ここで、図12を参照し、ステップS320〜ステップS390の処理について説明する。図12は、ステップS320〜ステップS390の処理を説明するための図である。図12は、ステップS330の処理によって可動部Aの位置が、順序が1番目の基準位置と一致した状態における可動部Aと対象物Oとの位置関係を示している。また、図12に示した例では、対象物Oの上面は、ロボット座標系RCにおけるXY平面と平行ではない。
ロボット制御部373は、順序が1番目の基準位置が対象基準位置として選択されている場合におけるステップS340の処理において、力制御により可動部Aを矢印MAが示す方向、すなわち、この一例における下方向に移動させる。これにより、ロボット制御部373は、治具Jの先端を対象物Oの上面に接触させる。図12に示した点P1は、当該処理によって治具Jの先端が接触する位置を示している。また、図12に示した点P2は、当該上面における位置のうち、順序が2番目の基準位置が対象基準位置として選択された場合におけるステップS340の処理によって治具Jの先端が接触位置を示している。また、図12に示した点P3は、当該上面における位置のうち、順序が3番目の基準位置が対象基準位置として選択された場合におけるステップS340の処理によって治具Jの先端が接触する位置を示している。
生成部371は、点P1〜点P3のそれぞれが示す基準位置に基づいて、前述の平面座標系FCを示す情報を第3教示情報として生成する。図12に示した平面座標系FCは、このようにして生成部371が生成した第3教示情報が示す平面座標系FCである。なお、図12では、平面座標系FCの原点は、図が煩雑になるのを避けるため、点P1が示す位置とは一致させていない。図12に示したように、点P1〜点P3のそれぞれが示す基準位置の全てを含む平面、すなわち対象物Oの上面を部分平面として含む平面がロボット座標系RCにおけるXY平面と平行ではないため、平面座標系FCにおけるXY平面は、ロボット座標系RCにおけるXY平面と平行ではない。しかし、図12に示した例のように、これらのXY平面が互いに平行ではない場合であっても、ロボット制御装置30は、第3教示情報に基づいて、対象物Oの上面に沿って可動部Aを移動させることができ、その結果、ロボット制御装置30は、当該上面に塗布される吐出物に塗り斑(塗りムラ、塗布ムラ)が生じてしまうことを抑制することができる。
次に、図13を参照し、図11に示したフローチャートの処理によって生成された第3教示情報に基づいてロボット制御装置30がロボット20に所定の作業を行わせる処理について説明する。図13は、図11に示したフローチャートの処理によって生成された第3教示情報に基づいてロボット制御装置30がロボット20に所定の作業を行わせる処理の流れの一例を示す図である。この一例における所定の作業は、対象物Oの上面に沿って可動部Aを予め決められた軌跡を描くように移動させながら当該上面に吐出物を塗布する作業である。なお、当該所定の作業は、これに代えて、他の作業であってもよい。また、図13に示したフローチャートでは、ステップS410の処理が行われる前に、吐出部Dから治具Jが取り外されている場合について説明する。
ロボット制御部373は、記憶部32に予め記憶された第3教示情報を記憶部32から読み出す(ステップS410)。次に、ロボット制御部373は、記憶部32に予め記憶された第1軌跡情報を記憶部32から読み出す(ステップS420)。第1軌跡情報は、ロボット制御装置30がロボット20に行わせる所定の作業における可動部Aの位置及び姿勢の変化を表す軌跡を示す情報である。この一例において、当該軌跡は、ロボット座標系RCにおけるXY平面に沿って動く可動部Aの位置の変化を表す。また、当該軌跡上の各点の位置は、ロボット座標系RCにおけるX座標とY座標との組み合わせによって表される。すなわち、当該軌跡は、ロボット座標系RCにおけるZ軸方向の位置について規定されていない。また、当該軌跡は、この一例において、ロボット座標系RCにおけるZ軸の正方向から負方向に向かって対象物Oの上面を見た場合において、対象物Oの輪郭の内側に含まれる。なお、当該軌跡の一部は、当該輪郭の内側に含まれない構成であってもよい。また、当該軌跡上の各点の姿勢は、ロボット座標系RCにおけるU座標とV座標とW座標との組み合わせによって表される。U座標は、ロボット座標系RCにおけるX軸周りの回動軸を示す座標である。V座標は、ロボット座標系RCにおけるY軸周りの回動軸を示す座標である。W座標は、ロボット座標系RCにおけるZ軸周りの回動軸を示す座標である。
次に、生成部371は、記憶部32に予め記憶された前述の相対高さ情報を読み出す。生成部371は、読み出した相対高さ情報と、ステップS410において記憶部32から読み出した第3教示情報と、ステップS420において記憶部32から読み出した第1軌跡情報とに基づいて、ロボット20に行わせる所定の作業における可動部Aの位置の変化を表す軌跡であって平面座標系FCにおけるXY平面上に沿った軌跡である平面上軌跡を生成する(ステップS430)。具体的には、生成部371は、当該第3教示情報が示す平面座標系FCにおける位置のうちZ座標が平面座標系FCの原点のZ座標と一致している位置の集合を、対象物Oの上面を部分平面として含む平面として特定する。また、生成部371は、当該第1軌跡情報が示す軌跡を、平面座標系FCにおける位置のうちZ座標が0(すなわち、原点と同じZ座標)の位置の集合が表す平面に沿った軌跡に変換する。また、生成部371は、変換した当該軌跡と、当該相対高さ情報が示す位置関係とに基づいて、当該軌跡に沿ったマーカーMKの位置の変化に伴う可動部Aの位置の変化を表す軌跡を平面上軌跡として生成する。
次に、ロボット制御部373は、制御点Tを移動させ、ステップS430において生成した平面上軌跡上の各点のうちの始点の位置に可動部Aの位置を一致させる(ステップS440)。次に、ロボット制御部373は、吐出制御部365を制御して吐出部Dに吐出物を吐出させるとともに当該軌跡に沿って可動部Aの位置を変化させ、ロボット20に所定の作業を行わせる(ステップS450)。これにより、ロボット制御装置30は、対象物Oの上面に沿った軌跡に基づいて可動部Aの位置を変化させることができ、その結果、対象物Oの予め決められた位置に吐出物を塗布する作業をロボット20に精度よく行うことができる。また、当該上面に沿って可動部A及び吐出部Dを動かすことができるため、ロボット制御装置30は、当該上面に塗布された吐出物に塗り斑(塗りムラ、塗布ムラ)が生じてしまうことを抑制することができる。ステップS450の処理が行われた後、ロボット制御部373は、処理を終了する。
<教示情報の具体例4である第4教示情報を生成する処理>
以下、可動部Aの位置に関する教示情報の具体例4である第4教示情報と、ロボット制御装置30が第4教示情報を生成する処理である第4処理とのそれぞれについて説明する。
この一例では、ロボット20が作業を行う対象である対象物が、前述の対象物Oに代えて、対象物O2である場合について説明する。対象物O2は、対象物Oと同様に平板形状のプレートであるが、対象物Oと異なり上面に凹凸が形成されている。
また、ロボット制御装置30が第4処理を行う際、エンドエフェクターEには、吐出部Dとともに動く距離検出部(図15参照)が設けられる。距離検出部は、例えば、レーザー変位計である。距離検出部は、物体の表面にレーザーを照射し、当該表面において反射されたレーザーが受光されるまでの時間に基づいて、当該表面上の位置のうちレーザーが照射された位置から距離検出部の位置までの距離を検出する。なお、距離検出部は、当該距離を検出可能であれば、タッチセンサー、ロードセル等のレーザー変位計以外の他のセンサーであってもよい。距離検出部は、検出した距離を示す距離情報をロボット制御装置30に出力する。距離情報は、距離検出部からの出力の一例である。距離検出部の位置は、例えば、距離検出部の重心の位置によって表される。なお、距離検出部の位置は、当該重心の位置に代えて、距離検出部に応じた他の位置によって表される構成であってもよい。
以下では、一例として、距離検出部がレーザーを照射する方向が、前述の吐出方向と一致している場合について説明する。なお、距離検出部がレーザーを照射する方向は、これに代えて、吐出方向と異なる方向と一致する構成であってもよい。
ここで、エンドエフェクターEに距離検出部が設けられる場合、ロボット制御装置30が備える制御部36は、距離検出部に距離を検出させる図示しない距離検出制御部を備える。距離検出制御部は、距離検出部が検出した距離を示す距離情報を距離検出部から取得する。
第4教示情報は、対象物O2の上面に形成された凹凸に応じた軌跡であってロボット20が所定の作業を行う際における可動部Aの位置及び姿勢の変化を表す軌跡を示す情報である。すなわち、ロボット制御装置30は、第4処理によって、当該凹凸に応じた軌跡であってロボット20が所定の作業を行う際における可動部Aの位置の変化を表す軌跡を示す情報を第4教示情報として生成する。第4教示情報が示す軌跡上の各点の位置は、ロボット座標系RCにおけるX座標とY座標とZ座標との組み合わせによって表される。
対象物Oの場合と同様に、対象物O2の予め決められた位置に非接触式の吐出部である吐出部Dによって吐出物を塗布する場合における吐出部Dの位置をロボット制御装置30に記憶させる(教示する)場合、ユーザーが吐出物を塗布したい所望の位置に吐出物を吐出可能な位置に吐出部Dの位置が一致しているか否かを判定する必要がある。このため、ロボット制御装置30は、対象物O2の予め決められた位置に吐出物を塗布する作業をロボット20に行わせる際において可動部Aの位置及び姿勢の変化を表す軌跡であってユーザーが所望する軌跡を示す第4教示情報を精度よく生成することができない場合があった。そこで、ロボット制御装置30は、以下において説明する処理において、吐出部Dに着脱可能に取り付けられた治具Jに基づいた第1位置を用いて第4教示情報を生成する。
ロボット制御装置30が第4教示情報を生成する場合、吐出部Dに着脱可能に取り付けられた治具Jに基づいた第1位置は、吐出部Dに取り付けられた治具Jの先端が対象物O2の表面に接触している状態における可動部Aの位置である。この一例において、ロボット制御装置30は、距離検出部が検出した距離を示す距離情報と、当該第1位置とに基づいて、第4教示情報を生成する。
ここで、図14を参照し、ロボット制御装置30が第4教示情報を生成する処理である第4処理について説明する。図14は、ロボット制御装置30が行う第4処理の流れの一例を示すフローチャートである。ここで、図14に示したフローチャートでは、ステップS510の処理が行われる前に、ロボット制御装置30が第4処理を開始する操作をユーザーから予め受け付けた場合について説明する。ロボット制御装置30は、例えば、前述の操作画面を介して、ユーザーから第4処理を開始する操作を受け付ける。また、当該フローチャートでは、ステップS510の処理が行われる前に、吐出部Dに治具Jが予め取り付けられている場合について説明する。なお、ロボット制御装置30は、これに代えて、他の方法によってユーザーから第4処理を開始する操作を受け付ける構成であってもよい。
ロボット制御部373は、作業台TBの上面において予め決められた位置に対象物O2がユーザーにより載置されるまで待機する(ステップS510)。ロボット制御装置30は、例えば、前述の操作画面を介して、当該位置に対象物O2が載置されたことを示す情報をユーザーから受け付けた場合、当該位置に対象物O2がユーザーにより載置されたと判定する。当該位置に対象物O2がユーザーにより載置されたと判定した場合(ステップS510−YES)、ロボット制御部373は、制御点Tを移動させ、ロボット座標系RCにおいて予め決められた待機位置及び待機姿勢に可動部Aの位置及び姿勢を一致させる(ステップS520)。待機位置は、この一例において、下方向に制御点Tを移動させることによって吐出部Dに取り付けられた治具Jの先端が対象物O2の上面に接触することが可能な位置であれば如何なる位置であってもよい。この一例において、待機位置は、上から下に向かって待機位置を見た場合における待機位置を表すX座標及びY座標であってロボット座標系RCにおけるX座標及びY座標が、ステップS580においてロボット制御部373が記憶部32から読み出す第2軌跡情報が示す軌跡の始点の位置を表すX座標及びY座標であってロボット座標系RCにおけるX座標及びY座標と一致している位置であり、待機位置のロボット座標系RCにおけるZ軸方向の位置が予め決められた位置であって治具Jが対象物O2に接触しない位置である。待機姿勢は、この一例において、吐出方向と下方向とが一致する場合における可動部Aの姿勢のことである。
次に、ロボット制御部373は、力制御を開始する(ステップS530)。具体的には、ロボット制御部373は、力検出部21により検出される外力のうちロボット座標系RCにおけるZ軸の正方向に加わる力の大きさが予め決められた閾値以上となるように制御点Tの位置を移動させ始める。すなわち、ロボット制御部373は、力制御によって、制御点Tの位置を当該Z軸の負方向に向かって移動させ始める。ここで、当該閾値は、例えば、0.1Nである。なお、当該閾値は、0.1Nに代えて、0.1Nより小さくてもよく、0.1Nより大きくてもよい。
次に、ロボット制御部373は、吐出部Dに取り付けられた治具Jの先端が対象物O2の上面に接触したか否かを判定する(ステップS540)。ロボット制御部373は、力検出部21により検出される外力のうちロボット座標系RCにおけるZ軸の正方向に加わる力の大きさが予め決められた閾値以上であると判定した場合、当該先端が当該上面に接触したと判定する。一方、ロボット制御部373は、力検出部21により検出される外力のうちロボット座標系RCにおけるZ軸の正方向に加わる力の大きさが予め決められた閾値未満であると判定した場合、当該先端が当該上面に接触していないと判定する。具体的には、ロボット制御部373は、力検出情報取得部369に力検出部21から力検出情報を取得させる。そして、ロボット制御部373は、力検出情報取得部369が取得した力検出情報に含まれる出力値が示す外力のうち当該正方向に加わる力の大きさが予め決められた閾値未満であると判定した場合(ステップS540−NO)、当該先端が当該上面に接触していないと判定し、ステップS530の処理を継続する。一方、ロボット制御部373は、力検出情報取得部369が取得した力検出情報に含まれる出力値が示す外力のうち当該正方向に加わる力の大きさが予め決められた閾値以上であるとロボット制御部373が判定した場合(ステップS540−YES)、生成部371は、当該先端が当該上面に接触したと判定し、ステップS530の処理によって開始した力制御を終了し、可動部Aを停止させる(ステップS550)。
次に、前述の距離検出制御部は、距離検出部にレーザーを照射させ、対象物O2の表面上の位置うち距離検出部からレーザーが照射された位置と距離検出部の位置との間の距離を検出させる(ステップS560)。そして、距離検出制御部は、距離検出部が検出した当該距離を示す距離情報を距離検出部から取得する。距離検出制御部は、取得した距離情報を記憶部32に記憶させる。
ここで、図15を参照し、ステップS530〜ステップS560の処理について説明する。図15は、ステップS530〜ステップS560の処理を説明するための図である。また、図15は、ステップS530〜ステップS550の処理によって吐出部Dに取り付けられた治具Jの先端が対象物O2の上面に接触した状態における可動部Aと対象物O2との位置関係を示している。図15に示した例では、対象物O2の上面には、前述した通り、凹凸が形成されている。また、図15に示した距離検出部LTは、前述の距離検出部の一例である。また、矢印LZは、距離検出部から照射されるレーザーを示している。当該状態において、距離検出制御部は、対象物O2の表面上の位置のうち距離検出部からレーザーが照射された位置PT1と距離検出部の位置PT2との間の距離を検出させる。なお、当該距離は、ロボット座標系RCのZ軸方向における距離である。
ステップS560の処理が行われた後、ロボット制御部373は、現在の可動部Aの位置及び姿勢を示す位置姿勢情報を記憶部32に記憶させる。ここで、当該位置は、第1位置の一例である。その後、ロボット制御部373は、可動部Aを動かし、前述の待機位置及び待機姿勢に可動部Aの位置及び姿勢を一致させる。そして、ロボット制御部373は、吐出部Dに取り付けられた治具Jが吐出部Dから取り外されるまで待機する(ステップS570)。ロボット制御部373は、例えば、前述の操作画面を介して、治具Jを吐出部Dから取り外したことを示す情報をユーザーから受け付けた場合、治具Jが吐出部Dから取り外されたと判定する。なお、ロボット制御部373は、これに代えて、他の方法によって当該情報をユーザーから受け付ける構成であってもよい。治具Jが吐出部Dから取り外されたと判定した場合(ステップS570−YES)、ロボット制御部373は、記憶部32に予め記憶された第2軌跡情報を記憶部32から読み出す(ステップS580)。第2軌跡情報は、ロボット制御装置30がロボット20に行わせる所定の作業における可動部Aの位置及び姿勢の変化を表す軌跡を示す情報である。この一例において、当該軌跡は、ロボット座標系RCにおけるXY平面に沿って動く可動部Aの位置の変化を表す。また、当該軌跡上の各点の位置は、ロボット座標系RCにおけるX座標とY座標との組み合わせによって表される。すなわち、当該軌跡は、ロボット座標系RCにおけるZ軸方向の位置について規定されていない。また、当該軌跡は、この一例において、ロボット座標系RCにおけるZ軸の正方向から負方向に向かって対象物O2の上面を見た場合において、対象物O2の輪郭の内側に含まれる。なお、当該軌跡上の各点の姿勢は、ロボット座標系RCにおけるU座標とV座標とW座標との組み合わせによって表される。
次に、ロボット制御部373及び生成部371は、第4教示情報生成処理を行う(ステップS590)。具体的には、ロボット制御部373は、記憶部32に記憶された位置姿勢情報を読み出す。ロボット制御部373は、読み出した位置姿勢情報が示す位置及び姿勢に可動部Aの位置及び姿勢を一致させる。そして、ロボット制御部373は、ステップS560において記憶部32に記憶された距離情報を読み出す。ロボット制御部373は、ステップS565において記憶部32から読み出した第2軌跡情報が示す軌跡に沿って可動部Aの位置を変化させるとともに、吐出制御部365を制御して吐出部Dに吐出物を吐出させる。この際、ロボット制御部373は、距離検出制御部を制御しながら可動部Aを制御し、距離検出部にレーザーを照射させ、対象物O2の表面上の位置うち距離検出部からレーザーが照射された位置と距離検出部の位置との間の距離が、記憶部32から読み出した距離情報が示す距離を保つように当該軌跡に沿って可動部Aの位置を変化させる。ここで、生成部371は、ロボット制御部373による制御による可動部Aの位置及び姿勢の変化を示す軌跡を示す情報を第4教示情報として生成する。
次に、生成部371は、ステップS590において生成した第4教示情報を記憶部32に記憶させ(ステップS600)、処理を終了する。
以上のように、ロボット制御装置30は、第4処理、すなわち図14に示したフローチャートの処理を実行することにより、距離検出部が検出した距離を示す距離情報と、治具Jに基づいた第1位置(この一例において、位置姿勢情報が示す位置及び姿勢のうちの位置)とに基づいて、第4教示情報を生成する。これにより、ロボット制御装置30は、ロボット座標系RCにおけるXY平面に沿ったある軌跡に沿って可動部Aを動かしながら当該上面の凹凸に応じて可動部Aのロボット座標系RCにおけるZ軸方向の位置を変化させ、吐出部Dから吐出物を吐出した際の着弾位置から吐出口EHまでの距離をほぼ保持したまま対象物O2の上面に吐出物を当該軌跡に沿って塗布することができる。その結果、ロボット制御装置30は、当該上面に塗布された吐出物に塗り斑(塗りムラ、塗布ムラ)が生じてしまうことを抑制することができる。
次に、図16を参照し、図14に示したフローチャートの処理によって生成された第4教示情報に基づいてロボット制御装置30がロボット20に所定の作業を行わせる処理について説明する。図16は、図14に示したフローチャートの処理によって生成された第4教示情報に基づいてロボット制御装置30がロボット20に所定の作業を行わせる処理の流れの一例を示す図である。当該所定の作業は、対象物O2の上面に沿って可動部Aを予め決められた軌跡を描くように移動させながら当該上面に吐出物を塗布する作業である。なお、当該所定の作業は、これに代えて、他の作業であってもよい。また、図16に示したフローチャートでは、ステップS610の処理が行われる前に、吐出部Dから治具Jが取り外されている場合について説明する。
ロボット制御部373は、記憶部32に予め記憶された第4教示情報を記憶部32から読み出す(ステップS610)。次に、ロボット制御部373は、ステップS610において記憶部32から読み出した第4教示情報が示す軌跡上の各点のうちの始点の位置に可動部Aの位置を一致させる。そして、ロボット制御部373は、吐出制御部365を制御して吐出部Dに吐出物を吐出させるとともに当該軌跡に沿って可動部Aの位置を変化させ、ロボット20に所定の作業を行わせる(ステップS620)。これにより、ロボット制御装置30は、ロボット座標系RCにおけるXY平面に沿ったある軌跡に沿って可動部Aを動かしながら対象物O2の上面の凹凸に応じて可動部Aのロボット座標系RCにおけるZ軸方向の位置を変化させ、吐出部Dから吐出物を吐出した際の着弾位置から吐出口EHまでの距離をほぼ保持したまま当該上面に吐出物を当該軌跡に沿って塗布することができる。その結果、ロボット制御装置30は、当該上面に塗布された吐出物に塗り斑(塗りムラ、塗布ムラ)が生じてしまうことを抑制することができる。
<教示情報の具体例5である第5教示情報を生成する処理>
以下、可動部Aの位置に関する教示情報の具体例5である第5教示情報と、ロボット制御装置30が第5教示情報を生成する処理である第5処理とのそれぞれについて説明する。
この一例では、ロボット20が作業を行う対象である対象物が、教示情報の具体例4の場合と同様に、対象物O2である場合について説明する。ただし、この一例では、当該具体例4と異なり、エンドエフェクターEには、距離検出部が設けられていない。このため、ロボット制御装置30の制御部36は、距離検出制御部を備えていない。
第5教示情報は、対象物O2の上面に形成された凹凸に応じた軌跡であってロボット20が所定の作業を行う際における可動部Aの位置及び姿勢の変化を表す軌跡を示す情報である。また、第5教示情報は、ダイレクトティーチングによって記憶される情報である。すなわち、ロボット制御装置30は、ダイレクトティーチングに基づく第5処理によって、当該凹凸に応じた軌跡であってロボット20が所定の作業を行う際における可動部Aの位置及び姿勢の変化を表す軌跡を示す情報を第5教示情報として生成する。第5教示情報が示す軌跡上の各点の位置は、ロボット座標系RCにおけるX座標とY座標とZ座標との組み合わせによって表される。また、第5教示情報が示す軌跡上の各点の姿勢は、ロボット座標系RCにおけるU座標とV座標とW座標との組み合わせによって表される。
ここで、図17を参照し、ロボット制御装置30が第5教示情報を生成する処理である第5処理について説明する。図17は、ロボット制御装置30が行う第5処理の流れの一例を示すフローチャートである。ここで、図17に示したフローチャートでは、ステップS710の処理が行われる前に、ロボット制御装置30が第5処理を開始する操作をユーザーから予め受け付けた場合について説明する。ロボット制御装置30は、例えば、前述の操作画面を介して、ユーザーから第5処理を開始する操作を受け付ける。また、当該フローチャートでは、ステップS710の処理が行われる前に、吐出部Dに治具Jが予め取り付けられている場合について説明する。なお、ロボット制御装置30は、これに代えて、他の方法によってユーザーから第5処理を開始する操作を受け付ける構成であってもよい。
ロボット制御部373は、第5教示情報をロボット制御装置30に生成させる操作である第5教示情報生成操作をユーザーから受け付けるまで待機する。例えば、ロボット制御部373は、前述の操作画面を介して第5教示情報生成操作をユーザーから受け付ける。なお、ロボット制御部373は、これに代えて、他の方法によってユーザーから第5教示情報生成操作を受け付ける構成であってもよい。第5教示情報生成操作をユーザーから受け付けたとロボット制御部373が判定した場合(ステップS710−YES)、生成部371は、ステップS750において第5教示情報生成処理を終了させる操作を受け付けたと判定するまでの間において生じた変化であって可動部Aの位置及び姿勢の変化を表す軌跡を示す情報を第5教示情報として生成する第5教示情報生成処理を開始する(ステップS720)。
次に、ロボット制御部373は、可動部Aに外力が加えられるまで待機する(ステップS730)。具体的には、ロボット制御部373は、力検出情報取得部369に力検出情報を力検出部21から取得させる。そして、ロボット制御部373は、力検出情報取得部369が取得した力検出情報に含まれる出力値に基づいて、可動部Aに外力が加えられたか否かを判定する。可動部Aに外力が加えられたと判定した場合(ステップS730−YES)、ロボット制御部373は、可動部Aに加えられた外力に基づく力制御によって制御点Tを移動させ、可動部Aの位置及び姿勢を変化させる(ステップS740)。この一例において、当該力制御は、前述した通り、インピーダンス制御である。
次に、ロボット制御部373は、第5教示情報生成処理を終了させる操作をユーザーから受け付けたか否かを判定する(ステップS750)。例えば、ロボット制御部373は、前述の操作画面を介して当該操作をユーザーから受け付ける。なお、ロボット制御部373は、これに代えて、他の方法によってユーザーからと当該操作を受け付ける構成であってもよい。当該操作をユーザーから受け付けていないと判定した場合(ステップS750−NO)、ロボット制御部373は、ステップS730に遷移し、可動部Aに外力が加えられるまで再び待機する。一方、当該操作をユーザーから受け付けたとロボット制御部373が判定した場合(ステップS750−YES)、生成部371は、ステップS720において第5教示情報生成処理を開始してから現在までの間において生じた変化であって可動部Aの位置及び姿勢の変化を表す軌跡を示す情報を第5教示情報として生成する。そして、生成部371は、生成した第5教示情報を記憶部32に記憶させ(ステップS760)、処理を終了する。
ここで、ステップS720〜ステップS750の処理において、吐出部Dに治具Jが取り付けられている場合、ユーザーは、可動部Aに外力を加えることによって可動部Aをロボット制御装置30による力制御によって動かし、対象物Oの予め決められた位置であってユーザーが吐出物を塗布したい所望の位置に治具Jの先端を接触させた状態における可動部Aの位置及び姿勢の変化を表す軌跡を示す情報を第5教示情報としてロボット制御装置30に記憶させることができる。すなわち、治具Jの先端が対象物O2に接触している状態における当該先端の位置(すなわち、マーカーMKの位置)は、ユーザーが吐出物を塗布したい所望の位置であり、この一例における第1位置の一例である。また、ユーザーは、ユーザーが吐出物を塗布したい所望の位置に治具Jの先端を接触させながら(すなわち、吐出部Dの位置及び姿勢を当該所望の位置に吐出物を吐出可能な位置及び姿勢と一致させながら)、吐出部Dの位置及び姿勢の変化をユーザーが所望する位置及び姿勢の変化と一致させることができる。その結果、ユーザーは、ロボット制御装置30に対して、ユーザーが吐出物を塗布したい所望の位置に吐出物を吐出可能な吐出部Dの位置及び姿勢の変化であってユーザーが所望する位置及び姿勢の変化を表す軌跡を示す情報を、第5教示情報として容易にロボット制御装置30に記憶させることができる。
このように、ロボット制御装置30は、第5処理、すなわち図17に示したフローチャートの処理を実行することにより、治具Jに基づいた第1位置(この一例において、)を用いて、第2教示情報を生成する。これにより、ロボット制御装置30は、可動部Aを動かすことによって吐出部Dの位置をユーザーが所望する位置に精度よく移動させることができる。その結果、ロボット制御装置30は、対象物O2の予め決められた位置に吐出物を塗布する作業をロボット20に精度よく行うことができる。
なお、上記における説明では、吐出部Dは、非接触式のディスペンサーであったが、これに代えて、ニードルを有する接触式のディスペンサーであってもよい。この場合において治具Jを用いる場合、吐出部Dには、ニードルの代わりに治具Jが取り付けられる。このようにすることで、吐出部Dが接触式のディスペンサーであっても、ロボット制御装置30は、上記において説明した処理を行うことができる。
また、上記における説明では、可動部Aが対象物O(又は対象物O2)に対して相対的に吐出部Dを移動させる場合、ロボット制御装置30は、制御点Tを移動させることによって可動部Aに備えられた吐出部Dを移動させたが、これに代えて、予め決められた位置において動かないように固定された吐出部Dに対してエンドエフェクターEにより吸着された対象物O(又は対象物O2)を移動させる構成であってもよい。なお、ロボット20が双腕ロボットの場合、ロボット制御装置30は、双腕ロボットが備える2つの可動部のうちの第1可動部によって吐出部Dを移動させ、当該2つの可動部のうちの第2可動部によって対象物O(又は対象物O2)を移動させ、可動部Aと対象物O(又は対象物O2)の相対的な位置関係を変化させる構成であってもよい。
また、ロボット制御装置30は、上記の第1教示情報〜第5教示情報の一部を生成することが可能な構成であってもよく、上記の第1教示情報〜第5教示情報の全部を生成することが可能な構成であってもよい。また、ロボット制御装置30は、上記の第1教示情報〜第5教示情報の一部又は全部に代えて、他の第1位置を用いて他の教示情報を生成する構成であってもよく、当該全部に加えて、他の第1位置を用いて他の教示情報を生成する構成であってもよい。
また、上記において説明した治具Jは、マーカーMKに代えて、特徴的な形状を有する構成であってもよい。
以上のように、ロボット制御装置30は、吐出部(この一例において、吐出部D)に着脱可能に取り付けられた治具(この一例において、治具J)に基づいた第1位置を用いて、可動部(この一例において、可動部A)の位置に関する教示情報(この一例において、第1教示情報〜第5教示情報のそれぞれ)を生成する。これにより、ロボット制御装置30は、対象物(この一例において、対象物O、対象物O2)の予め決められた位置に吐出物を塗布する作業をロボット(この一例において、ロボット20)に精度よく行わせることができる。
また、ロボット制御装置30は、可動部に設けられた力検出部(この一例において、力検出部21)からの出力(この一例において、力検出情報)に基づいて第1位置を算出する。これにより、ロボット制御装置30は、力検出部からの出力に基づいて算出した第1位置を用いて、対象物の予め決められた位置に吐出物を塗布する作業をロボットに精度よく行わせることができる。
また、ロボット制御装置30は、吐出部に着脱可能に取り付けられた治具に基づいた第1位置を用いて、可動部の位置に関する教示情報であって3以上の第1位置に基づく形状に応じた情報を含む教示情報(この一例において、第3教示情報)を生成する。これにより、ロボット制御装置30は、3以上の第1位置に基づく形状に応じた情報を含む教示情報に基づいて、対象物の予め決められた位置に吐出物を塗布する作業をロボットに精度よく行わせることができる。
また、ロボット制御装置30は、吐出部に着脱可能に取り付けられた治具に基づいた第1位置を用いて、可動部の位置に関する教示情報であって3以上の第1位置に基づく平面に応じた情報を含む教示情報(この一例において、平面座標系FCを示す情報である第3教示情報)を生成する。これにより、ロボット制御装置30は、3以上の第1位置に基づく平面に応じた情報を含む教示情報に基づいて、対象物の予め決められた位置に吐出物を塗布する作業をロボットに精度よく行わせることができる。
また、ロボット制御装置30は、ダイレクトティーチングによって教示情報(この一例において、第2教示情報、第4教示情報のそれぞれ)を生成することが可能である。これにより、ロボット制御装置30は、ダイレクトティーチングによって生成された教示情報に基づいて、対象物の予め決められた位置に吐出物を塗布する作業をロボットに精度よく行わせることができる。
また、ロボット制御装置30は、吐出部に着脱可能に取り付けられた治具に基づいた第1位置であって治具に設けられたマーカー(この一例において、マーカーMK)の位置を含む第1位置を用いて、可動部の位置に関する教示情報(この一例において、第1教示情報)を生成する。これにより、ロボット制御装置30は、治具に設けられたマーカーの位置を含む第1位置を用いて、対象物の予め決められた位置に吐出物を塗布する作業をロボットに精度よく行わせることができる。
また、ロボット制御装置30は、吐出部に着脱可能に取り付けられた治具に基づいた第1位置を用いて、撮像部によって検出されたマーカーの位置を用いて求められた位置関係であって吐出部の位置と可動部の位置との相対的な当該位置関係を示す情報を含む教示情報(この一例において、第1教示情報)を生成する。これにより、ロボット制御装置30は、撮像部(この一例において、撮像部10)によって検出されたマーカーの位置を用いて求められた位置関係であって吐出部の位置と可動部の位置との相対的な当該位置関係を示す情報を含む教示情報に基づいて、対象物の予め決められた位置に吐出物を塗布する作業をロボットに精度よく行わせることができる。
また、ロボット制御装置30は、吐出部に着脱可能に取り付けられた治具に基づいた第1位置を用いて、撮像部によって検出されたマーカーの位置と当該撮像部によって検出された吐出物の着弾位置とを用いて求められた位置関係であってマーカーの位置と着弾位置との相対的な当該位置関係を示す情報を含む教示情報(この一例において、第1教示情報)を生成する。これにより、ロボット制御装置30は、撮像部によって検出されたマーカーの位置と当該撮像部によって検出された吐出物の着弾位置とを用いて求められた位置関係であってマーカーの位置と着弾位置との相対的な当該位置関係を示す情報を含む教示情報に基づいて、対象物の予め決められた位置に吐出物を塗布する作業をロボットに精度よく行わせることができる。
また、ロボット制御装置30は、吐出部に着脱可能に取り付けられた治具であって吐出方向における長さが可変である治具に基づいた第1位置を用いて、可動部の位置に関する教示情報(この一例において、第1教示情報〜第5教示情報のそれぞれ)を生成する。これにより、ロボット制御装置30は、吐出部に着脱可能に取り付けられた治具であって吐出方向における長さが可変である治具に基づいた第1位置を用いて、対象物の予め決められた位置に吐出物を塗布する作業をロボットに精度よく行わせることができる。
また、ロボット制御装置30は、可動部に設けられた距離検出部からの出力(この一例において、距離情報)と、第1位置とに基づいて、教示情報(この一例において、第4教示情報)を生成する。これにより、ロボット制御装置は、可動部に設けられた距離検出部からの出力と、第1位置とに基づいて、対象物の予め決められた位置に吐出物を塗布する作業をロボットに精度よく行わせることができる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
また、以上に説明した装置(例えば、ロボット制御装置30)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。