From 28b13e441658c7d08224591bccb389eec3d93952 Mon Sep 17 00:00:00 2001 From: linminjy Date: Mon, 30 Jun 2025 15:30:13 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=9D=E8=AF=81iter=E5=92=8Crmv=5Fidx?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E8=87=AA=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- swarm_exploration/active_perception/src/frontier_finder.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swarm_exploration/active_perception/src/frontier_finder.cpp b/swarm_exploration/active_perception/src/frontier_finder.cpp index 9277501..1da9c38 100644 --- a/swarm_exploration/active_perception/src/frontier_finder.cpp +++ b/swarm_exploration/active_perception/src/frontier_finder.cpp @@ -77,7 +77,6 @@ void FrontierFinder::searchFrontiers() { edt_env_->sdf_map_->posToIndex(cell, idx); frontier_flag_[toadr(idx)] = 0; } - iter = frontiers.erase(iter); }; // std::cout << "Before remove: " << frontiers_.size() << std::endl; @@ -88,7 +87,8 @@ void FrontierFinder::searchFrontiers() { // haveOverlap(iter->box_min_, iter->box_max_, update_min, update_max) if (haveAnyOverlap(iter->box_min_, iter->box_max_, mins, maxs) && isFrontierChanged(*iter)) { resetFlag(iter, frontiers_); - removed_ids_.push_back(rmv_idx); + removed_ids_.push_back(rmv_idx++); + iter = frontiers.erase(iter); } else { ++rmv_idx; ++iter; From ac2f21149768102f01f8589f099793791265ddd9 Mon Sep 17 00:00:00 2001 From: linminjy Date: Mon, 30 Jun 2025 16:55:46 +0800 Subject: [PATCH 2/3] =?UTF-8?q?frontiers=E5=BA=94=E8=AF=A5=E6=94=B9?= =?UTF-8?q?=E6=88=90frontiers=5F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- swarm_exploration/active_perception/src/frontier_finder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swarm_exploration/active_perception/src/frontier_finder.cpp b/swarm_exploration/active_perception/src/frontier_finder.cpp index 1da9c38..486fd87 100644 --- a/swarm_exploration/active_perception/src/frontier_finder.cpp +++ b/swarm_exploration/active_perception/src/frontier_finder.cpp @@ -88,7 +88,7 @@ void FrontierFinder::searchFrontiers() { if (haveAnyOverlap(iter->box_min_, iter->box_max_, mins, maxs) && isFrontierChanged(*iter)) { resetFlag(iter, frontiers_); removed_ids_.push_back(rmv_idx++); - iter = frontiers.erase(iter); + iter = frontiers_.erase(iter); } else { ++rmv_idx; ++iter; From 53bc6490aa37b0643f8bc6d2c905783d8d34b038 Mon Sep 17 00:00:00 2001 From: linminjy Date: Mon, 30 Jun 2025 20:14:21 +0800 Subject: [PATCH 3/3] =?UTF-8?q?dormant=5Ffrontiers=5F=E5=88=A0=E9=99=A4ite?= =?UTF-8?q?r=E6=8C=87=E5=90=91frontier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- swarm_exploration/active_perception/src/frontier_finder.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/swarm_exploration/active_perception/src/frontier_finder.cpp b/swarm_exploration/active_perception/src/frontier_finder.cpp index 486fd87..591bfa7 100644 --- a/swarm_exploration/active_perception/src/frontier_finder.cpp +++ b/swarm_exploration/active_perception/src/frontier_finder.cpp @@ -98,6 +98,7 @@ void FrontierFinder::searchFrontiers() { for (auto iter = dormant_frontiers_.begin(); iter != dormant_frontiers_.end();) { if (haveAnyOverlap(iter->box_min_, iter->box_max_, mins, maxs) && isFrontierChanged(*iter)) resetFlag(iter, dormant_frontiers_); + iter = dormant_frontiers_.erase(iter); else ++iter; }