プロジェクトの構築手順¶
本節では、プロジェクトの構築手順と方法について説明し、簡単な部品供給プロジェクトを作成します。
このプロジェクトでは、マッチングアルゴリズムを用いて部品の把持位置姿勢の計算を実現します。
プロジェクトの構造¶
このプロジェクトは、 カメラから画像を取得 、 点群生成 、 点群の法線ベクトルを計算 、 点群の大まかなマッチング 、 点群の精確なマッチング 、 位置姿勢の変換 および 出力 で構成されます。
その中で、対象物の把持位置姿勢を取得することを目的とした3D位置姿勢推定は、プロジェクトのコア部分となります。
プロジェクトを新規作成して保存¶
詳細については、 プロジェクトを新規作成して保存 をご参照ください。
ステップを追加¶
プロジェクトの構造を理解してプロジェクトを作成したら、ステップを追加してプロジェクトの構築を行うことができます。
ヒント
プロジェクトを作成した後、左側のステップライブラリから必要なステップを選択し、マウスの左ボタンを押したままステップをプロジェクト編集エリアにドラッグすると、ステップの追加が完了します。
まずはカメラをトリガーして撮影し、カラー画像と深度画像を取得します。ステップ カメラから画像を取得 を追加します。
注意
このステップを追加する前に、 カメラが取り付けられていること 、 産業用PCと接続されていること を確認し、取得した画像の品質確認と ロボットハンド・アイ・キャリブレーション を完了させる必要があります。
このステップを追加したら、ステップを選択し、 ステップパラメータ をクリックして、ステップパラメータの画面でカメラタイプ、カメラID、キャリブレーションパラメータグループを選択し、IPアドレスを入力します。
続いてカメラで取得した深度画像を点群データに変換します。ステップ 深度画像を点群に変換 を追加します。
このステップを カメラから画像を取得 ステップの後に配置します。 カメラから画像を取得 ステップの 「カメラ深度画像」の出力ポートを、 深度画像を点群に変換 ステップの 「カメラ深度画像」の入力ポートにつなぎます。この2つのステップの「カメラカラー画像」の入力・出力ポートを、このような方法でつなぎます。このステップのパラメータ設定は不要です。
上図のような状態になると、 深度画像を点群に変換 ステップの追加と必要なデータの入力設定は完了しました。
ヒント
ステップのつなぎ方はドラッグアンドドロップで行います。出力したいものをドラッグして入力したい箇所にドロップします。
注意
同じデータ型の入力・出力ポートをつなぐことができます。例えば、Image/Depthの出力ポートはImage/Depthの入力ポートのみをつなぐことができます。異なるタイプの入力・出力ポートをつなぐとデータ型が異なるためエラーが発生します。
このステップが追加された後、不要な点群の干渉を減らし、後続のステップの処理時間を短縮するために、2D関心領域を選択する必要があります。
このステップを選択し、 ステップパラメータ をクリックして 2D ROIを設定 をクリックします。クリック後、表示される画面で2D ROIの設定を行います。設定方法については、 ROI 設定 をご参照ください。
次に法線ベクトルの計算を行います。ステップ 点群の法線ベクトルを計算してフィルタリング を追加します。このステップにより、入力点群内の各点の法線ベクトルを計算し、位置情報のみを含む点群データを法線ベクトル付きの点群データに変換することができます。
このステップを 深度画像を点群に変換 ステップの後に配置します。 深度画像を点群に変換 ステップの 「点群」出力ポートを、 点群の法線ベクトルを計算してフィルタリング ステップの「点群」入力ポートにつなぎます。
法線ベクトル付きの点群を取得したら、点群マッチングを行います。 3D位置姿勢低精度推定 と 3D位置姿勢高精度推定 ステップを使用します。
これから、点群の大まかなマッチングを行います。ステップ 3D位置姿勢低精度推定 を追加します。このステップにより、事前に作成した点群モデルを入力の法線ベクトル付きの点群と大まかにマッチングすることができます。また、マッチング結果が得られた後、マッチングした位置に従って対象物の幾何学的中心または把持位置姿勢が生成されます。
このステップを 点群の法線ベクトルを計算してフィルタリング ステップの後に配置します。 点群の法線ベクトルを計算してフィルタリング ステップの「法線ベクトル付きの点群」出力ポートを、 3D位置姿勢低精度推定 ステップの「法線ベクトル付きの点群」入力ポートにつなぎます。
その後、事前に作成したモデルファイルと幾何学中心的ファイルをインポートします。
3D位置姿勢低精度推定 ステップを選択し、 ステップパラメータ をクリックして をクリックします。モデルファイルと幾何学中心的ファイルを選択してインポートします。
ヒント
モデルファイルと幾何学的中心ファイルの作成方法については、 マッチングモデル・把持位置姿勢エディタ をご参照ください。
続いて精確なマッチングを行います。ステップ 3D位置姿勢高精度推定 を追加します。このステップにより、 3D位置姿勢低精度推定 で得られたマッチング結果をより精確なマッチング計算を実行することでより高精度なマッチング結果を取得し、高精度の幾何学的中心または把持位置姿勢を生成できます。
このステップを 3D位置姿勢低精度推定 ステップの後に配置します。 点群の法線ベクトルを計算してフィルタリング ステップの「法線ベクトル付きの点群」出力ポートを 3D位置姿勢高精度推定 ステップの 「法線ベクトル付きの点群」入力ポートにつなぎ、 3D位置姿勢低精度推定 ステップの「大まかな候補位置姿勢」出力ポートを 3D位置姿勢高精度推定 ステップの「大まかな候補位置姿勢」入力ポートにつなぎます。
3D位置姿勢高精度推定 により精確な位置姿勢を取得した後、位置姿勢の変換を行います。
ヒント
3D位置姿勢低精度推定 ステップと同じ方法で、モデルファイルと幾何学中心的ファイルを 3D位置姿勢高精度推定 ステップに追加します。
さらに、位置姿勢の座標系を変換します。ステップ 位置姿勢を変換 を追加します。このステップにより、入力されたカメラ座標系での位置姿勢をロボット座標系に変換することができます。
このステップを 3D位置姿勢高精度推定 ステップの後に配置します。3D位置姿勢高精度推定 ステップの 「把持位置姿勢」出力ポートを、 位置姿勢を変換 ステップの 「元の位置姿勢」入力ポートにつなぎます。このステップのパラメータ設定は不要です。
最後にデータの送信を行います。ステップ 出力 を追加します。このステップにより、データをMech-Centerに送信して、後でMech-Centerからデータを使用するソフトウェアとハードウェアに送信します。
このステップを 位置姿勢を変換 の後に配置します。 位置姿勢を変換 ステップの「変換後の位置姿勢」出力ポートを、 出力 ステップの「Abstract Poses」入力ポートにつなぎます。それで、このポート名は「PoseList poses」になります。つなぐ前とつないだ後の効果はそれぞれ下図の①と②に示します。
これで、簡単なマッチングプロジェクトの構築は完了しました。メニュバーで
をクリックするか、ショートカットキー Ctrl + S を押してプロジェクトを保存することができます。ちなみに
ステップが追加された後、データ転送関係をより直感的にするために、ステップのレイアウトを調整できます。以下の3つの方法があります。
マウスの左ボタンでステップを選択し、ステップを移動してステップを直接配置します。
プロジェクト編集エリアで任意場所を右クリックし、表示されたルメニューから 自動レイアウト をクリックします。
ショートカットキー Alt + Shift + F で自動レイアウトも実現できます。
プロジェクトの構築が完了したら、 プロジェクトを実行してデバッグ することができます。