第7章

キャリブレーションとビジョンノード

7-1 カメラ

7-1-1 ビルドインカメラモジュール

ロボットに備え付けられているビルドインカメラモジュールを“Eye In Hand(アイ イン ハンド)”と呼んでいます。

このカメラが撮像している映像を確認するための簡単な方法を説明します。

1.新規プロジェクトを作成します。

2.右上のシステム機能メニューアイコンを押下して「システム機能メニュー」を表示します。

「表示」アイコンを押下します。

3.カメラのライブ画像のクイック表示が起動します。

4.複数カメラを接続している場合、左上プルダウンメニューで表示させたいカメラを選択します。

終了させるには、右上のXボタンを押下します。

7-2 ビジョン キャリブレーション

7-2-1 キャリブレーションとは

カメラを使った機能(登録したモデルをカメラ視野内で見つけるサーチなど)を実行させるには、キャリブレーションと呼ばれる操作をすることが必要です。
ロボットシステムに於いて、様々な意味合いのキャリブレーションがありますが、ここでは、カメラキャリブレーションに限って説明しています。
カメラを使った機能を実行するには、例えば、カメラ画像の歪み(収差)を補正しておく必要があります。また、撮像した映像内での寸法とカメラの撮像素子(画素)との関係(解像度 mm/pixel)も把握しておく必要があります。このような目的に対して必要となるデータがあり、それを取得するための一連の操作をキャリブレーションと呼びます。これにはある程度の工程が必要なのが一般的です。

TMシリーズでは、「ダイスボード」と呼ばれるプレートを使用することで、キャリブレーションの工程を自動で完了させることができます。

ダイスボードはロボットに2種類同梱されています。
視野(撮像範囲)に応じて使い分けます。

7-2-2 キャリブレーションの留意点

キャリブレーションを実行し、そのキャリブレーションデータを使用する場合、カメラとダイスボード間の距離の関係は大変重要です。
左写真の位置関係でキャリブレーションを実行し、中写真でのカメラを使った機能は正常に実行(ワークをピック)します。ただし、右写真では正しく機能しません。ワーク配置面が下へ下がっており、距離がキャリブレーションしたときと異なっているからです。



距離が変われば、再度キャリブレーションするのが通常ですが、TMシリーズでは、TMLandmarkを使うことにより、ワーク配置面に変動があっても対処できます(8章)。

7-2-3 キャリブレーション実行

ダイスボードを使った自動キャリブレーションの手順を説明します。

1.ダイスボードをワークスペースへ配置します。
ロボットをFREEボタンを押しながら初期位置へ移動させます。

2.クイック表示でダイスボードが撮像できていることを確認します。

3.TCPが全ての方向へ10㎝ほど自由に動きます。障害物などに当たらないことを確認します。

4.ノードメニューからVisionノードをドラッグもしくはVISIONボタンを押下して、StartノードへVisionノードを追加します。

5.VISIONボタンはカメラモジュールの背後にあります。ボタンを一回押下すると、Visionノードが追加されます。

6.Visionノードの編集アイコンを押下します。

7.「ビジョンジョブ」を押下します。
次に、+ボタンを押下します。
次に、ジョブ名を入力します。
OKボタンを押下します。

8.「タスク」の中の「校正」(= キャリブレーション)を押下します。

9.校正方式の選択ダイアログがポップアップします。
ここでは「自動」アイコンを押下します。

※ここの流れはVer1.72ベースです。操作は実際のダイアログの案内に沿ってすすめていきます。

10.ダイスボードが検出可能であることを確認します。
緑文字で「DiceBoard Detected」がライブビデオの左上に表示されていればOKです。

表示されていれば、「次へ」を押下します。
表示されなければ、カメラの中心がダイスボードの中心になるよう初期位置を調整します。もしくは、視野が狭く、ダイスボードの一部しか映っていなければ、初期位置の高さを上げて、視野が広くなる様にします。もしくは、カメラの調整が必要かもしれません(後述)。

