How wzq-13/diffslack works
DiffSlack is a research framework for learning vehicle trajectories under nonlinear constraints, with a separate constrained-regression demo. The principal workflow generates maps and NMPC expert labels, loads planning samples, trains a prediction method, then evaluates or diagnoses projected trajectories. The graph preserves the documented DiffSlack, ENFORCE, imitation-learning, and DC3 branches. Source excerpts are partial, so uncertain internal call wiring is omitted; subsystem paths for capabilities documented but not sampled use their exact tree paths.
Main entry points: DiffSlack_Trainer.py DiffSlack trainer · ENFORCE_Trainer.py ENFORCE trainer · data_generator.py Map generation · dataload.py Map dataset loader
Components 25
Planning data
- Map generation
data_generator.py - Path search
others/dynamic_programming_heuristic.py - NMPC labeling
data_generator.py - Raw map samples
- Expert labels
- Map dataset loader
DataLoader/dataload.py - IL dataset loader
DataLoader/dataload_IL.py
Trajectory learning
- DiffSlack entry
DiffSlack.py - DiffSlack trainer
models/DiffSlack_Trainer.py - ENFORCE entry
ENFORCE.py - ENFORCE trainer
models/ENFORCE_Trainer.py - IL entry
IL.py - Hard IL entry
IL_hard.py - IL trainers
models/IL_Trainer.py - Hard IL trainer
models/IL_Hard_Trainer.py - DC3 trainer
models/DC3_Trainer.py - DC3 configuration
configs/DC3.yaml
Constraint methods
- Prediction networks
models/neural_networks.py - Slack projection
models/DiffSlack.py - ENFORCE projection
models/ENFORCE.py - Trajectory constraints
utils/prob.py
Evaluation and demo
- Trajectory evaluation
models/DiffSlack_Trainer.py - Regression comparison
demo_train.py - Demo predictions
Other components
- Research user
Connections 26
- Research user → Map generation: generate maps
- Map generation → Path search: search paths
- Map generation → Raw map samples: writes samples
- Research user → NMPC labeling: request labels
- Raw map samples → NMPC labeling: reads maps
- NMPC labeling → Expert labels: writes labels
- Raw map samples → Map dataset loader: loads samples
- Expert labels → IL dataset loader: loads paths
- Research user → DiffSlack entry: train or evaluate
- Research user → ENFORCE entry: train or evaluate
- Research user → IL entry: train baseline
- Research user → Hard IL entry: train baseline
- Map dataset loader → DiffSlack entry: supplies data
- Map dataset loader → ENFORCE entry: supplies data
- IL dataset loader → IL entry: supplies labels
- IL dataset loader → Hard IL entry: supplies labels
- DC3 configuration → DC3 trainer: configures
- DiffSlack trainer → Prediction networks: uses predictor
- ENFORCE trainer → Prediction networks: uses predictor
- DiffSlack trainer → Slack projection: projects predictions
- ENFORCE trainer → ENFORCE projection: projects predictions
- DiffSlack trainer → Trajectory constraints: evaluates constraints
- ENFORCE trainer → Trajectory constraints: evaluates constraints
- DiffSlack trainer → Trajectory evaluation: evaluates trajectories
- Research user → Regression comparison: run comparison
- Regression comparison → Demo predictions: writes results