scipy.spatial.transform.Rotation.

mean#

Rotation.mean(self, weights=None)#

Ermitteln Sie den Mittelwert der Rotationen.

Der verwendete Mittelwert ist der chordale L2-Mittelwert (auch projektierter oder induzierter arithmetischer Mittelwert genannt) [1]. Wenn A eine Menge von Rotationsmatrizen ist, dann ist der Mittelwert M die Rotationsmatrix, die die folgende Verlustfunktion minimiert:

\[L(M) = \sum_{i = 1}^{n} w_i \lVert \mathbf{A}_i - \mathbf{M} \rVert^2 ,\]

wobei die \(w_i\) die weights sind, die jeder Matrix entsprechen.

Parameter:
weightsarray_like shape (N,), optional

Gewichte, die die relative Wichtigkeit der Rotationen beschreiben. Wenn None (Standard), dann werden alle Werte in weights als gleich angenommen.

Rückgabe:
meanRotation instance

Objekt, das den Mittelwert der Rotationen in der aktuellen Instanz enthält.

Referenzen

[1]

Hartley, Richard, et al., „Rotation Averaging“, International Journal of Computer Vision 103, 2013, S. 267-305.

Beispiele

>>> from scipy.spatial.transform import Rotation as R
>>> r = R.from_euler('zyx', [[0, 0, 0],
...                          [1, 0, 0],
...                          [0, 1, 0],
...                          [0, 0, 1]], degrees=True)
>>> r.mean().as_euler('zyx', degrees=True)
array([0.24945696, 0.25054542, 0.24945696])