How to make up configuration in the rpg-trajectory-evaluation open-source

여러개의 dataset상 혹은 relative pose Error를 구할 때, single trajectory estimate보다는 다음과 같은 multiple trajectory estimates가 주로 활용된다.

rosrun rpg_trajectory_evaluation analyze_trajectories.py \
  kitti_lego.yaml --output_dir=./results/kitti_lidar --results_dir=./results/kitti_lidar --platform laptop --odometry_error_per_dataset --plot_trajectories --rmse_table --rmse_boxplot --mul_trials=1

이때, 위 코드를 기준으로 kitti_lego.yaml을 기준으로 파일들을 읽어오게 되므로, 이 yaml파일을 잘 세팅하는 것이 중요하다. yaml파일은 analyze_trajectories_config 폴더에서 자동으로 검색하여 찾게된다.

Datasets:
  KTI_00:
    label: KITTI_00
  KTI_01:
    label: KITTI_01
  KTI_02:
    label: KITTI_02
  KTI_03:
    label: KITTI_03
  KTI_04:
    label: KITTI_04
  KTI_05:
    label: KITTI_05
  KTI_06:
    label: KITTI_06
  KTI_07:
    label: KITTI_07
  KTI_08:
    label: KITTI_08
  KTI_09:
    label: KITTI_09
  KTI_10:
    label: KITTI_10
Algorithms:
  lego-org:
    fn: traj_est
    label: lego-org
  lego-patch:
    fn: traj_est
    label: lego-patch
RelDistances: []
RelDistancePercentages: []

공식 사이트인 https://github.com/uzh-rpg/rpg_trajectory_evaluation 에도 잘 설명되어 있듯이

만약 위와같이 코드와 yaml파일을 작성했다면, ./results/kitti_lidar폴더가 생성되어 있어야하며, platform인 ./results/kitti_lidar/laptop 가 형성되어 있어야 한다.

이후 코드는 run할때 Algorithms에서 lego-org, lego-patch에 해당하는 폴더를 찾고, platform_label_dataset의 폴더를 갖고 있어야한다.
위 예시로는 ./results/kitti_lidar/laptop/lego-org/laptop_lego-org_KTI_00 폴더가 있어야한다.
그리고 이 폴더안에는 stamped_groundtruth.txt와 stamped_traj_estimate.txt가 존재해야하고, 이를 기반으로 계산하게 된다. (optional: eval_cfg.yaml)
존재할시에는 ./results/kitti_lidar/laptop/lego-org/laptop_lego-org_KTI_00/saved_results/traj_est에 각 결과가 저장되게 된다. (traj_est는 fn에 해당하는 이름)

** mul_trials가 1을 넘는경우 파일이나 폴더뒤에 숫자를 더 추가해주어야 한다.