Skip to main content

Python inverse kinematics for your robot model based on Pinocchio.

Project description

Pink

Installation | Documentation | Usage | Example

build PyPI version Status

Python inverse kinematics for your robot model based on Pinocchio.

🏗️ Upcoming changes

Pink is under active development and its API is not stable. Expect the following upcoming changes and more:

  • Configuration vector copy when applying (currently a reference, can lead to inconsistencies)
  • Body task convergence unit test with several competing tasks
  • v0.3: Add joint angle limits
  • v0.4: Handle models without and with floating base
  • v0.5: Reformulate task gains as time constants

👷 Contributing

There are many ways you can contribute to Pink, all of them welcome! Here are some ideas of increasing difficulty:

  • Check out the documentation and report mistakes or ask questions
  • Try out the examples and report any issue
  • Suggests improvements to simplify the API
  • Add your own robot model to the extras so that it can load by pink.models.build_from_urdf("/home/.../my_robot_description")
  • Write your own example
  • Find a use case that is not covered and write a unit test for it
  • Benchmark the performance of the current Configuration interface (pin.computeJointJacobians + pin.getFrameJacobian) compared to using pin.computeFrameJacobian, e.g. depending on the number and locations of tasks
  • Solve the question of numerical instability incurred by almost-unfeasible targets where LM damping does not kick in

If you are interested in helping out, open an issue so we can track progress. If you already have a PR, open it so we can review it :)

Installation

First, install Pinocchio, for instance by pip install pin.

Then install Pink by:

pip install pin-pink

Usage

Under construction...

Example

Under construction...

History

Pink implements the same task-based inverse kinematics as pymanoid, but it is much simpler to install and runs faster thanks to Pinocchio. Its internal math is summarized in this note. If you find yourself needing to read that in order to use the library, it means the API has abstraction leakage, please open an issue :-)

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

pin-pink-0.2.0.tar.gz (6.2 MB view hashes)

Uploaded Source

Built Distribution

pin_pink-0.2.0-py3-none-any.whl (26.2 kB view hashes)

Uploaded Python 3

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