diff --git a/nav2_amcl/include/nav2_amcl/amcl_node.hpp b/nav2_amcl/include/nav2_amcl/amcl_node.hpp index 92a7cd5438797f942720d608d92da8dda3181b9d..f5cac8cbc9279dd054025c17dfad5665fde9932c 100644 --- a/nav2_amcl/include/nav2_amcl/amcl_node.hpp +++ b/nav2_amcl/include/nav2_amcl/amcl_node.hpp @@ -86,7 +86,7 @@ protected: map_t * map_{nullptr}; map_t * convertMap(const nav_msgs::msg::OccupancyGrid & map_msg); bool first_map_only_{true}; - bool first_map_received_{false}; + std::atomic<bool> first_map_received_{false}; amcl_hyp_t * initial_pose_hyp_; std::recursive_mutex configuration_mutex_; rclcpp::Subscription<nav_msgs::msg::OccupancyGrid>::ConstSharedPtr map_sub_; diff --git a/nav2_amcl/src/amcl_node.cpp b/nav2_amcl/src/amcl_node.cpp index 60facfbe9c8ea78fd11830c848ba10b05eefa9ae..adb8f9a3defccad381b05205dcedbcd951d4b3a2 100644 --- a/nav2_amcl/src/amcl_node.cpp +++ b/nav2_amcl/src/amcl_node.cpp @@ -285,6 +285,7 @@ AmclNode::on_cleanup(const rclcpp_lifecycle::State & /*state*/) // Map map_free(map_); map_ = nullptr; + first_map_received_ = false; free_space_indices.resize(0); // Transforms