通い箱

本節では、通い箱のプロジェクトについて説明します。

ワーク

整列させ、複数段に積み重ねられた直方体のプラスチック製のフタなし通い箱で、反射性が低く、点群抜けが20%以下

容器

パレット

稼働距離

1200~3500mm

技術仕様

位置決め精度:±4mm

認識の成功率:99.9%以上

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

プロジェクト概要

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

適用シーン

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

ワーク

通い箱の特徴への対応状況は、下表のとおりです。

ワーク特徴

対応状況

サンプル図

ワーク種類

フタなし通い箱に対応し、密集している通い箱同士にも対応

icon_1

フタ付き通い箱には非対応

icon_2

形状寸法

直方体

icon_3

ワーク材質

プラスチック

反射性

低い反射性

積み方

複数段に整列される

icon_8

点群品質

通い箱のエッジ点群に少量の点群抜けを許容(点群抜けは20%以下)

icon_4

大量の点群抜けや、通い箱のエッジが対象物で遮られている場合には非対応

icon_5

容器

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

容器特徴

対応状況

サンプル図

容器種類

パレット1

icon_7

パレット2

icon_6

技術仕様

通い箱のプロジェクトの技術仕様は以下のどおりです。

  • 位置決め精度:±4mm

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

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

注釈

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

プロジェクトの内容

レイアウト

セルのレイアウト

セルのレイアウトを下図に示します。

../../../_images/workstation_layout4.png

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

  1. AGVにより、通い箱がデパレタイジング位置に搬送されます。

  2. ロボットが撮影コマンドをビジョンシステムに送信し、通い箱を撮影して認識を行います。ビジョンシステムは通い箱の位置をロボットに送信します。

  3. ロボットがビジョンシステムによって送信された通い箱の位置に従ってデパレタイジングし、通い箱をコンベアに配置します。

  4. 供給が完了するまで上記の流れを繰り返して実行します。

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

推奨型番

説明

カメラ

DEEP

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

産業用PC

GPU非搭載の標準機種

プロセッサー:CPU I5-12400

メモリ:16G DDR4

ハードディスク:256G SSD

電源:DC24V 7.5A

システム:Windows 10 21H1

WIFIモジュール

ロボットハンド

このプロジェクトでは、通常、左右クランプ式ハンドと隣辺クランプ式ハンドを使用しています。密集している通い箱をデパレタイジングする場合、隣辺クランプ式ハンドの使用を推奨します。

左右クランプ式ハンド

左右クランプ式ハンドを下図に示します。

../../../_images/clamps_14.png

ハンド説明:

このハンドは、2枚のクランププレートによって通い箱を把持できます。

ハンドのメリット:

  • 様々なサイズの通い箱に対応します。

  • 箱との接触面は柔らかい素材でできているため、クッション効果があり、通い箱の変形を抑えることができます。

ハンドのデメリット:

  • 密集している通い箱のデパレタイジングに対応しません。

隣辺クランプ式ハンド

隣辺クランプ式ハンドを下図に示します。

../../../_images/clamps_22.png

ハンド説明:

このハンドは、まず通い箱の隣接する2辺を把持し、把持した後、パレットフックを下げてから通い箱を四方で把持し、配置位置の上方に到達するとパレットフックを開いて通い箱を配置します。

ハンドのメリット:

  • 密集している通い箱のデパレタイジングが可能です。

  • 様々なサイズの通い箱に対応します。

  • 箱との接触面は柔らかい素材でできているため、クッション効果があり、通い箱の変形を抑えることができます。

ハンドのデメリット:

  • 重量が大きい(50kgなど)通い箱の把持に対応しません。

ビジョン関連説明

通信方式

標準インターフェース通信を使用することを推奨します。

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

標準インターフェース通信については、 標準インターフェース通信 をご参照ください。

プロジェクト説明

このプロジェクトは下図のような流れで行います。

../../../_images/project_overall_framework_03.png
  1. 画像取得: 通い箱のカラー画像、深度画像を取得します。

  2. 点群前処理: 通い箱の元の点群を前処理し、通い箱の上辺の点群を抽出して、その後の処理時間を短縮させます。

  3. 3D位置姿勢推定: エッジ点群モデルを、点群前処理によって取得された通い箱の上辺のエッジ点群とマッチングさせ、把持の候補位置姿勢を取得します。

  4. 位置姿勢のエラー防止: 設定されたルールに従って不合格の把持位置姿勢を除去し、プロジェクト実行中に認識漏れや誤認識などがないかどうかを判断します。

  5. 位置姿勢の処理: 把持位置姿勢を変換・ソートします。

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

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

