Skip to main content

An inverse kinematics library aiming performance and modularity

Project description

IKPy

PyPI

DOI

demo

IKPy on the baxter robot

Demo

Live demos of what IKPy can do (click on the image below to see the video):

Also, a presentation of IKPy: Presentation.

Features

With IKPy, you can:

  • Compute the Inverse Kinematics of every existing robot.
  • Compute the Inverse Kinematics in position, orientation, or both
  • Define your kinematic chain using arbitrary representations: DH (Denavit–Hartenberg), URDF, custom...
  • Automatically import a kinematic chain from a URDF file.
  • Support for arbitrary joint types: revolute, prismatic and more to come in the future
  • Use pre-configured robots, such as baxter or the poppy-torso
  • IKPy is precise (up to 7 digits): the only limitation being your underlying model's precision, and fast: from 7 ms to 50 ms (depending on your precision) for a complete IK computation.
  • Plot your kinematic chain: no need to use a real robot (or a simulator) to test your algorithms!
  • Define your own Inverse Kinematics methods.
  • Utils to parse and analyze URDF files:

Moreover, IKPy is a pure-Python library: the install is a matter of seconds, and no compiling is required.

Installation

You have three options:

  1. From PyPI (recommended) - simply run:

    pip install ikpy
    

    If you intend to plot your robot, you can install the plotting dependencies (mainly matplotlib):

    pip install 'ikpy[plot]'
    
  2. From source - first download and extract the archive, then run:

    pip install ./
    

    NB: You must have the proper rights to execute this command

Quickstart

Follow this IPython notebook.

Guides and Tutorials

Go to the wiki. It should introduce you to the basic concepts of IKPy.

API Documentation

An extensive documentation of the API can be found here.

Dependencies and compatibility

Starting with IKPy v3.1, only Python 3 is supported. For versions before v3.1, the library can work with both versions of Python (2.7 and 3.x).

In terms of dependencies, it requires numpy and scipy.

sympy is highly recommended, for fast hybrid computations, that's why it is installed by default.

matplotlib is optional: it is used to plot your models (in 3D).

Contributing

IKPy is designed to be easily customisable: you can add your own IK methods or robot representations (such as DH-Parameters) using a dedicated developer API.

Contributions are welcome: if you have an awesome patented (but also open-source!) IK method, don't hesitate to propose adding it to the library!

Links

  • If performance is your main concern, aversive++ has an inverse kinematics module written in C++, which works the same way IKPy does.

Citation

If you use IKPy as part of a publication, please use the Bibtex below as a citation:

@software{manceron_2024_13256291,
  author       = {Manceron, Pierre},
  title        = {IKPy},
  month        = aug,
  year         = 2024,
  publisher    = {Zenodo},
  version      = {v3.4},
  doi          = {10.5281/zenodo.13256291},
  url          = {https://doi.org/10.5281/zenodo.13256291}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ikpy-3.4.2.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

ikpy-3.4.2-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file ikpy-3.4.2.tar.gz.

File metadata

  • Download URL: ikpy-3.4.2.tar.gz
  • Upload date:
  • Size: 24.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for ikpy-3.4.2.tar.gz
Algorithm Hash digest
SHA256 f7cc9c54055735deaf89a79ce676e6f5acabc72954e769d1043febfdbfb57840
MD5 667fe3bf5f17c1157049e517b2a8d732
BLAKE2b-256 0a3a9bf290c81a49fc7215e8083b18d097f2f830cdfe155190bf34f5d62fe27c

See more details on using hashes here.

File details

Details for the file ikpy-3.4.2-py3-none-any.whl.

File metadata

  • Download URL: ikpy-3.4.2-py3-none-any.whl
  • Upload date:
  • Size: 24.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for ikpy-3.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9ead7b2085f057822e563786a70b52a4f5d0db03de9d562f1488df38ccef36af
MD5 dc2a243efc389d0281eb3e0ba4678fc1
BLAKE2b-256 12c81f611b05c89004c399d5cc8a6d33550316d35fe1d7802243e404c43e3324

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page