Skip to main content

Calculates and visualises forward and (full-pose) inverse kinematic realised with a genetic algorithm (ga) for URDF models

Project description

Introduction

Nico using ik

gaikpy is a pure python approach to solve the inverse kinematics for every URDF modelled robot.

gaikpy solves the inverse kinematics for every URDF based robot model using a genetic algorithm approach. No pretraining is needed. gaikpy is completely realised in python. gaikpy has already integrated the NICO robot, but you can easily extend this with every robot with a URDF model at hand. Just take the URDF and define your chain ( containing the joints you want to use) , calculate the ik and maybe visualize it.

If you use the library in an academic context, you can cite it by citing the paper below. We analysed the ik in a hybrid manipulation context for the NICO robot ( the measured calculation times in the paper are already outdated, gaikpy is much faster now ).

Neuro-Genetic Visuomotor Architecture for Robotic Grasping
Matthias Kerzel, Josua Spisak, Erik Strahl, Stefan Wermter Artificial Neural Networks and Machine Learning – ICANN 2020, pages 533-545 - 2020.

https://www2.informatik.uni-hamburg.de/wtm/publications/2020/KSSW20/ICANN_2020__Neuro_Genetic_Visuomotor_Framework_Preprint.pdf

History and credits

The Neuro Inspired COmpanion ( or NICO ) is the robot we developed at the Knowledge Technology group at the University of Hamburg to fullfill our research needs.

Our philosophy is to have a full python based interface for the NICO ( besides our ROS based interface ), so we searched first for an existing python based ik library. We found ikpy, which is a great software, but was at least at time we started not able to solve the full-pose ik ( but only the position ) for our NICO robot.

As we favour the idea of bioinspired algoritms in our group and one of our former students has developed a genetic based ik approach in C#, we took parts of this concept and adapted this to our python approach, which you see here with gaikpy.

Nico using ik

Installation

  • Clone the repository with git clone
  • Change to the directory - "cd gaikpy"
  • Create a python environment - "python3 -m venv env"
  • Source your environment - "source ./env/bin/activate"
  • Install - "python setup.py develop" or "python setup.py install"
  • Run the test - "python setup.py test" You should have no errors ( warnings are fine, the included libraries might throw some)

Build the docs

  • cd gaikpy/docs
  • make html
  • browse at gaikpy/docs/build/html

Usage

Use the gaikpy to solve the full pose ik for you. See the example at ./examples/visualise_NICO.py . It will solve the ik of the NICO robot and visualise the results on the screen. Extend the example for your own needs.

Use other robots

Using other robots is very easy, if you have a URDF model of the robot at hand. Just take the URDF model and list the joints and links of your active chain until the end effector. Just adapt the NICO example ./examples/visualise_NICO.py o see how it works. We will integrate other robots by efault in the future.

License

GNU GENERAL PUBLIC LICENSE Version 3

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

gaikpy-0.3.4.0.tar.gz (51.7 MB view details)

Uploaded Source

Built Distribution

gaikpy-0.3.4.0-py3-none-any.whl (28.0 MB view details)

Uploaded Python 3

File details

Details for the file gaikpy-0.3.4.0.tar.gz.

File metadata

  • Download URL: gaikpy-0.3.4.0.tar.gz
  • Upload date:
  • Size: 51.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.6.9

File hashes

Hashes for gaikpy-0.3.4.0.tar.gz
Algorithm Hash digest
SHA256 1c1dc194616e1dafa4e39cafe8f763a58177c2bf91b288f4024cd9453432458e
MD5 8fccdfb8f81418a72447aa7f16d558c7
BLAKE2b-256 2de400a9968db5bf3b32a404f44f61ca78ae8356fcd15850ee2f389b820f2e0a

See more details on using hashes here.

File details

Details for the file gaikpy-0.3.4.0-py3-none-any.whl.

File metadata

  • Download URL: gaikpy-0.3.4.0-py3-none-any.whl
  • Upload date:
  • Size: 28.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.6.9

File hashes

Hashes for gaikpy-0.3.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 59f621856541202473255553383a2e32cee26683edfd7961a07dccac0fb0975a
MD5 a96e18f4e103dad0d88ab3d740781753
BLAKE2b-256 45f74ee4188a9f598e1a5807aed98df074d643cad3928c61acfa4dba7d932673

See more details on using hashes here.

Supported by

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