Tyler Veness
f29a7d2e50
[docs] Add missing JavaDocs ( #6146 )
2024-01-04 08:38:06 -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
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
Tyler Veness
0b4c6a1546
[wpimath] Add more docs to SimulatedAnnealing (NFC) ( #6054 )
2023-12-16 11:03:54 -08:00
Gold856
f87c64af8a
[wpimath] MecanumDriveWheelSpeeds: Fix desaturate() ( #6040 )
2023-12-14 20:52:45 -08:00
Tyler Veness
192a28af47
Fix JDK 21 warnings ( #6028 )
2023-12-09 21:45:02 -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
Tyler Veness
2bb1409b82
Clean up Java style ( #5990 )
...
Also make equivalent changes in C++ where applicable.
Co-authored-by: Sriman Achanta <68172138+srimanachanta@users.noreply.github.com >
2023-12-03 16:21:32 -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
Tyler Veness
e09be72ee0
[wpimath] Remove unused SimpleMatrixUtils class ( #5979 )
...
It looks like it was gradually replaced by JNI wrappers around Eigen.
2023-11-30 21:12:43 -08:00
Tyler Veness
0f9ebe92d9
[wpimath] Add generic circular buffer class to Java ( #5969 )
...
The original is now called DoubleCircularBuffer.
2023-11-30 21:12:23 -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
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
Sam Carlberg
0ca1e9b5f9
[wpimath] Add basic wpiunits support ( #5821 )
...
To reduce the need for users to manually perform unit conversions, this allows Measure objects from wpiunits to be passed into most places in wpimath that currently expect doubles in terms of SI units like meters.
For example, users would need to know that unit conversion is required - and what the correct units are. Using units would be more difficult to write code for than just hardcoding a value or using Units.inchesToMeters.
Now, using units has no more developer overhead than using raw numbers.
2023-11-17 10:45:04 -06:00
Joseph Eng
79dd795bc0
[wpimath] Clean up VecBuilder and MatBuilder ( #5906 )
2023-11-14 12:23:50 -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
Bryce Roethel
87f7c19f90
[wpimath] Make InterpolatingDoubleTreeMap constructor public ( #5865 )
2023-11-03 15:34:14 -07:00
Tyler Veness
6b53ef47cf
[wpimath] Don't recreate TrapezoidProfile in ProfiledPIDController calculate() ( #5863 )
2023-11-03 15:21:58 -07:00
Tyler Veness
ec569a58ef
[wpimath] Make KalmanTypeFilter interface public ( #5830 )
2023-10-26 19:18:02 -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
Tyler Veness
02cbbc997d
[wpimath] Make Vector-Vector binary operators return Vector ( #5772 )
...
Fixes #5741 .
2023-10-17 16:44:30 -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
Tyler Veness
fd427f6c82
[wpimath] Fix hardcoded module count in SwerveDriveKinematics.resetHeading() ( #5762 )
...
Fixes #5761 .
2023-10-14 21:51:15 -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
Ryan Blue
4da5aee88a
[wpimath] Remove SlewRateLimiter 2 argument constructor ( #5648 )
...
Deprecated in #4377
2023-09-16 22:04:29 -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
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
Gold856
4e0d785356
[wpimath] ChassisSpeeds: document that values aren't relative to the robot (NFC) ( #5551 )
2023-08-30 13:22:42 -07:00
Tyler Veness
b7657a8e28
[wpimath] Split WPIMathJNI into logical chunks ( #5552 )
...
This makes things easier to find, and speeds up compilation.
2023-08-29 09:00:19 -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