モデル設定:

  • 設定方法:ステップ 2D方法による点群エッジを推定 を使用して点群のエッジモデルを抽出し、このステップのパラメータ 2D線の幅 を2pxに設定します。

  • 理由:点群品質が高い場合、2Dエッジテンプレートは3Dエッジモデルよりも高い位置姿勢マッチング精度を実現します。また、2Dエッジテンプレートは、3Dエッジモデルと比較して、点群モデルの線幅を設定することができるため、マッチング処理中に2Dエッジテンプレートがより安定します。

把持位置姿勢の設定:

  • 設定方法:ドラッグ&ドロップ方式で設定します。 マッチングモデル・把持位置姿勢エディタ で把持位置姿勢を追加することができます。

  • 理由:通い箱は一般的に標準的な直方体なので、把持位置姿勢へのドラッグ&ドロップが容易で、ドラッグ精度が現場での把持条件を満たしています。

プロジェクトにおける難点

  • 通い箱が密集している場合、「点群前処理」のステップの組合せで異なる通い箱の点群を区別することが難しいです。

  • 一部の通い箱の点群品質が悪く、点群抜けがあり、点群の表面変動が大きいです。

  • 一部のプロジェクトでは、通い箱のピッキング精度に対して高い要件があります。例えば、Z軸が通い箱の表面に垂直で上向きの場合、Z軸周りの把持位置姿勢の偏差が0.5未満であることが要求されます。

プロジェクトの強さ

  • エッジマッチングにより、認識精度の向上を実現します。

  • 誤認識や認識漏れを防止するためのステップの追加により、プロジェクト実行の安定性を向上させることが可能です。

  • このプロジェクトに使用したハンドは、密集している通い箱のデパレタイジングに対応可能です。

プロジェクト実装

注意事項

このプロジェクトでは、クランプ式ハンドが使用されます。下図のように、通い箱同士が密集している場合、ピッキングの際に隣接する通い箱に衝突しないようにクランプ式ハンドを設計する必要があります。

../../../_images/project_attention.png

パラメータ調整のアドバイス

点群前処理

  • 点群クラスタリング :ノイズを除去し、通い箱のエッジ点群を保持するために、 点のフィルタリング と「点群クラスタリング」のステップパラメータを調整する必要があります。通い箱に対象物が含まれる場合、「点群クラスタリング」を使用して、エッジ点群と対象物の点群を区別する必要があります。そうしないと、エッジ点群の抽出効果に影響が出ます。

../../../_images/point_cloud_clustering_advice.png
../../../_images/get_highest_layer_clouds_advice.png
../../../_images/estimate_point_cloud_edges_by_2d_method_advice.png

3D位置姿勢推定

位置姿勢のエラー防止

../../../_images/collect_poses_in_3d_roi_advice.png
  • 基準方向との角度によって位置姿勢が有効かどうかを検証 :ステップパラメータの 基準方向 を変更します。

  • 認識漏れや誤認識の有無の判断:認識漏れや誤認識の有無を確認するために、通い箱の最高層から抽出されたエッジ点群の投影と単一の通い箱の投影を比較する必要があります。

点群前処理 で通い箱の上辺の点群だけを抽出することはできない場合(入力点群には通い箱の中の対象物点群も含まれているので)、このエラー防止のためのステップの組合せは削除して他の有効なエラー防止策を選択する必要があります。

位置姿勢の処理

  • 3D位置姿勢をソート :現場の状況に応じて調整する必要があります。デフォルトでは、Z字型でソートするため、ソート方式を SORT_BY_Z に設定する必要があります。

../../../_images/sort_3d_poses_advice.png

よくある問題と解決策

問題1

  • 説明:ステップ 2D方法による点群エッジを推定 により、通い箱の上辺の内側から抽出された点群は少ないです。

  • 解決策:ステップ 2D方法による点群エッジを推定 のパラメータ モルフォロジー操作の設定 を適切に設定します。例えば、膨張カーネルサイズと収縮カーネルサイズが21pxの場合、エッジ点群を下図の左側に示します。膨張カーネルサイズと収縮カーネルサイズが5pxの場合、エッジ点群を下図の右側に示します。

../../../_images/problem_1.png

問題2

  • 説明:位置姿勢のマッチングにズレがあります。

  • 解決策:まず 3D位置姿勢推定 のステップの組合せに入力された点群品質を確認します。点群品質が悪い場合は、通い箱の内のエッジ点群を完全に抽出できるように 点群前処理 のステップの組合せを最適化する必要があります。次に、 3D位置姿勢低精度推定(V2)3D位置姿勢高精度推定 のパラメータを最適化し、「3D位置姿勢低精度推定(V2)」のパラメータ サンプリングされたモデルの期待点数ボクセル長さ(パラメータのデバッグレベルが詳細設定の場合にのみ表示) を優先的に調整します。

問題3

  • 説明:点群の品質が悪い、あるいは通い箱の中の対象物が通い箱の上辺のエッジを隠しているため、 2D方法による点群エッジを推定 ステップで通い箱のエッジ点群を抽出することができません。

  • 解決策:モデル全体を使用してマッチングを行います。