Exemple #1
0
class Drive(Subsystem):
    def __init__(self):
        super().__init__('Drive')

        # These can be used individually, but you should use RobotDrive to controll these
        self.LB = Motor(ids.LB_motor)
        self.LF = Motor(ids.LF_motor)
        self.RB = Motor(ids.RB_motor)
        self.RF = Motor(ids.RF_motor)

        self.drive_train = RobotDrive(self.LF, self.LB, self.RF, self.RB)
        self.drive_train.setInvertedMotor(0, True)
        self.drive_train.setInvertedMotor(1, True)
        self.drive_train.setExpiration(0.1)

        ## Uncomment to fail
        #import time
        #time.sleep(5)
        # doesn't work bc HAL Resource error
        #self.pcm0 = Solenoid(ids.PCM_pin0)
        #self.pcm1 = Solenoid(ids.PCM_pin1)

    def tank(self, L_speed, R_speed):
        self.drive_train.tankDrive(L_speed, R_speed, squaredInputs=False)

    def mecanum_cartesian(self, X_speed, Y_speed, R_speed=0, gyroHeading=0):
        self.drive_train.mecanumDrive_Cartesian(X_speed, Y_speed, R_speed,
                                                gyroHeading)

    def mecanum_polar(self, _speed, _direction, R_speed=0):
        self.drive_train.mecanumDrive_Polar(_speed, _direction, R_speed)