diff --git a/cartographer/mapping/internal/2d/pose_graph_2d.cc b/cartographer/mapping/internal/2d/pose_graph_2d.cc index 185d3f6..7827fc4 100644 --- a/cartographer/mapping/internal/2d/pose_graph_2d.cc +++ b/cartographer/mapping/internal/2d/pose_graph_2d.cc @@ -616,6 +616,7 @@ MapById PoseGraph2D::GetTrajectoryNodePoses() { std::map PoseGraph2D::GetLandmarkPoses() { std::map landmark_poses; + common::MutexLocker locker(&mutex_); for (const auto& landmark : landmark_nodes_) { // Landmark without value has not been optimized yet. if (!landmark.second.global_landmark_pose.has_value()) continue; diff --git a/cartographer/mapping/internal/3d/pose_graph_3d.cc b/cartographer/mapping/internal/3d/pose_graph_3d.cc index ae1463f..8fb1dc6 100644 --- a/cartographer/mapping/internal/3d/pose_graph_3d.cc +++ b/cartographer/mapping/internal/3d/pose_graph_3d.cc @@ -659,6 +659,7 @@ MapById PoseGraph3D::GetTrajectoryNodePoses() { std::map PoseGraph3D::GetLandmarkPoses() { std::map landmark_poses; + common::MutexLocker locker(&mutex_); for (const auto& landmark : landmark_nodes_) { // Landmark without value has not been optimized yet. if (!landmark.second.global_landmark_pose.has_value()) continue;