11.メッセージがポップアップします。
「いいえ」を押下します。
ロボットスティックの「実行/一時停止」ボタンを押下して、キャリブレーションをスタートします。
この瞬間のカメラの位置(高さ距離)が、今回のキャリブレーションデータに保存されることになります。

12.メッセージがポップアップします。
ダイスボード面に対してカメラが垂直に向くようにカメラの位置を補正しました。

OKボタンを押下します。

13.「次へ」を押下します。

14.OKボタンを押下します。

15.メッセージがポップアップします。
ロボットスティックの「実行/一時停止」ボタンを押下して継続させます。

16.メッセージがポップアップし、キャリブレーションが完了しました。
「OK」ボタンを押下します。
「保存」ボタンを押下します。

17.今回のキャリブレーションデータをワークスペースとして名称を付けて保存します。
名称を入力したら、「保存」ボタンを押下します。

18.メッセージが表示されます。
「はい」ボタンを押下します。

これで完了です。

7-3 ビジョンノードとタスクデザイナー

7-3-1 タスクの種類

ここではカメラの調整画面と「AOIのみ」のタスクを紹介します。
※AOI:Automated Optical Inspection(自動光学検査)の略語。
通常のパターンマッチングなどと異なりビジョンベースが作成されません。処理時間が短くなるため、検査用途で使うのに適しています。

1.タスクデザイナーのアイコンを押下します。

2.7つのアプリケーションから「AOIのみ」を選択します。

3.次へボタンを押下します。

4.画面が変わり、左に「フロー」が表示されます。
「INITIATE」で右クリックして「編集」を選択します。

5.「パラメータを調整」を押下します。

6.パラメータとして
シャッター
ゲイン
ホワイトバランス
フォーカス
があります。

7.① シャッタースピード:
露光時間です。値が大きいほど露光時間が長くなるので、カメラが取込む光の量は増え、明るい画像になります。代わりに撮像対象が動くと画像はブレやすくなります。

②ゲイン:
電気回路で画像の明るさを増幅します。ゲインを大きくすると、カメラノイズも増幅されるため、一般的に画像にノイズが目立つ画像になります。明るさが必要な場合、ゲインを積極的に使うのではなく、可能な限り照明で光量を補うことをお勧めします。

③ ホワイトバランス:
色の感度を調整します。RGBのパラメータがありますが、通常は「自動ワンス」使って設定します。カメラに白地のモノを映して「自動ワンス」ボタンを押下します。

④ フォーカス:
ピント調整です。ダイスボードのようなエッジがハッキリ出るワークを映して「自動ワンス」ボタンを押下します。それでもまだピントがあまければ手動で微調整します。

パラメータは①→④→③の順で「自動ワンス」ボタンを押下して調整します。

8.変更したら「更新」ボタンを押下して保存します。

9.この画面には、照明のON/OFFのチェックボタンがあります。

左上の戻るボタンを押下して戻ります。

10.上のアイコンから、様々なカメラの機能を選択することができます。
「強化」(画像処理)を押下します。

コントラスト強化、カラープレーン抽出、平滑化、しきい値を適用、形態、反転

11.「検索」を押下します。

パターンマッチング(形状)
パターンマッチング(画像)
ブロブファインダ
アンカー
基準マークマッチング
外部検出

12.「識別」を押下します。

バーコード/QRコード
カラークラシファイア
外部分類
String Match

13.次に、このビジョンジョブから抜けます。

設定をしていたならば、抜ける前には必ず保存をします。この操作は忘れずに必ずおこなってください。

14.ダイアログがポップアップします。
「保存」ボタンを押下します。

15.はいボタンを押下します。
再び、はいボタンを押下します。

16.OKボタンを2回押下して、プロジェクト編集ページに戻ります。

他にも「ビジュアルサーボ」や「ビジョンIO」など、ビジョンアプリケーションの作成が簡単になるようサポートする機能が搭載されています。

7-4 パターンマッチング(形状)

7-4-1 パターンマッチング(形状)の機能

