manipulation-ik

Implements inverse kinematics and grasping control for robot arms in Isaac Sim.

4.0k|530|Updated May 28, 2025
One-click install
npx skills add https://github.com/isaac-sim/IsaacSim --skill manipulation-ik
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: manipulation-ik
Source: https://github.com/isaac-sim/IsaacSim/tree/main/skills/manipulation-ik
Command: npx skills add https://github.com/isaac-sim/IsaacSim --skill manipulation-ik

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Controlling a robot arm to reach, grasp, transport, and place objects in Isaac Sim requires choosing between multiple IK stacks, configuring grasp frames, and tuning solver parameters, and mistakes like hardcoded grasp offsets or wrong Jacobian slicing cause silent failures or PhysX explosions.

Core Features & Use Cases

  • Differential IK on Articulation: End-effector control via get_jacobian_matrices with damped-least-squares, pseudoinverse, transpose, or SVD solvers, including virtual-base DOF slicing rules.
  • Schema-native IK and named poses: isaacsim.robot.poser.RobotPoser for solving IK, storing reusable named poses like "pick_position", and exporting/importing pose libraries.
  • Obstacle-aware motion and grasping: cuMotion RmpFlowController and PINK PinkIKController for reactive trajectories, plus FixedJoint and SurfaceGripper grasp patterns with a three-checkpoint validation loop.
  • Use Case: Build a Franka pick-and-place pipeline that discovers the grasp frame, solves IK for approach and placement, attaches the object with a computed FixedJoint offset, and validates grasp, lift, and place success.

Quick Start

Use the manipulation-ik skill to set up differential IK control for a Franka arm to pick and place an object in Isaac Sim.

Frequently Asked Questions about manipulation-ik

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement inverse kinematics for a robot arm in Isaac Sim?

Use differential IK on the Articulation prim by calling get_jacobian_matrices, computing the 6-DOF pose error, and solving with damped-least-squares to get joint deltas. Alternatively use RobotPoser from isaacsim.robot.poser for schema-native IK with named pose storage.

Which IK stack should I use in Isaac Sim: differential IK, cuMotion, or PINK?

Use differential IK for direct end-effector control, RobotPoser for offline pose authoring and replay, cuMotion RmpFlowController for obstacle-aware reactive motion, and PinkIKController for task-hierarchy IK with joint limits. Lula is legacy and not recommended for new work.

Why does my Isaac Sim IK solution diverge or explode during pick and place?

Common causes are forgetting to slice past virtual base DOFs in the Jacobian, hardcoding the FixedJoint grasp offset instead of computing it at contact time, and overly aggressive IK gains. Start with damping 0.1 and max delta 0.02 rad per step.

How do I grasp objects with a gripper in Isaac Sim?

Use UsdPhysics FixedJoint for rigid grasps, computing the gripper-to-object relative transform at contact, or SurfaceGripper for vacuum-style attachment via the surface gripper interface. Always define a grasp frame with IsaacSiteAPI before running IK.

Does differential IK work on robot arms with fewer than 6 DOF?

Pure differential IK on under-actuated arms fails during large lateral transport, near singularities, and at joint limits. Use a hybrid approach: IK for precision phases like approach and placement, joint-space interpolation for long transport moves.