[isaacsim.robot_motion.pink] pink#

Version: 0.1.2

Overview#

The isaacsim.robot_motion.pink extension provides access to the PINK (Python Inverse Kinematics) library within Isaac Sim’s motion generation framework. PINK formulates differential inverse kinematics as a quadratic program (QP) with weighted tasks and safety constraints, powered by the Pinocchio rigid-body dynamics library.

Concepts#

PINK Integration#

PINK solves differential inverse kinematics by composing weighted task objectives (end-effector tracking, posture regularization, velocity damping) with inequality constraints from joint limits, velocity limits, and control barrier functions. The extension wraps this into Isaac Sim’s BaseController interface for seamless integration with simulation workflows.

Robot Configuration#

Robot setup requires a URDF file describing the kinematic chain. Pinocchio loads the URDF and provides forward kinematics, Jacobians, and frame placement. An optional SRDF file can configure self-collision exclusion pairs.

Key Components#

PinkRobot#

The PinkRobot dataclass holds the Pinocchio model, data, and controlled joint names. Load robots using load_pink_robot for custom URDFs or load_pink_supported_robot for pre-configured robots bundled with the extension.

PinkIKController#

PinkIKController implements the BaseController interface using PINK’s solve_ik. On each forward() call it updates task targets from the setpoint, solves the QP to obtain a joint velocity, and integrates the configuration. The controller supports configurable frame tasks, posture regularization, arbitrary user-supplied tasks, limits, and barriers.

Integration#

The extension integrates with Isaac Sim’s experimental motion generation framework through the isaacsim.robot_motion.experimental.motion_generation dependency. The controller implements the BaseController interface, ensuring compatibility with ControllerContainer, ParallelController, SequentialController, and TrajectoryFollower from the broader motion generation ecosystem.

Enable Extension#

The extension can be enabled (if not already) in one of the following ways:

Define the next entry as an application argument from a terminal.

APP_SCRIPT.(sh|bat) --enable isaacsim.robot_motion.pink

Define the next entry under [dependencies] in an experience (.kit) file or an extension configuration (extension.toml) file.

[dependencies]
"isaacsim.robot_motion.pink" = {}

Open the Window > Extensions menu in a running application instance and search for isaacsim.robot_motion.pink. Then, toggle the enable control button if it is not already active.

Python API#

Configuration Loading

Inverse Kinematics Controller

Transform Utilities


Configuration Loading#


Inverse Kinematics Controller#


Transform Utilities#

The transform utilities convert between Isaac Sim’s (position, quaternion) representation and Pinocchio’s SE3 transforms.