図1から図20を参照して、実施の形態におけるロボット装置の制御装置について説明する。本実施の形態では、製品を組み立てる作業を行うロボット装置およびケースの内部にワークを配置するロボット装置を例に取り上げて説明する。
図1は、本実施の形態における第1のロボット装置の概略図である。第1のロボット装置5は、作業ツール(エンドエフェクタ)としてのハンド2と、ハンド2を移動するロボット1とを備える。第1のロボット装置5は、第1の部材としての第1のワーク81に第2の部材としての第2のワーク91を取り付ける作業を行う。
ロボット1は、複数の関節部を含む多関節ロボットである。ロボット1は、ベース部14と、ベース部14に支持された旋回ベース13とを含む。ベース部14は、設置面に固定されている。旋回ベース13は、ベース部14に対して回転するように形成されている。ロボット1は、上部アーム11および下部アーム12を含む。下部アーム12は、関節部を介して旋回ベース13に回動可能に支持されている。上部アーム11は、関節部を介して回動可能に下部アーム12に支持されている。また、上部アーム11は、上部アーム11の延びる方向に平行な回転軸の周りに回転する。
ロボット1は、上部アーム11の端部に連結されているリスト15を含む。リスト15は、関節部を介して回動可能に上部アーム11に支持されている。リスト15は、回転可能に形成されているフランジ16を含む。ハンド2は、フランジ16に固定されている。本実施の形態のロボット1は、6個の駆動軸を有するが、この形態に限られない。作業ツールを移動することができる任意のロボットを採用することができる。
ハンド2は、ワーク91を把持したり解放したりする作業ツールである。ハンド2は、複数の爪部3を有する。ハンド2は爪部3が開いたり閉じたりするように形成されている。爪部3がワーク91を挟むことによりワーク91を把持する。第1のロボット装置5のハンド2は、爪部3を有するが、この形態に限られない。ハンドは、ワークを把持できるように形成されている任意の構成を採用することができる。例えば、吸着または磁力によりワークを把持するハンドが採用されても構わない。
本実施の形態におけるロボット装置5は、ロボット1に対して第1のワーク81を搬送する搬送機としてのコンベヤ75を含む。搬送機は、ロボット1の周りに配置される。コンベヤ75は、ワーク81を予め定められた位置まで搬送するように形成されている。コンベヤ75は、予め定められた移動速度にてワーク81を搬送するように形成されている。
本実施の形態の第1のロボット装置5では、コンベヤ75がワーク81の搬送を継続しながらロボット1がワーク91をワーク81に取り付ける。すなわち、ワーク91が取り付けられる作業を行う期間中に、ワーク81はコンベヤ75により移動している。ロボット1は、ワーク81を追従するように位置および姿勢を変化させながらワーク91をワーク81に取り付ける。
図2に、第1のロボット装置における第1のワーク、第2のワーク、およびハンドの拡大斜視図を示す。図1および図2を参照して、第2のワーク91は、本体部の表面から突出する把持部94を有する。爪部3が把持部94を掴むことにより、第2のワーク91はハンド2に把持される。
第1のワーク81は、本体部の表面から突出する突出部82,83を有する。突出部82および突出部83は違いに離れて配置されている。また、ワーク81は、突出部82および突出部83が鉛直方向に並ぶように、コンベヤ75に支持されている。それぞれの突出部82,83の上面には、穴部82a,83aが形成されている。第2のワーク91は、本体部の表面から突出する突出部92,93を有する。それぞれの突出部92,93には、ピン92a,93aが固定されている。ピン92aおよびピン93aは、互いに直線状に並ぶように配置されている。第1のロボット装置5が実施する第1の制御では、ピン92aを穴部82aに挿入すると共に、ピン93aを穴部83aに挿入する作業を実施する。
本実施の形態の第1の制御では、穴部82a,83aに対してピン92a,93aの位置を合わせる制御を行う。第1の制御を実施する前には、ワーク81に対するワーク91の姿勢は調整されている。すなわち、ワーク91のピン92aおよびピン93aが、鉛直方向に延びる直線上に配置されるように、ロボット1の姿勢が調整されている。このために、第1の制御では、穴部82aの真上にピン92aを配置する制御を実施することにより、穴部82a,83aに対するピン92a,93aの位置を合わせることができる。本実施の形態の第1の制御を実施した後には、矢印103に示す鉛直方向の下側にワーク91を移動することにより、ピン92a,93aが穴部82a,83aに挿入されて、ワーク91がワーク81に取り付けられる。
ロボット装置5は、第1のワーク81および第2のワーク91の画像を撮像する視覚センサとしてのカメラ25を備える。本実施の形態におけるカメラ25は、2次元カメラである。カメラ25は、支持部材17を介してハンド2に支持されている。ロボット装置5におけるカメラ25は、ハンド2と共に位置および姿勢が変化する。
カメラ25は、第2のワーク91が第1のワーク81に接近した時の画像を撮像する。カメラ25は、第2のワーク91が第1のワーク81に嵌合する部分の近傍を撮像するように配置されている。また、カメラ25は、第1のワーク81の位置を検出するための第1の特徴部位および第2のワーク91の位置を検出するための第2の特徴部位を撮像することができる様に配置されている。ロボット装置5において、カメラ25は、ワーク81およびワーク91の上方からワーク81,91を撮像するように配置されている。
ロボット装置5には、基準座標系51が設定されている。図1に示す例では、ロボット1のベース部14に、基準座標系51の原点が配置されている。基準座標系51はワールド座標系とも称される。基準座標系51は、原点の位置が固定され、更に、座標軸の向きが固定されている座標系である。ロボット1の位置および姿勢が変化しても基準座標系51の位置および向きは変化しない。基準座標系51は、座標軸として、互いに直交するX軸、Y軸、およびZ軸を有する。また、X軸の周りの座標軸としてW軸が設定される。Y軸の周りの座標軸としてP軸が設定される。Z軸の周りの座標軸としてR軸が設定される。
ロボット1の位置および姿勢は、基準座標系51にて表すことができる。例えば、ロボット1の位置は、ハンド2の先端に配置された工具先端点の位置にて表すことができる。また、工具先端点にハンド2と共に移動するツール座標系を設定することができる。ロボット1の姿勢は、基準座標系51に対するツール座標系の向きにて表すことができる。
図3に、本実施の形態におけるロボット装置のブロック図を示す。図1から図3を参照して、ロボット1は、ロボット1の位置および姿勢を変化させるロボット駆動装置を含む。ロボット駆動装置は、アームおよびリスト等の構成部材を駆動するロボット駆動モーター22を含む。ロボット駆動モーター22が駆動することにより、それぞれの構成部材の向きが変化する。
ハンド2は、ハンド2を駆動するハンド駆動装置を備える。ハンド駆動装置は、ハンド2の爪部3を駆動するハンド駆動モーター21を含む。ハンド駆動モーター21が駆動することによりハンド2の爪部3が開いたり閉じたりする。なお、爪部は、空気圧により作動するように形成されていても構わない。この場合には、ハンド駆動装置は、空気ポンプおよびシリンダなどの空気圧にて爪部を駆動する装置を含むことができる。
ロボット装置5の制御装置は、ロボット1およびハンド2を制御するロボット制御装置4を含む。ロボット制御装置4は、プロセッサとしてのCPU(Central Processing Unit)を有する演算処理装置(コンピュータ)を含む。演算処理装置は、CPUにバスを介して接続されたRAM(Random Access Memory)およびROM(Read Only Memory)等を有する。ロボット制御装置4には、ロボット1、ハンド2、およびコンベヤ75の制御を行うために予め作成された動作プログラム41が入力される。ロボット1およびハンド2は、動作プログラム41に基づいてワーク91を搬送する。コンベヤ75は、動作プログラム41に基づいてワーク81を搬送する。
ロボット制御装置4の演算処理装置は、予め定められた情報を記憶する記憶部42を含む。記憶部42は、ロボット1、ハンド2、およびコンベヤ75の制御に関する情報を記憶する。記憶部42は、揮発性メモリ、不揮発性メモリ、またはハードディスク等の情報を記憶可能な記憶媒体にて構成されることができる。動作プログラム41は、記憶部42に記憶される。ロボット制御装置4は、ロボット装置5に関する任意の情報を表示する表示器46を含む。表示器46は、例えば、液晶表示パネルを含む。
演算処理装置は、ロボット1およびハンド2の動作指令を送出する動作制御部43を含む。動作制御部43は、動作プログラム41に従って駆動するプロセッサに相当する。動作制御部43は、記憶部42に記憶された情報を読み取り可能に形成されている。プロセッサは、動作プログラム41を読み込んで、動作プログラム41に定められた制御を実施することにより、動作制御部43として機能する。
動作制御部43は、動作プログラム41に基づいてロボット1を駆動するための動作指令をロボット駆動部45に送出する。ロボット駆動部45は、ロボット駆動モーター22を駆動する電気回路を含む。ロボット駆動部45は、動作指令に基づいてロボット駆動モーター22に電気を供給する。また、動作制御部43は、動作プログラム41に基づいてハンド2を駆動する動作指令をハンド駆動部44に送出する。ハンド駆動部44は、ハンド駆動モーター21を駆動する電気回路を含む。ハンド駆動部44は、動作指令に基づいてハンド駆動モーター21に電気を供給する。更に、本実施の形態のロボット制御装置4には、カメラ25が接続されている。動作制御部43は、動作プログラム41に基づいて、カメラ25に画像を撮像する指令を送出する。
ロボット制御装置4の演算処理装置は、カメラ25にて撮像された画像を処理する画像処理部31を含む。画像処理部31は、それぞれのワーク81,91において、予め定められた特徴的な部分である特徴部位の特徴量を検出する特徴量検出部32を有する。画像処理部31は、第1のワーク81の特徴量と第2のワーク91の特徴量との差を相対量として算出する算出部33を有する。画像処理部31は、算出部33によって算出された相対量に基づいて、ロボットを動作させる移動指令を生成する指令生成部34を有する。
画像処理部31は、動作プログラム41に従って駆動するプロセッサに相当する。特に、特徴量検出部32、算出部33、および指令生成部34のそれぞれのユニットは、動作プログラム41に従って駆動するプロセッサに相当する。プロセッサは、動作プログラム41を読み込んで、動作プログラム41に定められた制御を実施することにより、それぞれのユニットとして機能する。
ロボット装置5は、ロボット装置5の運転状態を検出する状態検出器を備える。本実施の形態の状態検出器は、ロボット1の位置および姿勢を検出する位置検出器23を含む。位置検出器23は、アーム等の構成部材の駆動軸に対応するロボット駆動モーター22に取り付けられている。例えば、位置検出器23は、ロボット駆動モーター22が駆動するときの回転角を検出する。位置検出器23の出力に基づいて、ロボット1の位置および姿勢が検出される。
ロボット装置5の制御装置は、コンベヤ75の動作を制御するコンベヤ制御装置76を備える。コンベヤ制御装置76は、CPUおよびRAM等を含む演算処理装置(コンピュータ)を含む。コンベヤ制御装置76は、ロボット制御装置4と互いに通信することができるように形成されている。動作制御部43は、動作プログラム41に基づいて、コンベヤ75を駆動する動作指令をコンベヤ制御装置76に送出する。コンベヤ制御装置76は、ロボット制御装置4からの動作指令を受信して、コンベヤ75を駆動する。
本実施の形態のロボット装置5の制御装置は、ロボット1およびハンド2を制御するロボット制御装置4と、コンベヤ75を制御するコンベヤ制御装置76とを備えるが、この形態に限られない。ロボット装置5は、1つの制御装置にて、ロボット1、ハンド2、およびコンベヤ75を制御するように形成されていても構わない。
更に、本実施の形態のロボット装置5の制御装置では、ロボット制御装置4が画像を処理する機能を有する画像処理部31を含むが、この形態に限られない。ロボット装置の制御装置は、画像処理部31を有する画像処理装置(コンピュータ)を備えていても構わない。画像処理装置は、プロセッサとしてのCPUを有する演算処理装置にて構成することができる。画像処理装置のプロセッサは、動作プログラムに基づいて、特徴量検出部、算出部、および指令生成部として機能する。画像処理装置は、ロボット制御装置と互いに通信することができるように形成される。
図4に、本実施の形態における第1の制御の第1のフローチャートを示す。図1、図2および図4を参照して、第1の制御では、1個のカメラ25にて撮像された画像を用いて、コンベヤ75にて搬送されるワーク81に対してワーク91の位置合わせを行う。前述の通りに、第1の制御の前には、ワーク81の姿勢に対するワーク91の姿勢は予め調整されている。すなわち、カメラ25にて画像を撮像するときのロボット1の姿勢は調整されている。ここでの制御では、穴部82aに対してピン92aの位置を合わせる制御を行う。
本実施の形態では、ロボット装置5にて実際に作業を行う前に、基準画像における相対位置量を算出する。そして、予め算出された基準画像の相対位置量を用いて、ロボット装置5にて作業を行う。第1のフローチャートには、基準画像における相対位置量を算出する制御が示されている。
ステップ111においては、第1の制御を行うための基準画像を生成する。図5に、本実施の形態の第1の制御を行うための基準画像を示す。基準画像61は、第1のワーク81に対して第2のワーク91が目標の位置に配置されている時にカメラ25にて撮像された画像に相当する。本実施の形態では、基準画像61は、ワーク81の穴部82a,83aの真上に、ワーク91のピン92a,93aが配置された時にカメラ25によって撮像された画像である。基準画像61は、作業者が予め準備して、記憶部42に記憶させておくことができる。
本実施の形態では、第1のワーク81の位置を検出するための第1の特徴部位が予め定められている。第1の制御では、突出部82の上面が第1の特徴部位に定められている。また、第2のワーク91の位置を検出するための第2の特徴部位が予め定められている。第1の制御では、突出部92の上面が第2の特徴部位に定められている。特徴部位は、画像を解析した時に形状が検出できる部分である。特徴部位は、ワークの一部分、ワークの表面に形成された模様、ワークの表面に記載された線または図などを採用することができる。また、特徴部位は、第1のワーク81に対して第2のワーク91が接触する部分の近傍に設定されることが好ましい。
本実施の形態では、第1のワーク81には、第1の特徴部位としての突出部82の上面に、設定点P1が設定されている。設定点P1は、突出部82の角に設定されている。設定点P1の位置は、ワーク81の位置に相当する。第2のワーク91には、第2の特徴部位としての突出部92の上面に、設定点P2が配置されている。設定点P2は、突出部92の角に設定されている。設定点P2は、ワーク91の位置に相当する。設定点P1,P2は、カメラ25にて撮像するときに画像に含まれる領域に設定されている。
図3、図4、および図5を参照して、ステップ112において、画像処理部31の特徴量検出部32は、基準画像61の第1の特徴部位および第2の特徴部位を検出する。特徴部位の検出方法としては、それぞれのワーク81,91の基準となるベース画像を予め準備しておくことができる。ベース画像とカメラ25にて撮像した画像とを用いてテンプレートマッチング等の方法により、カメラ25にて撮像した画像における特徴部位を検出することができる。ここでの例は、突出部82の上面および突出部92の上面を検出することができる。
ステップ113において、特徴量検出部32は、第1の特徴部位の位置に関する第1の特徴量と、第2の特徴部位の位置に関する第2の特徴量とを検出する。本実施の形態においては、カメラ25にて撮像された画像にスクリーン座標系52が設定されている。スクリーン座標系52は、画像における任意の点を原点に設定したときの座標系である。スクリーン座標系52は、互いに直交するu軸およびv軸を有する。スクリーン座標系52は、カメラ25の視覚センサ座標系に対応する。
本実施の形態の位置に関する特徴量は、画像におけるスクリーン座標系52のu軸の座標値およびv軸の座標値である。特徴量検出部32は、基準画像61において検出された特徴部位に基づいて、特徴部位に設定された設定点P1,P2の位置を検出することができる。特徴量検出部32は、第1の特徴量として、設定点P1のスクリーン座標系52の座標値(u1b,v1b)を検出する。また、特徴量検出部32は、第2の特徴量として、設定点P2のスクリーン座標系52の座標値(u2b,v2b)を検出する。
次に、ステップ114において、画像処理部31の算出部33は、基準画像における第1の特徴量および第2の特徴量に関する相対量を算出する。算出部33は、ロボット1の位置の制御を行うために、相対量として相対位置量を算出する。相対位置量は、第1の特徴量と第2の特徴量との差である。例えば、算出部33は、相対位置量として、第1の特徴量の座標値と第2の特徴量の座標値との差(u1b-u2b,v1b-v2b)を算出する。算出部33にて算出された基準画像61における相対位置量は、基準相対位置量として記憶部42に記憶される。
このように、画像処理部31は、基準画像61における相対位置量を算出することができる。なお、本実施の形態では、基準画像61における相対位置量は、予め算出されて記憶部42に記憶されているが、この形態に限られない。基準画像61における相対位置量は、第1の制御を実施する度に算出されても構わない。
また、基準画像61は、実際にカメラ25にて撮像した画像を用いなくても構わない。例えば、それぞれのワーク81,91の3次元データをCAD(Computer Aided Design)装置等により生成することができる。ワーク81に対してワーク91が目標の位置に配置されているときの3次元データを生成することができる。この3次元データをカメラの向きに対応する方向に沿って1つの平面に投影することにより、基準画像61を生成しても構わない。
次に、ロボット制御装置4は、第1の特徴部位および第2の特徴部位がカメラ25の撮像範囲25aの内部に配置される様に、第1のワーク81の穴部82aに第2のワーク91のピン92aを近づける制御を実施する。この制御は、任意の制御にて実施することができる。例えば、ロボット制御装置4は、所定のセンサにてコンベヤ75におけるワーク81の位置を検出する。ロボット制御装置4は、コンベヤ75の移動速度に基づいてワーク81の位置を検出する。ロボット制御装置4は、ワーク91がワーク81に近づくように、ロボット1の位置および姿勢を制御することができる。
図6に、本実施の形態における第1の制御の第2のフローチャートを示す。図3および図6を参照して、ロボット制御装置4がワーク91をワーク81に近づける制御を実施した後に、ステップ115において、動作制御部43は、カメラ25にてワーク81,91を撮像する。
図7に、第1のワークに対する第2のワークの位置を調整するためにカメラにて撮像した画像を示す。画像62には、第1の特徴部位である突出部82の上面の画像と第2の特徴部位である突出部92の上面の画像とが含まれている。画像62では、第1のワーク81に対して第2のワーク91は、矢印101に示すようにスクリーン座標系52のu軸の正側にずれている。
図8に、第1のワークに対する第2のワークの位置を調整するためにカメラにて撮像した他の画像を示す。画像63では、第2のワーク91は、矢印102に示すように、第1のワーク81に対してスクリーン座標系52のu軸の負側の方向にずれている。図7および図8を参照して、第1の制御では、このような第2のワーク91のずれを修正する制御を実施する。ここでは、図7および図8のうち、図7を例に取り上げて説明する。
図3、図6、および図7を参照して、ステップ116からステップ118では、基準画像61に対する制御と同様の制御を実施する。画像処理部31は、カメラ25にて撮像した画像62における第1の特徴量および第2の特徴量を検出し、第1の特徴量および第2の特徴量を用いて相対位置量を算出する。
ステップ116においては、特徴量検出部32は、カメラ25にて撮像した画像62の第1の特徴部位および第2の特徴部位を検出する。ここでは、第1の特徴部位としてワーク81の突出部82の上面を検出し、第2の特徴部位としてワーク91の突出部92の上面を検出する。
ステップ117において、特徴量検出部32は、カメラ25にて撮像した画像62における第1の特徴量および第2の特徴量を検出する。特徴量検出部32は、第1の特徴部位の位置に関する第1の特徴量として、設定点P1のスクリーン座標系52の座標値(u1m,v1m)を検出する。また、特徴量検出部32は、第2の特徴部位の位置に関する第2の特徴量として、設定点P2のスクリーン座標系52の座標値(u2m,v2m)を算出する。
ステップ118において、算出部33は、第1の特徴量と第2の特徴量との差を相対位置量として算出する。カメラ25にて撮像した画像62における相対位置量は、第1の特徴量の座標値と第2の特徴量の座標値との差(u1m-u2m,v1m-v2m)になる。
なお、第2のワーク91がハンド2の予め定められた位置にて把持されている場合には、第2のワーク91に関する第2の特徴量は一定になる。このために、第2の特徴量を予め測定して、記憶部42に記憶しておいても構わない。すなわち、設定点P2の座標値を予め記憶部42に記憶しておいても構わない。一方で、ハンド2が第2のワーク91を把持するときに、所望の位置からずれる場合がある。このために、本実施の形態では、実際に撮像した画像62に基づいて、ベース画像とのテンプレートマッチングの方法により、第2の特徴量も検出している。
次に、画像処理部31の指令生成部34は、カメラ25にて撮像した画像62における相対位置量と、基準画像61における相対位置量とに基づいて、第1のワーク81に対して第2のワーク91が目標の位置に配置されるように、ロボット1の移動指令を生成する。本実施の形態の指令生成部34は、カメラ25にて撮像した画像62における相対位置量が、基準画像61における相対位置量に近づくように、ロボット1を動作させる移動指令を生成する。
ステップ119において、指令生成部34は、カメラ25にて撮像した画像62における相対位置量と基準画像61における相対位置量との差である相対位置量の差を算出する。本実施の形態では、指令生成部34は、カメラ25にて撮像した画像62における相対位置量から基準画像61における相対位置量を減算した相対位置量の差を算出する。相対位置量の差は、それぞれのu軸およびv軸に関する値として[(u1m-u2m)-(u1b-u2b), (v1m-v2m)-(v1b-v2b)]にて表すことができる。このように、本実施の形態では、u軸に関する相対位置量の差と、v軸に関する相対位置量の差とを算出する。
次に、ステップ120において、指令生成部34は、相対位置量の差が予め定められた判定範囲内か否かを判定する。判定範囲は、予め定められて記憶部42に記憶されている。例えば、u軸に関する値の判定範囲と、v軸に関する値の判定範囲とを予め設定することができる。第2のワーク91が第1のワーク81に対して目標の位置に近づくほど、相対位置量の差は零に近づく。u軸に関する値が判定範囲内であり、かつ、v軸に対応する値が判定範囲内である場合に、相対位置量の差が判定範囲内であると判定することができる。すなわち、指令生成部34は、ワーク81に対するワーク91の位置合わせが完了していると判定することができる。
一方で、u軸に関する値およびv軸に関する値のうち、少なくとも一方が判定範囲を逸脱する場合に、指令生成部34は、相対位置量の差は判定範囲を逸脱していると判定することができる。すなわち、指令生成部34は、ワーク81に対してワーク91が所望の位置に到達していないと判定することができる。
ステップ120において、相対位置量の差が判定範囲内である場合には、この制御を終了する。ステップ120において、相対位置量の差が判定範囲を逸脱する場合には、制御は、ステップ121に移行する。
ステップ121において、指令生成部34は、相対位置量の差に基づいて、ロボット1の駆動方法を設定する。指令生成部34は、基準座標系51におけるロボット1の位置の移動方向および移動量を設定する。本実施の形態では、相対位置量の差に対するロボットの位置の移動方向が予め定められている。スクリーン座標系52のu軸の正の値または負の値に対してロボット1の位置の移動方向が、基準座標系51にて定められている。例えば、u軸に関する相対位置量の差が正の値である場合に、基準座標系51のX軸、Y軸、およびZ軸の座標値を用いて(1,1,0)の移動方向が予め定められている。また、v軸に関する相対位置の差が正の値である場合に、基準座標系51のX軸、Y軸、およびZ軸の座標値を用いて(0,0,1)の移動方向が予め定められている。
更に、相対位置量の差に対するロボット1の位置の移動量の算出方法が予め定められている。例えば、u軸に対応する方向におけるロボット1の位置の移動量は、u軸に関する値((u1m-u2m)-(u1b-u2b))に、予め定められた係数を乗じた値を採用することができる。また、v軸に対応する方向におけるロボット1の位置の移動量は、v軸に関する値((v1m-v2m)-(v1b-v2b))に、予め定められた係数を乗じた値を採用することができる。このように、スクリーン座標系52の各軸に対応する方向において、ロボット1の位置の移動量を算出することができる。
本実施の形態では、u軸に関する相対位置量の差に基づいて基準座標系51におけるX軸方向の移動量、Y軸方向における移動量、およびZ軸方向の移動量を算出している。また、v軸に関する相対位置量の差に基づいて、基準座標系51におけるX軸方向の移動量、Y軸方向における移動量、およびZ軸方向の移動量を算出している。このために、基準座標系51において、一つの軸に対して2つの移動量(u軸に関する移動量およびv軸に関する移動量)が算出される場合がある。この場合には、2つの移動量が算出される軸の方向にはロボット1の位置を移動しなくても構わない。または、それぞれの移動量に係数を乗じて最終的な移動量を算出しても構わない。または、いずれか一方の移動量を採用しても構わない。
次に、ステップ122において、ロボット1の位置の移動方向および移動量に基づいて、ロボット1を駆動する。指令生成部34は、ロボット1の位置の移動方向および移動量に基づいて、ロボット1を駆動する移動指令を生成する。指令生成部34は、移動指令を動作制御部43に送出する。動作制御部43は、移動指令に基づいてロボットの位置を変更する。
次に、制御は、ステップ115に移行する。第1の制御では、相対位置量の差が判定範囲内になるまで、ステップ115からステップ122を繰り返す制御を実施する。第1の制御では、1回の制御にてワークの位置合わせが完了しなくても、ステップ115からステップ122を繰り返すことにより、徐々にワークの位置を所望の位置に近づけることができる。
本実施の形態の制御では、基準座標系に対する視覚センサ座標系のキャリブレーションを行う必要がない。または、ワークの位置合わせを行うために、予めヤコビアン行列を求める必要は無い。このために、簡易な方法にてワークの位置合わせを行うことができる。
本実施の形態の第1の制御では、コンベヤ75が第1のワーク81を搬送している期間中に、第2のワーク91の位置合わせを実施している。特徴量検出部32による第1の特徴量および第2の特徴量を検出する制御、算出部33による相対位置量を検出する制御、および指令生成部34による移動指令を算出する制御を繰り返している。この制御により、コンベヤ75にて移動するワーク81の位置に対してワーク91を把持するロボット1の位置を追従する制御を実施することができる。
なお、本実施の形態におけるカメラ25は支持部材17を介してハンド2に支持されている。ハンド2は第2のワーク91を把持している。このために、第1のワーク81に対して第2のワーク91の位置合わせを行っている期間中に、カメラ25に対するワーク81の相対的な位置および姿勢は一定である。図5、図7、および図8を参照して、第1のワーク81に対する第2のワーク91の相対的な位置が変化しても、カメラ25にて撮像される画像62,63におけるワーク91および突出部92の位置は一定になる。この結果、カメラ25にて撮像した画像における第2の特徴部位の設定点P2の位置は一定になる。
図6を参照して、前述の制御においては、カメラ25にて第1のワーク81および第2のワーク91を撮像するたびに、第2のワーク91における第2の特徴部位を検出し、第2の特徴量を検出している。一方で、第2の特徴量である設定点P2の座標値は一定であるために、記憶部42は、カメラ25にて1回目に撮像された画像から取得された第2の特徴量を記憶しておくことができる。ステップ115からステップ117において、カメラ25にて2回目以降に撮像した画像については、特徴量検出部32は、記憶部42から第2の特徴量を取得することができる。特徴量検出部32は、第1の特徴部位の検出および第1の特徴量の検出を実施すれば良い。この制御を実施することにより、カメラにて2回目以降に撮像された画像から相対位置量を算出する制御を簡略化することができる。2回目以降のカメラにて撮像された画像の処理の時間が短くなる。
ところで、本実施の形態においては、コンベヤ75による第1のワーク81の移動方向および移動速度が予め定められている。ロボット制御装置4は、コンベヤ75によるワーク81の移動に合わせてロボット1の位置を変更するフィードフォワード制御を実施することができる。本実施の形態では、一定の移動速度にてワーク81が移動する。
指令生成部34は、コンベヤ75にて移動する第1のワーク81の位置に対してロボット1の位置が追従するロボット1の位置の移動方向および移動速度を算出する。例えば、指令生成部34は、ロボット1のツール先端点がワーク81の移動方向に移動するように移動方向を算出する。指令生成部34は、ロボット1のツール先端点がワーク81の移動方向と同じ方向に、ワーク81と同一の移動速度にて移動する移動量を算出することができる。そして、指令生成部34は、コンベヤ75の搬送に基づくロボット1の位置の移動方向および移動量の制御に加えて、前述の相対位置量の差に基づいて算出される移動方向および移動量の制御を実施することができる。
この制御を行うことにより、コンベヤ75による第1のワーク81の移動に関するロボット1の位置および姿勢の変更は、フィードフォワード制御にて実施することができる。相対位置量の差に基づく制御では、第1のワーク81に対する第2のワーク91の相対的な位置のずれを修正すれば良いために、短時間で第1のワーク81に対する第2のワーク91の位置合わせを行うことができる。
図9に、本実施の形態における第2のロボット装置のハンド、第1のワーク、および第2のワークの拡大斜視図を示す。第1のロボット装置5においては、1つのカメラ25によりロボット1の位置を調整しているが、この形態に限られない。ロボット装置は、2個以上のカメラを用いてロボット1の位置を調整することができる。
第2のロボット装置8では、ハンド2に支持部材18が固定されている。支持部材18は、上側に延びる部分18aと、下側に延びる部分18bと有する。上側に延びる部分18aには、第1のロボット装置5と同様に、第1の視覚センサとしてカメラ25が固定されている。カメラ25は、撮像範囲25aにて画像を撮像する。下側に延びる部分18bには、第2の視覚センサとしてのカメラ26が固定されている。カメラ26は、第1のワーク81および第2のワーク91を撮像する。特に、カメラ26は、第2のワーク91が第1のワーク81に接近した時の画像を撮像する。カメラ26は、第1のワーク81の突出部83と、第2のワーク91の突出部93とを撮像できる位置に配置されている。下側に延びる部分18bは、ワーク81,91の側方から突出部83,93を撮像できるようにカメラ26を支持している。カメラ26は、撮像範囲26aにて画像を撮像する。本実施の形態のカメラ26は、2次元カメラである。
2台のカメラ25,26は、光軸が互いに異なる方向に延びるように配置されている。本実施の形態では、カメラ26の光軸がカメラ25の光軸に対してほぼ直行する方向に延びるようにカメラ26が配置されている。第2のロボット装置8では、2台のカメラ25,26にて撮像した画像に基づいて、第2の制御を実施する。第2の制御では、カメラ25,26にて撮像した画像を用いて、ワーク81に対するワーク91の位置を調整する。
第2の制御では、第1の制御によりカメラ25の画像に基づいて移動指令を生成する。また、第1の制御と同様の方法により、カメラ26の画像に基づいて移動指令を生成する。本実施の形態では、カメラ26にて撮像された画像にて第1のワーク81の位置を検出するための第3の特徴部位と、第2のワーク91の位置を検出するための第4の特徴部位とが予め定められている。
第3の特徴部位は、第1の特徴部位と異なる部分である。第3の特徴部位としては、例えば、第1のワーク81の突出部83の側面を設定することができる。第3の特徴部位には第1のワーク81の位置を定めるための第3の設定点P3を設定することができる。第4の特徴部位は、第2の特徴部位と異なる部分である。第4の特徴部位としては、例えば、第2のワーク91の突出部93の側面を設定することができる。第4の特徴部位には第2のワーク91の位置を定めるための第4の設定点P4を設定することができる。
特徴量検出部32は、カメラ26にて撮像された画像において、第3の特徴部位の位置に関する第3の特徴量と、第4の特徴部位の位置に関する第4の特徴量を検出する。カメラ26にて撮像された画像において、設定点P3のスクリーン座標系52の座標値が第3の特徴量になる。また、設定点P4のスクリーン座標系52の座標値が第4の特徴量になる。算出部33は、第3の特徴量と第4の特徴量との差を相対位置量として算出する。
また、第1のワーク81に対して目標の位置に第2のワーク91が配置されているときのカメラ26に関する基準画像は予め作成されている。また、基準画像における第3の特徴量と第4の特徴量との差である相対位置量は定められている。基準画像における相対位置量は、予め算出することができる。
指令生成部34は、カメラ26にて撮像した画像における相対位置量と、第3の特徴部位および第4の特徴部位の画像を含む基準画像における相対位置量とに基づいて、相対位置量の差を算出する。そして、指令生成部34は、相対位置量の差に基づいて、第1のワーク81に対して第2のワーク91が目標の位置に配置されるようにロボット1を動作させる移動指令を生成する。指令生成部34は、第2のカメラ26にて撮像した画像における相対位置量が基準画像における相対位置量に近づくように、ロボット1を動作させる移動指令を生成する。
指令生成部34は、カメラ25の画像から生成された移動指令と、カメラ26の画像から生成された移動指令とに基づいて、動作制御部43に送出する最終的な移動指令を生成することができる。例えば、指令生成部34は、カメラ25の画像に基づく移動指令およびカメラ26の画像に基づく移動指令のうち、一方の移動指令にてロボット1を駆動した後に、他方の移動指令にてロボット1を駆動することができる。
または、カメラ25の画像に基づく移動指令と、カメラ26の画像に基づく移動指令とを合成しても構わない。例えば、カメラ25の画像のu軸に対応するロボット1の位置の移動方向と、カメラ26の画像のu軸に対応するロボット1の位置の移動方向とが一致する場合には、ロボット1の移動量の平均値を算出しても構わない。このようなロボット1の位置を調整する制御は、カメラ25の画像に基づく相対位置量の差が判定範囲内になり、更に、カメラ26の画像に基づく相対位置量の差が判定範囲内になるまで、繰り返して実施することができる。
第2のロボット装置8では、それぞれのカメラ25,26が互いに異なる特徴部位を撮像して位置の制御を行っている。このために、1台のカメラを用いて位置の調整を行う制御よりも精度よくワーク91の位置の調整を行うことができる。また、ステレオ計測等を行うことなく複数のカメラの画像に基づいてワークの位置の調整を行うことができる。更に、3次元カメラを用いなくても、複数の2次元カメラを用いることによりワークの位置の調整を行うことができる。
なお、第1のカメラ25にて撮像される画像における設定点P2の位置および第2のカメラ26の画像における設定点P4の位置は変化しない。このために、第1の制御と同様に始めに検出した第2の特徴量および第4の特徴量を記憶部42に記憶することができる。そして、2回目以降の制御では、記憶部42に記憶した第2の特徴量および第4の特徴量を取得して、それぞれの画像における相対位置量を算出しても構わない。
ところで、第2のロボット装置8においては、複数のカメラ25,26が配置されている。このようなロボット装置8の制御装置では、ワーク91の位置の調整を行う他に、ワーク91の姿勢の修正することができる。次に、ワーク91の姿勢の修正について説明する。
図10に、本実施の形態における第2のロボット装置におけるハンド、第1のワーク、および第2のワークの他の拡大斜視図を示す。第1の制御および第2の制御では、第1のワーク81に対する第2のワーク91の相対的な姿勢は、第2のワーク91の位置を調整する制御を実施する前に調整されている。一方で、第1のワーク81に対する第2のワーク91の姿勢がずれている場合がある。
ワーク91が目標の姿勢になった時には、ピン92aとピン93aとが並ぶ方向が、穴部82aと穴部83aとが並ぶ方向と平行になる。図10に示す例では、ワーク91の姿勢は、目標の姿勢から矢印106に示すように僅かに回転している。ワーク91は、基準座標系51のX軸の周りに、Y軸からZ軸に向かう方向に僅かに回転している。ワーク91は、フランジ16の回転軸の周りに目標の姿勢から僅かに回転している。この結果、ワーク91の突出部92は、ワーク81の突出部82に対して、矢印107に示すように、Y軸の負側の方向に位置がずれている。また、ワーク91の突出部93は、ワーク81の突出部83に対して、矢印108に示すように、Y軸の正側の方向に位置がずれている。
本実施の形態における複数のカメラ25,26は、第2のワーク91において、互いに離れて配置された部分を撮像するように形成されている。第1のカメラ25は、第2のワーク91の予め定められた方向における一方の側に配置された部分としての突出部92を撮像するように配置されている。また、第2のカメラ26は、第2のワーク91の予め定められた方向における他方の側に配置された部分としての突出部93を撮像するように配置されている。ここでの予め定められた方向とは、ピン92aとピン93aとが並ぶ方向に相当する。
図11に、第1のワークに対する第2のワークの姿勢がずれている時に、第1のカメラにて撮像した画像を示す。図10、図11、および基準画像である図5を参照して、画像66におけるワーク81に対するワーク91の相対的な位置は、基準画像61におけるワーク81に対するワーク91の相対的な位置と異なる。ワーク91の突出部92は、ワーク81の突出部82に対して、矢印107に示す向きにずれている。また、突出部92に固定されたピン92aの延びる方向と突出部82に形成された穴部82aの延びる方向とは平行にならずに、互いに異なる向きに向いている。
図12に、第1のワークに対する第2のワークの姿勢が目標の姿勢である時に、第2のカメラにて撮像された画像を示す。画像67では、突出部93に固定されたピン93aの延びる方向と、突出部83に形成された穴部83aの延びる方向とが平行になっている。このために、ワーク81に対するワーク91の位置合わせを実施することにより、ピン93aを、穴部83aの内部に挿入することができる。
図13に、第1のワークに対する第2のワークの姿勢がずれている時に、第2のカメラにて撮像した画像を示す。画像68では、ワーク81に対して矢印108に示すようにワーク91が僅かに回転している。図10、図12、および図13を参照して、画像68における突出部83に対する突出部93の相対的な位置は、矢印108に示すようにずれている。また、ピン93aの延びる方向は、穴部83aの延びる方向とは平行にならない。このために、ピン93aの先端が穴部83aの先端の真上に配置されても、ピン93aを穴部83aの内部に挿入することはできない。本実施の形態の第3の制御では、第1のワーク81に対する第2のワーク91の相対的な姿勢を修正する制御を実施する。
図14に、本実施の形態の第2のロボット装置における第3の制御のフローチャートを示す。第3の制御においては、第2の制御に加えてワーク91の姿勢を修正する制御を実施する。
ステップ131からステップ138は、前述の第2の制御と同様である。ステップ131において、第1のカメラ25および第2のカメラ26は、画像を撮像する。ステップ132において、特徴量検出部32は、第1のカメラ25にて撮像した画像における第1の特徴部位および第2の特徴部位を検出する。ステップ133において、特徴量検出部32は、第2のカメラ26にて撮像した画像における第3の特徴部位および第4の特徴部位を検出する。
ステップ134においては、特徴量検出部32は、第1の特徴部位の位置に関する第1の特徴量、第2の特徴部位の位置に関する第2の特徴量、第3の特徴部位の位置に関する第3の特徴量、および第4の特徴部位の位置に関する第4の特徴量を検出する。図11を参照して、特徴量検出部32は、第1のカメラ25にて撮像された画像66において、第1の特徴量として設定点P1のスクリーン座標系52の座標値を検出する。また、特徴量検出部32は、第2の特徴量として、設定点P2のスクリーン座標系52の座標値を検出する。図13を参照して、特徴量検出部32は、画像68において、第3の特徴量として設定点P3のスクリーン座標系52の座標値を検出する。特徴量検出部32は、第4の特徴量として、設定点P4のスクリーン座標系52の座標値を検出する。
図14を参照して、ステップ135において、画像処理部31の算出部33は、第1の特徴量および第2の特徴量に基づいて相対位置量を算出する。ステップ136において、算出部33は、第3の特徴量および第4の特徴量に基づいて相対位置量を算出する。算出部33は、それぞれのカメラ25,26にて撮像された画像66,68における相対位置量を算出する。
次に、ステップ137において、画像処理部31の指令生成部34は、それぞれのカメラ25,26にて撮像された画像66,68について、画像66,68における相対位置量と基準画像における相対位置量との差である相対位置量の差を算出する。ステップ138において、指令生成部34は、それぞれの画像66,68について、相対位置量の差に基づいて、ロボット1の移動指令を生成する。相対位置量の差は、スクリーン座標系52におけるu軸およびv軸に関する値として算出される。指令生成部34は、相対位置量の差に基づいて、ロボット1の移動指令を生成する。
指令生成部34は、カメラ25にて撮像した画像66に基づいて、ロボット1の位置の移動方向および移動量を基準座標系51にて算出する。また、指令生成部34は、カメラ26にて撮像された画像68に基づいて、ロボット1の位置の移動方向および移動量を基準座標系51にて算出する。すなわち、指令生成部34は、基準座標系51の座標軸の方向に沿った移動量を、それぞれの基準座標系51の座標軸ごとに算出する。
次に、ステップ139において、指令生成部34は、第1のカメラ25の画像から生成された移動指令と、第2のカメラ26の画像から生成された移動指令とに基づいて、第1のワーク81に対する第2のワーク91の姿勢が、予め定められた判定範囲内であるか否かを判定する。
本実施の形態においては、指令生成部34は、基準座標系51の予め定められた座標軸におけるロボット1の位置の移動方向を取得する。図10を参照して、ここでの例では基準座標系51の座標軸のうちY軸が予め選定されている。指令生成部34は、第1のカメラ25の画像66から生成された移動指令のうちY軸の移動指令と、第2のカメラ26の画像68から生成された移動指令のうちY軸の移動指令とを取得する。
指令生成部34は、2台のカメラ25,26にて撮像された画像66,68から取得されたY軸の移動方向が同じ方向である場合に、第1のワーク81に対する第2のワーク91の姿勢が、予め定められた判定範囲内であると判定する。一方で、指令生成部34は、Y軸の移動方向が互いに異なる場合に、第1のワーク81に対する第2のワーク91の姿勢が判定範囲を逸脱していると判定する。
図10から図13に示す例においては、第1のカメラ25にて撮像された画像に基づく移動指令では、ロボット1が矢印107と反対側に移動する指令が生成される。また、第2のカメラ26にて撮像された画像に基づく移動指令では、ロボット1が矢印108と反対側に移動する指令が生成される。このため、ステップ139においては、指令生成部34は、2つカメラにて撮像された画像に基づくY軸の移動方向は、互いに異なると判定する。この場合に、制御は、ステップ140に移行する。
なお、本実施の形態においては、基準座標系の予め定められた座標軸において、ロボットの位置を移動すべき方向が同じ方向である場合に判定範囲内であると判定しているが、この形態に限られない。予め定められた座標軸における移動方向が互いに異なる場合であっても、移動量が微小であれば判定範囲内であると判定しても構わない。
ステップ140において、指令生成部34は、ロボット1の姿勢の修正方法を設定する。指令生成部34は、第1のワーク81に対して第2のワーク91が傾いている方向と反対側にワーク91を回転させる移動指令を生成する。図10を参照して、本実施の形態では基準座標系51のX軸の周りにZ軸からY軸に向かう方向にワーク91を回転させる制御を実施する。ワーク91の回転量である姿勢修正量θは、予め定めておくことができる。
ステップ141において、指令生成部34は、ロボット1の姿勢の修正方法に基づく移動指令を、動作制御部43に送出する。動作制御部43は、指令生成部34から受信した移動指令に基づいてロボットの姿勢を修正する。
次に、ステップ142において、画像処理部31は、スクリーン座標系52の座標軸に対する基準座標系51のロボット1の位置の移動方向を補正する。相対位置量の差はスクリーン座標系52のu軸およびv軸に関する値にて算出される。スクリーン座標系52のu軸およびv軸に対応する基準座標系51におけるロボット1の位置の移動方向は、予め定められている。ロボット1の姿勢を修正すると、それぞれのカメラ25,26にて撮像される画像のu軸およびv軸に対応する基準座標系51における移動方向も変化する。すなわち、基準座標系のX軸、Y軸およびZ軸の座標値にて表されるロボット1の位置の移動方向が変化する。
画像処理部31は、ロボット1の姿勢の修正量に基づいて、スクリーン座標系52の座標軸に対応するロボット1の位置の移動方向を修正する。例えば、ロボット1の姿勢の修正量に基づいて算出される変換行列を、ロボット1の位置の移動方向を示す基準座標系51のX軸、Y軸、およびZ軸の座標値に乗じることにより、ロボット1の位置の移動方向を修正することができる。
ステップ142の後に、制御は、ステップ131に戻る。そして、ステップ131からステップ139における制御を繰り返す。ステップ139において、基準座標系51の予め定められた座標軸における移動方向が互いに異なる場合には、再びステップ140,141,142の制御を実施する。
ステップ140において、ロボット1の姿勢の修正方法を設定する。前回の姿勢修正量θにてロボット1の姿勢を修正することにより、第1のワーク81に対して第2のワーク91の姿勢がずれる方向が逆になる場合ある。この場合には、前回の姿勢の修正と反対方向にロボット1の姿勢を修正する。更に、前回の修正量よりも減らした修正量を採用する。例えば、前回の修正量の半分の修正量(−θ/2)にて姿勢を変更する制御を実施する。一方で、前回の姿勢修正量θにてロボット1の姿勢を修正しても、第1のワーク81に対して第2のワーク91の姿勢がずれる方向が前回の制御における方向と同一の場合がある。この場合に、前回と同じ方向および同じ姿勢修正量θにて姿勢を修正する。この後に、再びステップ131からステップ139の制御を繰り返すことができる。
このように、前回の制御における姿勢の修正により、姿勢がずれる方向が逆転した場合には、ロボットの姿勢を反対方向に修正するとともに修正量を減らす制御を実施することができる。この制御により、第1のワーク81に対する第2のワーク91の姿勢のずれを徐々に修正することができる。第1のカメラ25および第2のカメラ26にて撮像した画像において、第1のワーク81に対する第2のワーク91のずれる方向が同じになるまでロボット1の姿勢を修正することができる。
なお、ステップ139において、第1のワークに対する第2のワークの姿勢が判定範囲を逸脱する場合には、任意の制御を実施することができる。例えば、ロボット装置を停止しても構わない。また、ステップ140において、指令生成部34は、任意の制御にてロボット1の姿勢の修正方法を設定することができる。例えば、2台のカメラ25,26にて撮像された画像から算出されたY軸方向の移動量に基づいて、ワーク81の姿勢修正量を算出しても構わない。
ステップ139において、第1のカメラ25にて撮像された画像に基づく移動方向と第2のカメラ26にて撮像された画像に基づく移動方向とが同じである場合には、制御はステップ143に移行する。
ステップ143からステップ145においては、第2の制御と同様に、ロボット1の位置の判定および修正を行う。ステップ143においては、第1のカメラ25にて撮像された画像に基づく相対位置量の差と、第2のカメラ26にて撮像された画像に基づく相対位置量の差とが予め定められた判定範囲内であるか否かを判定する。ステップ143において、少なくとも一方の相対位置量の差が判定範囲を逸脱する場合には、制御は、ステップ144に移行する。
ステップ144において、指令生成部34は、それぞれの画像に基づく移動指令に基づいて、最終的なロボットの移動指令を生成する。そして、ステップ145において、動作制御部43は、最終的なロボットの移動指令に基づいてロボット1を駆動する。この後に、制御はステップ131に移行する。
ステップ143において、2つの画像における相対位置量の差が判定範囲内である場合には、第1のワーク81に対する第2のワーク91の位置および姿勢が、目標の位置および目標の姿勢であると判定することができる。そして、この制御を終了することができる。
上記以外の第2のロボット装置8の構成、作用、および効果は、第1のロボット装置5と同様であるので、ここでは説明を繰り返さない。
図15に、本実施の形態における第3のロボット装置のハンド、第1のワーク、および第2のワークの拡大斜視図を示す。第3のロボット装置9では、ハンド2に支持部材19が固定されている。支持部材19は、上側に延びる部分19aと、下側に延びる部分19bと有する。上側に延びる部分19aは、第2のロボット装置8と同様に、第1の視覚センサとしてカメラ25が固定されている。下側に延びる部分19bには、第2の視覚センサとしてのカメラ26が固定されている。
第3のロボット装置9のカメラ26の向きは、第2のロボット装置8のカメラ26の向きと異なる。支持部材19の下側に延びる部分19bは、カメラ26の撮像範囲26aがカメラ25の撮像範囲25aと重なるように、カメラ26を支持している。第3のロボット装置9のカメラ26は、カメラ25が撮像する部分と同一の部分を撮像するように配置されている。カメラ26は、ワーク81の突出部82と、ワーク91の突出部92とを撮像できるように配置されている。
第3のロボット装置9においては、ワーク81に対してワーク91の位置を合わせるために、第4の制御を実施する。第4の制御では、第2のロボット装置8の第2の制御と同様に、第3の特徴部位および第4の特徴部位を設定して、複数のカメラ25,26の画像に基づいて、ロボット1の位置の調整を行う。本実施の形態では、突出部82の側面が第3の特徴部位に設定されている。また、突出部92の側面が第4の特徴部位に設定されている。第3のロボット装置9においては、第3の特徴部位は、第1の特徴部位と同じであっても異なっていても構わない。また、第4の特徴部位は、第2の特徴部位と同じであっても異なっていても構わない。
その他の第3のロボット装置9の構成、作用、および効果は、第2のロボット装置8と同様であるので、ここでは説明を繰り返さない。
第2のロボット装置8の制御装置および第3のロボット装置9の制御装置は、2台のカメラを備えるが、この形態に限られない。ロボット装置の制御装置は、3台以上のカメラを備えていても構わない。制御装置は、それぞれのカメラにて互いに異なる特徴部位を撮像し、それぞれのカメラにて撮像した画像に基づいてワークの位置および姿勢の制御を実施しても構わない。
図16に、本実施の形態における第4のロボット装置のハンド、第1のワーク、および第2のワークの拡大斜視図を示す。第4のロボット装置10は、第1のカメラ25および第2のカメラ26に加えて第3のカメラ28を備える。第4のロボット装置10は、ハンド2に支持された支持部材20を有する。支持部材20は、カメラ25を支持し、上側に延びる部分20aと、カメラ26を支持し、下側に延びる部分20bとを有する。また、支持部材20は、カメラ28を支持し、側方の延びる部分20cを有する。カメラ28は、撮像範囲28aを有する。カメラ28は、カメラ25の光軸の方向およびカメラ26の光軸の方向とは異なる方向に、光軸が延びるように配置されている。
第4のロボット装置10においては、ワーク81に対してワーク91の位置および姿勢を合わせるための第5の制御を実施する。第5の制御では、カメラ28にて撮像される画像を処理するために、第1のワーク81に第5の特徴部位が設定されている。また、第2のワーク91に第6の特徴部位が設定されている。例えば、ワーク81の突出部83の側面が第5の特徴部位に設定され、ワーク91の突出部93の側面が第6の特徴部位に設定されている。
カメラ28にて撮像された画像についても、前述の第1の制御と同様の制御を実施することができる。カメラ28は、第5の特徴部位および第6の特徴部位を撮像可能な位置に配置されている。第5の特徴部位および第6の特徴部位には、特徴部位の位置を定めるための第5の設定点および第6の設定点が設定されている。特徴量検出部32は、スクリーン座標系52における設定点の位置に基づいて第5の特徴部位に対応する第5の特徴量および第6の特徴部位に対応する第6の特徴量を検出することができる。カメラ28に関する基準画像は予め作成されている。そして、基準画像における第5の特徴量および第6の特徴量は予め算出することができる。また、基準画像における相対位置量は予め算出することができる。
第5の制御においては、前述の第3の制御と同様の制御を実施することができる。第5の制御においては、3台のカメラにて、第1のワーク81に対する第2のワーク91の位置および姿勢を調整する。ワーク81に対するワーク91の位置を調整する制御では、3台のカメラ25,26,28にて取得される画像に基づいて第1のワーク81に対する第2のワーク91の位置のずれを検出することができる。このために、2台のカメラにて位置の調整を行う場合よりも精度よく位置の調整を行うことができる。
また、ワーク81に対するワーク91の姿勢を修正する制御では、カメラ25にて撮像される画像およびカメラ28にて撮像される画像に基づいて、基準座標系51のY軸の周りにずれているワーク91の姿勢を修正することができる。この様に、カメラの台数を増やすことにより、姿勢のずれを修正する方向を増やすことができる。
その他の第4のロボット装置の構成、作用、および効果は、第1のロボット装置5、第2のロボット装置8、および第3のロボット装置9と同様であるので、ここでは説明を繰り返さない。
前述の第1のロボット装置5、第2のロボット装置8、第3のロボット装置9、および第4のロボット装置10においては、カメラ25,26,28がハンド2に固定されて、ハンド2と共に移動するが、この形態に限られない。カメラは、設置面等に固定されていても構わない。すなわち、ロボット1の位置および姿勢が変化してもカメラの位置および姿勢は変化しないようにカメラが固定されていても構わない。
図17に、本実施の形態における第5のロボット装置の概略図を示す。第5のロボット装置6は、第1の部材としてのケース87の内部に、第2の部材としてのワーク97を配置する作業を実施する。ケース87は、第1のワークに相当し、ワーク97は、第2のワークに相当する。第5のロボット装置6は、ロボット1に取り付けられたハンド7を有する。ハンド7は吸着によりワーク97を把持するように形成されている。第5のロボット装置6は、ケース87を搬送する搬送機としてのコンベヤ75を備える。
第5のロボット装置6は、設置面に架台71を介して固定された視覚センサとしてのカメラ27を有する。カメラ27は、ロボット1が位置および姿勢が変化しても不動である。カメラ27は、ロボット1がワーク97の位置の調整を行っている期間中に、ワーク97およびケース87を撮像できるように、コンベヤ75から十分に離れた位置に配置されている。
図18に、第5のロボット装置にてワークをケースに収容しているときの側面図を示す。ケース87は、矢印105に示すように、コンベヤ75にて搬送されている。ケース87は、ワーク97の形状に対応して形成された複数の壁部87aを有する。第5のロボット装置6は、壁部87aに囲まれる領域にワーク97を収容する。図18に示す例では、壁部87aにて囲まれる領域に対してワーク97の位置が合っている。このために、矢印104に示すように、ワーク97を下降することにより、ワーク97をケース87に収容することができる。
図19に、第5のロボット装置にてワークをケースに収容しているときの他の側面図を示す。図19に示す例では、壁部87aに囲まれる領域に対してワーク97の位置がずれている。第5のロボット装置6では、第6の制御を実施する。第6の制御では、壁部87aにて囲まれる領域の真上にワーク97が配置されるようにロボット1の位置を調整する。ケース87に対するワーク97の姿勢は、予め調整されている。第6の制御においては、第1の制御と同様の制御により、ケース87の位置に対するワーク97の位置のずれを修正する。図18に示すようにケース87に対するワーク97の位置が合っている状態に対応する基準画像は、予め作成されている。
図20に、カメラにて撮像された画像を示す。図20の画像では、壁部87aに囲まれる領域に対してワーク97の位置がずれている。第6の制御では、例えば、壁部87aの側面を第1の特徴部位に設定することができる。壁部87aの側面の角に第1の設定点P1を設定することができる。また、ワーク97の側面を第2の特徴部位に設定することができる。ワーク97の側面の角に、第2の設定点P2を設定することができる。
図3および図20を参照して、特徴量検出部32は、第1の特徴部位の位置に関する第1の特徴量と、第2の特徴部位の位置に関する第2の特徴量とを検出する。算出部33は、第1の特徴量と第2の特徴量とに基づいて相対位置量を算出する。指令生成部34は、カメラ27にて撮像した画像65における相対位置量と、基準画像における相対位置量とに基づいて、ロボット1を動作させる移動指令を生成することができる。
カメラが固定されているロボット装置においても、第1の制御と同様の制御により、ロボットの位置の制御を実施することができる。また、設置面等に固定されている複数のカメラを用いて、第2の制御、第3の制御、または第4の制御と同様の制御を実施することができる。
その他の第5のロボット装置6の構成、作用および効果については、第1のロボット装置5、第2のロボット装置8、第3のロボット装置9、および第4のロボット装置10と同様であるので、ここでは説明を繰り返さない。
上記の実施の形態における視覚センサは、2次元カメラであるが、この形態に限られない。視覚センサは、画像に含まれる部材の3次元の位置が検出可能な3次元カメラであっても構わない。視覚センサとして3次元カメラを用いることにより、ベース画像を準備しなくても基準座標系における第1の部材の位置および第2の部材の位置を検出することができる。
上記の実施の形態では、製品を組み立てる作業を行うロボット装置およびケースにワークを挿入するロボット装置を取り上げているが、この形態に限られない。任意の作業を行うロボット装置に本実施の形態の制御装置を適用することができる。例えば、ワークをケースから取り出すロボット装置、スポット溶接を行うロボット装置、または接着剤を塗布するロボット装置などに本実施の形態の制御装置を適用することができる。
上記の実施の形態の第1の部材および第2の部材は、ワークまたはケースであるが、この形態に限られない。第1の部材は、ロボット装置が作業を行う任意の部材を採用することができる。また、第2の部材はロボットが駆動することにより移動する任意の部材を採用することができる。特に、第2の部材は、ロボットに取り付けられる作業ツールであっても構わない。例えば、スポット溶接を行うロボット装置では、ロボットに作業ツールとしてスポット溶接ガンが取り付けられる。この場合に、第2の部材は、スポット溶接ガンである。スポット溶接ガンにおいて、カメラにて撮像された画像にて検出が可能な部分を第2の特徴部位または第4の特徴部位に設定することができる。
上記の実施の形態では、特徴部位は、ワークまたはケースの表面に設定しているが、この形態に限られない。特徴部位は、ロボットの構成部材、ハンドの構成部材、または、搬送機の構成部材に設定されていても構わない。例えば、第1の制御から第4の制御において、ハンドに対するワークの把持のずれが無い場合がある。または、ハンドに対するワークの把持のずれに対応してロボットの位置が調整されている場合がある。これらの場合には、カメラの撮像範囲にハンドが配置される場合に、第2の特徴部位、第4の特徴部位、および第6の特徴部位をハンドに設定しても構わない。
上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜ステップの順序を変更することができる。
上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、特許請求の範囲に示される実施の形態の変更が含まれている。