-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOdometry.java
More file actions
39 lines (32 loc) · 1.29 KB
/
Odometry.java
File metadata and controls
39 lines (32 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package frc.excalib.control.odometry;
import edu.wpi.first.math.estimator.SwerveDrivePoseEstimator;
import edu.wpi.first.math.geometry.Pose2d;
import edu.wpi.first.math.geometry.Rotation2d;
import edu.wpi.first.math.kinematics.SwerveDriveKinematics;
import edu.wpi.first.math.kinematics.SwerveModulePosition;
import java.util.function.Supplier;
public class Odometry extends SwerveDrivePoseEstimator {
private final Supplier<Rotation2d> m_YAW_SUPPLIER;
private Pose2d m_robotPose;
public Odometry(
SwerveDriveKinematics swerveDrive,
SwerveModulePosition[] modulesPositions,
Supplier<Rotation2d> angleSupplier,
Pose2d initialPose) {
super(swerveDrive, angleSupplier.get(), modulesPositions, initialPose);
m_YAW_SUPPLIER = angleSupplier;
m_robotPose = initialPose;
}
public Pose2d getRobotPose() {
return m_robotPose;
}
public void updateOdometry(SwerveModulePosition[] modulesPositions) {
m_robotPose = super.update(
m_YAW_SUPPLIER.get(),
modulesPositions
);
}
public void resetOdometry(SwerveModulePosition[] modulesPositions, Pose2d newInitialPose) {
super.resetPosition(m_YAW_SUPPLIER.get(), modulesPositions, newInitialPose);
}
}