(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
以下、
図1〜
図3を参照して本発明の実施形態について説明する。
図1は、本発明の実施形態に係る干渉領域設定装置が適用される加工システム100の一例を示す図である。この加工システム100は、ロボット1と工作機械2とを有する。工作機械1はカバー3を有し、カバー3により加工室4が形成されている。カバー3の一部には開閉可能な扉5が設けられ、扉5を介して加工室4内にワークが搬送され、加工室4内でワークが加工される。
【0009】
加工室4には、ロボット1が配置されている。ロボット1は、例えば回動可能な複数のアームを有する垂直多関節ロボットである。ロボット1はサーボモータの駆動により動作し、アーム先端部でワークや治具等を把持して、工作機械2によるワークの加工を補助する。なお、アーム先端部に溶接装置や塗装装置を取り付けてロボット1を溶接ロボットや塗装ロボットとして構成し、加工室4でロボット1によりワークを加工することもできる。ロボット1は、ロボット制御装置10(
図2)に接続され、予め定められたプログラムに従いロボット制御装置10により制御される。作業員がロボット制御装置10にロボット1の駆動指令を入力し、その駆動指令に応じてロボット1を制御することもできる。
【0010】
このように加工室4に配置されたロボット1を、作業員の操作により動作させる場合、ロボット1が工作機械2の一部(加工室4内のテーブルや床、カバー3等)あるいは加工室4に配置された各種部材(以下、これらをまとめて障害物と呼ぶ)に干渉するおそれがある。したがって、予めロボット1の周囲に、障害物が存在する干渉領域を設定し、ロボット制御装置10により、干渉領域内へのロボット1の移動を禁止することが好ましい。
【0011】
干渉領域は、例えば大きさや位置の異なる複数の直方体を、作業員がロボット制御装置10に入力することで設定できる。しかしながら、このように干渉領域を手動で設定したのでは手間がかかる。さらに、直方体の数が入力可能な直方体の数の上限に達した場合には、干渉領域を設定できない。障害物の3Dモデルを用いて干渉領域を設定することもできるが、この場合には、障害物の位置や形状が変化する度に3Dモデルを作り直さなければならず、容易でない。そこで、本実施形態では、以下のように3Dカメラ6により取得したロボット1の周囲のカメラ画像を用いて干渉領域を設定する。
【0012】
3Dカメラ6とは、対象物を異なる方向から同時に撮影し、視差を生み出すことによって、対象物までの距離情報を取得するものであり、ステレオカメラの一種である。3Dカメラ6は、所定距離だけ離れて配置された一対のカメラ6a,6bを有し、一対のカメラ6a,6bはそれぞれ撮像素子を有する。本実施形態の3Dカメラ6は、距離情報だけでなく対象物の色情報(RGB等)も取得する。なお、3Dカメラ6は、レーザを発射して反射位置および反射時間から反射点の距離情報を取得するものであってもよい。
【0013】
干渉領域を設定する際、まず、3Dカメラ6によりロボット1の周囲(加工室4の全域)が撮像される。ロボット1には、ロボット座標系の基準点(例えば原点)を示すマーカ7(図では矢印)が付されている。したがって、3Dカメラ6によりマーカ7を含む領域を撮像することで、換言すれば、撮像範囲8にマーカ7を含めることで、撮像範囲8内の対象物の位置(XYZ座標)を、ロボット座標系を用いて表すことが算出できる。
【0014】
図1では、作業員が3Dカメラ6を把持して撮像する例を示している。一方、3Dカメラ6の位置および姿勢を変更可能なカメラスタンドで3Dカメラ6を保持し、外部からの撮影指令により撮像を実行することもできる。この場合には、カメラスタンド駆動用のアクチュエータに制御信号を出力して3Dカメラ6の位置および姿勢を調整することができる。この際、加工室4の全域が撮像範囲8に含まれない場合には、3Dカメラ6の位置および姿勢を変更し、加工室4の全域を撮像し終わるまで、複数個所および複数方向から複数回撮像を繰り返す。これによって得られた複数のカメラ画像を合成することで、加工室4の全域のロボット座標系における距離情報を取得することができる。この際、カメラスタンドでカメラの位置および姿勢を調整せずに、手でカメラを持って撮影した複数の画像を合成できるカメラを用いてもよい。
【0015】
図2は、本発明の実施形態に係る干渉領域設定装置の全体構成を示すブロック図である。干渉領域設定装置の一部は、ロボット制御装置10により構成される。ロボット制御装置10は、機能的構成として、3Dカメラコントローラ11と、3Dマップ生成部12と、色設定部13と、色検索部14と、干渉領域設定部15と、ロボット制御部16とを有する。
【0016】
ロボット制御装置10には、教示操作盤9が接続されている。教示操作盤9は入力部9aを有し、入力部9aを介してロボット制御装置10に各種指令を入力することができる。また、教示操作盤9は表示部9bを有し、表示部9bを介して各種指令値や演算結果、干渉領域等を表示することができる。
【0017】
3Dカメラコントローラ11は、3Dカメラ6を制御する。すなわち、3Dカメラ6に撮影指令を出力し、撮像タイミングを調整する。あるいは、レーザの発射タイミングを調整する。3Dカメラ6をカメラスタンドで保持している場合には、3Dカメラコントローラ11がカメラスタンドに制御信号を出力し、3Dカメラ6の位置および姿勢を変更することもできる。3Dカメラ6によって取得したカメラ画像は、ロボット制御装置10のメモリに記憶される。
【0018】
3Dマップ生成部12は、メモリに記憶されたカメラ画像(距離情報)に基づき、ロボット1の周囲の3次元空間に等間隔に複数の点列を配置して3Dマップを生成する。すなわち、3Dマップ生成部12は、カメラ画像を用いてロボット1および障害物の位置を特定し、ロボット1および障害物によって形成される3次元空間に、等間隔に点列を設定する。なお、3Dマップを生成した段階では、ロボット1と障害物とがまだ区別されていない。
【0019】
3Dマップを構成する各々の点列は微小長さの正方形の領域を構成し、各点列はカメラ画像に含まれる色情報(RGB)のデータをそれぞれ有する。すなわち、点列がロボット1や障害物に該当するときは、点列はその色情報を有する。一方、点列が加工室4内の何もない空間に該当するときは、点列に、ロボット1および障害物と区別するための色情報(例えばR,G,B=0,0,0)を与える。3Dマップ生成部12は、さらに3Dカメラ6により取得されたカメラ画像の中から、パターンマッチング等によりマーカ7の画像を特定し、マーカ7に対応した点列に、他の点列と識別可能な色情報(例えばR,G,B=1,1,1)を与える。
【0020】
色設定部13は、教示操作盤9を介して指令されたロボット1の色(外形色)を設定する。本実施形態では、ロボット1と障害物とが互いに異なる色(それぞれロボット色と障害物色と呼ぶ)で形成されている。例えば、ロボット色は黄色であり、障害物色は黄色以外(例えば灰色)である。なお、ロボット色が複数の色(例えば黄色と赤色)を含んでもよく、その場合の障害物色は、黄色と赤色以外の単一または複数の色である。
【0021】
色検索部14は、3Dマップ生成部12により生成された3Dマップからマーカ7に対応した色情報を有する点列を検索する。検索された点列を基準点(原点)とすることで、3Dマップの各点列を、ロボット座標系での点列データに変換することができる。さらに色検索部14は、色設定部13で設定されたロボット色(黄色)に対応する色情報(RGB)を有する点列を検索する。ロボット色は経年変化等によりロボットの各部で微妙にずれていることがある。したがって、点列を検索するときは、色情報に所定の幅を持たせ、その幅内にある点列を検索することが好ましい。
【0022】
干渉領域設定部15は、3次元マップの点列から、色検索部14で検索されたロボット色の点列を除外する。そして、3Dマップの残りの点列の位置データに基づき干渉領域を設定する。これにより障害物の位置データのみで、干渉領域が設定される。設定された干渉領域は、メモリに記憶される。
【0023】
ロボット制御部16は、予め定めた加工プログラムに基づいて、あるいは作業員からの指令に応じてロボット駆動用のサーボモータに制御信号を出力し、ロボット1を動作させる。この際、ロボット制御部16は、ロボット1が干渉領域に進入したか否かを随時判定し、干渉領域に進入したら、あるいは干渉領域に進入しそうになったら、サーボモータに停止信号を出力してロボット1の動作を停止させる。これによりロボット1と障害物との衝突を防ぐことができる。
【0024】
図3は、ロボット制御装置10で実行される処理の一例を示すフローチャートである。このフローチャートに示す処理は、例えば作業員がロボット制御装置10に干渉領域設定指令を入力すると開始される。
【0025】
ステップS1では、色設定部13での処理により、教示操作盤9を介して入力されたロボット色を設定する。ステップS2では、3Dカメラコントローラ11での処理により、カメラスタンドおよび3Dカメラ6に制御信号を出力して加工室4の全域を撮像し、マーカ7を含むカメラ画像を取得する。ステップS3では、3Dマップ生成部12での処理により、カメラ画像に基づいて、ロボット1の周囲の3次元空間に複数の点列からなる3Dマップを生成する。
【0026】
ステップS4では、色検索部14での処理により、3Dマップからマーカ7を検索する。ステップS5では、3Dマップ生成部12での処理により、マーカ7に対応する点列を基準として、3Dマップの各点列をロボット座標系における点列データに変換する。ステップS6では、色検索部14での処理により、ステップS1で設定されたロボット色に対応する色情報を有する点列を検索する。ステップS7では、干渉領域設定部15での処理により、3Dマップの点列からロボット色の点列を除外し、3Dマップの残りの点列の位置データを用いて干渉領域を設定する。
【0027】
本実施形態によれば以下のような作用効果を奏することができる。
(1)干渉領域設定装置は、ロボット1の周囲を撮像することにより、距離情報と色情報とを含むロボット1の周囲の領域のカメラ画像を取得する3Dカメラ6と、カメラ画像に基づきロボット1の周囲の3次元空間に等間隔に配置される複数の点列からなる3Dマップを生成する3Dマップ生成部12と、ロボット1の色を設定する色設定部13と、3Dマップ生成部12により生成された3Dマップからロボット色に対応する色情報を有する点列を検索する色検索部14と、検索された点列の位置データに基づき干渉領域を設定する干渉領域設定部15とを備える。これにより干渉領域をユーザが手動で入力して設定する必要がなく、障害物の3次元形状モデルをユーザが作成する必要もなく、種々の形状の干渉領域を容易に設定することができる。
【0028】
(2)色設定部13がロボット色を設定し、色検索部14が3Dマップからロボット色に対応する色情報を有する点列(ロボット点列)を検索し、干渉領域設定部15がロボット点列を除いた3Dマップの残りの点列の位置データに基づき干渉領域を設定する。したがって、ロボット1を除外した適切な干渉領域を容易に設定することができる。
【0029】
(3)カメラ画像は、ロボット座標系の基準となるマーカ7の画像を含み、干渉領域設定部15は、マーカ7の画像に基づいてロボット座標系で干渉領域を設定する。したがって、ロボット1の位置と干渉領域とが同一の座標系で表され、ロボット1の干渉領域への進入の有無を容易に判定することができる。
【0030】
なお、上記実施形態では、色設定部13でロボットの色を設定したが、障害物の色を設定するようにしてもよい。この場合、色検索部14が、3Dマップから障害物の色に対応する色情報を有する点列(障害物点列)を検索し、干渉領域設定部15が、障害物点列の位置データに基づき干渉領域を設定すればよい。色設定部13でロボット色と障害物色の両方を設定し、色検索部14で3Dマップからロボット点列と障害物点列をそれぞれ検索するようにしてもよい。すなわち、色検索部14で検索された点列の位置データに基づき干渉領域を設定するのであれば、干渉領域設定部15の構成はいかなるものでもよい。
【0031】
上記実施形態では、マーカ7に対応した点列に、他の点列と識別可能な色情報を与えて、3Dマップからマーカ7を検索するようにしたが(ステップS4)、3Dマップを作成する際に、マーカ7に対応する点列のデータに何等かの識別子を付して、マーカ7の点列を他の点列と区別するようにしてもよい。すなわち、カメラ画像によって特定されたマーカ7の画像に基づいて干渉領域設定部15がロボット座標系で干渉領域を設定するのであれば、他の構成によりマーカ7を検索してもよい。
【0032】
以上の説明はあくまで一例であり、本発明の特徴を損なわない限り、上述した実施形態および変形例により本発明が限定されるものではない。上記実施形態および変形例の構成要素には、発明の同一性を維持しつつ置換可能かつ置換自明なものが含まれる。すなわち、本発明の技術的思想の範囲内で考えられる他の形態についても、本発明の範囲内に含まれる。また、上記実施形態と変形例の1つまたは複数を任意に組み合わせることも可能である。