From 3ad7d356f3a8a7b9f8ae02f7309f1978a8b6f37d Mon Sep 17 00:00:00 2001 From: Diego Palma Date: Sat, 5 Oct 2024 01:08:12 +0000 Subject: [PATCH] Fix Mask class Signed-off-by: Diego Palma --- beluga/include/beluga/actions/overlay.hpp | 6 +++--- beluga/include/beluga/sensor/likelihood_field_model.hpp | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/beluga/include/beluga/actions/overlay.hpp b/beluga/include/beluga/actions/overlay.hpp index 13a05945d..12706856b 100644 --- a/beluga/include/beluga/actions/overlay.hpp +++ b/beluga/include/beluga/actions/overlay.hpp @@ -46,7 +46,7 @@ struct overlay_base_fn { class ExecutionPolicy, class Range, class MaskRange, - class Mask = ranges::range_value_t, + class Mask, std::enable_if_t>, int> = 0, std::enable_if_t, int> = 0, std::enable_if_t, int> = 0> @@ -70,7 +70,7 @@ struct overlay_base_fn { class ExecutionPolicy, class Range, class MaskRange, - class Mask = ranges::range_value_t, + class Mask, std::enable_if_t, int> = 0, std::enable_if_t, int> = 0, std::enable_if_t, int> = 0> @@ -101,7 +101,7 @@ struct overlay_fn : public overlay_base_fn { template < class Range, class MaskRange, - class Mask = ranges::range_value_t, + class Mask, std::enable_if_t, int> = 0, std::enable_if_t, int> = 0> constexpr auto operator()(Range&& range, MaskRange&& mask, Mask&& mask_value) const -> Range& { diff --git a/beluga/include/beluga/sensor/likelihood_field_model.hpp b/beluga/include/beluga/sensor/likelihood_field_model.hpp index 87c748149..47031334b 100644 --- a/beluga/include/beluga/sensor/likelihood_field_model.hpp +++ b/beluga/include/beluga/sensor/likelihood_field_model.hpp @@ -187,8 +187,9 @@ class LikelihoodFieldModel { if (params.model_unknown_space) { const double inverse_max_distance = 1 / params.max_laser_distance; const double background_distance = -two_squared_sigma * std::log((inverse_max_distance - offset) / amplitude); + const auto mask_value = static_cast>(background_distance); - distance_map |= beluga::actions::overlay(grid.unknown_mask(), background_distance); + distance_map |= beluga::actions::overlay(grid.unknown_mask(), mask_value); } auto likelihood_values = std::move(distance_map) | //