Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
1.2.0 - 2026-04-11
Added
Control debug panel: real-time steering/throttle visualization (PyQt6 renderer)
Observation debug overlay: live observation values overlay on the map (PyQt6 renderer)
ONNX export: convert SB3 models to ONNX for sim-to-real transfer via
OnnxPolicyRunnerNorm bounds extraction: save normalization bounds to config for reuse in external packages
Custom neural network architecture: configurable layer sizes via
net_archin RL configMorris sensitivity analysis: parameter sensitivity analysis script for STD model
Observation sensitivity analysis: script for analyzing observation feature importance
Regression tests: tests for action ordering and other previously encountered bugs
Trajectory comparison script: compare KS, ST, STD model trajectories for sim2real validation
Fixed
Action ordering bug where
control_inputorder affected action array mappingRendering
rgb_arraymode bugfixKinematic model yaw_rate bugfix
Removed unused
abstractmethoddecorator onCarAction.actmethod
Changed
Refactored docstrings for consistency, correctness, and RTD readability
Clarified supported Python versions in README
Reorganized README for clearer table of contents
Made unit test suite more efficient
Moved commonroad submodule to analysis subfolder
Removed
Docker support (Poetry and PyPI are sufficient)
Euclidean reward option for recovery learning
1.1.1 - 2026-03-15
Fixed
Version bump only (packaging fix)
1.1.0 - 2026-03-15
Added
Recovery training: dedicated training mode (
training_mode: "recover") with recovery-specific rewards, resets, and evaluationCurriculum learning:
CurriculumLearningCallbackthat gradually expands recovery state initialization ranges as agent success rate improvesTransfer learning: transfer pretrained model weights to new tasks with optional critic reset and
log_stdre-initializationMPC controllers: Kinematic MPC (KMPC) and Single-Track MPC (STMPC) via acados integration
Multi-map training: train across multiple maps in parallel environments
Sparse width observations:
sparse_width_obsconfig to reduce observation dimensionality when track width varies littleP/PD controllers: simple proportional controllers for benchmarking recovery performance
Performance metrics: beta-r phase plane analysis, recovery trajectory plotting, controller comparison metrics
PyPI publishing via
publish.ymlGitHub Actions workflow (triggered on tag push)ReadTheDocs documentation site with Sphinx RTD theme
Logos, favicon, and branding assets
Changed
Refactored package for PyPI publishing (renamed
f1tenth_gymtogymkhana)Migrated from Black to Ruff for linting, formatting, and import sorting with pre-commit hooks
Refactored controllers with abstract base class
Refactored training scripts with shared
train_common.pyandtrain_utils.pyUpdated map loading to use maintained source for better compatibility
Reorganized project structure (analysis, figures, plans into dedicated directories)
Fixed
Mexico City track naming issue
Eval env should use curriculum max ranges
1.0.0 - 2026-01-30
Added
Drift dynamics: Single Track Drift (STD) model with PAC2002 tire physics
Reverse/random driving direction:
track_directionconfig option (normal,reverse,random) for balanced cornering trainingState reset:
env.reset(options={"states": ...})for full 7-d state initialization (STD model)Arc-length visualization: render arc-length annotations along the centerline for Frenet coordinate debugging
Observation types:
FeaturesObservation(drift) with slip angle, lookahead curvatures/widths; observation and action normalizationPredictive collision: TTC-based collision checking as alternative to Frenet-based
Wall deflection mode: configurable track boundary behavior (boundary vs. wall collision)
Progress reward gain: configurable
progress_gainmultiplier for forward progress rewardFrenet projection debugging:
debug_frenet_projectionvisualization optionLookahead curvature visualization: render lookahead sampling points ahead of the vehicle
Wandb integration: experiment tracking, model logging, download, and resume from wandb
Performance metrics: beta-r phase plane analysis, recovery trajectory plotting
PPO training infrastructure with SB3 and parallel environments
Fixed
Wraparound bug in progress tracking (robust fix with unit tests)
Normalization logic when both actions and observations are normalized
Reverse direction reset bug where random reset could point vehicle the wrong way due to cached reference line
Reverse direction normalization fix where min/max curvature bounds need to be symmetric
Changed
Configuration logic simplified and centralized in
train/config/Moved plotting files to
analysis/folder