A 2-wheel differential-drive model of Dash tracing letters, driven by the SAME verb
set as the real robot (forward · backward · turn_left · turn_right).
marker = rear pen (writes),
eraser = front pen (lifts when reversing). v2 defaults come from
the 2026-06-10 butcher-paper runs (letters/runs/*/log.md): 0.6× effective distance @speed 150,
stable ~8°-CCW drift per long stroke, closed-loop turns ±2° (post turn-bug fix). Headless twin with
the full noise model: sim-runs/run-sim.mjs.
"make a simulator, and then calibrate the simulator … tighten the iteration, that's the task for the robot.
Think about the dynamics of the wheels and how it turns to make letters, the loop in the simulator,
calibrating to the real thing, camera above the whiteboard." — Jake (2026-06-05T17:38:00Z voice memo 17-38)
Whiteboard is 40 × 40 cm (camera-above frame). Grid = 5 cm.
Blue trail = marker ink. The triangle is Dash: nose (front/eraser) points the heading,
tail dot is the rear marker. All four edges are off-board hazards (see calibration-notes).
drive — same verbs as the robot
pen-down on forward (marker draws as it drives) ·
front eraser engages on backward (trail lifts).
Toggle: backward erases
Measured (head-marker rig, letters/01/02): forward delivers 0.6× commanded
@speed 150 and drifts ~8° CCW per long stroke (≈ −0.3°/cm, direction STABLE — the old
"unstable direction" note was the caster rig). Uncheck closed-loop for the legacy open-loop truth:
turn_right delivers ~0.35× commanded (wildly variable), turn_left ≈ zero rotation (the driver
bug, fixed 2026-06-10 — see [[dash-turn-bug]]).