パターンマッチング(形状)は、ワークのシルエット(輪郭)をパターン(モデル)として事前に登録し、都度取込んだ撮像画像の検査対象領域にあるワークの輪郭とモデルの輪郭が一致しているワークの座標と傾き、ワークの個数などの情報を取得する機能です。

モデルとの一致度をスコア(相関値)と呼び、0.0~1.0までの値をとります。一致するほど1.0の値に近くなります。また、所定の相関値以上のワークのみ検出できるようにするパラメータがあります。



ここではパターンマッチング(形状)の設定手順について説明します。

1.新規プロジェクトを作成し、Visionノードを追加します。
編集アイコンを押下します。

2.「ビジョンジョブ」を押下し、+ボタンを押下します。次にジョブ名を入力して、OKボタンを押下します。

3.「タスクデザイナー」アイコンを押下します。

4.今回は「固定ポイント」アイコンを押下します。
「AOIのみ」はVisionベースを作りませんが、「固定ポイント」はVisionベースを作ります。

5.ワークスペースのロードを求めてきます。
今回は、先に「自動」で校正(=キャリブレーション)して保存したワークスペースを選択し、ロードします。

ワークスペースがなければ、キャンセルで終了し、校正を実行します。

ロードボタンを押下します。

6.ワークスペースを作成したときの初期位置へ移動させます。
ロボットスティックの+ボタンを押し続けます。
ロボットは初期位置へ移動します。

7.ワークを配置します。ここでは白色のランプを用いて説明します。

次に、検索を押下します。

8.「パターンマッチング(形状)」アイコンを押下します。

9.パターンマッチング(形状)の設定手順

1.パターンを選択します。
見つけたいワーク(モデル)の形状を登録します。
登録の仕方には2つあります。

2.パターンを編集します。(必要に応じて)

3.検索範囲を設定します。
他に回転/スケーリング範囲も設定します。

4.パラメータ調整
期待する結果を得られるように設定します。

7-4-2 パターンの登録

登録の仕方には2つあります。ここでは「パターンを選択」で登録します。
■ 「パターンを選択」で登録

1.登録したいワークを画面に表示させておきます。

「パターンを選択」を押下します。

2.マウス左クリックで、ワークの左上から右下へドラッグし、矩形領域を設定します。
なるべくワーク全体を小さく囲います(不要な部分は含まれないようにします)。

3.必要に応じて、矩形領域の大きさや回転方向を調整します。
よければ右下の次へボタンを押下します。

4.メッセージが表示されます。

5.モデルの登録完了です。

2つ目の登録方法「スマートパターンラーナー」で登録します。
これは、登録したいモデルが無い画像とある画像のエッジの差分情報からモデルを登録する仕組みです。
■ 「スマートパターンラーナー」で登録

1.画像に登録したいワークが「無い」ことを確認します。
「スマートパターンラーナー」を押下します。

2.次へボタンを押下します。

3.ワークを1つカメラ下に配置します。
次へボタンを押下します。

4.パラメータを調整して、適切なエッジを抽出するように調整します。

よければ次へボタンを押下します。
登録完了です。

7-4-3 パターンの編集

ここでは登録したパターンの編集方法について説明します。

1.「パターンを編集」を押下します。

2.登録したパターンは、青色のエッジで表示されています。

拡大(+)/縮小(-)ボタンで、表示を調整します。

3.不要なエッジがあれば、「消しゴム」機能で削除します。

4.エッジを手書きで設定することができます。
ここでは、まず「すべて消去」で全部消します。

注意
手書きを行うケースは間違えて消してしまったエッジを追記する場合などを想定しています。
エッジが検出出来ていない場合はカメラパラメータやエッジパラメータの調整を行ってください。

5.「ペンツール」で設定します。
ここでは、円を選択します。
円は、ドラッグして作る矩形領域の内接円として設定されます。それを考慮に入れて、左上から右下へ矩形領域を設定します。

6.このエッジに追記することができます。
ここでは、自由曲線のペンを選択し、追記します。

7.編集が完了したら、左上の終了アイコンを押下します。
メッセージがポップアップします。はいボタンを押下します。

