step.calibration.deadzone.step_dsl

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

Source: step.py

Classes

CalibrateDeadzoneBuilder

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

Functions

calibrate_deadzone([motor_ports, start_percent, ...])

Calibrate motor deadzone via UI-based human observation.

Module Contents

class step.calibration.deadzone.step_dsl.CalibrateDeadzoneBuilder

Bases: raccoon.step.step_builder.StepBuilder

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

motor_ports(value: List[int] | None)
start_percent(value: int)
max_percent(value: int)
settle_time(value: float)
step.calibration.deadzone.step_dsl.calibrate_deadzone(motor_ports: List[int] | None = None, start_percent: int = 1, max_percent: int = 30, settle_time: float = 0.3)

Calibrate motor deadzone via UI-based human observation.

The deadzone is the minimum power percentage required to overcome static friction and start the motor turning. BEMF readings are unreliable at low RPM, so this step ramps motor power from start_percent upward and asks the operator to confirm when the wheel starts spinning. The result is stored as the motor’s ff.kS (static friction) feedforward value.

Parameters:
  • motor_ports – List of motor ports to calibrate. None calibrates all drive motors.

  • start_percent – Starting power percentage to test.

  • max_percent – Maximum power percentage before giving up.

  • settle_time – Seconds to wait after setting power before asking the operator.

Returns:

A CalibrateDeadzoneBuilder (chainable via .motor_ports(), .start_percent(), .max_percent(), .settle_time(), .on_anomaly(), .skip_timing()).

Example:

from raccoon.step.calibration import calibrate_deadzone

# Calibrate all motors with defaults
calibrate_deadzone()

# Calibrate only motors 0 and 1
calibrate_deadzone(motor_ports=[0, 1])