Tyler Veness
d5456cf278
[wpimath] LTVDifferentialDriveController: Remove unused variable ( #4212 )
2022-05-04 22:03:15 -07:00
Tyler Veness
ee03a7ad3b
Remove most 2022 deprecations ( #4205 )
...
Excludes "old" commands and SimDevice functions.
2022-05-04 20:37:27 -07:00
Tyler Veness
ce1a7d698a
[wpimath] Refactor WheelVoltages inner class to a separate file ( #4203 )
2022-05-01 11:01:20 -07:00
Tyler Veness
87bf70fa8e
[wpimath] Add LTV controllers ( #4094 )
...
This adds a unicycle controller that's a drop-in replacement for Ramsete
and a differential drive controller that controls the full pose and
outputs voltages. The main benefit is LQR-like tuning knobs using a
system model.
2022-04-30 22:54:22 -07:00
Peter Johnson
dac1429aa9
[wpimath] LQR: Use extern template instead of Impl class
2022-04-30 20:38:55 -07:00
Peter Johnson
e767605e94
[wpimath] Add typedefs for common types
...
This makes complex code significantly easier to read.
frc::Vectord<Size> = Eigen::Vector<double, Size>
frc::Matrixd<Rows, Cols> = Eigen::Matrix<double, Rows, Cols>
2022-04-30 20:38:55 -07:00
Tyler Veness
5ebe911933
[wpimath] Add DifferentialDriveAccelerationLimiter ( #4091 )
2022-04-24 07:21:40 -07:00
Tyler Veness
78108c2aba
[wpimath] Fix PIDController having incorrect error after calling SetSetpoint() ( #4070 )
2022-03-19 23:59:00 -07:00
Tyler Veness
acb64dff97
[wpimath] Make RamseteController::Calculate() more concise ( #3763 )
2021-12-06 12:57:42 -08:00
Tyler Veness
04957a6d30
[wpimath] Fix units of RamseteController's b and zeta ( #3757 )
...
Fixes #3755 .
2021-12-03 18:21:30 -08:00
Oblarg
da90c1cd2c
[wpilib] Add bang-bang controller ( #3676 )
...
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
2021-11-23 20:34:46 -08:00
Tyler Veness
181723e573
Replace .to<double>() and .template to<double>() with .value() ( #3667 )
...
It's a less verbose way to do the same thing.
2021-10-25 08:58:12 -07:00
Noam Zaks
791770cf6e
[wpimath] Move controller from wpilibj to wpimath ( #3439 )
2021-06-16 07:45:51 -07:00
Tyler Veness
a5c471af7e
[wpimath] Add LQR template specialization for 2x2 system
...
A differential drive has this dimensionality (2 velocity states and 2
voltage inputs).
2021-06-06 16:45:12 -07:00
Tyler Veness
edd2f0232c
[wpimath] Add DARE solver for Q, R, and N with LQR ctor overloads
...
This is useful for implementing implicit model following.
2021-06-06 16:45:12 -07:00
Tyler Veness
f393989a5b
[wpimath, wpiutil] Add wpi::array for compile time size checking ( #3087 )
...
The wpimath APIs use std::array, which doesn't do size checking. Passing
an array with the wrong size can result in uninitialized elements
instead of a compilation error.
This is a breaking change but is worthwhile to avoid hard-to-debug errors.
2021-01-16 20:26:17 -08:00
Peter Johnson
8f1f64ffb6
Remove year from file copyright message (NFC) ( #2972 )
...
Also update copyright to include "and other WPILib contributors" and clarify
license referral language to not be restricted to FIRST teams.
2020-12-26 14:12:05 -08:00
Tyler Veness
35790a8990
[wpimath] Remove rho overload from LinearQuadraticRegulator constructors ( #2687 )
...
It was added as part of Bryson's rule described in
https://file.tavsys.net/control/controls-engineering-in-frc.pdf . It
doesn't really simplify usage though, and the same thing can be
replicated by multiplying the elements of Q by rho manually. It's easier
to do it that way, it's how 3512 has been doing controller debugging for
a while, and it's probably what other teams will do as well instead of
using the "more structured" way.
Removing these unhelpful overloads also simplifies the LQR interface.
2020-09-03 20:53:17 -07:00
Matt
3b283ab9aa
[wpimath] Add core State-space classes ( #2614 )
...
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
Co-authored-by: Claudius Tewari <cttewari@gmail.com >
Co-authored-by: Declan Freeman-Gleason <declanfreemangleason@gmail.com >
2020-08-14 23:40:33 -07:00