{"id":17898736,"url":"https://github.com/mrvplusone/steady","last_synced_at":"2026-01-17T06:55:11.132Z","repository":{"id":43490388,"uuid":"390604740","full_name":"MrVPlusOne/STEADY","owner":"MrVPlusOne","description":"Simultaneous State Estimation and Dynamics Learning from Indirect Observations.","archived":false,"fork":false,"pushed_at":"2023-04-04T04:43:42.000Z","size":20725,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-08T19:11:55.102Z","etag":null,"topics":["expectation-maximization-algorithm","machine-learning","particle-filters","probabilistic-inference","stochastic-dynamics"],"latest_commit_sha":null,"homepage":"","language":"Julia","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/MrVPlusOne.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}},"created_at":"2021-07-29T04:57:05.000Z","updated_at":"2023-04-03T16:58:46.000Z","dependencies_parsed_at":"2024-10-28T16:18:02.781Z","dependency_job_id":null,"html_url":"https://github.com/MrVPlusOne/STEADY","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrVPlusOne%2FSTEADY","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrVPlusOne%2FSTEADY/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrVPlusOne%2FSTEADY/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrVPlusOne%2FSTEADY/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrVPlusOne","download_url":"https://codeload.github.com/MrVPlusOne/STEADY/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246939239,"owners_count":20857922,"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":["expectation-maximization-algorithm","machine-learning","particle-filters","probabilistic-inference","stochastic-dynamics"],"created_at":"2024-10-28T15:38:43.355Z","updated_at":"2025-04-03T05:15:24.407Z","avatar_url":"https://github.com/MrVPlusOne.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# STEADY\n\n_Learning stochastic dynamical systems from noisy and indirect obseravtions._\n\n\u003cimg src=\"STEADY.gif\" width=\"600\"\u003e\n\n\nThis repo contains the source code for the IROS 2022 paper [STEADY: Simultaneous State Estimation and Dynamics Learning from Indirect Observations](https://arxiv.org/abs/2203.01299). \n\n\n## Installing project dependencies\nThis project is written in [Julia](https://julialang.org/) and is tested on both MacOS and Ubuntu. We provide the script [install_linux.py](install_linux.py) to automatically install the binary dependencies on Linux.\n\nWhen running the project for the first time, open the Julia REPL using the command `julia --project`.\nThen, inside the REPL, type `\u003e` followed by `instantiate` to let julia download all dependended packages and perform a precompilation.\n\nFinally, create a file at `\u003cproejct root\u003e/configs/datadir.txt` and use its content to specify the location at which the trained models should be saved. e.g., \n```bash\nmkdir configs; echo \"data\" \u003e configs/datadir.txt\n```\n\n## Training kinodynamic models\nTo start training, inside the Julia REPL, first config the experiment\nsetting by defining a global variable named `script_args`:\n```julia\nscript_args = (\n    scenario=SEDL.RealCarScenario(\"alpha_truck\"),\n    train_method=:EM,\n    gpu_id=0,\n)\n```\nThis specifies that we want to train on the [\"alpha_truck\" dataset](datasets/alpha_truck/) using expectation-maximization (i.e., the STEADY algorithm). `gpu_id=0` means that we want to use the first available GPU (set this to `nothing` if trained on CPU). You can find the full list of configurable parameters along with their acceptable values [here](https://github.com/MrVPlusOne/STEADY/blob/master/scripts/experiments/experiment_common.jl#L13).\n\nWe can then start the training with:\n```julia\ninclude(\"scripts/turn_off_displays.jl\"); # this is only needed when a plot pane is not available. e.g., when running inside an ssh shell.\ninclude(\"scripts/train_models.jl\") # this starts the training\n```\n\nWe also provide the following scripts to reproduce our paper results:\n\n- [baseline_experiments.jl](scripts/experiments/baseline_experiments.jl): Corresponding to the \"Main results\" Section of the paper.\n- [obs_noise_variation.jl](scripts/experiments/obs_noise_variation.jl): The \"Impact of Observation Noise\" Section.\n- [particle_variation.jl](scripts/experiments/particle_variation.jl): The \"Impact of Particle Quantity\" Section.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrvplusone%2Fsteady","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrvplusone%2Fsteady","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrvplusone%2Fsteady/lists"}