Source code for morse.helpers.velocity

from morse.core import mathutils
from math import cos, sin

[docs]def linear_velocities(prev, now, dt): """ Return angular velocities between two poses :param prev: the precedent pose, as a Transformation3d :param now: the current pose, as a Transformation3d :param dt: time elapsed between the two poses acquisition, in sec """ return (now.translation - prev.translation) / dt
[docs]def angular_velocities(prev, now, dt): """ Return angular velocities between two poses :param prev: the precedent pose, as a Transformation3d :param now: the current pose, as a Transformation3d :param dt: time elapsed between the two poses acquisition, in sec See https://www.astro.rug.nl/software/kapteyn/_downloads/attitude.pdf for equation description """ patt = mathutils.Vector(prev.euler) att = mathutils.Vector(now.euler) euler_rate = (att - patt) /dt c0 = cos(att[0]) c1 = cos(att[1]) s0 = sin(att[0]) s1 = sin(att[1]) m = mathutils.Matrix(([1, 0, -s1], [0, c0, c1 * s0], [0, -s0, c1 * c0])) return m * euler_rate