Python utilites for movements in 3d space
Project description
— title: ‘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: 04-10-2019 Ver: 0.8.3 Licence: BSD 2-Clause License (<http://opensource.org/licenses/BSD-2-Clause>) Copyright (c) 2019, 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 Distributions
Hashes for scikit_kinematics-0.8.3-py3.7.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84f276db971fdc7a14fe70403b6a641714ff7e5b2b654ed5a41490f59d976e32 |
|
MD5 | 68d47d9214d8599f20e3131798c93b8d |
|
BLAKE2b-256 | 571e21d0eebd4727f6d12dee3610bad5ff64c737f4966a85546d58ca834b6bf4 |
Hashes for scikit_kinematics-0.8.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cbae3f4d5ca8d1d884b580490f1b6b93bc3c714326f18fe4132433a6b74d43e |
|
MD5 | f8c967bca92ab555913b2a22c53026d1 |
|
BLAKE2b-256 | 485db18cccc3937ab96bbfcf7629cf42d927a88f3fe0fbd48b5813af23c3a18e |
Hashes for scikit-kinematics-0.8.3.win-amd64.exe
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0fec34a5ef105b5db10c7d3de88df8a3dff69c6cfddb84cebcdcb931132c0cc |
|
MD5 | b4b36265d4247f6618a1c3f59768580c |
|
BLAKE2b-256 | 264c00dc2075d358e26db710d1f8a37c1316c41581f5fdd5f52c1795016def33 |