ハンドアイのドリフト自動補正
以下では、「ハンドアイのドリフト自動補正」ツールの機能、適用シーンおよび設定手順について説明します。
システムドリフトとは、ビジョンシステムの精度ドリフトのことで、通常、外部環境の変化やビジョンシステム内部の不安定性などが原因で、時間の経過とともにビジョンシステムの精度が徐々に低下することを指します。 |
機能
ビジョンシステムの運転中、以下の問題がシステムの安定性や後のメンテナンスコストに影響を与える可能性があります。
-
現場の昼夜の温度差が大きいと、把持の精度に変動が生じる可能性があります。
-
ビジョンシステムが長時間運転すると、把持の精度が低下する可能性があります。
上記の問題を解決するために、カメラがEye in Hand(EIH)方法で取り付けられているビジョンシステム向けに、精度誤差分析ツール には「ハンドアイのドリフト自動補正」機能が組み込まれており、システムドリフトの自動補正を実現します。
設定手順
この機能の設定手順は中国国内でのみ利用可能です。中国以外のプロジェクトで設定が必要な場合は、Mech-Mind株式会社の技術サポートにお問い合わせください。 |
設定手順を下図に示します。
-
事前準備:設定前に、ロボットの繰返し精度が正常であることを確認し、要件に応じてキャリブレーションボードとキャリブレーションボールを準備します。
-
セル情報を取得:異なる把持層からキャリブレーションボードの位置姿勢を取得し、その後にキャリブレーションボールの画像撮影位置の必要な数を自動的に計算します。
-
キャリブレーションボールを配置:キャリブレーションボードを位置決めしてキャリブレーションボールの推奨画像撮影位置を取得し、その画像撮影位置でキャリブレーションボールの画像を連続的にキャプチャして、キャリブレーションボールを配置するための推奨位置を自動的に生成します。
-
キャリブレーションボールの画像撮影位置を作成:キャリブレーションボールの推奨位置情報に基づいて、キャリブレーションボールの画像撮影位置を自動的に作成します。その後、キャリブレーションボールの範囲を選択して位置決めします。
-
基準データを取得:キャリブレーションボールの位置姿勢データを取得し、その位置姿勢の繰返し精度を統計して、ドリフト自動補正のための基準データとして使用します。
-
設定結果を確認:上記の設定で得られた画像撮影位置に関連する情報を確認します。
-
ロボットプログラムを作成:ロボットプログラムを作成して、実際の生産時にロボットがキャリブレーションボールの位置姿勢データを取得するように制御します。これはドリフト補正時に現場データとして使用されます。
-
ビジョンプロジェクトを設定:「ハンドアイのドリフト補正」ステップの組合せを追加し、ドリフトの自動補正に使用します。
-
ハンドアイのドリフト補正:上記の設定が完了したら、実際の生産中にはドリフトが自動的に補正されます。
事前準備
設定前に、以下のいくつかの準備作業を完了する必要があります。
ロボットの繰返し精度をチェック
設定中のロボットの繰返し精度が正常であることを確保するため、設定前にロボットの繰返し精度をチェックする必要があります。詳細については、 ロボットの繰返し精度をチェック をご参照ください。
キャリブレーションボールの準備
ドリフト補正には3つのキャリブレーションボールが使用されます。以下の要件に従って準備してください。
-
Mech-Mindが提供するキャリブレーションボールを使用
Mech-Mindは、直径60mmの表面が滑らかで光沢がない鉄球を提供しています。Mech-Mindのエンジニアに連絡して取得してください。
Mech-Mindはキャリブレーションボールのみを提供しており、その他の付属品はご自身で用意する必要があります。詳細については、キャリブレーションボール をご参照ください。
-
キャリブレーションボールを自分で用意
他のキャリブレーションボールを使用する場合は、以下の要件に従って自分で準備してください。
材質 直径 球形度 ボールの完全性 点群品質が良いものを使用してください(表面が滑らかで光沢がない鉄球、セラミック製のボールなど)。
-
カメラからキャリブレーションボールまでの距離が0.5m〜2mの場合、直径約60mmのキャリブレーションボールを選択できます。
-
(よく使わない)カメラからキャリブレーションボールまでの距離が0.5m未満の場合、直径約30mmまたは40mmのキャリブレーションボールを選択できます。
-
(よく使わない)カメラからキャリブレーションボールまでの距離が2mを超える場合、直径約100mmのキャリブレーションボールを選択できます。
球形度は1に近く、楕円球を使用しないでください。
キャリブレーションボールの一部を切り取り、切断面を形成することで、キャリブレーションボールの取り付けが容易になりますが、ボールの完全性を確保するためには少なくとも4分の5のボールが完全である必要があります。
-
上記の準備作業が完了したら、右下隅にある 実行 ボタンをクリックして設定ツールを開きます。
|
セル情報を取得
カメラに接続
-
プロジェクトを関連付けます。
プロジェクト内のカメラ情報を自動的に取得するために、現在開いているソリューションからプロジェクトを選択します。
-
IPアドレスとカメラキャリブレーションパラメータグループを自動的に取得します。
カメラが正常に接続されると、この機能はカメラのIPアドレスとカメラキャリブレーションパラメータを自動的に取得します。
キャリブレーションボードの位置決め
上記の手順が完了したら、以下のような手順と要件に従ってキャリブレーションボードを位置決めし、各把持層のキャリブレーションボードの位置姿勢を取得してください。
キャリブレーションボードを正確に位置決めするには、カメラの視野に1つのキャリブレーションボードしかないことを確認してください。 |
-
最上層のワークが配置されている高さの視野中心にキャリブレーションボードを配置してください。
大きなサイズのワークに対しては、キャリブレーションボードをワークの特徴部分、つまり点群モデルのマッチングに使用される部分に配置する必要があります。
-
ロボットを把持層の上方の画像撮影位置に移動させる際に、この画像撮影位置は実際の生産時の画像撮影位置と 一致している 必要があります。
-
+追加 をクリックして新しい把持層を追加します。
-
位置決め をクリックして、現在の把持層のキャリブレーションボードを撮影します。
-
成功した場合は、 位置決めに成功 というメッセージが表示されます。下図に示すように、 画像を表示 をクリックして位置決めに成功したキャリブレーションボードを確認できます。
-
失敗した場合は、 位置決めに失敗 というメッセージが表示されます。その際は、キャリブレーションボードの範囲を選択 をクリックして、ポップアップウィンドウでキャリブレーションボードの範囲を選択するか、カメラパラメータグループを調整してから再試行してください。
-
-
すべての把持層の情報が取得されるまで、上記の手順を繰り返してください。
セル情報が取得されたら、 次へ をクリックしてキャリブレーションボールを配置します。
キャリブレーションボールを配置
キャリブレーションボードの位置決めとロボットのフランジ位置姿勢により、キャリブレーションボールを撮影する時のロボットの位置姿勢を求めます。その位置姿勢で連続キャプチャを行い、得られたキャリブレーションボールの推奨位置に従ってキャリブレーションボールを固定できます。
キャリブレーションボードを配置
-
キャリブレーションボードを配置します。
キャリブレーションボードの前面を上にして水平に配置し、周囲にキャリブレーションボールを配置するためのスペースを確保してください。一般的には、キャリブレーションボードを下から支える木製ボードのようなものが必要で、キャリブレーションボードがキャリブレーションボールの中心と水平になる ようにします。
-
キャリブレーションボードを位置決めします。
ロボットを移動させ、カメラを適切な高さに調整して、キャリブレーションボードがカメラの視野内にはっきりと見えるようにします。その後、 位置決め をクリックします。
-
位置決めに成功した場合は、 位置決め ボタンの左側に 位置決めに成功 が表示され、キャリブレーションボードの画像を確認できます。この時、ロボットの現在のフランジ位置姿勢を対応する入力ボックスに入力する必要があります。
ロボットのオイラー角タイプが正確であることを確認してください。
-
位置決めに失敗した場合は、 位置決め ボタンの左側に 位置決めに失敗 が表示されます。 キャリブレーションボードの範囲を選択 をクリックして、ポップアップウィンドウでキャリブレーションボードの範囲を選択できます。
-
-
画像撮影位置を計算します。
キャリブレーションボードの位置決めに成功した後、下の 画像撮影位置を計算 をクリックすると、キャリブレーションボールの画像撮影位置姿勢(つまり、撮影時のロボットのフランジ位置姿勢)が自動的に計算されます。
キャリブレーションボールを配置
「セル情報を取得」手順の「キャリブレーションボードの配置状況」を「配置済み」に選択した場合、この手順ではキャリブレーションボールの直径のみを設定する必要があります。 |
-
キャリブレーションボールの配置基準を確認します。
ロボットを推奨される画像撮影位置に移動させた後、キャリブレーションボールが位置する平面をカメラの光軸に対してできるだけ垂直にしてください。
-
推奨されるフランジ位置姿勢を確認します。
「キャリブレーションボードを配置」手順で複数のロボットのフランジ位置姿勢を取得した後、現在のページにはキャリブレーションボールに最も近いロボットのフランジ位置姿勢が推奨値として表示されます。この時、ロボットをこの推奨位置姿勢に移動させる必要があります。
ロボットを移動させる際は、ロボットが衝突しないようにする必要があります。最初に手動でロボットを低速で目標位置姿勢に移動させ、その際にロボットが衝突しないかを常に確認することを推奨します。
ロボットが動作経路上で衝突の可能性がある場合は、キャリブレーションボールの画像撮影位置を適切に持ち上げることができますが、画像撮影位置の持ち上げ範囲が100mm以内である必要があります。100mmを超える場合は、キャリブレーションボールにベースを追加する必要があります。
-
キャリブレーションボールの直径を選択します。
お使いのキャリブレーションボールに従って直径を選択する必要があります。
-
キャリブレーションボールを配置して固定します。
連続キャプチャ をクリックして、表示される推奨位置(緑の円)にキャリブレーションボールを配置し、固定します。
-
キャリブレーションボールを地面にしっかり固定してください。実際の生産時には、キャリブレーションボールに誤って触れないようにしてください。
-
マーカーを使用してキャリブレーションボールとそのベースの間に線を引いて目印とし、キャリブレーションボールとそのベースの相対位置に変化がないか確認できます。
-
固定後、 固定済み をクリックします。
キャリブレーションボールの取り付けやメンテンナンスについては、キャリブレーションボールの取り付けやメンテンナンス をご参照ください。
-
次へ をクリックしてキャリブレーションボールの画像撮影位置を作成します。
キャリブレーションボールの画像撮影位置を作成
画像撮影位置を設定
デフォルトで推奨される画像撮影位置が表示されます。画像撮影位置を追加するには、 +追加 をクリックします。画像撮影位置を削除するには、 をクリックします。
-
デフォルトの画像撮影位置の場合、 まずロボットを画像撮影位置に移動させ 、 範囲選択 をクリックして各画像撮影位置に対応するキャリブレーションボールの範囲をそれぞれ選択する必要があります。
ロボットを移動させる際は、ロボットが衝突しないようにする必要があります。最初に手動でロボットを低速で目標位置姿勢に移動させ、その際にロボットが衝突しないかを常に確認することを推奨します。
ロボットが動作経路上で衝突の可能性がある場合は、キャリブレーションボールの画像撮影位置を適切に持ち上げることができますが、画像撮影位置の持ち上げ範囲が100mm以内である必要があります。100mmを超える場合は、キャリブレーションボールにベースを追加する必要があります。
選択範囲はキャリブレーションボール全体を含み、各方向(上、下、左、右)には1つのキャリブレーションボールの直径分の余白を作る必要があります。選択した後に「位置決めに失敗」と表示された場合は、範囲を適切に拡大してから再度選択してください。
-
新しく追加されたカスタム画像撮影位置については、 をクリックしてロボットのフランジ位置姿勢を入力する必要があります。
キャリブレーションボールの画像撮影位置が作成されたら、 次へ をクリックして基準データを取得します。
基準データを取得
上部のドロップダウンリストから画像撮影位置を選択し、ロボットを画像撮影位置に対応するフランジ位置姿勢に移動させます。その後、右上隅にある 検証 をクリックして、各画像撮影位置を検証し、キャリブレーションボールの位置姿勢の繰り返し精度を統計します。
|
これで、すべての設定手順が完了しました。 保存 をクリックして設定された内容を保存できます。
保存後、Mech-Visionのプロジェクトリストには、ハンドアイのドリフト自動補正のプロジェクトが自動的に作成されます。各画像撮影位置に対応するプロジェクトがあります。
設定結果を確認
設定手順を完了し、設定内容を保存したら、下部にある 設定を確認 をクリックして設定結果を確認できます。
下図に示すように、設定結果には各画像撮影位置の関連情報が表示されています。これには、各画像撮影位置に対応するドリフト補正プロジェクトの名前およびロボットのフランジ位置姿勢が含まれています。
ロボットプログラムを作成
実際の生産プロセスでは、ロボットプログラムを作成し、一定の時間ごとにロボットを対応する画像撮影位置に移動させ、キャリブレーションボードを撮影し、キャリブレーションボードの位置姿勢データを取得し、基準姿勢データを使用してシステムドリフト補正情報を生成する必要があります。
ロボットプログラムを迅速に作成するため、川崎ロボットを例にして、Mech-Mindは以下のようなサンプルプログラムを提供しています。
2つの画像撮影位置を例として説明します。このサンプルプログラムを実行すると、ロボットは対応する画像撮影位置に移動し、次にMech-Visionプロジェクトをトリガーしてキャリブレーションボールを撮影し、キャリブレーションボールの位置姿勢データを取得します。
.PROGRAM Calib_Move()
ACCURACY 1 ALWAYS
SPEED 100 MM/S ALWAYS
JMOVE STAND_BY
;layer 1
LMOVE CALIB[1]
BREAK
CALL MM_START_VIS(1,0,1,.#start_vis)
TWAIT 3
;layer 2
LMOVE CALIB[2]
BREAK
CALL MM_START_VIS(2,0,1,.#start_vis)
TWAIT 3
JMOVE STAND_BY
.END
サンプルプログラム中の各ステップの説明は下表の通りです。
番号 | ステップ | プログラム | 詳細 |
---|---|---|---|
1 |
プログラム名を定義 |
.PROGRAM Calib_Move() |
このステップでは、「Calib_Move」という名前のプログラムが定義されています。 |
2 |
ロボット移動に関するパラメータを設定 |
ACCURACY 1 ALWAYS SPEED 100 MM/S ALWAYS |
このステップでは、ロボットの移動精度が1に設定され、移動速度が100mm/sに設定されています。 |
3 |
画像撮影位置1に移動させ、キャリブレーションボールの位置姿勢データを取得 |
LMOVE CALIB[1] BREAK CALL MM_START_VIS(1,0,1,.#start_vis) TWAIT 3 |
このステップでは、ロボットを画像撮影位置1に移動させ、Mech-Visionプロジェクト1をトリガーしてキャリブレーションボードを撮影し、キャリブレーションボードの位置姿勢を計算します。 |
4 |
画像撮影位置2に移動させ、キャリブレーションボールの位置姿勢データを取得 |
LMOVE CALIB[2] ;move to calib point #2 BREAK CALL MM_START_VIS(2,0,1,.#start_vis) TWAIT 3 |
このステップでは、ロボットを画像撮影位置2に移動させ、Mech-Visionプロジェクト2をトリガーしてキャリブレーションボードを撮影し、キャリブレーションボードの位置姿勢を計算します。 |
ビジョンプロジェクトを設定
ロボットプログラムが作成された後、実際の生産時にドリフトを補正するためにビジョンプロジェクトを設定する必要があります。詳細は以下の通りです。
ビジョンプロジェクトに「ハンドアイのドリフト補正」ステップの組合せを追加し、その前に「ワーク認識」またはその他のマッチング関連のステップを追加し、位置姿勢と点群の入力ポートに入力があることを確認し、その後に位置姿勢調整関連のステップを追加します。
「ハンドアイのドリフト補正」ステップの組合せの点群の入力ポートは、カメラ座標系におけるシーンの点群を出力できる任意の出力ポートにつなぐことができ、必ずしもマッチング関連ステップの点群の出力ポートにつなぐ必要はありません。 |
これで設定手順が完了しました。ビジョンシステムが実際に運転する際には、ドリフトを補正することができます。
データ監視
設定が完了した後、実際の生産プロセスでは、ドリフトデータの監視によりドリフト補正の状態を確認できます。
「ハンドアイのドリフト自動補正」機能のホームページ右上隅にある データ監視 ボタンをクリックして、データ監視のダッシュボードにアクセスします。ここでデータ補正のデータシートを確認できます。
白いデータはドリフト値が正常範囲内にあることを示します。一方、赤色のデータは、ドリフト補正が行われたにもかかわらず、まだアラートしきい値を超えるドリフト値を示します。
データシート内のデータの説明は以下の通りです。
|
ドリフト値が設定されたアラートしきい値を超えると、ドリフト補正の効果に影響を与える可能性があります。この場合、 カメラの内部パラメータ 、 ロボットの精度 、 カメラの外部パラメータ に問題がないか確認するか、設定ツールの手順に基づいて基準データを再取得する必要があります。 |