編集は完了です。

7-4-4 検索範囲を設定

ここでは検索範囲の設定について説明します。

1.「検索範囲の設定」を押下します。

2.デフォルトで画面全体が検索範囲となっています。
必要に応じて大きさや回転、形状を編集します。

よければ次へボタンを押下します。

3.回転範囲を設定します。
円のようなモデルの場合は、±0で設定します。

次へボタンを押下します。

4.スケーリング範囲を設定します。
登録したモデルより、「どれだけ大きい/小さいものを検出対象にするか」を設定します。

次へボタンを押下します。

5.パラメータを調整します。
見つけたいワーク数の最大値やスコア(相関値)などを設定し、期待する結果を得られるように調整します。

「ピラミッドレイヤ」はこのパターンマッチングのアルゴリズムへ直接関係するパラメータです。
レイヤ数が大きいほど処理時間は短くなりますが、特徴が多いワーク(例えば実装基板など)では、検索失敗になる場合もあります。そのような時は、値を小さくする方へ調整します。

6.「方向性エッジ」は、背景に対する登録したモデルのコントラストの関係を考慮するか否かを指定します。

7.「方向性エッジ」について、ONの場合、例えば登録したモデルが背景に対して相対的に暗ければ、都度検出するワークも同じコントラストの関係にあるワークを検出します。

OFFの場合、コントラストの関係なく、シルエットが一致すれば検出します。
金属など表面に光沢があるワークの場合、照明の当たり方で関係が変わるために、OFFにすると安定して検出できる場合があります。

7-4-5 設定保存

設定の保存の手順です。保存の操作を忘れないように必ず実施します。

1.左上の「戻る」(白矢印)アイコンを押下します。

2.画面にワークが複数あれば、1つだけ検出されるように他を除去もしくは隠しておきます。

左上の「保存」アイコンを押下します。
ポップアップメッセージが表示されます。
「保存」ボタンを押下します。

3.メッセージがポップアップします。
はいボタンを押下します。

終了して良いかと尋ねてきます。はいボタンを押下します。

4.保存した名称でリスト表示されます。
「OK」ボタンを押下します。

さらに「OK」ボタンを押下してビジョンノードを終了します。

5.パターンマッチング(形状)でVisionノードが設定されました。

7-5 ブロブファインダ

7-5-1 ブロブファインダの機能

ブロブファインダは、検出したいワークの色情報を登録し、都度取込んだ撮像画像の検査対象領域にある指定した色のかたまりの座標と傾き、ワークの個数などの情報を取得する機能です。

7-5-2 ブロブファインダの設定

ここではブロブファインダの設定手順について説明します。

1.プロジェクトを新規作成します。
Visionノードを追加して、ジョブ名をつけます。

2.タスクデザイナ→固定ポイント→ワークスペースをロード → ブロブファインダを押下するまで進みます。(7-4-1を参照)

3.設定手順は、
①検索範囲を設定
②色を検出
③色範囲を調整
④パラメータの調整
です。

4.「検索範囲を設定」を押下します。

5.必要に応じて、矩形領域の大きさや回転方向を調整します。
よければ右下の次へボタンを押下します。

6.「色を抽出」を押下します。色情報の扱い方にはRGBもしくはHSVが選択できます。

画像の抽出したいワークの上で、抽出したい色の範囲をマウスの左ボタンでドラッグします。

正しく抽出操作ができていれば、操作した対象ワークが青色と座標軸が重ねて表示されます。

7.このとき、同じ緑でも検出できていないワークが存在することがあります。

ワークは3つあるので、「最大オブジェクト数」に3以上の値を設定します。

8.他2つのワークも検出できるように色情報の範囲を調整します。
スライダーもしくは、上下矢印、上下限値を選択して直接数値入力などで、調整値を設定します。

9.今回のワークは丸です。
「回転を無視」をONすることで、方向が一定になります。

10.左上の「戻る」ボタンを押下します。

11.画面にワークが複数あれば、1つだけ検出されるように他ワークを除去もしくは隠しておきます。

