diff --git a/cartographer/mapping/internal/2d/pose_graph_2d.cc b/cartographer/mapping/internal/2d/pose_graph_2d.cc index 49d0c0c..23d16a0 100644 --- a/cartographer/mapping/internal/2d/pose_graph_2d.cc +++ b/cartographer/mapping/internal/2d/pose_graph_2d.cc @@ -397,14 +397,17 @@ void PoseGraph2D::WaitForAllComputations() { !work_queue_); }, common::FromSeconds(1.))) { - std::ostringstream progress_info; - progress_info << "Optimizing: " << std::fixed << std::setprecision(1) - << 100. * - (constraint_builder_.GetNumFinishedNodes() - - num_finished_nodes_at_start) / - (num_trajectory_nodes_ - num_finished_nodes_at_start) - << "%..."; - std::cout << "\r\x1b[K" << progress_info.str() << std::flush; + // Log progress on nodes only when we are actually processing nodes. + if (num_trajectory_nodes_ != num_finished_nodes_at_start) { + std::ostringstream progress_info; + progress_info << "Optimizing: " << std::fixed << std::setprecision(1) + << 100. * + (constraint_builder_.GetNumFinishedNodes() - + num_finished_nodes_at_start) / + (num_trajectory_nodes_ - num_finished_nodes_at_start) + << "%..."; + std::cout << "\r\x1b[K" << progress_info.str() << std::flush; + } } std::cout << "\r\x1b[KOptimizing: Done. " << std::endl; constraint_builder_.WhenDone( diff --git a/cartographer/mapping/internal/3d/pose_graph_3d.cc b/cartographer/mapping/internal/3d/pose_graph_3d.cc index a2db4e7..99fb6b5 100644 --- a/cartographer/mapping/internal/3d/pose_graph_3d.cc +++ b/cartographer/mapping/internal/3d/pose_graph_3d.cc @@ -412,14 +412,17 @@ void PoseGraph3D::WaitForAllComputations() { !work_queue_); }, common::FromSeconds(1.))) { - std::ostringstream progress_info; - progress_info << "Optimizing: " << std::fixed << std::setprecision(1) - << 100. * - (constraint_builder_.GetNumFinishedNodes() - - num_finished_nodes_at_start) / - (num_trajectory_nodes_ - num_finished_nodes_at_start) - << "%..."; - std::cout << "\r\x1b[K" << progress_info.str() << std::flush; + // Log progress on nodes only when we are actually processing nodes. + if (num_trajectory_nodes_ != num_finished_nodes_at_start) { + std::ostringstream progress_info; + progress_info << "Optimizing: " << std::fixed << std::setprecision(1) + << 100. * + (constraint_builder_.GetNumFinishedNodes() - + num_finished_nodes_at_start) / + (num_trajectory_nodes_ - num_finished_nodes_at_start) + << "%..."; + std::cout << "\r\x1b[K" << progress_info.str() << std::flush; + } } std::cout << "\r\x1b[KOptimizing: Done. " << std::endl; constraint_builder_.WhenDone(