I. Introduction
One of the tasks a robot has to do, if operating in a human environment, is to tackle manipulation problems that are second nature to humans. Objects often need to be entangled with, or disentangled from, one another; putting a key or removing it from a key chain, unhooking a hammer from a tool rack, or tying a knot would be some examples. These problems often require narrow features for their solutions and grasp changes during object manipulation.