We now describe how to construct a mid level primitive from low level servoing behaviors. Many tasks contain subtasks involving a long range transportation move followed by a short range fine manipulation. Our results from evaluating the controller suggests that for the most robust model estimation and control we should control as few DOF's as possible. To transport an object described by one point we only need 3 DOF. To manipulate a rigid object we need 6. As noted earlier, when controlling 3 DOF our algorithm needs no prior models.
To bootstrap the 6 DOF control we use the model estimated during the
3 DOF stage. Figure 7.4 shows the visual part of an
insertion sequence. For the 3 DOF long range transportation, one of the
features (white dots) is extracted and tracked in two cameras. For
the fine manipulation 14 features are used by tracking the 5 points
seen in Fig. 7.4 in one
camera and 2 in the other, and using the x and y image location of
each point. When switching between 3 and 6 DOF mode,
the first three columns of the
DOF Jacobian are filled
from the
DOF Jacobian, and the last three with random numbers.
This technique is generally useful to switch between the 3 DOF control used for transportation moves, to high DOF control (typically 4-6 DOF for rigid objects) used for the fine manipulation required for alignments and insertions. The bootstrapping works well on any manipulator where the motor DOF's can be roughly organized into one group effecting long range translational movements (arm), and another group effecting short range rotational movements (wrist). This is true, for instance, of most industrial robot arms. The large joints in the arm cause proportionally much larger translations than rotations, while for the joints in the wrist close to the end effecto, the opposite is true. For movements with a mostly translational component, the visual feature motions are pretty much the same, and the bootstrapped Jacobian is a good approximation of the real Jacobian along these directions. Only the model of the newly added mostly rotational DOF's needs to be acquired. After having run the robot for a short while doing at least 3 (small) linearly independent rotational movements the model estimation (Section 4.2) will update the rotational part of the Jacobian, replacing the random initialization values.
Figure 7.4: Left: Planning the different phases of an insert type
movement consisting of reaching and fine manipulation
movements. Right: Performing the planned insertion. Video 1
The 6 DOF alignment serves two purposes. It aligns the piece in 6 DOF, obtaining the correct initial pose for the 6 DOF fine manipulation. Also during this phase the bootstrapped 6 DOF Jacobian is updated to an accurate estimate, allowing high precision moves in the later fine manipulation stage.