scikit-kinematics


Namescikit-kinematics JSON
Version 0.10.1 PyPI version JSON
download
home_pagehttps://work.thaslwanter.at/skinematics/html
SummaryPython utilites for movements in 3d space
upload_time2024-12-02 16:27:54
maintainerNone
docs_urlNone
authorThomas Haslwanter
requires_python>=3.9
licenseBSD-3-Clause
keywords quaterions rotations
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![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.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

&gt;&gt;&gt; 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": "![Title](docs/Images/skinematics.png)\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 &gt;= 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&gt;&gt;&gt; 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"
}
        
Elapsed time: 0.73994s