step.motion.arc_dsl

Auto-generated step builders and DSL functions — DO NOT EDIT.

Source: arc.py

Classes

DriveArcLeftBuilder

Builder for DriveArcLeft. Auto-generated — do not edit.

DriveArcRightBuilder

Builder for DriveArcRight. Auto-generated — do not edit.

StrafeArcLeftBuilder

Builder for StrafeArcLeft. Auto-generated — do not edit.

StrafeArcRightBuilder

Builder for StrafeArcRight. Auto-generated — do not edit.

Functions

drive_arc_left([radius_cm, degrees, speed])

Drive along a circular arc curving to the left.

drive_arc_right([radius_cm, degrees, speed])

Drive along a circular arc curving to the right.

strafe_arc_left([radius_cm, degrees, speed])

Strafe along a circular arc curving to the left.

strafe_arc_right([radius_cm, degrees, speed])

Strafe along a circular arc curving to the right.

Module Contents

class step.motion.arc_dsl.DriveArcLeftBuilder

Bases: raccoon.step.step_builder.StepBuilder

Builder for DriveArcLeft. Auto-generated — do not edit.

radius_cm(value: float)
degrees(value: float)
speed(value: float)
step.motion.arc_dsl.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.

Parameters:
  • radius_cm – Turning radius in centimeters (center of arc to robot center).

  • degrees – Arc angle in degrees (how much the robot turns).

  • 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)
class step.motion.arc_dsl.DriveArcRightBuilder

Bases: raccoon.step.step_builder.StepBuilder

Builder for DriveArcRight. Auto-generated — do not edit.

radius_cm(value: float)
degrees(value: float)
speed(value: float)
step.motion.arc_dsl.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.

Parameters:
  • radius_cm – Turning radius in centimeters (center of arc to robot center).

  • degrees – Arc angle in degrees (how much the robot turns).

  • 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)
class step.motion.arc_dsl.StrafeArcLeftBuilder

Bases: raccoon.step.step_builder.StepBuilder

Builder for StrafeArcLeft. Auto-generated — do not edit.

radius_cm(value: float)
degrees(value: float)
speed(value: float)
step.motion.arc_dsl.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.

Parameters:
  • radius_cm – Turning radius in centimeters (center of arc to robot center).

  • degrees – Arc angle in degrees (how much the robot turns).

  • 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)
class step.motion.arc_dsl.StrafeArcRightBuilder

Bases: raccoon.step.step_builder.StepBuilder

Builder for StrafeArcRight. Auto-generated — do not edit.

radius_cm(value: float)
degrees(value: float)
speed(value: float)
step.motion.arc_dsl.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.

Parameters:
  • radius_cm – Turning radius in centimeters (center of arc to robot center).

  • degrees – Arc angle in degrees (how much the robot turns).

  • 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)