ikpy

IKPy, an Universal Inverse Kinematics library

https://github.com/phylliade/ikpy

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 16 committers (6.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.6%) to scientific vocabulary

Keywords

inverse-kinematics poppy python robotics urdf
Last synced: 6 months ago · JSON representation ·

Repository

IKPy, an Universal Inverse Kinematics library

Basic Info
Statistics
  • Stars: 901
  • Watchers: 20
  • Forks: 170
  • Open Issues: 27
  • Releases: 14
Topics
inverse-kinematics poppy python robotics urdf
Created over 10 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

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:

bash pip install ikpy

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

bash pip install 'ikpy[plot]'

  1. From source - first download and extract the archive, then run:

bash 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:

bibtex @software{Manceron_IKPy, author = {Manceron, Pierre}, doi = {10.5281/zenodo.6551105}, license = {GPL-2.0}, title = {{IKPy}}, url = {https://github.com/Phylliade/ikpy} }

Owner

  • Name: Pierre Manceron
  • Login: Phylliade
  • Kind: user
  • Location: Paris
  • Company: Raidium

Artificial Intelligence Engineer

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: IKPy
type: software
authors:
  - given-names: Pierre
    family-names: Manceron
    orcid: 'https://orcid.org/0000-0002-2970-973X'
doi: 10.5281/zenodo.6551105
abstract: >-
  IKPy, an Universal Inverse Kinematics library
repository-code: "https://github.com/Phylliade/ikpy"
keywords:
  - inverse-kinematics
  - robotics
  - python
  - urdf
  - poppy
license: GPL-2.0

GitHub Events

Total
  • Issues event: 6
  • Watch event: 142
  • Issue comment event: 11
  • Gollum event: 1
  • Pull request event: 3
  • Fork event: 11
Last Year
  • Issues event: 6
  • Watch event: 142
  • Issue comment event: 11
  • Gollum event: 1
  • Pull request event: 3
  • Fork event: 11

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 506
  • Total Committers: 16
  • Avg Commits per committer: 31.625
  • Development Distribution Score (DDS): 0.057
Past Year
  • Commits: 11
  • Committers: 2
  • Avg Commits per committer: 5.5
  • Development Distribution Score (DDS): 0.091
Top Committers
Name Email Commits
Pierre Manceron p****n@g****m 477
buschbapti b****h@i****r 5
Pierre Rouanet p****t@g****m 4
Pierre Manceron p****n@o****m 4
Maxim Kulkin m****n@g****m 2
Simon Steinmann 5****n 2
Yoan Mollard y****d 2
luz paz l****z 2
Alban Hoxha d****t@g****m 1
Fabien Rohrer f****r@g****m 1
Huong Minh Luu P****3 1
KDercksen m****l@k****m 1
Pusong Li a****i@g****m 1
The Gitter Badger b****r@g****m 1
Yana y****n@g****m 1
Zak Sadiq t****e@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 73
  • Total pull requests: 52
  • Average time to close issues: 12 months
  • Average time to close pull requests: 21 days
  • Total issue authors: 68
  • Total pull request authors: 15
  • Average comments per issue: 3.66
  • Average comments per pull request: 0.65
  • Merged pull requests: 43
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 7
  • Pull requests: 4
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 25 days
  • Issue authors: 7
  • Pull request authors: 2
  • Average comments per issue: 1.43
  • Average comments per pull request: 0.5
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • AhmetMericOzcan (4)
  • MADONOKOUKI (2)
  • PMARC14 (2)
  • JasonWong08 (1)
  • SimonF89 (1)
  • jurka14 (1)
  • mikekaram (1)
  • 3dprintingdoctor (1)
  • FredTrumpSenior (1)
  • nevercast (1)
  • mhwang003 (1)
  • fire (1)
  • HaffmannGG (1)
  • EdoFZI (1)
  • tekntrash (1)
Pull Request Authors
  • Phylliade (37)
  • souljaboy764 (2)
  • ymollard (2)
  • luzpaz (2)
  • AdvaitChandorkar07 (2)
  • zaksadiq (2)
  • Lemin2 (2)
  • Tanneguydv (2)
  • Surya-Abhinai (2)
  • 01halibut (1)
  • Klausstaler (1)
  • alxy (1)
  • Simon-Steinmann (1)
  • hassony2 (1)
  • PyGeek03 (1)
Top Labels
Issue Labels
wontfix (21) enhancement (13) pinned (12) URDF (7) DH (4) help (2) bounds (2) robot-related (1) documentation (1) nobug (1) rotation (1) orientation (1)
Pull Request Labels
wontfix (3)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 7,679 last-month
  • Total docker downloads: 30
  • Total dependent packages: 7
    (may contain duplicates)
  • Total dependent repositories: 20
    (may contain duplicates)
  • Total versions: 53
  • Total maintainers: 2
pypi.org: ikpy

An inverse kinematics library aiming performance and modularity

  • Versions: 29
  • Dependent Packages: 7
  • Dependent Repositories: 20
  • Downloads: 7,679 Last month
  • Docker Downloads: 30
Rankings
Dependent packages count: 2.4%
Stargazers count: 2.5%
Dependent repos count: 3.2%
Docker downloads count: 3.4%
Average: 3.5%
Forks count: 4.1%
Downloads: 5.6%
Maintainers (2)
Last synced: 6 months ago
proxy.golang.org: github.com/Phylliade/ikpy
  • Versions: 24
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 6 months ago

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v1 composite
  • actions/setup-python v1 composite
  • pypa/gh-action-pypi-publish master composite