

                RANDOM ROADMAP for Win32 README
                -------------------------------


INFORMATION:

	This application can be used to generate a random roadmap for a given scene definition
	and a circular robot. It has two modes:
		- 	Pure Random Sampling
			In this case, a predetermined number of valid samples (configurations) are found
			by randomly sampling the entire scene and running a 'Clear' query each time to ensure
			the sample is not in obstacle space.
		-	Random Subdivision Sampling
			In order to densely sample constrained spaces, a sliding window approach may be used.
			In this case, a square window is moved across the scene. At each position, the pure random 
			sampling technique is used as defined above. 

EXTERNAL DEPENDENCIES:
		-	tinyXml					http://www.grinninglizard.com/tinyxmldocs/index.html
		- 	ANN win-32 binaries		http://www.cs.umd.edu/~mount/ANN/
		-	Glut win-32 binaries	https://www.opengl.org/resources/libraries/glut/

COMPILING/INSTALLATION:

    o  Only Win-32 is supported because of the dependencies.

    o  Simply open the project in Visual Studio project and build the solution.
	
	o  The executable can be found in the Exe folder.

USAGE:
	
	Command Line
		-h or --help 			Show help message
		-file 					Scene specification file
		-samples 				Number of valid samples
		-r 						Radius of robot
		-minx 					Minimum x-coordinate of search domain
		-miny					Minimum y-coordinate of search domain
		-maxx 					Maximum x-coordinate of search domain
		-maxy					Maximum y-coordinate of search domain
		-subdivisionSampling 	1 for uniform subdivision sampling. 0 for pure random sampling	
	
EXAMPLES:

    o  Examples/bottleneck.xml
		-	randomRoadmap.exe -file ../Examples/bottleneck.xml -samples 10000 -r 0.05 
			-minx -30 -maxx 30 -miny -30 -maxy 30 -subdivisionSampling 1
			
    o  Examples/boeing.xml
		-	randomRoadmap.exe -file ../Examples/boeing.xml -samples 10000 -r 0.05 
			-minx 0 -maxx 43 -miny -7 -maxy 7 -subdivisionSampling 0
			
    o  Examples/tradeshow.xml
		-	randomRoadmap.exe -file ../Examples/tradeshow.xml -samples 10000 -r 0.05 
			-minx -65 -maxx 65 -miny -65 -maxy 65 -subdivisionSampling 0


TODO's:

    o  Quad tree subdivision.

    o  Use linked list instead of adjacency matrix.
	
	o  Nearest neighbor culling.
	
	o  Obstacle culling while performing link queries.
			
	o  Medial axis sampling for symmetrical scenes.
	
	   
 AUTHOR:
		Sahil Narang
		Department of Computer Science
		UNC Chapel Hill
 		E-mail: sahil@cs.unc.edu
		http://cs.unc.edu/~sahil/



