2023-01-29 21:03:26 -06:00
<!DOCTYPE HTML>
<!-- NewPage -->
< html lang = "en" >
< head >
2023-01-31 10:52:13 -06:00
<!-- Generated by javadoc (11.0.13) on Tue Jan 31 10:51:37 CST 2023 -->
2023-01-29 21:03:26 -06:00
< title > SwerveModuleState2< / title >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
2023-01-31 10:52:13 -06:00
< meta name = "dc.created" content = "2023-01-31" >
2023-01-29 21:03:26 -06:00
< link rel = "stylesheet" type = "text/css" href = "../../../../../../stylesheet.css" title = "Style" >
< link rel = "stylesheet" type = "text/css" href = "../../../../../../jquery/jquery-ui.css" title = "Style" >
< script type = "text/javascript" src = "../../../../../../script.js" > < / script >
< script type = "text/javascript" src = "../../../../../../jquery/jszip/dist/jszip.min.js" > < / script >
< script type = "text/javascript" src = "../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js" > < / script >
<!-- [if IE]>
< script type = "text/javascript" src = "../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js" > < / script >
<![endif]-->
< script type = "text/javascript" src = "../../../../../../jquery/jquery-3.5.1.js" > < / script >
< script type = "text/javascript" src = "../../../../../../jquery/jquery-ui.js" > < / script >
< / head >
< body >
< script type = "text/javascript" > < ! - -
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SwerveModuleState2";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');< / script >
< noscript >
< div > JavaScript is disabled on your browser.< / div >
< / noscript >
< header role = "banner" >
< nav role = "navigation" >
< div class = "fixedNav" >
<!-- ========= START OF TOP NAVBAR ======= -->
< div class = "topNav" > < a id = "navbar.top" >
<!-- -->
< / a >
< div class = "skipNav" > < a href = "#skip.navbar.top" title = "Skip navigation links" > Skip navigation links< / a > < / div >
< a id = "navbar.top.firstrow" >
<!-- -->
< / a >
< ul class = "navList" title = "Navigation" >
< li > < a href = "../../../../../../index.html" > Overview< / a > < / li >
< li > < a href = "package-summary.html" > Package< / a > < / li >
< li class = "navBarCell1Rev" > Class< / li >
2023-01-31 10:52:13 -06:00
< li > < a href = "class-use/SwerveModuleState2.html" > Use< / a > < / li >
2023-01-29 21:03:26 -06:00
< li > < a href = "package-tree.html" > Tree< / a > < / li >
< li > < a href = "../../../../../../deprecated-list.html" > Deprecated< / a > < / li >
< li > < a href = "../../../../../../index-files/index-1.html" > Index< / a > < / li >
< li > < a href = "../../../../../../help-doc.html" > Help< / a > < / li >
< / ul >
< / div >
< div class = "subNav" >
< ul class = "navList" id = "allclasses_navbar_top" >
< li > < a href = "../../../../../../allclasses.html" > All Classes< / a > < / li >
< / ul >
< ul class = "navListSearch" >
< li > < label for = "search" > SEARCH:< / label >
< input type = "text" id = "search" value = "search" disabled = "disabled" >
< input type = "reset" id = "reset" value = "reset" disabled = "disabled" >
< / li >
< / ul >
< div >
< script type = "text/javascript" > < ! - -
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
< / script >
< noscript >
< div > JavaScript is disabled on your browser.< / div >
< / noscript >
< / div >
< div >
< ul class = "subNavList" >
< li > Summary: < / li >
< li > Nested | < / li >
< li > < a href = "#field.summary" > Field< / a > | < / li >
< li > < a href = "#constructor.summary" > Constr< / a > | < / li >
< li > < a href = "#method.summary" > Method< / a > < / li >
< / ul >
< ul class = "subNavList" >
< li > Detail: < / li >
< li > < a href = "#field.detail" > Field< / a > | < / li >
< li > < a href = "#constructor.detail" > Constr< / a > | < / li >
< li > < a href = "#method.detail" > Method< / a > < / li >
< / ul >
< / div >
< a id = "skip.navbar.top" >
<!-- -->
< / a > < / div >
<!-- ========= END OF TOP NAVBAR ========= -->
< / div >
< div class = "navPadding" > < / div >
< script type = "text/javascript" > < ! - -
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
< / script >
< / nav >
< / header >
<!-- ======== START OF CLASS DATA ======== -->
< main role = "main" >
< div class = "header" >
< div class = "subTitle" > < span class = "packageLabelInType" > Package< / span > < a href = "package-summary.html" > frc.robot.subsystems.swervedrive.swerve.kinematics< / a > < / div >
< h2 title = "Class SwerveModuleState2" class = "title" > Class SwerveModuleState2< / h2 >
< / div >
< div class = "contentContainer" >
< ul class = "inheritance" >
< li > java.lang.Object< / li >
< li >
< ul class = "inheritance" >
< li > edu.wpi.first.math.kinematics.SwerveModuleState< / li >
< li >
< ul class = "inheritance" >
< li > frc.robot.subsystems.swervedrive.swerve.kinematics.SwerveModuleState2< / li >
< / ul >
< / li >
< / ul >
< / li >
< / ul >
< div class = "description" >
< ul class = "blockList" >
< li class = "blockList" >
< dl >
< dt > All Implemented Interfaces:< / dt >
< dd > < code > java.lang.Comparable< edu.wpi.first.math.kinematics.SwerveModuleState> < / code > < / dd >
< / dl >
< hr >
< pre > public class < span class = "typeNameLabel" > SwerveModuleState2< / span >
extends edu.wpi.first.math.kinematics.SwerveModuleState< / pre >
< / li >
< / ul >
< / div >
< div class = "summary" >
< ul class = "blockList" >
< li class = "blockList" >
<!-- =========== FIELD SUMMARY =========== -->
< section role = "region" >
< ul class = "blockList" >
< li class = "blockList" > < a id = "field.summary" >
<!-- -->
< / a >
< h3 > Field Summary< / h3 >
< table class = "memberSummary" >
< caption > < span > Fields< / span > < span class = "tabEnd" > < / span > < / caption >
< tr >
< th class = "colFirst" scope = "col" > Modifier and Type< / th >
< th class = "colSecond" scope = "col" > Field< / th >
< th class = "colLast" scope = "col" > Description< / th >
< / tr >
< tr class = "altColor" >
< td class = "colFirst" > < code > double< / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#angularVelocityRadPerSecond" > angularVelocityRadPerSecond< / a > < / span > < / code > < / th >
< td class = "colLast" >
< div class = "block" > Angular velocity in radians per second.< / div >
< / td >
< / tr >
< / table >
< ul class = "blockList" >
< li class = "blockList" > < a id = "fields.inherited.from.class.edu.wpi.first.math.kinematics.SwerveModuleState" >
<!-- -->
< / a >
< h3 > Fields inherited from class edu.wpi.first.math.kinematics.SwerveModuleState< / h3 >
< code > angle, speedMetersPerSecond< / code > < / li >
< / ul >
< / li >
< / ul >
< / section >
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
< section role = "region" >
< ul class = "blockList" >
< li class = "blockList" > < a id = "constructor.summary" >
<!-- -->
< / a >
< h3 > Constructor Summary< / h3 >
< table class = "memberSummary" >
< caption > < span > Constructors< / span > < span class = "tabEnd" > < / span > < / caption >
< tr >
< th class = "colFirst" scope = "col" > Constructor< / th >
< th class = "colLast" scope = "col" > Description< / th >
< / tr >
< tr class = "altColor" >
< th class = "colConstructorName" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#%3Cinit%3E()" > SwerveModuleState2< / a > < / span > ()< / code > < / th >
< td class = "colLast" >
< div class = "block" > Constructs a SwerveModuleState with zeros for speed and angle.< / div >
< / td >
< / tr >
< tr class = "rowColor" >
< th class = "colConstructorName" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#%3Cinit%3E(double,edu.wpi.first.math.geometry.Rotation2d)" > SwerveModuleState2< / a > < / span > ​ (double speedMetersPerSecond,
edu.wpi.first.math.geometry.Rotation2d angle)< / code > < / th >
< td class = "colLast" >
< div class = "block" > Constructs a SwerveModuleState.< / div >
< / td >
< / tr >
< tr class = "altColor" >
< th class = "colConstructorName" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#%3Cinit%3E(double,edu.wpi.first.math.geometry.Rotation2d,double)" > SwerveModuleState2< / a > < / span > ​ (double speedMetersPerSecond,
edu.wpi.first.math.geometry.Rotation2d angle,
double angularVelocityRadPerSecond)< / code > < / th >
< td class = "colLast" >
< div class = "block" > Constructs a SwerveModuleState.< / div >
< / td >
< / tr >
< tr class = "rowColor" >
< th class = "colConstructorName" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#%3Cinit%3E(edu.wpi.first.math.kinematics.SwerveModuleState)" > SwerveModuleState2< / a > < / span > ​ (edu.wpi.first.math.kinematics.SwerveModuleState self)< / code > < / th >
< td class = "colLast" >
< div class = "block" > Constructs a SwerveModuleState with zeros for speed and angle.< / div >
< / td >
< / tr >
< / table >
< / li >
< / ul >
< / section >
<!-- ========== METHOD SUMMARY =========== -->
< section role = "region" >
< ul class = "blockList" >
< li class = "blockList" > < a id = "method.summary" >
<!-- -->
< / a >
< h3 > Method Summary< / h3 >
< table class = "memberSummary" >
< caption > < span id = "t0" class = "activeTableTab" > < span > All Methods< / span > < span class = "tabEnd" > < / span > < / span > < span id = "t1" class = "tableTab" > < span > < a href = "javascript:show(1);" > Static Methods< / a > < / span > < span class = "tabEnd" > < / span > < / span > < span id = "t4" class = "tableTab" > < span > < a href = "javascript:show(8);" > Concrete Methods< / a > < / span > < span class = "tabEnd" > < / span > < / span > < / caption >
< tr >
< th class = "colFirst" scope = "col" > Modifier and Type< / th >
< th class = "colSecond" scope = "col" > Method< / th >
< th class = "colLast" scope = "col" > Description< / th >
< / tr >
< tr id = "i0" class = "altColor" >
< td class = "colFirst" > < code > static < a href = "SwerveModuleState2.html" title = "class in frc.robot.subsystems.swervedrive.swerve.kinematics" > SwerveModuleState2< / a > < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#optimize(frc.robot.subsystems.swervedrive.swerve.kinematics.SwerveModuleState2,edu.wpi.first.math.geometry.Rotation2d)" > optimize< / a > < / span > ​ (< a href = "SwerveModuleState2.html" title = "class in frc.robot.subsystems.swervedrive.swerve.kinematics" > SwerveModuleState2< / a > desiredState,
edu.wpi.first.math.geometry.Rotation2d currentAngle)< / code > < / th >
< td class = "colLast" >
< div class = "block" > Minimize the change in heading the desired swerve module state would require by potentially reversing the direction
the wheel spins.< / div >
< / td >
< / tr >
< tr id = "i1" class = "rowColor" >
< td class = "colFirst" > < code > static double< / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#placeInAppropriate0To360Scope(double,double)" > placeInAppropriate0To360Scope< / a > < / span > ​ (double scopeReference,
double newAngle)< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< / table >
< ul class = "blockList" >
< li class = "blockList" > < a id = "methods.inherited.from.class.edu.wpi.first.math.kinematics.SwerveModuleState" >
<!-- -->
< / a >
< h3 > Methods inherited from class edu.wpi.first.math.kinematics.SwerveModuleState< / h3 >
< code > compareTo, equals, hashCode, optimize, toString< / code > < / li >
< / ul >
< ul class = "blockList" >
< li class = "blockList" > < a id = "methods.inherited.from.class.java.lang.Object" >
<!-- -->
< / a >
< h3 > Methods inherited from class java.lang.Object< / h3 >
< code > clone, finalize, getClass, notify, notifyAll, wait, wait, wait< / code > < / li >
< / ul >
< / li >
< / ul >
< / section >
< / li >
< / ul >
< / div >
< div class = "details" >
< ul class = "blockList" >
< li class = "blockList" >
<!-- ============ FIELD DETAIL =========== -->
< section role = "region" >
< ul class = "blockList" >
< li class = "blockList" > < a id = "field.detail" >
<!-- -->
< / a >
< h3 > Field Detail< / h3 >
< a id = "angularVelocityRadPerSecond" >
<!-- -->
< / a >
< ul class = "blockListLast" >
< li class = "blockList" >
< h4 > angularVelocityRadPerSecond< / h4 >
< pre > public double angularVelocityRadPerSecond< / pre >
< div class = "block" > Angular velocity in radians per second. Angular Velocity = omega.< / div >
< / li >
< / ul >
< / li >
< / ul >
< / section >
<!-- ========= CONSTRUCTOR DETAIL ======== -->
< section role = "region" >
< ul class = "blockList" >
< li class = "blockList" > < a id = "constructor.detail" >
<!-- -->
< / a >
< h3 > Constructor Detail< / h3 >
< a id = "<init>()" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > SwerveModuleState2< / h4 >
< pre > public SwerveModuleState2()< / pre >
< div class = "block" > Constructs a SwerveModuleState with zeros for speed and angle.< / div >
< / li >
< / ul >
< a id = "<init>(edu.wpi.first.math.kinematics.SwerveModuleState)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > SwerveModuleState2< / h4 >
< pre > public SwerveModuleState2​ (edu.wpi.first.math.kinematics.SwerveModuleState self)< / pre >
< div class = "block" > Constructs a SwerveModuleState with zeros for speed and angle.< / div >
< / li >
< / ul >
< a id = "<init>(double,edu.wpi.first.math.geometry.Rotation2d)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > SwerveModuleState2< / h4 >
< pre > public SwerveModuleState2​ (double speedMetersPerSecond,
edu.wpi.first.math.geometry.Rotation2d angle)< / pre >
< div class = "block" > Constructs a SwerveModuleState.< / div >
< dl >
< dt > < span class = "paramLabel" > Parameters:< / span > < / dt >
< dd > < code > speedMetersPerSecond< / code > - The speed of the wheel of the module.< / dd >
< dd > < code > angle< / code > - The angle of the module.< / dd >
< / dl >
< / li >
< / ul >
< a id = "<init>(double,edu.wpi.first.math.geometry.Rotation2d,double)" >
<!-- -->
< / a >
< ul class = "blockListLast" >
< li class = "blockList" >
< h4 > SwerveModuleState2< / h4 >
< pre > public SwerveModuleState2​ (double speedMetersPerSecond,
edu.wpi.first.math.geometry.Rotation2d angle,
double angularVelocityRadPerSecond)< / pre >
< div class = "block" > Constructs a SwerveModuleState.< / div >
< dl >
< dt > < span class = "paramLabel" > Parameters:< / span > < / dt >
< dd > < code > speedMetersPerSecond< / code > - The speed of the wheel of the module.< / dd >
< dd > < code > angle< / code > - The angle of the module.< / dd >
< dd > < code > angularVelocityRadPerSecond< / code > - The angular velocity of the module.< / dd >
< / dl >
< / li >
< / ul >
< / li >
< / ul >
< / section >
<!-- ============ METHOD DETAIL ========== -->
< section role = "region" >
< ul class = "blockList" >
< li class = "blockList" > < a id = "method.detail" >
<!-- -->
< / a >
< h3 > Method Detail< / h3 >
< a id = "optimize(frc.robot.subsystems.swervedrive.swerve.kinematics.SwerveModuleState2,edu.wpi.first.math.geometry.Rotation2d)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > optimize< / h4 >
< pre class = "methodSignature" > public static < a href = "SwerveModuleState2.html" title = "class in frc.robot.subsystems.swervedrive.swerve.kinematics" > SwerveModuleState2< / a > optimize​ (< a href = "SwerveModuleState2.html" title = "class in frc.robot.subsystems.swervedrive.swerve.kinematics" > SwerveModuleState2< / a > desiredState,
edu.wpi.first.math.geometry.Rotation2d currentAngle)< / pre >
< div class = "block" > Minimize the change in heading the desired swerve module state would require by potentially reversing the direction
the wheel spins. Customized from WPILib's version to include placing in appropriate scope for CTRE and REV onboard
control as both controllers as of writing don't have support for continuous input.< / div >
< dl >
< dt > < span class = "paramLabel" > Parameters:< / span > < / dt >
< dd > < code > desiredState< / code > - The desired state.< / dd >
< dd > < code > currentAngle< / code > - The current module angle.< / dd >
< / dl >
< / li >
< / ul >
< a id = "placeInAppropriate0To360Scope(double,double)" >
<!-- -->
< / a >
< ul class = "blockListLast" >
< li class = "blockList" >
< h4 > placeInAppropriate0To360Scope< / h4 >
< pre class = "methodSignature" > public static double placeInAppropriate0To360Scope​ (double scopeReference,
double newAngle)< / pre >
< dl >
< dt > < span class = "paramLabel" > Parameters:< / span > < / dt >
< dd > < code > scopeReference< / code > - Current Angle< / dd >
< dd > < code > newAngle< / code > - Target Angle< / dd >
< dt > < span class = "returnLabel" > Returns:< / span > < / dt >
< dd > Closest angle within scope< / dd >
< / dl >
< / li >
< / ul >
< / li >
< / ul >
< / section >
< / li >
< / ul >
< / div >
< / div >
< / main >
<!-- ========= END OF CLASS DATA ========= -->
< footer role = "contentinfo" >
< nav role = "navigation" >
<!-- ======= START OF BOTTOM NAVBAR ====== -->
< div class = "bottomNav" > < a id = "navbar.bottom" >
<!-- -->
< / a >
< div class = "skipNav" > < a href = "#skip.navbar.bottom" title = "Skip navigation links" > Skip navigation links< / a > < / div >
< a id = "navbar.bottom.firstrow" >
<!-- -->
< / a >
< ul class = "navList" title = "Navigation" >
< li > < a href = "../../../../../../index.html" > Overview< / a > < / li >
< li > < a href = "package-summary.html" > Package< / a > < / li >
< li class = "navBarCell1Rev" > Class< / li >
2023-01-31 10:52:13 -06:00
< li > < a href = "class-use/SwerveModuleState2.html" > Use< / a > < / li >
2023-01-29 21:03:26 -06:00
< li > < a href = "package-tree.html" > Tree< / a > < / li >
< li > < a href = "../../../../../../deprecated-list.html" > Deprecated< / a > < / li >
< li > < a href = "../../../../../../index-files/index-1.html" > Index< / a > < / li >
< li > < a href = "../../../../../../help-doc.html" > Help< / a > < / li >
< / ul >
< / div >
< div class = "subNav" >
< ul class = "navList" id = "allclasses_navbar_bottom" >
< li > < a href = "../../../../../../allclasses.html" > All Classes< / a > < / li >
< / ul >
< div >
< script type = "text/javascript" > < ! - -
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
< / script >
< noscript >
< div > JavaScript is disabled on your browser.< / div >
< / noscript >
< / div >
< div >
< ul class = "subNavList" >
< li > Summary: < / li >
< li > Nested | < / li >
< li > < a href = "#field.summary" > Field< / a > | < / li >
< li > < a href = "#constructor.summary" > Constr< / a > | < / li >
< li > < a href = "#method.summary" > Method< / a > < / li >
< / ul >
< ul class = "subNavList" >
< li > Detail: < / li >
< li > < a href = "#field.detail" > Field< / a > | < / li >
< li > < a href = "#constructor.detail" > Constr< / a > | < / li >
< li > < a href = "#method.detail" > Method< / a > < / li >
< / ul >
< / div >
< a id = "skip.navbar.bottom" >
<!-- -->
< / a > < / div >
<!-- ======== END OF BOTTOM NAVBAR ======= -->
< / nav >
< / footer >
< / body >
< / html >