ブレーキディスク

本節では、ブレーキディスクのソリューションについて説明します。概要は以下の通りです。

ワーク

整列して並べられた同じ種類のブレーキディスク

稼働距離

1200~3000mm

技術仕様

位置決め精度:±2mm

認識の成功率:99%以上

ビジョンシステムの処理時間:5s以内

ソリューション説明

このソリューションは、整列して並べられたブレーキディスクを対象とします。

以下では、適用シーンと技術仕様から説明します。

適用シーン

以下では、ワークと容器からソリューションの適用シーンについて説明します。

ワーク

ブレーキディスク特徴への対応状況は、下表のとおりです。

ワーク特徴

対応状況

サンプル図

積み方

整列して並べられた、または複数段に整列して並べられた同種のブレーキディスクに対応

icon_1

バラ積みされた異なる種類のブレーキディスクには非対応

icon_2

形状寸法

表裏で凸凹が一致しない円形のブレーキディスクに対応

icon_3

icon_4

円形以外のブレーキディスクには非対応

icon_5

ワーク材質

鋳鉄製

反射性

反射しない、もしくは反射性が低いブレーキディスクに対応

icon_6

点群品質

点群抜け(点群抜けは5%以下)が少ないシーンに対応

icon_7

容器

容器への対応状況は、下表のどおりです。

容器特徴

対応状況

サンプル図

容器種類

パレットは推奨

icon_8

箱にも使用可能、箱とロボットハンドとの衝突を避けることが必要

icon_9

側壁が反射性を持つ箱や、変形のある箱には非対応

技術仕様

詳細は以下の通りです。

  • 位置決め精度:±2mm

  • 認識の成功率:99%以上

  • ビジョンシステムの処理時間:5s以内

注釈

ビジョンシステムの処理時間とは、カメラで画像を取得してから対象物の位置姿勢を出力するまでの時間です。

ソリューションの内容

レイアウト

セルのレイアウト

下図に示すように、ロボットはセルの中央に、供給セルはロボットの右後方にあります。

../../../_images/workstation_layout.png

このセルでは、以下のような流れで作業します。

  1. 箱はフォークリフトで手作業で供給セルに配置されます。

  2. 上位システムは、箱内のブレーキディスクの供給情報をロボットに送信します。

  3. ロボットがビジョンシステムに撮影コマンドに送信し、箱内のブレーキディスクを撮影して認識し、ビジョンシステムはブレーキディスクの位置情報と表裏ラベルをロボットに送信します。

  4. ロボットがビジョンシステムによって送信されたブレーキディスクの位置情報に従ってブレーキディスクの把持を行い、ブレーキディスクを位置決めテーブルに配置します。

  5. ブレーキディスク供給が完了するまで上記の流れを繰り返します。

ビジョンシステムのハードウェア構成要素

推奨型式

説明

カメラ

LSR L

推奨取り付け方式:Eye-to-Hand 稼働距離:1200-3000mm

産業用PC

GPU非搭載の標準機種

プロセッサー:CPU Intel i5-12400

メモリ:16G DDR4

ハードディスク:256G SSD

電源:DC24V 7.5A

システム:Windows 10システム x64ビット

WIFIモジュール

ロボットハンド

ブレーキディスクのソリューションに使用されるハンドは、磁気吸着式ハンド(マグネットハンド)と内径把持型ハンドの2種類があります。

磁気吸着式ハンド

磁気吸着式ハンドを下図に示します。

../../../_images/clamps_1.png

ハンド説明:

ブレーキディスクの外側の円形の上表面や内側の円形の上表面を直接吸着させることができます。

ハンドのメリット:

  • 様々なサイズのブレーキディスクに対応可能です。

  • より大きな把持偏差に対応し、把持の成功率を向上させます。

  • ブレーキディスクの表裏に同じ方式で把持を行い、TCPの設定も簡単です。

ハンドのデメリット:

中央の丸穴が大きいブレーキディスクには適しません。

内径把持型ハンド

内径把持型ハンドを下図に示します。

../../../_images/clamps_2.png

ハンド説明:

ハンドは、ブレーキディスクの中央丸穴を押さえて把持します。

ハンドのメリット:

  • より高い把持精度と安定性を実現します。

  • より長い使用寿命を実現します。

