Python utilites for movements in 3d space
Project description
![Title](docs/Images/skinematics.png) — scikit-kinematics —
scikit-kinematics primarily 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 - YEI
Compatible with Python >= 3.5
Dependencies
numpy, scipy, matplotlib, pandas, sympy, easygui
Homepage
<http://work.thaslwanter.at/skinematics/html/>
Author: Thomas Haslwanter Date: 02-10-2020 Ver: 0.8.5 Licence: BSD 2-Clause License (<http://opensource.org/licenses/BSD-2-Clause>) Copyright (c) 2020, Thomas Haslwanter All rights reserved.
Installation
You can install scikit-kinematics with
> pip install scikit-kinematics
and upgrade to a new version with
> pip install –upgrade –no-deps scikit-kinematics
IMUs
Analysis 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: - XSens - xio (original, and NGIMU) - yei
* polulu
calc_position
MARG Systems
imus.analytical … Calculate orientation and position, from angular velocity and linear acceleration
imus.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-algorithm
imus.Mahony … Class for calculating the 3D orientation with the Mahony-algorithm
Markers
Analysis of signals from video-based marker-recordings of 3D movements
markers.analyze_3Dmarkers … Kinematic analysis of video-basedrecordings of 3D markers
markers.find_trajectory … Calculation of joint-movements from 3D marker positions
Quaternions
Note that all these functions work with single quaternions and quaternion vectors, as well as with arrays containing these.
Quaternion class
quat.Quaternion … class, including overloading for multiplication and
- : division (e.g. “quatCombined = quat1 * quat2”), import and
export
Functions for working with quaternions
quat.q_conj … Conjugate quaternion
quat.q_inv … Quaternion inversion
quat.q_mult … Quaternion multiplication
quat.q_scalar … Extract the scalar part from a quaternion
quat.q_vector … Extract the vector part from a quaternion
quat.unit_q … Extend a quaternion vector to a unit quaternion.
Conversion routines - quaternions
quat.calc_angvel … Calculates the velocity in space from quaternions
quat.calc_quat … Calculate orientation from a starting orientation and angular velocity.
quat.convert … Convert quaternion to corresponding rotation matrix or Gibbs vector
quat.deg2quat … Convert number or axis angles to quaternion vectors
quat.quat2seq … Convert quaternions to sequention rotations (“nautical” angles, etc)
quat.scale2deg … Convert quaternion to corresponding axis angle
Rotation Matrices
Definition of rotation matrices
rotmat.R … 3D rotation matrix for rotation about a coordinate axis
Conversion Routines - rotation matrices
rotmat.convert … Convert a rotation matrix to the corresponding quaternion
rotmat.seq2quat … Convert nautical angles etc. to quaternions
rotmat.sequence … Calculation of Euler, Fick, Helmholtz, … angles
Symbolic matrices
rotmat.R_s() … symbolix matrix for rotation about a coordinate axis
For 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 Matrices
rotmat.stm … spatial transformation matrix, for combined rotations/translations
rotmat.stm_s() … symbolix spatial transformation matrix
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for scikit_kinematics-0.8.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf7e69786025e4ccb70c1a7cf65fcf351139c08d36f5ea07bfef37b6c311dde3 |
|
MD5 | 670ba11510e46246583b36d416673ae1 |
|
BLAKE2b-256 | de2513d7f5ffcc2d22e50815eb662266387621c6d0f2a1915714fe5ed556fa0f |