Tyler Veness
1daadb812f
[wpimath] Implement Dormand-Prince integration method ( #3476 )
...
Also refactored RKF45 implementation to match the new style, which is
easier to read.
The tests were switched from RKF45 to RKDP since it's more accurate.
2021-07-11 09:42:33 -05:00
Tyler Veness
9fb4f35bb6
[wpimath] Add tests for DARE overload with Q, R, and N matrices ( #3472 )
...
The autodiff headers weren't used by the tests, so they were removed.
2021-07-09 21:41:33 -05:00
Tyler Veness
9d68d95825
Remove extra newlines after open curly braces (NFC) ( #3471 )
2021-07-08 23:41:30 -05:00
Tyler Veness
a4233e1a16
[wpimath] Add script for updating Drake ( #3470 )
...
Common functionality between the Drake and Eigen update scripts was
refactored into a library.
2021-07-08 22:36:01 -05:00
Prateek Machiraju
646ded9123
[wpimath] Remove incorrect discretization in pose estimators ( #3460 )
2021-06-23 21:57:52 -07:00
Tyler Veness
7aae2b72dc
Replace std::to_string() with fmt::format() ( #3451 )
2021-06-19 09:30:01 -07:00
Noam Zaks
791770cf6e
[wpimath] Move controller from wpilibj to wpimath ( #3439 )
2021-06-16 07:45:51 -07:00
Noam Zaks
9ce9188ff6
[wpimath] Add ReportWarning to MathShared ( #3441 )
2021-06-16 00:52:24 -07:00
Thad House
4a36f86c81
[hal] Add support for DMA to Java ( #3158 )
2021-06-14 19:56:42 -07:00
Peter Johnson
f60994ad24
[wpiutil] Rename Java package to edu.wpi.first.util ( #3431 )
...
This is more consistent with wpimath being edu.wpi.first.math.
2021-06-12 01:17:09 -07:00
Tyler Veness
4d9ff76433
Fix documentation warnings generated by JavaDoc (NFC) ( #3428 )
...
Some C++ Doxygen comments were updated to reflect any wording changes.
See `rg "(@return|@param \w+) TODO" | less` for list of incomplete docs.
2021-06-10 20:46:47 -07:00
Tyler Veness
e246b78846
[wpimath] Clean up member initialization in feedforward classes ( #3425 )
2021-06-09 23:59:31 -07:00
Tyler Veness
c1e128bd5a
Disable frivolous PMD warnings and enable PMD in ntcore ( #3419 )
...
Some valid warnings like throwing NullPointerException or using a for
loop instead of System.arraycopy() were fixed.
Abstract classes marked with PMD.AbstractClassWithoutAbstractMethod were
made concrete because they already had protected constructors.
Fixes #1697 .
2021-06-09 07:01:00 -07:00
Tyler Veness
f7db09a128
[wpimath] Move C++ filters into filter folder to match Java ( #3417 )
2021-06-08 21:21:01 -07:00
Tyler Veness
f9c3d54bd1
[wpimath] Reset error covariance in pose estimator ResetPosition() ( #3418 )
...
This also fixes a member function name inconsistency between languages
and adds missing documentation to C++'s KalmanFilterLatencyCompensator.
Fixes #3229 .
2021-06-08 21:20:43 -07:00
Peter Johnson
64f5413253
Use wpi::span instead of wpi::ArrayRef across all libraries ( #3414 )
...
- Remove ArrayRef.h
- Add SpanExtras.h for a couple of convenience functions
2021-06-06 19:51:14 -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
Peter Johnson
b2c3b2dd8e
Use std::string_view and fmtlib across all libraries ( #3402 )
...
- Twine, StringRef, Format, and NativeFormatting have been removed
- Logging now uses fmtlib style formatting
- Nearly all uses of wpi::outs/errs have been replaced with fmt::print() or
std::puts()/std::fputs() (for unformatted strings).
- A wpi/fmt/raw_ostream.h header has been added to enable
fmt::print() with wpi::raw_ostream
2021-06-06 16:13:58 -07:00
Tyler Veness
dea841103d
[wpimath] Add fmtlib formatter overloads for Eigen::Matrix and units ( #3409 )
...
This allows using Eigen matrices or units natively with fmt::format() or
fmt::print().
2021-06-05 21:10:41 -07:00
Tyler Veness
82856cf816
[wpiutil] Improve wpi::circular_buffer iterators ( #3410 )
...
The implementation of wpi::circular_buffer has been effectively replaced
with a dynamically sized copy of wpi::static_circular_buffer with a
resize() member function.
2021-06-05 21:08:12 -07:00
Tyler Veness
15c521a7fe
[wpimath] Fix drivetrain system identification ( #3406 )
...
The units for angular Kv and Ka were inconsistent with the derivation. A
second factory function overload was added for angular units that uses a
trackwidth to convert to the other form.
Notice how section 15.2 of https://file.tavsys.net/control/controls-engineering-in-frc.pdf
defines the angular feedforward as u = Kv,angular v instead of u = Kv,angular + omega.
The units cancel for elements of A but not B, so just the B matrix was incorrect in our code.
This breaks existing C++ code since the units are part of the function
signature.
2021-06-05 11:22:05 -07:00
Tyler Veness
01dc0249de
[wpimath] Move SlewRateLimiter from wpilib to wpimath ( #3399 )
...
Timer was replaced with wpi::Now() to avoid a dependency on other wpilib
classes.
2021-05-31 10:35:54 -07:00
Tyler Veness
e09293a15e
[wpilibc] Transition C++ classes to units::second_t ( #3396 )
...
A lot of these are breaking changes. frc::Timer was replaced with the
contents of frc2::Timer. The others were in-place argument changes or
removing deprecated non-unit overloads.
2021-05-28 22:06:59 -07:00
Tyler Veness
a238cec12b
[wpiutil] Deprecate wpi::math constants in favor of wpi::numbers ( #3383 )
...
The constants were moved from std::math to std::numbers before
ratification in C++20.
2021-05-26 00:09:36 -07:00
Tyler Veness
484cf9c0e8
[wpimath] Suppress the -Wmaybe-uninitialized warning in Eigen ( #3378 )
...
GCC 11 emits a false positive when compiling Eigen and breaks the
build.
Fixes #3363 .
2021-05-25 10:05:41 -07:00
Peter Johnson
a04d1b4f97
[wpilibc] DriverStation: Remove ReportError and ReportWarning
...
Change use cases to directly call FRC_ReportError.
2021-05-25 10:04:32 -07:00
Tyler Veness
04dae799a2
[wpimath] Add SimpleMotorFeedforward::Calculate(velocity, nextVelocity) overload ( #3183 )
...
This is often more convenient than using the overload with velocity and
acceleration.
Fixes #3160 .
2021-05-21 23:44:10 -07:00
Tyler Veness
8dd8d4d2d4
[wpimath] Fix redundant nested math package introduced by #3316 ( #3368 )
2021-05-21 22:29:52 -07:00
Tyler Veness
4c562a4457
[wpimath] Fix typo in comment of update_eigen.py ( #3369 )
...
NonMPL2.h clearly doesn't contain MPL2 code.
2021-05-21 21:39:33 -07:00
Tyler Veness
fdbbf11887
[wpimath] Add script for updating Eigen
2021-05-20 18:52:11 -07:00
Tyler Veness
f1e64b349a
[wpimath] Move Eigen unsupported folder into eigeninclude
...
This fixes relative includes in development versions of Eigen.
2021-05-20 18:52:11 -07:00
Peter Johnson
3cc2da3328
Merge branch '2022'
2021-05-09 14:15:40 -07:00
Tyler Veness
a3cd90dd71
[wpimath] Fix classpath used by generate_numbers.py ( #3339 )
2021-05-09 00:01:03 -07:00
Tyler Veness
ba08baabb9
[wpimath] Update Drake DARE solver to v0.29.0 ( #3336 )
...
This version incorporated the patch we were manually applying, so we're
synced back up with upstream now except for some minor #include changes
to reduce header bloat.
2021-05-05 09:16:55 -07:00
Noam Zaks
c8ff626fe2
[wpimath] Move Java classes to edu.wpi.first.math ( #3316 )
2021-05-01 08:53:30 -07:00
Tyler Veness
365f5449ca
[wpimath] Fix MecanumDriveKinematics ( #3266 )
2021-04-30 15:50:16 -07:00
Tyler Veness
ee0eed143a
[wpimath] Add DCMotor factory function for Romi motors ( #3319 )
2021-04-29 09:59:35 -07:00
Peter Johnson
05ebe93180
Merge branch 'main' into 2022
2021-04-19 18:45:31 -07:00
Tyler Veness
948625de9d
[wpimath] Document conversion from filter cutoff frequency to time constant ( #3299 )
2021-04-12 11:12:52 -07:00
Prateek Machiraju
fa7240a501
[wpimath] Fix typo in quintic spline basis matrix
2021-04-03 16:03:38 -07:00
Prateek Machiraju
ffb4d38e24
[wpimath] Add derivation for spline basis matrices
2021-04-03 16:03:38 -07:00
Prateek Machiraju
4d28b1f0cd
[wpimath] Use JNI for trajectory serialization ( #3257 )
2021-03-21 12:38:23 -07:00
Peter Johnson
3de800a607
[wpimath] TrajectoryUtil.h: Comment formatting (NFC) ( #3262 )
2021-03-21 11:40:15 -07:00
Prateek Machiraju
d3e45c297c
[wpimath] Make C++ geometry classes immutable ( #3249 )
2021-03-19 13:38:54 -07:00
Prateek Machiraju
f3f86b8e78
[wpimath] Add pose estimator overload for vision + std dev measurement ( #3200 )
2021-03-03 23:37:18 -08:00
Prateek Machiraju
40b367513f
[wpimath] Units.java: Add kg-lb conversions ( #3203 )
2021-02-27 10:12:41 -08:00
Prateek Machiraju
9522f2e8c7
[wpimath] Add methods to concatenate trajectories ( #3139 )
...
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
2021-02-16 18:06:36 -08:00
Zachary Orr
e42a0b6cf0
[wpimath] Rotation2d comment formatting (NFC) ( #3162 )
2021-02-16 18:06:01 -08:00
Claudius Tewari
d1c7032dec
[wpimath] Fix order of setting gyro offset in pose estimators ( #3176 )
...
The gyro offset should be determined from the desired initial pose, not the current pose. This fix reflects the behavior of the odometry classes and the C++ holonomic pose estimators.
2021-02-16 18:04:38 -08:00