Robotics Has a Stiffness Problem

E-3 pts0 comments

Robotics has a stiffness problem. You’re walking down the street on a… | by Hasan Amin | Jun, 2026 | MediumSitemapOpen in appSign up<br>Sign in

Medium Logo

Get app<br>Write

Search

Sign up<br>Sign in

Robotics has a stiffness problem

Hasan Amin

6 min read·<br>2 days ago

Listen

Share

You’re walking down the street on a cold winter’s day. You have some old trainers on, a little worse for wear. The wisps of your breath betray the fact you wish you’d found your gloves before leaving home. Your foot catches an icy drain and you slip, catching yourself before hobbling for the next couple of steps, allowing time for the pavement to regain your trust.<br>You are a tennis player, chasing down a ball to hit a forehand. If you strike this shot right, you’ll hit it over the net and it will drop just out of reach of your opponent. It’s not just the contact point that matters: you want a relaxed swing from the feet through your trunk, allowing the racquet to whip forwards at the moment your arm stiffens. Any mistake in this kinetic chain will lose you the point.<br>Press enter or click to view image in full size

Arm with its actuators: the biceps and triceps. These alternate between agonist and antagonist depending on the motion.Joints, agonists and antagonists<br>In the mammalian body, joints are actuated by muscles. Our forearm is articulated at the elbow: the biceps raise it and the triceps lower.<br>Most skeletal muscles that move joints do work in opposing pairs. The leg similarly has the quadriceps and the hamstrings. In doing work, one muscle acts as the agonist (flexor) and the other as the antagonist (extensor).<br>If we lift an unstable object with our arm, the biceps is the agonist, and the triceps can resist the work of the biceps to modulate joint stiffness. This means for a given torque required to move a specific load, there are effectively an infinite range of force values that can be exerted by the same two muscles. You intuit this already: walk on an icy lake and you’ll be moving the same load of your body as on solid ground, but in an awkward waddle, hoping to avoid disturbances during slips. When both muscles fire simultaneously to increase stiffness, we call this co-contraction.<br>Disturbances: why we need to modulate stiffness<br>As animals, sometimes we need to be stiff to reject disturbances. Other times, we need fluidity for fast movements. We need to be able to modulate our stiffness to cope with a variety of situations.<br>Traditional robot actuators (think robot arms) almost achieve this. If they’re running position control, each motor is trying to hit an angle that you set. We can go further by introducing force control, where the arm detects disturbances and allows compliance.<br>This mostly presents as a software fix for a hardware problem: the gearboxes used for electric motors can multiply torque by over 100 times. They need this to produce useful output torques: motors are usually designed around high rotation speeds and low torques, but robotic limbs present as the opposite scenario entirely. Gearboxes are hard to backdrive: friction increases with the gear ratio and inertia with the square of it. Accordingly, these types of robots are too mechanically rigid to feel small forces like animals can.<br>The mathematics of disturbance rejection<br>So how do muscles, or motors, decide how to resist input forces?<br>Let’s recall Newton’s Second Law:

(1)When applied to rotational motion, we get:

(2) where τ is the net torque at a joint, I is the rotational intertia of the limb, and θ̈ is the angular accelerationOur net torque is the sum of what the actuator commands (τ_a), and whatever torque the environment imposes (τ_ext)

(3)Usually, we don’t hold a robot arm at a specific angular set point — we want it to move through multiple angles, as a function of time. We call this our trajectory, and it’s key to understand how we can follow this trajectory even under disturbance. This is the impedance of the system:

(4) where θ is the desired joint angle, K is the stiffness — or our strongly our joint resists angular displacement, and B is the damping — or how strongly our joint resists angular velocity. θ̇ is our angular velocity, and θ_0 is our starting joint angleJust an aside for intuition: our rotational stiffness here measures how much a unit displacement is resisted. Imagine compressing a spring: the more you compress it, the more resistance you feel. Damping is a function of velocity: if you drag your hand through water, the position of your hand doesn’t matter; only how fast you move it.<br>If we substitute (4) into (3) we get the equation for a damped rotational spring, modelling our robot joint:

(5)When nothing pushes on our joint, (τ_ext = 0), our robot settles to an angle of 0. When something does push, the displacement depends on the ratio τ_ext/K. The higher K, our stiffness, the less disturbance we observe.<br>Why agonist–antagonist pairs aid disturbance rejection<br>Consider the elbow, actuated by a biceps force f_b and a...

stiffness joint biceps muscles torque robot

Related Articles