Bölüm 64 — Kod İskeleti: SwerveSubsystem ve Kinematics
1 dk okuma
Dört SwerveModule nesnesi, SwerveSubsystem içinde bir araya gelir ve WPILib'in SwerveDriveKinematics sınıfı, sürücünün "ileri git + sağa dön" gibi isteklerini her modülün hız/açısına çevirir:
SwerveDriveKinematics kinematics = new SwerveDriveKinematics(
frontLeftLocation, frontRightLocation,
backLeftLocation, backRightLocation);
public void drive(double xSpeed, double ySpeed, double rotRate, boolean fieldRelative) {
ChassisSpeeds speeds = fieldRelative
? ChassisSpeeds.fromFieldRelativeSpeeds(xSpeed, ySpeed, rotRate, getPose().getRotation())
: new ChassisSpeeds(xSpeed, ySpeed, rotRate);
SwerveModuleState[] states = kinematics.toSwerveModuleStates(speeds);
SwerveDriveKinematics.desaturateWheelSpeeds(states, MAX_SPEED_MPS);
frontLeft.setDesiredState(states[0]);
frontRight.setDesiredState(states[1]);
backLeft.setDesiredState(states[2]);
backRight.setDesiredState(states[3]);
}"Field-relative" (saha eksenine göre) sürüş, swerve'ün en güçlü özelliklerinden biridir: joystick'i hep "ileri" ittiğinizde robot, kendi yönü ne olursa olsun, HEP sahanın aynı yönüne gider. Bunun için Pigeon 2'den gelen açı bilgisi kullanılır.
#Alfa Robotics 8084#8084#Alfa Robot#Atatürk Mesleki ve Teknik Anadolu Lisesi#FRC El Kitabı#Swerve Sürüş Sistemi: Sıfırdan Kurulum#Kod İskeleti: SwerveSubsystem ve Kinematics