抽出された点群平面の方向の計算でいくつかの問題に直面しています。平面は、長方形の部品の表面を表しています。ピック アプリケーションでロボットにフィードするには、原点と向きを取得する必要があります。
次の手順は正常に機能しています。pcd ファイルの入力、パススルー、ダウンサンプリング、平面を取得するための平面モデルのセグメンテーション、平面内の複数のパーツを処理するためのクラスタリング、3 次元重心を計算する各クラスターについて。
問題は、点群の原点(カメラの原点)を基準にして平面の向きを計算することから始まります。各クラスターの CovarianceMatrix を計算することで、これを実行しようとしました。
アイデアとして次の投稿がありましたが、この場合はうまくいくようです。
https://stackoverflow.com/questions/30728157/bad-orientation-of-principal-axis-of-a-point-cloud
私のスニペット:
さらに、計算された中心点を参照して固有ベクトル値を使用して、計算された平面の原点を視覚化します。
しかし、平面の方向は点群の原点の方向に対応しており、期待どおりに平面の回転した原点を示していません。
共分散行列の計算は、パーツの方向を取得する方法として間違っていますか? 中心点の計算は私にとってはうまくいくからです。下の画像がカット部分の原点を示していても、基本的には検出されないはずです。
平面の向きを取得するための他の提案はありますか?
事前にどうもありがとうございました!!