Implementation of a cluster-based estimation algorithm. More...
#include <functional>
#include <optional>
#include <queue>
#include <unordered_map>
#include <utility>
#include <vector>
#include <range/v3/algorithm/max_element.hpp>
#include <range/v3/algorithm/sort.hpp>
#include <range/v3/numeric/accumulate.hpp>
#include <range/v3/range/conversion.hpp>
#include <range/v3/view/cache1.hpp>
#include <range/v3/view/filter.hpp>
#include <range/v3/view/map.hpp>
#include <range/v3/view/zip.hpp>
#include <sophus/se2.hpp>
#include <sophus/types.hpp>
#include <beluga/algorithm/estimation.hpp>
#include <beluga/algorithm/spatial_hash.hpp>
#include <range/v3/view/group_by.hpp>
Go to the source code of this file.
Classes | |
struct | beluga::clusterizer_detail::ClusterCell< State > |
A struct that holds the data of a single cell for the clusterization algorithm. More... | |
class | beluga::ParticleClusterizer |
Particle clusterizer implementation. More... | |
struct | beluga::ParticleClusterizerParam |
Parameters used to construct a ParticleClusterizer instance. More... | |
Namespaces | |
beluga | |
The main Beluga namespace. | |
beluga::clusterizer_detail | |
Typedefs | |
template<class State > | |
using | beluga::clusterizer_detail::ClusterMap = std::unordered_map< std::size_t, ClusterCell< State > > |
A map that holds the sparse data about the particles grouped in cells. More... | |
Functions | |
template<class State , class NeighborsFunction > | |
static void | beluga::clusterizer_detail::assign_clusters (ClusterMap< State > &map, NeighborsFunction &&neighbors_function) |
Assign cluster ids to an existing cluster map. More... | |
template<class Range > | |
auto | beluga::clusterizer_detail::calculate_percentile_threshold (Range &&range, double percentile) |
Calculates the threshold value at a specified percentile from a range. More... | |
template<class States , class Weights > | |
auto | beluga::cluster_based_estimate (States &&states, Weights &&weights, ParticleClusterizerParam parameters={}) |
Computes a cluster-based estimate from a particle set. More... | |
template<class States , class Weights , class Clusters > | |
auto | beluga::estimate_clusters (States &&states, Weights &&weights, Clusters &&clusters) |
For each cluster, estimate the mean and covariance of the states that belong to it. More... | |
template<class States , class Weights , class Hashes > | |
static auto | beluga::clusterizer_detail::make_cluster_map (States &&states, Weights &&weights, Hashes &&hashes) |
Create a cluster map from a range of particles and their corresponding spatial hashes. More... | |
template<class Map , class Proj > | |
auto | beluga::clusterizer_detail::make_priority_queue (const Map &map, Proj &&proj) |
Create a priority queue from a map using a specified projection. More... | |
template<class State > | |
static void | beluga::clusterizer_detail::normalize_and_cap_weights (ClusterMap< State > &map, double percentile) |
Normalize weights and cap them to a given percentile. More... | |
Implementation of a cluster-based estimation algorithm.
Definition in file cluster_based_estimation.hpp.