ハンドのデメリット:

  • 中央の丸穴が小さいブレーキディスクには適しません。

  • 把持精度に対してより高い要件があります。

  • ハンドの内側延長長さは、異なるブレーキディスクの表裏に応じて設定する必要があります。

ビジョン関連説明

通信方式

通常はAdapter通信を使用します。

Adapter 通信の説明は以下の通りです。

ロボット -> 産業用PC

送信コマンド

Mech-Visionプロジェクト番号

ワーク型番

“P”:撮影リクエスト

1~9

1~99

サンプル

P, 1, 2

説明

撮影コマンド,プロジェクト番号1,ワーク型番2

産業用PC -> ロボット

ステータスコード

ワーク型番

ワークの表裏

把持位置姿勢

0:認識成功 1:ワークなし 2:認識失敗

1~99

1:前面 2:裏面

X,Y,Z,A,B,C

サンプル

102, 1100, 1, 1, 0, 95.780, 644.567, 401.101, 91.120, -171.130, 180.0, 0, 0

説明

撮影成功, ワーク型番1,裏面,把持位置姿勢 1.574 , -0.443 , -1.122 , 43.12 , -24.25 ,179.66

ソリューション内のプロジェクトについて

ブレーキディスクのソリューションには、Vis_CreateModel、Vis_BrakeDiscの2つのプロジェクトが含まれています。

  • Vis_CreateModel:モデル点群と把持位置姿勢を生成します。Adapterと組み合わせて、サイズをソフトウェアに入力するか、保存されたワークのサイズを選択すると、点群モデルと幾何学的中心点が自動的に生成されます。その流れを下図に示します。

../../../_images/project_overall_framework_1.png
  • Vis_BrakeDisc:ブレーキディスクを位置決めして認識します。プロジェクト1によって生成された点群モデルを使用して、3Dマッチングによりブレーキディスクを位置決めします。モデルは、ワークによって切り替える必要があります。その流れを下図に示します。

../../../_images/project_overall_framework_2.png
  1. 画像取得: ブレーキディスクのカラー画像、深度画像を取得します。

  2. 点群前処理: ブレーキディスクの元の点群を前処理します。

  3. 3Dエッジマッチング: ブレーキディスクの点群エッジモデルを使用して点群モデルのマッチングを行います。

  4. ブレーキディスクの表裏認識: ブレーキディスクの表裏を区別します。

  5. 位置姿勢の処理: ブレーキディスクの把持位置姿勢を変換・ソートします。

  6. 結果出力: 現在のプロジェクトの結果をバックエンドサービスに送信します。

点群モデルと把持位置姿勢の設定方式

Mech-Visionを使用してブレーキディスクの円形の点群を作成し、その点群から円形のモデルを抽出します。

生成された円形の中心点は、マッチング時に幾何学的中心点として使用されます。

../../../_images/model_and_pick_point.png

ソリューションの強さ

  • 便利なUIにより、生産をよりスマートに、より簡単にします。

  • ワークのサイズによってマッチングのための点群モデルが自動的に生成することが可能です。ブレーキディスクの型番を一度追加すると、ブレーキディスクのサイズを一度追加するだけで、再度追加する必要はありません。

  • 安定した認識を実現します。エッジマッチングにより、誤認識や認識漏れを防止し、ブレーキディスクの表裏を安定して認識することができます。

  • 完全なエラー防止ステップにより、異常なワークに異常を示すラベルを追加することが可能です。

ソリューションにおける難点

  • ブレーキディスクの表裏を認識する必要があります。

  • ブレーキディスクの種類(型番)が多いため、設定された実寸情報に応じて点群モデルを更新する必要があります。

  • ロボットが把持する際に、パレットやパーテーションを認識しやすくなります。

ソリューションの実装

注意事項

新しいブレーキディスクの型番を追加する場合、対応する画面は以下のようになります。

../../../_images/user_interface_1.png

新しいブレーキディスクの型番を追加するには、以下の手順を実行します。

  1. 1にブレーキディスクの型番を選択します。

  2. 2にブレーキディスクの外側円形の直径を記入します。

  3. 3、4に凹面と凸面のTCPのZ方向オフセットを設定します。凹面と凸面のTCPのZ方向オフセットは、磁気吸着式ハンドの場合にすべて0に設定します。内径把持型または外部把持型ハンドの場合、実際の状況に応じて凹面と凸面のTCPのZ方向オフセットを設定する必要があります。

  4. 「保存」をクリックすると、新しいブレーキディスクの型番が追加されます。

