A pure-Python inverse kinematics library for computing robot joint positions from end-effector poses.
IKPy is a Python library for solving inverse kinematics problems, which involve calculating the joint angles of a robotic arm to achieve a desired end-effector position and orientation. It supports various robot representations like DH parameters and URDF files, enabling precise and fast computations without requiring physical hardware. The library is designed to be universal, working with any kinematic chain and offering visualization tools for simulation and testing.
Robotics researchers, engineers, and developers working on motion planning, simulation, or control systems for robotic arms and manipulators. It is also suitable for educators and students learning about inverse kinematics and robotic modeling.
Developers choose IKPy for its pure-Python implementation, which ensures easy installation and cross-platform compatibility without compilation. Its extensibility, support for multiple robot representations, and built-in visualization tools make it a versatile and accessible choice for both prototyping and advanced robotic applications.
IKPy, an Universal Inverse Kinematics library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports any robot via DH parameters, URDF files, or custom representations, making it versatile for importing and analyzing diverse kinematic chains without hardware.
Achieves up to 7 digits of accuracy with computation times from 7 to 50 ms, enabling precise simulations for research and prototyping.
Integrates with matplotlib to plot kinematic chains in 3D, allowing algorithm testing and debugging without a physical robot or simulator.
Pure-Python implementation installs in seconds via pip, with a developer API for adding custom IK methods, encouraging customization and contributions.
As a Python library, it may not meet the speed requirements of high-frequency control loops or complex chains compared to C++ alternatives like aversive++, as noted in the README.
Currently focuses on revolute and prismatic joints, with other types 'to come' per the README, limiting immediate applicability to some robotic configurations.
Solely addresses inverse kinematics without built-in support for dynamics, forces, or collision detection, which are essential for comprehensive robotic simulations.