Skip to content

feat(alpasim-integration): continuation of closed loop integration - #177

Open
Arseni10Lk wants to merge 125 commits into
autowarefoundation:restore/pr-166-closed-loop-integrationfrom
Arseni10Lk:restored-closed-loop-integration
Open

feat(alpasim-integration): continuation of closed loop integration#177
Arseni10Lk wants to merge 125 commits into
autowarefoundation:restore/pr-166-closed-loop-integrationfrom
Arseni10Lk:restored-closed-loop-integration

Conversation

@Arseni10Lk

Copy link
Copy Markdown
Contributor

This is a PR for PR #175 .

PR #166 was closed automatically due to a history revamp, and now this PR continues the work on the closed-loop integration.

Acceptance order:

gcordova10 and others added 30 commits July 16, 2026 20:11
…bration

Model/README.md documented the pre-autowarefoundation#77/autowarefoundation#107 forward signature (camera_params=,
3-tuple return). AutoE2E.forward takes **kwargs and forwards them to the planner,
which also takes **kwargs, so camera_params= was absorbed at every layer and
dropped without a word: the model ran on geometry_type="pseudo", a learned prior,
while holding real calibration. Verified on main: forward(camera_params=calib) is
bit-for-bit identical to forward() with no geometry (max abs diff 0.0), while
projection=PinholeProjection(calib) does change the output (4.1e-03).

kit_scenes/forward_pass_test.py follows that stale README verbatim, so KITScenes
calibration never reaches BEV fusion. It also unpacks a planner_loss that forward
has never returned.

- auto_e2e.py: raise TypeError on removed geometry kwargs, naming the replacement
- Model/README.md: document the real signature and the projection ABI
- kit_scenes/forward_pass_test.py: port to projection= + geometry_type=
- test_auto_e2e.py: pin the guard so **kwargs cannot swallow geometry again

Signed-off-by: GABRIELA CORDOVA <100548769@alumnos.uc3m.es>
…nd to a live coupling

Signed-off-by: GABRIELA CORDOVA <100548769@alumnos.uc3m.es>
…y-abi-kwargs-only

fix(model): reject removed geometry kwargs instead of silently dropping calibration
…ulness-positive-control

test(reasoning): positive control — intervention delta responds to a live coupling
bench: add NVIDIA Quadro RTX 5000 results
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
…front view

Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
Signed-off-by: riita10069 <ryota10069.tech5.jizi@gmail.com>
m-zain-khawaja and others added 15 commits August 12, 2026 12:51
…m of 256 since we want to retain the original feature sizes
The model has selected map-BEV fusion by registry key since autowarefoundation#94
(MAP_FUSION_REGISTRY: residual / cross_attn / deformable) and AutoE2E.__init__
accepts map_fusion_mode, but train_il never forwarded it. Every run therefore
trained the constructor default, residual, whatever the experimenter intended —
and nothing in the run log said so.

That makes the 'Map Feature Fusion: Residual, Attention' axis of autowarefoundation#168
unreachable through the sanctioned training path: a contributor comparing the
two either compared residual against residual, or left train_il for a custom
script and lost comparability with everyone else.

Adds a MapFusion enum beside the existing Backbone enum, threads it through
train_il and wf_train_il, and records it in the checkpoint config so evaluation
rebuilds the same architecture — _model_kwargs feeds that dict into
AutoE2E(**config), so without the key a non-default run would be reconstructed
with the constructor default and load mismatched weights. Also logs
model/map_fusion_mode to MLflow so runs are distinguishable after the fact.

The default reproduces the previous behaviour exactly, so runs that do not pass
the argument are unchanged.

Tests cover the pass-through, the workflow wiring, the checkpoint round-trip and
that every enum value is a registry key; they fail without the change.
…in-il-map-fusion-mode

feat(training): expose map_fusion_mode as a train_il parameter
…tx-4060-inference

bench: add RTX 4060 8 GB inference speed results
…acceleration values are scaled before they are fed into the planner
…y test

Signed-off-by: Arseni10Lk <arseniy230606@gmail.com>
@Arseni10Lk

Copy link
Copy Markdown
Contributor Author

@riita10069, thanks for all your feedback. I really appreciate all the great ideas shared

So, I examined the navigation and its potential implementation here, and I wanted to confirm/discuss one thing.

Constructing a route mask shouldn't be an issue (at least not as much as map rasterization). However, when it comes to map rasterization, there is one critical difference from offline training that requires some thought.

  • As far as I understand, in production, the maps are rasterized before the run (so not on the fly, meaning the model does not have to "wait" for the map to be available). This is possible because it is IL and we have an actual trajectory, so rendering in advance is not an issue.
  • Here, however, rendering in advance is impossible (well, if we want it to be precise, at least). So we can only rasterize a map on the fly, which might become a bottleneck.

So, the key question I wanted to ask is whether you had a chance to test live rasterization before, and how much it slows down performance in combination with a 10 Hz frequency of operation of our Reactive model

@Arseni10Lk

Arseni10Lk commented Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

I think this actually can be resolved by simply pulling a "bigger" tile than needed first and then just cropping (not literally cropping, but rather rasterizing its chunk) it in accordance with the current position. So, now I will be working on that

Signed-off-by: Arseni10Lk <arseniy230606@gmail.com>
…documentation

Signed-off-by: Arseni10Lk <arseniy230606@gmail.com>
Signed-off-by: Arseni10Lk <arseniy230606@gmail.com>
@riita10069

Copy link
Copy Markdown
Collaborator

I think one important point is how much freedom we actually want to give the model during RL.

Since the 3DGS environment is reconstructed from camera data along the original vehicle trajectory, the agent cannot deviate too far from it. For example, if it moves more than ~3 m away, we could give a negative reward and terminate the episode, since we probably shouldn’t train on clearly degraded regions of the reconstruction.

So even with RL, the task is essentially to follow the same route as the original vehicle, while allowing some local freedom in how the agent drives.

Given this constraint, I think we can preprocess and pack a sufficiently large rasterized map and route with each scene, similar to IL. During RL, we would only need to sample the relevant region based on the agent’s current pose, rather than rasterizing the map from scratch at every step.

@Arseni10Lk cc. @m-zain-khawaja

Arseni10Lk and others added 7 commits August 15, 2026 16:22
Signed-off-by: Arseni10Lk <arseniy230606@gmail.com>
Signed-off-by: Arseni10Lk <arseniy230606@gmail.com>
Signed-off-by: Arseni10Lk <arseniy230606@gmail.com>
Signed-off-by: Arseni10Lk <arseniy230606@gmail.com>
Signed-off-by: Arseni10Lk <arseniy230606@gmail.com>
ShauryaVM added a commit to ShauryaVM/auto_e2e that referenced this pull request Aug 19, 2026
Co-authored-by: Cursor <cursoragent@cursor.com>

autowarefoundation#123 v1 uses rollout comfort/progress as the base and multiplies fidelity onto the WM consequence alone, so a noisy world model cannot wipe safety or flip the ranking. The offline pair is the tensor AlpaSim (autowarefoundation#177) should call later.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.