Updated javadocs

This commit is contained in:
thenetworkgrinch
2023-08-09 16:23:30 -05:00
parent de4e35db62
commit 38c7bdba7d
156 changed files with 3972 additions and 33744 deletions

View File

@@ -1,18 +1,17 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sat Apr 08 13:46:47 CDT 2023 -->
<title>Matter</title>
<!-- Generated by javadoc (17) -->
<title>Matter (YAGSL-Lib API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2023-04-08">
<meta name="description" content="declaration: package: swervelib.math, class: Matter">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
@@ -36,7 +35,7 @@ loadScripts(document, 'script');</script>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html#class">Help</a></li>
</ul>
</div>

View File

@@ -1,18 +1,17 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sat Apr 08 13:46:47 CDT 2023 -->
<title>SwerveDriveOdometry2</title>
<!-- Generated by javadoc (17) -->
<title>SwerveDriveOdometry2 (YAGSL-Lib API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2023-04-08">
<meta name="description" content="declaration: package: swervelib.math, class: SwerveDriveOdometry2">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
@@ -36,7 +35,7 @@ loadScripts(document, 'script');</script>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html#class">Help</a></li>
</ul>
</div>
@@ -45,13 +44,13 @@ loadScripts(document, 'script');</script>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
@@ -72,66 +71,21 @@ loadScripts(document, 'script');</script>
<h1 title="Class SwerveDriveOdometry2" class="title">Class SwerveDriveOdometry2</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">edu.wpi.first.math.kinematics.Odometry&lt;edu.wpi.first.math.kinematics.SwerveDriveWheelPositions&gt;
<div class="inheritance">edu.wpi.first.math.kinematics.SwerveDriveOdometry
<div class="inheritance">swervelib.math.SwerveDriveOdometry2</div>
</div>
</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">SwerveDriveOdometry2</span>
<span class="extends-implements">extends edu.wpi.first.math.kinematics.SwerveDriveOdometry</span></div>
<div class="block">Clone of <code>SwerveDriveOdometry</code> except uses gyro pitch and roll to achieve a more accurate estimation.
Originally made by Team 1466.</div>
<div class="block">Clone of <code>SwerveDriveOdometry</code> except uses gyro pitch and roll to achieve a more accurate
estimation. Originally made by Team 1466.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private edu.wpi.first.math.geometry.Rotation2d</code></div>
<div class="col-second even-row-color"><code><a href="#m_gyroOffset" class="member-name-link">m_gyroOffset</a></code></div>
<div class="col-last even-row-color">
<div class="block">Gyro offset.</div>
</div>
<div class="col-first odd-row-color"><code>private final edu.wpi.first.math.kinematics.SwerveDriveKinematics</code></div>
<div class="col-second odd-row-color"><code><a href="#m_kinematics" class="member-name-link">m_kinematics</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Swerve drive kinematics.</div>
</div>
<div class="col-first even-row-color"><code>private final int</code></div>
<div class="col-second even-row-color"><code><a href="#m_numModules" class="member-name-link">m_numModules</a></code></div>
<div class="col-last even-row-color">
<div class="block">Number of swerve modules.</div>
</div>
<div class="col-first odd-row-color"><code>private edu.wpi.first.math.geometry.Pose2d</code></div>
<div class="col-second odd-row-color"><code><a href="#m_poseMeters" class="member-name-link">m_poseMeters</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Estimated pose.</div>
</div>
<div class="col-first even-row-color"><code>private edu.wpi.first.math.geometry.Rotation2d</code></div>
<div class="col-second even-row-color"><code><a href="#m_previousAngle" class="member-name-link">m_previousAngle</a></code></div>
<div class="col-last even-row-color">
<div class="block">Previous gyroscope angle.</div>
</div>
<div class="col-first odd-row-color"><code>private final edu.wpi.first.math.kinematics.SwerveModulePosition[]</code></div>
<div class="col-second odd-row-color"><code><a href="#m_previousModulePositions" class="member-name-link">m_previousModulePositions</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Previous swerve module positions.</div>
</div>
<div class="col-first even-row-color"><code>private final edu.wpi.first.math.kinematics.SwerveModuleState[]</code></div>
<div class="col-second even-row-color"><code><a href="#m_zeroModuleStates" class="member-name-link">m_zeroModuleStates</a></code></div>
<div class="col-last even-row-color">
<div class="block">Zero module states.</div>
</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
@@ -185,14 +139,15 @@ loadScripts(document, 'script');</script>
edu.wpi.first.math.geometry.Rotation2d&nbsp;roll,
edu.wpi.first.math.kinematics.SwerveModulePosition[]&nbsp;modulePositions)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Updates the robot's position on the field using forward kinematics and integration of the pose over time.</div>
<div class="block">Updates the robot's position on the field using forward kinematics and integration of the pose
over time.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-edu.wpi.first.math.kinematics.SwerveDriveOdometry">Methods inherited from class&nbsp;edu.wpi.first.math.kinematics.SwerveDriveOdometry</h3>
<code>update</code></div>
<code>resetPosition, update, update</code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
@@ -202,63 +157,6 @@ loadScripts(document, 'script');</script>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="m_kinematics">
<h3>m_kinematics</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.kinematics.SwerveDriveKinematics</span>&nbsp;<span class="element-name">m_kinematics</span></div>
<div class="block">Swerve drive kinematics.</div>
</section>
</li>
<li>
<section class="detail" id="m_numModules">
<h3>m_numModules</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">m_numModules</span></div>
<div class="block">Number of swerve modules.</div>
</section>
</li>
<li>
<section class="detail" id="m_previousModulePositions">
<h3>m_previousModulePositions</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.kinematics.SwerveModulePosition[]</span>&nbsp;<span class="element-name">m_previousModulePositions</span></div>
<div class="block">Previous swerve module positions.</div>
</section>
</li>
<li>
<section class="detail" id="m_zeroModuleStates">
<h3>m_zeroModuleStates</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.kinematics.SwerveModuleState[]</span>&nbsp;<span class="element-name">m_zeroModuleStates</span></div>
<div class="block">Zero module states.</div>
</section>
</li>
<li>
<section class="detail" id="m_poseMeters">
<h3>m_poseMeters</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">edu.wpi.first.math.geometry.Pose2d</span>&nbsp;<span class="element-name">m_poseMeters</span></div>
<div class="block">Estimated pose.</div>
</section>
</li>
<li>
<section class="detail" id="m_gyroOffset">
<h3>m_gyroOffset</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">edu.wpi.first.math.geometry.Rotation2d</span>&nbsp;<span class="element-name">m_gyroOffset</span></div>
<div class="block">Gyro offset.</div>
</section>
</li>
<li>
<section class="detail" id="m_previousAngle">
<h3>m_previousAngle</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">edu.wpi.first.math.geometry.Rotation2d</span>&nbsp;<span class="element-name">m_previousAngle</span></div>
<div class="block">Previous gyroscope angle.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
@@ -333,7 +231,7 @@ loadScripts(document, 'script');</script>
<div class="block">Returns the position of the robot on the field.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code>getPoseMeters</code>&nbsp;in class&nbsp;<code>edu.wpi.first.math.kinematics.SwerveDriveOdometry</code></dd>
<dd><code>getPoseMeters</code>&nbsp;in class&nbsp;<code>edu.wpi.first.math.kinematics.Odometry&lt;edu.wpi.first.math.kinematics.SwerveDriveWheelPositions&gt;</code></dd>
<dt>Returns:</dt>
<dd>The pose of the robot (x and y are in meters).</dd>
</dl>
@@ -346,18 +244,19 @@ loadScripts(document, 'script');</script>
edu.wpi.first.math.geometry.Rotation2d&nbsp;pitch,
edu.wpi.first.math.geometry.Rotation2d&nbsp;roll,
edu.wpi.first.math.kinematics.SwerveModulePosition[]&nbsp;modulePositions)</span></div>
<div class="block">Updates the robot's position on the field using forward kinematics and integration of the pose over time. This
method automatically calculates the current time to calculate period (difference between two timestamps). The
period is used to calculate the change in distance from a velocity. This also takes in an angle parameter which is
used instead of the angular rate that is calculated from forward kinematics. This also takes in pitch and roll to
allow for more accurate pose estimation on angled surfaces using a rotation matrix.</div>
<div class="block">Updates the robot's position on the field using forward kinematics and integration of the pose
over time. This method automatically calculates the current time to calculate period
(difference between two timestamps). The period is used to calculate the change in distance
from a velocity. This also takes in an angle parameter which is used instead of the angular
rate that is calculated from forward kinematics. This also takes in pitch and roll to allow for
more accurate pose estimation on angled surfaces using a rotation matrix.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>gyroYaw</code> - The yaw reported by the gyro.</dd>
<dd><code>pitch</code> - The pitch reported by the gyro.</dd>
<dd><code>roll</code> - The roll reported by the gyro.</dd>
<dd><code>modulePositions</code> - The current position of all swerve modules. Please provide the positions in the same order
in which you instantiated your SwerveDriveKinematics.</dd>
<dd><code>modulePositions</code> - The current position of all swerve modules. Please provide the positions
in the same order in which you instantiated your SwerveDriveKinematics.</dd>
<dt>Returns:</dt>
<dd>The new pose of the robot.</dd>
</dl>

View File

