diff --git a/doc/Simulation.md b/doc/Simulation.md index ae90243..88fbd5b 100644 --- a/doc/Simulation.md +++ b/doc/Simulation.md @@ -28,8 +28,8 @@ The buttons in the GUI have the following meaning: * `show_gt_...` shows ground truth position, velocity and biases. * `show_est_...` shows VIO estimates of the position, velocity and biases. * `next_step` proceeds to next frame. -* `continue_btn` plays the sequence. -* `align_button` performs SE(3) alignment with ground-truth trajectory and prints the RMS ATE to the console. +* `continue` plays the sequence. +* `align_svd` performs SE(3) alignment with ground-truth trajectory and prints the RMS ATE to the console. ### Visual-inertial mapping simulator @@ -46,5 +46,6 @@ The system processes the marginalization data and extracts the non-linear factor * `rand_inc` applies a random increment to all frames of the system. If you run the `optimize` until convergence afterwards, and press `align_svd` the alignment transformation should only contain the rotation around Z axis. * `rand_yaw` applies an increment in yaw to all poses. This should not change the error of the optimization once is have converged. * `setup_points` triangulates the points and adds them to optimization. You should optimize the system again after adding the points. +* `align_svd` performs SE(3) alignment with ground-truth trajectory and prints the RMS ATE to the console. For comparison we also provide the `basalt_mapper_sim_naive` executable that has the same parameters. It runs a global bundle-adjustment on keyframe data and inserts pre-integrated IMU measurements between keyframes. This executable is included for comparison only. \ No newline at end of file diff --git a/doc/VioMapping.md b/doc/VioMapping.md index d065f52..b5ed51a 100644 --- a/doc/VioMapping.md +++ b/doc/VioMapping.md @@ -40,7 +40,7 @@ The buttons in the GUI have the following meaning: * `show_est_ba` shows the plot of the estimated accel bias. * `show_gt` shows ground-truth trajectory in the 3D view. -By default the system starts with `continue_fast` enabled. This option visualizes the latest processed frame until the end of the sequence. Alternatively, the `continue_btn` visualizes every frame without skipping. If both options are disabled the system shows the frame that is selected with the `show_frame` slider and the user can move forward and backward with `next_step` and `prev_step` buttons. The `follow` button changes between the static camera and the camera attached to the current frame. +By default the system starts with `continue_fast` enabled. This option visualizes the latest processed frame until the end of the sequence. Alternatively, the `continue` visualizes every frame without skipping. If both options are disabled the system shows the frame that is selected with the `show_frame` slider and the user can move forward and backward with `next_step` and `prev_step` buttons. The `follow` button changes between the static camera and the camera attached to the current frame. For evaluation the button `align_svd` is used. It aligns the GT trajectory with the current estimate using an SE(3) transformation and prints the transformation and the root-mean-squared absolute trajectory error (RMS ATE). @@ -74,7 +74,7 @@ The workflow for the mapping is the following: The `num_opt_iter` slider controls the maximum number of iterations executed when pressing `optimize`. -For more systematic evaluation see the evaluation scripts in the `scripts/eval_full` folder. +For more systematic evaluation see the evaluation scripts in the [scripts/eval_full](scripts/eval_full) folder. **NOTE: It appears that only the datasets in ASL Dataset Format (`euroc` dataset type in our notation) contain ground truth that is time-aligned to the IMU and camera images. It is located in the `state_groundtruth_estimate0` folder. Bag files have raw Mocap measurements that are not time aligned and should not be used for evaluations.** diff --git a/doc/img/MH_05_OPT_FLOW.png b/doc/img/MH_05_OPT_FLOW.png index cb011b2..a25c340 100644 Binary files a/doc/img/MH_05_OPT_FLOW.png and b/doc/img/MH_05_OPT_FLOW.png differ diff --git a/doc/img/MH_05_VIO.png b/doc/img/MH_05_VIO.png index 31bc7a4..42dc260 100644 Binary files a/doc/img/MH_05_VIO.png and b/doc/img/MH_05_VIO.png differ diff --git a/doc/img/SIM_VIO.png b/doc/img/SIM_VIO.png index 5acefe1..cdfcf0d 100644 Binary files a/doc/img/SIM_VIO.png and b/doc/img/SIM_VIO.png differ diff --git a/doc/img/magistrale1_vio.png b/doc/img/magistrale1_vio.png index 5ec266f..1b86a7f 100644 Binary files a/doc/img/magistrale1_vio.png and b/doc/img/magistrale1_vio.png differ diff --git a/src/mapper_sim_naive.cpp b/src/mapper_sim_naive.cpp index 6635197..2f06d76 100644 --- a/src/mapper_sim_naive.cpp +++ b/src/mapper_sim_naive.cpp @@ -154,9 +154,9 @@ using Button = pangolin::Var>; Button next_step_btn("ui.next_step", &next_step); -pangolin::Var continue_btn("ui.continue_btn", true, false, true); +pangolin::Var continue_btn("ui.continue", true, false, true); -Button align_step_btn("ui.align_button", &alignButton); +Button align_step_btn("ui.align_svd", &alignButton); int main(int argc, char** argv) { srand(1); diff --git a/src/opt_flow.cpp b/src/opt_flow.cpp index 233bf6f..3cc41b4 100644 --- a/src/opt_flow.cpp +++ b/src/opt_flow.cpp @@ -74,7 +74,7 @@ pangolin::Var show_ids("ui.show_ids", false, false, true); using Button = pangolin::Var>; Button next_step_btn("ui.next_step", &next_step); -pangolin::Var continue_btn("ui.continue_btn", true, false, true); +pangolin::Var continue_btn("ui.continue", true, false, true); // Opt flow variables basalt::VioDatasetPtr vio_dataset; diff --git a/src/vio.cpp b/src/vio.cpp index 2e4583f..7452c83 100644 --- a/src/vio.cpp +++ b/src/vio.cpp @@ -95,7 +95,7 @@ pangolin::Var show_gt("ui.show_gt", true, false, true); Button next_step_btn("ui.next_step", &next_step); Button prev_step_btn("ui.prev_step", &prev_step); -pangolin::Var continue_btn("ui.continue_btn", false, false, true); +pangolin::Var continue_btn("ui.continue", false, false, true); pangolin::Var continue_fast("ui.continue_fast", true, false, true); Button align_svd_btn("ui.align_svd", &alignButton); diff --git a/src/vio_sim.cpp b/src/vio_sim.cpp index bacbd17..10ec81c 100644 --- a/src/vio_sim.cpp +++ b/src/vio_sim.cpp @@ -162,9 +162,9 @@ using Button = pangolin::Var>; Button next_step_btn("ui.next_step", &next_step); -pangolin::Var continue_btn("ui.continue_btn", true, false, true); +pangolin::Var continue_btn("ui.continue", true, false, true); -Button align_step_btn("ui.align_button", &alignButton); +Button align_step_btn("ui.align_svd", &alignButton); int main(int argc, char** argv) { srand(1);