Step 3
Mass, inertia & F = ma
Measure how hard the base is to spin, then turn it 90° and stop dead using nothing but timed torques.
Newton's second law, turning
Push a mass (kg) with a force (N) and it accelerates at : that's . Turning works the same way. A torque (N·m) on a joint gives it an angular acceleration (rad/s²):
is the moment of inertia (kg·m²), the turning version of mass. The further the mass sits from the axis, the bigger , so a stretched-out arm is harder to spin than a tucked-in one.
Measure it
Apply a known torque for seconds and watch the speed. If the angular velocity goes from to , then and .
Why robots can't stop instantly
A spinning joint carries angular momentum , and only torque takes it away. The base motor gives at most 10 N·m, so stopping takes time: braking at from speed takes seconds and radians of travel. That's why the test push has to be followed by an equal push backwards.
The fastest move that stops
To turn a distance (rad) and stop: full torque forwards for a time , then the same torque backwards for . Speeding up from rest for covers , and braking covers the same again, so :
Nothing is measured during the move: it is open loop, only as good as your . A 5 % error in puts the base 4.5° off.
Speed-limited moves like this one come back in Trajectory Generation, step 3.
Your task
The shoulder, elbow and wrist are held for you, so only the base turns.
- The program pushes the base with
TEST_TORQUEforTEST_TIME. From the speeds before (qd0[0]) and after (qd1[0]), setBASE_INERTIA(within 5 %). - Write
turn_base(distance, torque)with two calls topush_base. - Choose
MOVE_TORQUE(up to 10 N·m). The base must stop within 3° of 90°, slower than 0.05 rad/s, and the move must take less than 1.5× the time at full torque.