Skip to content

Latest commit

 

History

41 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DR Control

This is the repo for our paper Distributionally Robust Path Integral Control. Please kindly cite our work as following:

@INPROCEEDINGS{10644179,
  author={Park, Hyuk and Zhou, Duo and Hanasusanto, Grani A. and Tanaka, Takashi},
  booktitle={2024 American Control Conference (ACC)}, 
  title={Distributionally Robust Path Integral Control}, 
  year={2024},
  volume={},
  number={},
  pages={1164-1171},
  keywords={System dynamics;Heuristic algorithms;Diffusion processes;Optimal control;Data collection;Trajectory;Complex systems;stochastic optimal control;distributionally robust optimization;path integral method;risk-sensitive control},
  doi={10.23919/ACC60939.2024.10644179}}

Results and Visualizations

DRExp1 RNExp1
DRExp2 RNExp2

Performance of different schemes

Model Scheme Success Rate (%) Arrive Time (s) Mean Std. Dev. 95 prct.
Double Integrator PIC 66 21.30 12.63 44.42
Double Integrator DRPI 96 8.04 2.25 12.32
Unicycle PIC 19 25.89 11.13 44.52
Unicycle DRPI 78 16.94 6.17 28.30

How to Use

Requirement

conda env create -f environment.yml
conda activate DRC

To run the experiments

To run the script, use the following command:

python src/main.py --DR_method "DR NM" --Experiment "1" --Online --seed_value 1 --num_simulation 1 --observations 1

Options:

  • --DR_method: Choose a DR method. Options are "DR NM", "DR GM", and "RN". Default is "DR NM".

    • "DR NM" represents "DRPI Numerical Minimization".
    • "RN" represents "Risk-Neutral PIC".
  • --Experiment: Set the experiment number. Choose between "1" and "2". Default is "1".

    • "1" represents "Input Integrator".
    • "2" represents "Unicycle".
  • --Visualization: If included, this will visualize the path integral algorithm for each simulation.

  • --Online: If included. this will enable online parameter estimation.

  • --seed_value: Set the seed value. Default is not setting seed.

  • --num_simulation: Set the number of simulations. Default is 100.

  • --observations: Set the number of observations. Default is 1.

  • --sigma: Set the value of Sigma. Default is 0.5.

  • --mu: Set the mu value. Default is [0.0, 0.0].

  • --max_steps: Set the maximum number of steps. Default is 1000.

  • --num_trajs: Set the number of trajectories. Default is 500.

  • --num_vis: Set the number of vis. Default is 500.

  • --T: Set the T value. Default is 2.0.

  • --dt: Set the dt value. Default is 0.05.

To visualize the results from logs

To run the script, use the following command:

python src/vis.py --Experiment "1" --Name "log/DRExp1" --Visualization

Options:

  • --Experiment: Choose a model number. Options are "1" and "2". Default is "1".

    • "1" represents "Input Integrator",
    • "2" represents "Unicycle".
  • --Name: Set the file name. Options include "log/DRExp1", "log/DRExp2", "log/RNExp1", and "log/RNExp2". Default is "log/DRExp1".

  • --SAVE_LOG: If included, this will save the figure.

  • --Visualization: If included, this will visualize the whole simulation.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages