Learn AI.
Build AI Systems · ORIGINAL LEARN AI LESSON

Use a Jacobian.

Predict small tool movements, inspect missing directions and compare inverse velocity proposals.

By the end: Use a position Jacobian to relate joint rates to tool velocity, test a finite-step prediction, and explain singularity and damping.

01 · TRY

Start with something concrete.

Straighten your arm and rotate your shoulder a little. Your hand initially moves sideways to the arm; it cannot instantly move straight outward.

Try the interactive model ↓
02 · PREDICT
Before you experiment

Two links point along +x. Can finite joint speeds produce an instantaneous +x tool velocity at that exact posture?

Two links point along +x. Can finite joint speeds produce an instantaneous +x tool velocity at that exact posture?
03 · EXPERIMENT

Change one thing. Watch what follows.

  1. Compare predicted and exact endpoints at two durations.
  2. Read Jacobian columns as metres per radian.
  3. Compare the velocity ellipse at bent, straight and nearly straight postures.
  4. Inspect pseudoinverse speed and residual rather than assuming a solved request.
  5. Increase damping and compare speed with velocity mismatch.
  6. Export three audits with posture, units and limitations.

Loading this browser experiment…

04 · UNDERSTAND

From a posture to a small movement

Forward kinematics tells us where a tool is for a set of joint angles. A Jacobian answers a nearby question: how fast does that position change when each joint turns? It is a table of local sensitivities. You do not need calculus first: change one joint by a tiny amount, measure the position change, and divide by the angle change.

This lab has two rigid links rotating in a plane. The base stays at the world origin. Shoulder angle q₁ is measured from world x; elbow angle q₂ is relative to link one. Link lengths L₁ and L₂ use metres. The tool is the second link’s endpoint. We measure its x/y position only, not orientation.

Read each column as an experiment

For each joint, hold the other still. The first Jacobian column contains x and y change per radian of shoulder rotation. The second does the same for the elbow. Multiplying each column by its joint speed and adding gives instantaneous tool velocity.

A radian is an angle unit: one full turn is 2π radians, so 1 radian is about 57.3 degrees. Angle sliders display degrees; the calculations convert them. Speed sliders already use radians per second. Mixing those units creates an error by a factor of about 57.3.

Derive the two columns from the endpoint

The endpoint coordinates are x = L₁ cos(q₁) + L₂ cos(q₁+q₂) and y = L₁ sin(q₁) + L₂ sin(q₁+q₂). For radian inputs, the local change of sine is cosine times the angle change; the local change of cosine is negative sine times the angle change.

Therefore the shoulder column is (−L₁ sin(q₁)−L₂ sin(q₁+q₂), L₁ cos(q₁)+L₂ cos(q₁+q₂)). The elbow column is (−L₂ sin(q₁+q₂), L₂ cos(q₁+q₂)). Each column is perpendicular to the vector from that joint to the endpoint. These formulas are checked against separately computed central finite differences.

Local velocity is not a whole trajectory

Write v = Jq̇: q̇ means joint angles changing per second, J is the sensitivity table, and v is tool metres per second. Over a short duration Δt, predict position as starting position plus vΔt.

The arm bends as it moves, so its Jacobian changes. Holding the initial velocity prediction fixed gives a straight tangent, while exact forward geometry follows a curve. The lab compares both using the same constant joint speeds. Halving a sufficiently short duration usually reduces this first-order approximation’s position error by about four. The displayed curve is sampled for drawing; the final position is computed directly from the final angles.

A singularity is a loss of instantaneous directions

At the straight posture, both joints initially move the endpoint perpendicular to the arm. Combining their speeds cannot create an along-arm velocity. A matrix’s rank counts independent output directions; here it drops from two to one.

This does not mean the mechanism is broken, or that no finite motion is possible. Bending can change horizontal position over time. It means the local velocity map at this precise posture lacks a direction. That is also different from the three-angle representation singularity in the previous lesson: here the position mapping of the actual mechanism loses rank.

The lab maps a circle of joint-speed combinations into a velocity ellipse. Its interior corresponds to a combined speed norm at most one radian per second. This is an illustrative combined budget, not independent limits on both motors. At singularity the ellipse collapses to a line.

Invert carefully and inspect the residual

The pseudoinverse proposes joint speeds that best match the requested velocity. At singularity it projects the request onto available directions. Among equally good solutions, it chooses the smallest joint-speed norm. The remaining residual is requested minus achieved velocity; a nonzero residual means the request was not exactly met.

Near singularity, the missing direction returns weakly. A mathematically exact inverse can require enormous speeds. Singular values measure motion gain in principal directions; a very small value explains the large inverse response. Numerical software also needs a cutoff for treating tiny gains as zero. This lab states that cutoff and does not label a finite numerical estimate as an exact physical guarantee.

Damped least squares adds a cost for joint speed. It can reduce large proposals but leaves more mismatch. A soft penalty is not a speed limit. The solver’s proposals are displayed without execution; the separate finite-motion experiment uses only its bounded manual speeds.

Turn the experiment into evidence

For guided practice, capture a bent posture at two durations, then explain what changes at a straight posture. For implementation practice, independently approximate both Jacobian columns with tiny positive and negative joint perturbations. Check a nonsingular inverse and a singular request with an unavailable component. For a decision brief, report required speeds and remaining velocity error, and identify which actuator, collision and dynamics evidence is still absent.

This lesson supplies local position kinematics. It does not plan around obstacles, enforce joint limits, model forces or establish safe robot operation. Temporary captures support comparison; they are not independent implementation review or completed learner pilots.

05 · APPLY
Check your understanding

Near a singular posture the inverse proposal requires enormous joint speeds. What does damping do?

Near a singular posture the inverse proposal requires enormous joint speeds. What does damping do?
06 · CONTINUE

Take this idea with you.

A Jacobian describes local motion at a posture. Its inverse may be unavailable or demand unreasonable speeds; finite motion, limits and safety need additional checks.

My work
Original Learn AI lesson ·Modern Robotics: Singularities
Learn AI · Understand by doing.Loading local progress…Copyright (c) 2026 Mobi Weave, Inc. All rights reserved