
===
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.9
Dependencies
------------
numpy, scipy, matplotlib, pandas, sympy, easygui
Homepage
--------
<http://work.thaslwanter.at/skinematics/html/>
Author: Thomas Haslwanter Date: 02-12-2024 Ver: 0.10.1 Licence: BSD
2-Clause License (<http://opensource.org/licenses/BSD-2-Clause>)
Copyright (c) 2024, 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 (XIO, NGIMU, and XIO3)
- 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
Denavit-Hartenberg Transformations
----------------------------------
- rotmat.dh ... Denavit-Hartenberg transformation matrix
- rotmat.dh\_s ... symbolic Denavit-Hartenberg transformation matrix
Vectors
=======
Routines 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 normalization
- vector.project ... Projection of one vector onto another one
- vector.GramSchmidt ... Gram-Schmidt orthogonalization of three
points
- vector.q\_shortest\_rotation ... Quaternion indicating the shortest
rotation from one vector into another.
- vector.rotate\_vector ... Rotation of a vector
- vector.target2orient ... Convert target location into orientation
angles
Interactive Data Analysis
========================-
- viewer.ts ... interactive viewer for time series data
- view.orientation ... visualize and animate orientations, expressed
as quaternions.
Simulations
===========
- simulate_movements ... calculated ideal IMU-signals for combined rotations/translations
## Errata
The file [Errata.pdf](Errata.pdf) contains the a list of mistakes in the manuscript, and
the corresponding corrections.
Raw data
{
"_id": null,
"home_page": "https://work.thaslwanter.at/skinematics/html",
"name": "scikit-kinematics",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "quaterions, rotations",
"author": "Thomas Haslwanter",
"author_email": "thomas.haslwanter@fh-ooe.at",
"download_url": "https://files.pythonhosted.org/packages/c7/f3/dce064eec37bf8600e2e72888da47cf1743472e9a08bbc51a801ab94216b/scikit_kinematics-0.10.1.tar.gz",
"platform": null,
"description": "\n===\nscikit-kinematics\n===\n\n*scikit-kinematics* primarily contains functions for working with 3D\nkinematics, e.g quaternions and rotation matrices. This includes\nutilities to read in data from the following IMU-sensors: - polulu -\nXSens - xio - xio-NGIMU - YEI\n\nCompatible with Python >= 3.9\n\nDependencies\n------------\n\nnumpy, scipy, matplotlib, pandas, sympy, easygui\n\nHomepage\n--------\n\n<http://work.thaslwanter.at/skinematics/html/>\n\nAuthor: Thomas Haslwanter Date: 02-12-2024 Ver: 0.10.1 Licence: BSD\n2-Clause License (<http://opensource.org/licenses/BSD-2-Clause>)\nCopyright (c) 2024, Thomas Haslwanter All rights reserved.\n\nInstallation\n------------\n\nYou can install scikit-kinematics with\n\n> pip install scikit-kinematics\n\nand upgrade to a new version with\n\n> pip install --upgrade --no-deps scikit-kinematics\n\nIMUs\n====\n\nAnalysis of signals from IMUs (intertial-measurement-units). Read in\ndata, calculate orientation (with one of the algorithms below)\n\n- get\\_data ... This method must be taken from one of the existing\n sensors, or from your own sensor. Currenlty the following sensors\n types are available:\n - XSens\n - xio (XIO, NGIMU, and XIO3)\n - yei\n\n \\* polulu\n- calc\\_position\n\nMARG Systems\n------------\n\n- imus.analytical ... Calculate orientation and position, from angular\n velocity and linear acceleration\n- imus.kalman ... Calculate orientation from IMU-data using an\n Extended Kalman Filter.\n- \n\n imus.IMU ... Class for working with data from IMUs\n\n : - imus.IMU.calc\\_position ... calculate position\n - imus.IMU.setData ... set the properties of an IMU-object\n - imus.IMU.set\\_qtype ... sets q\\_type, and automatically\n performs the relevant calculations.\n\n- imus.Madgwick ... Class for calculating the 3D orientation with the\n Madgwick-algorithm\n- imus.Mahony ... Class for calculating the 3D orientation with the\n Mahony-algorithm\n\nMarkers\n=======\n\nAnalysis of signals from video-based marker-recordings of 3D movements\n\n- markers.analyze\\_3Dmarkers ... Kinematic analysis of\n video-basedrecordings of 3D markers\n- markers.find\\_trajectory ... Calculation of joint-movements from 3D\n marker positions\n\nQuaternions\n===========\n\nNote that all these functions work with single quaternions and\nquaternion vectors, as well as with arrays containing these.\n\nQuaternion class\n----------------\n\n- \n\n quat.Quaternion ... class, including overloading for multiplication and\n\n : division (e.g. \"quatCombined = quat1 \\* quat2\"), import and\n export\n\nFunctions for working with quaternions\n--------------------------------------\n\n- quat.q\\_conj ... Conjugate quaternion\n- quat.q\\_inv ... Quaternion inversion\n- quat.q\\_mult ... Quaternion multiplication\n- quat.q\\_scalar ... Extract the scalar part from a quaternion\n- quat.q\\_vector ... Extract the vector part from a quaternion\n- quat.unit\\_q ... Extend a quaternion vector to a unit quaternion.\n\nConversion routines - quaternions\n--------------------------------=\n\n- quat.calc\\_angvel ... Calculates the velocity in space from\n quaternions\n- quat.calc\\_quat ... Calculate orientation from a starting\n orientation and angular velocity.\n- quat.convert ... Convert quaternion to corresponding rotation matrix\n or Gibbs vector\n- quat.deg2quat ... Convert number or axis angles to quaternion\n vectors\n- quat.quat2seq ... Convert quaternions to sequention rotations\n (\"nautical\" angles, etc)\n- quat.scale2deg ... Convert quaternion to corresponding axis angle\n\nRotation Matrices\n=================\n\nDefinition of rotation matrices\n------------------------------=\n\n- rotmat.R ... 3D rotation matrix for rotation about a coordinate axis\n\nConversion Routines - rotation matrices\n--------------------------------------=\n\n- rotmat.convert ... Convert a rotation matrix to the corresponding\n quaternion\n- rotmat.seq2quat ... Convert nautical angles etc. to quaternions\n- rotmat.sequence ... Calculation of Euler, Fick, Helmholtz, ...\n angles\n\nSymbolic matrices\n-----------------\n\n- rotmat.R\\_s() ... symbolix matrix for rotation about a coordinate\n axis\n\nFor example, you can e.g. generate a Fick-matrix, with\n\n>>> R\\_Fick = R\\_s(2, 'theta') \\* R\\_s(1, 'phi') \\* R\\_s(0,\n'psi')\n\nSpatial Transformation Matrices\n-------------------------------\n\n- rotmat.stm ... spatial transformation matrix, for combined\n rotations/translations\n- rotmat.stm\\_s() ... symbolix spatial transformation matrix\n\nDenavit-Hartenberg Transformations\n----------------------------------\n\n- rotmat.dh ... Denavit-Hartenberg transformation matrix\n- rotmat.dh\\_s ... symbolic Denavit-Hartenberg transformation matrix\n\nVectors\n=======\n\nRoutines for working with vectors These routines can be used with\nvectors, as well as with matrices containing a vector in each row.\n\n- vector.normalize ... Vector normalization\n- vector.project ... Projection of one vector onto another one\n- vector.GramSchmidt ... Gram-Schmidt orthogonalization of three\n points\n- vector.q\\_shortest\\_rotation ... Quaternion indicating the shortest\n rotation from one vector into another.\n- vector.rotate\\_vector ... Rotation of a vector\n- vector.target2orient ... Convert target location into orientation\n angles\n\nInteractive Data Analysis\n========================-\n\n- viewer.ts ... interactive viewer for time series data\n- view.orientation ... visualize and animate orientations, expressed\n as quaternions.\n\nSimulations\n===========\n\n- simulate_movements ... calculated ideal IMU-signals for combined rotations/translations\n\n## Errata\nThe file [Errata.pdf](Errata.pdf) contains the a list of mistakes in the manuscript, and\nthe corresponding corrections.\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "Python utilites for movements in 3d space",
"version": "0.10.1",
"project_urls": {
"Homepage": "https://work.thaslwanter.at/skinematics/html",
"Repository": "https://github.com/thomas-haslwanter/scikit-kinematics"
},
"split_keywords": [
"quaterions",
" rotations"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "040b8b8938529ffd4bdb55cca5fa249d3cfc49ff0044b0c03acf5fe1329ad2fb",
"md5": "85e9549783e42cba8390354b3a4af1f3",
"sha256": "5b93abe83193016024e96bdc67b27d0304df0e62810369bffa518ad840eed30e"
},
"downloads": -1,
"filename": "scikit_kinematics-0.10.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "85e9549783e42cba8390354b3a4af1f3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 2575477,
"upload_time": "2024-12-02T16:27:45",
"upload_time_iso_8601": "2024-12-02T16:27:45.029157Z",
"url": "https://files.pythonhosted.org/packages/04/0b/8b8938529ffd4bdb55cca5fa249d3cfc49ff0044b0c03acf5fe1329ad2fb/scikit_kinematics-0.10.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c7f3dce064eec37bf8600e2e72888da47cf1743472e9a08bbc51a801ab94216b",
"md5": "f954eb5688e3670929e2d2a999d3a8a7",
"sha256": "f20208ecaef1d1d25088252814449e2bc9d63dc5c0ac52e32f5f346bb76735de"
},
"downloads": -1,
"filename": "scikit_kinematics-0.10.1.tar.gz",
"has_sig": false,
"md5_digest": "f954eb5688e3670929e2d2a999d3a8a7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 2565823,
"upload_time": "2024-12-02T16:27:54",
"upload_time_iso_8601": "2024-12-02T16:27:54.969848Z",
"url": "https://files.pythonhosted.org/packages/c7/f3/dce064eec37bf8600e2e72888da47cf1743472e9a08bbc51a801ab94216b/scikit_kinematics-0.10.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-02 16:27:54",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "thomas-haslwanter",
"github_project": "scikit-kinematics",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "scikit-kinematics"
}