Skip to content

Latest commit

 

History

History
158 lines (118 loc) · 5.97 KB

demo.md

File metadata and controls

158 lines (118 loc) · 5.97 KB

Running a demo

After following the setup guide, we can run one of the provided demo. As an example, we will showcase the demo examples/demo_se2.

❗ Pro tip, if you only want to run the example, or to deploy your application, don't forget to compile in Release together with the appropriate optimization flags ❗

Without further due, let's run it:

$ cd build/examples
$ ./demo_se2

X simulated      : +0.00000 +0.00000 +0.00000
X estimated EKF  : +0.44013 -3.07954 +2.97186 : |d|=+5.22889
X estimated SEKF : +0.44013 -3.07954 +2.97186 : |d|=+5.22889
X estimated IEKF : +0.07242 -0.04252 +0.14026 : |d|=+0.21540
X estimated UKFM : +0.21577 +2.77866 -2.35481 : |d|=+4.34255
X unfilterd      : -0.00125 +0.00084 -0.00118 : |d|=+0.00225
----------------------------------
...
----------------------------------
X simulated      : +259.57122  +66.78571   -0.36915
X estimated EKF  : +259.63376  +66.43129   -0.36668 : |d|=+0.02875
X estimated SEKF : +259.63376  +66.43129   -0.36668 : |d|=+0.02875
X estimated IEKF : +259.62728  +66.45183   -0.36651 : |d|=+0.01739
X estimated UKFM : +259.51942  +66.77590   -0.36393 : |d|=+0.69864
X unfilterd      : +258.65849  +62.90753   -0.25352 : |d|=+11.90319
----------------------------------
      RMSE      RRMSE     ATE       RTE       AOE       ROE       FPE
EKF   +0.11785  +1.10971  +0.10668  +1.06239  +0.00335  +0.04341  +0.02875
IEKF  +0.07645  +0.46241  +0.07484  +0.45011  +0.00223  +0.01591  +0.01739
SEKF  +0.11785  +1.10971  +0.10668  +1.06239  +0.00335  +0.04341  +0.02875
UKFM  +0.37889  +1.20746  +0.37708  +1.18011  +0.00361  +0.03695  +0.69864
UNFI  +4.80459  +0.09614  +4.80363  +0.09013  +0.05659  +0.01835  +11.90319

We see that a bunch of info got printed on the terminal. At each iteration, we print the simulated (true) pose, then the estimated pose by each filter, and last the unfiltered pose. For each estimated/unfiltered pose, we compute its distance to the ground-truth. Upon finishing, we calculate all kind of metrics, comparing the estimated pose to the ground truth for each filter. The metrics are summarized below.

The demo plots

In case you compiled with the flag enabling plots, running e.g.

./demo_se2 --plot-trajectory

will open a window with the trajectories (simulated/estimated/unfiltered) plotted such as the one below.

demo SE2

The demo options

$ ./demo_se2 -h
Usage: ./demo_se2 <option(s)>
E.g. ./demo_se2 -f demo_plots -n
Options:
  -h, --help               Show this helper
  -t, --plot-trajectory    Plot the trajectories
  -e, --plot-error         Plot the errors
  -f, --filename FILENAME  Base filename to save plots

This tells us what are the different options of the demo.

The demo metrics

The Root Mean Square Error

\tau

RMSE

The Absolute Translation Error

\gamma

ATE

The Absolute Orientation Error

\gamma

AOE

with,

\gamma

AOE

The Final Pose Error

FPE

The Relative Errors

The remaining metrics are:

  • the Relative Root Mean Square Error
  • the Relative Translation Error
  • the Relative Orientation Error

and are local application of the previous metrics on aligned trajcetory segments. To compute the relative metrics, the trajectory is sliced into temporal blocks of $\Delta$ seconds, \bfS. The initial pose of each block is then aligned to the initial pose of the block, \gamma.

The previous metrics are then applied to each block and summed up,

RRMSE

RTE

ROE