Robot joint control and force control
Joint servo control (PD/PID, gravity compensation, computed torque, reflected inertia) and force control (stiffness, impedance, admittance, hybrid).
Drafted with Aria, reviewed by the AiCanCode.org team. Spotted an error? Use Give Feedback at the bottom of the page.
Why it matters
A trajectory is only a wish list until each joint servo makes the arm follow it despite gravity, payload changes, friction and coupling between joints. And when the robot must touch things — polishing, insertion, assembly, grinding — controlling position alone either loses contact or crushes the part, so the force at the tool must be controlled too.
Key ideas
Joint drive. Each joint has a motor (usually a brushless servo), a gear reduction of ratio N (often 50–160 in industrial arms), an encoder for position and velocity feedback, and a servo amplifier with current (torque) control in the innermost loop. The cascade is: current loop (fastest) → velocity loop → position loop.
Independent joint control. The simplest and most common scheme treats each joint as a single-input single-output system and ignores coupling as a disturbance. This works well because a high gear ratio divides the link-side inertia variations seen by the motor by N².
PD and PID control. τ = K_p·e + K_d·ė (+ K_i·∫e dt), with e = θ_d − θ.
- For a joint of effective inertia J, the closed-loop PD dynamics are J·θ̈ + K_d·θ̇ + K_p·θ = K_p·θ_d, a second-order system with ω_n = √(K_p/J) and ζ = K_d / (2·√(K_p·J)). Robots are tuned near critical damping (ζ ≈ 1) so there is no overshoot that could hit a part.
- A constant load torque τ_L (gravity) gives a steady-state error e_ss = τ_L / K_p under PD. Fix it with an integral term, or better, add gravity compensation g(q) as feed-forward.
Model-based control. Computed-torque (inverse dynamics) control: τ = M(q)·(q̈_d + K_d·ė + K_p·e) + C(q, q̇)·q̇ + g(q). If the model is exact, every joint behaves as an independent linear double integrator with chosen gains. Feed-forward of the planned torque greatly reduces tracking error at high speed.
Force control. Needed when the tool is in contact with a stiff environment.
- Stiffness control — make the tool behave like a spring: F = K·Δx. Contact force is set by commanding a small "penetration" into the surface.
- Impedance control — make the tool behave like a mass-spring-damper: F = M_d·Δẍ + B_d·Δẋ + K_d·Δx. Uses a force/torque sensor or motor currents; robust and widely used (e.g. collaborative robots).
- Admittance control — the inverse: measure force, compute a motion correction, send it to a stiff position controller; suits industrial arms with stiff position loops.
- Hybrid position/force control (Raibert-Craig) — a selection matrix S chooses, per task direction, whether to control force (constrained directions, e.g. normal to a surface) or position (free directions, e.g. along the surface). You cannot control both force and position in the same direction.
- Joint torques for a desired tool force come from τ = Jᵀ·F.
Sensors. Wrist six-axis force/torque sensors (strain-gauge), joint torque sensors (cobots) or motor current estimates.
Formulas
τ = K_p·e + K_d·ė + K_i·∫e dt, e = θ_d − θ
- K_p — N·m/rad; K_d — N·m·s/rad; K_i — N·m/(rad·s).
ω_n = √(K_p / J), ζ = K_d / (2·√(K_p·J)); critical damping: K_d = 2·√(K_p·J)
- J — effective inertia (kg·m²).
e_ss = τ_L / K_p (PD with constant load torque τ_L)
J_eff (at motor) = J_m + J_L / N²; θ_m = N·θ_L, τ_L = N·τ_m (ideal gearbox)
- J_m — motor rotor inertia; J_L — link inertia about the joint; N — gear ratio.
Computed torque: τ = M(q)·(q̈_d + K_d·ė + K_p·e) + C(q, q̇)·q̇ + g(q)
Stiffness/impedance: F = K·Δx (+ B·Δẋ + M·Δẍ); τ = Jᵀ·F
Worked examples
Example 1 (standard). A joint has effective inertia J = 0.5 kg·m² and a PD controller with K_p = 200 N·m/rad. (a) Find ω_n and the K_d for critical damping. (b) A constant gravity torque of 10 N·m acts; find the steady-state position error.
- ω_n = √(200 / 0.5) = √400 = 20 rad/s.
- K_d = 2·√(K_p·J) = 2·√(200·0.5) = 2·10 = 20 N·m·s/rad.
- e_ss = τ_L / K_p = 10 / 200 = 0.05 rad = 2.86°.
Answer: ω_n = 20 rad/s, K_d = 20 N·m·s/rad, e_ss = 0.05 rad (2.86°). Gravity feed-forward or an integral term removes this error.
Example 2 (GATE level). A motor with rotor inertia J_m = 2 × 10⁻⁴ kg·m² drives a link of inertia J_L = 0.5 kg·m² through a gearbox of ratio N = 50. Find (a) the inertia seen by the motor, (b) the motor torque needed to accelerate the link at 10 rad/s² (friction neglected).
- J_eff = J_m + J_L / N² = 2 × 10⁻⁴ + 0.5 / 2500 = 2 × 10⁻⁴ + 2 × 10⁻⁴ = 4 × 10⁻⁴ kg·m².
- Motor acceleration = N × 10 = 500 rad/s².
- τ_m = J_eff × 500 = 4 × 10⁻⁴ × 500 = 0.20 N·m.
- Check: rotor needs 2 × 10⁻⁴ × 500 = 0.10 N·m; link needs 0.5 × 10 = 5 N·m at the link, i.e. 5/50 = 0.10 N·m at the motor; total 0.20 N·m ✓. Here N = √(J_L/J_m) = 50, the inertia-matched ratio.
Answer: (a) 4 × 10⁻⁴ kg·m², (b) 0.20 N·m.
Example 3 (stiffness control). The tool is in contact with a surface and its controller stiffness normal to the surface is K = 5000 N/m. To press with 20 N, command a position Δx = F/K = 20/5000 = 4 mm below the surface.
Common mistakes
- Reflecting inertia with N instead of N² (or reflecting it the wrong way).
- Expecting PD alone to hold position exactly under gravity — it leaves e_ss = τ_L/K_p.
- Trying to control force and position in the same direction — hybrid control splits directions.
- Using τ = J⁻¹·F instead of τ = Jᵀ·F.
- Tuning for fast response with overshoot — an underdamped joint overshoots into the workpiece.
- Ignoring that high gains on a stiff contact cause chatter and instability.
For GATE ME
Questions draw on control-systems basics applied to a joint: second-order response (ω_n, ζ, critical damping gain), steady-state error under load, reflected inertia through a gearbox, and conceptual distinctions between position, force, impedance and hybrid control. Practise the J_eff = J_m + J_L/N² relation and ζ from PD gains.
Quick check
- With PD control, what is the steady-state error for K_p = 500 N·m/rad and a 5 N·m load?
- A link inertia of 1 kg·m² through a 100:1 gearbox appears as what inertia at the motor?
- In hybrid control, which variable is controlled normal to a rigid surface?
- Write the critical-damping condition for a PD joint.
- What does impedance control regulate?
Answers: 1. 0.01 rad; 2. 1 × 10⁻⁴ kg·m²; 3. Force; 4. K_d = 2√(K_p·J); 5. The dynamic relation between tool force and motion (desired mass, damping, stiffness).
Interview questions
All Robotics interview questionsTry answering each one aloud before you open it.
1.Explain the concept of force control in robotics.Concept
Force control in robotics refers to the ability of a robot to regulate the force it applies to its environment. This is important for tasks that require delicate handling or interaction with objects, such as assembly or surgery. Force control can be achieved through feedback systems that adjust the robot's movements based on the force sensed at the end effector.
2.How does a PID controller work in the context of robot joint control?Concept
A PID controller in robot joint control uses three parameters: proportional, integral, and derivative. The proportional part responds to the current error, the integral part accounts for past errors, and the derivative part predicts future errors. Together, they adjust the joint's position or speed to minimize the error between the desired and actual positions.
3.Why is compliance important in robotic force control?Application
Compliance in robotic force control allows a robot to adapt to external forces and changes in the environment. It is important because it helps prevent damage to both the robot and the objects it interacts with. Compliance can be achieved through mechanical design or control algorithms that allow for flexibility in the robot's movements.
4.What happens if a robot joint lacks sufficient torque?Application
If a robot joint lacks sufficient torque, it may not be able to move or hold its position under load. This can lead to performance issues, such as the inability to lift objects or maintain stability. In severe cases, it could cause the robot to fail in completing its tasks or even result in mechanical damage.
5.Why is feedback important in robot joint control systems?Application
Feedback is crucial in robot joint control systems because it provides real-time information about the joint's position, speed, and force. This information allows the control system to make necessary adjustments to achieve the desired motion. Without feedback, the system would be unable to correct errors, leading to inaccurate and inefficient operation.
6.Explain how a robot can control position and force at the same time.Concept
Hybrid position/force control (Raibert-Craig) splits the task frame into directions: force is controlled along constrained directions, such as normal to a surface, and position along free directions, such as along the surface. A diagonal selection matrix S picks force control where Sᵢ = 1 and position control where Sᵢ = 0, and the two command sets are combined and mapped to joint torques through Jᵀ. You can never control both force and position in the same direction. Impedance control is the alternative: it regulates the relation between them instead.
7.What is the role of sensors in force control of robotic joints?Application
Sensors play a critical role in force control of robotic joints by providing data on the forces and torques experienced by the robot. This information is used by the control system to adjust the robot's movements to maintain the desired force levels. Common sensors used include force/torque sensors and tactile sensors.
8.A robot joint is controlled by a PID controller with parameters Kp = 2, Ki = 0.5, and Kd = 0.1. If the current error is 0.2 radians, the integral of error is 0.5 radians·seconds, and the derivative of error is 0.05 radians/second, calculate the control signal.Numerical
The control signal (u) is calculated using the formula u = Kp × error + Ki × integral of error + Kd × derivative of error. Substituting the given values: u = 2 × 0.2 + 0.5 × 0.5 + 0.1 × 0.05 = 0.4 + 0.25 + 0.005 = 0.655.
Finished this topic? Mark it so your progress, study plan and readiness keep up.
Stuck on something here?