16 #include <mrpt/poses/Lie/SE.h> 
   20     using namespace mrpt::poses::Lie;
 
   32         pp.pl_global = {mrpt::math::TPlane::FromPointAndNormal({0, 0, 0}, {0, 0, 1}), {0, 0, 0}};
 
   33         pp.pt_local  = groundTruth.inverseComposePoint({0.5, 0, 0});
 
   36         auto& pp     = p.paired_pt2pl.emplace_back();
 
   37         pp.pl_global = {mrpt::math::TPlane::FromPointAndNormal({0, 0, 0}, {1, 0, 0}), {0, 0, 0}};
 
   38         pp.pt_local  = groundTruth.inverseComposePoint({0, 0.8, 0});
 
   41         auto& pp     = p.paired_pt2pl.emplace_back();
 
   42         pp.pl_global = {mrpt::math::TPlane::FromPointAndNormal({0, 0, 0}, {0, 1, 0}), {0, 0, 0}};
 
   43         pp.pt_local  = groundTruth.inverseComposePoint({0, 0, 0.3});
 
   46         auto& pp       = p.paired_pt2pt.emplace_back();
 
   47         pp.global      = {0, 0, 0};
 
   48         const auto loc = groundTruth.inverseComposePoint({0, 0, 0});
 
   52     std::cout << 
"Input pairings: " << p.contents_summary() << std::endl;
 
   62     std::cout << 
"Found    optimalPose: " << result.
optimalPose << std::endl;
 
   63     std::cout << 
"Expected optimalPose: " << groundTruth << std::endl;
 
   67     ASSERT_NEAR_(mrpt::poses::Lie::SE<3>::log(result.
optimalPose - groundTruth).norm(), 0.0, 1e-3);
 
   74     using mrpt::poses::CPose3D;
 
   80         mrpt::containers::yaml solverParams;
 
   81         solverParams[
"maxIterations"] = 25;
 
   87     const std::vector<const mp2p_icp::Solver*> solvers = {
 
   92     for (
const auto solverPtr : solvers)
 
   94         const auto& solver = *solverPtr;
 
   95         std::cout << 
"Using solver: " << solver.GetRuntimeClass()->className
 
   97                      "=========================================================\n";
 
  109         test_opt_pt2pl(CPose3D::FromYawPitchRoll(20.0_deg, 0.0_deg, 0.0_deg), solver);
 
  110         test_opt_pt2pl(CPose3D::FromYawPitchRoll(-20.0_deg, 0.0_deg, 0.0_deg), solver);
 
  112         test_opt_pt2pl(CPose3D::FromYawPitchRoll(0.0_deg, 10.0_deg, 0.0_deg), solver);
 
  113         test_opt_pt2pl(CPose3D::FromYawPitchRoll(0.0_deg, -10.0_deg, 0.0_deg), solver);
 
  115         test_opt_pt2pl(CPose3D::FromYawPitchRoll(0.0_deg, 0.0_deg, 15.0_deg), solver);
 
  116         test_opt_pt2pl(CPose3D::FromYawPitchRoll(0.0_deg, 0.0_deg, -15.0_deg), solver);
 
  120             CPose3D::FromXYZYawPitchRoll(1.0, 2.0, 3.0, -10.0_deg, 5.0_deg, 30.0_deg), solver);
 
  124 int main([[maybe_unused]] 
int argc, [[maybe_unused]] 
char** argv)
 
  130     catch (std::exception& e)
 
  132         std::cerr << mrpt::exception_to_str(e) << 
"\n";