IKTM

The Industrial Kinematic Trajectory Model (IKTM) generates autoregressive kinematic trajectories for industrial vehicles. It models speed and change in heading without absolute coordinates, so the model is location-invariant.

This is a research release. It is not a transformers model and cannot be loaded with transformers.from_pretrained.

Files

File Description
iktm_model.pt Production probabilistic, duration-conditioned causal Transformer checkpoint. This is the best-validation checkpoint, not the epoch-30 final state.
scaling_stats.npy Speed-normalisation statistics from the Site A training split.

The checkpoint is a native PyTorch checkpoint rather than a Hugging Face Transformers model. It contains the model state and the configuration needed by the IKTM implementation, including the model dimensions, mixture sizes, duration conditioning flag, and speed mean and standard deviation.

Model

  • 30 training epochs; the retained checkpoint is the best-validation state (epoch 24).
  • Decoder-only causal Transformer.
  • Probabilistic output: a Gaussian mixture for speed and a von Mises mixture for change in heading, together with a stop probability.
  • Inputs: normalised speed, sine and cosine of heading change, a beginning-of- sequence flag, and a remaining-duration feature.
  • Three Gaussian speed-mixture components and five von Mises heading-mixture components.
  • 60-step maximum context and 128-dimensional hidden representation.

Intended use

IKTM is intended for research on synthetic industrial-vehicle trajectory generation, kinematic simulation, and evaluation of cross-site transfer. It generates speed and heading-change sequences, not absolute positions, routes, or maps.

Training data and procedure

The model was trained on anonymised Site A industrial-vehicle telematics. The data was cleaned and resampled to one-second kinematic time series. Training, validation, and test devices used a fixed 70/15/15 device-level split with seed 42; raw trajectories and site identifiers are confidential and are not included here.

Training used AdamW with learning rate 1e-3, weight decay 1e-4, batch size 128, and a cosine learning-rate schedule. The loss combines probabilistic speed and heading likelihoods, stop binary cross-entropy, and a duration-prior likelihood. The checkpoint contains the learned duration prior.

Evaluation

The following values use the held-out test protocol and temperature T=0.2. Teacher-forced metrics are reported for the production checkpoint; rollout metrics use 100 samples from the beginning-of-sequence token with seed 42.

Site Split Speed RMSE, teacher-forced (m/s) Heading RMSE, teacher-forced (degrees) Turn-rate JSD, rollout (bits)
Site A ID test 0.1178 21.3432 0.0390
Site B zero-shot OOD 0.1281 19.6080 0.0569
Site C zero-shot OOD 0.1413 20.7127 0.0310
Site D zero-shot OOD 0.1509 23.4554 0.0329

All 100 Site A rollouts stopped naturally and matched their sampled target duration, with length error +0.0 +/- 0.0 seconds. The rollout metrics are distributional diagnostics, not guarantees for an individual generated trajectory.

Limitations and responsible use

  • The model was trained on one industrial site and evaluated zero-shot on three other sites. It may not represent other fleets, operating policies, vehicle types, or environments.
  • It has no absolute-coordinate, road-network, obstacle, or route-intent information. Generated sequences should not be interpreted as safe paths.
  • Do not use this checkpoint for real-time vehicle control, collision avoidance, safety decisions, or operational planning without independent validation and appropriate safety systems.
  • The training data contains industrial mobility patterns. The release omits raw telematics and site identifiers to preserve confidentiality.

Loading

The checkpoint requires the IKTM model implementation in scripts/models.py. For the full evaluation and generation workflow, use the project repository's scripts/evaluate_generator.py and point it at this checkpoint after placing it at the expected model path.

import torch

checkpoint = torch.load(
    "iktm_model.pt",
    map_location="cpu",
    weights_only=False,
)

print(checkpoint.keys())
print(checkpoint["speed_mean"], checkpoint["speed_std"])

The model is intended for research use with the accompanying IKTM code and evaluation protocol.

License

This model is released under the MIT License.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support