(58)【調査した分野】(Int.Cl.,DB名)
前記制御装置は、前記位置判定部によって前記対象物の検出位置又は前記補正位置が前記検出範囲内でないと判定された場合に、前記動作制御部で用いられる前記機械座標系上の前記対象物の検出位置又は前記補正量が正しくないことを外部に報知する報知制御部を更に備える、請求項1〜3のいずれか1項に記載の制御システム。
前記制御装置は、前記位置判定部によって前記対象物の検出位置又は前記補正位置が前記検出範囲内でないと判定された場合に、前記機械の動作を停止させる停止制御部を更に備える、請求項1〜3のいずれか1項に記載の制御システム。
【発明を実施するための形態】
【0016】
以下、添付の図面を参照して本発明の実施形態の一例について説明する。なお、各図面において同一又は相当の部分に対しては同一の符号を附すこととする。
【0017】
(第1実施形態)
図1は、第1実施形態に係るロボットシステムの構成を示す図である。
図1に示すロボットシステム(制御システム)1は、ロボット(機械)2と、視覚センサ(撮像装置)4と、視覚センサ制御装置20及びロボット制御装置30で構成される制御装置10とを備える。ロボットシステム1は、例えば、視覚センサ4で撮像されたワーク(対象物)Wの画像に基づいて、ワークWの位置を認識し、ワークWのハンドリング又は加工などの所定の作業を行うシステムである。
【0018】
ロボット2のアーム3の先端部には、ハンド又はツールが取り付けられている。ロボット2は、ロボット制御装置30の制御により、ワークWのハンドリング又は加工などの所定の作業を行う。また、ロボット2のアーム3の先端部には、視覚センサ4が取り付けられている。
【0019】
視覚センサ4は、視覚センサ制御装置20の制御により、ワークWを撮像する。なお、本実施形態では、撮像装置の一例として視覚センサを挙げたが、これに限定されない。例えば、視覚センサに代えて、一般的なカメラが用いられてもよいし、3次元計測ができるステレオカメラ等が用いられてもよい。
【0020】
視覚センサ制御装置20は、視覚センサ4を制御する。また、視覚センサ制御装置20は、視覚センサ4で撮像されたワークWの画像から、ワークWの位置及び姿勢を検出する。
【0021】
ロボット制御装置30は、ロボットの動作プログラムを実行し、ロボット2の動作を制御する。その際、ロボット制御装置30は、視覚センサ制御装置20によって検出されたワークWの位置に対してロボット2が所定の作業を行うように、ロボット2の動作を補正する。
【0022】
また、ロボット制御装置30は、視覚センサ4の撮像時、視覚センサ4の位置及び姿勢を制御するように、ロボット2の位置及び姿勢を制御する。このように、ロボットシステム1では、ワークWの位置及び姿勢を固定とし、視覚センサ4の位置及び姿勢を制御することにより、ワークW及び視覚センサ4の相対位置を制御する。
以下、制御装置10、すなわち視覚センサ制御装置20及びロボット制御装置30について詳細に説明する。
【0023】
図2は、第1実施形態に係るロボットシステム1における制御装置10、すなわち視覚センサ制御装置20及びロボット制御装置30の構成を示す図である。視覚センサ制御装置20は、記憶部21と画像処理部22とを備え、画像処理部22は、位置変換部23と、検出範囲計算部24と、位置判定部25とを備える。ロボット制御装置30は、動作制御部31と、報知制御部32と、停止制御部33とを備える。なお、位置変換部23、検出範囲計算部24、位置判定部25、報知制御部32及び停止制御部33は、制御装置10内に構成されればよく、視覚センサ制御装置20及びロボット制御装置30のいずれに構成されてもよい。
【0024】
視覚センサ制御装置20における記憶部21は、例えばEEPROM等の書き換え可能なメモリである。
視覚センサ制御装置20における画像処理部22及びロボット制御装置30は、例えば、DSP(Digital Signal Processor)、FPGA(Field‐Programmable Gate Array)等の演算プロセッサで構成される。視覚センサ制御装置20における画像処理部22及びロボット制御装置30の各種機能は、例えば記憶部に格納された所定のソフトウェア(プログラム、アプリケーション)を実行することで実現される。視覚センサ制御装置20における画像処理部22及びロボット制御装置30の各種機能は、ハードウェアとソフトウェアとの協働で実現されてもよいし、ハードウェア(電子回路)のみで実現されてもよい。
【0025】
記憶部21は、ワークWの像をモデル化したモデルパターン、例えばワークWの像の特徴を表すモデルパターンを記憶する。また、記憶部21は、視覚センサ4のキャリブレーションデータ、例えば画像座標系上での2次元位置を3次元座標での値に変換又はその逆の変換のためのキャリブレーションデータを記憶する。キャリブレーションデータの形式及びそれを求める方法については、種々の方式が提案されており、いずれの方式を用いてもよい(例えば、非特許文献1等参照)。
【0026】
位置変換部23は、視覚センサ4によって撮像された画像から、ワークWを検出する。位置変換部23は、記憶部21に記憶されたモデルパターン及びキャリブレーションデータと、撮像時のロボット2のアーム3の先端部の位置(すなわち、視覚センサ4の位置)とに基づいて、画像座標系(2次元)上のワークWの検出位置又はセンサ座標系(3次元)上のワークWの検出位置を、ロボット座標系(3次元)上のワークWの検出位置に変換する。画像座標系とは画像上で定義された座標系(2次元)であり、センサ座標系とは視覚センサ4からみた座標系(3次元)である。ロボット座標系(機械座標系)とはロボット2からみた座標系(3次元)である。
【0027】
動作制御部31は、ロボット座標系上のワークWの検出位置に対してロボット2が所定の作業を行うように、ロボット2の動作を制御及び補正する。このような補正としては、絶対位置補正と相対位置補正とがある。絶対位置補正では、動作制御部31は、ロボット座標系上のワークWの検出位置に基づいて、ロボット2のアーム3の先端部の移動を補正する。一方、相対位置補正では、予め基準となるワークWの位置(基準位置)を定めておく。動作制御部31は、ロボット座標系上のワークWの基準位置とロボット座標系上のワークWの検出位置との差分を補正量として計算し、予め教示されたロボット2の動作にその補正量をかけて、ロボット2のアーム3の先端部の移動を補正する。
【0028】
ここで、外部からの攻撃、設定のミス、ソフトウェアの不具合等の要因により、ロボット2の動作補正(動作制御)のためのワークWの検出位置又は補正量が正しくない検出位置又は補正量になることがある。すると、ロボットの動作に正しくない補正(制御)が行われ、人又は周辺装置に危害を加えてしまうことがある。
【0029】
そこで、本実施形態では、動作制御部31で用いられるロボット座標系上のワークWの検出位置、又はロボット座標系上のワークWの基準位置と補正量とに基づく補正位置が物理的に妥当な位置であるか否かを確認する。視覚センサ4によって撮像されたワークWであれば、ワークWの検出位置又は補正位置が撮像範囲外となることはない。よって、ワークWの検出位置又は補正位置が撮像範囲内であるか否かをロボット座標系においてチェックし、ワークWの検出位置又は補正位置が範囲外であれば、ロボット2がその位置に移動しないようにする。具体的には、本実施形態の制御装置10は、検出範囲計算部24と、位置判定部25と、報知制御部32と、停止制御部33とを備える。
【0030】
検出範囲計算部24は、画像座標系上又はセンサ座標系上の画像内の予め定められた検出範囲と、撮像時のロボット2のアーム3の先端部の位置(すなわち、視覚センサ4の位置)とに基づいて、ロボット座標系上の妥当な検出範囲を計算する。画像内の予め定められた検出範囲は、画像全体でもよいし、画像の一部でもよい。
【0031】
図3は、妥当な検出範囲の求め方の一例を説明するための図である。
図3では、画像内の予め定められた検出範囲が矩形状である場合の一例を示す。
ここで、キャリブレーションデータが求められていると、ロボット座標系における3次元点(注視点)が与えられた時に、その3次元点の視覚センサの画像上での像の位置、すなわち画像座標系における2次元点を計算することができる。また、ある注視点の像である画像座標系における2次元点が与えられた時に、ロボット座標系における視線(注視点と視覚センサの焦点を通る3次元直線)を計算することができる。
【0032】
まず、検出範囲計算部24は、画像座標系上又はセンサ座標系上の画像内の予め定められた検出範囲の4隅の位置を取得する。次に、検出範囲計算部24は、取得した検出範囲の4隅の位置と、撮像時のロボット2のアーム3の先端部の位置(すなわち、視覚センサ4の位置)とに基づいて、各位置を視覚センサ4の注視点としたときのロボット座標系上での視覚センサ4の視線を求める。次に、検出範囲計算部24は、隣り合う視線同士を結ぶ4つの境界面を求める。次に、検出範囲計算部24は、4つの境界面の内側を、ロボット座標系上の妥当な検出範囲とする。
【0033】
このような範囲は、下側がオープンな無限範囲である。よって、このような範囲は、予め定められた平面を境界面として下側がクローズされた有限範囲とされてもよい。例えば、床面をロボット座標系において平面として定義して、これを下側の境界面としてもよい。
なお、検出範囲は、矩形状に限定されない。例えば、検出範囲が円状である場合、注視点が4つだけでは十分でなく、さらに細かく注視点及び境界面を取ってもよい。(実際にはレンズ歪等の影響があるので、正確には視線同士を単純に結ぶのは正しくない。より正確に検出範囲を求めるためには、注視点をより細かい単位で設定すればよい。)
更にワークがある平面上を2次元的にしか移動しないということが分かっているのであれば、その平面上の境界面で切断した内側の領域が妥当な検出範囲となる。
【0034】
位置判定部25は、例えばロボットが動作する直前に、ロボット座標系上のワークWの検出位置が妥当な範囲内であるか否かを判定する。例えば、動作制御部31が絶対位置補正を行う場合、位置判定部25は、検出位置そのものが妥当な範囲かどうかチェックすればよい。一方、動作制御部31が相対位置補正を行う場合、検出位置そのものをチェックしてもよいし、基準位置に対して補正量をかけた値が妥当な範囲かどうかをチェックしてもよい。
【0035】
具体的には、位置判定部25は、ロボット座標系上のワークWの検出位置が、ロボット座標系上の検出範囲内であるか否かを判定する。或いは、位置判定部25は、ロボット座標系上のワークWの基準位置と補正量とに基づく補正位置が、ロボット座標系上の検出範囲内であるか否かを判定する。
【0036】
報知制御部32は、ロボット座標系上のワークWの検出位置又は補正位置が妥当な検出範囲内でない場合、動作制御部31で用いられるロボット座標系上のワークWの検出位置又は補正量が正しくないことをユーザに報知する。報知制御部32は、例えばディスプレイ等の表示装置を用いて報知を行う。
【0037】
停止制御部33は、ロボット座標系上のワークWの検出位置又は補正位置が妥当な検出範囲内でない場合、動作制御部31で用いられるロボット座標系上のワークWの検出位置又は補正量が正しくないので、ロボット2の動作を停止させる。
【0038】
次に、ロボットシステム1における制御装置10、すなわち視覚センサ制御装置20及びロボット制御装置30によるワーク検出位置判定動作について説明する。
【0039】
まず、視覚センサ制御装置20は、ワークWが視覚センサ4の撮像範囲に入るようにロボット2のアーム3の先端部を移動させ、視覚センサ4によってワークWを撮像する。このとき、視覚センサ制御装置20は、撮像時のロボット2のアーム3の先端部の位置を記録しておく。
【0040】
次に、視覚センサ制御装置20における画像処理部22は、撮像された画像における予め定めた検出範囲の中から、公知の画像処理等を用いてワークWを検出する。これにより、画像処理部22は、画像座標系上又はセンサ座標系上のワークWの位置及び姿勢を取得する。
【0041】
次に、視覚センサ制御装置20における位置変換部23は、記憶部21に記憶されたモデルパターン及びキャリブレーションデータと、撮像時のロボット2のアーム3の先端部の位置(すなわち、視覚センサ4の位置)を用いて、画像座標系上又はセンサ座標系上のワークWの検出位置を、ロボット座標系上のワークWの検出位置に変換する。
【0042】
次に、視覚センサ制御装置20における検出範囲計算部24は、上述及び
図3のように、画像座標系上又はセンサ座標系上の画像内の予め定められた検出範囲と、撮像時のロボット2のアーム3の先端部の位置(すなわち、視覚センサ4の位置)とに基づいて、ロボット座標系上の妥当な検出範囲を計算する。
【0043】
ロボットを動作させる直前、視覚センサ制御装置20における位置判定部25は、ロボット制御装置30における動作制御部31で用いられるロボット座標系上のワークWの検出位置が妥当な検出範囲であるか否かを判定する。例えば、動作制御部31が絶対位置補正を行う場合、位置判定部25は、ロボット座標系上のワークWの検出位置が、ロボット座標系上の検出範囲内であるか否かを判定する。一方、動作制御部31が相対位置補正を行う場合、位置判定部25は、ロボット座標系上のワークWの基準位置と補正量とに基づく補正位置が、ロボット座標系上の検出範囲内であるか否かを判定する。
【0044】
ロボット座標系上のワークWの検出位置又は補正位置が妥当な検出範囲内である場合、ロボット2の動作を開始する。このとき、ロボット制御装置30における動作制御部31は、ロボット座標系上のワークWの検出位置に対して所定の作業を行うように、ロボット2の動作を制御及び補正する。絶対位置補正では、動作制御部31は、ロボット座標系上のワークWの検出位置に基づいて、ロボット2のアーム3の先端部の移動を補正する。一方、相対位置補正では、動作制御部31は、ロボット座標系上のワークWの基準位置とロボット座標系上のワークWの検出位置との差分を補正量として計算し、予め教示されたロボット2の動作にその補正量をかけて、ロボット2のアーム3の先端部の移動を補正する。
【0045】
一方、ロボット座標系上のワークWの検出位置又は補正位置が妥当な検出範囲内でない場合、ロボット制御装置30における報知制御部32は、動作制御部31で用いられるロボット座標系上のワークWの検出位置又は補正量が正しくないことをユーザに報知する。これにより、ユーザに注意を促すことができる。
また、ロボット制御装置30における停止制御部33は、ロボット2の動作を停止する。
【0046】
以上説明したように、本実施形態のロボットシステム1は、画像座標系上又はセンサ座標系上の画像内の予め定められた検出範囲に基づいて、ロボット座標系上の検出範囲を計算する検出範囲計算部24と、ロボット座標系上のワークWの検出位置、又はロボット座標系上のワークWの基準位置と補正量とに基づく補正位置が、ロボット座標系上の検出範囲内であるか否かを判定する位置判定部25とを備える。これにより、本実施形態のロボットシステム1によれば、位置判定部25によって、ロボット座標系上のワークWの検出位置、又はロボット座標系上のワークWの基準位置と補正量とに基づく補正位置が、ロボット座標系上の検出範囲内でないと判定された場合に、ロボット2の動作補正(動作制御)のためのワークWの検出位置又は補正量が正しくないことを検出することができる。
【0047】
また、本実施形態のロボットシステム1は、位置判定部25によってワークWの検出位置又は補正位置が検出範囲内でないと判定された場合に、動作制御部31で用いられるロボット座標系上のワークWの検出位置又は補正量が正しくないことを外部に報知する報知制御部32を備える。これにより、本実施形態のロボットシステム1によれば、何らかの要因により、ロボットの動作補正(動作制御)のためのワークWの検出位置又は補正量が正しくない検出位置又は補正量になっても、ロボット2の移動量を最小限に抑制することができる。その結果、ロボット2の動作に正しくない補正(制御)が行われることを抑制することができ、人又は周辺装置に危害を加えてしまうことを抑制することができる。
【0048】
また、本実施形態のロボットシステム1は、位置判定部25によってワークWの検出位置又は補正位置が検出範囲内でないと判定された場合に、ロボット2の動作を停止させる停止制御部33を備える。これにより、本実施形態のロボットシステム1によれば、何らかの要因により、ロボットの動作補正(動作制御)のためのワークWの検出位置又は補正量が正しくない検出位置又は補正量になった場合に、ロボット2の動作を抑制することができる。その結果、人又は周辺装置に危害を加えてしまうことを抑制することができる。
【0049】
(変形例1)
第1実施形態では、ロボット座標系においてワークWの検出位置が妥当な範囲内であるか否かの判定を行ったが、センサ座標系においてワークWの検出位置が妥当な範囲内であるか否かの判定を行ってもよい。
【0050】
変形例1のロボットシステム1では、第1実施形態のロボットシステム1において、視覚センサ制御装置20における位置変換部23及び位置判定部25の機能及び動作が異なる。また、変形例1のロボットシステム1では、視覚センサ制御装置20における検出範囲計算部24を備えていなくともよい。
【0051】
位置変換部23は、位置再変換部として機能し、変換したロボット座標系上のワークWの検出位置、又はロボット座標系上のワークWの基準位置と補正量とに基づく補正位置を、センサ座標系上のワークWの検出位置又は補正位置に再変換する。
【0052】
位置判定部25は、再変換されたセンサ座標系上のワークWの検出位置又は補正位置が、センサ座標系上の画像内の予め定められた検出範囲内であるか否かを判定する。
【0053】
ここで、上述したように画像内の予め定められた検出範囲が円状等の複雑な形状である場合、検出範囲計算部24によるロボット座標系上の検出範囲の計算が複雑となる。また、
図4に示すように画像内において検出しない範囲をマスクすることがある。このような場合にも、画像内の予め定められた検出範囲が複雑な形状となり、検出範囲計算部24によるロボット座標系上の検出範囲の計算が複雑となる。
【0054】
この点に関し、変形例1のロボットシステム1によれば、検出範囲計算部24によるロボット座標系上の検出範囲の複雑な計算が不要となる。
【0055】
(変形例2)
また、画像座標系においてワークWの検出位置が妥当な範囲内であるか否かの判定を行ってもよい。
【0056】
変形例2のロボットシステム1では、第1実施形態のロボットシステム1において、視覚センサ制御装置20における位置変換部23及び位置判定部25の機能及び動作が異なる。また、変形例2のロボットシステム1では、視覚センサ制御装置20における検出範囲計算部24を備えていなくともよい。
【0057】
位置変換部23は、位置再変換部として機能し、変換したロボット座標系上のワークWの検出位置、又はロボット座標系上のワークWの基準位置と補正量とに基づく補正位置を、画像座標系上のワークWの検出位置又は補正位置に再変換する。
【0058】
位置判定部25は、再変換された画像座標系上のワークWの検出位置又は補正位置が、画像座標系上の画像内の予め定められた検出範囲内であるか否かを判定する。
【0059】
この変形例2のロボットシステム1でも、検出範囲計算部24によるロボット座標系上の検出範囲の複雑な計算が不要となる。
【0060】
(第2実施形態)
第1実施形態では、1つの視覚センサ4がロボット2のアーム3の先端部に取り付けられ、移動される形態を例示した。第2実施形態では、2つの視覚センサ4が固定設置される形態を例示する。
【0061】
図5は、第2実施形態に係るロボットシステム1の構成を示す図である。
図5に示すロボットシステム1は、
図1に示すロボットシステム1と比較して、視覚センサ4を2つ備え、これらの視覚センサ4が固定設置されている点で異なる。
【0062】
ワークWが1つの視覚センサ4の視野に収まらないほど大きい場合、各視覚センサ4でワークWの端部の特徴を検出し、例えば検出した2か所の中点をワークW全体の検出位置とする。例えば、位置変換部23は、
図6に示すように、視覚センサ4ごとに、撮像された画像からワークWの端部を検出し、検出した画像座標系上又はセンサ座標系上のワークWの端部の検出箇所を、ロボット座標系上のワークWの端部の検出箇所に変換する。位置変換部23は、ロボット座標系上のワークWの端部の検出箇所の中点を、ロボット座標系上のワークWの検出位置とする。
【0063】
このとき、第1実施形態のように、画像内の予め定められた検出範囲又は撮像範囲の内側を、妥当な検出範囲とすることができない。この場合、
図6に示すように、第1実施形態と同様の手法で各視覚センサ4の妥当な検出範囲を求め、各妥当な検出範囲内で、各検出箇所が検出されるとしたときに、上述のように求めたワークWの中点(検出位置)がどのような範囲を動きうるのかを求め、それをワークW全体の検出位置の妥当な検出範囲とすることができる。
【0064】
換言すれば、例えば長尺形状のワークWの両端部を各視覚センサ4で検出し、その中点等を検出位置とする場合には、合成された検出位置が画像の範囲外となりえる。しかし、それは画像の範囲外であることが問題ない場合であり、別のチェックを行う必要がある。この場合でも、合成された検出位置は二つの撮像範囲を結ぶ領域内には入ることになり、そのようなチェックをすることは可能である。
【0065】
例えば、検出範囲計算部24は、視覚センサ4ごとに、画像座標系上又はセンサ座標系上の画像内の予め定められた検出範囲に基づいて、ロボット座標系上の検出範囲を計算する。
【0066】
位置判定部25は、ロボット座標系上のワークWの検出位置(中点)、又はロボット座標系上のワークWの基準位置と補正量とに基づく補正位置が、ロボット座標系上の2つの検出範囲を結ぶ領域内であるか否かを判定する。
【0067】
この第2実施形態のロボットシステム1によれば、ワークWが1つの視覚センサ4の視野に収まらないほど大きい場合であっても、ロボット2の動作補正のためのワークWの検出位置又は補正量が正しくないことを検出することができる。
【0068】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、種々の変更及び変形が可能である。例えば、上述した第2実施形態では、2つの視覚センサ4が固定設置されるロボットシステム1を例示したが、ロボットシステムは3つ以上の視覚センサが固定設置される形態であってもよい。この場合でも、位置変換部は、視覚センサごとに、撮像された画像からワークの端部を検出し、検出した画像座標系上又はセンサ座標系上のワークの端部の検出箇所を、ロボット座標系上のワークの端部の検出箇所に変換し、ロボット座標系上のワークの端部の検出箇所の重心を、ロボット座標系上のワークの検出位置とすればよい。
また、検出範囲計算部は、視覚センサごとに、画像座標系上又はセンサ座標系上の画像内の予め定められた検出範囲に基づいて、ロボット座標系上の検出範囲を計算する。そして、位置判定部は、ロボット座標系上のワークの検出位置(重心)、又はロボット座標系上のワークの基準位置と補正量とに基づく補正位置が、ロボット座標系上の複数の検出範囲を結ぶ領域内であるか否かを判定すればよい。
【0069】
また、上述した実施形態では、ロボットの動作を制御するロボットシステムを例示した。しかし、本発明はこれに限定されず、対象物に対して所定の作業を行う種々の機械(ロボット、工作機械等)の動作を制御する種々の制御システムに適用可能である。