15 #ifndef BELUGA_SENSOR_BEAM_MODEL_HPP
16 #define BELUGA_SENSOR_BEAM_MODEL_HPP
25 #include <range/v3/range/conversion.hpp>
26 #include <range/v3/view/all.hpp>
27 #include <range/v3/view/transform.hpp>
74 template <
class OccupancyGr
id>
107 return std::transform_reduce(
108 points.cbegin(), points.cend(), 0.0, std::plus{}, [
this, &beam, n](
const auto& point) {
115 const double z = std::sqrt(point.first * point.first + point.second * point.second);
118 auto beam_bearing = Sophus::SO2d{};
119 beam_bearing.data()[0] = point.first / z;
120 beam_bearing.data()[1] = point.second / z;
125 const double eta_hit =
129 double pz =
params_.
z_hit * eta_hit * n * std::exp(-(d * d) / 2.);