10 #include "pcl/io/pcd_io.h"
19 "/home/fabi/repos/RobotComponents/data/RobotComponents/maps/2021-04-06-09-27.carto");
20 const auto cloud = mapRegistration.readPointClouds();
22 const auto clusters = mapRegistration.detectClusters(cloud);
25 for (
const auto& cluster : clusters)
27 pcl::io::savePCDFileASCII(
"/tmp/cluster_" +
std::to_string(i) +
".pcd", *cluster.points);
32 const x::Model pillarFront =
x::makeCube({-1.8, 3.85 - 0.112}, 0.42);
33 const x::Model pillarBack =
x::makeCube({-1.8, -0.4}, 0.42);
34 const std::vector<x::Model> models{pillarFront, pillarBack};
37 const auto associations = mapRegistration.matchModelsToClusters(models, clusters);
40 std::vector<x::MapRegistration::ModelCorrection> corrections;
44 for (
const auto& association : associations)
48 pcl::io::savePCDFileASCII(
"/tmp/assoc_" +
std::to_string(j) +
".pcd",
49 *association.cluster.points);
51 x::MapRegistration::ModelCorrection mc =
52 mapRegistration.alignModelToCluster(association.model, association.cluster);
53 corrections.push_back(mc);
55 ARMARX_INFO <<
"Correction" << mc.correction.translation();
60 x::MapRegistration::ModelCorrection combinedCorrection =
61 mapRegistration.computeCombinedCorrection(models, corrections);
63 mapRegistration.visualizeResult(cloud, models, combinedCorrection);
66 pcl::io::savePCDFileASCII(
"/tmp/cloud.pcd", *cloud);