@@ -1,18 +1,17 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sat Apr 08 13:46:47 CDT 2023 -->
<title>SwerveKinematics2</title>
<!-- Generated by javadoc (17) -->
<title>SwerveKinematics2 (YAGSL-Lib API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2023-04-08">
<meta name="description" content="declaration: package: swervelib.math, class: SwerveKinematics2">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
@@ -36,7 +35,7 @@ loadScripts(document, 'script');</script>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html#class">Help</a></li>
</ul>
</div>
@@ -44,14 +43,14 @@ loadScripts(document, 'script');</script>
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
@@ -77,69 +76,26 @@ loadScripts(document, 'script');</script>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code>edu.wpi.first.math.kinematics.Kinematics&lt;edu.wpi.first.math.kinematics.SwerveDriveKinematics.SwerveDriveWheelStates,<wbr>edu.wpi.first.math.kinematics.SwerveDriveWheelPositions&gt;</code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">SwerveKinematics2</span>
<span class="extends-implements">extends edu.wpi.first.math.kinematics.SwerveDriveKinematics</span></div>
<div class="block">Clone of WPI SwerveKinematics, which implements second order kinematics when calculating modules states from chassis
speed. Makes use of <a href="SwerveModuleState2.html" title="class in swervelib.math"><code>SwerveModuleState2</code></a> to add the angular velocity that is required of the module as an
output.</div>
<div class="block">Clone of WPI SwerveKinematics, which implements second order kinematics when calculating modules
states from chassis speed. Makes use of <a href="SwerveModuleState2.html" title="class in swervelib.math"><code>SwerveModuleState2</code></a> to add the angular velocity
that is required of the module as an output.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private final org.ejml.simple.SimpleMatrix</code></div>
<div class="col-second even-row-color"><code><a href="#bigInverseKinematics" class="member-name-link">bigInverseKinematics</a></code></div>
<div class="col-last even-row-color">
<div class="block">Second order kinematics inverse matrix.</div>
</div>
<div class="col-first odd-row-color"><code>private final org.ejml.simple.SimpleMatrix</code></div>
<div class="col-second odd-row-color"><code><a href="#m_forwardKinematics" class="member-name-link">m_forwardKinematics</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Forward kinematics matrix.</div>
</div>
<div class="col-first even-row-color"><code>private final org.ejml.simple.SimpleMatrix</code></div>
<div class="col-second even-row-color"><code><a href="#m_inverseKinematics" class="member-name-link">m_inverseKinematics</a></code></div>
<div class="col-last even-row-color">
<div class="block">Inverse kinematics matrix.</div>
</div>
<div class="col-first odd-row-color"><code>private final edu.wpi.first.wpilibj.Timer</code></div>
<div class="col-second odd-row-color"><code><a href="#m_moduleAccelTimer" class="member-name-link">m_moduleAccelTimer</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private final edu.wpi.first.math.geometry.Translation2d[]</code></div>
<div class="col-second even-row-color"><code><a href="#m_modules" class="member-name-link">m_modules</a></code></div>
<div class="col-last even-row-color">
<div class="block">Location of each swerve module in meters.</div>
</div>
<div class="col-first odd-row-color"><code>private final <a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a>[]</code></div>
<div class="col-second odd-row-color"><code><a href="#m_moduleStates" class="member-name-link">m_moduleStates</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Swerve module states.</div>
</div>
<div class="col-first even-row-color"><code>private final int</code></div>
<div class="col-second even-row-color"><code><a href="#m_numModules" class="member-name-link">m_numModules</a></code></div>
<div class="col-last even-row-color">
<div class="block">Number of swerve modules.</div>
</div>
<div class="col-first odd-row-color"><code>private edu.wpi.first.math.kinematics.ChassisSpeeds</code></div>
<div class="col-second odd-row-color"><code><a href="#m_prevChassisSpeeds" class="member-name-link">m_prevChassisSpeeds</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private edu.wpi.first.math.geometry.Translation2d</code></div>
<div class="col-second even-row-color"><code><a href="#m_prevCoR" class="member-name-link">m_prevCoR</a></code></div>
<div class="col-last even-row-color">
<div class="block">Previous CoR</div>
</div>
<div class="col-first odd-row-color"><code>private double</code></div>
<div class="col-second odd-row-color"><code><a href="#m_prevModuleAccelTime" class="member-name-link">m_prevModuleAccelTime</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="inherited-list">
<h2 id="nested-classes-inherited-from-class-edu.wpi.first.math.kinematics.SwerveDriveKinematics">Nested classes/interfaces inherited from class&nbsp;edu.wpi.first.math.kinematics.SwerveDriveKinematics</h2>
<code>edu.wpi.first.math.kinematics.SwerveDriveKinematics.SwerveDriveWheelStates</code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
@@ -181,8 +137,8 @@ loadScripts(document, 'script');</script>
double&nbsp;attainableMaxTranslationalSpeedMetersPerSecond,
double&nbsp;attainableMaxRotationalVelocityRadiansPerSecond)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Renormalizes the wheel speeds if any individual speed is above the specified maximum, as well as getting rid of
joystick saturation at edges of joystick.</div>
<div class="block">Renormalizes the wheel speeds if any individual speed is above the specified maximum, as well
as getting rid of joystick saturation at edges of joystick.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>edu.wpi.first.math.kinematics.ChassisSpeeds</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toChassisSpeeds(swervelib.math.SwerveModuleState2...)" class="member-name-link">toChassisSpeeds</a><wbr>(<a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a>...&nbsp;wheelStates)</code></div>
@@ -210,7 +166,7 @@ loadScripts(document, 'script');</script>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-edu.wpi.first.math.kinematics.SwerveDriveKinematics">Methods inherited from class&nbsp;edu.wpi.first.math.kinematics.SwerveDriveKinematics</h3>
<code>desaturateWheelSpeeds, desaturateWheelSpeeds, toChassisSpeeds</code></div>
<code>desaturateWheelSpeeds, desaturateWheelSpeeds, resetHeadings, toChassisSpeeds, toChassisSpeeds, toTwist2d, toWheelSpeeds</code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
@@ -220,81 +176,6 @@ loadScripts(document, 'script');</script>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="m_inverseKinematics">
<h3>m_inverseKinematics</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">org.ejml.simple.SimpleMatrix</span>&nbsp;<span class="element-name">m_inverseKinematics</span></div>
<div class="block">Inverse kinematics matrix.</div>
</section>
</li>
<li>
<section class="detail" id="m_forwardKinematics">
<h3>m_forwardKinematics</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">org.ejml.simple.SimpleMatrix</span>&nbsp;<span class="element-name">m_forwardKinematics</span></div>
<div class="block">Forward kinematics matrix.</div>
</section>
</li>
<li>
<section class="detail" id="bigInverseKinematics">
<h3>bigInverseKinematics</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">org.ejml.simple.SimpleMatrix</span>&nbsp;<span class="element-name">bigInverseKinematics</span></div>
<div class="block">Second order kinematics inverse matrix.</div>
</section>
</li>
<li>
<section class="detail" id="m_numModules">
<h3>m_numModules</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">m_numModules</span></div>
<div class="block">Number of swerve modules.</div>
</section>
</li>
<li>
<section class="detail" id="m_modules">
<h3>m_modules</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.geometry.Translation2d[]</span>&nbsp;<span class="element-name">m_modules</span></div>
<div class="block">Location of each swerve module in meters.</div>
</section>
</li>
<li>
<section class="detail" id="m_moduleStates">
<h3>m_moduleStates</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a>[]</span>&nbsp;<span class="element-name">m_moduleStates</span></div>
<div class="block">Swerve module states.</div>
</section>
</li>
<li>
<section class="detail" id="m_moduleAccelTimer">
<h3>m_moduleAccelTimer</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.wpilibj.Timer</span>&nbsp;<span class="element-name">m_moduleAccelTimer</span></div>
</section>
</li>
<li>
<section class="detail" id="m_prevCoR">
<h3>m_prevCoR</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">edu.wpi.first.math.geometry.Translation2d</span>&nbsp;<span class="element-name">m_prevCoR</span></div>
<div class="block">Previous CoR</div>
</section>
</li>
<li>
<section class="detail" id="m_prevChassisSpeeds">
<h3>m_prevChassisSpeeds</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">edu.wpi.first.math.kinematics.ChassisSpeeds</span>&nbsp;<span class="element-name">m_prevChassisSpeeds</span></div>
</section>
</li>
<li>
<section class="detail" id="m_prevModuleAccelTime">
<h3>m_prevModuleAccelTime</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">double</span>&nbsp;<span class="element-name">m_prevModuleAccelTime</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
@@ -304,10 +185,10 @@ loadScripts(document, 'script');</script>
<section class="detail" id="&lt;init&gt;(edu.wpi.first.math.geometry.Translation2d...)">
<h3>SwerveKinematics2</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">SwerveKinematics2</span><wbr><span class="parameters">(edu.wpi.first.math.geometry.Translation2d...&nbsp;wheelsMeters)</span></div>
<div class="block">Constructs a swerve drive kinematics object. This takes in a variable number of wheel locations as Translation2ds.
The order in which you pass in the wheel locations is the same order that you will receive the module states when
performing inverse kinematics. It is also expected that you pass in the module states in the same order when
calling the forward kinematics methods.</div>
<div class="block">Constructs a swerve drive kinematics object. This takes in a variable number of wheel locations
as Translation2ds. The order in which you pass in the wheel locations is the same order that
you will receive the module states when performing inverse kinematics. It is also expected that
you pass in the module states in the same order when calling the forward kinematics methods.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>wheelsMeters</code> - The locations of the wheels relative to the physical center of the robot.</dd>
@@ -330,13 +211,13 @@ loadScripts(document, 'script');</script>
<div class="block">Renormalizes the wheel speeds if any individual speed is above the specified maximum.
<p>Sometimes, after inverse kinematics, the requested speed from one or more modules may be
above the max attainable speed for the driving motor on that module. To fix this issue, one can reduce all the
wheel speeds to make sure that all requested module speeds are at-or-below the absolute threshold, while
maintaining the ratio of speeds between modules.</div>
above the max attainable speed for the driving motor on that module. To fix this issue, one can
reduce all the wheel speeds to make sure that all requested module speeds are at-or-below the
absolute threshold, while maintaining the ratio of speeds between modules.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>moduleStates</code> - Reference to array of module states. The array will be mutated with the
normalized speeds!</dd>
normalized speeds!</dd>
<dd><code>attainableMaxSpeedMetersPerSecond</code> - The absolute max speed that a module can reach.</dd>
</dl>
</section>
@@ -349,22 +230,23 @@ loadScripts(document, 'script');</script>
double&nbsp;attainableMaxModuleSpeedMetersPerSecond,
double&nbsp;attainableMaxTranslationalSpeedMetersPerSecond,
double&nbsp;attainableMaxRotationalVelocityRadiansPerSecond)</span></div>
<div class="block">Renormalizes the wheel speeds if any individual speed is above the specified maximum, as well as getting rid of
joystick saturation at edges of joystick.
<div class="block">Renormalizes the wheel speeds if any individual speed is above the specified maximum, as well
as getting rid of joystick saturation at edges of joystick.
<p>Sometimes, after inverse kinematics, the requested speed from one or more modules may be
above the max attainable speed for the driving motor on that module. To fix this issue, one can reduce all the
wheel speeds to make sure that all requested module speeds are at-or-below the absolute threshold, while
maintaining the ratio of speeds between modules.</div>
above the max attainable speed for the driving motor on that module. To fix this issue, one can
reduce all the wheel speeds to make sure that all requested module speeds are at-or-below the
absolute threshold, while maintaining the ratio of speeds between modules.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>moduleStates</code> - Reference to array of module states. The array will be
mutated with the normalized speeds!</dd>
<dd><code>moduleStates</code> - Reference to array of module states. The array will be mutated with the
normalized speeds!</dd>
<dd><code>currentChassisSpeed</code> - The current speed of the robot</dd>
<dd><code>attainableMaxModuleSpeedMetersPerSecond</code> - The absolute max speed that a module can reach</dd>
<dd><code>attainableMaxTranslationalSpeedMetersPerSecond</code> - The absolute max speed that your robot can reach while
translating</dd>
<dd><code>attainableMaxRotationalVelocityRadiansPerSecond</code> - The absolute max speed the robot can reach while rotating</dd>
<dd><code>attainableMaxTranslationalSpeedMetersPerSecond</code> - The absolute max speed that your robot
can reach while translating</dd>
<dd><code>attainableMaxRotationalVelocityRadiansPerSecond</code> - The absolute max speed the robot can
reach while rotating</dd>
</dl>
</section>
</li>
@@ -373,13 +255,13 @@ loadScripts(document, 'script');</script>
<h3>toSwerveModuleStates</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a>[]</span>&nbsp;<span class="element-name">toSwerveModuleStates</span><wbr><span class="parameters">(edu.wpi.first.math.kinematics.ChassisSpeeds&nbsp;chassisSpeeds,
edu.wpi.first.math.geometry.Translation2d&nbsp;centerOfRotationMeters)</span></div>
<div class="block">Performs inverse kinematics to return the module states from a desired chassis velocity. This method is often used
to convert joystick values into module speeds and angles.
<div class="block">Performs inverse kinematics to return the module states from a desired chassis velocity. This
method is often used to convert joystick values into module speeds and angles.
<p>This function also supports variable centers of rotation. During normal operations, the
center of rotation is usually the same as the physical center of the robot; therefore, the argument is defaulted to
that use case. However, if you wish to change the center of rotation for evasive maneuvers, vision alignment, or
for any other use case, you can do so.
center of rotation is usually the same as the physical center of the robot; therefore, the
argument is defaulted to that use case. However, if you wish to change the center of rotation
for evasive maneuvers, vision alignment, or for any other use case, you can do so.
<p>In the case that the desired chassis speeds are zero (i.e. the robot will be stationary),
the previously calculated module angle will be maintained.</div>
@@ -388,13 +270,13 @@ loadScripts(document, 'script');</script>
<dd><code>toSwerveModuleStates</code>&nbsp;in class&nbsp;<code>edu.wpi.first.math.kinematics.SwerveDriveKinematics</code></dd>
<dt>Parameters:</dt>
<dd><code>chassisSpeeds</code> - The desired chassis speed.</dd>
<dd><code>centerOfRotationMeters</code> - The center of rotation. For example, if you set the center of rotation at one corner
of the robot and provide a chassis speed that only has a dtheta component, the robot
will rotate around that corner.</dd>
<dd><code>centerOfRotationMeters</code> - The center of rotation. For example, if you set the center of
rotation at one corner of the robot and provide a chassis speed that only has a dtheta
component, the robot will rotate around that corner.</dd>
<dt>Returns:</dt>
<dd>An array containing the module states. Use caution because these module states are not normalized.
Sometimes, a user input may cause one of the module speeds to go above the attainable max velocity. Use the
<a href="#desaturateWheelSpeeds(swervelib.math.SwerveModuleState2%5B%5D,double)"><code>DesaturateWheelSpeeds</code></a> function to rectify this issue.</dd>
<dd>An array containing the module states. Use caution because these module states are not
normalized. Sometimes, a user input may cause one of the module speeds to go above the
attainable max velocity. Use the <a href="#desaturateWheelSpeeds(swervelib.math.SwerveModuleState2%5B%5D,double)"><code>DesaturateWheelSpeeds</code></a> function to rectify this issue.</dd>
</dl>
</section>
</li>
@@ -402,8 +284,8 @@ loadScripts(document, 'script');</script>
<section class="detail" id="toSwerveModuleStates(edu.wpi.first.math.kinematics.ChassisSpeeds)">
<h3>toSwerveModuleStates</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a>[]</span>&nbsp;<span class="element-name">toSwerveModuleStates</span><wbr><span class="parameters">(edu.wpi.first.math.kinematics.ChassisSpeeds&nbsp;chassisSpeeds)</span></div>
<div class="block">Performs inverse kinematics. See <a href="#toSwerveModuleStates(edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Translation2d)"><code>toSwerveModuleStates(ChassisSpeeds, Translation2d)</code></a> toSwerveModuleStates
for more information.</div>
<div class="block">Performs inverse kinematics. See <a href="#toSwerveModuleStates(edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Translation2d)"><code>toSwerveModuleStates(ChassisSpeeds, Translation2d)</code></a>
toSwerveModuleStates for more information.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code>toSwerveModuleStates</code>&nbsp;in class&nbsp;<code>edu.wpi.first.math.kinematics.SwerveDriveKinematics</code></dd>
@@ -418,14 +300,14 @@ loadScripts(document, 'script');</script>
<section class="detail" id="toChassisSpeeds(swervelib.math.SwerveModuleState2...)">
<h3>toChassisSpeeds</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">edu.wpi.first.math.kinematics.ChassisSpeeds</span>&nbsp;<span class="element-name">toChassisSpeeds</span><wbr><span class="parameters">(<a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a>...&nbsp;wheelStates)</span></div>
<div class="block">Performs forward kinematics to return the resulting chassis state from the given module states. This method is
often used for odometry -- determining the robot's position on the field using data from the real-world speed and
angle of each module on the robot.</div>
<div class="block">Performs forward kinematics to return the resulting chassis state from the given module states.
This method is often used for odometry -- determining the robot's position on the field using
data from the real-world speed and angle of each module on the robot.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>wheelStates</code> - The state of the modules (as a SwerveModuleState type) as measured from respective encoders and
gyros. The order of the swerve module states should be same as passed into the constructor of
this class.</dd>
<dd><code>wheelStates</code> - The state of the modules (as a SwerveModuleState type) as measured from
respective encoders and gyros. The order of the swerve module states should be same as
passed into the constructor of this class.</dd>
<dt>Returns:</dt>
<dd>The resulting chassis speed.</dd>
</dl>
@@ -435,16 +317,16 @@ loadScripts(document, 'script');</script>
<section class="detail" id="toTwist2d(edu.wpi.first.math.kinematics.SwerveModulePosition...)">
<h3>toTwist2d</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">edu.wpi.first.math.geometry.Twist2d</span>&nbsp;<span class="element-name">toTwist2d</span><wbr><span class="parameters">(edu.wpi.first.math.kinematics.SwerveModulePosition...&nbsp;wheelDeltas)</span></div>
<div class="block">Performs forward kinematics to return the resulting chassis state from the given module states. This method is
often used for odometry -- determining the robot's position on the field using data from the real-world speed and
angle of each module on the robot.</div>
<div class="block">Performs forward kinematics to return the resulting chassis state from the given module states.
This method is often used for odometry -- determining the robot's position on the field using
data from the real-world speed and angle of each module on the robot.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code>toTwist2d</code>&nbsp;in class&nbsp;<code>edu.wpi.first.math.kinematics.SwerveDriveKinematics</code></dd>
<dt>Parameters:</dt>
<dd><code>wheelDeltas</code> - The latest change in position of the modules (as a SwerveModulePosition type) as measured from
respective encoders and gyros. The order of the swerve module states should be same as passed
into the constructor of this class.</dd>
<dd><code>wheelDeltas</code> - The latest change in position of the modules (as a SwerveModulePosition
type) as measured from respective encoders and gyros. The order of the swerve module states
should be same as passed into the constructor of this class.</dd>
<dt>Returns:</dt>
<dd>The resulting Twist2d.</dd>
</dl>

