9 Motion and Force Control
Dennis Daly
Chapter Outlines
9.1 Introduction
9.2 Motion Control with Velocity Inputs
9.2.1 Joint Space Motion Control
9.2.2 Task Space Motion Control
9.3 Motion Control with Torque/Force Inputs
9.3.1 Actuator Dynamics
9.3.2 Joint Space Motion Control
9.3.3 Inverse Dynamics
9.3.4 Task Space Motion Control
9.4 Forced Control
9.4.1 Coordinate Frames and Constraints
9.4.2 Task Space Control
9.5 Hybrid Motion-Force Control
9.6 Conclusion
Practice Questions
Reference
9.1 Introduction
In this chapter, the concepts of motion and force control will be explored. In motion control problems, the goal is to move the manipulator to the desired trajectory by following a specified trajectory. A simple example of this would be the transportation of an object from one location to another. Motion control problems can be expressed in either the joint space or task space. The main goal of joint space control is to design a feedback controller such that the joint variables
While the premise of motion control might be basic in nature, it is a fundamental part of any higher-level robot manipulation. On the other hand, force control becomes mandatory for a robot to successfully carry out its task when interacting with its environment. The problem is more so about controlling the contact force of the end-effector rather than its position. A force control strategy modifies the robot joint position/torque based on force/torque sensors for the wrist, joints, and hands of the robot.
From these two problems, the premise of hybrid motion and force control naturally arises. The goal of this type of control is to decouple the motion and force into two separate subproblems. Simply put, it is the sum of the task space motion control and the task space force control projected onto its appropriate subspace.
9.2 Motion Control with Velocity Inputs
9.2.1 Joint Space Motion Control
The first controller that will be presented is a feedforward or open-loop controller. Since there is no feedback from sensor data, this kind of controller is easy to implement and is the simplest type of control. Given a desired trajectory,
(9.1) |
Where
A more sophisticated strategy would be to measure the actual position of the joint and continuously feed it through the controller. This type of controller is known as a feedback controller
(9.2) |
where
(9.3) |
where
The biggest drawback to the proportional and proportional-integral controllers is that an error is required for the joint to start moving. Therefore, it would be preferable to use knowledge of the desired trajectory to initiate motion before any error accumulates. To achieve this, the feedforward and feedback controllers are combined.
(9.4) |
This gives the advantages of limited accumulation error from the feedback control, while the feedforward control drives the motion with no error.
These controllers can be generalized for a robot with n joints by letting both
9.2.2 Task Space Motion Control
In some cases, it is more convenient to express the motion of the robot as a trajectory of the end-effector. To accomplish this, let the end-effector twist be
(9.5) |
where
9.3 Motion Control with Torque/Inputs
9.3.1 Actuator Dynamics
When there is a desired trajectory – given in the joint space as – the controller generates torques and forces on the joint to try and track it. Based on Figure 9.1, the dynamics of the motor torque of a singular actuator can be expressed as follows:

