Franka Pick and Place Example#

Tutorial

Overview#

The Franka pick-and-place example uses RMPflow and measured robot state to move a cube between two locations. Its feedback-driven controller advances through approach, grasp, lift, place, release, and retreat phases.

Learning Objectives#

This example demonstrates how to:

  • Set up a Franka robot and gripper in Isaac Sim.

  • Generate collision-aware arm motion with RMPflow.

  • Coordinate arm motion and gripper commands with measured completion conditions.

  • Detect controller failures and phase timeouts.

Code Structure#

The interactive and standalone examples share the robot-independent pick-and-place controller:

# Interactive Example
isaacsim.robot_motion.examples/manipulation/interactive/pick_place/pick_place_example.py
↓
isaacsim.robot_motion.examples/manipulation/pick_place_task.py
↓
isaacsim.robot_motion.examples/manipulation/controllers/pick_place.py

# Standalone Example
standalone_examples/api/isaacsim.robot_motion.examples/manipulation/pick_place.py
↓
isaacsim.robot_motion.examples/manipulation/controllers/pick_place.py

How to Run the Examples#

Interactive Example#

  1. Open Isaac Sim

  2. Go to Window > Examples > Robotics Examples

  3. Navigate to Manipulation > Franka Pick Place

  4. Click LOAD to open the scene

  5. Use the following controls:

    • START PICK PLACE: Start the pick and place sequence

    • RESET: Reset the world to initial state

Standalone Example#

To run the standalone example from the command line:

./python.sh standalone_examples/api/isaacsim.robot_motion.examples/manipulation/pick_place.py --robot franka
.\python.bat standalone_examples\api\isaacsim.robot_motion.examples\manipulation\pick_place.py --robot franka

Use --usd-path to override the robot asset. Provide --robot-config-dir to use a matching custom cuMotion configuration. The --urdf and --xrdf filenames default to robot.urdf and robot.xrdf. See the cuMotion Robot Configuration Tutorial to create these files.

What the Example Does#

The Franka pick-and-place example demonstrates:

  1. Robot setup: Initializes a Franka robot and gripper.

  2. Scene creation: Adds a cube and place target.

  3. Pick sequence:

    • Moves above the cube.

    • Opens the gripper and descends to the grasp position.

    • Closes the gripper and verifies completion.

    • Lifts the cube.

  4. Place sequence:

    • Moves above the target and descends.

    • Opens the gripper and verifies completion.

    • Retreats from the placed cube.

Each motion phase advances only after the measured tool pose remains within tolerance.

Next Steps and Further Reading#

For more sophisticated task execution, explore:

  • State Machines and/or Behavior Trees: Implement the higher-level task logic, leaving lower-level details to dedicated controllers

  • Task Planning: Use advanced planning algorithms for complex manipulation sequences

  • Task and Motion Planning: Advanced algorithms for complex manipulation scenarios

Related Documentation:

Use this example as a starting point for feedback-driven manipulation workflows in Isaac Sim.

Back to Gallery View