Main Content

trajectoryErrorMetrics

Store accuracy metrics for trajectories

Since R2024b

Description

The trajectoryErrorMetrics object stores accuracy metrics for trajectories, including both absolute trajectory error and relative trajectory error, across a sequence of poses.

Creation

Create a trajectoryErrorMetrics object by using the compareTrajectories function.

Properties

expand all

This property is read-only.

Absolute trajectory error, specified as an M-by-2 matrix of the form [absRotationError,absTranslationError]. M specifies the number of poses. absRotationError specifies the absolute rotation error in degrees and absTranslationError specifies the absolute translation error. The absRotationError is the magnitude of the rotation angle in degrees, obtained by converting the rotation matrix in AbsoluteError_i to the angle-axis representation. The absTranslationError is the Euclidean norm of the translation vector derived from AbsoluteError_i.

The absolute trajectory pose error calculates the exact differences between where a robot thinks it is (estimated pose), and its actual location (ground truth), at specific times. It quantifies how accurately the estimated path aligns with the actual (ground truth) path. Mathematically, if Piest is the i-th estimated pose and Pigt is the corresponding ground truth pose, then the absolute pose error of the i-th estimated pose can be defined as the:

AbsoluteErrori=PiestPigt

or as,

AbsoluteErrori=Pigt·(Piest)1

This property is read-only.

Relative trajectory pose error, specified as an M-by-2 matrix of the form [relRotationError,relTranslationError]. M specifies the number of poses. relRotationError specifies the relative rotation error in degrees and relTranslationError specifies the relative translation error.

The relRotationError represents the magnitude of the rotation angle, measured in degrees. This value is obtained after converting the rotation matrix in RelativeErrori+Δ to the angle-axis representation.

The relTranslationError is the Euclidean norm of the translation component extracted from RelativeErrori+Δ.

The relative pose error calculates the differences in the robot's movement over a set distance or interval, rather than its exact position at a specific point in time. It measures how much the robot's estimated change in position (estimated relative pose) deviates from the actual change in position (ground truth relative pose) over this interval. This helps in assessing the accuracy of the robot's perception of its own movement over time.

To compute relative pose error, compare pairs of poses (Piest,Pi+Δest) from the estimated trajectory (Pigt,Pi+Δgt) from the actual (ground truth) trajectory, spaced by a set distance.

The error is the difference in movement between these pairs.

RelativeErrori+Δ=(Piest)1Pi+Δest(Pigt)1Pi+Δgt

or,

RelativeErrori+Δ=(Pigt)1·Pi+Δgt·((Piest)1·Pi+Δest)1

This property is read-only.

Root mean square (RMS) of absolute trajectory error, specified as a 2-element vector of the form [absRotationRMS,absTranslationRMS]. The RMS is calculated as:

  • absRotationRMS = rms(absRotationRMS)

  • absTranslationRMS = rms(absTranslationRMS)

The absolute pose error can be summarized over the entire trajectory by taking the root mean square of the individual errors.

AbsoluteRMSE=1ni=1nAbsoluteErrori2

This property is read-only.

Root mean square of relative (RMS) trajectory error, specified as a 2-element vector of the form [relRotationRMS,relTranslationRMS]. The RMS is calculated as:

  • relRotationRMS = rms(relRotationRMS)

  • relTranslationRMS = rms(relTranslationRMS)

The relative pose error can be summarized over the entire trajectory by taking the root mean square of the individual errors.

RelativeRMSE=1ni=1nRelativeErrori2

Object Functions

plotPlot aligned estimated trajectory and error metrics

References

[1] Sturm, Jürgen, Nikolas Engelhard, Felix Endres, Wolfram Burgard, and Daniel Cremers. 2012. "A Benchmark for the Evaluation of RGB-D SLAM Systems." In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, 573-580.

[2] Zhang, Zichao, and Davide Scaramuzza. 2018. "A Tutorial on Quantitative Trajectory Evaluation for Visual (-Inertial) Odometry." In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, 7244-7251.

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2024b