Skip to content

zdrtx/cs344m

Repository files navigation

=================================
CS344M Final Project - "HotSpots"
Steven Rapp & Zach Ritter
2D Simulator
=================================
Our semester research project is based on the UvA Trilearn 2003 Base code.
We implemented and tweaked the force fields introduced in a class reading
assignment, "An Architecture for Action Selection in Robotic Soccer" by Stone
and McAllestar.  Additionally, we created some more force fields we felt were
beneficial in the scope of a full soccer game that weren't already covered
in the paper's exploration of the keepaway task.  Finally, pulling some
inspiration from the papers on "Ant-like Agents", we implemented a coach that
kept track of player and ball positions throughout a match, identified key
offensive and defensive locations, and relayed the information to players so
they could create appropriate force fields. The main focus of our research was
to improve the positioning of players without the ball.


======================
Execution Instructions
======================
We've modified the start.sh script to run with just zero or one arguments.
You can provide a specific host machine name as the single argument and the
script will connect our team to the aforementioned host.  If no parameters are
used, the script will default to "localhost" as the intended host machine.  Our
team name has been hardcoded as "HotSpots", so you will run into issues if you
attempt to play our team against itself without modifying the start script.

Here is the format of the execution instructions:

	>	./start.sh <hostname>


==================
Replay Information
==================
The replay demonstrates a full game against UvA Trilearn 2003 Base code.
Our log is named "HotSpots_vs_UvA_Base_2003.rcg", and it is found in the src
directory. The results of the game were 2-4 (we lost). Two things to notice:
(1) our three defenders congregate in front of our goalie box because the ball
frequently travels through there, and (2) our offense avoids the center of the field
because the opposing defense is typically found in the middle.


======================
Code Modification List
======================
The following files have been modified during our research:

	start.sh
	src/BasicCoach.h
	src/BasicCoach.cpp
	src/Player.h
	src/PlayerTeams.cpp
	src/SenseHandler.cpp
	src/WorldModel.h
	src/WorldModel.cpp


=============
Code Overview
=============
start.sh
	* Modified parameters to fit with requirements of project description

src/BasicCoach.h
	* Added additional function signatures to be used in BasicCoach.cpp

src/BasicCoach.cpp
	* Added tracking capabilities for monitoring opponent player and ball
		positions throughout a match
	* Added identification process of high traffic areas as hotspots
	* Added communication capabilities to send hotspot info to players

src/Player.h
	* Added additional function signatures to be used in PlayerTeams.cpp

src/PlayerTeams.cpp
	* Modified the action selection portion (deMeer5()) to be similar
		to Rapp's assignment 4 action selection (still not great)
	* Added force field calculations
	* Left goalie behavior unchanged
	
src/SenseHandler.cpp
	* Modified analyzeCoachMessage function to handle messages sent by our
		modified coach, detailing hotspot locations. This information is stored
    in the world model.

src/WorldModel.h
	* Added additional function signatures to be used in WorldModel.cpp
					
src/WorldModel.cpp
	* Added functions to allow a player to store and retrieve hotspot information 
  communicated by the coach.

Releases

No releases published

Packages

No packages published