template class mrpt::poses::SO_average<2>
Computes weighted and un-weighted averages of SO(2) 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(2) manifolds is computed by averaging the corresponding 2D points, then projecting the result back to the closest-point in the manifold. Shortly explained in these slides Class introduced in MRPT 1.3.1
See also:
SE_traits
#include <mrpt/poses/SO_SE_average.h> template <> class SO_average<2> { public: // fields bool enable_exception_on_undeterminate {false}; // construction SO_average(); // methods void clear(); void append(const double orientation_rad); void append(const double orientation_rad, const double weight); double get_average() const; };
Fields
bool enable_exception_on_undeterminate {false}
(Default=false) Set to true if you want to raise an exception on undetermined average values.
Construction
SO_average()
Constructor.
Methods
void clear()
Resets the accumulator.
void append(const double orientation_rad)
Adds a new orientation (radians) to the computation.
See also:
void append(const double orientation_rad, const double weight)
Adds a new orientation (radians) to the weighted-average computation.
See also:
double get_average() const
Returns the average orientation (radians).
Parameters:
std::logic_error |
If no data point were inserted. |
std::runtime_error |
Upon undeterminate average value (ie the average lays exactly on the origin point) and enable_exception_on_undeterminate is set to true (otherwise, the 0 orientation would be returned) |
See also: