ninjadrknss
96004f9bb5
[wpimath] Replace Pose2/3d.exp(Twist2/3d) with Pose2/3d.plus(Twist2/3d.exp()) ( #8188 )
...
This better matches math notation.
2025-08-30 11:37:09 -07:00
Peter Johnson
98f933eca5
Merge branch 'main' into 2027
2025-02-20 00:26:23 -08:00
Tyler Veness
ac1705ae2b
[wpimath] Remove unit suffixes from variable names ( #7529 )
...
* Move units into API docs instead because suffixes make user code verbose and hard to read
* Rename trackWidth to trackwidth
* Make ultrasonic classes use meters instead of a mix of m, cm, mm, ft,
and inches
2025-02-10 08:23:04 -07:00
Peter Johnson
764ada9b66
[hal] Change usage reporting to string-based ( #7763 )
2025-02-07 13:37:23 -07:00
Joseph Eng
296986397b
[wpimath] Document drift from desaturating discretized chassis speeds (NFC) ( #7741 )
2025-02-03 11:46:18 -07:00
Peter Johnson
2a757eaeb5
Merge branch 'main' into 2027
2024-12-26 18:55:43 -08:00
Tyler Veness
02a0adc653
[wpimath] Add Rotation3d rotation vector getter ( #7564 )
...
The code churn in Java is just making the function order consistent
between languages.
2024-12-22 13:34:51 -08:00
Tyler Veness
03f0fc4dea
[wpimath] Use immutable member functions in ChassisSpeeds ( #7545 )
2024-12-15 16:09:34 -08:00
Joseph Eng
2acf111f56
[wpimath] Add 3D odometry and pose estimation ( #7119 )
2024-11-16 07:56:14 -08:00
Thad House
3cc541f261
Remove generated google protobuf support ( #7371 )
...
It's not used anymore, and cleans up the build.
2024-11-08 18:29:30 -08:00
Thad House
8b8b634f65
[wpiutil] Change C++ protobuf to nanopb ( #7309 )
...
The Google C++ protobuf implementation has issues with dynamic linkage across DLL boundaries because it uses global variables. It also has a compile-time dependency because the protoc version must exactly match the libprotobuf version. Using nanopb with a customized generator fixes both of these issues.
Co-authored-by: Gold856 <117957790+Gold856@users.noreply.github.com >
2024-11-07 22:42:50 -08:00
Tyler Veness
05c7fd929b
[wpimath] Make various classes constexpr ( #7237 )
2024-10-22 07:58:06 -06:00
Tyler Veness
ee281ea448
[wpimath] Merge .inc files into headers ( #7209 )
...
Splitting the files didn't help readability or save compilation time and
it confused contributors. Merging them is also in line with how C++
modules will be written.
2024-10-14 16:08:10 -07:00
Bryce Roethel
d97a749d84
[wpimath] SwerveDrivePoseEstimator: Fix stationary module emitting error when calculating angle in ToSwerveModuleStates ( #7175 )
2024-10-10 22:05:49 -07:00
Nicholas Armstrong
fe80d72fba
[wpimath] Add cosineScale method to SwerveModuleState and instance optimize ( #7114 )
2024-09-30 13:23:30 -06:00
Tyler Veness
d44b651558
[build] Make Protobuf optional in CMake build ( #7061 )
2024-09-12 23:44:19 -07:00
Gold856
b12b83aa89
Fix typos with cspell ( #6972 )
2024-08-17 07:44:34 -07:00
Joseph Eng
073192d513
[wpimath] Add remaining struct and protobuf implementations ( #5953 )
2024-07-29 07:55:44 -07:00
Joseph Eng
158fb23072
[wpiutil] Struct: Change from GetTypeString() to GetTypeName() ( #6872 )
...
This makes it easier to define schemas when the type name is non-trivial (e.g., templated structs).
This is breaking for a) custom struct implementations and b) anything calling `wpi::Struct<T>::GetTypeString(info...)` in C++ directly. In both cases, it's a simple translation: For A, rename `GetTypeString()` to `GetTypeName()` and remove the struct: at the beginning, and for B, use `wpi::GetStructTypeString<T>(info...)` instead.
2024-07-27 20:23:45 -07:00
Christopher Mahoney
6c0429c263
[wpimath] Remove WheelPositions interface/concept ( #6771 )
2024-07-16 12:39:24 -07:00
Joseph Eng
7b7d17ccd7
[wpimath] Add and use kinematics.copyInto() ( #6789 )
2024-07-15 17:19:31 -07:00
Jade
dc276b651b
[wpimath] Add reset methods to Odometry ( #6702 )
2024-07-08 18:25:42 -07:00
Joseph Eng
7751f6d1d2
[wpimath] Remove swerve wrappers for odometry and pose estimation, move wheel positions operations to kinematics ( #6673 )
2024-06-01 11:59:54 -07:00
Jade
8834cb1de4
[wpimath] ChassisSpeeds: add equals method ( #6414 )
2024-05-24 10:42:32 -07:00
ncorrea210
0b5aec82ff
[wpimath] Add ChassisSpeeds::ToTwist2d() to ChassisSpeeds ( #6634 )
...
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
2024-05-20 12:19:17 -07:00
Tyler Veness
2def62a1ef
[wpimath] Document ChassisSpeeds::Discretize() math (NFC) ( #6509 )
2024-04-10 22:03:44 -07:00
DeltaDizzy
7bd8c44570
[wpimath] Add structured data support for DifferentialDriveWheelPositions ( #6412 )
2024-03-09 10:09:02 -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
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
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
sciencewhiz
f4cbcbc984
Fix typos (NFC) ( #5804 )
2023-10-23 09:15:58 -07:00
Brayden Zee
e814595ea7
[wpimath] Add ChassisSpeeds.fromRobotRelativeSpeeds() ( #5744 )
2023-10-17 10:13:04 -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
Gold856
8e2465f8a0
[wpimath] Add arithmetic functions to wheel speeds classes ( #5465 )
2023-08-31 11:57:24 -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
8e2a7fd306
Include thirdparty libraries with angle brackets ( #5578 )
2023-08-28 15:13:34 -07:00
Joseph Eng
0c93aded8a
[wpimath] Change kinematics.ToTwist2d(end - start) to kinematics.ToTwist2d(start, end) ( #5493 )
2023-08-01 22:25:26 -07:00
Joseph Eng
2ba8fbb6f4
[wpimath] Improve documentation for SwerveModulePosition::operator- ( #5468 )
2023-07-24 22:46:59 -07:00
Joseph Eng
657338715d
[wpimath] Add ChassisSpeeds method to fix drifting during compound swerve drive maneuvers ( #5425 )
2023-07-18 21:19:55 -07:00
camaj
c69e34c80c
[wpimath] ChassisSpeeds: Add arithmetic functions ( #5293 )
...
Co-authored-by: Ryan Blue <ryanzblue@gmail.com >
Co-authored-by: Tyler Veness <calcmogul@gmail.com >
2023-07-18 16:30:21 -07:00
Gold856
5fc4aee2d2
[wpimath] SwerveDriveKinematics: Rename currentChassisSpeed to desiredChassisSpeed ( #5393 )
2023-06-19 22:58:38 -07:00
Gold856
50b90ceb54
[wpimath] SwerveDriveKinematics: Add reset method ( #5398 )
...
Adds a reset method where teams can pass in module headings for the kinematics object to use if it gets an all-zero ChassisSpeeds while converting ChassisSpeeds to module states. Also removes internal states array, replacing it with an internal headings array.
2023-06-19 22:57:55 -07:00
Joseph Eng
25ad5017a9
[wpimath] Refactor kinematics, odometry, and pose estimator ( #5355 )
2023-06-19 17:10:39 -07:00
Tyler Veness
652d1c44e3
[wpiutil] Upgrade to macOS 12 to remove concept shims ( #5379 )
...
The macOS deployment target has been upgraded from 10.15 to 11. Also, a
deprecation warning for sprintf() in libuv was suppressed.
2023-06-08 19:59:54 -07:00
Tyler Veness
91cbcea841
Replace SFINAE with concepts ( #5361 )
...
Concepts are cleaner to use and result in much better error messages for incorrect template use.
2023-06-07 09:50:09 -07:00
Tyler Veness
5fac18ff4a
Update formatting to clang-format 16 ( #5370 )
2023-05-31 22:10:53 -07:00
Tyler Veness
125f6ea101
[wpimath] Make SwerveDriveKinematics::ToChassisSpeeds() take const-ref argument ( #5363 )
2023-05-30 23:34:39 -07:00