Efficient Robotic Object Search via HIEM: Hierarchical Policy Learning with Intrinsic-Extrinsic Modeling
This is the source code for our HIEM framework and the baseline methods we mentioned in the paper.
Our code is developed and tested under the following dependencies:
- python==2.7.15
- scipy==1.2.0
- numpy==1.15.4
- tensorflow==1.6.0
- tf Slim
- opencv==3.2.0-dev
Before running the code, please specify the path to the code directory in the config.json
.
Download our pre-processed data sourced from House3D and extract here for our robotic object search task.
Download our pre-trained models and put them in the corresponding code directories for training and/or evaluating our method.
To train our model HIEM
in the paper, run this command:
# Specify the parameters in HIEM/train.sh,
# and from HIEM/
./train.sh
or
# From HIEM/
python train.py \
--load_model=True \
--default_scenes=<enviroments_to_train> \
--default_targets=<target_objects_to_train> \
--pretrained_model_path=${PATH_TO_PRETRAINED_MODEL} \
--model_path=${PATH_TO_MODEL}
where the pretrained_model_path
is ../h-DQN/result*_mt_for_pretrain/model
and the environments and their target objects for training can be found in readme
.
To train other baseline methods mentioned in the paper, run the same command from the corresponding directories.
To evaluate our method HIEM
for the robotic object search task on House3D,
- run the command,
# From HIEM/
CUDA_VISIBLE_DEVICES=-1 python evaluate.py \
--max_episodes=1 \
--load_model=True \
--model_path="result1_mt_pretrain/model" \
--evaluate_file='../random_method/1s6t_1.txt' \
--default_scenes='5cf0e1e9493994e483e985c436b9d3bc' \
--default_targets='music' \
--default_targets='television' \
--default_targets='table' \
--default_targets='stand' \
--default_targets='dressing_table' \
--default_targets='heater' \
to reproduce the results of our method on the environment 1
as follows,
Method | SR | AS / MS | SPL | AR |
---|---|---|---|---|
HIEM | 1.00 | 41.18 / 25.63 | 0.72 | 0.70 |
To evaluate other environments and target objects, change model_path
, evaluate_file
, default_scenes
and default_targets
accordingly.
To evaluate other baseline methods, run the same command from the corresponding directories.