From 5923ab98e83326db4383f18d7f4077e84d8d6001 Mon Sep 17 00:00:00 2001 From: Matthew Hausknecht <matthew.hausknecht@gmail.com> Date: Tue, 22 Mar 2016 12:44:04 -0500 Subject: [PATCH] Removed unum from connectToServer function. --- bin/Trainer.py | 7 +++---- doc/manual.pdf | Bin 291224 -> 291204 bytes doc/manual.tex | 4 ++-- example/communication_agent.cpp | 11 +++++------ example/communication_agent.py | 2 +- example/example_high_level_random_agent.py | 2 +- example/hfo_example_agent.cpp | 5 ++--- example/hfo_example_agent.py | 2 +- example/high_level_random_agent.cpp | 3 +-- example/low_level_random_agent.cpp | 3 +-- example/mid_level_dribble_agent.cpp | 3 +-- example/mid_level_kick_agent.cpp | 3 +-- example/mid_level_move_agent.cpp | 3 +-- example/passing_agents.sh | 4 ++-- hfo/hfo.py | 9 +++------ hfo/hfo_c_wrapper.h | 3 +-- src/HFO.cpp | 6 ++++-- src/HFO.hpp | 5 +++-- src/agent.cpp | 4 ++++ src/agent.h | 1 + 20 files changed, 38 insertions(+), 42 deletions(-) diff --git a/bin/Trainer.py b/bin/Trainer.py index 13d4117..5e59b54 100755 --- a/bin/Trainer.py +++ b/bin/Trainer.py @@ -72,11 +72,10 @@ class Trainer(object): 'teams', 'base') config_dir = os.path.join(binary_dir, 'config/formations-dt') print("Waiting for player-controlled agent %s-%d: config_dir=%s, "\ - "uniform_number=%d, server_port=%d, server_addr=%s, team_name=%s, "\ - "play_goalie=%r" + "server_port=%d, server_addr=%s, team_name=%s, play_goalie=%r" % (self._offenseTeamName if play_offense else self._defenseTeamName, - agent_num, config_dir, agent_ext_num, self._serverPort, "localhost", - team_name, agent_ext_num==1)) + agent_num, config_dir, self._serverPort, "localhost", team_name, + agent_ext_num==1)) if wait_until_join: self.waitOnPlayer(agent_ext_num, play_offense) return None diff --git a/doc/manual.pdf b/doc/manual.pdf index b835c881e9e24a508d168368fa4eab1bc48e5228..b0406b3f8e0e49cb0e4e4a99c3f41ca098d5c02e 100644 GIT binary patch delta 4723 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 B?H>RD delta 4745 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 X1BjI3n3r2|1Rx1FISM5uMNdWw&OYE% diff --git a/doc/manual.tex b/doc/manual.tex index 28f6320..d2deb0a 100644 --- a/doc/manual.tex +++ b/doc/manual.tex @@ -106,7 +106,7 @@ to connect the offensive player:\\ \noindent \verb+Waiting for player-controlled agent base_left-0: +\\ \noindent \verb+ config_dir=HFO/bin/teams/base/config/formations-dt,+\\ -\noindent \verb+ uniform_number=11, server_port=6000, server_addr=localhost,+\\ +\noindent \verb+ server_port=6000, server_addr=localhost,+\\ \noindent \verb+ team_name=base_left, play_goalie=False+\\ By default, the server starts on port 6000, but may be changed as follows:\\ @@ -179,7 +179,7 @@ necessary to specify a \verb+record_dir+ in the \verb+connectToServer+ function:\\ \\ \noindent \verb+std::string record_dir = "log/";+\\ -\noindent \verb+hfo.connectToServer(features, config_dir, unum, port, server_addr,+\\ +\noindent \verb+hfo.connectToServer(features, config_dir, port, server_addr,+\\ \noindent \verb+ team_name, goalie, record_dir);+\\ \section{Randomness} diff --git a/example/communication_agent.cpp b/example/communication_agent.cpp index 84c27aa..f41fddc 100644 --- a/example/communication_agent.cpp +++ b/example/communication_agent.cpp @@ -14,7 +14,6 @@ using namespace hfo; // Server Connection Options. See printouts from bin/HFO. feature_set_t features = HIGH_LEVEL_FEATURE_SET; string config_dir = "bin/teams/base/config/formations-dt"; -int unum = 11; int port = 6000; string server_addr = "localhost"; string team_name = "base_left"; @@ -22,16 +21,16 @@ bool goalie = false; #define PI 3.14159265 int main(int argc, char** argv) { - if (argc > 2) { - unum = atoi(argv[1]); - port = atoi(argv[2]); + if (argc > 1) { + port = atoi(argv[1]); } // Create the HFO environment HFOEnvironment hfo; // Connect to the server and request feature set. See manual for // more information on feature sets. - hfo.connectToServer(features, config_dir, unum, port, server_addr, - team_name, goalie); + hfo.connectToServer(features, config_dir, port, server_addr, + team_name, goalie); + int unum = hfo.getUnum(); for (int episode=0; episode<10; episode++) { int agent_on_ball = 7; status_t status = IN_GAME; diff --git a/example/communication_agent.py b/example/communication_agent.py index d5df038..ce94116 100755 --- a/example/communication_agent.py +++ b/example/communication_agent.py @@ -13,7 +13,7 @@ if __name__ == '__main__': # Connect to the server with the specified # feature set. See feature sets in hfo.py/hfo.hpp. hfo.connectToServer(HIGH_LEVEL_FEATURE_SET, - 'bin/teams/base/config/formations-dt', 11, 6000, + 'bin/teams/base/config/formations-dt', 6000, 'localhost', 'base_left', False) for episode in xrange(10): status = IN_GAME diff --git a/example/example_high_level_random_agent.py b/example/example_high_level_random_agent.py index 9de6048..911d043 100755 --- a/example/example_high_level_random_agent.py +++ b/example/example_high_level_random_agent.py @@ -13,7 +13,7 @@ def main(): # Connect to the server with the specified # feature set. See feature sets in hfo.py/hfo.hpp. hfo.connectToServer(HIGH_LEVEL_FEATURE_SET, - 'bin/teams/base/config/formations-dt', 11, 6000, + 'bin/teams/base/config/formations-dt', 6000, 'localhost', 'base_left', False) for episode in xrange(10): status = IN_GAME diff --git a/example/hfo_example_agent.cpp b/example/hfo_example_agent.cpp index 922a38c..d32271c 100644 --- a/example/hfo_example_agent.cpp +++ b/example/hfo_example_agent.cpp @@ -12,18 +12,17 @@ using namespace hfo; // Server Connection Options. See printouts from bin/HFO. feature_set_t features = LOW_LEVEL_FEATURE_SET; string config_dir = "bin/teams/base/config/formations-dt"; -int unum = 11; int port = 6000; string server_addr = "localhost"; string team_name = "base_left"; -bool goalie = false; +bool goalie = true; int main() { // Create the HFO environment HFOEnvironment hfo; // Connect to the server and request low-level feature set. See // manual for more information on feature sets. - hfo.connectToServer(features, config_dir, unum, port, server_addr, + hfo.connectToServer(features, config_dir, port, server_addr, team_name, goalie); // Play 5 episodes for (int episode=0; episode<5; episode++) { diff --git a/example/hfo_example_agent.py b/example/hfo_example_agent.py index 32a109f..6270f5d 100755 --- a/example/hfo_example_agent.py +++ b/example/hfo_example_agent.py @@ -12,7 +12,7 @@ if __name__ == '__main__': # Connect to the server with the specified # feature set. See feature sets in hfo.py/hfo.hpp. hfo.connectToServer(LOW_LEVEL_FEATURE_SET, - 'bin/teams/base/config/formations-dt', 11, 6000, + 'bin/teams/base/config/formations-dt', 6000, 'localhost', 'base_left', False) for episode in xrange(10): status = IN_GAME diff --git a/example/high_level_random_agent.cpp b/example/high_level_random_agent.cpp index 44c7820..e482b1f 100644 --- a/example/high_level_random_agent.cpp +++ b/example/high_level_random_agent.cpp @@ -12,7 +12,6 @@ using namespace hfo; // Server Connection Options. See printouts from bin/HFO. feature_set_t features = HIGH_LEVEL_FEATURE_SET; string config_dir = "bin/teams/base/config/formations-dt"; -int unum = 11; int port = 6000; string server_addr = "localhost"; string team_name = "base_left"; @@ -29,7 +28,7 @@ int main(int argc, char** argv) { HFOEnvironment hfo; // Connect to the server and request high-level feature set. See // manual for more information on feature sets. - hfo.connectToServer(features, config_dir, unum, port, server_addr, + hfo.connectToServer(features, config_dir, port, server_addr, team_name, goalie); for (int episode=0; episode<10; episode++) { status_t status = IN_GAME; diff --git a/example/low_level_random_agent.cpp b/example/low_level_random_agent.cpp index 517f00e..2dddd38 100644 --- a/example/low_level_random_agent.cpp +++ b/example/low_level_random_agent.cpp @@ -12,7 +12,6 @@ using namespace hfo; // Server Connection Options. See printouts from bin/HFO. feature_set_t features = LOW_LEVEL_FEATURE_SET; string config_dir = "bin/teams/base/config/formations-dt"; -int unum = 11; int port = 6000; string server_addr = "localhost"; string team_name = "base_left"; @@ -52,7 +51,7 @@ int main(int argc, char** argv) { HFOEnvironment hfo; // Connect to the server and request low-level feature set. See // manual for more information on feature sets. - hfo.connectToServer(features, config_dir, unum, port, server_addr, + hfo.connectToServer(features, config_dir, port, server_addr, team_name, goalie); for (int episode=0; episode<10; episode++) { status_t status = IN_GAME; diff --git a/example/mid_level_dribble_agent.cpp b/example/mid_level_dribble_agent.cpp index 0c7aa30..743da74 100644 --- a/example/mid_level_dribble_agent.cpp +++ b/example/mid_level_dribble_agent.cpp @@ -16,7 +16,6 @@ using namespace hfo; // Server Connection Options. See printouts from bin/HFO. feature_set_t features = HIGH_LEVEL_FEATURE_SET; string config_dir = "bin/teams/base/config/formations-dt"; -int unum = 11; int port = 6000; string server_addr = "localhost"; string team_name = "base_left"; @@ -27,7 +26,7 @@ int main(int argc, char** argv) { HFOEnvironment hfo; // Connect to the server and request low-level feature set. See // manual for more information on feature sets. - hfo.connectToServer(features, config_dir, unum, port, server_addr, + hfo.connectToServer(features, config_dir, port, server_addr, team_name, goalie); for (int episode=0; episode<10; episode++) { status_t status = IN_GAME; diff --git a/example/mid_level_kick_agent.cpp b/example/mid_level_kick_agent.cpp index 454f69a..da0dea8 100644 --- a/example/mid_level_kick_agent.cpp +++ b/example/mid_level_kick_agent.cpp @@ -14,7 +14,6 @@ using namespace hfo; // Server Connection Options. See printouts from bin/HFO. feature_set_t features = HIGH_LEVEL_FEATURE_SET; string config_dir = "bin/teams/base/config/formations-dt"; -int unum = 11; int port = 6000; string server_addr = "localhost"; string team_name = "base_left"; @@ -25,7 +24,7 @@ int main(int argc, char** argv) { HFOEnvironment hfo; // Connect to the server and request low-level feature set. See // manual for more information on feature sets. - hfo.connectToServer(features, config_dir, unum, port, server_addr, + hfo.connectToServer(features, config_dir, port, server_addr, team_name, goalie); for (int episode=0; episode < 10; episode++) { status_t status = IN_GAME; diff --git a/example/mid_level_move_agent.cpp b/example/mid_level_move_agent.cpp index b22abec..8f51e53 100644 --- a/example/mid_level_move_agent.cpp +++ b/example/mid_level_move_agent.cpp @@ -13,7 +13,6 @@ using namespace hfo; // Server Connection Options. See printouts from bin/HFO. feature_set_t features = HIGH_LEVEL_FEATURE_SET; string config_dir = "bin/teams/base/config/formations-dt"; -int unum = 11; int port = 6000; string server_addr = "localhost"; string team_name = "base_left"; @@ -24,7 +23,7 @@ int main(int argc, char** argv) { HFOEnvironment hfo; // Connect to the server and request feature set. See manual for // more information on feature sets. - hfo.connectToServer(features, config_dir, unum, port, server_addr, + hfo.connectToServer(features, config_dir, port, server_addr, team_name, goalie); float target_x = .82; float target_y = .9; diff --git a/example/passing_agents.sh b/example/passing_agents.sh index e818000..ee04f93 100755 --- a/example/passing_agents.sh +++ b/example/passing_agents.sh @@ -2,9 +2,9 @@ ./bin/HFO --offense-agents=2 --no-sync & sleep 5 -./example/communication_agent 7 6000 & +./example/communication_agent 6000 & sleep 5 -./example/communication_agent 11 6000 & +./example/communication_agent 6000 & # The magic line # $$ holds the PID for this script diff --git a/hfo/hfo.py b/hfo/hfo.py index aeedf70..4021761 100644 --- a/hfo/hfo.py +++ b/hfo/hfo.py @@ -52,7 +52,7 @@ hfo_lib.HFO_new.restype = c_void_p hfo_lib.HFO_del.argtypes = [c_void_p] hfo_lib.HFO_del.restype = None hfo_lib.connectToServer.argtypes = [c_void_p, c_int, c_char_p, c_int, - c_int, c_char_p, c_char_p, c_bool, c_char_p] + c_char_p, c_char_p, c_bool, c_char_p] hfo_lib.connectToServer.restype = None hfo_lib.getStateSize.argtypes = [c_void_p] hfo_lib.getStateSize.restype = c_int @@ -85,7 +85,6 @@ class HFOEnvironment(object): def connectToServer(self, feature_set=LOW_LEVEL_FEATURE_SET, config_dir='bin/teams/base/config/formations-dt', - uniform_number=11, server_port=6000, server_addr='localhost', team_name='base_left', @@ -97,16 +96,14 @@ class HFOEnvironment(object): feature_set: High or low level state features config_dir: Config directory. Typically HFO/bin/teams/base/config/ - uniform_number: player's uniform number. server_port: port to connect to server on server_addr: address of server team_name: Name of team to join. play_goalie: is this player the goalie record_dir: record agent's states/actions/rewards to this directory """ - hfo_lib.connectToServer(self.obj, feature_set, config_dir, uniform_number, - server_port, server_addr, team_name, play_goalie, - record_dir) + hfo_lib.connectToServer(self.obj, feature_set, config_dir, server_port, + server_addr, team_name, play_goalie, record_dir) def getStateSize(self): """ Returns the number of state features """ diff --git a/hfo/hfo_c_wrapper.h b/hfo/hfo_c_wrapper.h index 8d4c774..422d7c8 100644 --- a/hfo/hfo_c_wrapper.h +++ b/hfo/hfo_c_wrapper.h @@ -12,13 +12,12 @@ extern "C" { void connectToServer(hfo::HFOEnvironment *hfo, hfo::feature_set_t feature_set, char* config_dir, - int uniform_number, int server_port, char* server_addr, char* team_name, bool play_goalie, char* record_dir) { - return hfo->connectToServer(feature_set, config_dir, uniform_number, + return hfo->connectToServer(feature_set, config_dir, server_port, server_addr, team_name, play_goalie, record_dir); } diff --git a/src/HFO.cpp b/src/HFO.cpp index 33dc244..04565cb 100644 --- a/src/HFO.cpp +++ b/src/HFO.cpp @@ -31,7 +31,6 @@ HFOEnvironment::~HFOEnvironment() { void HFOEnvironment::connectToServer(feature_set_t feature_set, std::string config_dir, - int uniform_number, int server_port, std::string server_addr, std::string team_name, @@ -40,7 +39,6 @@ void HFOEnvironment::connectToServer(feature_set_t feature_set, agent->setFeatureSet(feature_set); rcsc::PlayerConfig& config = agent->mutable_config(); config.setConfigDir(config_dir); - config.setPlayerNumber(uniform_number); config.setPort(server_port); config.setHost(server_addr); config.setTeamName(team_name); @@ -102,6 +100,10 @@ std::string HFOEnvironment::hear() { return agent->getHearMsg(); } +int HFOEnvironment::getUnum() { + return agent->getUnum(); +} + Player HFOEnvironment::playerOnBall() { return agent->getPlayerOnBall(); } diff --git a/src/HFO.hpp b/src/HFO.hpp index 0b923f4..eff4f3c 100644 --- a/src/HFO.hpp +++ b/src/HFO.hpp @@ -21,7 +21,6 @@ class HFOEnvironment { * * feature_set: High or low level state features * config_dir: Config directory. Typically HFO/bin/teams/base/config/ - * uniform_number: player's uniform number. * server_port: port to connect to server on * server_addr: address of server * team_name: Name of team to join. @@ -30,7 +29,6 @@ class HFOEnvironment { */ void connectToServer(feature_set_t feature_set=HIGH_LEVEL_FEATURE_SET, std::string config_dir="bin/teams/base/config/formations-dt", - int uniform_number=11, int server_port=6000, std::string server_addr="localhost", std::string team_name="base_left", @@ -48,6 +46,9 @@ class HFOEnvironment { virtual void say(const std::string& message); virtual std::string hear(); + // Returns the uniform number of the player + virtual int getUnum(); + // Get the current player holding the ball virtual Player playerOnBall(); diff --git a/src/agent.cpp b/src/agent.cpp index 36bce79..d5608ad 100644 --- a/src/agent.cpp +++ b/src/agent.cpp @@ -154,6 +154,10 @@ Agent::~Agent() { } } +int Agent::getUnum() { + return world().self().unum(); +} + bool Agent::initImpl(CmdLineParser & cmd_parser) { bool result = PlayerAgent::initImpl(cmd_parser); diff --git a/src/agent.h b/src/agent.h index 3e7baca..ca7c6a3 100644 --- a/src/agent.h +++ b/src/agent.h @@ -60,6 +60,7 @@ protected: inline hfo::status_t getGameStatus() { return game_status; } inline const hfo::Player& getPlayerOnBall() { return player_on_ball; } inline const std::string& getHearMsg() { return hear_msg; } + int getUnum(); // Returns the uniform number of the player inline void setFeatureSet(hfo::feature_set_t fset) { feature_set = fset; } inline std::vector<float>* mutable_params() { return ¶ms; } -- 2.24.1