pyrcf.components.controllers.controller_base ============================================ .. py:module:: pyrcf.components.controllers.controller_base Classes ------- .. autoapisummary:: pyrcf.components.controllers.controller_base.ControllerBase pyrcf.components.controllers.controller_base.DummyController Module Contents --------------- .. py:class:: ControllerBase Bases: :py:obj:`pyrcf.components.pyrcf_component.PyRCFComponent` Base class defining the interface for all controllers that can be used in the control loop. .. py:method:: update(robot_state: pyrcf.core.types.RobotState, local_plan: pyrcf.core.types.LocalMotionPlan, t: float = None, dt: float = None) -> pyrcf.core.types.RobotCmd :abstractmethod: The main control update method to be called in the loop. This method will be called after the global plan and local plan are generated in the loop. This method should be implemented by any controller implementation. :param robot_state: The current state information from the robot. :type robot_state: RobotState :param local_plan: the latest local plan generated by the local planner used in the loop. :type local_plan: LocalMotionPlan :param t: the current time signature of the control loop. Defaults to None (controllers may or may not need this). :type t: float, optional :param dt: the time since the last control loop. Defaults to None (controllers may or may not need this). :type dt: float, optional :raises NotImplementedError: Raised if this method is not implemented by the child class. :returns: The output control command to be sent to the robot. :rtype: RobotCmd .. py:class:: DummyController(squawk: bool = True) Bases: :py:obj:`ControllerBase` Dummy controller for testing pipeline. .. py:attribute:: _squawk .. py:method:: update(robot_state: pyrcf.core.types.RobotState, local_plan: pyrcf.core.types.LocalMotionPlan, t: float = None, dt: float = None) -> pyrcf.core.types.RobotCmd This is a dummy method for sanity checking the control loop.