diff --git a/src/adc_landmarks_slam_solver_alg.cpp b/src/adc_landmarks_slam_solver_alg.cpp index 20b8cd3808a0d4c76bef9c83174f016bc3e45f13..7a1a93f8e897d0488a3e90ecac0a2b01952c5442 100644 --- a/src/adc_landmarks_slam_solver_alg.cpp +++ b/src/adc_landmarks_slam_solver_alg.cpp @@ -64,6 +64,7 @@ bool AdcLandmarksSlamSolverAlgorithm::load_landmarks(const std::string& _landmar if (!landmarks_file.good()) return false; std::map<double, LandmarkInfo>().swap(this->landmarks_); + this->landmarks_.clear(); //Read the file double id, l1, l2, l3; int t; @@ -97,6 +98,7 @@ bool AdcLandmarksSlamSolverAlgorithm::load_from_xodr(const std::string& _landmar road.set_min_road_length(0.01); road.load(_landmarks_file); std::map<double, LandmarkInfo>().swap(this->landmarks_); + this->landmarks_.clear(); for(unsigned int i=0;i<road.get_num_segments();i++) { diff --git a/src/adc_landmarks_slam_solver_alg_node.cpp b/src/adc_landmarks_slam_solver_alg_node.cpp index 9f3dabb7ea2a3d82f26b78c5755225bda47ac441..6b8eb706b0b4bab4a578bc6ea815c5f1f7f13f73 100644 --- a/src/adc_landmarks_slam_solver_alg_node.cpp +++ b/src/adc_landmarks_slam_solver_alg_node.cpp @@ -264,6 +264,12 @@ void AdcLandmarksSlamSolverAlgNode::mainNodeThread(void) //Remove candidates std::list<LandmarkCandidate>().swap(this->landmarks_candidates_); this->landmarks_candidates_.clear(); + std::vector<FeatureInfo>().swap(this->front_features_); + this->front_features_.clear(); + std::vector<FeatureInfo>().swap(this->rear_features_); + this->rear_features_.clear(); + std::vector<FeatureInfo>().swap(this->features_); + this->features_.clear(); this->new_initialpose_ = false; this->new_estimated_pose_ = true;