{"id":27733433,"url":"https://github.com/alejandromllo/action_flow_matching","last_synced_at":"2026-02-23T21:49:46.498Z","repository":{"id":288767416,"uuid":"969124643","full_name":"AlejandroMllo/action_flow_matching","owner":"AlejandroMllo","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-19T12:52:35.000Z","size":1,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T17:48:06.835Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlejandroMllo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-19T12:50:50.000Z","updated_at":"2025-04-19T12:52:39.000Z","dependencies_parsed_at":"2025-04-20T14:32:03.538Z","dependency_job_id":null,"html_url":"https://github.com/AlejandroMllo/action_flow_matching","commit_stats":null,"previous_names":["alejandromllo/action_flow_matching"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlejandroMllo%2Faction_flow_matching","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlejandroMllo%2Faction_flow_matching/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlejandroMllo%2Faction_flow_matching/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlejandroMllo%2Faction_flow_matching/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlejandroMllo","download_url":"https://codeload.github.com/AlejandroMllo/action_flow_matching/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251315532,"owners_count":21569821,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-28T12:43:08.385Z","updated_at":"2026-02-23T21:49:46.492Z","avatar_url":"https://github.com/AlejandroMllo.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Action Flow Matching (AFM)\n\nCode for the paper **\"Action Flow Matching for Continual Robot Learning\"** presented at Robotics: Science and Systems (RSS) 2025.\n\n[![View on RSS](https://img.shields.io/badge/Read%20Paper-RSS%202025-blue?logo=robotics\u0026style=flat)](https://www.roboticsproceedings.org/rss21/p026.html)\n[![View on arXiv](https://img.shields.io/badge/Read%20Paper-arXiv%3A2504.18471-red?logo=arxiv\u0026style=flat)](https://arxiv.org/abs/2504.18471)\n[![View on Hugging Face](https://img.shields.io/badge/Data%20%26%20Models-Hugging%20Face-yellow?logo=huggingface\u0026style=flat)](https://huggingface.co/AlejandroMllo/action_flow_matching)\n\n\n![Overview](./assets/overview.jpg)\n\nAFM enables efficient, non-episodic, online robot model refinement. AFM adjusts the planned actions seeking to reduce the gap between the intended and realized/actual state transitions.\n\n---\n\n## Table of Contents\n\n* [Installation](#installation)\n\n  * [Conda Environment Setup](#conda-environment-setup)\n  * [Dependencies](#dependencies)\n\n* [Data and Pre-trained Weights](#data-and-pre-trained-weights)\n\n\n* [Experiment Execution](#experiment-execution)\n\n\n* [Citation](#citation)\n\n* [Contact](#contact)\n\n---\n\n## Installation\n\n### Clone the Repository\n\nBefore setting up the environment, clone this repository and navigate to the root directory:\n\n```bash\ngit clone https://github.com/AlejandroMllo/action_flow_matching.git\ncd action_flow_matching\n```\n\n### Conda Environment Setup\n\nWe recommend creating a dedicated Conda environment for this project.\n\n1. **Create the environment:**\n\n   ```bash\n   conda create -n afm python=3.10.16 -y\n   ```\n\n2. **Activate the environment:**\n\n   ```bash\n   conda activate afm\n   ```\n\n### Dependencies\n\nInstall required Python packages:\n\n```bash\npip install -r requirements.txt\n```\n\n---\n\n## Data and Pre-trained Weights\n\nAll required datasets and pre-trained model weights are hosted on Hugging Face (https://huggingface.co/AlejandroMllo/action_flow_matching):\n\n1. **Install Hugging Face Hub CLI:**\n\n   ```bash\n   pip install huggingface_hub\n   ```\n\n2. **Download Models:** From the project's root, type: \n\n   ```bash\n   hf download AlejandroMllo/action_flow_matching --exclude data/* --local-dir .\n   ```\n\n3. **[Optional] Download Dataset:**\n\n   ```bash\n   hf download AlejandroMllo/action_flow_matching --exclude artifacts/* --local-dir .\n   ```\n\nAfter downloading the pretrained checkpoints and (optionally) the datasets, your project root should look like:\n\n```\n.\n├── .git/\n├── .gitignore\n├── README.md\n├── artifacts/\n│   └── ugv/\n│       ├── afm/\n│       │   └── latest_model.pth\n│       └── dynamics/\n│           ├── model_0\n│           ├── model_1\n│           ├── model_2\n│           ├── model_3\n│           └── model_4\n├── assets/\n├── data/\n│   └── ugv/\n│       ├── afm_data_dubins.pt\n│       ├── ugv_transition_dynamics_delta.csv\n│       └── ugv_transition_dynamics_val_delta.csv\n├── requirements.txt\n├── results/         # If you already have any\n└── src/\n```\n\n---\n\n## Experiment Execution\n\nRun the experiments from the `continual_dynamics_learning.py` script (note that you need to navigate to `/src`):\n\n```bash\ncd src/\npython continual_dynamics_learning.py\n```\nThe results will be automatically saved at the same level of the `/src` directory in the `/results` folder.\n\n## Citation\n\nIf you use this code, please cite our paper:\n\n```bibtex\n@INPROCEEDINGS{Murillo-GonzálezA-RSS-25, \n    AUTHOR    = {Alejandro Murillo-González AND Lantao Liu}, \n    TITLE     = {{Action Flow Matching for Continual Robot Learning}}, \n    BOOKTITLE = {Proceedings of Robotics: Science and Systems}, \n    YEAR      = {2025}, \n    ADDRESS   = {Los Angeles, CA, USA}, \n    MONTH     = {June}, \n    DOI       = {10.15607/RSS.2025.XXI.026} \n}\n```\n\n## Contact\n\nFor questions or issues, please contact:\n\n* Alejandro Murillo-Gonzalez: [almuri@iu.edu](mailto:almuri@iu.edu)\n\nFeel free to open GitHub issues or pull requests for contributions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falejandromllo%2Faction_flow_matching","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falejandromllo%2Faction_flow_matching","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falejandromllo%2Faction_flow_matching/lists"}