View File

@@ -1,18 +1,17 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sat Apr 08 13:46:47 CDT 2023 -->
<title>SwerveMath</title>
<!-- Generated by javadoc (17) -->
<title>SwerveMath (YAGSL-Lib API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2023-04-08">
<meta name="description" content="declaration: package: swervelib.math, class: SwerveMath">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
@@ -36,7 +35,7 @@ loadScripts(document, 'script');</script>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html#class">Help</a></li>
</ul>
</div>
@@ -120,80 +119,73 @@ loadScripts(document, 'script');</script>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Algebraically apply a deadband using a piece wise function.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>private static double</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d,java.util.List,double,swervelib.parser.SwerveDriveConfiguration)" class="member-name-link">calcMaxAccel</a><wbr>(edu.wpi.first.math.geometry.Rotation2d&nbsp;angle,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="Matter.html" title="class in swervelib.math">Matter</a>&gt;&nbsp;matter,
double&nbsp;robotMass,
<a href="../parser/SwerveDriveConfiguration.html" title="class in swervelib.parser">SwerveDriveConfiguration</a>&nbsp;config)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Calculates the maximum acceleration allowed in a direction without tipping the robot.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static double</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#calculateDegreesPerSteeringRotation(double,double)" class="member-name-link">calculateDegreesPerSteeringRotation</a><wbr>(double&nbsp;angleGearRatio,
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static double</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#calculateDegreesPerSteeringRotation(double,double)" class="member-name-link">calculateDegreesPerSteeringRotation</a><wbr>(double&nbsp;angleGearRatio,
double&nbsp;pulsePerRotation)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Calculate the degrees per steering rotation for the integrated encoder.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static double</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#calculateMaxAcceleration(double)" class="member-name-link">calculateMaxAcceleration</a><wbr>(double&nbsp;cof)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Calculate the practical maximum acceleration of the robot using the wheel coefficient of friction.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static double</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#calculateMaxAcceleration(double,double,double,double,double)" class="member-name-link">calculateMaxAcceleration</a><wbr>(double&nbsp;stallTorqueNm,
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#calculateMaxAcceleration(double)" class="member-name-link">calculateMaxAcceleration</a><wbr>(double&nbsp;cof)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Calculate the practical maximum acceleration of the robot using the wheel coefficient of
friction.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static double</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#calculateMaxAcceleration(double,double,double,double,double)" class="member-name-link">calculateMaxAcceleration</a><wbr>(double&nbsp;stallTorqueNm,
double&nbsp;gearRatio,
double&nbsp;moduleCount,
double&nbsp;wheelDiameter,
double&nbsp;robotMass)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Calculate the maximum theoretical acceleration without friction.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static double</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#calculateMaxAngularVelocity(double,double,double)" class="member-name-link">calculateMaxAngularVelocity</a><wbr>(double&nbsp;maxSpeed,
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static double</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#calculateMaxAngularVelocity(double,double,double)" class="member-name-link">calculateMaxAngularVelocity</a><wbr>(double&nbsp;maxSpeed,
double&nbsp;furthestModuleX,
double&nbsp;furthestModuleY)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Calculate the maximum angular velocity.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static double</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#calculateMetersPerRotation(double,double,double)" class="member-name-link">calculateMetersPerRotation</a><wbr>(double&nbsp;wheelDiameter,
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static double</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#calculateMetersPerRotation(double,double,double)" class="member-name-link">calculateMetersPerRotation</a><wbr>(double&nbsp;wheelDiameter,
double&nbsp;driveGearRatio,
double&nbsp;pulsePerRotation)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Calculate the meters per rotation for the integrated encoder.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="../parser/SwerveModuleConfiguration.html" title="class in swervelib.parser">SwerveModuleConfiguration</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getSwerveModule(swervelib.SwerveModule%5B%5D,boolean,boolean)" class="member-name-link">getSwerveModule</a><wbr>(<a href="../SwerveModule.html" title="class in swervelib">SwerveModule</a>[]&nbsp;modules,
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="../parser/SwerveModuleConfiguration.html" title="class in swervelib.parser">SwerveModuleConfiguration</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getSwerveModule(swervelib.SwerveModule%5B%5D,boolean,boolean)" class="member-name-link">getSwerveModule</a><wbr>(<a href="../SwerveModule.html" title="class in swervelib">SwerveModule</a>[]&nbsp;modules,
boolean&nbsp;front,
boolean&nbsp;left)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Get the fruthest module from center based on the module locations.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static edu.wpi.first.math.geometry.Translation2d</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#limitVelocity(edu.wpi.first.math.geometry.Translation2d,edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Pose2d,double,double,java.util.List,swervelib.parser.SwerveDriveConfiguration)" class="member-name-link">limitVelocity</a><wbr>(edu.wpi.first.math.geometry.Translation2d&nbsp;commandedVelocity,
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static edu.wpi.first.math.geometry.Translation2d</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#limitVelocity(edu.wpi.first.math.geometry.Translation2d,edu.wpi.first.math.kinematics.ChassisSpeeds,edu.wpi.first.math.geometry.Pose2d,double,double,java.util.List,swervelib.parser.SwerveDriveConfiguration)" class="member-name-link">limitVelocity</a><wbr>(edu.wpi.first.math.geometry.Translation2d&nbsp;commandedVelocity,
edu.wpi.first.math.kinematics.ChassisSpeeds&nbsp;fieldVelocity,
edu.wpi.first.math.geometry.Pose2d&nbsp;robotPose,
double&nbsp;loopTime,
double&nbsp;robotMass,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="Matter.html" title="class in swervelib.math">Matter</a>&gt;&nbsp;matter,
<a href="../parser/SwerveDriveConfiguration.html" title="class in swervelib.parser">SwerveDriveConfiguration</a>&nbsp;config)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Limits a commanded velocity to prevent exceeding the maximum acceleration given by <a href="#calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d,java.util.List,double,swervelib.parser.SwerveDriveConfiguration)"><code>calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d, java.util.List&lt;swervelib.math.Matter&gt;, double, swervelib.parser.SwerveDriveConfiguration)</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static double</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#normalizeAngle(double)" class="member-name-link">normalizeAngle</a><wbr>(double&nbsp;angle)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Normalize an angle to be within 0 to 360.</div>
<div class="block">Limits a commanded velocity to prevent exceeding the maximum acceleration given by <code>calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d, java.util.List&lt;swervelib.math.Matter&gt;, double, swervelib.parser.SwerveDriveConfiguration)</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static double</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#placeInAppropriate0To360Scope(double,double)" class="member-name-link">placeInAppropriate0To360Scope</a><wbr>(double&nbsp;scopeReference,
double&nbsp;newAngle)</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#normalizeAngle(double)" class="member-name-link">normalizeAngle</a><wbr>(double&nbsp;angle)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Normalize an angle to be within 0 to 360.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static double</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#placeInAppropriate0To360Scope(double,double)" class="member-name-link">placeInAppropriate0To360Scope</a><wbr>(double&nbsp;scopeReference,
double&nbsp;newAngle)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Put an angle within the 360 deg scope of a reference.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static edu.wpi.first.math.geometry.Twist2d</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#PoseLog(edu.wpi.first.math.geometry.Pose2d)" class="member-name-link">PoseLog</a><wbr>(edu.wpi.first.math.geometry.Pose2d&nbsp;transform)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static edu.wpi.first.math.geometry.Twist2d</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#PoseLog(edu.wpi.first.math.geometry.Pose2d)" class="member-name-link">PoseLog</a><wbr>(edu.wpi.first.math.geometry.Pose2d&nbsp;transform)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Logical inverse of the Pose exponential from 254.</div>
</div>
</div>
@@ -233,13 +225,14 @@ loadScripts(document, 'script');</script>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">double</span>&nbsp;<span class="element-name">calculateMetersPerRotation</span><wbr><span class="parameters">(double&nbsp;wheelDiameter,
double&nbsp;driveGearRatio,
double&nbsp;pulsePerRotation)</span></div>
<div class="block">Calculate the meters per rotation for the integrated encoder. Calculation: 4in diameter wheels * pi [circumfrence]
/ gear ratio.</div>
<div class="block">Calculate the meters per rotation for the integrated encoder. Calculation: 4in diameter wheels
* pi [circumfrence] / gear ratio.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>wheelDiameter</code> - Wheel diameter in meters.</dd>
<dd><code>driveGearRatio</code> - The gear ratio of the drive motor.</dd>
<dd><code>pulsePerRotation</code> - The number of encoder pulses per rotation. 1 if using an integrated encoder.</dd>
<dd><code>pulsePerRotation</code> - The number of encoder pulses per rotation. 1 if using an integrated
encoder.</dd>
<dt>Returns:</dt>
<dd>Meters per rotation for the drive motor.</dd>
</dl>
@@ -280,12 +273,14 @@ loadScripts(document, 'script');</script>
<h3>calculateDegreesPerSteeringRotation</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">double</span>&nbsp;<span class="element-name">calculateDegreesPerSteeringRotation</span><wbr><span class="parameters">(double&nbsp;angleGearRatio,
double&nbsp;pulsePerRotation)</span></div>
<div class="block">Calculate the degrees per steering rotation for the integrated encoder. Encoder conversion values. Drive converts
motor rotations to linear wheel distance and steering converts motor rotations to module azimuth.</div>
<div class="block">Calculate the degrees per steering rotation for the integrated encoder. Encoder conversion
values. Drive converts motor rotations to linear wheel distance and steering converts motor
rotations to module azimuth.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>angleGearRatio</code> - The gear ratio of the steering motor.</dd>
<dd><code>pulsePerRotation</code> - The number of pulses in a complete rotation for the encoder, 1 if integrated.</dd>
<dd><code>pulsePerRotation</code> - The number of pulses in a complete rotation for the encoder, 1 if
integrated.</dd>
<dt>Returns:</dt>
<dd>Degrees per steering rotation for the angle motor.</dd>
</dl>
@@ -312,7 +307,8 @@ loadScripts(document, 'script');</script>
<section class="detail" id="calculateMaxAcceleration(double)">
<h3>calculateMaxAcceleration</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">double</span>&nbsp;<span class="element-name">calculateMaxAcceleration</span><wbr><span class="parameters">(double&nbsp;cof)</span></div>
<div class="block">Calculate the practical maximum acceleration of the robot using the wheel coefficient of friction.</div>
<div class="block">Calculate the practical maximum acceleration of the robot using the wheel coefficient of
friction.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>cof</code> - Coefficient of Friction of the wheel grip tape.</dd>
@@ -333,7 +329,8 @@ loadScripts(document, 'script');</script>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>stallTorqueNm</code> - Stall torque of driving motor in nM.</dd>
<dd><code>gearRatio</code> - Gear ratio for driving motor number of motor rotations until one wheel rotation.</dd>
<dd><code>gearRatio</code> - Gear ratio for driving motor number of motor rotations until one wheel
rotation.</dd>
<dd><code>moduleCount</code> - Number of swerve modules.</dd>
<dd><code>wheelDiameter</code> - Wheel diameter in meters.</dd>
<dd><code>robotMass</code> - Mass of the robot in kg.</dd>
@@ -343,27 +340,6 @@ loadScripts(document, 'script');</script>
</section>
</li>
<li>
<section class="detail" id="calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d,java.util.List,double,swervelib.parser.SwerveDriveConfiguration)">
<h3>calcMaxAccel</h3>
<div class="member-signature"><span class="modifiers">private static</span>&nbsp;<span class="return-type">double</span>&nbsp;<span class="element-name">calcMaxAccel</span><wbr><span class="parameters">(edu.wpi.first.math.geometry.Rotation2d&nbsp;angle,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="Matter.html" title="class in swervelib.math">Matter</a>&gt;&nbsp;matter,
double&nbsp;robotMass,
<a href="../parser/SwerveDriveConfiguration.html" title="class in swervelib.parser">SwerveDriveConfiguration</a>&nbsp;config)</span></div>
<div class="block">Calculates the maximum acceleration allowed in a direction without tipping the robot. Reads arm position from
NetworkTables and is passed the direction in question.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>angle</code> - The direction in which to calculate max acceleration, as a Rotation2d. Note that this is
robot-relative.</dd>
<dd><code>matter</code> - Matter that the robot is composed of in kg. (Includes chassis)</dd>
<dd><code>robotMass</code> - The weight of the robot in kg. (Including manipulators, etc).</dd>
<dd><code>config</code> - The swerve drive configuration.</dd>
<dt>Returns:</dt>
<dd>Maximum acceleration allowed in the robot direction.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="PoseLog(edu.wpi.first.math.geometry.Pose2d)">
<h3>PoseLog</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">edu.wpi.first.math.geometry.Twist2d</span>&nbsp;<span class="element-name">PoseLog</span><wbr><span class="parameters">(edu.wpi.first.math.geometry.Pose2d&nbsp;transform)</span></div>
@@ -386,21 +362,20 @@ loadScripts(document, 'script');</script>
double&nbsp;robotMass,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="Matter.html" title="class in swervelib.math">Matter</a>&gt;&nbsp;matter,
<a href="../parser/SwerveDriveConfiguration.html" title="class in swervelib.parser">SwerveDriveConfiguration</a>&nbsp;config)</span></div>
<div class="block">Limits a commanded velocity to prevent exceeding the maximum acceleration given by <a href="#calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d,java.util.List,double,swervelib.parser.SwerveDriveConfiguration)"><code>calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d, java.util.List&lt;swervelib.math.Matter&gt;, double, swervelib.parser.SwerveDriveConfiguration)</code></a>.
Note that this takes and returns field-relative velocities.</div>
<div class="block">Limits a commanded velocity to prevent exceeding the maximum acceleration given by <code>calcMaxAccel(edu.wpi.first.math.geometry.Rotation2d, java.util.List&lt;swervelib.math.Matter&gt;, double, swervelib.parser.SwerveDriveConfiguration)</code>. Note that this takes and returns field-relative velocities.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>commandedVelocity</code> - The desired velocity</dd>
<dd><code>fieldVelocity</code> - The velocity of the robot within a field relative state.</dd>
<dd><code>robotPose</code> - The current pose of the robot.</dd>
<dd><code>loopTime</code> - The time it takes to update the velocity in seconds. <b>Note: this should include the
100ms that it takes for a SparkMax velocity to update.</b></dd>
<dd><code>loopTime</code> - The time it takes to update the velocity in seconds. <b>Note: this should
include the 100ms that it takes for a SparkMax velocity to update.</b></dd>
<dd><code>matter</code> - Matter that the robot is composed of with position in meters and mass in kg.</dd>
<dd><code>robotMass</code> - The weight of the robot in kg. (Including manipulators, etc).</dd>
<dd><code>config</code> - The swerve drive configuration.</dd>
<dt>Returns:</dt>
<dd>The limited velocity. This is either the commanded velocity, if attainable, or the closest attainable
velocity.</dd>
<dd>The limited velocity. This is either the commanded velocity, if attainable, or the
closest attainable velocity.</dd>
</dl>
</section>
</li>
@@ -426,8 +401,9 @@ loadScripts(document, 'script');</script>
<h3>placeInAppropriate0To360Scope</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">double</span>&nbsp;<span class="element-name">placeInAppropriate0To360Scope</span><wbr><span class="parameters">(double&nbsp;scopeReference,
double&nbsp;newAngle)</span></div>
<div class="block">Put an angle within the 360 deg scope of a reference. For example, given a scope reference of 756 degrees, assumes
the full scope is (720-1080), and places an angle of 22 degrees into it, returning 742 deg.</div>
<div class="block">Put an angle within the 360 deg scope of a reference. For example, given a scope reference of
756 degrees, assumes the full scope is (720-1080), and places an angle of 22 degrees into it,
returning 742 deg.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>scopeReference</code> - Current Angle (deg)</dd>

