説明

ロボット用位置検出装置、ロボットシステム、及びロボット用位置検出方法

【課題】ロボットが有する駆動源の駆動量と実際のロボットの状態とを画像に基づいて対応付ける処理の効率を高めることの可能なロボット用位置検出装置、ロボットシステム、及びロボット用位置検出方法を提供する。
【解決手段】
水平多関節ロボット10(ロボット10)用位置検出装置は、撮像対象であるロボット10又はワークWを撮像するカメラ22と、撮像対象の位置を画像から算出する制御部33と、ロボット10の第1及び第2モーター11a,13aの駆動量を取得するI/O31と、撮像対象の算出位置と駆動量とを対応付けて記憶する。上記カメラ22及びI/O31には、撮像対象の位置を検出するための共通するトリガー信号が入力される。カメラ22は、トリガー信号の入力によって撮像対象の撮像を開始する一方、I/O31では、同トリガー信号の入力によって制御部33が駆動量を得る。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ロボットの位置又はロボットが搬送するワークの位置を画像に基づいて検出するロボット用位置検出装置、ロボットシステム、及びロボット用位置検出方法に関する。
に関する。
【背景技術】
【0002】
従来から、例えば特許文献1に記載のように、ロボットが有するエンドエフェクターの位置やロボットのエンドエフェクターに把持されるワークの位置を画像に基づいて検出する方法が知られている。図5は、ワークを搬送する動作の途中で行われるロボットの位置検出及びワークの位置検出に上記方法を適用した例を示している。
【0003】
図5に示されるように、ロボットの一つである水平多関節ロボット40(以下ロボット40)には、基台41に連結された第1アーム42を回動させる第1モーター41aと、第1アーム42に連結された第2アーム43を回動させる第2モーター43aとが内蔵されている。ロボット40を構成する第1アーム42及び第2アーム43は、これら第1モーター41a及び第2モーター43aの各々の駆動量に応じた位置へ移動する。これにより、ロボット40は、スプライン44の先端に連結されたエンドエフェクター45によって載置台51に載置されたワークWを把持位置P1にて把持するとともに、把持位置P1からカメラ52の直上である撮像位置P2へワークWを搬送する。
【0004】
ロボットコントローラー60には、ロボットコントローラー60に格納された動作プログラムを解釈して実行する制御部61と、制御部61が出力する制御信号に基づいて各駆動源に駆動信号を出力するモータードライバー62とが搭載されている。また、ロボットコントローラー60には、カメラ52によって撮像された画像からエンドエフェクター45又はワークWの位置を算出する画像処理部63が搭載されている。さらにまた、ロボットコントローラー60には、ロボット40の制御に必要とされる各種のデータを記憶する記憶部64が搭載され、この記憶部64には、把持位置P1の座標や撮像位置P2の座標を示す位置データ64aが格納されている。
【0005】
そして、エンドエフェクター45に対するワークWの位置を検出する際には、まず、ワークWの把持状態を検出するための動作プログラムが制御部61によって解釈され、エンドエフェクター45を現在位置から把持位置P1に移動するための各駆動源の駆動量が制御部61によって計算される。次いで、制御部61の計算結果に基づく駆動信号が、モータードライバー62から第1モーター41a及び第2モーター43aに出力される。これにより、エンドエフェクター45は、把持位置P1に移動してワークWを把持する。
【0006】
続いて、エンドエフェクター45を把持位置P1から撮像位置P2に移動するための各駆動源の駆動量が制御部61によって計算され、制御部61の計算結果に基づく駆動信号が、モータードライバー62から第1モーター41a及び第2モーター43aに出力される。これにより、エンドエフェクター45がワークWを把持したままの状態で、該エンドエフェクター45が撮像位置P2にまで移動する。
【0007】
そして、第1モーター41aのエンコーダー及び第2モーター43aのエンコーダーが出力する出力信号に基づいて、エンドエフェクター45が撮像位置P2に到達したことを制御部61が把握すると、制御部61がカメラ52を駆動するための制御信号を出力する。これにより、エンドエフェクター45に把持された状態のワークWがカメラ52によって撮像され、画像を取得するための信号が制御部61から出力されると、カメラ52によって撮像された画像が、画像処理部63に入力される。そして、画像処理部63が画像からワークWの位置を算出するとともに、この算出された結果と撮像位置P2の座標とに基づいて、エンドエフェクター45に対するワークWの位置を制御部61が計算する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2009−2860号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところで、上述の方法では、エンドエフェクター45に把持された状態のワークWを撮像する際に、エンドエフェクター45の動きを撮像位置P2で止めるようにしている。そして、エンドエフェクター45の実際の位置を予め設定された撮像位置P2として取り扱うようにしている。
【0010】
しかしながら、こうした方法では、ワークWの把持状態を検出するための動作が行われるたびにロボット40の動きが止められることになり、ワークWを搬送する過程でこうした把持状態を検出するとなれば、自ずとワークWの搬送効率が低下することになる。ちなみに、ワークWの把持状態を検出する動作の他、エンドエフェクター45の位置を他の動作の過程で検出する場合においても同様に、エンドエフェクター45の動きを撮像位置P2で止める以上、結局のところ、ロボット40が行うべき本来の処理の効率が低下することとなる。すなわち、上述の方法では、撮像画像から算出されるロボットの状態と各駆動源の駆動量とを対応付ける処理が、それ以外の処理の効率を低下させるものとなっている。
【0011】
この発明は、上記実情に鑑みてなされたものであり、その目的は、ロボットが有する駆動源の駆動量と実際のロボットの状態とを画像に基づいて対応付ける処理の効率を高めることの可能なロボット用位置検出装置、ロボットシステム、及びロボット用位置検出方法を提供することにある。
【課題を解決するための手段】
【0012】
本発明におけるロボット用位置検出装置は、ロボットの移動中に撮像対象であるロボット及び該ロボットの保持するワークの少なくとも一方を撮像する撮像部と、前記撮像対象の位置を撮像された画像から算出する算出部と、前記ロボットの駆動源における駆動量を取得する取得部と、前記撮像対象の算出位置と前記駆動量とを対応付けて記憶する記憶部とを備え、前記撮像部及び前記取得部には、前記撮像対象の位置を検出するための共通のトリガー信号が入力され、前記撮像部は、前記トリガー信号によって前記撮像対象の撮像を開始し、前記取得部は、前記トリガー信号によって前記駆動量の取得を開始することを要旨とする。
【0013】
本発明におけるロボット用位置検出装置によれば、撮像対象の位置を検出するためのトリガー信号によって、撮像部が撮像対象を撮像し、かつ、取得部が駆動源の駆動量を取得する。そして、こうしたトリガー信号が、撮像部と取得部との双方に入力される、すなわち、撮像部と取得部とが、共通するトリガー信号で駆動されることとなる。それゆえに、移動中のロボットやワークが撮像対象となる撮像の態様であっても、これら撮像部と取得部とが共通する一つのトリガー信号で駆動される以上、撮像部にて撮像された画像と、取得部にて取得された駆動量とが、時間軸上において近いものとなる。
【0014】
なお、ロボットそのものの画像がロボットの位置と相関を持つということは当然のことながら、ロボットの保持するワークの画像もまたロボットの位置と強い相関を有するものである。それゆえに、上述した構成によれば、移動中のロボットから得られる2つの情報、すなわち、画像から得られるロボットの位置と該位置における駆動源の駆動量とが、時間軸上で近いものとして互いに対応付けられることとなる。そして、このような対応付けが移動中のロボットに対して行われるため、ロボットの位置を検出するためにロボットが停止している期間やロボットが停止した後に再加速するための期間などを縮める、あるいは無くすことが可能である。それゆえに、ロボットが有する駆動源の駆動量と実際のロボットの状態とを画像に基づいて対応付ける処理の効率を高めることが可能である。
【0015】
この発明は、前記ロボット又は該ロボットの保持するワークが所定の位置に到達したか否かを前記ロボットの外部で検出し、該検出の対象が前記所定の位置に到達したときに、前記撮像部と前記取得部とに前記共通のトリガー信号を出力する指令出力部を備えることが好ましい。
【0016】
この発明によれば、ロボット又は該ロボットの保持するワークが所定の位置に到達したときに、撮像部と取得部とが駆動されることになる。それゆえに、撮像部の撮像する画像と取得部の取得する駆動量とは、常に、ロボット又は該ロボットの保持するワークが所定の位置に到達したときのものとなる。このような構成であれば、撮像部の撮像する画像が、トリガー信号の都度、互いに大きく異なるものとはなり難くなる。それゆえに、撮像部にて撮像された画像から撮像対象の位置を算出する処理の態様を予め簡単な構成とすることが可能であり、また、このような画像の処理によって得られる結果の精度、すなわち撮像対象の位置の精度を高めることが可能でもある。
【0017】
この発明は、前記指令出力部による検出の対象が、前記撮像部の前記撮像対象であり、前記指令出力部は、前記検出の対象が前記撮像部の撮像領域に到達したか否かを検出することが好ましい。
【0018】
この発明によれば、撮像部の撮像対象が撮像領域に到達したときに、撮像部と取得部とが駆動されることになる。それゆえに、撮像部の撮像する画像に撮像対象が含まれること、さらには、撮像対象の位置を算出することが可能な程度に撮像対象が撮像されることをより確実なものとすることが可能である。したがって、上述のような画像の処理によって得られる結果の精度、すなわち撮像対象の位置の精度をさらに高めることが可能である。
【0019】
この発明は、前記撮像対象が、前記ワークであり、前記撮像部の撮像領域では、前記ワークを把持するエンドエフェクターが前記ワークによって前記撮像部に対して光学的に遮蔽されていることが好ましい。
【0020】
この発明によれば、撮像部が撮像するワークの画像に基づいて、ワークの位置が算出される一方、取得部が取得する駆動量に基づいて、エンドエフェクターの位置が算出される。それゆえに、撮像部によってエンドエフェクターを撮像することが不可能な場合であっても、ワークの位置と該ワークを把持するエンドエフェクターの位置とを対応付けることが可能である。すなわち、撮像部によってエンドエフェクターの位置を検出することが不可能な場合であっても、エンドエフェクターとワークとの相対位置を把握することが可能である。その結果、エンドエフェクターとワークとの双方が撮像されるように撮像部を配置するという煩わしさを軽減することが可能である。さらには、撮像部の撮像領域をワークに特化した位置に設計することが可能になるため、画像から算出されるワークの位置の精度を高めることが可能にもなる。
【0021】
この発明は、前記記憶部が、前記撮像対象の目標位置と前記駆動源の駆動量とを対応付けて記憶し、前記記憶部が記憶する前記算出位置と前記駆動量との対応関係に基づいて前記目標位置と前記目標位置に到達するための駆動量との対応関係を補正する補正部を備えることが好ましい。
【0022】
この発明によれば、ロボットが有する駆動源の駆動量と実際のロボットの状態とを画像に基づいて対応付けるとともに、その対応関係に基づいて駆動源の駆動量を補正することが可能である。
【0023】
本発明におけるロボットシステムは、ワークを搬送するロボットと、前記ロボットの位置又は前記ロボットが搬送するワークの位置を検出するロボットの位置検出装置とを備えるロボットシステムであって、前記ロボットの位置検出装置が上記ロボットの位置検出装置であることを要旨とする。
【0024】
本発明におけるロボットシステムによれば、ロボットが有する駆動源の駆動量と実際のロボットの状態とを画像に基づいて対応付ける処理の効率を高めることの可能なロボットシステムを提供することができる。
【0025】
本発明におけるロボット用位置検出方法は、ロボットの移動中に撮像対象であるロボット及び該ロボットの保持するワークの少なくとも一方を撮像する工程と、前記撮像対象の位置を撮像された画像から算出する工程と、前記ロボットの駆動源における駆動量を取得する工程と、前記撮像対象の算出位置と前記駆動量とを対応付けて記憶する工程とを含み、前記撮像対象を撮像する工程と前記駆動量を取得する工程とを一つのトリガー信号により開始することを要旨とする。
【0026】
本発明におけるロボット用位置検出方法によれば、撮像対象の位置を検出するための一つのトリガー信号によって、撮像対象の撮像と駆動源の駆動量の取得とが開始される。そのため、移動中のロボットやワークが撮像対象となる撮像の態様であっても、撮像対象の画像と駆動源の駆動量とが、時間軸上において近いものとして互いに対応付けられることとなる。つまり、このような対応付けが移動中のロボットに対して行われることから、ロボットの位置を検出するためにロボットが停止している期間やロボットが停止した後に再加速するための期間などを縮める、あるいは無くすことが可能である。それゆえに、ロボットの位置を画像から検出する際の処理の効率を高めることが可能である。
【図面の簡単な説明】
【0027】
【図1】本発明のロボットシステムにおける一実施形態の概略構成を示す図。
【図2】同実施形態におけるトリガー信号生成時の撮像領域とエンドエフェクターに把持されたワークとの関係を示す図。
【図3】ロボットの位置検出処理の手順を示すフローチャート。
【図4】変形例におけるトリガー信号生成時の撮像領域とエンドエフェクターに把持されたワークとの関係を示す図。
【図5】従来のロボットシステムの概略構成を示す図。
【発明を実施するための形態】
【0028】
本発明のロボット用位置検出装置、ロボットシステム、及びロボット用位置検出方法の一実施形態について図1〜図3を参照して以下に説明する。
[ロボットシステム]
まず、ロボットシステムの概要について図1を参照して説明する。同図1に示されるように、水平多関節ロボット(以下、ロボット)10の基台11には、第1アーム12が、鉛直方向に延びる第1回転軸12aを介して基台11に対して水平方向に回動可能に連結されている。上記基台11には、第1回転軸12aを回転させることで第1アーム12を回動させる駆動源としての第1モーター11aが内蔵されている。また、基台11には、第1モーター11aの駆動量である回転数を検出して出力する第1エンコーダー11bが搭載されている。
【0029】
第1アーム12の先端には、第2アーム13が、鉛直方向に延びる第2回転軸12bを介して第1アーム12に対して水平方向に回動可能に連結されている。第2アーム13には、第2回転軸12bを回転させることで第2アーム13を回動させる駆動源としての第2モーター13aが搭載されている。また、第2アーム13には、第2モーター13aの駆動量である回転数を検出して出力する第2エンコーダー13bが搭載されている。
【0030】
第2アーム13の先端には、スプライン14が、第2アーム13を鉛直方向に貫通することで、該第2アーム13に対する鉛直方向、つまり上下方向に移動可能に設けられている。第2アーム13には、スプライン14を回転させつつ上下方向に移動させる第3モーター13cが搭載されている。スプライン14の先端には、ロボット10の搬送対象であるワークWを把持するエンドエフェクター15が連結されている。ワークWは、例えば静止した載置台21上において上記エンドエフェクター15によるワークWの把持が行われる位置となる把持位置P1に載置されている。
【0031】
こうしたロボット10においてワークWの把持動作を行うときには、該動作の始点となる所定位置にあるエンドエフェクター15が、第1モーター11aの回転による第1アーム12の回動と、第2モーター13aの回転による第2アーム13の回動とによって、例えば把持位置P1の直上に移動する。なお、このときの第1モーター11aの駆動量及び駆動方向と、第2モーター13aの駆動量及び駆動方向とは、上記始点と把持位置P1とを結ぶエンドエフェクター15の軌道によって決まる。そして、エンドエフェクター15が把持位置P1の直上に到達すると、上記第3モーター13cが回転することで、スプライン14が回転しつつワークWに向かって降下する。スプライン14の降下によって、該スプライン14の先端に連結されたエンドエフェクター15がワークWを吸着可能な位置にまで降下すると、エンドエフェクター15が、載置台21上のワークWに対して該ワークWの把持を開始する。
【0032】
次いで、スプライン14が所定の位置、例えば載置台21上の物品等に衝突しない位置にまで上昇すると、上記第1アーム12と第2アーム13とが再び回動することで、把持位置P1にあるエンドエフェクター15が、ロボット10の動作の終点である例えばワークWの搬送位置の直上にまで移動する。そして、スプライン14の降下によって搬送位置に到達したエンドエフェクター15は、ワークWの把持を解除することで該ワークWを搬送位置に配置する。
【0033】
一方、ロボット10の周辺のうち、上記エンドエフェクター15によって把持されたワークWを撮像可能な位置には、撮像部としてのカメラ22が配置されている。カメラ22は、撮像対象であるワークWをその直下から該カメラ22の撮像領域に収められるように配置されている。つまり、カメラ22は、エンドエフェクター15の軌跡、例えばエンドエフェクター15の移動における始点と終点とを結ぶ最短距離上等の撮像位置P2を撮像領域内に収められるように配置されている。そして、カメラ22によって撮像された画像は、該カメラ22の有する記憶部に一定期間記憶される。
【0034】
カメラ22の近傍には、指令出力部としての光学センサー23が設置されている。光学センサー23は、例えば半導体レーザー等の光を出力するデバイスから構成された投光部23aと、該投光部23aの出力した光を受光する例えば受光素子等のデバイスから構成された受光部23bとを有している。投光部23aと受光部23bとの間には、投光部23aから出力される検出光線23cが、上記カメラ22の撮像領域を横切るように形成されている。そして、受光部23bは、投光部23aの出力する光を受け取ることができなかったときに、ワークWの位置、例えばワークWの重心の位置を検出するためのトリガー信号を出力する。
【0035】
上述したロボット10には、上記第1アーム12、第2アーム13、スプライン14、及びエンドエフェクター15等の動作を制御するロボットコントローラー30が接続されている。ロボットコントローラー30には、ロボットコントローラー30に格納された動作プログラムを解釈して実行する制御部33と、制御部33が出力する制御信号に基づいて各駆動源に駆動信号を出力する図示されないモータードライバーとが搭載されている。制御部33は、エンドエフェクター15の移動する軌跡を計算するとともに、該軌跡に沿ってエンドエフェクター15を移動させるための第1モーター11aの駆動量と第2モーター13aの駆動量とを計算する。そして、制御部33は、計算結果に基づく駆動量で各駆動源を駆動するための駆動信号をモータードライバーに出力させる。
【0036】
ロボットコントローラー30には、各種信号の入力及び出力を行う取得部を構成する入出力部(以下I/O)31が搭載されている。I/O31には、第1モーター11aの回転数を示すデータが第1エンコーダー11bから所定の検出周期で入力されるとともに、第2モーター13aの回転数を示すデータが第2エンコーダー13bから同じく所定の検出周期で入力される。なお、上記第3モーター13cの回転数を示すデータも図示しないエンコーダーから所定の検出周期で上記I/O31に入力される。
【0037】
上記カメラ22とI/O31には、上記エンドエフェクター15に把持されたワークWの一端が検出光線23cを超えると、光学センサー23の受光部23bから共通のトリガー信号が入力される。カメラ22は、このトリガー信号を受信することによって撮像を開始し、撮像領域22a中に存在するワークWを撮像する。また、I/O31がこのトリガー信号を受信することによって、I/O31にトリガー信号が入力されたことを制御部33が把握する。次いで、制御部33は、I/O31を介して、第1モーター11aの回転数を示す最新のデータ、第2モーター13aの回転数を示す最新のデータ、及び第3モーター13cの回転数を示す最新のデータをそれぞれ得る。そして、取得部を構成する制御部33は、これら回転数を示す最新のデータを取得すると、該データに基づいて、エンドエフェクター15の位置(x2,y2,z2)を算出する。
【0038】
ロボットコントローラー30には、算出部としての画像処理部32が搭載されている。画像処理部32は、上記カメラ22の撮像した画像に相当するデータを受信した後、この画像に関するデータに基づいてワークWの重心の位置(x1,y1,z1)を算出して制御部33に出力する。そして、制御部33は、ワークWの重心の位置を取得すると、該ワークWの重心の位置とエンドエフェクター15の位置との差分に基づいて、今回の動作におけるエンドエフェクター15の終点や次回の動作におけるエンドエフェクター15の始点等を補正する。すなわち、制御部33は、共通のトリガー信号によって取得されるワークWの重心の位置とエンドエフェクター15の位置とを用いて、ロボット10の動作を補正する補正部としても機能する。
【0039】
さらに、ロボットコントローラー30には、ロボット10の動作制御に関わるプログラムや各種データを記憶している記憶部34が搭載されている。記憶部34には、各アームの長さや各アームの連結先など、エンドエフェクター15の目標位置に基づく軌道からロボット10の姿勢を算出するためのロボットデータ34aが格納されている。また、記憶部34には、各モーター11a,13aに連結された減速機の減速比や各モーター11a,13aの初期位置などを用いロボット10の姿勢から各モーター11a,13aの駆動量を算出するための関係式など、エンドエフェクター15の目標位置と各モーター11a,13aの駆動量とを対応付けた対応関係が格納されている。さらに、記憶部34には、共通のトリガー信号によって得られたワークWの重心の位置とエンドエフェクター15の位置とを対応付けたデータである相関データ34bが格納されている。さらにまた、記憶部34には、ワークWの外形線を示すデータやワークWの外形線からワークWの重心を算出するための算出式など、ワークWの画像からワークWの重心位置を算出するためのデータが格納されている。
【0040】
なお、本実施形態においては、上記カメラ22、光学センサー23、及びロボットコントローラー30によってロボット10の位置検出装置が構成されている。
次に、上述した構成からなるロボットシステムの作用について、ロボットコントローラー30がロボット10の動作を制御する態様とともに説明する。
【0041】
動作の始点となる所定位置にあるエンドエフェクター15を把持位置P1に移動させるときには、まず、制御部33は、第1エンコーダー11b及び第2エンコーダー13bの各々から各モーター11a,13aの回転数を示すデータを取得して、エンドエフェクター15の現在位置を把握する。そして、制御部33は、エンドエフェクター15の現在位置と記憶部34に記憶された目標位置である把持位置P1とを結ぶ軌道を計算するとともに、該軌道に沿ってエンドエフェクター15を移動させるための各モーター11a,13aの駆動量を算出する。その後、制御部33は、第1モーター11a及び第2モーター13aに対して、各々の駆動量に対応する駆動信号をモータードライバーに出力させる。これにより、第1アーム12及び第2アームの移動によって、所定位置にあるエンドエフェクター15が把持位置P1に向かって移動することになる。
【0042】
ロボット10のエンドエフェクター15が把持位置P1の直上に到達すると、ロボットコントローラー30は、スプライン14を降下させることで、該スプライン14の先端に連結されたエンドエフェクター15が載置台21に載置されたワークWに近付くようにする。なおこのとき、制御部33は、上記第2アーム13に搭載された図示外の第3モーター用のエンコーダーから得られるスプライン14の先端位置と、目標位置として記憶部34に記憶された載置台21の表面付近の位置までの差分からスプライン14の降下量を算出する。そして、制御部33は、降下量に応じた駆動信号をモータードライバーから第3モーター13cに出力する。
【0043】
次いで、ワークWを把持したエンドエフェクター15を把持位置P1から動作の終点となる搬送位置にまで移動させるときには、制御部33は、載置台21の表面付近にあるスプライン14の先端を所定の位置、例えば載置台21上の物品等に衝突しない位置にまで上昇させる。そのために、該スプライン14の先端の現在位置と上記所定の位置との差分を算出する。そして、制御部33は、該差分に応じた駆動信号をモータードライバーから第3モーター13cに出力する。その後、制御部33は、把持位置P1の直上にあるときのエンドエフェクター15の現在位置と記憶部34に記憶された搬送位置とを結ぶ軌道を計算するとともに、該軌道に沿ってエンドエフェクター15を移動させるための各モーター11a,13aの駆動量を算出する。なお、エンドエフェクター15の現在位置は、上述のように第1エンコーダー11b及び第2エンコーダー13bの出力信号に基づいて算出される。そして、制御部33は、各モーター11a,13aに対して、各々の駆動量に対応する駆動信号をモータードライバーに出力させる。
【0044】
こうしてロボットコントローラー30により動作の制御されたロボット10は、上記把持位置P1から搬送位置へワークWを搬送しているときに、エンドエフェクター15にワークWを把持した状態で上記カメラ22の撮像領域を横切る。
【0045】
[トリガー信号の生成方法]
次に、上記光学センサー23によるトリガー信号の生成について図2を参照して説明する。図2に示されるように、上記カメラ22の撮像領域22aは、上記ワークWの全体を収めることが可能な大きさであって、例えば矩形平面状をなしている。上述のように、撮像領域22aは、エンドエフェクター15に把持されたワークWをその直下から収められるように上記カメラ22が配置される。そのため、ロボット10の移動中に、ワークWを把持したエンドエフェクター15が、撮像領域22aを横切ることになる。
【0046】
撮像領域22aの近傍には、上記検出光線23cが撮像領域22aを横切るように、光学センサー23が配置される。つまり、光学センサー23を構成する投光部23aと受光部23bとが、撮像領域22aを挟んで対向するように配置されている。また、投光部23aと受光部23bとは、ワークWの端部のいずれが検出光線23cを超えたとしても、ワークWの端部が検出光線23cを超えたときに該ワークWの全体を撮像領域22a内に収められる位置に配置される。
【0047】
なお、撮像領域22aを横切るワークWの面積は、エンドエフェクター15の先端の全体を覆ってしまう大きさである。そのため、エンドエフェクター15は、ワークWによって上記カメラ22に対して光学的に遮蔽されることになる。それゆえに、カメラ22によって撮像された画像中には、ワークWのみが写ることになる。
【0048】
上記エンドエフェクター15に把持されたワークWがカメラ22によって撮像されるときには、まず、該ワークWが、把持位置P1から搬送位置に搬送される途中で、上記撮像領域22a内に進入する。そして、ワークWの一端が検出光線23cを横切ると、投光部23aから出力された光がワークWによって遮られることで、投光部23aの出力した光は、受光部23bによって受光されなくなる。これにより、受光部23bは、カメラ22において撮像を開始させるためのトリガー信号であるとともに、ロボットコントローラー30のI/O31において第1エンコーダー11b及び第2エンコーダー13bの各々からのデータの取得が開始されるためのトリガー信号を生成する。そして、受光部23bは、カメラ22とロボットコントローラー30のI/O31とに共通する一つのトリガー信号を出力する。次いで、カメラ22における撮像と、ロボットコントローラー30のI/O31における上記信号の取得とが、共通のトリガー信号に基づいて開始される。これにより、I/O31は、ワークWの撮像時におけるエンドエフェクター15の位置を取得することができる。
【0049】
[ロボットの位置検出処理]
以下に、ロボット10、特にロボット10の有するエンドエフェクター15の位置を検出するために、ロボットコントローラー30、光学センサー23、及びカメラ22に跨って行われる処理の手順について図3を参照して説明する。
【0050】
該処理においては、まず、ロボットコントローラー30が、第1アーム12と第2アーム13とを動作させることにより、始点にあるロボット10のエンドエフェクター15を把持位置P1に移動させる。そして、エンドエフェクター15が把持位置P1に移動すると、図3に示されるように、ロボットコントローラー30は、エンドエフェクター15にワークWを把持させた後、ロボット10による把持位置P1から搬送位置へのワークWの搬送を開始させる(ステップS1)。
【0051】
そして、ロボット10の移動中に、ワークWの一端がカメラ22の撮像領域22aに進入して、光学センサー23の検出光線23cを横切ると、つまり、エンドエフェクター15が撮像位置P2、あるいは撮像位置P2の近傍に到達すると、投光部23aの出力した光は、ワークWに遮られることで受光部23bにまで到達しなくなる。これにより、光学センサー23は、エンドエフェクター15に把持されたワークWが、撮像位置P2に到達したことを検出する。こうして、光学センサー23の受光部23bは、光を受信できないことを契機に一つのトリガー信号を生成した後、該トリガー信号をロボットコントローラー30のI/O31とカメラ22とに出力する(ステップS2)。
【0052】
上記トリガー信号をI/O31を介して受信した制御部33は、第1エンコーダー11b及び第2エンコーダー13bの各々から所定の検出周期毎に入力されるデータのうち、最新のデータをI/O31を介して得る(ステップS3−1)。そして、ロボットコントローラー30の制御部33が、ステップS3−1にて取得した信号と、上記記憶部34に記憶されたロボットデータ34aとに基づいてエンドエフェクター15の位置を算出する。また、ロボットコントローラー30の受信したトリガー信号と共通するトリガー信号を受信したカメラ22は、シャッターを切ることによって撮像領域22a内に収められたワークWを撮像する(ステップS3−2)。
【0053】
次いで、ロボットコントローラー30は、カメラ22に対して共通するトリガー信号によって開始した撮像によるデータを該ロボットコントローラー30の画像処理部32に対して出力するようにカメラ22に要求する(ステップS4)。こうした要求を受信したカメラ22は、画像処理部32に対して上記撮像データを出力する(ステップS5)。画像処理部32による撮像データの受信が完了すると、該画像処理部32は、撮像データに基づいてワークWの重心Waの位置を算出する(ステップS6)。
【0054】
ロボットコントローラー30の制御部33は、先に算出したエンドエフェクター15の位置とワークWの重心Waの位置とを対応付けた相関データ34bを生成する(ステップS7)。さらに、制御部33は、上記ワークWの重心Waの位置とエンドエフェクター15の位置との差分を算出した上で、該差分と上述した対応関係とに基づいてワークWを搬送すべき目標位置を補正する(ステップS8)。
【0055】
以上説明した上記実施形態によれば、以下に列挙する効果が得られるようになる。
(1)エンドエフェクター15の位置を検出するためのトリガー信号によって、カメラ22がエンドエフェクター15の撮像を開始し、且つ、ロボットコントローラー30のI/O31が、第1モーター11a及び第2モーター13aの駆動量の取得を開始するようにした。すなわち、カメラ22とI/O31とが、共通するトリガー信号で駆動されるようにした。それゆえに、移動中のロボット10の把持するワークWが撮像対象であっても、I/O31に入力されるトリガー信号とカメラ22に入力されるトリガー信号とが共通する以上、カメラ22にて撮像された画像と、I/O31にて取得された最新の駆動量とが、時間軸上において近いものとなる。それゆえに、移動中のロボット10から得られる2つの情報、すなわち、画像から得られるロボット10のエンドエフェクター15の位置と該位置における第1モーター11aと第2モーター13aの駆動量とが、時間軸上で近いものとして互いに対応付けられることとなる。そして、このような対応付けが移動中のロボット10に対して行われるため、エンドエフェクター15の位置を検出するためにロボット10が停止している期間やロボット10が停止した後に再加速するための期間などを縮める、あるいは無くすことが可能である。したがって、ロボット10が有する第1モーター11a及び第2モーター13aの駆動量と実際のロボット10の状態とを画像に基づいて対応付ける処理の効率を高めることが可能である。
【0056】
(2)ロボット10の把持するワークWが検出光線23cを超えたときに、カメラ22とI/O31とが駆動されるようにした。それゆえに、カメラ22の撮像する画像とI/O31の取得する駆動量とは、常に、ロボット10の把持するワークWが所定の位置に到達したときのものとなる。このような構成であれば、カメラ22の撮像する画像が、上記トリガー信号の都度、互いに大きく異なるものとはなり難くなる。それゆえに、カメラ22にて撮像された画像からワークWの位置を算出する処理の態様を予め簡単な構成とすることが可能であり、また、このような画像の処理によって得られる結果の精度、すなわちワークWの重心Waの位置の精度を高めることが可能でもある。
【0057】
(3)カメラ22の撮像対象が撮像領域22aの検出光線23cを超えたときに、カメラ22とI/O31とが駆動されるようにした。そのため、カメラ22の撮像する画像にワークWが含まれること、さらには、ワークWの重心Waの位置を算出することが可能な程度にワークWが撮像されることをより確実なものとすることが可能である。したがって、画像の処理によって得られる結果の精度、すなわち撮像対象の位置の精度をさらに高めることが可能である。
【0058】
(4)カメラ22が撮像するワークWの画像に基づいて、ワークWの重心Waの位置が算出される一方、I/O31が取得する上記駆動量に基づいて、エンドエフェクター15の位置が算出されるようにした。それゆえに、カメラ22によってエンドエフェクター15を撮像することが不可能な場合であっても、ワークWの位置と該ワークWを把持するエンドエフェクター15の位置とを対応付けることが可能である。すなわち、カメラ22によってエンドエフェクター15の位置を検出することが不可能な場合であっても、エンドエフェクター15とワークWとの相対位置を把握することが可能である。その結果、エンドエフェクター15とワークWとの双方が撮像されるようにカメラ22を配置するという煩わしさを軽減することが可能である。さらには、カメラ22の撮像領域22aをワークWに特化した位置に設計することが可能になるため、画像から算出されるワークWの重心Waの位置の精度を高めることが可能にもなる。
【0059】
(5)ロボットコントローラー30の記憶部34が、ワークWの目標位置、例えば把持位置P1や搬送位置と、第1モーター11a及び第2モーター13aの駆動量とを対応付けて記憶するようにした。また、記憶部34が記憶するエンドエフェクター15の重心Waの位置と駆動量との対応関係に基づいて上記目標位置と該目標位置に到達するための駆動量との対応関係を補正する補正部として機能する制御部33を備えるようにした。これにより、ロボット10が有する第1モーター11a及び第2モーター13aの駆動量と実際のロボット10の状態とを画像に基づいて対応付けるとともに、その対応関係に基づいて第1モーター11a及び第2モーター13aの駆動量を補正することが可能である。
【0060】
なお、上記実施形態は、以下のように適宜変更して実施することもできる。
・ワークWは静止した載置台21に限らず、例えばコンベアーのように時間の経過とともにワークWの位置が移動するような場所に載置されるものであってもよい。
【0061】
・撮像領域22a内にワークWの全体と該ワークWに覆われたエンドエフェクター15とが収まるように、カメラ22の位置、撮像領域22aの大きさ、及び光学センサー23の位置を設定するようにした。これに限らず、例えば図4に示されるように、カメラ22の撮像時に、エンドエフェクター15が撮像領域22a内に収まっておらず、ワークWの一部のみが撮像領域22a内に収まるように、カメラ22の位置、撮像領域22aの大きさ、及び光学センサー23の位置を設定するようにしてもよい。この場合、ロボットコントローラー30の記憶部34に、ワークWの形状に関する情報が予め記憶されていれば、カメラ22によって撮像されたワークWの一部分から、該ワークWの重心Waの位置を算出することが可能である。
【0062】
・ワークWの位置として、該ワークWの重心Waの位置を算出するようにしたが、重心Wa以外の任意の位置を算出するようにしてもよい。
・ロボット10は、水平多関節ロボットとして具現化したが、これ以外のロボット、例えば垂直多関節ロボットとして具現化するようにしてもよい。
【0063】
・上記カメラ22は、ワークWを撮像することが可能であれば、ロボット10に搭載するようにしてもよい。例えば、ワークを把持するエンドエフェクターの先端と基台と第1アームとの連結部分である第1間接とが位置ずれするようなロボットであれば、該ロボットの第1アームにカメラを搭載するようにしてもよい。
【0064】
・カメラ22の撮像対象は、ワークWとエンドエフェクター15との双方であってもよく、あるいはエンドエフェクター15のみであってもよい。このうち、カメラ22の撮像対象がワークWとエンドエフェクター15との双方である場合には、カメラ22が撮像した画像からワークWとエンドエフェクター15との双方の位置を算出することが可能である。そのため、第1モーター11aの駆動量及び第2モーター13aの駆動量に基づくロボット10又はエンドエフェクター15の位置と、画像に基づくワークW及びエンドエフェクター15の位置とを対応付けることが可能である。また、カメラ22の撮像対象がエンドエフェクター15である場合には、カメラ22が撮像した画像に基づくエンドエフェクター15の位置と、上記駆動量に基づくエンドエフェクター15の位置とを対応付けることが可能である。
【0065】
・光学センサー23がエンドエフェクター15の位置を検出する位置は、カメラ22の撮像領域22aとは異なる位置であってもよい。要するに、撮像対象が撮像領域22aを移動することを検出可能な位置であればよく、例えばエンドエフェクター15の軌道における上記撮像領域22aに対する前方位置であってもよい。このような構成であっても、エンドエフェクター15が前方位置に到達すれば、該エンドエフェクター15がその軌道に沿って移動する以上、該エンドエフェクター15がいつ撮像領域22a内を移動するかを概ね把握することは可能である。そして、光学センサー23がエンドエフェクター15の位置を検出した後、撮像対象が撮像領域22a内に侵入するような所定の時間だけ、光学センサー23がトリガー信号の出力を遅らせる構成であればよい。
【0066】
・上記ロボットコントローラー30では、ロボット10の軌道を予め計算する軌道計算処理の結果に基づいて、撮像対象が撮像領域22a内を移動するタイミングを推定するようにしてもよい。加えて、同ロボットコントローラー30が、上記推定されたタイミングにてカメラ22とI/O31とに共通のトリガー信号を出力するという構成であってもよい。
【0067】
・カメラ22が撮像を開始する指令としてのトリガー信号を受けてから画像を撮像するまでの時間である撮像時間は、I/O31が取得を開始する指令としてのトリガー信号を受けてから駆動量を取得するまでの時間である取得時間よりも大幅に長くなる場合がある。こうした場合には、カメラ22にトリガー信号を入力するタイミングを取得部にトリガー信号を入力するタイミングよりも先行させるとともに、こうしたタイミングの差によって撮像時間と取得時間との差を補うことが好ましい。
【0068】
・カメラ22とI/O31とに入力される共通のトリガー信号は、ロボットコントローラー30の外部で生成されるトリガー信号に限らず、ロボットコントローラー30の内部で生成される内部のトリガー信号であってもよい。要は、トリガー信号は、撮像対象が撮像領域22a内に侵入するタイミングで生成される信号であればよい。
【符号の説明】
【0069】
10,40…水平多関節ロボット(ロボット)、11,41…基台、11a,41a…第1モーター、11b…第1エンコーダー、12,42…第1アーム、12a…第1回転軸、12b…第2回転軸、13,43…第2アーム、13a,43a…第2モーター、13b…第2エンコーダー、13c…第3モーター、14,44…スプライン、15,45…エンドエフェクター、21,51…載置台、22,52…カメラ、22a…撮像領域、23…光学センサー、23a…投光部、23b…受光部、30,60…ロボットコントローラー、31,62…I/O、32,63…画像処理部、33,61…制御部、34,64…記憶部、34a…ロボットデータ、34b…相関データ、64a…撮像位置データ記憶部、P1…把持位置、P2…撮像位置、W…ワーク、Wa…重心。

