AAMAS Submission - 995: Mixed-Initiative Human-Robot Teaming under Suboptimality with Online Bayesian Adaptation
- numpy (version 1.21.2)
- matplotlib (version 3.6.2)
- gym (version 0.26.2)
- pygame (version 2.5.0)
- scipy (version 1.9.0)
- R packages required for statistical analysis (can be installed inside a conda env.)
- Tested on Python version (3.9.16)
-
frozen_lake:
-
data_analysis: Contains R code (used in analyzing data from human-subjects experiments)
(Note that the csv files of the user data are not included).
-
img: Images used in rendering the Frozen Lake Domain.
-
plots: Files used to generate plots for the paper (csv files not included).
-
frozen_lake_env.py
: Implementation of the Frozen Lake domain (Adapted from Open AI Gym). -
frozen_lake_interface.py
: Pygame interface for Frozen Lake. -
frozen_lake_map.py
: Maps used in the user study and for simulation experiments. -
run_user_study.py
: Main script used for our human-subject experiments.
-
-
pomcp_solvers: Class definitions for running the POMCP solver variants
dynamic_users.py
: Simulated human model where users latent states change over time.human_action_node.py
: Defines the human action node used in the POMCP search.robot_action_node.py
: Defines the robot action node used in the POMCP search.root_node.py
: Defines the root node used in the POMCP search.simulated_human.py
: Defines the static human model.solver.py
: Defines the POMCP search routine.
-
simulated_human_experiments:
ba_pomcp.py
: Main script to run bayes-pomcp. If the parameterupdate_belief=False
in the main function, then it runs the regular POMCP.evaluate_heuristics.py
: Runs the heuristic policies with different simulated human models (HeuristicAgent=1
indicates the interrupt agent, andHeuristicAgent=2
indicates the take-control agent).utils.py
: Miscellaneous functions.
-
visualize_rollouts.py
: Utility file to visualize rollouts from human interaction data (from the user study), or from simulated human models.
-
Running the interface: To try out our frozen lake interface, please run the following from the
frozen_lake_baselines
folder:python frozen_lake/run_user_study.py
-
To run the simulation experiments, you need to set appropriate latent parameters for the human models in the
simulated_human_experiments/ba_pomcp.py
:- For static users with varying expertise (in the paper), we set the
epsilon_vals = [0.2, 0.4, 0.6, 0.8]
andtrue_trust=[(75,25)]
(the beta parameter). - For static users with varying compliance (in the paper), we set the
true_trust=[(20,80), (40,60), (60,40), (80,20)]
, andepsilon_vals=0.5
. - We average our results across three seeds (0,2,4) on five maps (4,5,7,10,12).
- To run the same for POMCP, set
update_belief=False
in the main function insimulated_human_experiments/ba_pomcp.py
- To run the same with heuristics, use
simulated_human_experiments/evaluate_heuristics.py
with the same parameters.
- For static users with varying expertise (in the paper), we set the
Lee, Joshua, et al. "Getting to know one another: Calibrating intent, capabilities and trust for human-robot collaboration." 2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2020. [TICC-MCP Github Repo]