AutonomousVehicleControlBeginnersGuide
Python sample codes and documents about Autonomous vehicle control algorithm. This project can be used as a technical guide book to study the algorithms and the software architectures for beginners.
A browser simulator for robot navigation: tune localization, perception, planning and control, analyze the loop, learn with guided lessons.
EducationJavaScript · PythonGitHub @spz0gitOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
A robot navigation simulator and course in one HTML file: localization, perception, planning, control and safety, with loop analysis and guided lessons.
Loading the full README.
Read the full README ↗A robot navigation simulator that runs in your browser. It is one HTML file: nothing to install, works offline, works on a phone.
Try it: open the live page at https://spz0git.github.io/nav-stack-lab/. It is the file at the head of this
repository, deployed on every merge. To keep a copy, download dist/nav-stack-lab.html
(or the file attached to the latest release) and open it
in a browser; it works without a network.
A small robot drives missions on seven floors, from an empty room to a parking lot and a moose test. You choose how it localizes (dead reckoning, EKF, particle filter, EKF-SLAM), how it maps (known map or lidar occupancy), how it plans (A*, RRT*, Hybrid A*, space-time A*) and how it steers (pure pursuit, Stanley, rear-wheel feedback, PID, DWA, MPC). You can also write your own controller, planner, localizer or predictor in JavaScript and drop it in. There are people walking around, another vehicle, sensor noise, latency, and a car model with tyre slip.
The page has two modes, Simulate and Learn, and a loop analysis view:
training/) and run in the page
as plain JavaScript, with lessons that measure where each works and where it does not. A Safety group teaches the
ideas of the safety standards for automated vehicles (ISO 26262, ISO 21448, ISO/PAS 8800, UL 4600) by measuring
them: the operating domain, hazards rated by the speed of each contact, the situations that make a stack with
nothing broken fail, faults with their time budget, and a search for the failures nobody wrote down (Tools → Safety).It is meant for students and engineers who want to see localization, perception, planning and control interact, change one thing, and watch what happens. Design notes, known limits and what comes next are in docs/roadmap.md.
git clone https://github.com/spz0git/nav-stack-lab.git
cd nav-stack-lab
./build.sh
open dist/nav-stack-lab.html
You need Node 20 or newer. The page has no runtime dependencies and the build needs nothing but Node; the lint and
format checks (npm run lint, npm run fmt:check) use ESLint and Prettier, which npm ci installs.
npm test # Node only, 69 tests, about 35–55 s (after ./build.sh)
python3 tests/run_all.py --changed # the browser tests this change needs (smoke test about 40 s)
python3 tests/run_all.py # all twelve browser tests, about 12 min
The browser tests need Playwright and a Chromium once:
python3 -m venv .venv && source .venv/bin/activate && pip install -r tests/requirements.txt && playwright install chromium.
What each test checks is in CONTRIBUTING.md.
Issues and pull requests are welcome. CONTRIBUTING.md explains what kind of change fits and the tests every PR runs; docs/good-first-issues.md has a few small ones to start with; src/README.md is the map of the source.
If you use the lab in a course or a paper, CITATION.cff has the citation.
MIT, see LICENSE. The embedded fonts and the vendored TeX converter keep their own licences, listed in NOTICE.