「保存」のアイコンを押下します。

12.ジョブを保存し、「はい」ボタンを押下していき、Visionノードの設定を完了します。

7-6 Visionベース

7-6-1 Visionベースの設定

ベースについは、「2-5 座標系(ベース)」でふれました。ここではVisionベースのフローチャートでの設定に関して説明します。

1.Visionノードを追加し、「固定ポイント」で「タスクデザイナ」を設定します。
ここではパターンマッチング(形状)で設定しています。
「固定ポイント」では新たに「Visionベース」を作成します。
このとき、プロジェクト編集ツールバーで「Visionベース」が選択されていることを確認します。

2.FREEボタンを押して、ワーク付近までロボットを移動します。

3.Visionノードを選択した状態で、Pointノードをドラッグしてつなげます。

「通過ルート」を選択します。

4.1の番号が付与された「Visonベース1」とそのベースで定義されたPointのプログラムです。
「Visionベース1」はVisionノードで定義され、ノード左側にアイコンが付きます。
そのVisionベースから相対的な位置情報が登録されていることを意味するのがノード右側にアイコンがついているPointノードです。
Visionベースは、一つのプログラムに複数存在することができ、ユニークな番号が付与されています。
Pointノードは、任意のVisionベースを選択することができます。また、Robotベースなど他のベースも選択することができます。

5.実行/一時停止ボタンを押下して、実行します。
Visionノードの初期位置とPointノードの間を行き来することを確認したら停止ボタンを押下します。

下敷きを動かしてワークの位置をカメラ視野内で変えます。

ロボットスティックの「実行/一時停止」ボタンを押下して、実行します。
変えた位置のワークに対しても相対的に変更前と同じ位置へロボットが追従することを確認します。

6.Pointノードの編集アイコンを押下し、ポイントマネージャから「別のベースで再記録する」を選択します。

7.「RobotBase」を選択して、「OK」ボタンを押下します。

8.再び、ロボットスティックの「実行/一時停止」ボタンを押下して、実行します。
同じように下敷きを動かしてワークの位置を変えます。変えた位置へアームは追従しないことを確認します。
PointノードはRobotBaseで定義する位置へ移動しています。

第1章 はじめに
1-1 協調ロボット
1-2 TMシリーズ
1-3 安全について
第2章 協調ロボット TMシリーズ
2-1 基本構成
2-2 ハードウェア
2-3 ソフトウェア
2-4 周辺機器
2-5 座標系(ベース)
2-6 特異点
2-7 TCP
2-8 設置条件
第3章 セットアップ
3-1 使用機器
3-2 セーフティ機器の接続
3-3 ロボットの起動
3-4 マニュアル/オートモード
3-5 表示ライトリング
第4章 基本動作のプログラミング
4-1 ログイン
4-2 初回起動時にすべきこと
4-3 ティーチング
4-4 緊急スイッチ(E-STOP)からの復帰
4-5 FreeBotコントロール
4-6 協調(協働)モードの設定
4-7 デカルト制限
第5章 フローチャートを使ったプログラミング
5-1 フローチャートとノード
5-2 ポイント設定
5-3 シンプルなPick&Place
第6章 グリッパーの取付け方法
6-1 エンドエフェクタの使用準備
6-2 グリッパー コンポーネント
6-3 グリッパーボタン
第7章 キャリブレーションとビジョンノード
7-1 カメラ
7-2 ビジョン キャリブレーション
7-3 ビジョンノードとタスクデザイナー
7-4 パターンマッチング(形状)
7-5 ブロブファインダ
7-6 Visionベース
第8章 カメラを使ったP&P動作の設定
8-1 Pick&Place
参考 ステップ実行
8-2 TM Landmarkを使ったP&P
8-3 TM Landmarkへ関連づけたP&P
参考 プログラムのスタイル
第9章 その他
9-1 デジタルI/O
9-2 変数
9-3 構文
9-4 サブフローとスレッド
9-5 オートモードで実行
9-6 演習問題