22 #ifndef OV_EVAL_ALIGNTRAJECTORY_H 23 #define OV_EVAL_ALIGNTRAJECTORY_H 25 #include <Eigen/Eigen> 59 static void align_trajectory(
const std::vector<Eigen::Matrix<double, 7, 1>> &traj_es,
60 const std::vector<Eigen::Matrix<double, 7, 1>> &traj_gt, Eigen::Matrix3d &R, Eigen::Vector3d &t,
double &
s,
61 std::string method,
int n_aligned = -1);
72 const std::vector<Eigen::Matrix<double, 7, 1>> &traj_gt, Eigen::Matrix3d &R, Eigen::Vector3d &t);
82 static void align_posyaw(
const std::vector<Eigen::Matrix<double, 7, 1>> &traj_es,
const std::vector<Eigen::Matrix<double, 7, 1>> &traj_gt,
83 Eigen::Matrix3d &R, Eigen::Vector3d &t,
int n_aligned = -1);
92 static void align_se3_single(
const std::vector<Eigen::Matrix<double, 7, 1>> &traj_es,
93 const std::vector<Eigen::Matrix<double, 7, 1>> &traj_gt, Eigen::Matrix3d &R, Eigen::Vector3d &t);
103 static void align_se3(
const std::vector<Eigen::Matrix<double, 7, 1>> &traj_es,
const std::vector<Eigen::Matrix<double, 7, 1>> &traj_gt,
104 Eigen::Matrix3d &R, Eigen::Vector3d &t,
int n_aligned = -1);
115 static void align_sim3(
const std::vector<Eigen::Matrix<double, 7, 1>> &traj_es,
const std::vector<Eigen::Matrix<double, 7, 1>> &traj_gt,
116 Eigen::Matrix3d &R, Eigen::Vector3d &t,
double &s,
int n_aligned = -1);
static void align_posyaw(const std::vector< Eigen::Matrix< double, 7, 1 >> &traj_es, const std::vector< Eigen::Matrix< double, 7, 1 >> &traj_gt, Eigen::Matrix3d &R, Eigen::Vector3d &t, int n_aligned=-1)
Align estimate to GT using only position and yaw (for gravity aligned trajectories) using a set of in...
static void align_se3_single(const std::vector< Eigen::Matrix< double, 7, 1 >> &traj_es, const std::vector< Eigen::Matrix< double, 7, 1 >> &traj_gt, Eigen::Matrix3d &R, Eigen::Vector3d &t)
Align estimate to GT using a full SE(3) transform using only the first poses.
Evaluation and recording utilities.
static void align_trajectory(const std::vector< Eigen::Matrix< double, 7, 1 >> &traj_es, const std::vector< Eigen::Matrix< double, 7, 1 >> &traj_gt, Eigen::Matrix3d &R, Eigen::Vector3d &t, double &s, std::string method, int n_aligned=-1)
Align estimate to GT using a desired method using a set of initial poses.
static void align_se3(const std::vector< Eigen::Matrix< double, 7, 1 >> &traj_es, const std::vector< Eigen::Matrix< double, 7, 1 >> &traj_gt, Eigen::Matrix3d &R, Eigen::Vector3d &t, int n_aligned=-1)
Align estimate to GT using a full SE(3) transform using a set of initial poses.
static void align_sim3(const std::vector< Eigen::Matrix< double, 7, 1 >> &traj_es, const std::vector< Eigen::Matrix< double, 7, 1 >> &traj_gt, Eigen::Matrix3d &R, Eigen::Vector3d &t, double &s, int n_aligned=-1)
Align estimate to GT using a full SIM(3) transform using a set of initial poses.
static void align_posyaw_single(const std::vector< Eigen::Matrix< double, 7, 1 >> &traj_es, const std::vector< Eigen::Matrix< double, 7, 1 >> &traj_gt, Eigen::Matrix3d &R, Eigen::Vector3d &t)
Align estimate to GT using only position and yaw (for gravity aligned trajectories) using only the fi...
Class that given two trajectories, will align the two.