Ich habe die folgende Rotation x, y, z, w (wobei w der Kosinus des halben Rotationswinkels ist):
[1,0,0,-8.940696716308594e-08]
Ich möchte die folgenden Achsenkoordinaten aus dem folgenden Array mit der angegebenen Drehung drehen:
[array([[ 0.27050799, -0.027344, -0.073242 ],
[ 0.27050799, -0.027344, -0.073242 ],
[ 0.45117199, -0.021484, -0.203125 ],
[ 0.45117199, -0.021484, -0.203125 ],
[ 0.65234399, -0.038086, 0.12988301]])]
Wie würde ich vorgehen?
Lösung des Problems
Sie können scipy für diese Aufgabe wie folgt verwenden:
import numpy as np
from scipy.spatial.transform import Rotation
q = np.array([1,0,0,-8.940696716308594e-08])
rotation = Rotation.from_quat(q)
vectors = np.array(
[
[ 0.27050799, -0.027344, -0.073242 ],
[ 0.27050799, -0.027344, -0.073242 ],
[ 0.45117199, -0.021484, -0.203125 ],
[ 0.45117199, -0.021484, -0.203125 ],
[ 0.65234399, -0.038086, 0.12988301]
]
)
rotated_vectors = rotation.apply(vectors)
Keine Kommentare:
Kommentar veröffentlichen