View File

@@ -1,18 +1,17 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sat Apr 08 13:46:47 CDT 2023 -->
<title>SwerveModuleState2</title>
<!-- Generated by javadoc (17) -->
<title>SwerveModuleState2 (YAGSL-Lib API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2023-04-08">
<meta name="description" content="declaration: package: swervelib.math, class: SwerveModuleState2">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
@@ -36,7 +35,7 @@ loadScripts(document, 'script');</script>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html#class">Help</a></li>
</ul>
</div>
@@ -129,7 +128,8 @@ loadScripts(document, 'script');</script>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(edu.wpi.first.math.kinematics.SwerveModuleState,double)" class="member-name-link">SwerveModuleState2</a><wbr>(edu.wpi.first.math.kinematics.SwerveModuleState&nbsp;state,
double&nbsp;omegaRadPerSecond)</code></div>
<div class="col-last even-row-color">
<div class="block">Create a <a href="SwerveModuleState2.html" title="class in swervelib.math"><code>SwerveModuleState2</code></a> based on the <code>SwerveModuleState</code> with the radians per second defined.</div>
<div class="block">Create a <a href="SwerveModuleState2.html" title="class in swervelib.math"><code>SwerveModuleState2</code></a> based on the <code>SwerveModuleState</code> with the radians per
second defined.</div>
</div>
</div>
</section>
@@ -145,18 +145,23 @@ loadScripts(document, 'script');</script>
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#optimize(swervelib.math.SwerveModuleState2,edu.wpi.first.math.geometry.Rotation2d,swervelib.math.SwerveModuleState2,double)" class="member-name-link">optimize</a><wbr>(<a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a>&nbsp;desiredState,
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#invert()" class="member-name-link">invert</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Invert the swerve module state.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#optimize(swervelib.math.SwerveModuleState2,edu.wpi.first.math.geometry.Rotation2d,swervelib.math.SwerveModuleState2,double)" class="member-name-link">optimize</a><wbr>(<a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a>&nbsp;desiredState,
edu.wpi.first.math.geometry.Rotation2d&nbsp;currentAngle,
<a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a>&nbsp;lastState,
double&nbsp;moduleSteerFeedForwardClosedLoop)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Minimize the change in heading the desired swerve module state would require by potentially reversing the direction
the wheel spins.</div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Minimize the change in heading the desired swerve module state would require by potentially
reversing the direction the wheel spins.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>edu.wpi.first.math.kinematics.SwerveModuleState</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toSwerveModuleState()" class="member-name-link">toSwerveModuleState</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>edu.wpi.first.math.kinematics.SwerveModuleState</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toSwerveModuleState()" class="member-name-link">toSwerveModuleState</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Convert to a <code>SwerveModuleState</code>.</div>
</div>
</div>
@@ -221,7 +226,8 @@ loadScripts(document, 'script');</script>
<h3>SwerveModuleState2</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">SwerveModuleState2</span><wbr><span class="parameters">(edu.wpi.first.math.kinematics.SwerveModuleState&nbsp;state,
double&nbsp;omegaRadPerSecond)</span></div>
<div class="block">Create a <a href="SwerveModuleState2.html" title="class in swervelib.math"><code>SwerveModuleState2</code></a> based on the <code>SwerveModuleState</code> with the radians per second defined.</div>
<div class="block">Create a <a href="SwerveModuleState2.html" title="class in swervelib.math"><code>SwerveModuleState2</code></a> based on the <code>SwerveModuleState</code> with the radians per
second defined.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>state</code> - First order kinematic module state.</dd>
@@ -244,21 +250,33 @@ loadScripts(document, 'script');</script>
edu.wpi.first.math.geometry.Rotation2d&nbsp;currentAngle,
<a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a>&nbsp;lastState,
double&nbsp;moduleSteerFeedForwardClosedLoop)</span></div>
<div class="block">Minimize the change in heading the desired swerve module state would require by potentially reversing the direction
the wheel spins. If this is used with the PIDController class's continuous input functionality, the furthest a
wheel will ever rotate is 90 degrees.</div>
<div class="block">Minimize the change in heading the desired swerve module state would require by potentially
reversing the direction the wheel spins. If this is used with the PIDController class's
continuous input functionality, the furthest a wheel will ever rotate is 90 degrees.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>desiredState</code> - The desired state.</dd>
<dd><code>currentAngle</code> - The current module angle.</dd>
<dd><code>lastState</code> - The last state of the module.</dd>
<dd><code>moduleSteerFeedForwardClosedLoop</code> - The module feed forward closed loop for the angle motor.</dd>
<dd><code>moduleSteerFeedForwardClosedLoop</code> - The module feed forward closed loop for the angle
motor.</dd>
<dt>Returns:</dt>
<dd>Optimized swerve module state.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="invert()">
<h3>invert</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SwerveModuleState2.html" title="class in swervelib.math">SwerveModuleState2</a></span>&nbsp;<span class="element-name">invert</span>()</div>
<div class="block">Invert the swerve module state.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>Current inverted <a href="SwerveModuleState2.html" title="class in swervelib.math"><code>SwerveModuleState2</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toSwerveModuleState()">
<h3>toSwerveModuleState</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">edu.wpi.first.math.kinematics.SwerveModuleState</span>&nbsp;<span class="element-name">toSwerveModuleState</span>()</div>

