Skip to content

Commit b89512e

Browse files
authored
add raise RobotNotConfiguredError (#41)
2 parents ccb0b9d + df223a4 commit b89512e

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

udp_bridge/sender.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from queue import Empty, Full, Queue
55

66
import rclpy
7-
from bitbots_utils.utils import get_parameters_from_other_node
7+
from bitbots_utils.utils import RobotNotConfiguredError, get_parameters_from_other_node
88
from rclpy.executors import SingleThreadedExecutor
99
from rclpy.logging import LoggingSeverity
1010
from rclpy.node import Node
@@ -155,8 +155,17 @@ def __init__(self, node: Node):
155155
self.freq: float = node.get_parameter("send_frequency").value
156156

157157
target_ip_parameter_name: str = "monitoring_host_ip"
158-
params_blackboard = get_parameters_from_other_node(node, "parameter_blackboard", [target_ip_parameter_name])
159-
self.target: str = params_blackboard[target_ip_parameter_name]
158+
self.params_blackboard = get_parameters_from_other_node(
159+
node, "parameter_blackboard", [target_ip_parameter_name]
160+
)
161+
if any(param_val is None for param_val in self.params_blackboard.values()):
162+
error_text = """
163+
The robot is not configured properly or the parameter_blackboard is not found.
164+
It is likely that the robot was not configured when you syncronised your clean code onto the robot.
165+
Run the deploy_robots script with the -c option to configure the robot and set parameters like the robot id and its role."""
166+
self._node.get_logger().fatal(error_text)
167+
raise RobotNotConfiguredError(error_text)
168+
self.target: str = self.params_blackboard[target_ip_parameter_name]
160169
self.port: int = node.get_parameter("port").value
161170
self.sock = self.setup_udp_socket()
162171

0 commit comments

Comments
 (0)