Robot pipeline — at a glance

This is the first MDX-authored tutorial in the portfolio. It exists to prove out the toolchain: the page is a .mdx file, server-rendered by Next.js, with the shared <Callout/>, <Equation/> and <Figure/> components automatically available.

SLAM (occupancy grid)

The robot fires a 60-ray LiDAR every tick. Each ray either terminates at a wall (the "hit" cell) or travels its full range. The grid update is a Bresenham trace from the robot to the hit point that marks each cell along the ray as FREE, then the hit cell as OCCUPIED (when applicable).

P(occ | z) ∝ P(z | occ) · P(occ) // log-odds form

NDT scan-matching

Normal Distributions Transform models the existing map as a grid of Gaussian cells. The scan is shifted by (dx, dy, dθ) to maximise the log-likelihood of the transformed scan points under the cell distributions.

A* path search

Eight-connected grid A* with an inflated Manhattan heuristic and an EDT clearance penalty. The new findPathYieldable generator (PR6) lets the demo animate the open / closed sets per RAF.

MPCC tracking

Sequential Quadratic Programming optimises a horizon-length window of control inputs to minimise contour error and maximise progress along the arc-length-parameterised reference.