Planning Beyond the Sensing Horizon Using a Learned Context
Michael Everett, Justin Miller, Jonathan P. How
IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2019
Paper: https://arxiv.org/abs/1908.09171
Video: https://youtu.be/yVlnbqEFct0
Note: This repo contains the following code that was approved for release:
- Bing Maps Driveway Dataset (~80 houses)
- Pre-trained cost-to-go estimation network
- Gridworld evaluation environment (built on gym-minigrid)
- Jupyter Notebook to explain code
git clone --recursive <this repo>
cd dc2g
./install.sh
Either see dc2g.ipynb
or run this script to open an interactive notebook in the virtualenv with dependencies installed already:
./notebook.sh
This will initialize the environment and run an episode with a DC2G planner:
./example.sh
Bing Maps Driveway Dataset:
data/datasets/driveways_bing_iros19
contains.png
s of the 80 houses split into train/val/test, in 3 formats:raw
: satellite imagefull_semantic
: same size as satellite image, but each pixel colored by semantic classfull_c2g
: same size as satellite image, but each pixel colored by grayscale intensity corresponding to cost-to-go to door pixels. Non-traversable terrain (grass) is colored red.
data/scripts
: contains various python scripts to compute cost-to-go, apply masks, etc. to generate the training datasets
Pre-trained cost-to-go estimation network:
data/trained_networks/driveways_bing_iros19_full_test_works
holds thecheckpoint
,export.index
, andexport.meta
files needed to load the network in Python. We also includeoptions.json
to see hyperparameters used to train to generate this network.
DC2G Planner Code:
dc2g/planners
contains several planners, all of which inherit fromPlanner.py
.
Environment Evaluation code:
dc2g/run_episode.py
instantiates the environment and a planner and runs one episodedc2g/run_experiment.py
instantiates the environment and runs many episodes with many planners to compute statistics
Environment code:
gym-minigrid
follows the OpenAI Gym API (env.step
,env.reset
, etc.) and the particular python script of interest here isgym-minigrid/gym_minigrid/envs/slam.py
, which inherits fromgym-minigrid/gym_minigrid/minigrid.py
and gives extra capabilities to build up a map of the env over time.
Jupyter notebook:
dc2g.ipynb
can be viewed in a browsernotebook.sh
opens a local Jupyter notebook instance so you can interactively exploredc2g.ipynb
in the virtualenv with proper dependencies installed
- Get OraclePlanner working again
- Get FrontierPlanner working again
- Get DC2GPlanner working again
- Get DC2GRescalePlanner working again
- Create Jupyter notebook to explain code
- Confirm
run_episode.py
works - Confirm
run_experiment.py
works - Add instructions for generating masked semantic/c2g images
- Add scripts to generate plots from paper
- Pull our custom
slam.py
code out ofgym-minigrid
-- seedriveway_env.py
which subclassesMiniGridEnv
fromgym-minigrid-mit
(python 2.7 compatible version of gym-minigrid)
@inproceedings{Everett19_IROS,
Address = {Macau, China},
Author = {Michael Everett and Justin Miller and Jonathan P. How},
Booktitle = {IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
Date-Modified = {2019-06-22 06:18:08 -0400},
Month = {November},
Title = {Planning Beyond The Sensing Horizon Using a Learned Context},
Year = {2019}
}