Files
YAGSL/docs/frc/robot/subsystems/swervedrive/swerve/kinematics/SwerveModuleState2.html
2023-01-31 10:52:13 -06:00

479 lines
17 KiB
HTML

<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.13) on Tue Jan 31 10:51:37 CST 2023 -->
<title>SwerveModuleState2</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2023-01-31">
<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>
<li><a href="class-use/SwerveModuleState2.html">Use</a></li>
<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&nbsp;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:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</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">&nbsp;</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>&nbsp;<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&lt;edu.wpi.first.math.kinematics.SwerveModuleState&gt;</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">&nbsp;</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&nbsp;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">&nbsp;</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>&#8203;(double&nbsp;speedMetersPerSecond,
edu.wpi.first.math.geometry.Rotation2d&nbsp;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>&#8203;(double&nbsp;speedMetersPerSecond,
edu.wpi.first.math.geometry.Rotation2d&nbsp;angle,
double&nbsp;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>&#8203;(edu.wpi.first.math.kinematics.SwerveModuleState&nbsp;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">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</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>&#8203;(<a href="SwerveModuleState2.html" title="class in frc.robot.subsystems.swervedrive.swerve.kinematics">SwerveModuleState2</a>&nbsp;desiredState,
edu.wpi.first.math.geometry.Rotation2d&nbsp;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>&#8203;(double&nbsp;scopeReference,
double&nbsp;newAngle)</code></th>
<td class="colLast">&nbsp;</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&nbsp;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&nbsp;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&nbsp;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="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SwerveModuleState2</h4>
<pre>public&nbsp;SwerveModuleState2()</pre>
<div class="block">Constructs a SwerveModuleState with zeros for speed and angle.</div>
</li>
</ul>
<a id="&lt;init&gt;(edu.wpi.first.math.kinematics.SwerveModuleState)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SwerveModuleState2</h4>
<pre>public&nbsp;SwerveModuleState2&#8203;(edu.wpi.first.math.kinematics.SwerveModuleState&nbsp;self)</pre>
<div class="block">Constructs a SwerveModuleState with zeros for speed and angle.</div>
</li>
</ul>
<a id="&lt;init&gt;(double,edu.wpi.first.math.geometry.Rotation2d)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SwerveModuleState2</h4>
<pre>public&nbsp;SwerveModuleState2&#8203;(double&nbsp;speedMetersPerSecond,
edu.wpi.first.math.geometry.Rotation2d&nbsp;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="&lt;init&gt;(double,edu.wpi.first.math.geometry.Rotation2d,double)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SwerveModuleState2</h4>
<pre>public&nbsp;SwerveModuleState2&#8203;(double&nbsp;speedMetersPerSecond,
edu.wpi.first.math.geometry.Rotation2d&nbsp;angle,
double&nbsp;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&nbsp;<a href="SwerveModuleState2.html" title="class in frc.robot.subsystems.swervedrive.swerve.kinematics">SwerveModuleState2</a>&nbsp;optimize&#8203;(<a href="SwerveModuleState2.html" title="class in frc.robot.subsystems.swervedrive.swerve.kinematics">SwerveModuleState2</a>&nbsp;desiredState,
edu.wpi.first.math.geometry.Rotation2d&nbsp;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&nbsp;double&nbsp;placeInAppropriate0To360Scope&#8203;(double&nbsp;scopeReference,
double&nbsp;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>
<li><a href="class-use/SwerveModuleState2.html">Use</a></li>
<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&nbsp;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:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</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>