Skip to content

Commit bcc1a27

Browse files
Merge pull request #7 from DIT-ROBOTICS/feat/game_over_pub
Feat/game over pub
2 parents 8da7bc2 + bd7920b commit bcc1a27

7 files changed

Lines changed: 23 additions & 2 deletions

File tree

src/bt_core/src/MissionChecker.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,12 @@ BT::NodeStatus MissionChecker::onRunning() {
8383
if(action_ == ActionType::TAKE){
8484
robot_side_status[side_idx_] = FieldStatus::OCCUPIED;
8585
blackboard_->set<std::vector<FieldStatus>>("robot_side_status", robot_side_status);
86+
MC_INFO(node_, "Marking side %d as OCCUPIED due to TAKE timeout", side_idx_);
8687
}
8788
else if(action_ == ActionType::PUT){
8889
robot_side_status[side_idx_] = FieldStatus::EMPTY;
8990
blackboard_->set<std::vector<FieldStatus>>("robot_side_status", robot_side_status);
91+
MC_INFO(node_, "Marking side %d as EMPTY due to PUT timeout", side_idx_);
9092
}
9193
return BT::NodeStatus::SUCCESS; // Don't block the game
9294
}

src/sensors/src/FirmwareReceiver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,6 @@ void FirmwareReceiver::takeFinishCallback(const std_msgs::msg::Int16::SharedPtr
124124
}
125125

126126
BT::NodeStatus FirmwareReceiver::tick() {
127-
RCLCPP_DEBUG(node_->get_logger(), "FirmwareReceiver tick");
127+
RCLCPP_DEBUG(node_->get_logger(), "[FirmwareReceiver]: tick");
128128
return BT::NodeStatus::SUCCESS;
129129
}

src/startup/include/startup.hpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,11 @@ class StartUp : public rclcpp::Node {
7777
// game timer
7878
rclcpp::TimerBase::SharedPtr timer;
7979
rclcpp::Publisher<std_msgs::msg::Float32>::SharedPtr game_time_pub;
80+
rclcpp::Publisher<std_msgs::msg::Bool>::SharedPtr sima_game_over_pub;
8081
std::shared_ptr<rclcpp::Rate> rate;
8182
int game_time;
82-
83+
bool sima_game_over_sent;
84+
8385
// State checker for other groups
8486
rclcpp::Publisher<std_msgs::msg::Bool>::SharedPtr are_you_ready_pub;
8587
rclcpp::Publisher<std_msgs::msg::String>::SharedPtr plan_file_pub;
@@ -123,6 +125,7 @@ class StartUp : public rclcpp::Node {
123125
std::vector<double> yellow_start_pose;
124126
int time_rate;
125127
int game_time_limit;
128+
int sima_game_over_trigger_sec;
126129
int sima_tick_threshold;
127130
int group_num;
128131
};

src/startup/params/robot_config_black.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
time_rate: 100 # Timer rate in microseconds (100 = 10kHz)
77
game_time: 100 # Total game time in seconds
88
sima_tick_threshold: 85 # Seconds before sima starts
9+
sima_game_over_trigger_sec: 99 # Seconds tell sima to stop
910
group_num: 5 # Total number of groups (including index 0)
1011
stop_time: 98 # Hard stop time limit in seconds
1112
go_home_time: 90 # Time in seconds to trigger go home logic

src/startup/params/robot_config_default.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
time_rate: 100 # Timer rate in microseconds (100 = 10kHz)
77
game_time: 100 # Total game time in seconds
88
sima_tick_threshold: 85 # Seconds before sima starts
9+
sima_game_over_trigger_sec: 99 # Seconds tell sima to stop
910
group_num: 5 # Total number of groups (including index 0)
1011

1112
# Plan Configuration

src/startup/params/robot_config_white.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
time_rate: 100 # Timer rate in microseconds (100 = 10kHz)
77
game_time: 100 # Total game time in seconds
88
sima_tick_threshold: 85 # Seconds before sima starts
9+
sima_game_over_trigger_sec: 99 # Seconds tell sima to stop
910
group_num: 5 # Total number of groups (including index 0)
1011
stop_time: 98 # Hard stop time limit in seconds
1112
go_home_time: 90 # Time in seconds to trigger go home logic

src/startup/src/startup_new.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ StartUp::StartUp() : Node("startup_node"){
1313

1414
game_time_pub = this->create_publisher<std_msgs::msg::Float32>("/robot/startup/game_time", 2);
1515
rate = std::make_shared<rclcpp::Rate>(time_rate);
16+
sima_game_over_pub = this->create_publisher<std_msgs::msg::Bool>("/robot/startup/sima_game_over", 1);
1617

1718
// State checker for other groups
1819
are_you_ready_pub = this->create_publisher<std_msgs::msg::Bool>("/robot/startup/are_you_ready", 2);
@@ -50,13 +51,15 @@ StartUp::StartUp() : Node("startup_node"){
5051
is_plugged = false;
5152
end_logged = false;
5253
game_time = 0;
54+
sima_game_over_sent = false;
5355
}
5456

5557
void StartUp::initParam() {
5658
// Timing parameters
5759
this->declare_parameter<int>("time_rate", 100);
5860
this->declare_parameter<int>("game_time", 100);
5961
this->declare_parameter<int>("sima_tick_threshold", 85);
62+
this->declare_parameter<int>("sima_game_over_trigger_sec", 99);
6063
this->declare_parameter<int>("group_num", 5);
6164

6265
// Robot parameters
@@ -69,6 +72,7 @@ void StartUp::initParam() {
6972
this->get_parameter("time_rate", time_rate);
7073
this->get_parameter("game_time", game_time_limit);
7174
this->get_parameter("sima_tick_threshold", sima_tick_threshold);
75+
this->get_parameter("sima_game_over_trigger_sec", sima_game_over_trigger_sec);
7276
this->get_parameter("group_num", group_num);
7377

7478
// Get robot parameters
@@ -288,6 +292,15 @@ void StartUp::publishTime() {
288292
cur_time_msg.data = cur_time - start_time;
289293
game_time = cur_time_msg.data;
290294
game_time_pub->publish(cur_time_msg);
295+
296+
if (!sima_game_over_sent && game_time >= sima_game_over_trigger_sec) {
297+
std_msgs::msg::Bool msg;
298+
msg.data = true;
299+
sima_game_over_pub->publish(msg);
300+
sima_game_over_sent = true;
301+
RCLCPP_INFO(this->get_logger(), "[StartUp]: Sima game over signal sent at game time %f", game_time);
302+
}
303+
291304
tickLittleSima(game_time);
292305
}
293306

0 commit comments

Comments
 (0)