From ff93bf5b4dc2b8c9f48a474101e713c2ad158568 Mon Sep 17 00:00:00 2001 From: Will Deinzer Date: Sun, 24 Sep 2023 19:27:20 -0400 Subject: [PATCH 1/8] double wall spacing --- soccer/src/soccer/strategy/agent/position/waller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soccer/src/soccer/strategy/agent/position/waller.cpp b/soccer/src/soccer/strategy/agent/position/waller.cpp index 6919cdb7eb6..4e1c27bbd08 100644 --- a/soccer/src/soccer/strategy/agent/position/waller.cpp +++ b/soccer/src/soccer/strategy/agent/position/waller.cpp @@ -33,7 +33,7 @@ std::optional Waller::get_task(RobotIntent intent, const WorldState rj_geometry::Point mid_point{(goal_center_point) + (ball_dir_vector * min_wall_rad)}; // Calculate the wall spacing - auto wall_spacing = robot_diameter_multiplier_ * kRobotDiameter + kBallRadius; + auto wall_spacing = (robot_diameter_multiplier_ * kRobotDiameter + kBallRadius) * 2; // Calculate the target point rj_geometry::Point target_point{}; From d7e76460ab242e66d3d858a526fa0489093ae138 Mon Sep 17 00:00:00 2001 From: Will Deinzer Date: Tue, 20 Feb 2024 19:20:51 -0500 Subject: [PATCH 2/8] Added position monitoring framework --- rj_msgs/msg/AgentState.msg | 1 + soccer/src/soccer/strategy/agent/position/defense.cpp | 4 ++++ soccer/src/soccer/strategy/agent/position/defense.hpp | 2 ++ soccer/src/soccer/strategy/agent/position/goal_kicker.cpp | 4 ++++ soccer/src/soccer/strategy/agent/position/goal_kicker.hpp | 2 ++ soccer/src/soccer/strategy/agent/position/goalie.cpp | 4 ++++ soccer/src/soccer/strategy/agent/position/goalie.hpp | 2 ++ soccer/src/soccer/strategy/agent/position/offense.cpp | 4 ++++ soccer/src/soccer/strategy/agent/position/offense.hpp | 2 ++ soccer/src/soccer/strategy/agent/position/penalty_player.cpp | 4 ++++ soccer/src/soccer/strategy/agent/position/penalty_player.hpp | 2 ++ soccer/src/soccer/strategy/agent/position/position.hpp | 3 +++ .../soccer/strategy/agent/position/robot_factory_position.cpp | 2 ++ .../soccer/strategy/agent/position/robot_factory_position.hpp | 2 ++ 14 files changed, 38 insertions(+) diff --git a/rj_msgs/msg/AgentState.msg b/rj_msgs/msg/AgentState.msg index e69de29bb2d..04355828888 100644 --- a/rj_msgs/msg/AgentState.msg +++ b/rj_msgs/msg/AgentState.msg @@ -0,0 +1 @@ +string state \ No newline at end of file diff --git a/soccer/src/soccer/strategy/agent/position/defense.cpp b/soccer/src/soccer/strategy/agent/position/defense.cpp index 78b0ebfb528..32e46a340cc 100644 --- a/soccer/src/soccer/strategy/agent/position/defense.cpp +++ b/soccer/src/soccer/strategy/agent/position/defense.cpp @@ -9,6 +9,10 @@ std::optional Defense::derived_get_task(RobotIntent intent) { return state_to_task(intent); } +string Defense::return_current_state() { + return "Defense" + static_cast(current_state_); +} + Defense::State Defense::update_state() { State next_state = current_state_; // handle transitions between states diff --git a/soccer/src/soccer/strategy/agent/position/defense.hpp b/soccer/src/soccer/strategy/agent/position/defense.hpp index f66ae8c975b..06a4d284c77 100644 --- a/soccer/src/soccer/strategy/agent/position/defense.hpp +++ b/soccer/src/soccer/strategy/agent/position/defense.hpp @@ -35,6 +35,8 @@ class Defense : public Position { void derived_acknowledge_pass() override; void derived_pass_ball() override; void derived_acknowledge_ball_in_transit() override; + string return_current_state() override; + void die() override; void revive() override; diff --git a/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp b/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp index ead8901107b..495a3596aac 100644 --- a/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp +++ b/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp @@ -28,6 +28,10 @@ std::optional GoalKicker::derived_get_task(RobotIntent intent) { return intent; } +string GoalKicker::return_current_state() { + return "GoalKicker"; +} + void GoalKicker::derived_acknowledge_pass() {} void GoalKicker::derived_pass_ball() {} diff --git a/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp b/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp index 7397b9293c5..007b92c4232 100644 --- a/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp +++ b/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp @@ -32,6 +32,8 @@ class GoalKicker : public Position { */ void derived_acknowledge_ball_in_transit() override; + string return_current_state() override; + private: std::optional derived_get_task(RobotIntent intent) override; }; diff --git a/soccer/src/soccer/strategy/agent/position/goalie.cpp b/soccer/src/soccer/strategy/agent/position/goalie.cpp index e91952eac3e..9641b69c7df 100644 --- a/soccer/src/soccer/strategy/agent/position/goalie.cpp +++ b/soccer/src/soccer/strategy/agent/position/goalie.cpp @@ -11,6 +11,10 @@ std::optional Goalie::derived_get_task(RobotIntent intent) { return state_to_task(intent); } +string Goalie::return_current_state() { + return "Goalie"; +} + Goalie::State Goalie::update_state() { // if a shot is coming, override all and go block it WorldState* world_state = last_world_state_; diff --git a/soccer/src/soccer/strategy/agent/position/goalie.hpp b/soccer/src/soccer/strategy/agent/position/goalie.hpp index 4ca34ef8737..875b5cad3b0 100644 --- a/soccer/src/soccer/strategy/agent/position/goalie.hpp +++ b/soccer/src/soccer/strategy/agent/position/goalie.hpp @@ -28,6 +28,8 @@ class Goalie : public Position { void derived_pass_ball() override; void derived_acknowledge_ball_in_transit() override; + string return_current_state() override; + private: // point goalie will aim for when clearing balls const rj_geometry::Point clear_point_{0.0, 4.5}; diff --git a/soccer/src/soccer/strategy/agent/position/offense.cpp b/soccer/src/soccer/strategy/agent/position/offense.cpp index 3c1a6ef680c..463cb1ec172 100644 --- a/soccer/src/soccer/strategy/agent/position/offense.cpp +++ b/soccer/src/soccer/strategy/agent/position/offense.cpp @@ -14,6 +14,10 @@ std::optional Offense::derived_get_task(RobotIntent intent) { return state_to_task(intent); } +string Offense::return_current_state() { + return "Offense" + static_cast(current_state_); +} + Offense::State Offense::update_state() { State next_state = current_state_; // handle transitions between current state diff --git a/soccer/src/soccer/strategy/agent/position/offense.hpp b/soccer/src/soccer/strategy/agent/position/offense.hpp index 705890dc482..e0926257975 100644 --- a/soccer/src/soccer/strategy/agent/position/offense.hpp +++ b/soccer/src/soccer/strategy/agent/position/offense.hpp @@ -36,6 +36,8 @@ class Offense : public Position { void derived_pass_ball() override; void derived_acknowledge_ball_in_transit() override; + string return_current_state() override; + private: bool kicking_{true}; diff --git a/soccer/src/soccer/strategy/agent/position/penalty_player.cpp b/soccer/src/soccer/strategy/agent/position/penalty_player.cpp index 53a2e61a8e8..aa088ab78a4 100644 --- a/soccer/src/soccer/strategy/agent/position/penalty_player.cpp +++ b/soccer/src/soccer/strategy/agent/position/penalty_player.cpp @@ -31,6 +31,10 @@ std::optional PenaltyPlayer::derived_get_task(RobotIntent intent) { return intent; } +string PenaltyPlayer::return_current_state() { + return "PenaltyPlayer"; +} + void PenaltyPlayer::derived_acknowledge_pass() {} void PenaltyPlayer::derived_pass_ball() {} diff --git a/soccer/src/soccer/strategy/agent/position/penalty_player.hpp b/soccer/src/soccer/strategy/agent/position/penalty_player.hpp index ea52e65e477..7a3c30c7ea2 100644 --- a/soccer/src/soccer/strategy/agent/position/penalty_player.hpp +++ b/soccer/src/soccer/strategy/agent/position/penalty_player.hpp @@ -32,6 +32,8 @@ class PenaltyPlayer : public Position { */ void derived_acknowledge_ball_in_transit() override; + void return_current_state() override; + private: std::optional derived_get_task(RobotIntent intent) override; }; diff --git a/soccer/src/soccer/strategy/agent/position/position.hpp b/soccer/src/soccer/strategy/agent/position/position.hpp index 308293d6175..3e8314d3ef0 100644 --- a/soccer/src/soccer/strategy/agent/position/position.hpp +++ b/soccer/src/soccer/strategy/agent/position/position.hpp @@ -75,6 +75,9 @@ class Position { void update_alive_robots(std::vector alive_robots); const std::string get_name(); + //returns the current state of the robot + virtual string return_current_state(); + /** * @brief setter for time_left_ */ diff --git a/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp b/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp index 8f87db3f764..cc607f30fc4 100644 --- a/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp +++ b/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp @@ -120,4 +120,6 @@ void RobotFactoryPosition::die() { current_position_->die(); } void RobotFactoryPosition::revive() { current_position_->revive(); } +string RobotFactoryPosition::return_current_state() { current_position_->return_current_state(); } + } // namespace strategy diff --git a/soccer/src/soccer/strategy/agent/position/robot_factory_position.hpp b/soccer/src/soccer/strategy/agent/position/robot_factory_position.hpp index f5a6aefa827..e9736b2b697 100644 --- a/soccer/src/soccer/strategy/agent/position/robot_factory_position.hpp +++ b/soccer/src/soccer/strategy/agent/position/robot_factory_position.hpp @@ -54,6 +54,8 @@ class RobotFactoryPosition : public Position { void derived_pass_ball() override; void derived_acknowledge_ball_in_transit() override; + string return_current_state() override; + void set_is_done() override; void die() override; void revive() override; From 454af6a617afd86c74d34a469f5c832b1a5e3dac Mon Sep 17 00:00:00 2001 From: Will Deinzer Date: Tue, 20 Feb 2024 19:26:50 -0500 Subject: [PATCH 3/8] Removed wall spacing doubling from tutorial --- soccer/src/soccer/strategy/agent/position/waller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soccer/src/soccer/strategy/agent/position/waller.cpp b/soccer/src/soccer/strategy/agent/position/waller.cpp index 4e1c27bbd08..6919cdb7eb6 100644 --- a/soccer/src/soccer/strategy/agent/position/waller.cpp +++ b/soccer/src/soccer/strategy/agent/position/waller.cpp @@ -33,7 +33,7 @@ std::optional Waller::get_task(RobotIntent intent, const WorldState rj_geometry::Point mid_point{(goal_center_point) + (ball_dir_vector * min_wall_rad)}; // Calculate the wall spacing - auto wall_spacing = (robot_diameter_multiplier_ * kRobotDiameter + kBallRadius) * 2; + auto wall_spacing = robot_diameter_multiplier_ * kRobotDiameter + kBallRadius; // Calculate the target point rj_geometry::Point target_point{}; From 7a0070779d49e65d7bd879a81c45cdf171542e3f Mon Sep 17 00:00:00 2001 From: Will Deinzer Date: Tue, 20 Feb 2024 20:57:38 -0500 Subject: [PATCH 4/8] Fixed strings and compiler errors --- soccer/src/soccer/strategy/agent/position/defense.cpp | 3 ++- soccer/src/soccer/strategy/agent/position/defense.hpp | 3 ++- soccer/src/soccer/strategy/agent/position/goal_kicker.cpp | 2 +- soccer/src/soccer/strategy/agent/position/goal_kicker.hpp | 3 ++- soccer/src/soccer/strategy/agent/position/goalie.cpp | 2 +- soccer/src/soccer/strategy/agent/position/goalie.hpp | 3 ++- soccer/src/soccer/strategy/agent/position/offense.cpp | 2 +- soccer/src/soccer/strategy/agent/position/offense.hpp | 3 ++- soccer/src/soccer/strategy/agent/position/penalty_player.cpp | 2 +- soccer/src/soccer/strategy/agent/position/penalty_player.hpp | 3 ++- soccer/src/soccer/strategy/agent/position/position.cpp | 2 ++ soccer/src/soccer/strategy/agent/position/position.hpp | 3 ++- .../soccer/strategy/agent/position/robot_factory_position.cpp | 2 +- .../soccer/strategy/agent/position/robot_factory_position.hpp | 3 ++- 14 files changed, 23 insertions(+), 13 deletions(-) diff --git a/soccer/src/soccer/strategy/agent/position/defense.cpp b/soccer/src/soccer/strategy/agent/position/defense.cpp index 32e46a340cc..222bab4efe8 100644 --- a/soccer/src/soccer/strategy/agent/position/defense.cpp +++ b/soccer/src/soccer/strategy/agent/position/defense.cpp @@ -1,5 +1,6 @@ #include "defense.hpp" + namespace strategy { Defense::Defense(int r_id) : Position(r_id) { position_name_ = "Defense"; } @@ -9,7 +10,7 @@ std::optional Defense::derived_get_task(RobotIntent intent) { return state_to_task(intent); } -string Defense::return_current_state() { +std::string Defense::return_current_state() { return "Defense" + static_cast(current_state_); } diff --git a/soccer/src/soccer/strategy/agent/position/defense.hpp b/soccer/src/soccer/strategy/agent/position/defense.hpp index 06a4d284c77..5272987ea9a 100644 --- a/soccer/src/soccer/strategy/agent/position/defense.hpp +++ b/soccer/src/soccer/strategy/agent/position/defense.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include @@ -35,7 +36,7 @@ class Defense : public Position { void derived_acknowledge_pass() override; void derived_pass_ball() override; void derived_acknowledge_ball_in_transit() override; - string return_current_state() override; + std::string return_current_state() override; void die() override; diff --git a/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp b/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp index 495a3596aac..2bc5bc8f0be 100644 --- a/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp +++ b/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp @@ -28,7 +28,7 @@ std::optional GoalKicker::derived_get_task(RobotIntent intent) { return intent; } -string GoalKicker::return_current_state() { +std::string GoalKicker::return_current_state() { return "GoalKicker"; } diff --git a/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp b/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp index 007b92c4232..2752d868c2b 100644 --- a/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp +++ b/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include "planning/instant.hpp" #include "planning/planner/motion_command.hpp" @@ -32,7 +33,7 @@ class GoalKicker : public Position { */ void derived_acknowledge_ball_in_transit() override; - string return_current_state() override; + std::string return_current_state() override; private: std::optional derived_get_task(RobotIntent intent) override; diff --git a/soccer/src/soccer/strategy/agent/position/goalie.cpp b/soccer/src/soccer/strategy/agent/position/goalie.cpp index 9641b69c7df..9dcd0b30a96 100644 --- a/soccer/src/soccer/strategy/agent/position/goalie.cpp +++ b/soccer/src/soccer/strategy/agent/position/goalie.cpp @@ -11,7 +11,7 @@ std::optional Goalie::derived_get_task(RobotIntent intent) { return state_to_task(intent); } -string Goalie::return_current_state() { +std::string Goalie::return_current_state() { return "Goalie"; } diff --git a/soccer/src/soccer/strategy/agent/position/goalie.hpp b/soccer/src/soccer/strategy/agent/position/goalie.hpp index 875b5cad3b0..7086f259c1d 100644 --- a/soccer/src/soccer/strategy/agent/position/goalie.hpp +++ b/soccer/src/soccer/strategy/agent/position/goalie.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include @@ -28,7 +29,7 @@ class Goalie : public Position { void derived_pass_ball() override; void derived_acknowledge_ball_in_transit() override; - string return_current_state() override; + std::string return_current_state() override; private: // point goalie will aim for when clearing balls diff --git a/soccer/src/soccer/strategy/agent/position/offense.cpp b/soccer/src/soccer/strategy/agent/position/offense.cpp index 463cb1ec172..f7d27409009 100644 --- a/soccer/src/soccer/strategy/agent/position/offense.cpp +++ b/soccer/src/soccer/strategy/agent/position/offense.cpp @@ -14,7 +14,7 @@ std::optional Offense::derived_get_task(RobotIntent intent) { return state_to_task(intent); } -string Offense::return_current_state() { +std::string Offense::return_current_state() { return "Offense" + static_cast(current_state_); } diff --git a/soccer/src/soccer/strategy/agent/position/offense.hpp b/soccer/src/soccer/strategy/agent/position/offense.hpp index e0926257975..7c2b12ca3cc 100644 --- a/soccer/src/soccer/strategy/agent/position/offense.hpp +++ b/soccer/src/soccer/strategy/agent/position/offense.hpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -36,7 +37,7 @@ class Offense : public Position { void derived_pass_ball() override; void derived_acknowledge_ball_in_transit() override; - string return_current_state() override; + std::string return_current_state() override; private: bool kicking_{true}; diff --git a/soccer/src/soccer/strategy/agent/position/penalty_player.cpp b/soccer/src/soccer/strategy/agent/position/penalty_player.cpp index aa088ab78a4..580c23287d8 100644 --- a/soccer/src/soccer/strategy/agent/position/penalty_player.cpp +++ b/soccer/src/soccer/strategy/agent/position/penalty_player.cpp @@ -31,7 +31,7 @@ std::optional PenaltyPlayer::derived_get_task(RobotIntent intent) { return intent; } -string PenaltyPlayer::return_current_state() { +std::string PenaltyPlayer::return_current_state() { return "PenaltyPlayer"; } diff --git a/soccer/src/soccer/strategy/agent/position/penalty_player.hpp b/soccer/src/soccer/strategy/agent/position/penalty_player.hpp index 7a3c30c7ea2..32b5186be41 100644 --- a/soccer/src/soccer/strategy/agent/position/penalty_player.hpp +++ b/soccer/src/soccer/strategy/agent/position/penalty_player.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include "planning/instant.hpp" #include "planning/planner/motion_command.hpp" @@ -32,7 +33,7 @@ class PenaltyPlayer : public Position { */ void derived_acknowledge_ball_in_transit() override; - void return_current_state() override; + std::string return_current_state() override; private: std::optional derived_get_task(RobotIntent intent) override; diff --git a/soccer/src/soccer/strategy/agent/position/position.cpp b/soccer/src/soccer/strategy/agent/position/position.cpp index bf329b6ab15..f91ba003430 100644 --- a/soccer/src/soccer/strategy/agent/position/position.cpp +++ b/soccer/src/soccer/strategy/agent/position/position.cpp @@ -55,6 +55,8 @@ void Position::update_field_dimensions(const FieldDimensions& field_dims) { field_dimensions_ = field_dims; } +std::string Position::return_current_state() {} + void Position::update_alive_robots(std::vector alive_robots) { alive_robots_ = alive_robots; diff --git a/soccer/src/soccer/strategy/agent/position/position.hpp b/soccer/src/soccer/strategy/agent/position/position.hpp index 3e8314d3ef0..f74b9479825 100644 --- a/soccer/src/soccer/strategy/agent/position/position.hpp +++ b/soccer/src/soccer/strategy/agent/position/position.hpp @@ -2,6 +2,7 @@ #include #include +#include #include @@ -76,7 +77,7 @@ class Position { const std::string get_name(); //returns the current state of the robot - virtual string return_current_state(); + virtual std::string return_current_state(); /** * @brief setter for time_left_ diff --git a/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp b/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp index cc607f30fc4..602bcc0fb39 100644 --- a/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp +++ b/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp @@ -120,6 +120,6 @@ void RobotFactoryPosition::die() { current_position_->die(); } void RobotFactoryPosition::revive() { current_position_->revive(); } -string RobotFactoryPosition::return_current_state() { current_position_->return_current_state(); } +std::string RobotFactoryPosition::return_current_state() { current_position_->return_current_state(); } } // namespace strategy diff --git a/soccer/src/soccer/strategy/agent/position/robot_factory_position.hpp b/soccer/src/soccer/strategy/agent/position/robot_factory_position.hpp index e9736b2b697..ccb2cda75d2 100644 --- a/soccer/src/soccer/strategy/agent/position/robot_factory_position.hpp +++ b/soccer/src/soccer/strategy/agent/position/robot_factory_position.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include @@ -54,7 +55,7 @@ class RobotFactoryPosition : public Position { void derived_pass_ball() override; void derived_acknowledge_ball_in_transit() override; - string return_current_state() override; + std::string return_current_state() override; void set_is_done() override; void die() override; From 4ef76863ff87cff17ad8d53529de4cf9d3c705b8 Mon Sep 17 00:00:00 2001 From: Will Deinzer Date: Tue, 20 Feb 2024 21:16:48 -0500 Subject: [PATCH 5/8] Fixed method declaration --- soccer/src/soccer/strategy/agent/position/position.cpp | 2 -- soccer/src/soccer/strategy/agent/position/position.hpp | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/soccer/src/soccer/strategy/agent/position/position.cpp b/soccer/src/soccer/strategy/agent/position/position.cpp index f91ba003430..bf329b6ab15 100644 --- a/soccer/src/soccer/strategy/agent/position/position.cpp +++ b/soccer/src/soccer/strategy/agent/position/position.cpp @@ -55,8 +55,6 @@ void Position::update_field_dimensions(const FieldDimensions& field_dims) { field_dimensions_ = field_dims; } -std::string Position::return_current_state() {} - void Position::update_alive_robots(std::vector alive_robots) { alive_robots_ = alive_robots; diff --git a/soccer/src/soccer/strategy/agent/position/position.hpp b/soccer/src/soccer/strategy/agent/position/position.hpp index f74b9479825..eb3da1e8032 100644 --- a/soccer/src/soccer/strategy/agent/position/position.hpp +++ b/soccer/src/soccer/strategy/agent/position/position.hpp @@ -77,7 +77,7 @@ class Position { const std::string get_name(); //returns the current state of the robot - virtual std::string return_current_state(); + virtual std::string return_current_state() = 0; /** * @brief setter for time_left_ From fe2de1b3d532e8896e64c491425eb3b2670e5e0d Mon Sep 17 00:00:00 2001 From: Will Deinzer Date: Tue, 20 Feb 2024 21:33:58 -0500 Subject: [PATCH 6/8] Fixed method declaration again --- .../soccer/strategy/agent/position/robot_factory_position.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp b/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp index 602bcc0fb39..cb12e0a1ca8 100644 --- a/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp +++ b/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp @@ -120,6 +120,6 @@ void RobotFactoryPosition::die() { current_position_->die(); } void RobotFactoryPosition::revive() { current_position_->revive(); } -std::string RobotFactoryPosition::return_current_state() { current_position_->return_current_state(); } +std::string RobotFactoryPosition::return_current_state() { return current_position_->return_current_state(); } } // namespace strategy From 7d76606b3dedf74df74ab33f971964d0b77ff81e Mon Sep 17 00:00:00 2001 From: Will Deinzer Date: Tue, 27 Feb 2024 19:52:34 -0500 Subject: [PATCH 7/8] Fixed method name and casting issues --- soccer/src/soccer/strategy/agent/position/defense.cpp | 4 ++-- soccer/src/soccer/strategy/agent/position/defense.hpp | 2 +- soccer/src/soccer/strategy/agent/position/goal_kicker.cpp | 2 +- soccer/src/soccer/strategy/agent/position/goal_kicker.hpp | 2 +- soccer/src/soccer/strategy/agent/position/goalie.cpp | 2 +- soccer/src/soccer/strategy/agent/position/goalie.hpp | 2 +- soccer/src/soccer/strategy/agent/position/offense.cpp | 4 ++-- soccer/src/soccer/strategy/agent/position/offense.hpp | 2 +- soccer/src/soccer/strategy/agent/position/penalty_player.cpp | 2 +- soccer/src/soccer/strategy/agent/position/penalty_player.hpp | 2 +- soccer/src/soccer/strategy/agent/position/position.hpp | 2 +- .../soccer/strategy/agent/position/robot_factory_position.cpp | 2 +- .../soccer/strategy/agent/position/robot_factory_position.hpp | 2 +- 13 files changed, 15 insertions(+), 15 deletions(-) diff --git a/soccer/src/soccer/strategy/agent/position/defense.cpp b/soccer/src/soccer/strategy/agent/position/defense.cpp index 222bab4efe8..67f6062782d 100644 --- a/soccer/src/soccer/strategy/agent/position/defense.cpp +++ b/soccer/src/soccer/strategy/agent/position/defense.cpp @@ -10,8 +10,8 @@ std::optional Defense::derived_get_task(RobotIntent intent) { return state_to_task(intent); } -std::string Defense::return_current_state() { - return "Defense" + static_cast(current_state_); +std::string Defense::get_current_state() { + return std::string{"Defense"} + std::to_string(static_cast(current_state_)); } Defense::State Defense::update_state() { diff --git a/soccer/src/soccer/strategy/agent/position/defense.hpp b/soccer/src/soccer/strategy/agent/position/defense.hpp index 5272987ea9a..7154b1b3361 100644 --- a/soccer/src/soccer/strategy/agent/position/defense.hpp +++ b/soccer/src/soccer/strategy/agent/position/defense.hpp @@ -36,7 +36,7 @@ class Defense : public Position { void derived_acknowledge_pass() override; void derived_pass_ball() override; void derived_acknowledge_ball_in_transit() override; - std::string return_current_state() override; + std::string get_current_state() override; void die() override; diff --git a/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp b/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp index 2bc5bc8f0be..7f957644d86 100644 --- a/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp +++ b/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp @@ -28,7 +28,7 @@ std::optional GoalKicker::derived_get_task(RobotIntent intent) { return intent; } -std::string GoalKicker::return_current_state() { +std::string GoalKicker::get_current_state() { return "GoalKicker"; } diff --git a/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp b/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp index 2752d868c2b..819510ed8cf 100644 --- a/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp +++ b/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp @@ -33,7 +33,7 @@ class GoalKicker : public Position { */ void derived_acknowledge_ball_in_transit() override; - std::string return_current_state() override; + std::string get_current_state() override; private: std::optional derived_get_task(RobotIntent intent) override; diff --git a/soccer/src/soccer/strategy/agent/position/goalie.cpp b/soccer/src/soccer/strategy/agent/position/goalie.cpp index 9dcd0b30a96..f4a9ce1cba8 100644 --- a/soccer/src/soccer/strategy/agent/position/goalie.cpp +++ b/soccer/src/soccer/strategy/agent/position/goalie.cpp @@ -11,7 +11,7 @@ std::optional Goalie::derived_get_task(RobotIntent intent) { return state_to_task(intent); } -std::string Goalie::return_current_state() { +std::string Goalie::get_current_state() { return "Goalie"; } diff --git a/soccer/src/soccer/strategy/agent/position/goalie.hpp b/soccer/src/soccer/strategy/agent/position/goalie.hpp index 7086f259c1d..76115002ce9 100644 --- a/soccer/src/soccer/strategy/agent/position/goalie.hpp +++ b/soccer/src/soccer/strategy/agent/position/goalie.hpp @@ -29,7 +29,7 @@ class Goalie : public Position { void derived_pass_ball() override; void derived_acknowledge_ball_in_transit() override; - std::string return_current_state() override; + std::string get_current_state() override; private: // point goalie will aim for when clearing balls diff --git a/soccer/src/soccer/strategy/agent/position/offense.cpp b/soccer/src/soccer/strategy/agent/position/offense.cpp index f7d27409009..c64d49b5177 100644 --- a/soccer/src/soccer/strategy/agent/position/offense.cpp +++ b/soccer/src/soccer/strategy/agent/position/offense.cpp @@ -14,8 +14,8 @@ std::optional Offense::derived_get_task(RobotIntent intent) { return state_to_task(intent); } -std::string Offense::return_current_state() { - return "Offense" + static_cast(current_state_); +std::string Offense::get_current_state() { + return std::string{"Offense"} + std::to_string(static_cast(current_state_)); } Offense::State Offense::update_state() { diff --git a/soccer/src/soccer/strategy/agent/position/offense.hpp b/soccer/src/soccer/strategy/agent/position/offense.hpp index 7c2b12ca3cc..e45df52e772 100644 --- a/soccer/src/soccer/strategy/agent/position/offense.hpp +++ b/soccer/src/soccer/strategy/agent/position/offense.hpp @@ -37,7 +37,7 @@ class Offense : public Position { void derived_pass_ball() override; void derived_acknowledge_ball_in_transit() override; - std::string return_current_state() override; + std::string get_current_state() override; private: bool kicking_{true}; diff --git a/soccer/src/soccer/strategy/agent/position/penalty_player.cpp b/soccer/src/soccer/strategy/agent/position/penalty_player.cpp index 580c23287d8..b6e0fe1c7c3 100644 --- a/soccer/src/soccer/strategy/agent/position/penalty_player.cpp +++ b/soccer/src/soccer/strategy/agent/position/penalty_player.cpp @@ -31,7 +31,7 @@ std::optional PenaltyPlayer::derived_get_task(RobotIntent intent) { return intent; } -std::string PenaltyPlayer::return_current_state() { +std::string PenaltyPlayer::get_current_state() { return "PenaltyPlayer"; } diff --git a/soccer/src/soccer/strategy/agent/position/penalty_player.hpp b/soccer/src/soccer/strategy/agent/position/penalty_player.hpp index 32b5186be41..7c342153cc7 100644 --- a/soccer/src/soccer/strategy/agent/position/penalty_player.hpp +++ b/soccer/src/soccer/strategy/agent/position/penalty_player.hpp @@ -33,7 +33,7 @@ class PenaltyPlayer : public Position { */ void derived_acknowledge_ball_in_transit() override; - std::string return_current_state() override; + std::string get_current_state() override; private: std::optional derived_get_task(RobotIntent intent) override; diff --git a/soccer/src/soccer/strategy/agent/position/position.hpp b/soccer/src/soccer/strategy/agent/position/position.hpp index eb3da1e8032..0279f37750b 100644 --- a/soccer/src/soccer/strategy/agent/position/position.hpp +++ b/soccer/src/soccer/strategy/agent/position/position.hpp @@ -77,7 +77,7 @@ class Position { const std::string get_name(); //returns the current state of the robot - virtual std::string return_current_state() = 0; + virtual std::string get_current_state() = 0; /** * @brief setter for time_left_ diff --git a/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp b/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp index cb12e0a1ca8..46612e5d8b7 100644 --- a/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp +++ b/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp @@ -120,6 +120,6 @@ void RobotFactoryPosition::die() { current_position_->die(); } void RobotFactoryPosition::revive() { current_position_->revive(); } -std::string RobotFactoryPosition::return_current_state() { return current_position_->return_current_state(); } +std::string RobotFactoryPosition::get_current_state() { return current_position_->get_current_state(); } } // namespace strategy diff --git a/soccer/src/soccer/strategy/agent/position/robot_factory_position.hpp b/soccer/src/soccer/strategy/agent/position/robot_factory_position.hpp index ccb2cda75d2..7edc6d8595e 100644 --- a/soccer/src/soccer/strategy/agent/position/robot_factory_position.hpp +++ b/soccer/src/soccer/strategy/agent/position/robot_factory_position.hpp @@ -55,7 +55,7 @@ class RobotFactoryPosition : public Position { void derived_pass_ball() override; void derived_acknowledge_ball_in_transit() override; - std::string return_current_state() override; + std::string get_current_state() override; void set_is_done() override; void die() override; From cd8314e8515da805f8b2c704778c4fdda3ce0167 Mon Sep 17 00:00:00 2001 From: Sid Parikh Date: Wed, 28 Feb 2024 21:31:37 +0000 Subject: [PATCH 8/8] pretty-lines --- soccer/src/soccer/strategy/agent/position/defense.cpp | 1 - soccer/src/soccer/strategy/agent/position/defense.hpp | 1 - soccer/src/soccer/strategy/agent/position/goal_kicker.cpp | 4 +--- soccer/src/soccer/strategy/agent/position/goal_kicker.hpp | 3 ++- soccer/src/soccer/strategy/agent/position/goalie.cpp | 4 +--- soccer/src/soccer/strategy/agent/position/penalty_player.cpp | 4 +--- soccer/src/soccer/strategy/agent/position/penalty_player.hpp | 3 ++- soccer/src/soccer/strategy/agent/position/position.hpp | 4 ++-- .../soccer/strategy/agent/position/robot_factory_position.cpp | 4 +++- 9 files changed, 12 insertions(+), 16 deletions(-) diff --git a/soccer/src/soccer/strategy/agent/position/defense.cpp b/soccer/src/soccer/strategy/agent/position/defense.cpp index 67f6062782d..3e72a81a478 100644 --- a/soccer/src/soccer/strategy/agent/position/defense.cpp +++ b/soccer/src/soccer/strategy/agent/position/defense.cpp @@ -1,6 +1,5 @@ #include "defense.hpp" - namespace strategy { Defense::Defense(int r_id) : Position(r_id) { position_name_ = "Defense"; } diff --git a/soccer/src/soccer/strategy/agent/position/defense.hpp b/soccer/src/soccer/strategy/agent/position/defense.hpp index 7154b1b3361..86ee80e50f3 100644 --- a/soccer/src/soccer/strategy/agent/position/defense.hpp +++ b/soccer/src/soccer/strategy/agent/position/defense.hpp @@ -38,7 +38,6 @@ class Defense : public Position { void derived_acknowledge_ball_in_transit() override; std::string get_current_state() override; - void die() override; void revive() override; diff --git a/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp b/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp index 7f957644d86..2efb9576218 100644 --- a/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp +++ b/soccer/src/soccer/strategy/agent/position/goal_kicker.cpp @@ -28,9 +28,7 @@ std::optional GoalKicker::derived_get_task(RobotIntent intent) { return intent; } -std::string GoalKicker::get_current_state() { - return "GoalKicker"; -} +std::string GoalKicker::get_current_state() { return "GoalKicker"; } void GoalKicker::derived_acknowledge_pass() {} diff --git a/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp b/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp index 819510ed8cf..249010a81df 100644 --- a/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp +++ b/soccer/src/soccer/strategy/agent/position/goal_kicker.hpp @@ -1,8 +1,9 @@ #pragma once -#include #include +#include + #include "planning/instant.hpp" #include "planning/planner/motion_command.hpp" #include "position.hpp" diff --git a/soccer/src/soccer/strategy/agent/position/goalie.cpp b/soccer/src/soccer/strategy/agent/position/goalie.cpp index f4a9ce1cba8..782daf18f73 100644 --- a/soccer/src/soccer/strategy/agent/position/goalie.cpp +++ b/soccer/src/soccer/strategy/agent/position/goalie.cpp @@ -11,9 +11,7 @@ std::optional Goalie::derived_get_task(RobotIntent intent) { return state_to_task(intent); } -std::string Goalie::get_current_state() { - return "Goalie"; -} +std::string Goalie::get_current_state() { return "Goalie"; } Goalie::State Goalie::update_state() { // if a shot is coming, override all and go block it diff --git a/soccer/src/soccer/strategy/agent/position/penalty_player.cpp b/soccer/src/soccer/strategy/agent/position/penalty_player.cpp index b6e0fe1c7c3..82e58044768 100644 --- a/soccer/src/soccer/strategy/agent/position/penalty_player.cpp +++ b/soccer/src/soccer/strategy/agent/position/penalty_player.cpp @@ -31,9 +31,7 @@ std::optional PenaltyPlayer::derived_get_task(RobotIntent intent) { return intent; } -std::string PenaltyPlayer::get_current_state() { - return "PenaltyPlayer"; -} +std::string PenaltyPlayer::get_current_state() { return "PenaltyPlayer"; } void PenaltyPlayer::derived_acknowledge_pass() {} diff --git a/soccer/src/soccer/strategy/agent/position/penalty_player.hpp b/soccer/src/soccer/strategy/agent/position/penalty_player.hpp index 7c342153cc7..2942db29d83 100644 --- a/soccer/src/soccer/strategy/agent/position/penalty_player.hpp +++ b/soccer/src/soccer/strategy/agent/position/penalty_player.hpp @@ -1,8 +1,9 @@ #pragma once -#include #include +#include + #include "planning/instant.hpp" #include "planning/planner/motion_command.hpp" #include "rj_common/field_dimensions.hpp" diff --git a/soccer/src/soccer/strategy/agent/position/position.hpp b/soccer/src/soccer/strategy/agent/position/position.hpp index 0279f37750b..9faca6c378d 100644 --- a/soccer/src/soccer/strategy/agent/position/position.hpp +++ b/soccer/src/soccer/strategy/agent/position/position.hpp @@ -1,8 +1,8 @@ #pragma once #include -#include #include +#include #include @@ -76,7 +76,7 @@ class Position { void update_alive_robots(std::vector alive_robots); const std::string get_name(); - //returns the current state of the robot + // returns the current state of the robot virtual std::string get_current_state() = 0; /** diff --git a/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp b/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp index 46612e5d8b7..99f91b56656 100644 --- a/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp +++ b/soccer/src/soccer/strategy/agent/position/robot_factory_position.cpp @@ -120,6 +120,8 @@ void RobotFactoryPosition::die() { current_position_->die(); } void RobotFactoryPosition::revive() { current_position_->revive(); } -std::string RobotFactoryPosition::get_current_state() { return current_position_->get_current_state(); } +std::string RobotFactoryPosition::get_current_state() { + return current_position_->get_current_state(); +} } // namespace strategy