Getting started¶
Everything below runs on a laptop. Python 3.10 or newer for the simulator; PlatformIO for the firmware.
git clone https://github.com/akeanti/ariadne && cd ariadne
pip install -e ".[dev]" # simulator, tests, lint; also installs the `ariadne` command
python -m sim.run compare --seed 7 --plot compare.png # pivots vs smooth vs diagonals, physics
python -m sim.run drive --seed 7 --mode smooth --log run.csv --plot drive.png
python -m sim.run solve --seed 7 --plot solve.png # exploration + all three plans
python -m sim.run montecarlo --mazes 7 42 --n 8 --mode smooth diag --errors realistic
python -m sim.run benchmark --n 100 # planned times over 100 mazes
python -m sim.turns --plot turns.png # the turn library
python -m sim.calibrate --error 0.03 # the gyro calibration, simulated
--maze mazes/gen_7.txt (or any maze in the common ASCII +---+ format) replaces --seed.
--preset safe|normal|fast picks the speed setting; --errors realistic|stress|legacy the Monte Carlo error model.
python -m sim.studies control # Bode, margins, sensitivity, root locus (seconds)
python -m sim.studies profiles # turn and speed profiles
python -m sim.studies montecarlo # reliability with 95 % intervals (minutes)
python -m sim.studies sensors # ToF vs 1 kHz IR
python -m sim.studies pareto # run time against reliability, lateral acceleration swept
python -m sim.studies width # redesigns the turns for narrower chassis
python -m sim.studies alpha # angular-acceleration budget against time and reliability
python -m sim.studies site # rebuilds the website's interactive charts
Figures land in docs/img/studies/, data in docs/assets/data/. Physics studies use every core (--workers).
Every release has one merged image for an ESP32 DevKit (4 MB):
On the robot¶
Modes are cycled with the BOOT button (the LED blinks the mode number) and armed with GO; a run starts when you wave a hand in front of the front sensors, so nobody knocks the robot off the start line.
| Blinks | Mode | What it does |
|---|---|---|
| 1 | search | explore to the goal and back until the path is proven optimal; map saved to flash after every leg |
| 2 | fast run, smooth turns | the default fast run: clothoid S90 / L90 turns, path following |
| 3 | fast run, diagonals | adds 45, 135 and V90 turns; only after the gyro calibration |
| 4 | fast run, pivots | the v1 run, the conservative fallback |
| 5 | sensor test | ToF, gyro, battery and pose at 10 Hz |
| 6 to 9 | calibrate | ToF offsets, track width, wheel radius, gyro scale |
| 10 | clear maze | forget the saved map |
Serial console (h lists them): m maze, s sensors, p both fast-run plans with their planned times, v next speed preset, l flight log as CSV, c stored calibration.
The order of business on a new robot, with a pass criterion for every step, is the bring-up plan.