(9.6) |
where
The equations of motion for a rigid body manipulator with multiple joints can be described by the Euler-Lagrange dynamics developed in chapter 5. Recall that the standard form of an n degree of freedom robot is
(9.7) |
Where
9.3.2 Joint Space Motion Control
A common feedback controller for a singular actuator (single input) is a proportional-integral-derivative (PID) controller.
(9.8) |
Where
Rather than retroactively reacting to the robot’s movement through the errors, another strategy is to try and proactively generate the joint torques. This is done by utilizing a model of the robot dynamics and developing a feedforward torque by
(9.9) |
Where
There are two cases when it comes to considering multiple actuators (multi-input). Equation (9.6) generalizes the equations of motion for a robot with n joints. The first case is when the mass matrix,
(9.10) |
9.3.3 Inverse Dynamics Control
Often these multivariable joint controls can be quite complex and nonlinear. The goal of using inverse dynamics is to find a nonlinear control law such that the feedback (when substituted into Equation (9.7) is a linear closed-loop system. In general, deriving a control like this might be difficult or near impossible. Fortunately, the problem is quite easy in the case of actuator dynamics since by inspection we can choose
(9.11) | ||
(9.12) |
Equation (9.12) is a combination of the PID controller from Equation (9.7) with the model of the robot dynamics described by Equation (9.8). This controller consists of a feedforward from the robot dynamics plus a feedback linearization and is known as the inverse dynamics control. This results in the following double integrator system.
(9.13) |
Where
9.3.4 Task Space Motion Control
There are two options for a task space motion control with force/torque inputs: Convert to joint space trajectories and proceed with a joint space controller with force/torque inputs (covered in section 9.3.2). Or express the robot dynamics and control law in the task space. In this section, each method will be explored.
To convert to joint space, recall that the forward kinematics are given by
(9.14) | ||
The major drawback to this approach is that the inverse kinematics must be computed. Factors
Recall Equation (9.7) which is the equations of motion for multiple actuators in joint space. By substituting
(9.15) |
With
(9.16) |
Where
9.4 Forced Control
9.4.1 Coordinate Frames and Constraints
Force control can be thought of as constraints imposed on the manipulator by the environment. For example, a manipulator moving through free space has no constraints and the force sensors would only detect the inertial forces. Now say the manipulator ran into a rigid object in the environment. While one or more degrees of freedom may be lost since the robot cannot move through the object, the robot will be able to exert a force onto the environment.
To describe the interaction between the robot and its environment, let the six-dimensional vector
(9.17) |
Say
It is advantageous to write the product
The compliance frame
In the peg-and-hole robot example, Figure 9.2 represents the problem. The reciprocity condition is

(9.18) |
From Figure 9.2, it is clear that
The remaining variables
9.4.2 Task Space Control
It is natural to derive the control algorithm in the task space since typically the manipulator dynamics are given relative to the end-effector frame. Any interaction with the environment will cause forces and moments on the end-effector. Let
(9.19) |
Typically, the robot moves very slowly. Thus, Equation (9.19) can be simplified to
(9.20) |
Consider the case where there are no sensors on the end-effector joint. In the absence of direct measurements, Equation (9.20) can be used to implement a force control law
(9.21) |
Where
An alternate strategy is to equip a six-axis force/torque sensor between the robot arm and the end-effector. This will allow for a direct measure of the end-effector wrench
(9.22) |
Where
Since most force control applications require little motion, we can limit the acceleration of the robot arm by adding a velocity damping term
(9.23) |
Where
9.5 Hybrid Motion/Force Control
As mentioned in the introduction, hybrid motion-force control is simply the sum of the two controllers expressed in task space. The task space motion controller (derived from the computed torque/force control law) and the task space force controller are each projected in their respective subspaces to generate the appropriate forces.
(9.24) |
Where
9.6 Conclusion
This chapter covers the concepts of motion control, force control, and hybrid motion-force control. As the names imply, motion control is concerned with building controllers so that the robot arm follows specified trajectories. Force control is concerned with building controllers so that the robot arm applies a desired force onto a surface. Lastly, hybrid motion-force control is concerned with combining the two types of control to produce both motion along a specified trajectory and a force on a surface.
Another important aspect of this chapter was the distinction between control using joint space and task space. Each has its advantages and disadvantages and it forces users to critically think about their robot application.
Practice Questions
9.1 Using the PID_Control_1joint.ttt file, design a PID controller in Python to move the link to the desired location. You’re code should:
a. Prompt the user for the desired location (in degrees).
b. Prompt the user for the proportional, integral, and derivative gains.
c. The link should return to its original position when the script starts.
9.2 Using the inverseDynamics_Control.ttt file, design a PID controller plus inverse dynamics to move the link to the desired location. You’re code should:
a. Prompt the user for the desired location (in degrees).
b. Prompt the user for the proportional, integral, and derivative gains.
d. Prompt the user for the target velocity.
c. The link should return to its original position when the script starts.
9.3 Repeat 9.1 and 9.3 in CoppeliaSim using sysCall_jointCallback(inData) in the Child Script. How does this compare to the solutions obtained in 9.1 and 9.3?
a. Add a graph so that the velocity of the joint variables is tracked.
9.4 Given the RP manipulator below, what are the joint torques required to produce a force

Solutions:
9.1 Can be found at the Github repository located here
9.2 Can be found at the Github repository located here
9.3 Can be found at the Github repository located here
9.4 The solution can be found here: 9.4 soln
References
Chung, W., Fu, L., & Hsu, S. (2008). Springer Handbook of Robotics – Ch. 6 Motion Control. Heidelberg, Berlin: Springer. https://users.dimi.uniud.it/~antonio.dangelo/Robotica/2012/helper/Handbook-mcontrol.pdf
De Schutter, J., Villani, L. (2008). Springer Handbook of Robotics – Ch. 9 Force Control. Heidelberg, Berlin: Springer. https://users.wpi.edu/~jfu2/rbe502/files/force_control.pdf
Hutchnson, S. Spong, M., & Vidyasagar, M. (2006). Robot Modeling and Control. PDF: John Wiley & Sons, Inc.
Kawasaki, H. (2009). Control, Systems, Robotics, and Automation vol. 22. Online: global Encyclopedia of Life Support Systems EOLSS. https://www.eolss.net/sample-chapters/C18/E6-43-38-03.pdf