From 152984bb24e7ebdc87377b328295019484cbdea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20del=20Pino?= <idelpino@iri.upc.edu> Date: Tue, 12 Jul 2022 10:58:00 +0200 Subject: [PATCH] bug fixed in time supervision --> removed ifs that make the object to be destroyed after the if sentence --- src/kf_based_terrain_analysis.cpp | 23 +++++++++++------------ src/time_supervisor.cpp | 4 ++-- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/kf_based_terrain_analysis.cpp b/src/kf_based_terrain_analysis.cpp index 699be79..59bb8ea 100644 --- a/src/kf_based_terrain_analysis.cpp +++ b/src/kf_based_terrain_analysis.cpp @@ -21,8 +21,8 @@ void CKf_Based_Terrain_Analysis::extractPointsInROI( const pcl::PointXYZRGBNormal reference, const pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr elevation_cloud_ptr, pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr points_in_ROI) { - if (filtering_configuration.measure_performance) - CFunctionMonitor performance_monitor("extractPointsInROI", performance_supervisor_ptr_); +// if (filtering_configuration.measure_performance) +// CFunctionMonitor performance_monitor("extractPointsInROI", performance_supervisor_ptr_); //std::cout << "Extracting points in ROI: reference.x = " << reference.x << " reference.y = " << reference.y // << " reference.z = " << reference.z << std::endl; @@ -307,8 +307,8 @@ void CKf_Based_Terrain_Analysis::labelLocalGroundPoints( std::vector<std::vector<kf_based_terrain_analysis_lib::Edge>> &discarded_edges) { //std::cout << "Starting labelLocalGroundPoints!!" << std::endl; - if (filtering_configuration.measure_performance) - CFunctionMonitor performance_monitor("labelLocalGroundPoints", performance_supervisor_ptr_); +// if (filtering_configuration.measure_performance) +// CFunctionMonitor performance_monitor("labelLocalGroundPoints", performance_supervisor_ptr_); CObservationDownsampler new_references_creator(filtering_configuration.ground_reference_search_resolution, filtering_configuration.propagation_additive_noise, @@ -395,7 +395,7 @@ void CKf_Based_Terrain_Analysis::labelLocalGroundPoints( // << " z = " << point_in_sensor_frame.z << std::endl << "mahalanobis_distance = " << mahalanobis_distance // << " mahalanobis_threshold = " << filtering_configuration.mahalanobis_threshold << std::endl; - if ((int)std::floor(point_in_sensor_frame.data_c[DATA_C_1_ID_CLASS]) == CLASS_UNKNOWN) // we only store de data if it has not been done + if ((int)std::floor(point_in_sensor_frame.data_c[DATA_C_1_ID_CLASS]) == CLASS_UNKNOWN) // we only store the data if it has not been done // previously { // if it is an obstacle point we use the ground reference z prediction as z ground @@ -559,7 +559,7 @@ void CKf_Based_Terrain_Analysis::labelGroundPoints( pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr cloud_ptr, std::vector<std::vector<int>> &edges, std::vector<std::vector<kf_based_terrain_analysis_lib::Edge>> &discarded_edges) { - if (filtering_configuration.measure_performance) + //if (filtering_configuration.measure_performance) CFunctionMonitor performance_monitor("labelGroundPoints", performance_supervisor_ptr_); pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr points_in_ROI(new pcl::PointCloud<pcl::PointXYZRGBNormal>); @@ -592,7 +592,7 @@ void CKf_Based_Terrain_Analysis::generateElevationCloud( pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr pcl_cloud_ptr, pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr elevation_cloud, std::vector<std::vector<int>> &correspondence_indexes) { - if (filtering_configuration.measure_performance) + //if (filtering_configuration.measure_performance) CFunctionMonitor performance_monitor("generateElevationCloud", performance_supervisor_ptr_); pcl::PointCloud<pcl::PointXY>::Ptr pcl_pointcloud_2D_ptr(new pcl::PointCloud<pcl::PointXY>); @@ -738,7 +738,7 @@ void CKf_Based_Terrain_Analysis::createDenseGroundCloud( const kf_based_terrain_analysis_lib::SensorConfiguration lidar_configuration, pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr pcl_dense_cloud_ptr) { - if (filtering_configuration.measure_performance) + //if (filtering_configuration.measure_performance) CFunctionMonitor performance_monitor("createDenseGroundCloud", performance_supervisor_ptr_); //std::cout << "setting input cloud" << std::endl; @@ -838,7 +838,7 @@ void CKf_Based_Terrain_Analysis::labelPointcloudUsingGroundModel( const pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr ground_reference_cloud_ptr, const std::vector<std::vector<int>> &edges, pcl::PointCloud<pcl::PointXYZRGBNormal>::Ptr pcl_cloud_ptr) { - if (filtering_configuration.measure_performance) + //if (filtering_configuration.measure_performance) CFunctionMonitor performance_monitor("labelPointcloudUsingGroundModel", performance_supervisor_ptr_); //std::cout << "Labeling points in the original pointcloud using the posterior and the ROI indexes vectors..." // << std::endl; @@ -856,7 +856,6 @@ void CKf_Based_Terrain_Analysis::labelPointcloudUsingGroundModel( int num_of_references_found = kdtree.nearestKSearch(point_in_sensor_frame, K, pointIdxKNNSearch, pointKNNSquaredDistance); - int best_reference_index = -1; int best_reference_index_predicting_ground = -1; int best_reference_index_predicting_obstacle = -1; @@ -1172,8 +1171,8 @@ void CKf_Based_Terrain_Analysis::groundSegmentation( std::vector<std::vector<kf_based_terrain_analysis_lib::Edge>> &discarded_edges, pcl::PointCloud<pcl::PointXYZRGBNormal> &ground_dense_reconstruction_pcl_cloud) { - if (filtering_configuration.measure_performance) - CFunctionMonitor performance_monitor("groundSegmentation", performance_supervisor_ptr_); +// if (filtering_configuration.measure_performance) +// CFunctionMonitor performance_monitor("groundSegmentation", performance_supervisor_ptr_); //std::cout << "Starting ground segmentation!!" << std::endl; //std::cout << "Initializing pointcloud: Number of points in pcl_cloud = " << pcl_cloud.points.size() << std::endl; diff --git a/src/time_supervisor.cpp b/src/time_supervisor.cpp index 8fba8e8..a07810a 100644 --- a/src/time_supervisor.cpp +++ b/src/time_supervisor.cpp @@ -121,14 +121,14 @@ CFunctionMonitor::CFunctionMonitor(const std::string function_name, const CTimeS { my_supervisor_ = time_supervisor_ptr; function_name_ = function_name; - initial_time_ = ros::Time::now().toSec(); + initial_time_ = ros::WallTime::now().toSec(); final_time_ = 0.0; time_expended_ = 0.0; } CFunctionMonitor::~CFunctionMonitor() { - final_time_ = ros::Time::now().toSec(); + final_time_ = ros::WallTime::now().toSec(); time_expended_ = final_time_ - initial_time_; //assert(time_expended_ >= 0.0 && "Error in CFunctionMonitor: time negative!!"); if(time_expended_ < 0.0) -- GitLab