From 6a4e755d112a0612d35f6d75db84e05d30cf170c Mon Sep 17 00:00:00 2001 From: Lea Date: Mon, 21 Jul 2025 17:22:03 +0200 Subject: [PATCH 1/4] add raise RobotNotConfiguredError --- udp_bridge/sender.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/udp_bridge/sender.py b/udp_bridge/sender.py index 3d702e6..b9805e2 100755 --- a/udp_bridge/sender.py +++ b/udp_bridge/sender.py @@ -4,7 +4,7 @@ from queue import Empty, Full, Queue import rclpy -from bitbots_utils.utils import get_parameters_from_other_node +from bitbots_utils.utils import get_parameters_from_other_node, RobotNotConfiguredError from rclpy.executors import SingleThreadedExecutor from rclpy.logging import LoggingSeverity from rclpy.node import Node @@ -155,8 +155,15 @@ def __init__(self, node: Node): self.freq: float = node.get_parameter("send_frequency").value target_ip_parameter_name: str = "monitoring_host_ip" - params_blackboard = get_parameters_from_other_node(node, "parameter_blackboard", [target_ip_parameter_name]) - self.target: str = params_blackboard[target_ip_parameter_name] + self.params_blackboard = get_parameters_from_other_node(node, "parameter_blackboard", [target_ip_parameter_name]) + if any( param_val is None for param_val in self.params_blackboard.values()): + error_text = """ +The robot is not configured properly or the parameter_blackboard is not found. +It is likely that the robot was not configured when you syncronised your clean code onto the robot. +Run the deploy_robots script with the -c option to configure the robot and set parameters like the robot id and its role.""" + self._node.get_logger().fatal(error_text) + raise RobotNotConfiguredError(error_text) + self.target: str = self.params_blackboard[target_ip_parameter_name] self.port: int = node.get_parameter("port").value self.sock = self.setup_udp_socket() @@ -195,6 +202,9 @@ def send_messages_in_queue(self): pass + + + def main(): rclpy.init() node = Node("udp_bridge_sender", automatically_declare_parameters_from_overrides=True) From baf76f0b7e95268fa6d93dfd41f3a5424329a5a8 Mon Sep 17 00:00:00 2001 From: Lea Date: Mon, 21 Jul 2025 17:38:46 +0200 Subject: [PATCH 2/4] correct format --- udp_bridge/sender.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/udp_bridge/sender.py b/udp_bridge/sender.py index b9805e2..ca3fcad 100755 --- a/udp_bridge/sender.py +++ b/udp_bridge/sender.py @@ -155,8 +155,10 @@ def __init__(self, node: Node): self.freq: float = node.get_parameter("send_frequency").value target_ip_parameter_name: str = "monitoring_host_ip" - self.params_blackboard = get_parameters_from_other_node(node, "parameter_blackboard", [target_ip_parameter_name]) - if any( param_val is None for param_val in self.params_blackboard.values()): + self.params_blackboard = get_parameters_from_other_node( + node, "parameter_blackboard", [target_ip_parameter_name] + ) + if any(param_val is None for param_val in self.params_blackboard.values()): error_text = """ The robot is not configured properly or the parameter_blackboard is not found. It is likely that the robot was not configured when you syncronised your clean code onto the robot. From 267697e54c208cb8bf41a9b653b43be1449ecbfb Mon Sep 17 00:00:00 2001 From: Lea Date: Mon, 21 Jul 2025 17:42:29 +0200 Subject: [PATCH 3/4] fix format --- udp_bridge/sender.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/udp_bridge/sender.py b/udp_bridge/sender.py index ca3fcad..e08bc09 100755 --- a/udp_bridge/sender.py +++ b/udp_bridge/sender.py @@ -4,7 +4,7 @@ from queue import Empty, Full, Queue import rclpy -from bitbots_utils.utils import get_parameters_from_other_node, RobotNotConfiguredError +from bitbots_utils.utils import RobotNotConfiguredError, get_parameters_from_other_node from rclpy.executors import SingleThreadedExecutor from rclpy.logging import LoggingSeverity from rclpy.node import Node From df223a4e50f340d772560f274878539f9a1ed4d4 Mon Sep 17 00:00:00 2001 From: Lea Date: Mon, 21 Jul 2025 17:46:07 +0200 Subject: [PATCH 4/4] fix format --- udp_bridge/sender.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/udp_bridge/sender.py b/udp_bridge/sender.py index e08bc09..0ed5431 100755 --- a/udp_bridge/sender.py +++ b/udp_bridge/sender.py @@ -157,7 +157,7 @@ def __init__(self, node: Node): target_ip_parameter_name: str = "monitoring_host_ip" self.params_blackboard = get_parameters_from_other_node( node, "parameter_blackboard", [target_ip_parameter_name] - ) + ) if any(param_val is None for param_val in self.params_blackboard.values()): error_text = """ The robot is not configured properly or the parameter_blackboard is not found. @@ -204,9 +204,6 @@ def send_messages_in_queue(self): pass - - - def main(): rclpy.init() node = Node("udp_bridge_sender", automatically_declare_parameters_from_overrides=True)