From 53c687f9ff216aa2f4863ec4158402541c95706c Mon Sep 17 00:00:00 2001 From: "pinloon.lee" Date: Tue, 18 May 2021 17:55:40 +0800 Subject: [PATCH] added signal to close node properly --- scout_base/src/scout_base_node.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scout_base/src/scout_base_node.cpp b/scout_base/src/scout_base_node.cpp index 8567f16..7827ff7 100644 --- a/scout_base/src/scout_base_node.cpp +++ b/scout_base/src/scout_base_node.cpp @@ -11,12 +11,17 @@ using namespace westonrobot; std::shared_ptr robot; +bool keep_run = true; + +void DetachRobot(int signal) { keep_run = false; } int main(int argc, char **argv) { // setup ROS node ros::init(argc, argv, "scout_node"); ros::NodeHandle node(""), private_node("~"); + std::signal(SIGINT, DetachRobot); + // instantiate a robot object robot = std::make_shared(); ScoutROSMessenger messenger(robot.get(), &node); @@ -46,7 +51,7 @@ int main(int argc, char **argv) { // publish robot state at 50Hz while listening to twist commands ros::Rate rate(50); - while (true) { + while (keep_run) { if (!messenger.simulated_robot_) { messenger.PublishStateToROS(); } else {