Package: scikit-kinematics
scikit-kinematicsscikit-kinematicsprimarily contains functions for working with 3D
kinematics, e.g quaternions and rotation matrices. This includes
utilities to read in data from the following IMU-sensors: - polulu -
XSens - xio - xio-NGIMU - YEICompatible with Python >= 3.5Dependenciesnumpy, scipy, matplotlib, pandas, sympy, easyguiHomepagehttp://work.thaslwanter.at/skinematics/html/Author: Thomas Haslwanter Date: 12-05-2023 Ver: 0.9.0 Licence: BSD
2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
Copyright (c) 2023, Thomas Haslwanter All rights reserved.InstallationYou can install scikit-kinematics withpip install scikit-kinematicsand upgrade to a new version withpip install --upgrade --no-deps scikit-kinematicsIMUsAnalysis of signals from IMUs (intertial-measurement-units). Read in
data, calculate orientation (with one of the algorithms below)get_data ... This method must be taken from one of the existing
sensors, or from your own sensor. Currenlty the following sensors
types are available:XSensxio (original, and NGIMU)yei* polulucalc_positionMARG Systemsimus.analytical ... Calculate orientation and position, from angular
velocity and linear accelerationimus.kalman ... Calculate orientation from IMU-data using an
Extended Kalman Filter.imus.IMU ... Class for working with data from IMUs

:   -   imus.IMU.calc\_position ... calculate position
    -   imus.IMU.setData ... set the properties of an IMU-object
    -   imus.IMU.set\_qtype ... sets q\_type, and automatically
        performs the relevant calculations.imus.Madgwick ... Class for calculating the 3D orientation with the
Madgwick-algorithmimus.Mahony ... Class for calculating the 3D orientation with the
Mahony-algorithmMarkersAnalysis of signals from video-based marker-recordings of 3D movementsmarkers.analyze_3Dmarkers ... Kinematic analysis of
video-basedrecordings of 3D markersmarkers.find_trajectory ... Calculation of joint-movements from 3D
marker positionsQuaternionsNote that all these functions work with single quaternions and
quaternion vectors, as well as with arrays containing these.Quaternion classquat.Quaternion ... class, including overloading for multiplication and

:   division (e.g. "quatCombined = quat1 \* quat2"), import and
    exportFunctions for working with quaternionsquat.q_conj ... Conjugate quaternionquat.q_inv ... Quaternion inversionquat.q_mult ... Quaternion multiplicationquat.q_scalar ... Extract the scalar part from a quaternionquat.q_vector ... Extract the vector part from a quaternionquat.unit_q ... Extend a quaternion vector to a unit quaternion.Conversion routines - quaternions
--------------------------------=quat.calc_angvel ... Calculates the velocity in space from
quaternionsquat.calc_quat ... Calculate orientation from a starting
orientation and angular velocity.quat.convert ... Convert quaternion to corresponding rotation matrix
or Gibbs vectorquat.deg2quat ... Convert number or axis angles to quaternion
vectorsquat.quat2seq ... Convert quaternions to sequention rotations
("nautical" angles, etc)quat.scale2deg ... Convert quaternion to corresponding axis angleRotation MatricesDefinition of rotation matrices
------------------------------=rotmat.R ... 3D rotation matrix for rotation about a coordinate axisConversion Routines - rotation matrices
--------------------------------------=rotmat.convert ... Convert a rotation matrix to the corresponding
quaternionrotmat.seq2quat ... Convert nautical angles etc. to quaternionsrotmat.sequence ... Calculation of Euler, Fick, Helmholtz, ...
anglesSymbolic matricesrotmat.R_s() ... symbolix matrix for rotation about a coordinate
axisFor example, you can e.g. generate a Fick-matrix, with>>> R_Fick = R_s(2, 'theta') * R_s(1, 'phi') * R_s(0,
'psi')Spatial Transformation Matricesrotmat.stm ... spatial transformation matrix, for combined
rotations/translationsrotmat.stm_s() ... symbolix spatial transformation matrixDenavit-Hartenberg Transformationsrotmat.dh ... Denavit-Hartenberg transformation matrixrotmat.dh_s ... symbolic Denavit-Hartenberg transformation matrixVectorsRoutines for working with vectors These routines can be used with
vectors, as well as with matrices containing a vector in each row.vector.normalize ... Vector normalizationvector.project ... Projection of one vector onto another onevector.GramSchmidt ... Gram-Schmidt orthogonalization of three
pointsvector.q_shortest_rotation ... Quaternion indicating the shortest
rotation from one vector into another.vector.rotate_vector ... Rotation of a vectorvector.target2orient ... Convert target location into orientation
anglesInteractive Data Analysis
========================-viewer.ts ... interactive viewer for time series dataview.orientation ... visualize and animate orientations, expressed
as quaternions.Simulationssimulate_movements ... calculated ideal IMU-signals for combined rotations/translationsErrataThe fileErrata.pdfcontains the a list of mistakes in the manuscript, and
the corresponding corrections.