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.shEither see dc2g.ipynb or run this script to open an interactive notebook in the virtualenv with dependencies installed already:
./notebook.shThis will initialize the environment and run an episode with a DC2G planner:
./example.shBing Maps Driveway Dataset:
data/datasets/driveways_bing_iros19contains.pngs 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_worksholds thecheckpoint,export.index, andexport.metafiles needed to load the network in Python. We also includeoptions.jsonto see hyperparameters used to train to generate this network.
DC2G Planner Code:
dc2g/plannerscontains several planners, all of which inherit fromPlanner.py.
Environment Evaluation code:
dc2g/run_episode.pyinstantiates the environment and a planner and runs one episodedc2g/run_experiment.pyinstantiates the environment and runs many episodes with many planners to compute statistics
Environment code:
gym-minigridfollows 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.pyand gives extra capabilities to build up a map of the env over time.
Jupyter notebook:
dc2g.ipynbcan be viewed in a browsernotebook.shopens a local Jupyter notebook instance so you can interactively exploredc2g.ipynbin 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.pyworks - Confirm
run_experiment.pyworks - Add instructions for generating masked semantic/c2g images
- Add scripts to generate plots from paper
- Pull our custom
slam.pycode out ofgym-minigrid-- seedriveway_env.pywhich subclassesMiniGridEnvfromgym-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}
}
