整列して並べられたシャフトやバー¶
本節では、整列して並べられたシャフトやバーのプロジェクト使用について説明します。
ワーク |
整列して並べられたシャフトやバー、金属製の円柱状 |
稼働距離 |
1200~3000mm |
技術仕様 |
位置決め精度:±3mm |
認識の成功率:99.9%以上 |
|
ビジョンシステムの処理時間:4s以内 |
プロジェクト概要¶
このプロジェクトは、整列して並べられたシャフトやバーを対象とし、ほとんどのシャフト/バーの供給シーンに対応しています。
以下では、適用シーンと技術仕様から説明します。
適用シーン¶
以下では、ワークと容器からプロジェクトの適用シーンについて説明します。
ワーク¶
シャフトやバーの特徴への対応状況は、下表のとおりです。
ワーク特徴 |
対応状況 |
サンプル図 |
ワーク種類 |
整列して並べ替え、一体的に配置されたシャフトやバーに対応 |
|
バラ積みされたシャフトやバーには非対応 |
||
形状寸法 |
円柱状に対応 |
|
ワーク材質 |
金属製に対応し、ワーク表面の錆や少量の油汚れを許容 |
|
反射性 |
ワーク表面のわずかな反射性を許容 |
|
点群品質 |
点群抜けが少なく、主要な特徴で点群抜けが10%以下の場合に対応 |
ヒント
このプロジェクトでは、鋼棒のスーパーモデルを使用しています。鋼棒スーパーモデルで認識可能な鋼棒の例については、 付録 をご参照ください。
容器¶
容器への対応状況は下表のどおりです。
容器特徴 |
対応状況 |
サンプル図 |
容器種類 |
パレットに対応 |
|
箱にも対応、じょうご型の箱は推奨 |
||
側壁に反射性を持つ箱、側壁が変形のある箱、プラスチックシート付き箱、グリッドのある箱などには非対応 |
プロジェクトの内容¶
レイアウト¶
セルのレイアウト¶
セルのレイアウトを下図に示します。
このセルでは、以下のような流れで作業します。
AGVにより、シャフトやバーを載せるパレットが供給位置に配置されます。
ロボットがビジョンシステムに撮影コマンドを送信し、箱内のシャフトやバーを撮影して認識し、ビジョンシステムがシャフトやバーの位置をロボットに送信します。
ロボットがビジョンシステムによって送信されたシャフトやバーの位置情報に従ってワークの把持を行い、シャフトやバーを位置決めテーブルに配置します。
供給が完了するまで上記の流れを繰り返して実行します。
ビジョンシステムのハードウェア構成要素¶
推奨型式 |
説明 |
|
カメラ |
LSR L |
推奨取り付け方式:Eye-to-Hand(固定/スライド式) 稼働距離:1200-3000mm |
産業用PC |
GPU(K-Q37MV-Q370)搭載標準機種 |
プロセッサー:CPU I7-9700 |
メモリ:16G |
||
ハードディスク:256G SSD |
||
グラフィックカード:1050 TI |
||
WIFIモジュール |
ロボットハンド¶
通常はV字型の磁気吸着式ハンドが採用されています。
磁気吸着式ハンドを下図に示します。
ハンド説明:
異なる直径のシャフトやバーに対するハンドの互換性には注意が必要で、ハンドの把持方向にクッションを設けることを推奨します。
ハンドのメリット:
把持方向にクッションを設けるため、把持の成功率が大幅に向上させ、ハンドへの保護も実現します。
一定範囲内では異なる直径のワークの把持に対応します。
ハンドのデメリット:
シャフトやバーの直径が小さい場合、一度に複数のワークを把持する可能性があります。
ビジョン関連説明¶
通信方式¶
標準インターフェース通信を使用することを推奨します。
1. Mech-Visionレシピの切替 |
|||
ロボット -> 産業用PC |
送信コマンド |
Mech-Visionプロジェクト番号 |
レシピ番号 |
103 |
Mech-Visionプロジェクトリストでプロジェクト名の左側の数字 |
1~99 |
|
サンプル |
103, 1, 2 |
||
産業用PC -> ロボット |
受信コマンド |
ステータスコード |
|
103 |
1107:レシピの切替に成功 1012:Mech-Visionレシピ番号がない |
||
サンプル |
103, 1107 |
2. Mech-Vizプロジェクトを起動 |
|||
ロボット -> 産業用PC |
送信コマンド |
位置姿勢のタイプ |
ロボット位置姿勢 |
201 |
0:位置姿勢送信しない 1:Mech-Vizに送信された位置姿勢が関節角度とフランジ位置姿勢の形式 2:ロボット側でカスタマイズされた関節角度 |
ロボットの現在の関節角度とフランジ位置姿勢(「位置姿勢のタイプ」が1の場合) |
|
サンプル |
201, 1, 0, -20.632, -107.812, 0, -92.818, 0.003 |
||
産業用PC -> ロボット |
受信コマンド |
ステータスコード |
|
201 |
2103:実行成功 2008:プロジェクト実行エラー ...... |
||
サンプル |
201, 2103 |
2. Mech-Viz分岐を選択 |
|||
ロボット -> 産業用PC |
送信コマンド |
分岐ステップID |
出口番号 |
203 |
このパラメータは分岐選択を行うステップを指定するために使用され、正の整数である必要があります |
このパラメータはプロジェクトが「メッセージによって異なる分岐を実行」ステップのどの出口から実行を続けることを指定するために使用され、正の整数である必要があります。 |
|
サンプル |
203, 1, 1 |
||
産業用PC -> ロボット |
受信コマンド |
ステータスコード |
|
203 |
2105:実行成功 2018:分岐出口番号が無効 ...... |
||
サンプル |
203, 2105 |
4. 計画経路を取得(推奨) |
||||||
ロボット -> 産業用PC |
送信コマンド |
経路点タイプ |
||||
205 |
1:経路点がロボットの関節角度の形式で返された 2:経路点がロボットのTCP位置姿勢の形式で返された |
|||||
サンプル |
205, 1 |
|||||
産業用PC -> ロボット |
受信コマンド |
ステータスコード |
送信が完了しているかどうか |
経路点の数 |
「ビジョン処理による移動」の位置 |
経路点 |
205 |
2100:実行成功 2007:経路計画に失敗 ...... |
0:経路におけるすべての経路点が送信されていない 1:経路におけるすべての経路点が送信された |
デフォルト範囲は0~20で、20以上の経路点がある場合はこのコマンドを繰り返して実行してください |
「ビジョン処理による移動」の経路点が経路全体における位置 |
位置姿勢, ラベル, 速度 |
|
サンプル |
205, 2100, 1, 2, 2, 8.307, 15.163, -142.177, -2.775, -31.440, -96.949, 0, 64 |
5. ビジョン目標点を取得(Mech-Vizを使用しない場合に使用、推奨しない) |
||||||
ロボット -> 産業用PC |
送信コマンド |
Mech-Visionプロジェクト番号 |
||||
102 |
Mech-Visionプロジェクトリストでプロジェクト名の左側の数字 |
|||||
サンプル |
102, 1 |
|||||
産業用PC -> ロボット |
受信コマンド |
ステータスコード |
送信が完了しているかどうか |
TCP数 |
予約語 |
ビジョン目標点 |
102 |
1100:実行成功 1102:ビジョン結果なし ...... |
0:すべてが送信されていない 1:すべて送信された |
デフォルト範囲:0~20 |
この予約語が使われていないため、初期値は0です |
位置姿勢, ラベル, 速度 |
|
サンプル |
102, 1100, 1, 1, 0, 95.780, 644.567, 401.101, 91.120, -171.130, 180.0, 0, 0 |
標準インターフェース通信については、 標準インターフェース通信 をご参照ください。
プロジェクト説明¶
画像取得: シャフトやバーのカラー画像、深度画像を取得します。
インスタンスセグメンテーション: ディープラーニングとシャフトやバーのスーパーモデルにより、シャフトやバーを認識します。
点群前処理とマスクが対応する点群の抽出: シャフトやバーの元の点群に対して前処理を行い、マスクが対応する点群を抽出します。
点群サイズと点群の数によるフィルタリング: 設定されたルールに従って要件を満たしていないシャフトやバーの点群を除去します。
3D位置姿勢推定: STLモデルから生成された点群モデルを元の点群とマッチングさせ、より正確な把持点を取得します。
ディープラーニングによりマッチング軸のずれを補正: ディープラーニング機能により、マッチング軸のずれを補正します。
箱認識: 箱の上辺の中心位置姿勢を計算し、箱のROIと角度に従って不合格の箱の中心位置姿勢を除去します。
位置姿勢の処理とエラー防止: シャフトやバーの把持位置姿勢を変換・ソートし、設定されたルールに従って不合格の把持位置姿勢を除去します。
結果出力: 現在のプロジェクトの結果をバックエンドサービスに送信します。
点群モデルと把持位置姿勢の設定方式¶
マッチングモデルは、一般的にSTLモデルから生成され、把持点はシャフトの中心に設定されます。
プロジェクトにおける難点¶
マッチング時に、軸方向のずれが生じる可能性があります。
表面が滑らかなシャフトやバーの点群品質が悪いです。
ハンドの許容範囲が低く設計される場合、把持精度に対して高い要件があります。
ディープラーニング機能により、最高層のワークの認識漏れが発生することがあります。
プロジェクトの強さ¶
1つのプロジェクトにより、箱の位置決めとワーク認識を実現します。
ハンドの把持方向にクッションを設けるため、把持の成功率を大幅に向上させることができます。
プロジェクトに含まれている多くのエラー防止ステップにより、プロジェクトの安定性を向上させることが可能です。
認識に関連するステップパラメータは繰り返し検証されており、高い認識安定性を実現します。
プロジェクト実装¶
注意事項¶
異なるサイズのワークに対するハンドの互換性を考慮: セルに複数種類のワークがあり、ハンドが1つしかない場合は、複数のワークが一度に把持されたり、ハンドが個々のワークの把持に適していないことを避けるために、同じハンドで異なるサイズのワークを把持するときに互換性を考慮する必要があります。
ハンドの許容偏差はできるだけ大きく設計: 点群品質が悪い反射型ワークの場合、正常に把持するためにハンドの許容偏差をできるだけ大きく設計する必要があります。
配置位置のための許容範囲: 配置位置は、長さ方向における大きな許容範囲を推奨します。利用可能な場合は±30mm以上、制限される場合は±10mmを推奨します。
ディープラーニングモデル: このプロジェクトでは、ディープラーニングのスーパーモデルを使用していますが、トレーニングに使用されるデータは限られています。ディープラーニングの効果が要件を満たしていない場合、データを取得し、スーパーモデルのトレーニングを反復させる必要があります。
パラメータ調整のアドバイス¶
インスタンスセグメンテーション¶
画像の明るさと色バランサー :2D画像が暗すぎる場合は、このステップの 輝度係数 パラメータを調整することで明るさを増すことができます。現場のデバッグでは、2D画像が適度に明るくなるように照明条件とカメラパラメータを調整する必要があります。
ディープラーニングモデルパッケージを推論(Mech-DLK 2.2.0+) :ディープラーニングとスーパーモデルにより、シャフトやバーを認識します。ディープラーニングの認識に問題が発生した場合、画像を取得し、モデルのトレーニングを反復させ、ROIを正しく設定する必要があります。
点群サイズと点群の数によるフィルタリング¶
しきい値によって数値を二項分類 :ワークの長辺(下図1)と短辺(下図2)の最小サイズを設定する必要があります。ワークの長辺または短辺のサイズが最小サイズより小さい場合、対応するワークの点群とマスクを除去する必要があります。
点群が要求を満たすかどうかを検証 :点数がルールに合わない点群や対応するマスクを除外するために、パラメータ 最小点数しきい値 と 最大点数しきい値 を設定する必要があります。
3D位置姿勢推定¶
3D位置姿勢高精度推定 :信頼度のしきい値を0に設定する必要があり、変更することはできません。その後のステップは、マッチングスコアに従ってスコアの低いワーク位置姿勢を除去することが可能です。主な目的は、マッチング過程において出力されたワーク位置姿勢が、インスタンスセグメンテーションによって認識されたマスクと一対一で対応することです。また、マッチング偏差を小さくするために、関連するパラメータを最適化する必要があります。
ディープラーニングによりマッチング軸のずれを補正¶
しきい値によって数値を二項分類 :パラメータ 各ポートの入力データのしきい値 をマッチングスコアのしきい値にし、しきい値によってスコアの低いワーク点群と位置姿勢を除去します。
位置姿勢のある軸を指定された方向に向ける :パラメータ 基準方向 を適切に設定する必要があります。
2D点を3D点に変換 :生成された点群が、元のワークと一対一で対応する必要があります。
箱認識¶
このプロジェクトでは、平面位置姿勢を計算することで箱の位置姿勢を計算します。実際の状況に応じて箱認識の方法を選択できます。このステップの組合せは、箱の上辺の中心位置姿勢を計算するために使用され、サイズとROIの設定、角度のエラー防止にも対応可能です。
しきい値によって数値を二項分類 :箱の長辺(下図1)と短辺(下図2)の最小サイズを設定する必要があります。
位置姿勢のROIと角度によるフィルタリング
基準方向との角度によって位置姿勢が有効かどうかを検証 :パラメータ 角度の最大差 を設定する必要があります。
位置姿勢が3D ROI内にあるかどうかを検証 :3D ROIを設定する必要があります。
位置姿勢の処理とエラー防止¶
位置姿勢を指定方向に移動 (箱中心位置姿勢から一定距離にある位置姿勢):パラメータ 並進距離 は、基準点のオフセット長さとして設定する必要があります。
位置姿勢を指定方向に移動 (箱の中心位置姿勢、Mech-Vizに箱の位置姿勢を更新するために使用):パラメータ 並進距離 は、箱の上面から箱の中心のオフセット距離として設定する必要があります。
最高層の位置姿勢を取得 :パラメータ 層の高さ を設定する必要があります。
3D位置姿勢をソート :パラメータ ソート方式 を設定する必要があります。
数値リストをクイック作成 :パラメータ 数値リスト をワークの直径に設定する必要があります。
直方体内の点群を抽出 (「積み重ねられたワークの位置姿勢を除去」のステップの組合せ):パラメータ 箱の寸法設定 を調整し、ワーク自身の点群ではなく、ワークの上方にある点群を抽出する必要があります。
しきい値によって数値を二項分類 :実際の状況に応じて、 各ポートの入力データのしきい値 を点群のしきい値として設定する必要があります。このしきい値を超えた点群は積み重ねられた状態と判定され、除去されます。
位置姿勢のROIと角度によるフィルタリング
基準方向との角度によって位置姿勢が有効かどうかを検証 :パラメータ 角度の最大差 を設定する必要があります。
位置姿勢が3D ROI内にあるかどうかを検証 :3D ROIを設定する必要があります。
よくある問題と解決策¶
ディープラーニング認識エラー¶
ディープラーニングによりシャフトやバーの認識に問題が発生した場合、以下のような方法で解決できます。
ディープラーニングモデルを再度トレーニングし、データを再取得する必要があります。
ステップの組合せ「ディープラーニングのマスクによりマッチング軸のずれを補正」を削除します。