ドリフト補正ソリューションを導入
以下では、カメラがETH方式で取り付けられている場合のドリフト自動補正ソリューションの導入方法について説明します。
導入手順
ドリフト補正ソリューションの導入は、下図のような手順で行います。
-
前提条件を確認:「ドリフト自動補正(ETH)」ソリューションを導入するために必要な前提条件を確認します。
-
準備作業を完了:導入前に必要な事前準備を完了させます。
-
セル情報を取得:セル情報を入力して、キャリブレーションボールの撮影経路点の数と分布を計算します。
-
撮影経路点を検証:各撮影経路点でキャリブレーションボールの位置姿勢の繰り返し精度を統計し、正確で信頼性の高いドリフト補正データを取得できることを確認します。
-
サンプルプログラムを生成:撮影経路点の情報に基づいて、ドリフト補正のためのロボットサンプルプログラムを生成します。
-
自動補正機能の有効化:把持プロジェクトで自動補正機能を有効にし、ロボット自動補正プログラムを調整して読み込みます。実際の生産プロセスでビジョンシステムのドリフトを補正します。
-
設定結果を確認:「ドリフト自動補正(ETH)」ソリューションの導入結果を確認します。
前提条件を確認
ドリフト補正ソリューションを導入する前に、以下の前提条件を満たす必要があります。
-
セル内に把持ビジョンソリューションが正しく設定されていることを確認します。
-
カメラ、ロボット、および外部パラメータの精度チェックが完了し、ロボットがワークを正常に把持できることを確認します。具体的な手順については、精度誤差分析ツール をご参照ください。
-
ロボットの先端にキャリブレーションボールを取り付けるための十分なスペースが確保されていることを確認します。
準備作業を完了
上記の前提条件が満たされた後、次の準備作業を行います。
-
必要なものを確認します。キャリブレーションボールキット(ETH)の梱包を開封し、キャリブレーションボールや手動式エアブロワーなどが含まれていることを確認します。
-
要件に従って キャリブレーションボールを取り付け ます。
-
カメラを十分に暖機運転します。カメラがコールドスタート状態である場合、データ取得中の温度上昇によって内部パラメータ精度が変化する可能性があります。そのため、カメラを十分に暖機運転してください。詳細については、カメラの暖機運転 をご参照ください。
導入開始
上記の準備作業が完了した後、メニューバーで
を順番に選択し、設定ツールの右下にある 設定 をクリックして関連設定を行います。セル情報を取得
セル情報を入力して、キャリブレーションボールの撮影経路点の数と分布を計算します。
カメラに接続
-
カメラを選択 をクリックし、把持プロジェクトで使用するカメラを選択して接続します。
-
ドリフト補正が必要な把持プロジェクトを選択し、対応するキャリブレーションパラメータグループと設定パラメータグループを選択します。
適用シーンを選択
-
ワーク配置方式を選択します。
現場の実際の状況に応じてワーク配置方式を設定します。
-
最下層のボールから最下層ワークまでの距離を設定します。
この距離は、ロボットがキャリブレーションボールを到達可能な最も低い位置に移動させたときの、最下層のワークとボール中心との距離を指します。
-
目標点群の空間寸法を設定します。
実際の状況に応じて目標点群の長さ、幅および高さを設定します。
(a)ワーク上面のサーフェス点群を使用してマッチングを行う場合、目標点群の高さは最高層ワークの上面から最下層ワークの上面までの距離です。
(b)ワーク上面の局所点群を使用してマッチングを行う場合、目標点群の高さは最高層ワークの上面から最下層ワークの上面までの距離です。
(c)ワークの複数層のサーフェス点群を使用してマッチングを行う場合、目標点群の高さは最高層ワークの上面から最下層ワークの下面までの距離です。
-
単層ワークの場合、ワーク上面のサーフェス点群を使用してマッチングを行う際、目標点群の高さは0です。
-
複数層ワーク間にパーテーションがある場合、目標点群の高さはパーテーションの高さを含む必要があります。
-
設定完了後、計算を開始 をクリックしてキャリブレーションボールの撮影経路点の数と分布を計算します。計算結果は、次のページに表示されます。
セル情報を入力した後、次へ をクリックして撮影経路点を検証します。
撮影経路点を検証
各撮影経路点でキャリブレーションボールの位置姿勢の繰り返し精度を統計し、正確で信頼性のあるドリフト補正データを取得できることを確認します。
撮影経路点を検証
キャリブレーションボールの撮影経路点の位置分布が得られた後、キャリブレーションボールの位置姿勢の繰り返し精度を統計し、正確で信頼性の高いドリフト補正データを確保する必要があります。
撮影経路点の検証は、低い層から高い層へ順番に行うことをお勧めします。一つの層の検証を完了してから次の層を検証してください。 |
-
トレイやコンテナをカメラの視野外に移動します。
-
ロボットを移動させます。
ロボットを最初の層の任意の撮影経路点へ移動させます。該当撮影経路点に対応するロボットのフランジ位置姿勢を、現在の画面の指定位置に入力します。
ロボットを移動させる際は、衝突が発生しないように注意してください。まずはロボットを手動で低速で目標位置姿勢に移動させ、衝突しないかを常に確認することを推奨します。
ロボットが経路上で衝突する可能性がある場合は、キャリブレーションボールの位置を適切に調整してください(上下左右いずれの方向でも調整可能)。ただし、撮影経路点の移動距離は100mm以内に収める必要があります。
-
キャリブレーションボールのROIを設定します。
ROIを調整 をクリックし、表示される画面でキャリブレーションボールの3D ROIを設定します、その後、OK をクリックします。
-
範囲を選択する際は、目標領域がキャリブレーションボールを完全に囲み、ボールの周囲にボール直径分の余白を残す必要があります。
-
3D ROIの設定は最初の撮影経路点を検証する際のみ行えば問題ありません。
-
-
撮影経路点を検証します。
撮影して検証 をクリック、ツールが自動的に3回撮影を実行し、キャリブレーションボール位置姿勢の繰り返し精度を統計します。検証が成功すると、認識結果ウィンドウに「検証成功」が表示されます。
-
次の撮影経路点にロボットを移動させ、次へ ボタンをクリックして、現在のロボットのフランジ位置姿勢を入力し、撮影して検証 をクリックして撮影経路点の検証を行います。
-
この手順を繰り返し、現在層にあるすべての撮影経路点の検証を完了します。
-
複数層がある場合は、上記の手順を繰り返して、他の層の撮影経路点の検証を完了します。
すべての撮影経路点の検証が完了したら、次へ をクリックして、ロボット自動補正サンプルプログラムを生成します。
サンプルプログラムを生成
撮影経路点リストを確認
このリストには、各撮影経路点に対応するロボットのフランジ位置姿勢情報が記録されています。この情報は、後続のロボットサンプルプログラムの生成に使用されます。ロボットは順次、各撮影経路点に到達するように制御されます。
ロボットプログラムを生成
ドロップダウンメニューから使用しているロボットのブランドを選択し、サンプルプログラムをエクスポート をクリックして、ロボット自動補正サンプルプログラムをエクスポートします。
ロボットの自動補正プログラムがエクスポートされていない、または見つからない場合は、設定結果を確認 ページの右上にあるロボットの自動補正サンプルプログラムをエクスポートすることもできます。 |
エクスポート後、保存 をクリックして、設定された内容を保存します。この時、以下のドリフト補正関連プロジェクトが自動生成されます。
-
Drift_Collection_ETH:各撮影経路点でキャリブレーションボールの位置姿勢を取得するためのプロジェクト。
-
Drift_Calculation:「Drift_Collection_ETH」プロジェクトで取得したキャリブレーションボールの位置姿勢に基づき、ドリフト補正データを生成するためのプロジェクト。
ドリフト補正に関連するプロジェクト内容は変更しないでください。また、その後のドリフト補正過程において、関連プロジェクトの名前およびプロジェクト番号が変更されないようにしてください。 プロジェクトを生成すると同時に、ワークライブラリ内にキャリブレーションボールの点群モデルが自動的に生成されます。この点群モデルの名前および関連設定は変更しないでください。 |
自動補正機能の有効化
撮影経路点の検証を完了した後、実際の生産過程でビジョンシステムのドリフトを補正するためには、以下の操作を行う必要があります。
-
把持プロジェクトで自動補正機能を有効にします。
-
自動補正のためのロボットプログラムを読み込みます。
ロボットプログラムの読み込みと調整
生成されたロボット自動補正プログラムでは、ティーチング法を使用してロボットのHome位置を設定し、通信パラメータでIPCのIPアドレスとポート番号を設定して、ロボットとの通信を確立します。プログラム内のその他の内容を修正する必要はありません。ロボットプログラムを読み込んだ 後、上述の調整を行います。FANUCロボットを例にとると、修正が必要なプログラムは以下のようになります。Home位置の位置番号はP[50]であることに注意してください。
J P[50] 50% FINE ;
CALL MM_INIT_SKT('8','127.0.0.1',50000,5) ;
FANUCロボットを使用する場合は、まずロボットのサンプルプログラムをTPファイルにコンパイルした後、ロボットプログラムを読み込む必要があります。他のブランドのロボットではこの操作は不要です。 |
FANUC以外のロボットを使用する場合は、以下の「ロボット自動補正プログラムの基本フロー」や「FANUCロボット自動補正プログラムの例」などを参照して、ご使用のブランドに合わせた自動補正プログラムを調整または作成してください。
ロボット自動補正プログラムの基本フローについては、こちらをクリックして確認してください。
手順1:ロボット座標系とツール座標系を確定します。
手順2:ロボットをHome 位置に移動させます。
手順3:ロボットを事前に計画された最下層の撮影経路点1に移動させます。
手順4:撮影経路点1に到達した後、キャリブレーションボール位置姿勢取得プロジェクト(Drift_Collection_ETH)でこの撮影経路点に対応するパラメータレシピに切り替えます。
手順5:パラメータレシピを切り替えた後、「Drift_Collection_ETH」プロジェクトの実行をトリガーし、撮影経路点1でキャリブレーションボールの位置姿勢を取得します。
手順6:現在層の他の撮影経路点で上記の手順3~5を実行し、それぞれの撮影経路点でキャリブレーションボールの位置姿勢を取得します。
手順7:下から上へ、他の層の撮影経路点で上記の手順3~6を繰り返し実行し、各層の撮影経路点でキャリブレーションボールの位置姿勢を取得します。
手順8:各層のキャリブレーションボールの撮影経路点でキャリブレーションボールの位置姿勢を取得した後、ドリフト補正データ生成プロジェクト(Drift_Calculation)でパラメータレシピを切り替えます。
手順9:「Drift_Calculation」プロジェクトの実行をトリガーし、ドリフト補正データを生成します。
手順10:ロボットをHome 位置に移動させます。
FANUCロボット自動補正プログラムの例については、こちらをクリックして確認してください。
FANUCロボットを例にし、キャリブレーションボールの撮影経路点の数は9、キャリブレーションボールの位置姿勢取得プロジェクトのプロジェクト番号は3、ドリフト補正データ生成プロジェクトのプロジェクト番号は4であることを仮定しています。自動補正プログラムと主要手順の説明は以下の通りです。
ロボットの自動補正プログラムではいくつかのレジスタが使用されています。自動補正プログラムを実行する際には、これらのレジスタが他の用途で占有されていないことを確認してください。 |
UFRAME_NUM=0 ;
UTOOL_NUM=1 ;
J P[50] 50% FINE ;
CALL MM_INIT_SKT('8','127.0.0.1',50000,5) ;
R[50:StartIndex]=1 ;
R[52:EndIndex]=9 ;
R[53:CameraIndex]=1 ;
R[54:CollectionId]=3 ;
R[55:CalculationId]=4 ;
PR[51]=P[51] ;
PR[52]=P[52] ;
PR[53]=P[53] ;
PR[54]=P[54] ;
PR[55]=P[55] ;
PR[56]=P[56] ;
PR[57]=P[57] ;
PR[58]=P[58] ;
PR[59]=P[59] ;
FOR R[51:mm_i]=R[50:StartIndex] TO R[52:EndIndex] ;
R[56]=R[51:mm_i]-R[50:StartIndex]+51 ;
L PR[R[56]] 1000mm/sec FINE ;
WAIT 3.00(sec) ;
CALL MM_SET_MOD(R[54:CollectionId],R[51:mm_i]) ;
WAIT 1.00(sec) ;
CALL MM_START_VIS(R[54:CollectionId],0,1,100) ;
WAIT 3.00(sec) ;
ENDFOR ;
CALL MM_SET_MOD(R[55:CalculationId],R[53:CameraIndex]) ;
WAIT 1.00(sec) ;
CALL MM_START_VIS(R[55:CalculationId],0,1,100) ;
WAIT 3.00(sec) ;
J P[50] 50% CNT100 ;
END ;
FANUCロボット自動補正プログラムの各手順の説明については、こちらをクリックして確認してください。
下表は主要な手順の説明をまとめたものです。 |
手順 | コードと説明 | ||
---|---|---|---|
座標系設定 |
ロボット座標系をワールド座標系に、ツール座標系をフランジ座標系に設定します。 |
||
ロボットをHome位置に移動 |
ワークや周辺機器から離れ、ロボットをHome位置に移動させます。
|
||
通信パラメータの初期化 |
ロボットのポート番号を8、接続するIPCのIPアドレスを127.0.0.1、IPCがロボットとの通信を確立するために使用するポート番号を50000、タイムアウト待機時間を5分に設定します。 |
||
キャリブレーションボールの撮影経路点に対応するパラメータレシピ番号の開始値と終了値を保存 |
ロボットプログラムをエクスポートする際、ツールはキャリブレーションボールの撮影経路点に対応するパラメータレシピをもとに、パラメータレシピ番号の開始値と終了値を計算します。そして、これらの値を数値レジスタに保存します。 |
||
カメラに対応するパラメータレシピ番号およびドリフト補正関連プロジェクトのプロジェクト番号を設定 |
カメラに対応するパラメータレシピ番号を1、キャリブレーションボール位置姿勢取得プロジェクト(Drift_Collection_ETH)のプロジェクト番号を3、ドリフト補正データ生成プロジェクト(Drift_Calculation)のプロジェクト番号を4に設定します。これらの値は数値レジスタに保存されます。 |
||
撮影経路点を保存 |
9個のキャリブレーションボール撮影経路点(P[51] ~ P[59])をそれぞれ位置レジスタ(PR[51] ~ PR[59])に保存します。これらは、後続のロボットが対応する位置に移動する際に使用されます。 |
||
ループを使用してキャリブレーションボール撮影経路点のパラメータレシピ番号に対応する位置レジスタ番号を計算 |
ループを使用して、キャリブレーションボール撮影経路点のパラメータレシピ番号 1~9 を順次処理します。
この式を使用して、R[56]の値を計算します。これにより、現在の撮影経路点のパラメータレシピ番号に対応する位置レジスタ番号を求めます。 この例では R[50:StartIndex] = 1 で、パラメータレシピ番号 R[51:mm_i] = 2 の場合、計算式は R[56] = 2 - 1 + 51 = 52 になります。次のコードが実行されるとき、ロボットは位置レジスタ PR[52] に保存された撮影経路点へ移動します。 |
||
ロボットを撮影経路点に移動 |
ロボットは1000mm/secの速度でキャリブレーションボールの各撮影経路点まで直線移動します。 |
||
キャリブレーションボールの位置姿勢取得プロジェクトでパラメータレシピを切り替える |
プロジェクト番号が3の「Drift_Collection_ETH」プロジェクトでは、パラメータレシピを番号R[51:mm_i](1~9)のレシピに切り替えます。 |
||
キャリブレーションボールの位置姿勢取得プロジェクトを実行 |
プロジェクト番号が3の「Drift_Collection_ETH」プロジェクトを実行し、各撮影経路点でキャリブレーションボールの位置姿勢を取得します。
キャリブレーションボールの位置姿勢取得が完了すると、ループが終了します。取得されたキャリブレーションボールの位置姿勢データは、ドリフト補正データの生成に使用されます。 |
||
ドリフト補正データ生成プロジェクトでパラメータレシピを切り替える |
すべての撮影経路点でキャリブレーションボールの位置姿勢取得が完了した後、プロジェクト番号が4の「Drift_Calculation」プロジェクトでは、パラメータレシピを番号1のレシピに切り替えます。
|
||
ドリフト補正データ生成プロジェクトを実行 |
プロジェクト番号が4の「Drift_Calculation」プロジェクトを実行して、取得したキャリブレーションボールの位置姿勢に基づいてドリフト補正データを生成します。 |
||
ロボットをHome位置に移動 |
ワークや周辺機器から離れ、ロボットをHome位置に移動させます。 |
ロボットプログラムを試運転
ロボットの自動補正プログラムを実行すると、ロボットは対応する撮影経路点に移動し、ドリフト情報関連プロジェクトが実行され、キャリブレーションボールを撮影してその位置姿勢データを取得します。最終的に、生成されたドリフト補正データに基づいてドリフトが補正されます。
ロボットの自動補正プログラムを実行した後、補正記録が生成されます。この記録は、データ監視ダッシュボード で確認できます。
ワーク把持を試行
ロボットの把持プログラムを実行し、ロボットがワークを正確に把持できた場合は、ソリューションの導入が成功したことを示します。
把持試行後、実際の生産現場で長期間安定して稼働させるためには、データ監視ダッシュボード にドリフトのアラート閾値を設定する必要があります。通常、10mmに設定することを推奨します。ドリフトがこのしきい値を超えた場合は、カメラとロボットハンドがしっかりと取り付けられているか、ロボットの原点がずれていないかなどを確認してください。
自動補正周期を設定
現場の実際の状況に応じて、一定の周期で(手動または自動)ロボット自動補正プログラムを実行し、定期的にキャリブレーションボールの位置姿勢データを取得 します。このデータを使用して、ビジョンシステムのドリフトを定期的に補正します。
これで、「ドリフト自動補正(ETH)」ソリューションの導入が完了しました。完了 をクリックしてツールのホームページに戻ります。
導入完了後、現在のカメラ設定パラメータグループをローカルにエクスポートしてバックアップすることをお勧めします。これにより、カメラが故障して交換が必要になった場合、設定パラメータグループをエクスポートできなくなるリスクを回避できます。 |
ツールのホームページ下部にある 設定を確認 をクリックして設定結果を確認できます。設定結果には、ドリフト自動補正機能が設定されたカメラの番号、設定結果の保存パス、撮影経路点の情報、およびカメラ番号情報が含まれます。 |