Tyler Veness
d8c59ccc71
[wpimath] Add tests for MathUtil clamp() and interpolate() ( #5501 )
2023-08-03 23:43:20 -07:00
Ryan Blue
90e37a129f
[wpiutil,wpimath] Add generic InterpolatingTreeMap ( #5372 )
2023-08-03 21:46:17 -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
815a8403e5
[wpimath] Give infeasible trajectory constraints a better exception message ( #5492 )
...
Fixes #3146 .
2023-07-31 21:43:22 -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
Joseph Eng
6f7cdd460e
[wpimath] Pose3d: Switch to JNI for exp and log ( #5444 )
...
The pure Java implementations allocate a lot of temporary objects, and the JNI implementation is substantially more performant.
2023-07-18 16:32:11 -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
Joseph Eng
593767c8c7
[wpimath] Improve Euler angle calculations in gimbal lock ( #5437 )
2023-07-17 17:19:42 -07:00
Tyler Veness
fd5699b240
Remove references to Drake ( #5427 )
...
Fixes #5426 .
2023-07-09 21:25:14 -07:00
Peter Johnson
3a61deedde
[wpimath] Rotation2d: Only use gcem::hypot when constexpr evaluated ( #5419 )
2023-07-04 12:05:55 -06:00
Vasista Vovveti
6b5817836d
[wpimath] Add tolerance for some tests ( #5416 )
2023-06-27 14:22:46 -07:00
Tyler Veness
5d3a133f9f
Remove spaces in NOLINT comments ( #5407 )
...
clang-tidy ignores the category filter if there's a space. wpiformat now
ignores categories it doesn't understand, so we can remove the spaces.
2023-06-20 20:29:23 -07: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
Thad House
d5ed9fb859
[wpimath] Create separate archive with just units headers ( #5383 )
...
This will allow very low level deps to use the same units library we ship with wpilib
2023-06-08 21:11:51 -07:00
Ryan Blue
901ab693d4
[wpimath] Use UtilityClassTest for more utility classes ( #5384 )
2023-06-08 21:11:26 -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
Tyler Veness
5acc5e22aa
[wpimath] Only compute eigenvalues with EigenSolvers ( #5369 )
...
We don't need the eigenvectors, so we're doing a lot of extra work we
don't need to.
2023-06-07 09:47:09 -07:00
Tyler Veness
5fac18ff4a
Update formatting to clang-format 16 ( #5370 )
2023-05-31 22:10:53 -07:00
Tyler Veness
a94a998002
[wpimath] Generalize Eigen formatter ( #5360 )
2023-05-30 23:35:15 -07:00
Tyler Veness
125f6ea101
[wpimath] Make SwerveDriveKinematics::ToChassisSpeeds() take const-ref argument ( #5363 )
2023-05-30 23:34:39 -07:00
Tyler Veness
51066a5a8a
[wpimath] Move unit formatters into units library ( #5358 )
2023-05-26 01:05:27 -07:00
Tyler Veness
eed1e6e3cb
[wpimath] Replace DiscretizeAQTaylor() with DiscretizeAQ() ( #5344 )
...
Until #5339 is fixed, we have to use the slower, more accurate version.
2023-05-18 07:13:20 -07:00
Tyler Veness
fd294bdd71
[build] Fix compilation with GCC 13 ( #5322 )
2023-05-16 13:31:58 -07:00
Tyler Veness
52bd5b972d
[wpimath] Rewrite DARE solver ( #5328 )
...
I timed the DARE unit tests, and the new solver is 0 to 100% faster in
all cases (that is, it's at least as fast as Drake's and up to 2x faster
in some cases).
The new solver is also much simpler, takes less time to compile, and
drops the libwpimath.so size from 325 MB to 301 MB.
I think most of the compilation time is coming from the eigenvalue
decompositions used to enforce argument preconditions.
2023-05-14 22:23:00 -07:00
Tyler Veness
3876a2523a
[wpimath] Remove unused MatrixImpl() function ( #5330 )
...
It's an implementation detail left over from MakeMatrix().
2023-05-14 22:22:28 -07:00
Tyler Veness
77c2124fc5
[wpimath] Remove Eigen's custom STL types ( #4945 )
...
In C++20, overaligned types are handled properly, so Eigen's STL types
with custom allocators are no longer needed.
2023-05-12 21:32:58 -07:00
Tyler Veness
21d4244cf7
[wpimath] Fix DCMotor docs (NFC) ( #5309 )
2023-05-07 22:56:05 -07:00
Tyler Veness
7ce75574bf
[wpimath] Upgrade to Drake v1.15.0 ( #5310 )
2023-05-07 22:54:58 -07:00
Gold856
24828afd11
[wpimath] Fix desaturateWheelSpeeds to account for negative speeds ( #5269 )
2023-04-28 20:53:20 -07:00
Tyler Veness
e099948a77
[wpimath] Clean up rank notation in docs (NFC) ( #5274 )
2023-04-28 20:52:29 -07:00
Sriman Achanta
ba8c64bcff
[wpimath] Fix misspelled Javadoc parameters in pose estimators (NFC) ( #5292 )
2023-04-28 20:51:47 -07:00