ブレーキディスクの型番を切り替えるには、以下の手順を実行します。

  • 5にチェックを入れる場合、上位システムから受信されたブレーキディスクの型番に従って、現在生産されている型番に切り替えます。

  • 5のチェックを外した場合、生産される型番を切り替えるには、インターフェース上でブレーキディスクの型番を手動で切り替える必要があります。

パラメータ調整のアドバイス(プロジェクト1)

  • 対象物のモデルを作成 :パラメータ 外円の半径 がブレーキディスクの外側の円形半径(下図の左側)と一致させる必要があります。

../../../_images/create_object_model.png

生成された把持位置姿勢と点群モデルの相対位置姿勢関係を下図に示します。

../../../_images/create_object_model_1.png

パラメータ調整のアドバイス(プロジェクト2)

点群前処理

../../../_images/extract_3d_points_in_3d_roi.png
../../../_images/filtering_and_clustering.png
../../../_images/estimate_point_cloud_edges_by_3d_method1.png

3Dエッジマッチング

  • 3D位置姿勢低精度推定(V2) :モデルファイルと幾何学的中心点ファイルのパスは、プロジェクト1に保存されたモデルファイルと幾何学的中心点ファイルのパスと一致する必要があります。

  • 3D位置姿勢高精度推定 :最高層のワークがすべて認識されていることを確認する必要があり、下層のワークは完全に認識されなくても問題ありません。

../../../_images/3d_fine_matching.png

ブレーキディスクの表裏を認識

  • 最高層の位置姿勢を取得 :ブレーキディスクの凸面の内側の円形の上表面と、凹面の外側の円形の上表面の高さがほぼ同じである場合は、凹面の位置姿勢だけを取得すればいいです。

../../../_images/get_highest_layer_poses.png
  • 円柱以内の点群を取得 :このステップのパラメータは、ブレーキディスクのサイズに従って設定する必要があります。ブレーキディスクの凸面が上向きの場合、突起のある内側円形の点群を抽出することができます。ブレーキディスクの凹面が上向きの場合、抽出される点群は理論上空となります。これにより、ブレーキディスクの凸面(表面)と凹面(裏面)を区別することができます。

  • しきい値によって数値を二項分類 :ブレーキディスクの凹凸面を区別するために、パラメータを適切に設定する必要があります。

位置姿勢の処理

../../../_images/validate_existence_of_poses_in_3d_roi.png
  • 位置姿勢フィルタリング :パラメータ 角度のしきい値 を設定し、しきい値を超えたワークに異常を表すラベルを追加します。

../../../_images/add_label_for_pose.png

よくある問題と解決策

認識結果なし/偏差あり

  1. 方法1:「点群前処理」のステップの組合せを最適化します。

    ../../../_images/brake_discs_unloading_trouble_shooting_1.png

    予期通りの結果が得られていない場合、以下のパラメータを調整することができます。

    点群の法線ベクトルを計算してフィルタリング

    法線ベクトルを計算するときの半径

    点のフィルタリング

    最小角度差、最大角度差

    3D方法による点群エッジを推定

    角度のしきい値、検索される近傍点の数

  2. 方法2:点群モデルのサイズが、ブレーキディスクの点群サイズと一致するかどうかを確認します。

    ../../../_images/brake_discs_unloading_trouble_shooting_2.png
  3. 方法3:マッチングに関連するパラメータを最適化します。

    3D位置姿勢低精度推定(V2) ステップでは、パラメータ サンプリングされたモデルの期待点数参考点のサンプリングステップサイズボクセル長さ を優先的に調整することを推奨します。

点群抜け

ブレーキディスクの点群抜けが多いためマッチングが不安定になる場合は、 点群前処理 のステップの組合せの後にディープラーニング関連のステップを追加し、マッチング前にブレーキディスクのマスクを取得することが推奨されます。

ディープラーニング機能により個々のマスクを抽出して分割し、表と裏を認識することが可能です。

../../../_images/dl_supplement_1.png

その後、マスクが対応する点群を抽出し、点群モデルマッチングと認識を行います。

../../../_images/dl_supplement_2.png