View File

@@ -1,295 +0,0 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sat Apr 08 13:46:47 CDT 2023 -->
<title>SwervePoseEstimator2.InterpolationRecord</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2023-04-08">
<meta name="description" content="declaration: package: swervelib.math, class: SwervePoseEstimator2, class: InterpolationRecord">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<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="sub-nav-list">
<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>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">swervelib.math</a></div>
<h1 title="Class SwervePoseEstimator2.InterpolationRecord" class="title">Class SwervePoseEstimator2.InterpolationRecord</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">swervelib.math.SwervePoseEstimator2.InterpolationRecord</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code>edu.wpi.first.math.interpolation.Interpolatable&lt;<a href="SwervePoseEstimator2.InterpolationRecord.html" title="class in swervelib.math">SwervePoseEstimator2.InterpolationRecord</a>&gt;</code></dd>
</dl>
<dl class="notes">
<dt>Enclosing class:</dt>
<dd><a href="SwervePoseEstimator2.html" title="class in swervelib.math">SwervePoseEstimator2</a></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">private class </span><span class="element-name type-name-label">SwervePoseEstimator2.InterpolationRecord</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements edu.wpi.first.math.interpolation.Interpolatable&lt;<a href="SwervePoseEstimator2.InterpolationRecord.html" title="class in swervelib.math">SwervePoseEstimator2.InterpolationRecord</a>&gt;</span></div>
<div class="block">Represents an odometry record. The record contains the inputs provided as well as the pose that was observed based
on these inputs, as well as the previous record and its inputs.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private final edu.wpi.first.math.geometry.Rotation2d</code></div>
<div class="col-second even-row-color"><code><a href="#gyroAngle" class="member-name-link">gyroAngle</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private final edu.wpi.first.math.geometry.Rotation2d</code></div>
<div class="col-second odd-row-color"><code><a href="#gyroPitch" class="member-name-link">gyroPitch</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private final edu.wpi.first.math.geometry.Rotation2d</code></div>
<div class="col-second even-row-color"><code><a href="#gyroRoll" class="member-name-link">gyroRoll</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private final edu.wpi.first.math.kinematics.SwerveModulePosition[]</code></div>
<div class="col-second odd-row-color"><code><a href="#modulePositions" class="member-name-link">modulePositions</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private final edu.wpi.first.math.geometry.Pose2d</code></div>
<div class="col-second even-row-color"><code><a href="#poseMeters" class="member-name-link">poseMeters</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier</div>
<div class="table-header col-second">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private </code></div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(edu.wpi.first.math.geometry.Pose2d,edu.wpi.first.math.geometry.Rotation2d,edu.wpi.first.math.geometry.Rotation2d,edu.wpi.first.math.geometry.Rotation2d,edu.wpi.first.math.kinematics.SwerveModulePosition%5B%5D)" class="member-name-link">InterpolationRecord</a><wbr>(edu.wpi.first.math.geometry.Pose2d&nbsp;poseMeters,
edu.wpi.first.math.geometry.Rotation2d&nbsp;gyro,
edu.wpi.first.math.geometry.Rotation2d&nbsp;gyroPitch,
edu.wpi.first.math.geometry.Rotation2d&nbsp;gyroRoll,
edu.wpi.first.math.kinematics.SwerveModulePosition[]&nbsp;modulePositions)</code></div>
<div class="col-last even-row-color">
<div class="block">Constructs an Interpolation Record with the specified parameters.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object)" class="member-name-link">equals</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;obj)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hashCode()" class="member-name-link">hashCode</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SwervePoseEstimator2.InterpolationRecord.html" title="class in swervelib.math">SwervePoseEstimator2.InterpolationRecord</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#interpolate(swervelib.math.SwervePoseEstimator2.InterpolationRecord,double)" class="member-name-link">interpolate</a><wbr>(<a href="SwervePoseEstimator2.InterpolationRecord.html" title="class in swervelib.math">SwervePoseEstimator2.InterpolationRecord</a>&nbsp;endValue,
double&nbsp;t)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Return the interpolated record.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="poseMeters">
<h3>poseMeters</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.geometry.Pose2d</span>&nbsp;<span class="element-name">poseMeters</span></div>
</section>
</li>
<li>
<section class="detail" id="gyroAngle">
<h3>gyroAngle</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.geometry.Rotation2d</span>&nbsp;<span class="element-name">gyroAngle</span></div>
</section>
</li>
<li>
<section class="detail" id="gyroPitch">
<h3>gyroPitch</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.geometry.Rotation2d</span>&nbsp;<span class="element-name">gyroPitch</span></div>
</section>
</li>
<li>
<section class="detail" id="gyroRoll">
<h3>gyroRoll</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.geometry.Rotation2d</span>&nbsp;<span class="element-name">gyroRoll</span></div>
</section>
</li>
<li>
<section class="detail" id="modulePositions">
<h3>modulePositions</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.kinematics.SwerveModulePosition[]</span>&nbsp;<span class="element-name">modulePositions</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(edu.wpi.first.math.geometry.Pose2d,edu.wpi.first.math.geometry.Rotation2d,edu.wpi.first.math.geometry.Rotation2d,edu.wpi.first.math.geometry.Rotation2d,edu.wpi.first.math.kinematics.SwerveModulePosition[])">
<h3>InterpolationRecord</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="element-name">InterpolationRecord</span><wbr><span class="parameters">(edu.wpi.first.math.geometry.Pose2d&nbsp;poseMeters,
edu.wpi.first.math.geometry.Rotation2d&nbsp;gyro,
edu.wpi.first.math.geometry.Rotation2d&nbsp;gyroPitch,
edu.wpi.first.math.geometry.Rotation2d&nbsp;gyroRoll,
edu.wpi.first.math.kinematics.SwerveModulePosition[]&nbsp;modulePositions)</span></div>
<div class="block">Constructs an Interpolation Record with the specified parameters.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>poseMeters</code> - The pose observed given the current sensor inputs and the previous pose.</dd>
<dd><code>gyro</code> - The current gyro angle.</dd>
<dd><code>gyroPitch</code> - The current gyro pitch.</dd>
<dd><code>gyroRoll</code> - The current gyro roll.</dd>
<dd><code>modulePositions</code> - The distances and rotations measured at each wheel.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="interpolate(swervelib.math.SwervePoseEstimator2.InterpolationRecord,double)">
<h3>interpolate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SwervePoseEstimator2.InterpolationRecord.html" title="class in swervelib.math">SwervePoseEstimator2.InterpolationRecord</a></span>&nbsp;<span class="element-name">interpolate</span><wbr><span class="parameters">(<a href="SwervePoseEstimator2.InterpolationRecord.html" title="class in swervelib.math">SwervePoseEstimator2.InterpolationRecord</a>&nbsp;endValue,
double&nbsp;t)</span></div>
<div class="block">Return the interpolated record. This object is assumed to be the starting position, or lower bound.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code>interpolate</code>&nbsp;in interface&nbsp;<code>edu.wpi.first.math.interpolation.Interpolatable&lt;<a href="SwervePoseEstimator2.InterpolationRecord.html" title="class in swervelib.math">SwervePoseEstimator2.InterpolationRecord</a>&gt;</code></dd>
<dt>Parameters:</dt>
<dd><code>endValue</code> - The upper bound, or end.</dd>
<dd><code>t</code> - How far between the lower and upper bound we are. This should be bounded in [0, 1].</dd>
<dt>Returns:</dt>
<dd>The interpolated value.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(java.lang.Object)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;obj)</span></div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hashCode()">
<h3>hashCode</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">hashCode</span>()</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@@ -1,18 +1,17 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sat Apr 08 13:46:47 CDT 2023 -->
<title>SwervePoseEstimator2</title>
<!-- Generated by javadoc (17) -->
<title>SwervePoseEstimator2 (YAGSL-Lib API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2023-04-08">
<meta name="description" content="declaration: package: swervelib.math, class: SwervePoseEstimator2">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
@@ -36,7 +35,7 @@ loadScripts(document, 'script');</script>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html#class">Help</a></li>
</ul>
</div>
@@ -44,14 +43,14 @@ loadScripts(document, 'script');</script>
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
@@ -78,70 +77,11 @@ loadScripts(document, 'script');</script>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">SwervePoseEstimator2</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="block">Clone of <code>SwerveDrivePoseEstimator</code> which takes into account gyroscope pitch and roll to achieve a more
accurate estimation, originally made by Team 1466.</div>
<div class="block">Clone of <code>SwerveDrivePoseEstimator</code> which takes into account gyroscope pitch and roll to
achieve a more accurate estimation, originally made by Team 1466.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="SwervePoseEstimator2.InterpolationRecord.html" class="type-name-link" title="class in swervelib.math">SwervePoseEstimator2.InterpolationRecord</a></code></div>
<div class="col-last even-row-color">
<div class="block">Represents an odometry record.</div>
</div>
</div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private final edu.wpi.first.math.kinematics.SwerveDriveKinematics</code></div>
<div class="col-second even-row-color"><code><a href="#m_kinematics" class="member-name-link">m_kinematics</a></code></div>
<div class="col-last even-row-color">
<div class="block">Swerve drive kinematics.</div>
</div>
<div class="col-first odd-row-color"><code>private final int</code></div>
<div class="col-second odd-row-color"><code><a href="#m_numModules" class="member-name-link">m_numModules</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Number of swerve modules.</div>
</div>
<div class="col-first even-row-color"><code>private final <a href="SwerveDriveOdometry2.html" title="class in swervelib.math">SwerveDriveOdometry2</a></code></div>
<div class="col-second even-row-color"><code><a href="#m_odometry" class="member-name-link">m_odometry</a></code></div>
<div class="col-last even-row-color">
<div class="block">Enhanced swerve drive odometry.</div>
</div>
<div class="col-first odd-row-color"><code>private final edu.wpi.first.math.interpolation.TimeInterpolatableBuffer&lt;<a href="SwervePoseEstimator2.InterpolationRecord.html" title="class in swervelib.math">SwervePoseEstimator2.InterpolationRecord</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#m_poseBuffer" class="member-name-link">m_poseBuffer</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Interpolation buffer.</div>
</div>
<div class="col-first even-row-color"><code>private final edu.wpi.first.math.Matrix&lt;edu.wpi.first.math.numbers.N3,<wbr>edu.wpi.first.math.numbers.N1&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#m_q" class="member-name-link">m_q</a></code></div>
<div class="col-last even-row-color">
<div class="block">Matrix quotient.</div>
</div>
<div class="col-first odd-row-color"><code>private final edu.wpi.first.math.Matrix&lt;edu.wpi.first.math.numbers.N3,<wbr>edu.wpi.first.math.numbers.N3&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#m_visionK" class="member-name-link">m_visionK</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Vision standard deviations.</div>
</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
@@ -155,7 +95,8 @@ loadScripts(document, 'script');</script>
edu.wpi.first.math.kinematics.SwerveModulePosition[]&nbsp;modulePositions,
edu.wpi.first.math.geometry.Pose2d&nbsp;initialPoseMeters)</code></div>
<div class="col-last even-row-color">
<div class="block">Constructs a SwerveDrivePoseEstimator with default standard deviations for the model and vision measurements.</div>
<div class="block">Constructs a SwerveDrivePoseEstimator with default standard deviations for the model and vision
measurements.</div>
</div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(edu.wpi.first.math.kinematics.SwerveDriveKinematics,edu.wpi.first.math.geometry.Rotation2d,edu.wpi.first.math.kinematics.SwerveModulePosition%5B%5D,edu.wpi.first.math.geometry.Pose2d,edu.wpi.first.math.Matrix,edu.wpi.first.math.Matrix)" class="member-name-link">SwervePoseEstimator2</a><wbr>(edu.wpi.first.math.kinematics.SwerveDriveKinematics&nbsp;kinematics,
edu.wpi.first.math.geometry.Rotation2d&nbsp;gyroAngle,
@@ -239,56 +180,6 @@ loadScripts(document, 'script');</script>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="m_kinematics">
<h3>m_kinematics</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.kinematics.SwerveDriveKinematics</span>&nbsp;<span class="element-name">m_kinematics</span></div>
<div class="block">Swerve drive kinematics.</div>
</section>
</li>
<li>
<section class="detail" id="m_odometry">
<h3>m_odometry</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="SwerveDriveOdometry2.html" title="class in swervelib.math">SwerveDriveOdometry2</a></span>&nbsp;<span class="element-name">m_odometry</span></div>
<div class="block">Enhanced swerve drive odometry.</div>
</section>
</li>
<li>
<section class="detail" id="m_q">
<h3>m_q</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.Matrix&lt;edu.wpi.first.math.numbers.N3,<wbr>edu.wpi.first.math.numbers.N1&gt;</span>&nbsp;<span class="element-name">m_q</span></div>
<div class="block">Matrix quotient.</div>
</section>
</li>
<li>
<section class="detail" id="m_numModules">
<h3>m_numModules</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">m_numModules</span></div>
<div class="block">Number of swerve modules.</div>
</section>
</li>
<li>
<section class="detail" id="m_poseBuffer">
<h3>m_poseBuffer</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.interpolation.TimeInterpolatableBuffer&lt;<a href="SwervePoseEstimator2.InterpolationRecord.html" title="class in swervelib.math">SwervePoseEstimator2.InterpolationRecord</a>&gt;</span>&nbsp;<span class="element-name">m_poseBuffer</span></div>
<div class="block">Interpolation buffer.</div>
</section>
</li>
<li>
<section class="detail" id="m_visionK">
<h3>m_visionK</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">edu.wpi.first.math.Matrix&lt;edu.wpi.first.math.numbers.N3,<wbr>edu.wpi.first.math.numbers.N3&gt;</span>&nbsp;<span class="element-name">m_visionK</span></div>
<div class="block">Vision standard deviations.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
@@ -301,11 +192,12 @@ loadScripts(document, 'script');</script>
edu.wpi.first.math.geometry.Rotation2d&nbsp;gyroAngle,
edu.wpi.first.math.kinematics.SwerveModulePosition[]&nbsp;modulePositions,
edu.wpi.first.math.geometry.Pose2d&nbsp;initialPoseMeters)</span></div>
<div class="block">Constructs a SwerveDrivePoseEstimator with default standard deviations for the model and vision measurements.
<div class="block">Constructs a SwerveDrivePoseEstimator with default standard deviations for the model and vision
measurements.
<p>The default standard deviations of the model states are 0.1 meters for x, 0.1 meters for y,
and 0.1 radians for heading. The default standard deviations of the vision measurements are 0.9 meters for x, 0.9
meters for y, and 0.9 radians for heading.</div>
and 0.1 radians for heading. The default standard deviations of the vision measurements are 0.9
meters for x, 0.9 meters for y, and 0.9 radians for heading.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>kinematics</code> - A correctly-configured kinematics object for your drivetrain.</dd>
@@ -331,12 +223,12 @@ loadScripts(document, 'script');</script>
<dd><code>gyroAngle</code> - The current gyro angle.</dd>
<dd><code>modulePositions</code> - The current distance and rotation measurements of the swerve modules.</dd>
<dd><code>initialPoseMeters</code> - The starting pose estimate.</dd>
<dd><code>stateStdDevs</code> - Standard deviations of the pose estimate (x position in meters, y position in
meters, and heading in radians). Increase these numbers to trust your state
estimate less.</dd>
<dd><code>visionMeasurementStdDevs</code> - Standard deviations of the vision pose measurement (x position in meters, y
position in meters, and heading in radians). Increase these numbers to trust the
vision pose measurement less.</dd>
<dd><code>stateStdDevs</code> - Standard deviations of the pose estimate (x position in meters, y position
in meters, and heading in radians). Increase these numbers to trust your state estimate
less.</dd>
<dd><code>visionMeasurementStdDevs</code> - Standard deviations of the vision pose measurement (x position
in meters, y position in meters, and heading in radians). Increase these numbers to trust
the vision pose measurement less.</dd>
</dl>
</section>
</li>
@@ -352,13 +244,14 @@ loadScripts(document, 'script');</script>
<section class="detail" id="setVisionMeasurementStdDevs(edu.wpi.first.math.Matrix)">
<h3>setVisionMeasurementStdDevs</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setVisionMeasurementStdDevs</span><wbr><span class="parameters">(edu.wpi.first.math.Matrix&lt;edu.wpi.first.math.numbers.N3,<wbr>edu.wpi.first.math.numbers.N1&gt;&nbsp;visionMeasurementStdDevs)</span></div>
<div class="block">Sets the pose estimator's trust of global measurements. This might be used to change trust in vision measurements
after the autonomous period, or to change trust as distance to a vision target increases.</div>
<div class="block">Sets the pose estimator's trust of global measurements. This might be used to change trust in
vision measurements after the autonomous period, or to change trust as distance to a vision
target increases.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>visionMeasurementStdDevs</code> - Standard deviations of the vision measurements. Increase these numbers to trust
global measurements from vision less. This matrix is in the form [x, y, theta]^T,
with units in meters and radians.</dd>
<dd><code>visionMeasurementStdDevs</code> - Standard deviations of the vision measurements. Increase these
numbers to trust global measurements from vision less. This matrix is in the form [x, y,
theta]^T, with units in meters and radians.</dd>
</dl>
</section>
</li>
@@ -396,23 +289,23 @@ loadScripts(document, 'script');</script>
<h3>addVisionMeasurement</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addVisionMeasurement</span><wbr><span class="parameters">(edu.wpi.first.math.geometry.Pose2d&nbsp;visionRobotPoseMeters,
double&nbsp;timestampSeconds)</span></div>
<div class="block">Adds a vision measurement to the Kalman Filter. This will correct the odometry pose estimate while still accounting
for measurement noise.
<div class="block">Adds a vision measurement to the Kalman Filter. This will correct the odometry pose estimate
while still accounting for measurement noise.
<p>This method can be called as infrequently as you want, as long as you are calling <code>SwerveDrivePoseEstimator.update(edu.wpi.first.math.geometry.Rotation2d, edu.wpi.first.math.kinematics.SwerveModulePosition[])</code> every loop.
<p>To promote stability of the pose estimate and make it robust to bad vision data, we
recommend only adding vision measurements that are already within one meter or so of the current pose estimate.</div>
recommend only adding vision measurements that are already within one meter or so of the
current pose estimate.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>visionRobotPoseMeters</code> - The pose of the robot as measured by the vision camera.</dd>
<dd><code>timestampSeconds</code> - The timestamp of the vision measurement in seconds. Note that if you don't use your
own time source by calling
<code>SwerveDrivePoseEstimator.updateWithTime(double, Rotation2d, SwerveModulePosition[])</code> then you must use a timestamp with an epoch since FPGA
startup (i.e., the epoch of this timestamp is the same epoch as
<code>Timer.getFPGATimestamp()</code>.) This means that you should
use <code>Timer.getFPGATimestamp()</code> as your time source or sync
the epochs.</dd>
<dd><code>timestampSeconds</code> - The timestamp of the vision measurement in seconds. Note that if you
don't use your own time source by calling <code>SwerveDrivePoseEstimator.updateWithTime(double, Rotation2d, SwerveModulePosition[])</code> then
you must use a timestamp with an epoch since FPGA startup (i.e., the epoch of this
timestamp is the same epoch as <code>Timer.getFPGATimestamp()</code>.)
This means that you should use <code>Timer.getFPGATimestamp()</code> as
your time source or sync the epochs.</dd>
</dl>
</section>
</li>
@@ -422,30 +315,29 @@ loadScripts(document, 'script');</script>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addVisionMeasurement</span><wbr><span class="parameters">(edu.wpi.first.math.geometry.Pose2d&nbsp;visionRobotPoseMeters,
double&nbsp;timestampSeconds,
edu.wpi.first.math.Matrix&lt;edu.wpi.first.math.numbers.N3,<wbr>edu.wpi.first.math.numbers.N1&gt;&nbsp;visionMeasurementStdDevs)</span></div>
<div class="block">Adds a vision measurement to the Kalman Filter. This will correct the odometry pose estimate while still accounting
for measurement noise.
<div class="block">Adds a vision measurement to the Kalman Filter. This will correct the odometry pose estimate
while still accounting for measurement noise.
<p>This method can be called as infrequently as you want, as long as you are calling <code>SwerveDrivePoseEstimator.update(edu.wpi.first.math.geometry.Rotation2d, edu.wpi.first.math.kinematics.SwerveModulePosition[])</code> every loop.
<p>To promote stability of the pose estimate and make it robust to bad vision data, we
recommend only adding vision measurements that are already within one meter or so of the current pose estimate.
recommend only adding vision measurements that are already within one meter or so of the
current pose estimate.
<p>Note that the vision measurement standard deviations passed into this method will continue
to apply to future measurements until a subsequent call to
<code>SwerveDrivePoseEstimator.setVisionMeasurementStdDevs(Matrix)</code> or this method.</div>
to apply to future measurements until a subsequent call to <code>PoseEstimator.setVisionMeasurementStdDevs(Matrix)</code> or this method.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>visionRobotPoseMeters</code> - The pose of the robot as measured by the vision camera.</dd>
<dd><code>timestampSeconds</code> - The timestamp of the vision measurement in seconds. Note that if you don't use your
own time source by calling
<code>SwerveDrivePoseEstimator.updateWithTime(double, Rotation2d, SwerveModulePosition[])</code>, then you must use a timestamp with an epoch since FPGA
startup (i.e., the epoch of this timestamp is the same epoch as
<code>Timer.getFPGATimestamp()</code>). This means that you should
use <code>Timer.getFPGATimestamp()</code> as your time source in
this case.</dd>
<dd><code>visionMeasurementStdDevs</code> - Standard deviations of the vision pose measurement (x position in meters, y
position in meters, and heading in radians). Increase these numbers to trust the
vision pose measurement less.</dd>
<dd><code>timestampSeconds</code> - The timestamp of the vision measurement in seconds. Note that if you
don't use your own time source by calling <code>SwerveDrivePoseEstimator.updateWithTime(double, Rotation2d, SwerveModulePosition[])</code>, then
you must use a timestamp with an epoch since FPGA startup (i.e., the epoch of this
timestamp is the same epoch as <code>Timer.getFPGATimestamp()</code>).
This means that you should use <code>Timer.getFPGATimestamp()</code> as
your time source in this case.</dd>
<dd><code>visionMeasurementStdDevs</code> - Standard deviations of the vision pose measurement (x position
in meters, y position in meters, and heading in radians). Increase these numbers to trust
the vision pose measurement less.</dd>
</dl>
</section>
</li>
@@ -456,7 +348,8 @@ loadScripts(document, 'script');</script>
edu.wpi.first.math.geometry.Rotation2d&nbsp;gyroPitch,
edu.wpi.first.math.geometry.Rotation2d&nbsp;gyroRoll,
edu.wpi.first.math.kinematics.SwerveModulePosition[]&nbsp;modulePositions)</span></div>
<div class="block">Updates the pose estimator with wheel encoder and gyro information. This should be called every loop.</div>
<div class="block">Updates the pose estimator with wheel encoder and gyro information. This should be called every
loop.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>gyroAngle</code> - The current gyro angle.</dd>
@@ -476,7 +369,8 @@ loadScripts(document, 'script');</script>
edu.wpi.first.math.geometry.Rotation2d&nbsp;gyroPitch,
edu.wpi.first.math.geometry.Rotation2d&nbsp;gyroRoll,
edu.wpi.first.math.kinematics.SwerveModulePosition[]&nbsp;modulePositions)</span></div>
<div class="block">Updates the pose estimator with wheel encoder and gyro information. This should be called every loop.</div>
<div class="block">Updates the pose estimator with wheel encoder and gyro information. This should be called every
loop.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>currentTimeSeconds</code> - Time at which this method was called, in seconds.</dd>

