def new_new_swerve(self): # if thr is None: throttle = -config.controller.getRawAxis(XboxAxis.R_Y) # else: # throttle = thr # if rot is None: rot = config.controller.getRawAxis(XboxAxis.L_X) # else: # self.target = rot # deadband zone if throttle < 0.25 and throttle > -0.25: throttle = 0 if rot < 0.25 and rot > -0.25: rot = 0 self.enc_ += rot self.target += self.seek_to(self.enc_) if self.target > self.max: self.target = self.max elif self.target < self.min: self.target = self.min while_timer = Timer() for_timer = Timer() current = [ self.seek_to(config.encoders[enc].get()) for enc in range(4) ] motor_values = self.setMotorValues(current[0]) while_timer.start() for_timer.start() while self.notInPosition( current, motor_values) and while_timer.hasPeriodPassed(.2): for enc in range(4): config.steering_motors[enc].set(0.2 * motor_values[enc]) if for_timer.hasPeriodPassed(.03): for enc in range(4): config.steering_motors[enc].set(0) for_timer.reset() current = [ self.seek_to(config.encoders[enc].get()) for enc in range(4) ] for_timer.stop() while_timer.stop() for mtr in config.driving_motors: mtr.set(throttle)
def __init__(self): super().__init__("Respond to Controller") self.sd = NetworkTables.getTable("SmartDashboard") self.logger = logging.getLogger("robot") oi.start_btn.whenPressed(SwitchCamera()) self.timer = Timer() self.right_bumper_last = False self.left_bumper_last = False
def new_swerve(self): throttle = -config.controller.getRawAxis(XboxAxis.R_Y) rot = config.controller.getRawAxis(XboxAxis.L_X) # deadband zone if throttle < 0.25 and throttle > -0.25: throttle = 0 if rot < 0.25 and rot > -0.25: rot = 0 logging.write_log([self.target, rot]) self.target += rot * 10 inverse = False stop = False t = Timer() t.start() for m in range(len(config.steering_motors)): t.reset() logging.write_log("Turning") while (not config.encoders[m].get() < self.target + 15 or \ not config.encoders[m].get() > self.target - 15) and \ not stop: if not inverse: config.steering_motors[m].set( (1 * -copysign(1, rot)) * (self.target - config.encoders[m].get())) else: config.steering_motors[m].set( (1 * copysign(1, rot)) * (config.encoders[m].get() - self.target)) logging.write_log(config.encoders[m].get()) if t.hasPeriodPassed(1.5): inverse = True stop = True break config.steering_motors[m].set(0) t.stop() for i in range(len(config.driving_motors)): if (i % 2): config.driving_motors[i].set(throttle) else: config.driving_motors[i].set(-throttle)
def __init__(self, inches: float, speed: float, timeout=0.0): super().__init__() angular_gains = (0.02, 0.0001, 0.02, 0.0) self._target_distance = inches self._speed = speed self._angular = 0 self.timer = Timer() self.angular_controller = PIDController( *angular_gains, RobotMap.driver_component.driver_gyro, output=self) self.angular_controller.setInputRange(-360, 360) self.angular_controller.setOutputRange(-1, 1) self.angular_controller.setAbsoluteTolerance(0.5) self.angular_controller.setSetpoint(0) self._timeout = timeout
def __init__(self): super().__init__() self.timer = Timer() self.phase = 0
def __init__(self, speed=1): super().__init__() self.timer = Timer() self._speed = -speed
def __init__(self): super.__init__() self.timer = Timer()
def __init__(self, seconds: float, speed: float): super().__init__() self._target_seconds = seconds self._speed = speed self.timer = Timer()