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}}
![]() |
![]() |
![]() |
![]() |
| 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 |
conda env create -f environment.yml
conda activate DRCTo 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-
--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 is100. -
--observations: Set the number of observations. Default is1. -
--sigma: Set the value of Sigma. Default is0.5. -
--mu: Set the mu value. Default is[0.0, 0.0]. -
--max_steps: Set the maximum number of steps. Default is1000. -
--num_trajs: Set the number of trajectories. Default is500. -
--num_vis: Set the number of vis. Default is500. -
--T: Set the T value. Default is2.0. -
--dt: Set the dt value. Default is0.05.
To run the script, use the following command:
python src/vis.py --Experiment "1" --Name "log/DRExp1" --Visualization-
--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.



