From 22b50d95bd1bc48cb60246bad45f1a58126d61d7 Mon Sep 17 00:00:00 2001 From: Javier Izquierdo Hernandez Date: Tue, 4 Mar 2025 19:18:09 +0100 Subject: [PATCH 1/2] Kill harmonic processes when switching universes --- manager/manager/manager.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/manager/manager/manager.py b/manager/manager/manager.py index dad1ac1..c5bc781 100644 --- a/manager/manager/manager.py +++ b/manager/manager/manager.py @@ -675,6 +675,7 @@ def terminate_harmonic_processes(self): """ Terminate all processes within the Docker container whose command line contains 'gz' or 'launch'. """ + LogManager.logger.info("Terminate Harmonic process") keywords = ['gz', 'launch'] for keyword in keywords: try: @@ -734,6 +735,7 @@ def on_terminate_universe(self, event): self.world_launcher.terminate() if self.robot_launcher != None: self.robot_launcher.terminate() + self.terminate_harmonic_processes() def on_disconnect(self, event): self.terminate_harmonic_processes() From 8348a0199d99d3bfc5955aa0e5973d29023f2be6 Mon Sep 17 00:00:00 2001 From: Javier Izquierdo Hernandez Date: Wed, 5 Mar 2025 15:09:20 +0100 Subject: [PATCH 2/2] Do not reset sim for console only exercises --- manager/manager/manager.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/manager/manager/manager.py b/manager/manager/manager.py index c5bc781..b325efc 100644 --- a/manager/manager/manager.py +++ b/manager/manager/manager.py @@ -324,7 +324,7 @@ def on_prepare_visualization(self, event): self.visualization_launcher.run() - if self.visualization_type in ["gazebo_rae", "gzsim_rae"]: + if self.visualization_type in ["gazebo_rae", "gzsim_rae", "console"]: self.gui_server = Server(2303, self.update) self.gui_server.start() elif self.visualization_type in ["bt_studio", "bt_studio_gz"]: @@ -798,13 +798,13 @@ def on_resume(self, msg): def pause_sim(self): if self.visualization_type in ["gzsim_rae", "bt_studio_gz"]: self.call_gzservice("$(gz service -l | grep '^/world/\w*/control$')","gz.msgs.WorldControl","gz.msgs.Boolean","3000","pause: true") - else: + elif not self.visualization_type in ["console"]: self.call_service("/pause_physics", "std_srvs/srv/Empty") def unpause_sim(self): if self.visualization_type in ["gzsim_rae", "bt_studio_gz"]: self.call_gzservice("$(gz service -l | grep '^/world/\w*/control$')","gz.msgs.WorldControl","gz.msgs.Boolean","3000","pause: false") - else: + elif not self.visualization_type in ["console"]: self.call_service("/unpause_physics", "std_srvs/srv/Empty") def reset_sim(self): @@ -817,7 +817,7 @@ def reset_sim(self): self.call_gzservice("$(gz service -l | grep '^/world/\w*/control$')","gz.msgs.WorldControl","gz.msgs.Boolean","3000","reset: {all: true}") if self.is_ros_service_available("/drone0/controller/_reset"): self.call_service("/drone0/controller/_reset", "std_srvs/srv/Trigger", "{}") - else: + elif not self.visualization_type in ["console"]: self.call_service("/reset_world", "std_srvs/srv/Empty") if self.robot_launcher: