| --- |
| license: mit |
| tags: |
| - autonomous-driving |
| - motion-planning |
| - flow-matching |
| - generative-model |
| - navsim |
| library_name: pytorch |
| pipeline_tag: other |
| --- |
| |
| # FlowR2A: Learning Reward-to-Action Distribution for Multimodal Driving Planning |
|
|
| FlowR2A is a generative multimodal driving planner that learns the **reward-conditioned action distribution** p(a|r) with **flow matching**. Instead of treating simulation-based rewards as *discriminative targets* (as in scoring-based planners), FlowR2A reframes them as *generative conditions*, unifying the dense supervision of scoring-based methods with the dynamic proposal generation of anchor-based methods in a single model. This forces the planner to internalize how an action relates to its outcomes in safety, progress, comfort, and rule compliance. |
|
|
| - 📄 **Paper:** https://arxiv.org/abs/2606.24231 |
| - 🌐 **Project page:** https://lixirui142.github.io/flowr2a-project-page/ |
| - 💻 **Code:** https://github.com/lixirui142/FlowR2A |
|
|
| ## Model Description |
|
|
| FlowR2A consists of four components: |
|
|
| 1. **Perception Encoder** — a Transfuser backbone (multi-view camera + BEV LiDAR) producing scene and agent tokens. |
| 2. **Reward Encoder** — embeds simulation reward signals (safety, progress, comfort, rule compliance) into a condition vector injected via adaptive layer norm; supports classifier-free guidance through reward dropout. |
| 3. **Flow-based Action Decoder** — a transformer with self-attention over trajectory points and cross-attention to scene tokens, conditioned on reward + time embeddings via AdaLN, trained with a velocity-matching loss over dense action–reward pairs. |
| 4. **Mode Selector** — a lightweight transformer that scores generated proposals, trained with online simulation labeling. |
|
|
| ## Checkpoint |
|
|
| | File | Description | |
| |------|-------------| |
| | `flowr2a_s2.ckpt` | Stage-2 checkpoint, including all components. | |
|
|
| ## Results |
|
|
| State-of-the-art closed-loop performance on the NAVSIM `navtest` benchmarks (lightweight backbone). |
|
|
| **NAVSIM v1** |
|
|
| | Setting | NC | DAC | TTC | Comf. | EP | **PDMS** | |
| |---|---|---|---|---|---|---| |
| | Single proposal | 98.6 | 97.3 | 95.3 | 100 | 84.9 | **90.0** | |
| | 60 proposals | 98.8 | 98.0 | 96.0 | 100 | 90.1 | **92.8** | |
|
|
| **NAVSIM v2** |
|
|
| | NC | DAC | DDC | TLC | EP | TTC | LK | HC | EC | **EPDMS** | |
| |---|---|---|---|---|---|---|---|---|---| |
| | 98.9 | 98.1 | 99.1 | 99.7 | 91.5 | 98.5 | 95.0 | 98.3 | 65.2 | **88.9** | |
|
|
| ## Usage |
|
|
| See the [GitHub repository](https://github.com/lixirui142/FlowR2A) for setup, the NAVSIM data pipeline, and inference instructions. Download the checkpoint with: |
|
|
| ```python |
| from huggingface_hub import hf_hub_download |
| |
| ckpt = hf_hub_download(repo_id="lixirui142/FlowR2A", filename="flowr2a_s2.ckpt") |
| ``` |
|
|
| ## Citation |
|
|
| ```bibtex |
| @article{flowr2a2026, |
| title = {FlowR2A: Learning Reward-to-Action Distribution for Multimodal Driving Planning}, |
| author = {Li, Xirui and Liu, Zhe and Ye, Xiaoqing and Han, Wenhua and Pan, Yifeng and Han, Junyu and Zhao, Hengshuang}, |
| journal = {arXiv preprint}, |
| year = {2026} |
| } |
| ``` |
|
|
| ## License |
|
|
| Released under the MIT License. |
|
|