Source code for devkit_driver.modules.robot_brain_handler

from rclpy.node import Node
from rosys import background_tasks
from rosys.hardware import RobotBrain
from std_msgs.msg import Empty


[docs] class RobotBrainHandler: """Handler for the Zauberzeug Robot Brain.""" def __init__(self, node: Node, robot_brain: RobotBrain): self.log = node.get_logger() self._robot_brain = robot_brain self._enable_sub = node.create_subscription(Empty, 'esp/enable', self._handle_enable, 10) self._disable_sub = node.create_subscription(Empty, 'esp/disable', self._handle_disable, 10) self._reset_sub = node.create_subscription(Empty, 'esp/reset', self._handle_reset, 10) self._restart_sub = node.create_subscription(Empty, 'esp/restart', self._handle_restart, 10) self._configure_sub = node.create_subscription(Empty, 'esp/configure', self._handle_configure, 10) def _handle_enable(self, _: Empty) -> None: background_tasks.create(self._robot_brain.enable_esp()) def _handle_disable(self, _: Empty) -> None: background_tasks.create(self._robot_brain.disable_esp()) def _handle_reset(self, _: Empty) -> None: background_tasks.create(self._robot_brain.reset_esp()) def _handle_restart(self, _: Empty) -> None: background_tasks.create(self._robot_brain.restart()) def _handle_configure(self, _: Empty) -> None: background_tasks.create(self._robot_brain.configure())