Clear accounts of what was tried and learned.

Explanations, tutorials, build notes, and essays grounded in work that can be examined. Explore a concept, try an experiment, and follow the reasoning behind it.

Start with the interactive foundations

Showing 37–48 of 101 posts

12 min read

Wheel odometry: turn encoder counts into a moving pose

Convert wheel encoder increments into a differential-drive robot's position and heading. Replay measured counts, calculate exact arc updates, and see how calibration errors and wheel slip change the estimate.

12 min read

A* search: guide the search with a lower bound

Use A* to find a low-cost route across a weighted grid. Calculate g, h, and f, compare Manhattan distance with Dijkstra, and see how an overestimate can return a worse path.

11 min read

Dijkstra’s algorithm: find the lowest-cost route

Trace Dijkstra’s algorithm through a weighted grid, update route estimates, and see why the goal must leave the priority queue before its cost is final. Reproduce a complete search in Python.

11 min read

Collision checking: test the motion between endpoints

Check a translating disk against a circular obstacle, including every point between its endpoints. Derive the closest-point test, expose missed samples, and distinguish broad-phase box overlap from a collision.

12 min read

Kinematic redundancy: use the motion a task leaves free

Split a three-link arm’s joint rates into a primary solution and null-space motion. Check the exact projector, compare damping leakage, and measure why a finite step can move a tool with zero initial velocity.

11 min read

Manipulability: read a robot’s velocity ellipse

Map a joint-rate budget into a robot’s possible tool velocities. Read the ellipse’s singular values, compare area with conditioning, and understand singular poses, units, and the limits of force duality.