View File

@@ -1,18 +1,17 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sat Apr 08 13:46:47 CDT 2023 -->
<title>swervelib.math</title>
<!-- Generated by javadoc (17) -->
<title>swervelib.math (YAGSL-Lib API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2023-04-08">
<meta name="description" content="declaration: package: swervelib.math">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-declaration-page">
@@ -32,7 +31,7 @@ loadScripts(document, 'script');</script>
<li class="nav-bar-cell1-rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html#package">Help</a></li>
</ul>
</div>
@@ -61,8 +60,7 @@ loadScripts(document, 'script');</script>
<hr>
<div class="package-signature">package <span class="element-name">swervelib.math</span></div>
<section class="package-description" id="package-description">
<div class="block">Mathematics for swerve drives. Original second order kinematics was developed by Team 3181
<a href="https://github.com/pittsfordrobotics/ChargedUp2023/tree/master/src/main/java/com/team3181/lib/swerve">here.
<div class="block">Mathematics for swerve drives. Original second order kinematics was developed by Team 3181 <a href="https://github.com/pittsfordrobotics/ChargedUp2023/tree/master/src/main/java/com/team3181/lib/swerve">here.
</a></div>
</section>
<section class="summary">
@@ -92,12 +90,13 @@ loadScripts(document, 'script');</script>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="SwerveDriveOdometry2.html" title="class in swervelib.math">SwerveDriveOdometry2</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
<div class="block">Clone of <code>SwerveDriveOdometry</code> except uses gyro pitch and roll to achieve a more accurate estimation.</div>
<div class="block">Clone of <code>SwerveDriveOdometry</code> except uses gyro pitch and roll to achieve a more accurate
estimation.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="SwerveKinematics2.html" title="class in swervelib.math">SwerveKinematics2</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">Clone of WPI SwerveKinematics, which implements second order kinematics when calculating modules states from chassis
speed.</div>
<div class="block">Clone of WPI SwerveKinematics, which implements second order kinematics when calculating modules
states from chassis speed.</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="SwerveMath.html" title="class in swervelib.math">SwerveMath</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
@@ -109,8 +108,8 @@ loadScripts(document, 'script');</script>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="SwervePoseEstimator2.html" title="class in swervelib.math">SwervePoseEstimator2</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
<div class="block">Clone of <code>SwerveDrivePoseEstimator</code> which takes into account gyroscope pitch and roll to achieve a more
accurate estimation, originally made by Team 1466.</div>
<div class="block">Clone of <code>SwerveDrivePoseEstimator</code> which takes into account gyroscope pitch and roll to
achieve a more accurate estimation, originally made by Team 1466.</div>
</div>
</div>
</div>

View File

@@ -1,18 +1,17 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Sat Apr 08 13:46:47 CDT 2023 -->
<title>swervelib.math Class Hierarchy</title>
<!-- Generated by javadoc (17) -->
<title>swervelib.math Class Hierarchy (YAGSL-Lib API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2023-04-08">
<meta name="description" content="tree: package: swervelib.math">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-tree-page">
@@ -32,7 +31,7 @@ loadScripts(document, 'script');</script>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="nav-bar-cell1-rev">Tree</li>
<li><a href="../../index-files/index-1.html">Index</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html#tree">Help</a></li>
</ul>
</div>
@@ -60,16 +59,20 @@ loadScripts(document, 'script');</script>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a>
<ul>
<li class="circle">swervelib.math.<a href="Matter.html" class="type-name-link" title="class in swervelib.math">Matter</a></li>
<li class="circle">edu.wpi.first.math.kinematics.SwerveDriveKinematics
<li class="circle">edu.wpi.first.math.kinematics.Odometry&lt;T&gt;
<ul>
<li class="circle">swervelib.math.<a href="SwerveKinematics2.html" class="type-name-link" title="class in swervelib.math">SwerveKinematics2</a></li>
</ul>
</li>
<li class="circle">edu.wpi.first.math.kinematics.SwerveDriveOdometry
<ul>
<li class="circle">swervelib.math.<a href="SwerveDriveOdometry2.html" class="type-name-link" title="class in swervelib.math">SwerveDriveOdometry2</a></li>
</ul>
</li>
</ul>
</li>
<li class="circle">edu.wpi.first.math.kinematics.SwerveDriveKinematics (implements edu.wpi.first.math.kinematics.Kinematics&lt;S,<wbr>P&gt;)
<ul>
<li class="circle">swervelib.math.<a href="SwerveKinematics2.html" class="type-name-link" title="class in swervelib.math">SwerveKinematics2</a></li>
</ul>
</li>
<li class="circle">swervelib.math.<a href="SwerveMath.html" class="type-name-link" title="class in swervelib.math">SwerveMath</a></li>
<li class="circle">edu.wpi.first.math.kinematics.SwerveModuleState (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;T&gt;)
<ul>
@@ -77,7 +80,6 @@ loadScripts(document, 'script');</script>
</ul>
</li>
<li class="circle">swervelib.math.<a href="SwervePoseEstimator2.html" class="type-name-link" title="class in swervelib.math">SwervePoseEstimator2</a></li>
<li class="circle">swervelib.math.<a href="SwervePoseEstimator2.InterpolationRecord.html" class="type-name-link" title="class in swervelib.math">SwervePoseEstimator2.InterpolationRecord</a> (implements edu.wpi.first.math.interpolation.Interpolatable&lt;T&gt;)</li>
</ul>
</li>
</ul>