Python 3 implementation of FABRIK (Forward And Backward Reaching Inverse Kinematics) algorithm.
Project description
pyfabrik
Python 3 implementation of FABRIK (Forward And Backward Reaching Inverse Kinematics).
Installation
pip install pyfabrik
Usage
NOTE: API is still very unstable (until the 1.0 release). Suggestions are welcome.
import pyfabrik
from vectormath import Vector3
initial_joint_positions = [Vector3(0, 0, 0), Vector3(10, 0, 0), Vector3(20, 0, 0)]
tolerance = 0.01
# Initialize the Fabrik class (Fabrik, Fabrik2D or Fabrik3D)
fab = pyfabrik.Fabrik3D(initial_joint_positions, tolerance)
fab.move_to(Vector3(20, 0, 0))
fab.angles_deg # Holds [0.0, 0.0, 0.0]
fab.move_to(Vector3(60, 60, 0)) # Return 249 as number of iterations executed
fab.angles_deg # Holds [43.187653094161064, 3.622882738369357, 0.0]
Goal
Roadmap
- Basic 2D (flat chain)
- Basic 3D (flat chain)
- 3D testing sandbox
- Basic 2D joint movement restrictions
- Basic 3D joint movement restrictions
- Complex chain support 2D
- Complex chain support 3D
Contributing
All contributions are appreciated.
Read the paper paper.
FABRIKs homepage has links to other implementations.
License
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
pyfabrik-0.3.0.tar.gz
(15.5 kB
view hashes)
Built Distribution
pyfabrik-0.3.0-py3-none-any.whl
(15.9 kB
view hashes)