Skip to content

Commit

Permalink
Updated readme, added journal paper
Browse files Browse the repository at this point in the history
  • Loading branch information
mds1 committed Aug 13, 2017
1 parent 3d91de4 commit 2bd3a7b
Show file tree
Hide file tree
Showing 62 changed files with 2,767 additions and 6 deletions.
220 changes: 220 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2

## Intermediate documents:
*.dvi
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf

## Generated if empty string is given at "Please type another file name for output:"
.pdf

## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bcf
*.blg
*-blx.aux
*-blx.bib
*.run.xml

## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync

## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa

# achemso
acs-*.bib

# amsthm
*.thm

# beamer
*.nav
*.pre
*.snm
*.vrb

# changes
*.soc

# cprotect
*.cpt

# elsarticle (documentclass of Elsevier journals)
*.spl

# endnotes
*.ent

# fixme
*.lox

# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm

#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R

# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs

# gnuplottex
*-gnuplottex-*

# gregoriotex
*.gaux
*.gtex

# hyperref
*.brf

# knitr
*-concordance.tex
# TODO Comment the next line if you want to keep your tikz graphics files
*.tikz
*-tikzDictionary

# listings
*.lol

# makeidx
*.idx
*.ilg
*.ind
*.ist

# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*

# minted
_minted*
*.pyg

# morewrites
*.mw

# nomencl
*.nlo

# pax
*.pax

# pdfpcnotes
*.pdfpc

# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd

# scrwfile
*.wrt

# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/

# pdfcomment
*.upa
*.upb

# pythontex
*.pytxcode
pythontex-files-*/

# thmtools
*.loe

# TikZ & PGF
*.dpth
*.md5
*.auxlock

# todonotes
*.tdo

# easy-todo
*.lod

# xindy
*.xdy

# xypic precompiled matrices
*.xyc

# endfloat
*.ttt
*.fff

# Latexian
TSWLatexianTemp*

## Editors:
# WinEdt
*.bak
*.sav

# Texpad
.texpadtmp

# Kile
*.backup

# KBibTeX
*~[0-9]*

# auto folder when using emacs and auctex
/auto/*

# expex forward references with \gathertags
*-tags.tex
19 changes: 13 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
# Path Planning
# Hierarchical D* Lite

Hierarchical D* Lite (HD*) is a real-time path planning algorithm for use in unknown environments. It first plans a coarse path, then refines it to improve path quality.
Hierarchical D* Lite (HD*) is a real-time path planning algorithm for use in unknown environments. It first plans a coarse path, then refines it to improve path quality. This algorithm was developed by Matt Solomon under Dr. Huan Xu at the University of Maryland.

## How to Use :
## Getting Started

To run HD\*, run main_hdstar.py. Run main_dstar.py if you want to use normal D\* Lite (this is good for finding the optimal path on a given map). Once either of those functions are run, it imports config_user.py, config_program.py, and all_functions.py
To run HD\*, run main_hdstar.py. Alternativel, run main_dstar.py if you want to use normal D\* Lite (this is good for finding the optimal path on a given map). Be sure that you are using Python 2.

## User Settings

In config_user.py, you can modify the settings that affect oepration. Each variable is explained below.
- `testingMode`: Suppresses figure generation, outputs from main_hdstar.py (or main_dstar.py) are not printed.
- `makeFigure`: When `True`, the final path and environment is displayed upon completion.
- `makeMovie`: When `True`, the figure of then current path and environment is saved after each iteration, and at the end combined to create a movie.
- `makeMovie`: When `True`, the figure of then current path and environment is saved after each iteration, and at the end combined to create a movie.
- `startWithEmptyMap`: When `True`, the agent (UAV) has no initial knowledge of the environment. When `False`, the agent is aware of the random fixed individual obstacles (FIO) and fixed rectangular obstacles (FRO). Obstacle configuration is explained more later.
- `makeRandObs`: When `True`, additional random obstacles are generated during each iteration.
- `minObs, maxObs`: Upper and lower bounds on the number of random obstacles generated during each iteration.
Expand Down Expand Up @@ -44,7 +46,7 @@ In config_user.py, you can modify the settings that affect oepration. Each varia


Worth noting is the default approach is to create splines to smooth out the straight line paths to generate more realistic paths. If the splines are not desired, the can be turned off by commenting out `path = fcn.CatmullRomSpline(path)` in main_hdstar.py. When main_hdstar.py is ran, config_user.py is imported. This function sets up obstacles, figures, etc. You generally will not need to edit this function, but there a few things you can change here.
- Modify the approach used to choose the next goal (when there are multiple goals) beginning at the line where `hyp = []` is declared. Currently, the goal with the shortest Euclidean distance from the start location is used.
- Modify the approach used to choose the next goal (when there are multiple goals) beginning at the line where `hyp = []` is declared. Currently, the goal with the shortest Euclidean distance from the start location is used.
- If changing this, you also need to change the section beginning at `if len(gl.goals) > 1:` in main_hdstar.py
- Under the comment `# Generating random fixed obstacles` is the line `rLoc = fcn.rectObs(newXFixed, newYFixed, newZFixed, 5,5,5)`. The 5,5,5 portion is what configures the fixed random obstacles to be 5x5x5. So modify this line if you want to change those dimensions.
- Plot setting can be modified under the comment `# Configure plot settings`
Expand All @@ -56,3 +58,8 @@ The last imported file is all_functions.py, which contains all the functions nee
3. The distance travelled since the last replan equals half of the refinement distance

Regardless of which condition occurs, a new path is planned. The process is repeated until the goal is reached.

## Authors

* **Matt Solomon** - *Algorithm design and main developer* - [Github](https://github.com/mds1)

Loading

0 comments on commit 2bd3a7b

Please sign in to comment.