50% off | Unlimited Data & AI Learning
Get 50% off unlimited learning

rotations (version 0.1)

weighted.mean.SO3: Weighted Mean Rotation

Description

Compute the weighted geometric or projected mean of a sample of rotations.

Usage

## S3 method for class 'SO3':
weighted.mean(x, w, type = "projected",
    epsilon = 1e-05, maxIter = 2000, ...)

## S3 method for class 'Q4': weighted.mean(x, w, type = "projected", epsilon = 1e-05, maxIter = 2000, ...)

Arguments

x
$n\times p$ matrix where each row corresponds to a random rotation in matrix form ($p=9$) or quaternion ($p=4$) form.
w
vector of weights the same length as the number of rows in x giving the weights to use for elements of x.
type
string indicating "projectced" or "geometric" type mean estimator.
epsilon
stopping rule for the geometric method.
maxIter
maximum number of iterations allowed before returning most recent estimate.
...
only used for consistency with mean.default.

Value

  • Weighted mean of the sample.

Details

This function takes a sample of 3D rotations (in matrix or quaternion form) and returns the weighted projected arithmetic mean denoted $\widehat{\bm S}_P$ or geometric mean $\widehat{\bm S}_G$ according to the type option. For a sample of $n$ rotations in matrix form $\bm{R}_i\in SO(3), i=1,2,\dots,n$, the mean-type estimator is defined as \bmS^=argmin\bmSSO(3)i=1nd2(\bmRi,\bmS) where $\bar{\bm{R}}=\frac{1}{n}\sum_{i=1}^n\bm{R}_i$ and the distance metric $d$ is the Riemannian or Euclidean. For more on the projected mean see Moakher (2002) and for the geometric mean see Manton (2004).

References

Moakher M (2002). "Means and averaging in the group of rotations." SIAM Journal on Matrix Analysis and Applications, 24(1), pp. 1-16.

Manton JH (2004). "A globally convergent numerical algorithm for computing the centre of mass on compact Lie groups." In Control, Automation, Robotics and Vision Conference, 2004. ICARCV 2004 8th, volume 3, pp. 2211-2216. IEEE.

See Also

median.SO3, mean.SO3

Examples

Run this code
Rs<-ruars(20,rvmises,kappa=0.01)
wt<-abs(1/angle(Rs))
weighted.mean(Rs,wt)
Qs<-Q4(Rs)
weighted.mean(Qs,wt)

Run the code above in your browser using DataLab