Maurice 2025
Team 668's robot for Reefscape
Loading...
Searching...
No Matches
PositionalSubsystem Class Reference
Inheritance diagram for PositionalSubsystem:

Public Member Functions

 __init__ (self, str name, int motorID, configs.TalonFXConfiguration motorConfig, sysidConfig sysidConf, float limitWaitingDistance, Union[float, None] positionSetErrorBounds=None, Union[int, None] followerID=None, units.turns conversionRate=1/360, Union[int, None] encoderID=None, Union[configs.CANcoderConfiguration, None] encoderConfig=None, Union[float, None] initialPosition=None, Union[units.inches, units.degrees] initialTarget=0)
 
 get (self, bool useTurns=False)
 
bool inPosition (self)
 
 limit (self, Tuple[units.degrees] newLimits)
 
 periodic (self)
 
 set (self, Union[units.inches, units.degrees, None] target)
 
 setEnabled (self, bool state)
 
commands2.Command sys_id_dynamic (self, SysIdRoutine.Direction direction)
 
commands2.Command sys_id_quasistatic (self, SysIdRoutine.Direction direction)
 

Public Attributes

 configs = motorConfig
 
 conversionRate = conversionRate
 
bool enabled = True
 
 encoder = CANcoder(encoderID)
 
 follower = TalonFX(followerID)
 
 lim_target = DebugSender(self.getName()+"LimTarget",False,)
 
tuple limits = (-2,2)
 
units.turns limitWaitingDistance = limitWaitingDistance * self.conversionRate
 
 motor = TalonFX(motorID)
 
 pos_debug = DebugSender(self.getName()+"Position",False,self.get)
 
units.turns positionSetErrorBounds
 
 prevGoal = None
 
 sys_id_routine
 
units.turns target = target*self.conversionRate
 
 target_debug = DebugSender(self.getName()+"Target",False,lambda: self.target/self.conversionRate)
 
 voltage_req = controls.VoltageOut(0)
 

Constructor & Destructor Documentation

◆ __init__()

__init__ ( self,
str name,
int motorID,
configs.TalonFXConfiguration motorConfig,
sysidConfig sysidConf,
float limitWaitingDistance,
Union[float, None] positionSetErrorBounds = None,
Union[int, None] followerID = None,
units.turns conversionRate = 1/360,
Union[int, None] encoderID = None,
Union[configs.CANcoderConfiguration, None] encoderConfig = None,
Union[float, None] initialPosition = None,
Union[units.inches, units.degrees] initialTarget = 0 )

Member Function Documentation

◆ get()

get ( self,
bool useTurns = False )

◆ inPosition()

bool inPosition ( self)

◆ limit()

limit ( self,
Tuple[units.degrees] newLimits )

◆ periodic()

periodic ( self)

◆ set()

set ( self,
Union[units.inches,units.degrees,None] target )

◆ setEnabled()

setEnabled ( self,
bool state )

◆ sys_id_dynamic()

commands2.Command sys_id_dynamic ( self,
SysIdRoutine.Direction direction )

◆ sys_id_quasistatic()

commands2.Command sys_id_quasistatic ( self,
SysIdRoutine.Direction direction )

Member Data Documentation

◆ configs

configs = motorConfig

◆ conversionRate

conversionRate = conversionRate

◆ enabled

bool enabled = True

◆ encoder

encoder = CANcoder(encoderID)

◆ follower

follower = TalonFX(followerID)

◆ lim_target

lim_target = DebugSender(self.getName()+"LimTarget",False,)

◆ limits

tuple limits = (-2,2)

◆ limitWaitingDistance

units.turns limitWaitingDistance = limitWaitingDistance * self.conversionRate

◆ motor

motor = TalonFX(motorID)

◆ pos_debug

pos_debug = DebugSender(self.getName()+"Position",False,self.get)

◆ positionSetErrorBounds

units.turns positionSetErrorBounds
Initial value:
= self.conversionRate * positionSetErrorBounds \
if positionSetErrorBounds is not None else self.limitWaitingDistance

◆ prevGoal

prevGoal = None

◆ sys_id_routine

sys_id_routine
Initial value:
= SysIdRoutine(
SysIdRoutine.Config(
stepVoltage = sysidConf.stepVoltage,
rampRate = sysidConf.rampRate,
timeout = sysidConf.timeout,
recordState = lambda state: SignalLogger.write_string("state", SysIdRoutineLog.stateEnumToString(state))
),
SysIdRoutine.Mechanism(
lambda volts: self.motor.set_control(self.voltage_req.with_output(volts)),
lambda log: None,
self
)
)

◆ target

units.turns target = target*self.conversionRate

◆ target_debug

target_debug = DebugSender(self.getName()+"Target",False,lambda: self.target/self.conversionRate)

◆ voltage_req

voltage_req = controls.VoltageOut(0)

The documentation for this class was generated from the following file: