feathersdk.robot.actuator_systems.three_wheel_swerve_system Module

class feathersdk.robot.actuator_systems.three_wheel_swerve_system.NavigationSystemConfig(*, module_name='navigation_system', safe_stop_policy=SafeStopPolicy.COMPLIANCE_MODE, operating_frequency=30, actuators_share_same_endpoint=True)

Bases: ActuatorSystemConfig

Configuration for the navigation system.

Parameters:
module_name: str

The name of the navigation system.

model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class feathersdk.robot.actuator_systems.three_wheel_swerve_system.NavigationSystem(config, *args, **kwargs)

Bases: Generic[TNavigationSystemConfig], ActuatorSystem[TNavigationSystemConfig]

A navigation system.

Parameters:

config (TActuatorSystemConfig)

class feathersdk.robot.actuator_systems.three_wheel_swerve_system.ThreeWheelSwerveSystemConfig(*, module_name='navigation_system', safe_stop_policy=SafeStopPolicy.DISABLE_ACTUATORS, operating_frequency=10.0, actuators_share_same_endpoint=True, turning_center_motor, turning_right_motor, turning_left_motor, drive_center_motor, drive_right_motor, drive_left_motor, rotation_tolerance=0.02, rotate_in_place_angles={}, rotate_in_place_directions={}, multithreaded_calibration=True)

Bases: NavigationSystemConfig

Parameters:
safe_stop_policy: SafeStopPolicy

The safe stop policy to use when encountering a dangerous state.

operating_frequency: float

The operating frequency of the three wheel swerve system.

turning_center_motor: RobstrideMotorConfig

The configuration for the turning center motor.

turning_right_motor: RobstrideMotorConfig

The configuration for the turning right motor.

turning_left_motor: RobstrideMotorConfig

The configuration for the turning left motor.

drive_center_motor: RobstrideMotorConfig

The configuration for the drive center motor.

drive_right_motor: RobstrideMotorConfig

The configuration for the drive right motor.

drive_left_motor: RobstrideMotorConfig

The configuration for the drive left motor.

rotation_tolerance: float

The absolute tolerance in radians for turning motors to be considered at the target position.

rotate_in_place_angles: Dict[str, float]

The angles in radians to point the turning motors to when rotating in place. Key is the motor name.

rotate_in_place_directions: Dict[str, Literal[1, -1]]

The directions in which the turning motors are rotating in place. Key is the motor name.

multithreaded_calibration: bool

Whether to calibrate the motors in a multi-threaded manner.

model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class feathersdk.robot.actuator_systems.three_wheel_swerve_system.ThreeWheelSwerveSystem(config, *args, **kwargs)

Bases: NavigationSystem[ThreeWheelSwerveSystemConfig]

A three wheel swerve system.

Parameters:

config (ThreeWheelSwerveSystemConfig)

turning_center_motor: RobstrideMotor

The center turning motor. Turning motors control the angle the wheels are facing (yaw).

turning_right_motor: RobstrideMotor

The right turning motor. Turning motors control the angle the wheels are facing (yaw).

turning_left_motor: RobstrideMotor

The left turning motor. Turning motors control the angle the wheels are facing (yaw).

drive_center_motor: RobstrideMotor

The center drive motor. Drive motors control the speed of the robot.

drive_right_motor: RobstrideMotor

The right drive motor. Drive motors control the speed of the robot.

drive_left_motor: RobstrideMotor

The left drive motor. Drive motors control the speed of the robot.

recalibrate(allow_load=None)

Recalibrate the three wheel swerve system.

Parameters:

allow_load (bool | None) – If True, allow the system to load calibration state from file instead of recalibrating. If None, use the per-actuator config’s allow_load_calibration value.

Return type:

None

orient_and_move(angle, motor_velocity)

Orient and move the robot to the target orientation and velocity.

Parameters:
  • angle (float) – The target angle in radians to point the turning motors to. Must be between -pi and pi.

  • motor_velocity (float) – The target velocity of the drive motors in radians per second. Not the actual velocity of the robot. Must be between 0 and the maximum velocity.

Return type:

None

rotate_in_place(motor_velocity)

Rotate the robot in place to the target orientation.

Parameters:
  • target_motor_velocity – The target velocity of the drive motors in radians per second. Not the actual angular velocity of the robot.

  • motor_velocity (float)

Return type:

None

set_speed(motor_velocity)

Set the speed for the drive motors. Keeps their current angles.

Parameters:

motor_velocity (float) – The target velocity of the drive motors in radians per second. Not the actual velocity of the robot. Must be between 0 and the maximum velocity.

Return type:

None

on_power_event(event)

Handle power events from the BatterySystem.

Parameters:

event (PowerEvent)

disable()

Disable the motors

Return type:

None