From 47b80c9a3fd2685a99e4ef97fbe8ba7618f9f7d2 Mon Sep 17 00:00:00 2001 From: jie Date: Tue, 2 Jun 2020 02:29:37 -0700 Subject: [PATCH] Fix crashes in median() if all spans in a level are short (#1668) --- cartographer/mapping/detect_floors.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cartographer/mapping/detect_floors.cc b/cartographer/mapping/detect_floors.cc index ad402ac..8ec605d 100644 --- a/cartographer/mapping/detect_floors.cc +++ b/cartographer/mapping/detect_floors.cc @@ -188,8 +188,13 @@ std::vector FindFloors(const proto::Trajectory& trajectory, common::FromUniversal( trajectory.node(span.end_index - 1).timestamp())}); } - std::sort(z_values.begin(), z_values.end()); - floors.back().z = Median(z_values); + if (!z_values.empty()) { + std::sort(z_values.begin(), z_values.end()); + floors.back().z = Median(z_values); + } else { + LOG(ERROR) << "All spans in level are short"; + floors.pop_back(); + } } return floors; }