I. Introduction
When performing everyday manipulation tasks, such as putting plates in a cabinet or loading a dishwasher, humans often re-grasp the objects they manipulate. Having two arms allows people to reach for an object with one arm and place it with the other, effectively increasing the reachable space without moving in the workspace. If humanoid robots are to exploit their two-armed capabilities, they must possess computationally efficient algorithms for grasping, re-grasping and dual-arm tasks.