Franka Pick and Place Example#
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#
Open Isaac Sim
Go to Window > Examples > Robotics Examples
Navigate to Manipulation > Franka Pick Place
Click LOAD to open the scene
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:
Robot setup: Initializes a Franka robot and gripper.
Scene creation: Adds a cube and place target.
Pick sequence:
Moves above the cube.
Opens the gripper and descends to the grasp position.
Closes the gripper and verifies completion.
Lifts the cube.
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:
State Machines for Robot Behavior - Reactive manipulation examples using state machines and behavior trees
RMPflow - Motion generation with RMPFlow
Use this example as a starting point for feedback-driven manipulation workflows in Isaac Sim.