A real-time WebGL robotics perception simulation cockpit engineered for LiDAR rangefinding, Bayesian log-odds occupancy grids, Extended Kalman Filter (EKF-SLAM) covariance propagation, Monte Carlo particle filters, and autonomous frontier exploration.
SLAM bridges physical range sensor physics with probabilistic state estimation and multi-layer spatial maps.
Evaluates cell occupancy using recursive log-odds updates: $L(m_i | z_{1:t}) = L(m_i | z_{1:t-1}) + L(m_i | z_t) - L_0$. Uses Bresenham line ray voting with fog-of-war revelation.
LOG-ODDS MEMORYPropagates state covariance $\mathbf{P}_{t|t-1} = \mathbf{F}\mathbf{P}\mathbf{F}^T + \mathbf{Q}$ and corrects on landmark observations via Kalman gain $\mathbf{K}$. Renders live $2\sigma$ error confidence ellipses.
KALMAN GAIN CORRECTIONMaintains 50 to 500 hypotheses across the state space. Weights particles against LiDAR range likelihoods and executes low-variance resampling to resolve kidnapped robot scenarios.
NON-PARAMETRIC FILTERMaintains keyframe scan fingerprints. Compares historical observation footprints to detect visited topologies, snapping accumulated odometric drift back into global alignment.
POSE-GRAPH ADJUSTMENTExperiment with simulated range sensor noise, observation landmark updates, and path planning directly on this page.
Switch between three distinct vehicle drive kinematics models, each with dedicated odometry equations and motion matrices.
Two independent drive wheels with passive castor. Capable of zero-radius in-place turns ($v_L = -v_R$). Non-holonomic velocity constraints.
Automotive front-wheel steering geometry. Enforces non-zero minimum turning radius $R = L / \tan\delta$, modeling autonomous road vehicles.
Equipped with mecanum/omni rollers. Capable of arbitrary instantaneous translation in any direction $(\dot{x}, \dot{y})$ independent of heading $\theta$.
Summary of mathematical algorithms, sensor modeling, and browser runtime performance metrics.
| SUBSYSTEM | IMPLEMENTATION | SPECIFICATION DETAILS |
|---|---|---|
| 3D Point Cloud Renderer | Three.js WebGL (r128 / r183) | Distance false-color gradient, ground grid, 2σ uncertainty ellipse visualizer, 60 FPS |
| 2D LiDAR Simulator | Bresenham Raycasting Engine | 30 to 360 rays, Gaussian range noise ($\mu=0, \sigma^2$), dynamic obstacle occlusion |
| Occupancy Grid | Bayesian Log-Odds Grid | Bresenham ray voting with fog-of-war revelation, probability thresholds for free/occupied |
| Sensor Fusion Filter | Extended Kalman Filter (EKF-SLAM) | Analytical 3x3 error covariance matrix $\mathbf{P}$ with dynamic 2σ (95.4% confidence) ellipse |
| Global Localization | Monte Carlo Localization (MCL) | 50-500 particle swarm with odometric motion sampling and low-variance resampling |
| Path Planning Algorithms | A* (Proximity Weighted) + Dijkstra + Bug2 | TypedArray min-heap priority queue with wall proximity safety cost buffer |
| Autonomous Exploration | Frontier Detection & Clustering | Automatic identification and routing to boundaries between explored free space and unknown territory |
Your contribution supports educational open-source robotics simulators, student laboratories, and WebGL computational research.