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
Thad House
2aba97c610
Export pb files from wpimath
2023-11-23 22:40:47 -08:00
Tyler Veness
dfdea9c992
[wpimath] Make KalmanFilter variant for asymmetric updates ( #5951 )
2023-11-23 10:56:15 -08:00
Gold856
25b7dca46b
[build] Remove CMake flat install option ( #5944 )
2023-11-21 11:48:32 -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
Tyler Veness
7d90d0bcc3
[wpimath] Clean up StateSpaceUtil ( #5891 )
2023-11-15 21:13:12 -08:00
Joseph Eng
79dd795bc0
[wpimath] Clean up VecBuilder and MatBuilder ( #5906 )
2023-11-14 12:23:50 -08:00
Peter Johnson
0f8129677b
[build] Distribute wpimath protobuf headers ( #5925 )
2023-11-13 19:50:42 -08:00
DeltaDizzy
78ebc6e9ec
[wpimath] change G to gearing in LinearSystemId factories ( #5834 )
2023-11-12 20:22:39 -08:00
Tyler Veness
3a1194be40
Replace static_cast<void>() with [[maybe_unused]] attribute ( #5892 )
...
This clarifies intent. Not done for thirdparty libraries or
structured binding variables.
2023-11-08 12:47:23 -08:00
Peter Johnson
14dcd0d26f
Use char instead of uint8_t for json::parse ( #5877 )
...
The uint8_t usage causes warnings on newer clang versions.
Add GetCharBuffer() to MemoryBuffer classes to make this easy.
2023-11-04 22:18:42 -07: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
Ryan Blue
d06fa633d5
[build] Fix protobuf generation when building with make ( #5867 )
2023-11-03 18:22:34 -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
Gold856
9eecf2a456
[build] Add CMake option to build Java sources jars ( #5768 )
2023-10-30 09:57:28 -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
99630d2e78
[wpimath] Upgrade to EJML 0.43.1 ( #5778 )
...
https://github.com/lessthanoptimal/ejml/blob/v0.43.1/change.txt
2023-10-17 19:51:17 -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
Peter Johnson
7d9ba256c2
Revert "[build] Add CMake option to build Java source jars ( #5756 )" ( #5766 )
...
This reverts commit 1c724884ca .
This commit broke local builds on the second run of cmake configure.
2023-10-14 23:53:27 -07:00
PJ Reiniger
210255bfff
[wpiutil] Update json to 3.11.2 ( #5680 )
2023-10-14 21:53:56 -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
Gold856
1c724884ca
[build] Add CMake option to build Java source jars ( #5756 )
2023-10-11 12:50:54 -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
Tyler Veness
eab44534c3
[wpimath] Remove unused SmallString include ( #5677 )
2023-09-22 08:01:01 -07:00
Tyler Veness
5ab54ff760
Replace wpi::raw_istream with wpi::MemoryBuffer ( #5675 )
...
Instances of wpi::raw_istream were left that are reading incrementally
from file descriptors like USB devices.
2023-09-21 23:20:09 -07:00
Colin Finn
6ef94de9b5
[wpimath] Add tests for ArmFeedforward and ElevatorFeedforward ( #5663 )
2023-09-18 22:25:08 -07:00
autoantwort
cb99517838
[build] cmake: Use default install location on windows for dlls ( #5580 )
2023-09-17 16:17:32 -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
autoantwort
7a9a901a73
[build] Fix cmake config files ( #5624 )
2023-09-11 13:27:00 -07:00
Joseph Eng
66e6bd81ea
[wpimath] Cleanup wpimath/algorithms.md (NFC) ( #5621 )
2023-09-10 06:26:53 -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
Tyler Veness
1a6df6fec6
[wpimath] Fix DARE Q decomposition ( #5611 )
2023-09-05 10:48:43 -07:00
Tyler Veness
814f18c7f5
[wpimath] Fix computation of C for DARE (A, C) detectability check ( #5609 )
...
If Q has off-diagonal entries, C and Cᵀ are different.
2023-09-04 21:12:25 -07:00
Tyler Veness
a750bee54d
[wpimath] Use std::norm() in IsStabilizable() ( #5599 )
2023-08-31 22:52:18 -07:00
Gold856
8e2465f8a0
[wpimath] Add arithmetic functions to wheel speeds classes ( #5465 )
2023-08-31 11:57:24 -07:00