From 268d516d1fd27450273a14217083273c9ee023a7 Mon Sep 17 00:00:00 2001 From: PepMS <jmarti@iri.upc.edu> Date: Thu, 30 May 2019 09:58:45 +0200 Subject: [PATCH] Minor Changes --- src/icp.cpp | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/icp.cpp b/src/icp.cpp index 4b4f0f4..81e5d47 100644 --- a/src/icp.cpp +++ b/src/icp.cpp @@ -28,13 +28,13 @@ public: ++i; } - laser_data->odometry[0] = 0.0; - laser_data->odometry[1] = 0.0; - laser_data->odometry[2] = 0.0; - - laser_data->true_pose[0] = 0.0; - laser_data->true_pose[1] = 0.0; - laser_data->true_pose[2] = 0.0; + // laser_data->odometry[0] = 1/0.0; + // laser_data->odometry[1] = 1/0.0; + // laser_data->odometry[2] = 1/0.0; + // + // laser_data->true_pose[0] = 1/0.0; + // laser_data->true_pose[1] = 1/0.0; + // laser_data->true_pose[2] = 1/0.0; } ~LDWrapper(){ ld_free(laser_data); @@ -61,18 +61,27 @@ icp_output ICP::matchPC(LaserScan &_last_ls, LaserScan &_origin_ls, LaserScanPar int num_rays = _last_ls.ranges_raw_.size(); sm_params csm_input{}; sm_result csm_output{}; - csm_input.laser_ref = last.laser_data; - csm_input.laser_sens = origin.laser_data; + + csm_input.laser_ref = origin.laser_data; + csm_input.laser_sens = last.laser_data; + csm_input.first_guess[0] = _last_transf(0); + csm_input.first_guess[1] = _last_transf(1); + csm_input.first_guess[2] = _last_transf(2); + csm_input.use_point_to_line_distance = true; + //TODO: min_theta and max_theta should come from LaserScanParams last.laser_data->min_theta = last.laser_data->theta[0]; last.laser_data->max_theta = last.laser_data->theta[num_rays-1]; origin.laser_data->min_theta = origin.laser_data->theta[0]; origin.laser_data->max_theta = origin.laser_data->theta[num_rays-1]; + sm_icp(&csm_input, &csm_output); - std::cout << "My solution " << csm_output.x[0] << "," << csm_output.x[1] << "," << csm_output.x[2] << std::endl; + std::cout << "Result: " << csm_output.valid << '\n'; + // std::cout << "My solution " << csm_output.x[0] << "," << csm_output.x[1] << "," << csm_output.x[2] << std::endl; icp_output result{}; result.res_transf(0) = csm_output.x[0]; result.res_transf(1) = csm_output.x[1]; result.res_transf(2) = csm_output.x[2]; + return result; } -- GitLab