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.