In the previous video I described force control, where the robot is capable of generating an
end-effector wrench in any direction, as if it is buried in concrete.
This is rarely the case, though; typically there are some directions the end-effector
can move freely.
In this video, we assume that the robot interacts with an environment consisting of rigid constraints,
and the control objective is hybrid motion-force control: to control the motion in some directions
and the forces in others.
An example is opening a door.
When the gripper firmly holds the door handle, the gripper's motion is constrained to one
degree of freedom: rotation about the hinges of the door.
The robot can freely control the velocity of the end-effector in this one degree of
freedom.
Simultaneously, the gripper can apply arbitrary wrenches in the five-dimensional space of
wrenches consisting of moments about all three axes of the door handle and linear forces
upward or through the hinges.
Essentially, the constraints provided by the door hinges partition the 6-dimensional space
of end-effector wrenches into a subspace of wrenches that cause motion of the door and
a subspace of wrenches that push against the constraints.
Another example is a robot erasing a whiteboard.
The robot can freely control motion of the eraser in the x-y plane, and it can simultaneously
control forces in the z-direction, into the board.
We can express the end-effector twist and wrench in terms of their components, and we
see that the three motion constraints provided by the board dictate which twist components
and which wrench components the robot can control.
The robot can control the eraser's angular velocity about the z-axis and the linear velocity
along the x- and y-axes, and it can control the force along the z-axis and the moment
about the x- and y-axes.
Although the board provides inequality constraints that prevent motion into the board but not
motion away, I'll treat the constraints as equality constraints, for simplicity: the
eraser can neither move into nor away from the board.
Also, I'll ignore friction at the constraints.
The constraints on the end-effector's twist V_b can be expressed as A of theta times V_b
equals zero.
These are Pfaffian velocity constraints expressed in terms of the end-effector twist.
In Chapter 8, we derived the task-space dynamics of a robot without constraints.
If we add k end-effector motion constraints, where k is five for the door example and three
for the whiteboard example, then the constrained dynamics consists of wrenches that cause motion
of the end-effector and wrenches that cause end-effector forces, F_tip.
This follows our development of constrained dynamics from Chapter 8.
The k rows of the A matrix form a basis for the space of wrenches that can be applied
to the environment, and the k-vector of coefficients lambda determines the particular wrench in
this space.
The desired end-effector wrench specified to the hybrid motion-force controller should
be a linear combination of the rows of the A matrix, and the desired motion should satisfy
the velocity constraints at all time.
We can define a projection matrix P of theta, following the development in Chapter 8, that
projects an arbitrary end-effector wrench F_b to the portion of that wrench that causes
motion of the end-effector.
The complement of that projection, the identity matrix minus P, extracts the portion of the
wrench that acts against the constraints.
Skipping the derivation of P, which can be found in the book, we get this equation for
the 6-by-6 matrix P, where the rank of the P matrix is 6 minus k.
In other words, 6 minus k wrench directions cause robot motion and k directions cause
constraint forces.
If the environment has moving masses, as with the door, the mass properties of the environment
should be incorporated in the dynamics.
With all of this as background, we can express our hybrid motion-force controller in this
form: the wrench created by the end-effector is the sum of the wrench specified by the
force control law, as we studied in the last video, and the wrench specified by the task-space
motion control law, but only after those wrenches have been projected to their appropriate subspaces.
This allows you to design the force and motion control laws as if each is acting independently,
because we use the projection P to throw away any wrench components specified by the motion
controller that would cause constraint forces, and we use the projection I minus P to throw
away any wrench components specified by the force controller that would cause motion of
the robot.
Once we have calculated the end-effector wrench F_b, we calculate the commanded joint forces
and torques using the Jacobian transpose.
This is the idea behind hybrid motion-force control, but actual implementation involves
a number of important details, such as estimating the constraints that the robot is actually
subject to.
So this completes the videos for Chapter 11 on robot control.
So far in this book, we have analyzed the kinematics of robots, computed their dynamics,
planned motions, and constructed feedback controllers to achieve desired motions and
forces.
In Chapter 12 we move outward from the robot itself to its interaction with objects in
its environment.
In short, the focus is on manipulation rather than the manipulator.