← Back to Academy

PHASE 2 · INTERACTIVE LABORATORY

Learn by moving robots.

Explore the mathematics visually, then implement and test the corresponding Python code. All simulations on this page run in your browser using JavaScript; the downloadable Python exercises run locally.

LAB 01 · KINEMATICS

Two-link robot arm

Move joint angles and link lengths. Watch the end-effector move through task space.

x = L₁ cos θ₁ + L₂ cos(θ₁ + θ₂)
y = L₁ sin θ₁ + L₂ sin(θ₁ + θ₂)

Read Week 1 assignment · Download Python notebook · Download Python lab starter · Download pytest tests

LAB 02 · VELOCITY KINEMATICS

Jacobian and singularities

The Jacobian maps joint angular velocities into end-effector velocity. At a singularity, its determinant becomes zero.

J = [ −L₁ sin θ₁ − L₂ sin(θ₁+θ₂), −L₂ sin(θ₁+θ₂) ]
  [ L₁ cos θ₁ + L₂ cos(θ₁+θ₂), L₂ cos(θ₁+θ₂) ]
det(J) = L₁L₂ sin θ₂
LAB 03 · FEEDBACK CONTROL

PID joint-position control

Change gains and watch a simulated joint respond to a position step. The example uses a simplified damped joint, not a full rigid-body robot model.

Python lab starter · Automated tests