Ich verwende die SACSegmentation from PCL segmentation module, um die Bodenebene herauszufiltern.Erkennung und Entfernung der Bodenebene für die Lokalisierung des Roboters in 3D-Daten
Die Methode passt die Frontfläche des 3D-Objekts an, anstatt die Groundplane wie in der 2. pcd-Datei unten gezeigt zu montieren.
Irgendwelche Vorschläge, was ich tun soll, um die Bodenebene Punkte zu passen und zu filtern.
Vielen Dank im Voraus.
pcl::ModelCoefficients::Ptr coefficients(new pcl::ModelCoefficients);
pcl::SACSegmentation<pcl::PointXYZ> segmentation;
segmentation.setInputCloud(cloudAll);
segmentation.setOptimizeCoefficients(true);
segmentation.setModelType(pcl::SACMODEL_PLANE);
segmentation.setMethodType(pcl::SAC_RANSAC);
segmentation.setDistanceThreshold(20.20);
After the ground plane segmentation
Great! Danke vielmals. Dein Beitrag ist wirklich nützlich. Als mein Hauptziel ist es, den Mittelpunkt/Schwerpunkt des 3D-Objekts/Container zu bekommen, wenn Sie die kürzlich gepostet * .pcd-Datei (AfterApplyingPassthrough), wo ich nur passthroughfilter die Bodenpunkte und Räder verwerfen angenommen, dass der Offset vom Boden ist immer bekannt. Nach dem Passthrough wie in * .pcd oben gezeigt. Welche Methode empfehlen Sie für den Mittelpunkt? –
Ich habe versucht, den Schwerpunkt des verbleibenden Objekts zu berechnen (ohne Bodenpunkte und Räder) 1) pcl :: compute3DCentroid (* cloudExtracted, Schwerpunkt) zurückgegeben XYZ (44.0321, -300.226, 1616.87) Eine andere Idee ist, die 2) zu finden Boundingbox für das verbleibende Objekt. Eine zusätzliche Frage, welche Entwicklungsumgebung Sie verwenden. es scheint ziemlich gut (Eclipse, VStudio usw.) –
Er schien CloudCompare verwenden http://www.danielgm.net/cc/ –