6#include <rclcpp/rclcpp.hpp>
31 const Eigen::MatrixXd& distances,
32 Eigen::VectorXi& current_hypothesis,
33 Eigen::VectorXi& best_hypothesis,
double& best_score,
34 double current_score)
const;
64 Eigen::VectorXi
associate(
const Eigen::VectorXd& landmarks,
const Eigen::VectorXd& observations,
65 const Eigen::MatrixXd& covariance,
66 const Eigen::VectorXd& observation_confidences)
const override;
Data Association Method class, used to match observations to landmarks in the map.
Data association implementation that uses the Malhanobis Distance only as criterion to make observati...
bool is_landmark_already_assigned(const Eigen::VectorXi &hypothesis, int landmark_idx) const
Check if a landmark is already assigned in the current hypothesis.
Eigen::VectorXi associate(const Eigen::VectorXd &landmarks, const Eigen::VectorXd &observations, const Eigen::MatrixXd &covariance, const Eigen::VectorXd &observation_confidences) const override
Perform data association using the Joint Compatibility Branch & Bound algorithm.
void search_branch_and_bound(int current_obs_idx, int num_observations, int num_landmarks, const Eigen::MatrixXd &distances, Eigen::VectorXi ¤t_hypothesis, Eigen::VectorXi &best_hypothesis, double &best_score, double current_score) const
Recursive branch and bound search to find the best hypothesis.
JCBB(const DataAssociationParameters ¶ms)