step.motion.arc_dsl =================== .. py:module:: step.motion.arc_dsl .. autoapi-nested-parse:: Auto-generated step builders and DSL functions — DO NOT EDIT. Source: arc.py Classes ------- .. autoapisummary:: step.motion.arc_dsl.DriveArcLeftBuilder step.motion.arc_dsl.DriveArcRightBuilder step.motion.arc_dsl.StrafeArcLeftBuilder step.motion.arc_dsl.StrafeArcRightBuilder Functions --------- .. autoapisummary:: step.motion.arc_dsl.drive_arc_left step.motion.arc_dsl.drive_arc_right step.motion.arc_dsl.strafe_arc_left step.motion.arc_dsl.strafe_arc_right Module Contents --------------- .. py:class:: DriveArcLeftBuilder Bases: :py:obj:`raccoon.step.step_builder.StepBuilder` Builder for DriveArcLeft. Auto-generated — do not edit. .. py:method:: radius_cm(value: float) .. py:method:: degrees(value: float) .. py:method:: speed(value: float) .. py:function:: drive_arc_left(radius_cm: float = _UNSET, degrees: float = _UNSET, speed: float = 1.0) Drive along a circular arc curving to the left. The robot drives forward while simultaneously turning counter-clockwise, tracing a circular arc of the given radius. The motion completes when the robot has turned by the specified number of degrees. :param radius_cm: Turning radius in centimeters (center of arc to robot center). :param degrees: Arc angle in degrees (how much the robot turns). :param speed: Fraction of max speed, 0.0 to 1.0 (default 1.0). :returns: A DriveArcLeftBuilder (chainable via ``.radius_cm()``, ``.degrees()``, ``.speed()``, ``.on_anomaly()``, ``.skip_timing()``). Example:: from raccoon.step.motion import drive_arc_left # Quarter-circle left with 30 cm radius drive_arc_left(radius_cm=30, degrees=90) # Gentle wide arc at half speed drive_arc_left(radius_cm=50, degrees=45, speed=0.5) .. py:class:: DriveArcRightBuilder Bases: :py:obj:`raccoon.step.step_builder.StepBuilder` Builder for DriveArcRight. Auto-generated — do not edit. .. py:method:: radius_cm(value: float) .. py:method:: degrees(value: float) .. py:method:: speed(value: float) .. py:function:: drive_arc_right(radius_cm: float = _UNSET, degrees: float = _UNSET, speed: float = 1.0) Drive along a circular arc curving to the right. The robot drives forward while simultaneously turning clockwise, tracing a circular arc of the given radius. The motion completes when the robot has turned by the specified number of degrees. :param radius_cm: Turning radius in centimeters (center of arc to robot center). :param degrees: Arc angle in degrees (how much the robot turns). :param speed: Fraction of max speed, 0.0 to 1.0 (default 1.0). :returns: A DriveArcRightBuilder (chainable via ``.radius_cm()``, ``.degrees()``, ``.speed()``, ``.on_anomaly()``, ``.skip_timing()``). Example:: from raccoon.step.motion import drive_arc_right # Quarter-circle right with 30 cm radius drive_arc_right(radius_cm=30, degrees=90) .. py:class:: StrafeArcLeftBuilder Bases: :py:obj:`raccoon.step.step_builder.StepBuilder` Builder for StrafeArcLeft. Auto-generated — do not edit. .. py:method:: radius_cm(value: float) .. py:method:: degrees(value: float) .. py:method:: speed(value: float) .. py:function:: strafe_arc_left(radius_cm: float = _UNSET, degrees: float = _UNSET, speed: float = 1.0) Strafe along a circular arc curving to the left. The robot strafes laterally (to the right) while simultaneously turning counter-clockwise, tracing a circular arc of the given radius. The motion completes when the robot has turned by the specified number of degrees. Internally uses a profiled PID on heading and derives the lateral velocity from the angular velocity command: ``vy = |omega| * radius``. This produces coordinated acceleration along the arc. Prerequisites: Requires a mecanum or omni-wheel drivetrain capable of lateral motion. :param radius_cm: Turning radius in centimeters (center of arc to robot center). :param degrees: Arc angle in degrees (how much the robot turns). :param speed: Fraction of max speed, 0.0 to 1.0 (default 1.0). :returns: A StrafeArcLeftBuilder (chainable via ``.radius_cm()``, ``.degrees()``, ``.speed()``, ``.on_anomaly()``, ``.skip_timing()``). Example:: from raccoon.step.motion import strafe_arc_left # Quarter-circle strafe arc to the left with 30 cm radius strafe_arc_left(radius_cm=30, degrees=90) # Gentle wide strafe arc at half speed strafe_arc_left(radius_cm=50, degrees=45, speed=0.5) .. py:class:: StrafeArcRightBuilder Bases: :py:obj:`raccoon.step.step_builder.StepBuilder` Builder for StrafeArcRight. Auto-generated — do not edit. .. py:method:: radius_cm(value: float) .. py:method:: degrees(value: float) .. py:method:: speed(value: float) .. py:function:: strafe_arc_right(radius_cm: float = _UNSET, degrees: float = _UNSET, speed: float = 1.0) Strafe along a circular arc curving to the right. The robot strafes laterally (to the left) while simultaneously turning clockwise, tracing a circular arc of the given radius. The motion completes when the robot has turned by the specified number of degrees. Internally uses a profiled PID on heading and derives the lateral velocity from the angular velocity command: ``vy = |omega| * radius``. This produces coordinated acceleration along the arc. Prerequisites: Requires a mecanum or omni-wheel drivetrain capable of lateral motion. :param radius_cm: Turning radius in centimeters (center of arc to robot center). :param degrees: Arc angle in degrees (how much the robot turns). :param speed: Fraction of max speed, 0.0 to 1.0 (default 1.0). :returns: A StrafeArcRightBuilder (chainable via ``.radius_cm()``, ``.degrees()``, ``.speed()``, ``.on_anomaly()``, ``.skip_timing()``). Example:: from raccoon.step.motion import strafe_arc_right # Quarter-circle strafe arc to the right with 30 cm radius strafe_arc_right(radius_cm=30, degrees=90)