Jordan McMichael
33243f982b
[wpimath] Expand Quaternion class with additional operators ( #5600 )
...
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
2023-10-08 16:42:53 -07:00
PJ Reiniger
dd5612fbee
[json] Add forward definition header ( #5676 )
2023-09-22 13:01:27 -07:00
Ryan Blue
4da5aee88a
[wpimath] Remove SlewRateLimiter 2 argument constructor ( #5648 )
...
Deprecated in #4377
2023-09-16 22:04:29 -07:00
Tyler Veness
4bac4dd0f4
[wpimath] Move PIDController from frc2 to frc namespace ( #5640 )
...
The old PIDController class in the frc namespace was removed for the
2023 season.
2023-09-15 19:57:31 -07:00
Tyler Veness
a9ab08f48b
[wpimath] Rename ChassisSpeeds.fromDiscreteSpeeds() to discretize() ( #5616 )
...
This better reflects what's actually going on mathematically.
2023-09-08 20:14:59 -07:00
Tyler Veness
8e05983a4a
[wpimath] Add math docs to plant inversion feedforward internals (NFC) ( #5618 )
2023-09-08 20:14:24 -07:00
Tyler Veness
1a6df6fec6
[wpimath] Fix DARE Q decomposition ( #5611 )
2023-09-05 10:48:43 -07:00
Tyler Veness
814f18c7f5
[wpimath] Fix computation of C for DARE (A, C) detectability check ( #5609 )
...
If Q has off-diagonal entries, C and Cᵀ are different.
2023-09-04 21:12:25 -07:00
Tyler Veness
a750bee54d
[wpimath] Use std::norm() in IsStabilizable() ( #5599 )
2023-08-31 22:52:18 -07:00
Gold856
8e2465f8a0
[wpimath] Add arithmetic functions to wheel speeds classes ( #5465 )
2023-08-31 11:57:24 -07:00
Tyler Veness
10d4f5b5df
[wpimath] Clean up notation in DARE precondition docs ( #5595 )
2023-08-31 11:56:41 -07:00
Tyler Veness
99f66b1e24
[wpimath] Replace frc/EigenCore.h typedefs with Eigen's where possible ( #5597 )
2023-08-31 11:03:37 -07:00
Gold856
4e0d785356
[wpimath] ChassisSpeeds: document that values aren't relative to the robot (NFC) ( #5551 )
2023-08-30 13:22:42 -07:00
Omar Zrien
67043a8eeb
[wpimath] Add angular jerk unit ( #5582 )
2023-08-29 12:53:14 -07:00
Tyler Veness
51b0fb1492
[wpimath] Fix incorrect header inclusion in angular_acceleration.h ( #5587 )
...
Specific unit headers should only include units they use. In this case,
that's angle and time.
2023-08-29 12:52:39 -07:00
Tyler Veness
f1d7b05723
[wpimath] Clean up unit formatter ( #5584 )
2023-08-29 08:56:48 -07:00
Tyler Veness
8e2a7fd306
Include thirdparty libraries with angle brackets ( #5578 )
2023-08-28 15:13:34 -07:00
Tyler Veness
e322ab8e46
[wpimath] Fix docs for DARE ABQRN stabilizability check (NFC) ( #5579 )
2023-08-28 15:10:42 -07:00
Tyler Veness
7889b35b67
[wpimath] Add RamseteController comparison to LTV controller docs (NFC) ( #5559 )
2023-08-24 00:04:54 -07:00
Tyler Veness
8f3d6a1d4b
[wpimath] Remove discretizeAQTaylor() ( #5562 )
...
It gives incorrect results. Any replacement should just be an
implementation detail of discretizeAQ().
Closes #5339 .
2023-08-23 10:47:32 -07:00
Joseph Eng
7a37e3a496
[wpimath] Correct Rotation3d::RotateBy doc comment (NFC) ( #5541 )
...
Improve transform doc comment consistency
2023-08-15 13:12:09 -07:00
Tyler Veness
03764dfe93
[wpimath] Add static matrix support to DARE solver ( #5536 )
...
Using static matrices where possible results in a 2x performance
improvement.
2023-08-14 09:15:58 -07:00
Tyler Veness
394cfeadbd
[wpimath] Use SDA algorithm instead of SSCA for DARE solver ( #5526 )
...
Both seem to work, but the SDA algorithm is specifically recommended for
solving DAREs as opposed to P-DAREs.
The QR decomposition was replaced with a partial pivoting LU
decomposition at the recommendation of section 2.4 of the paper.
More tests and a separate JNI function for each DARE solver variant were
added.
2023-08-12 19:45:45 -07:00
Tyler Veness
e8b5d44752
[wpimath] Make Java Quaternion use doubles instead of Vector ( #5525 )
...
This avoids allocation overhead on construction. times() was also
rewritten to not allocate any temporary objects.
Getter calls in the C++ Quaternion class were modified for parity.
2023-08-11 23:27:29 -07:00
Joseph Eng
b5bd0771eb
[wpimath] Document extrinsic vs intrinsic rotations (NFC) ( #5508 )
2023-08-06 19:59:42 -07:00
Tyler Veness
6db2c42966
[wpimath] Trajectory: Throw on empty lists of States ( #5497 )
...
Fixes #4141 .
2023-08-03 08:24:20 -07:00
Tyler Veness
21439b606c
[wpimath] Disallow LTV controller max velocities above 15 m/s ( #5495 )
...
15 m/s is about 50 ft/s, which is way above what FRC robots should be
able to achieve. This limit lets us catch user errors from bad unit
conversions immediately instead of the LUT generation in the LTV
controllers hanging for a really long time.
Fixes #5027 .
2023-08-02 23:37:49 -07:00
Joseph Eng
0c93aded8a
[wpimath] Change kinematics.ToTwist2d(end - start) to kinematics.ToTwist2d(start, end) ( #5493 )
2023-08-01 22:25:26 -07:00
Tyler Veness
35a8b129d9
[wpimath] Add RotateBy() function to pose classes ( #5491 )
...
Fixes #5472 .
2023-07-31 21:16:44 -07:00
Tyler Veness
a01b6467d3
[wpimath] Link to docs on LQR and KF tolerances ( #5486 )
...
Fixes #4151 .
2023-07-31 19:17:44 -07:00
Tyler Veness
d814f1d123
[wpimath] Fix copy-paste error from Pose2d docs (NFC) ( #5490 )
2023-07-31 19:17:17 -07:00
Tyler Veness
98f074b072
[wpimath] Add folder prefix to geometry includes ( #5489 )
2023-07-31 19:17:02 -07:00
Joseph Eng
2ba8fbb6f4
[wpimath] Improve documentation for SwerveModulePosition::operator- ( #5468 )
2023-07-24 22:46:59 -07:00
Mihir Patankar
552f4b76b5
[wpimath] Add FOC-enabled Falcon constants to the DCMotor class ( #5469 )
2023-07-24 20:16:48 -07:00
Gold856
86e91e6724
[wpimath] Refactor TrapezoidProfile API ( #5457 )
2023-07-19 17:25:10 -07:00
Joseph Eng
657338715d
[wpimath] Add ChassisSpeeds method to fix drifting during compound swerve drive maneuvers ( #5425 )
2023-07-18 21:19:55 -07:00
Tyler Veness
1af224c21b
Add missing <functional> includes ( #5459 )
2023-07-18 21:18:32 -07:00
camaj
c69e34c80c
[wpimath] ChassisSpeeds: Add arithmetic functions ( #5293 )
...
Co-authored-by: Ryan Blue <ryanzblue@gmail.com >
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
2023-07-18 16:30:21 -07:00
Peter Johnson
3a61deedde
[wpimath] Rotation2d: Only use gcem::hypot when constexpr evaluated ( #5419 )
2023-07-04 12:05:55 -06:00
Tyler Veness
3a0e484691
[wpimath] Fix clang-tidy warnings ( #5403 )
2023-06-20 11:35:15 -07:00
Gold856
991f4b0f62
[wpimath] PIDController: Add IZone ( #5315 )
...
Co-authored-by: Ryan Blue <ryanzblue@gmail.com >
2023-06-19 23:01:01 -07:00
Gold856
f5b0d1484b
[wpimath] Add isNear method to MathUtil ( #5353 )
...
This method is used to check if the given value matches an expected value within a certain tolerance.
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
Co-authored-by: Ryan Blue <ryanzblue@gmail.com >
2023-06-19 23:00:07 -07:00
Gold856
5fc4aee2d2
[wpimath] SwerveDriveKinematics: Rename currentChassisSpeed to desiredChassisSpeed ( #5393 )
2023-06-19 22:58:38 -07:00
Gold856
50b90ceb54
[wpimath] SwerveDriveKinematics: Add reset method ( #5398 )
...
Adds a reset method where teams can pass in module headings for the kinematics object to use if it gets an all-zero ChassisSpeeds while converting ChassisSpeeds to module states. Also removes internal states array, replacing it with an internal headings array.
2023-06-19 22:57:55 -07:00
Ryan Blue
d6bd72d738
[wpimath] ProfiledPIDController: Add getConstraints ( #5399 )
2023-06-19 17:11:20 -07:00
Joseph Eng
25ad5017a9
[wpimath] Refactor kinematics, odometry, and pose estimator ( #5355 )
2023-06-19 17:10:39 -07:00
Tyler Veness
652d1c44e3
[wpiutil] Upgrade to macOS 12 to remove concept shims ( #5379 )
...
The macOS deployment target has been upgraded from 10.15 to 11. Also, a
deprecation warning for sprintf() in libuv was suppressed.
2023-06-08 19:59:54 -07:00
Ryan Blue
6414be0e5d
[wpimath] Group units doxygen modules ( #5382 )
2023-06-08 19:58:55 -07:00
Tyler Veness
91cbcea841
Replace SFINAE with concepts ( #5361 )
...
Concepts are cleaner to use and result in much better error messages for incorrect template use.
2023-06-07 09:50:09 -07:00
Tyler Veness
d57d1a4598
[wpimath] Remove unnecessary template argument from unit formatter ( #5367 )
2023-06-07 09:47:46 -07:00