Added more encoder support, possible advantagescope support.

This commit is contained in:
thenetworkgrinch
2023-02-21 22:38:14 -06:00
parent 24e0a2d43c
commit 8bfa4a8824
114 changed files with 1455 additions and 399 deletions

View File

@@ -0,0 +1,86 @@
package swervelib.telemetry;
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
/**
* Telemetry to describe the {@link swervelib.SwerveDrive} following frc-web-components. (Which follows AdvantageKit)
*/
public class SwerveDriveTelemetry
{
/**
* The number of swerve modules
*/
public static int moduleCount;
/**
* The number of swerve modules
*/
public static double[] wheelLocations;
/**
* An array of rotation and velocity values describing the measured state of each swerve module
*/
public static double[] measuredStates;
/**
* An array of rotation and velocity values describing the desired state of each swerve module
*/
public static double[] desiredStates;
/**
* The robot's current rotation based on odometry or gyro readings
*/
public static double robotRotation = 0;
/**
* The maximum achievable speed of the modules, used to adjust the size of the vectors.
*/
public static double maxSpeed;
/**
* The units of the module rotations and robot rotation
*/
public static String rotationUnit = "degrees";
/**
* The distance between the left and right modules.
*/
public static double sizeLeftRight;
/**
* The distance between the front and back modules.
*/
public static double sizeFrontBack;
/**
* The direction the robot should be facing when the "Robot Rotation" is zero or blank. This option is often useful to
* align with odometry data or match videos. 'up', 'right', 'down' or 'left'
*/
public static String forwardDirection = "up";
/**
* The maximum achievable angular velocity of the robot. This is used to visualize the angular velocity from the
* chassis speeds properties.
*/
public static double maxAngularVelocity;
/**
* The maximum achievable angular velocity of the robot. This is used to visualize the angular velocity from the
* chassis speeds properties.
*/
public static double[] measuredChassisSpeeds = new double[3];
/**
* Describes the desired forward, sideways and angular velocity of the robot.
*/
public static double[] desiredChassisSpeeds = new double[3];
/**
* Upload data to smartdashboard
*/
public static void updateData()
{
SmartDashboard.putNumber("/swerve/moduleCount", moduleCount);
SmartDashboard.putNumberArray("/swerve/wheelLocations", wheelLocations);
SmartDashboard.putNumberArray("/swerve/measuredStates", measuredStates);
SmartDashboard.putNumberArray("/swerve/desiredStates", desiredStates);
SmartDashboard.putNumber("/swerve/robotRotation", robotRotation);
SmartDashboard.putNumber("/swerve/maxSpeed", maxSpeed);
SmartDashboard.putString("/swerve/rotationUnit", rotationUnit);
SmartDashboard.putNumber("/swerve/sizeLeftRight", sizeLeftRight);
SmartDashboard.putNumber("/swerve/sizeFrontBack", sizeFrontBack);
SmartDashboard.putString("/swerve/forwardDirection", forwardDirection);
SmartDashboard.putNumber("/swerve/maxAngularVelocity", maxAngularVelocity);
SmartDashboard.putNumberArray("/swerve/measuredChassisSpeeds", measuredChassisSpeeds);
SmartDashboard.putNumberArray("/swerve/desiredChassisSpeeds", desiredChassisSpeeds);
}
}