Tyler Veness
d88c71ffdc
[wpiutil] Upgrade to fmt 10.2.1, add wpi::print ( #6161 )
...
We now use a wrapper (wpi::print) to catch exceptions since we can't patch
std::print() to not throw when we ultimately migrate to it.
fmtlib and std format/print throw the same exceptions and always have. We previously patched fmt::print() to not throw a write failure exception, but we can't do that for std::print(); wpi::print() is the migration plan.
2024-05-12 06:25:42 -07:00
Tyler Veness
dc00a13d83
[wpimath] Make cost and covariance matrix functions constexpr ( #6444 )
2024-05-07 15:32:14 -07:00
Tyler Veness
bdc7344df1
[upstream_utils] Upgrade Eigen to get more constexpr support ( #6596 )
2024-05-07 12:47:15 -07:00
Wispy
2563ff9f18
[wpimath] Add Pair.equals() ( #6580 )
2024-05-06 21:52:59 -07:00
Tyler Veness
e172aa66f7
[wpimath] Java: add static instantiations of common rotations ( #6563 )
...
C++ doesn't need this because it supports value types, which are much
cheaper to construct. constexpr is also available to make construction
zero-cost.
2024-05-03 12:39:35 -07:00
Tyler Veness
ae4bcefefc
[wpimath] Fix incorrect docs for Rotation3d default constructor ( #6571 )
...
A Rotation3d is not defined by one angle.
2024-05-01 09:06:13 -07:00
Tyler Veness
5359112b15
[wpimath] Deprecate RamseteController ( #6494 )
...
LTVUnicycleController is a drop-in replacement with better tuning knobs.
The RamseteCommand examples were removed instead of retrofitted with
LTVUnicycleController because we're planning on removing the command
controller classes anyway, so it would be wasted effort. The
SimpleDifferentialDriveSimulation example shows direct
LTVUnicycleController usage.
2024-04-29 22:01:42 -07:00
Tyler Veness
7601b7250a
[upstream_utils] Upgrade Sleipnir to use a small vector type ( #6565 )
...
This sped up ArmFeedforward.Calculate() by up to 2x.
2024-04-29 22:00:32 -07:00
Isaac Turner
70417f64da
[wpimath] Remove deprecated TrapezoidProfile constructors ( #6558 )
2024-04-29 21:04:57 -07:00
Isaac Turner
f5e08652f8
[wpimath] Remove deprecated MatBuilder factory ( #6557 )
2024-04-29 21:04:43 -07:00
Nicholas Armstrong
1ec089c7f9
[wpimath] Add ArmFeedforward calculate() overload that takes current and next velocity instead of acceleration ( #6540 )
...
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
2024-04-28 12:01:08 -07:00
Tyler Veness
fd363fdf5a
[wpimath] Add Sleipnir ( #6541 )
...
This is useful for solving quadratic programs.
2024-04-27 22:42:42 -07:00
Joseph Eng
cdfa2ece6f
[wpimath] Add PoseEstimator.sampleAt() ( #6426 )
2024-04-27 21:03:37 -07:00
Tyler Veness
e73050a8fa
[wpimath] Templatize formatters ( #6535 )
...
This is required for compatibility with libc++'s std::format.
2024-04-25 16:08:24 -07:00
Isaac Turner
d14dfed828
[wpimath] Rotation2d: add Measure<Angle> getter (Java) ( #6492 )
2024-04-21 20:23:36 -07:00
Peter Johnson
c88be31ec2
Merge branch 'development'
2024-04-21 20:15:51 -07:00
Tyler Veness
74f648689e
[build] Add exports to CMake subprojects ( #6505 )
...
This allows consuming allwpilib via FetchContent.
2024-04-10 22:04:22 -07:00
Tyler Veness
2def62a1ef
[wpimath] Document ChassisSpeeds::Discretize() math (NFC) ( #6509 )
2024-04-10 22:03:44 -07:00
Tyler Veness
d26e6d9ecc
[wpimath] Support formatting Eigen array types ( #6496 )
2024-04-04 09:19:50 -07:00
Wispy
4a548935d3
[wpimath] Add Pair.toString() ( #6463 )
2024-03-24 23:51:08 -07:00
Tyler Veness
85ea5f8497
[wpimath] Make more LinearSystemId functions not throw if Kv = 0 ( #6465 )
2024-03-24 23:50:41 -07:00
Tyler Veness
5370f249a1
[build] Upgrade to wpiformat 2024.33 ( #6449 )
...
This upgrades to clang-format and clang-tidy 18.1.1. This has the
constructor attribute formatting fix, so we can remove our
WPI_DEPRECATED macro.
2024-03-18 23:11:20 -07:00
Peter Johnson
fd4424eb89
Merge branch 'main' into development
2024-03-16 11:06:44 -07:00
Tyler Veness
973bb55e66
[wpimath] LinearSystemId: Don't throw if Kv = 0 ( #6424 )
...
That's just a system with no back-EMF.
2024-03-10 08:11:18 -07:00
DeltaDizzy
7bd8c44570
[wpimath] Add structured data support for DifferentialDriveWheelPositions ( #6412 )
2024-03-09 10:09:02 -08:00
Peter Johnson
38c128fe6a
Merge branch 'main' into development
2024-03-09 09:57:55 -08:00
shueja
6afff99640
[wpimath] ExponentialProfile: Return copy of input state ( #6370 )
...
As State is mutable, this avoids accidental modification of the passed-in object by the caller modifying the return value.
2024-02-15 16:32:51 -08:00
fodfodfod
1e168f363e
[wpimath] Feed forwards: Use correct 'k' value in error message ( #6360 )
2024-02-11 10:42:04 -08:00
Asa Paparo
62cba9a4d3
[wpimath] Add vector projection and geometry vector conversions ( #6343 )
2024-02-10 10:43:58 -08:00
N0tACyb0rg
3207795d0d
[wpimath] Add lastValue() method to filters ( #6351 )
2024-02-10 10:43:23 -08:00
Thad House
e9c744c456
[wpimath] Quaternion::Log(): Remove duplicate calls to norm() ( #6358 )
2024-02-10 10:41:19 -08:00
Tyler Veness
1db3936965
[wpimath] Remove unused include from RamseteController.cpp ( #6346 )
2024-02-05 22:43:50 -08:00
Tyler Veness
4f9d73783b
[wpimath] Make units math functions constexpr ( #6345 )
2024-02-05 22:43:12 -08:00
Tyler Veness
177132fa2a
Replace C++ unit .to<double>() with .value() ( #6317 )
...
The latter is shorter and is what we use everywhere else.
2024-01-27 07:58:25 -08:00
Tyler Veness
84ef71ace0
[wpimath] Make Rotation2d implicitly convert from any angle unit ( #6316 )
...
Add unit category concepts to support this.
2024-01-26 12:49:22 -08:00
Tyler Veness
68736d802d
[wpimath] Clean up profile classes ( #6311 )
...
* Reorder functions so they match between languages
* Copy more complete JavaDocs to C++
* Fix incorrect description for time parameter of
TrapezoidProfile.calculate()
2024-01-25 22:22:42 -08:00
David Vo
a274e297cd
Fix trivial errorprone warnings (NFC) ( #6135 )
2024-01-19 20:46:38 -08:00
Tyler Veness
ca35bcd827
[wpimath] Use tolerance in rotation interpolation tests ( #6237 )
2024-01-19 20:35:13 -08:00
Ben Goldberg
420020c0d5
[wpimath] Remove unused include in Quaternion.cpp ( #6219 )
2024-01-13 08:48:43 -08:00
Tyler Veness
f29a7d2e50
[docs] Add missing JavaDocs ( #6146 )
2024-01-04 08:38:06 -08:00
Gold856
4ac0720385
[build] Clean up CMake files ( #6141 )
2024-01-04 00:47:47 -08:00
Tyler Veness
c486972c55
[wpimath] Make ExponentialProfile.State mutable ( #6138 )
...
It was already mutable in the C++ ExponentialProfile and
TrapezoidProfile in both languages.
2024-01-02 11:39:55 -08:00
Tyler Veness
ad0859a8c9
[docs] Add missing JavaDocs ( #6125 )
2024-01-01 22:56:23 -08:00
Braykoff
e1d49b975c
[wpimath] Add LinearFilter reset() overload to initialize input and output buffers ( #6133 )
2024-01-01 21:20:53 -08:00
Joseph Eng
938bf45fd9
[wpiutil] Remove type param from ProtobufSerializable and StructSerializable ( #6122 )
2023-12-31 14:36:11 -08:00
Tyler Veness
09f76b32c2
[wpimath] Compile with UTF-8 encoding ( #6111 )
...
This allows using Greek letters in variable names, which is helpful to
make implemented equations follow their source paper more closely.
2023-12-29 23:56:06 -06:00
Tyler Veness
22a322c9f3
[wpimath] Report error on negative PID gains ( #6055 )
...
Defaults PID gains to zero if any are invalid.
2023-12-23 12:15:29 -08:00
Peter Johnson
aeb1a4aa33
[wpiutil] Add serializable marker interfaces ( #6060 )
2023-12-23 08:20:26 -08:00
ncorrea210
4e4a468d4d
[wpimath] Make feedforward classes throw exceptions for negative Kv or Ka ( #6084 )
2023-12-23 08:12:46 -08:00
m10653
43fb6e9f87
[glass] Add Profiled PID controller support & IZone Support ( #5959 )
2023-12-22 11:29:25 -08:00