The working engineer’s field guide to robotics
Structured lessons from your first coordinate frame to whole-body control, deep-dive topic hubs, honest platform and robot references, and daily news written in plain English with sources linked.
All lessons are free to read until 31 Jan 2027. No account, no sign-up.
Learning tracks
All lessons →Start here
Full beginner track →What is a robot? Sense, plan, act
The loop that every robot runs, how to count degrees of freedom, the difference between workspace and configuration space, and the main kinds of robot you will meet at work
Frames, rotations and transforms with numpy
Rotation matrices, the right-hand rule, composing rotations, 4x4 homogeneous transforms, moving points between frames and inverting a transform, all in numpy, plus the REP 103 conventions ROS uses
Forward kinematics of a two-link arm
Compute where a planar two-link arm's tip is from its joint angles, by trigonometry and by chaining homogeneous transforms, check that the two agree, and sweep the joints to map the reachable workspace
Inverse kinematics: analytic and numeric
Find the joint angles that put a two-link arm's tip on a target, with the law of cosines and with a damped least-squares solver, handle unreachable targets, and see what singularities do to the numbers
PID control of a robot joint
Simulate a DC-motor joint with a load in numpy, then close the loop with P, PI and PID control, see integral windup under voltage saturation, fix it with clamping, and take the derivative on the measurement
Sensors, noise and a first Kalman filter
Encoders, IMUs and range sensors, the three kinds of error they share, why averaging is not filtering, and a 1-D constant-velocity Kalman filter in numpy tracking a robot from noisy positions
Topic hubs
All 20 topics →Robotics foundations
What a robot is, the sense-plan-act loop, DoF, workspace and robot types
Spatial maths
Rotations, quaternions, transforms, frame conventions and Lie groups
Kinematics
Forward and inverse kinematics, DH and PoE, Jacobians, singularities
Dynamics
Equations of motion, Newton-Euler, Lagrange, identification, contact
Control
PID, state space, LQR, MPC, impedance, force and whole-body control
Actuators and drives
Motors, gearboxes, quasi-direct drive, encoders, drivers, fluid power
Sensors
IMUs, encoders, force/torque, cameras, depth, lidar, radar, touch, calibration
State estimation
Bayes filters, Kalman, EKF, UKF, particle filters, fusion, factor graphs
SLAM and mapping
Visual and lidar SLAM, occupancy grids, loop closure, localisation in a map
Robot perception
Detection, 6D pose, point clouds, segmentation and 3D reconstruction
Motion planning
Grid search, sampling planners, trajectory optimisation and timing
Manipulation and grasping
Grasp analysis, learned grasp planning, pick and place, contact and hands
Platforms
Platform hubs →Build something
All projects →ROS 2 talker, listener and a moving tf2 frame
A ROS 2 Jazzy package with a talker, a listener, a tf2 broadcaster that moves a frame in a circle and a node that looks the frame up, run in the official Docker image on macOS, Linux or Windows.
A two-link arm that draws a square with inverse kinematics
Build a planar two-link arm in MuJoCo, solve analytic inverse kinematics for 161 waypoints around a square, track them with joint position servos and measure how far the pen lags.
A differential-drive robot that plans with A* and localises with an EKF
Plan a path across a 10 m room with A*, follow it with pure pursuit and estimate the pose with an extended Kalman filter that fuses noisy wheel odometry with position fixes, in pure Python and NumPy.