【特許請求の範囲】
【請求項1】
ロボットの移動中に撮像対象である前記ロボット及び該ロボットの保持するワークの少なくとも一方を撮像する撮像部と、
前記撮像対象の位置を撮像された画像から算出する算出部と、
前記ロボットの駆動源における駆動量を取得する取得部と、
前記撮像対象の算出位置と前記駆動量とを対応付けて記憶する記憶部とを備え、
前記撮像部及び前記取得部には、
前記撮像対象の位置を検出するための共通のトリガー信号が入力され、
前記撮像部は、前記トリガー信号によって前記撮像対象の撮像を開始し、
前記取得部は、前記トリガー信号によって前記駆動量の取得を開始する
ことを特徴とするロボット用位置検出装置。
【請求項2】
前記ロボット又は該ロボットの保持するワークが所定の位置に到達したか否かを前記ロボットの外部で検出し、該検出の対象が前記所定の位置に到達したときに、前記撮像部と前記取得部とに前記共通のトリガー信号を出力する指令出力部を備える
請求項1に記載のロボット用位置検出装置。
【請求項3】
前記指令出力部による検出の対象は、前記撮像部の前記撮像対象であり、
前記指令出力部は、前記検出の対象が前記撮像部の撮像領域に到達したか否かを検出する
請求項2に記載のロボット用位置検出装置。
【請求項4】
前記撮像対象は、前記ワークであり、
前記撮像部の撮像領域では、前記ワークを把持するエンドエフェクターが前記ワークによって前記撮像部に対して光学的に遮蔽されている
請求項1〜3のいずれか一項に記載のロボット用位置検出装置。
【請求項5】
前記記憶部は、前記撮像対象の目標位置と前記駆動源の駆動量とを対応付けて記憶し、
前記記憶部が記憶する前記算出位置と前記駆動量との対応関係に基づいて前記目標位置と前記目標位置に到達するための駆動量との対応関係を補正する補正部を備える
請求項1〜4のいずれか一項に記載のロボット用位置検出装置。
【請求項6】
ワークを搬送するロボットと、
前記ロボットの位置又は前記ロボットが搬送するワークの位置を検出するロボットの位置検出装置と
を備えるロボットシステムであって、
前記ロボットの位置検出装置が請求項1〜5のいずれか一項に記載のロボットの位置検出装置であることを特徴とするロボットシステム。
【請求項7】
ロボットの移動中に撮像対象である前記ロボット及び該ロボットの保持するワークの少なくとも一方を撮像する工程と、
前記撮像対象の位置を撮像された画像から算出する工程と、
前記ロボットの駆動源における駆動量を取得する工程と、
前記撮像対象の算出位置と前記駆動量とを対応付けて記憶する工程とを含み、
前記撮像対象を撮像する工程と前記駆動量を取得する工程とを撮像対象の位置を検出するための共通のトリガー信号により開始する
ことを特徴とするロボット用位置検出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−166314(P2012−166314A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2011−29904(P2011−29904)
【出願日】平成23年2月15日(2011.2.15)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】