Class MecanumDriveKinematicsConstraint
- java.lang.Object
-
- edu.wpi.first.math.trajectory.constraint.MecanumDriveKinematicsConstraint
-
- All Implemented Interfaces:
TrajectoryConstraint
public class MecanumDriveKinematicsConstraint extends Object implements TrajectoryConstraint
A class that enforces constraints on the mecanum drive kinematics. This can be used to ensure that the trajectory is constructed so that the commanded velocities for all 4 wheels of the drivetrain stay below a certain limit.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface edu.wpi.first.math.trajectory.constraint.TrajectoryConstraint
TrajectoryConstraint.MinMax
-
-
Constructor Summary
Constructors Constructor Description MecanumDriveKinematicsConstraint(MecanumDriveKinematics kinematics, double maxSpeedMetersPerSecond)
Constructs a mecanum drive kinematics constraint.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getMaxVelocityMetersPerSecond(Pose2d poseMeters, double curvatureRadPerMeter, double velocityMetersPerSecond)
Returns the max velocity given the current pose and curvature.TrajectoryConstraint.MinMax
getMinMaxAccelerationMetersPerSecondSq(Pose2d poseMeters, double curvatureRadPerMeter, double velocityMetersPerSecond)
Returns the minimum and maximum allowable acceleration for the trajectory given pose, curvature, and speed.
-
-
-
Constructor Detail
-
MecanumDriveKinematicsConstraint
public MecanumDriveKinematicsConstraint(MecanumDriveKinematics kinematics, double maxSpeedMetersPerSecond)
Constructs a mecanum drive kinematics constraint.- Parameters:
kinematics
- Mecanum drive kinematics.maxSpeedMetersPerSecond
- The max speed that a side of the robot can travel at.
-
-
Method Detail
-
getMaxVelocityMetersPerSecond
public double getMaxVelocityMetersPerSecond(Pose2d poseMeters, double curvatureRadPerMeter, double velocityMetersPerSecond)
Returns the max velocity given the current pose and curvature.- Specified by:
getMaxVelocityMetersPerSecond
in interfaceTrajectoryConstraint
- Parameters:
poseMeters
- The pose at the current point in the trajectory.curvatureRadPerMeter
- The curvature at the current point in the trajectory.velocityMetersPerSecond
- The velocity at the current point in the trajectory before constraints are applied.- Returns:
- The absolute maximum velocity.
-
getMinMaxAccelerationMetersPerSecondSq
public TrajectoryConstraint.MinMax getMinMaxAccelerationMetersPerSecondSq(Pose2d poseMeters, double curvatureRadPerMeter, double velocityMetersPerSecond)
Returns the minimum and maximum allowable acceleration for the trajectory given pose, curvature, and speed.- Specified by:
getMinMaxAccelerationMetersPerSecondSq
in interfaceTrajectoryConstraint
- Parameters:
poseMeters
- The pose at the current point in the trajectory.curvatureRadPerMeter
- The curvature at the current point in the trajectory.velocityMetersPerSecond
- The speed at the current point in the trajectory.- Returns:
- The min and max acceleration bounds.
-
-