--- id: pin-pink version: "4.3.0" license: unclear license_treatment: permissive maintenance: active --- # pin-pink — Inverse kinematics for articulated robot models, based on Pinocchio. License: permissive · Maintenance: active · Downloads: 264.0K/mo ## What it is and what it does Pink is a Python inverse kinematics solver built on top of Pinocchio for controlling articulated robots. It formulates robot motion as a set of weighted tasks—such as positioning a foot, orienting a base, or maintaining a preferred posture—and solves a quadratic program to compute joint velocities that satisfy all tasks simultaneously while respecting joint limits. The solver handles task conflicts by normalizing objectives and weighting them relative to each other, making it suitable for complex multi-objective control problems on robots ranging from simple arms to humanoids and quadrupeds. The package provides a task-based API where you define residual functions (e.g., desired frame position minus current position) and costs, then call solve_ik to get a velocity command. It integrates with Pinocchio's robot models and supports floating-base velocity limits for robots with free-flyer or planar bases. The solver outputs differential velocities that can be integrated over time to reach target configurations, or continuously tracked if targets change. Use it for: - Control a multi-limb robot (humanoid, dual-arm, or quadruped) to simultaneously achieve multiple frame and posture objectives. - Solve inverse kinematics for a manipulator arm with end-effector position and orientation targets plus joint regularization. - Track moving targets in real-time by continuously updating task targets and integrating the solver's velocity output. - Enforce floating-base velocity limits on legged robots to clamp commanded linear and angular velocities. - Resolve conflicting task objectives (e.g., foot contact vs. base orientation) by weighting normalized costs. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Pink solves differential inverse kinematics for articulated robots by formulating task-based objectives as a quadratic program, computing joint velocities that drive the robot toward multiple weighted targets while respecting configuration and velocity limits. Yes. Pink is actively maintained, has no known vulnerabilities, installs with low friction, and is licensed permissively. It is production-stable and well-suited for anyone building task-based inverse kinematics solvers for articulated robots. Install it if you need to control multi-objective robot motion; skip it if you only need forward kinematics or single-task IK. ## Install pip install pin-pink uv add pin-pink poetry add pin-pink ## Installing pin-pink Before you install: Low install friction with a pure Python wheel. Active maintenance with a recent release 30 days ago and steady repository activity. Supports current Python versions (3.10–3.14). License in practice: Licensed under Apache 2.0 (permissive), allowing commercial and private use with minimal restrictions. Quickstart: pip install pin-pink from pink.tasks import FrameTask, PostureTask from pink import Configuration, solve_ik import numpy as np tasks = { "base": FrameTask("base", position_cost=1.0, orientation_cost=1.0), "posture": PostureTask(cost=1e-3), } dt = 6e-3 for t in np.arange(0.0, 10.0, dt): velocity = solve_ik(configuration, tasks.values(), dt, solver="quadprog") configuration.integrate_inplace(velocity, dt) Requires a Pinocchio robot model and configuration object; the package expects numpy arrays and assumes familiarity with robot kinematics concepts (Jacobians, task residuals). Verify before relying: - Whether Pinocchio must be pre-installed or is handled as a transitive dependency through the listed runtime deps. - Performance characteristics when solving IK for robots with many degrees of freedom. - Compatibility with specific robot description formats beyond URDF. ## Package facts - License: not declared (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 264.0K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags inverse kinematics robot, differential IK solver, task-based robot control, pinocchio inverse kinematics, robot motion planning, articulated robot kinematics, weighted task optimization, robotics, kinematics, optimization [View on SkillFed](https://skillfed.io/packages/pin-pink) · [View on PyPI](https://pypi.org/project/pin-pink/)