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
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
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
Tyler Veness
4f9d73783b
[wpimath] Make units math functions constexpr ( #6345 )
2024-02-05 22:43:12 -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
Tyler Veness
f29a7d2e50
[docs] Add missing JavaDocs ( #6146 )
2024-01-04 08:38:06 -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
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
ncorrea210
4e4a468d4d
[wpimath] Make feedforward classes throw exceptions for negative Kv or Ka ( #6084 )
2023-12-23 08:12:46 -08:00
Tyler Veness
0b4c6a1546
[wpimath] Add more docs to SimulatedAnnealing (NFC) ( #6054 )
2023-12-16 11:03:54 -08:00
Tyler Veness
7d4e515a6b
[wpimath] Simplify calculation of C for DARE precondition ( #6022 )
2023-12-08 20:25:03 -08:00
Ashray._.g
9d11544c18
[wpimath] Rotate traveling salesman solution so input and solution have same initial pose ( #6015 )
2023-12-05 23:21:28 -08:00
Joseph Eng
14c3ade155
[wpimath] Struct cleanup ( #6011 )
2023-12-04 22:40:18 -08:00
Peter Johnson
a583ca01e1
[wpiutil] Change Struct to allow non-constexpr implementation ( #5992 )
...
This required changing the constant values (e.g. kSize) into functions
(e.g. GetSize()).
Fixed implementations of ForEachNested to be inline (as these are actually
templates).
Also added a ntcore Struct test.
2023-12-02 23:36:44 -08:00
Tyler Veness
ca272de400
[build] Fix Gradle compile_commands.json and clang-tidy warnings ( #5977 )
2023-12-02 21:20:43 -08:00
Tyler Veness
74b85b76a9
[wpimath] Make gcem call std functions if not constant-evaluated ( #5983 )
...
The one exception is macOS, which doesn't support std::beta().
2023-12-01 09:08:04 -08:00
Tyler Veness
30816111db
[wpimath] Fix TimeInterpolatableBuffer crash ( #5972 )
...
Don't decrement buffer iterator if it's at the beginning of the
container.
2023-11-30 23:18:38 -08:00
Tyler Veness
ac7d726ac3
[wpimath] Add simulated annealing ( #5961 )
...
Co-authored-by: Ashray._.g <ashray.gupta@gmail.com >
2023-11-30 22:57:50 -08:00
Prateek Machiraju
51eecef2bd
[wpimath] Optimize 2nd derivative of quintic splines ( #3292 )
...
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
2023-11-30 21:07:52 -08:00
Tyler Veness
31cd015970
[wpimath] Add SysId doc links to LinearSystemId in C++ (NFC) ( #5960 )
...
They already exist in Java.
2023-11-24 23:46:09 -08:00
Tyler Veness
dfdea9c992
[wpimath] Make KalmanFilter variant for asymmetric updates ( #5951 )
2023-11-23 10:56:15 -08:00
PJ Reiniger
bb05e20247
[wpimath] Add protobuf/struct for trivial types ( #5935 )
...
This implements de/serialization for the types that aren't templated (SwerveDriveKinematics) in C++ or where there is no trivial way to go round-trip (Splines) for the messages.
2023-11-21 10:14:06 -08:00
PJ Reiniger
35744a036e
[wpimath] Move struct/proto classes to separate files ( #5918 )
...
Also add unit tests.
2023-11-21 10:11:57 -08:00
Tyler Veness
7d90d0bcc3
[wpimath] Clean up StateSpaceUtil ( #5891 )
2023-11-15 21:13:12 -08:00
DeltaDizzy
78ebc6e9ec
[wpimath] change G to gearing in LinearSystemId factories ( #5834 )
2023-11-12 20:22:39 -08:00
Tyler Veness
201a42a3cd
[wpimath] Reorder TrapezoidProfile.calculate() arguments ( #5874 )
...
ProfiledPIDController and ExponentialProfile use current, then goal.
This isn't a breaking change because this overload of calculate() is
new for 2024.
2023-11-04 16:28:55 -07:00
Tyler Veness
6b53ef47cf
[wpimath] Don't recreate TrapezoidProfile in ProfiledPIDController calculate() ( #5863 )
2023-11-03 15:21:58 -07:00
Tyler Veness
98c14f1692
[wpimath] Add EKF/UKF u-y-R correct overload ( #5832 )
...
Also clean up comments on other overloads and fix a typo.
2023-10-26 19:17:15 -07:00
sciencewhiz
f4cbcbc984
Fix typos (NFC) ( #5804 )
2023-10-23 09:15:58 -07:00
Peter Johnson
cf54d9ccb7
[wpiutil, ntcore] Add structured data support ( #5391 )
...
This adds support for two serialization formats for complex data types:
- Protobuf for complex objects with variable length internals that need forward and backward wire compatibility (lower speed, more flexible)
- Raw struct (ByteBuffer-style) for fixed-length objects (higher speed, less flexible)
Deserialization can be done either by creating a new object (for immutable objects) or overwriting the contents of an existing object (for mutable objects).
Implementing classes should provide inner classes that implement the Protobuf or Struct interface (in Java) or specialize the wpi::Protobuf or wpi::Struct struct (in C++). It is possible for classes to implement both. If the class itself does not implement serialization, it's possible for third parties/users to provide an implementation instead.
Uses the Google protobuf implementation for C++ and the QuickBuffers alternative protobuf implementation for Java.
2023-10-19 21:41:47 -07:00
Jordan McMichael
ecb7cfa9ef
[wpimath] Add Exponential motion profile ( #5720 )
2023-10-19 17:26:32 -07:00
Brayden Zee
e814595ea7
[wpimath] Add ChassisSpeeds.fromRobotRelativeSpeeds() ( #5744 )
2023-10-17 10:13:04 -07:00
narmstro2020
f98c943445
[wpimath] LinearSystemId: Add DCMotorSystem overload ( #5770 )
...
The goal of this addition is to allow LinearSystemId.createDCMotorSystem to use kV and KA instead of the moment of inertia, DCMotor object, and gearing.
2023-10-17 10:11:34 -07:00
Jordan McMichael
896772c750
[wpimath] Add DCMotor functions for Kraken X60 and Neo Vortex ( #5759 )
2023-10-14 21:52:01 -07:00
Anit Mangal
c0b4c6cce6
[wpimath] Add overloads for Transform2d and Transform3d ( #5757 )
...
Adds overloads for Transform2d() constructor to accept x, y, and heading and for Transform3d() to accept x, y, z and rotation as a shorthand for the normal constructors.
2023-10-12 23:21:39 -07:00
narmstro2020
faa1e665ba
[wpimath] Add ElevatorFeedforward.calculate(currentV, nextV) overload ( #5715 )
...
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
2023-10-09 08:16:45 -07:00
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