Computes weighted and un-weighted averages of SO(3) orientations.
Add values to average with append(), when done call get_average(). Use clear() to reset the accumulator and start a new average computation. Theoretical base: Average on SO(3) manifolds is computed by averaging the corresponding matrices, then projecting the result back to the closest matrix in the manifold. Shortly explained in these slides See also: eq. (3.7) in "MEANS AND AVERAGING IN THE GROUP OF ROTATIONS", MAHER MOAKHER, 2002.
|Resets the accumulator. More...|
|void||append (const Eigen::Matrix3d &M)|
|Adds a new orientation to the computation. More...|
|void||append (const Eigen::Matrix3d &M, const double weight)|
|Adds a new orientation to the weighted-average computation. More...|
|Eigen::Matrix3d||get_average () const|
|Returns the average orientation. More...|
|(Default=false) Set to true if you want to raise an exception on undetermined average values. More...|
Adds a new orientation to the weighted-average computation.
|Eigen::Matrix3d mrpt::poses::SO_average< 3 >::get_average||(||)||const|
Returns the average orientation.
|std::logic_error||If no data point were inserted.|
|std::runtime_error||Upon undeterminate average value (ie there was a problem with the SVD) and enable_exception_on_undeterminate is set to true (otherwise, the 0 orientation would be returned)|
Referenced by run_test_so3_avrg().
|bool mrpt::poses::SO_average< 3 >::enable_exception_on_undeterminate|
|Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at lun oct 28 00:14:14 CET 2019|