CALM-PPO / README.md
mohammed-azab's picture
Add the trained speed recommender with its training runs and settings
8558eda
|
Raw History Blame Contribute Delete
5.45 kB
metadata
license: cc-by-nc-4.0
gated: true
extra_gated_prompt: >
  Please read the following carefully before requesting access.


  By requesting access to this model, you confirm that you have read and agree
  to the model license (CC BY-NC 4.0) and the additional usage terms below.


  You agree to:

  - Use the model for research, development, and safety-related purposes

  - NOT use the model for military, surveillance, or related applications

  - NOT use the model in ways that could cause harm to individuals or society

  - Respect all applicable laws and regulations

  - Use the model in compliance with the CC BY-NC 4.0 license (non-commercial
  use only)

  - Cite CALM and CARD in any resulting work
extra_gated_fields:
  Full Name: text
  Affiliation (University / Company): text
  Country: text
  Reason for access: text
  I confirm that I have read and will comply with the license and usage terms above: checkbox
library_name: stable-baselines3
tags:
  - reinforcement-learning
  - ppo
  - vehicle-dynamics
  - ride-comfort
  - speed-bumps
pipeline_tag: reinforcement-learning

CALM-PPO

When a car approaches a speed bump, how much it should slow down is a trade-off. Slowing a lot spares the passengers but costs time; not slowing at all saves time and shakes the car. CALM-PPO is a reinforcement learning policy that makes this decision. For every bump it chooses how deeply to slow down, and the car then eases off before the bump and speeds up again after it.

The policy was trained in simulation, with a half-car model of the vehicle's vertical motion. Comfort is measured with the weighted vertical acceleration of ISO 2631-1, the standard measure of how strongly vibration is felt by a person. The simulator and the other planners that CALM compares against are in the CALM repository.

Files

File Content
PPO_final.zip The published policy
vecnormalize.pkl The scaling applied to the policy's inputs
policy.safetensors The same weights in a different, non-executable format
vecnormalize.json The same scaling as plain JSON
configs/ The settings the policy was trained with
seeds/ The four other training runs, each with the same four files

Use

The policy expects the CALM environment, so it is run through the CALM repository. Place the files in a run folder and evaluate on a scenario:

git clone --recurse-submodules https://github.com/CALM-Dataset/CALM
cd CALM
mkdir -p logs/models/PPO/calm_ppo
cp PPO_final.zip vecnormalize.pkl logs/models/PPO/calm_ppo/
calm eval calm_ppo --scenario c --render

The .zip and .pkl files are in the standard Stable-Baselines3 format. policy.safetensors and vecnormalize.json hold the same weights and scaling in plain formats, for tools that do not load Python pickles. To use them, copy both into the same folder and run calm eval calm_ppo policy.safetensors --scenario c --render.

Training

Training is counted in decisions, one per bump. The policy was trained for 20 000 decisions in four environments running in parallel. Training uses generated roads that get harder in four stages, moving on after 5 000, 10 000 and 15 000 decisions, and 60 % of the training roads are real speed bump crossings from CALM-Scenarios. 14 of the 105 qualified real roads were never used for training.

Training runs

Five policies were trained with identical settings and different random seeds, to check that the result does not depend on luck. For each road, the vibration of the policy's drive is compared with a constant-speed drive of the same duration. A value of -20 % means the policy's passengers feel 20 % less vibration. All values are simulated and averaged over roads; the last column is the average time the policy needs for a road.

Seed All 105 roads 14 roads not used in training 91 roads used in training Average trip time
68 -20.0 % -23.3 % -19.5 % 12.0 s
69 -19.7 % -21.8 % -19.3 % 11.9 s
70 -19.8 % -21.9 % -19.4 % 11.9 s
71 -20.2 % -23.3 % -19.7 % 12.0 s
72 -20.3 % -23.3 % -19.8 % 12.0 s

The five runs agree within 0.6 percentage points on all roads, and the roads not used in training do at least as well as the others. The published policy is one of these five runs; the other four are in seeds/.

License

CC BY-NC 4.0. Non-commercial use only. The policy was trained on roads derived from the CARD recordings, which include the non-commercial Italian data.

Citation

Please cite CALM and the CARD recordings the training roads come from.

@misc{calm_dataset,
  title  = {CALM: Comfort-Aware Longitudinal Motion Planning},
  author = {Mohammed El Said Azab Abdelazim},
  year   = {2026},
  url    = {https://huggingface.co/CALM-Dataset}
}
@inproceedings{elazab2025card,
  title     = {CARD: A Multi-Modal Automotive Dataset for Dense 3D Reconstruction in Challenging Road Topography},
  author    = {Elazab, Gasser and Neuhaus, Frank and Ko{\ss}, Tilman and Splietker, Malte and Date, Aditya and Unterreiner, Michael and Jansen, Maximilian and Hellwich, Olaf},
  booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
  year      = {2026},
  eprint    = {2605.05014},
  archivePrefix = {arXiv}
}