From 603a59fbfed643cbb543e82a8bc0f1c6fd669827 Mon Sep 17 00:00:00 2001 From: Tyler Veness Date: Sun, 9 Nov 2025 10:34:04 -0800 Subject: [PATCH] [wpimath] Add typedefs for LQR and Kalman filters (#8340) These are industry-standard initialisms. The original class names were left as is so they're more googleable, but I could be convinced otherwise. --- .../include/wpi/math/controller/LinearQuadraticRegulator.hpp | 3 +++ .../native/include/wpi/math/estimator/ExtendedKalmanFilter.hpp | 3 +++ .../main/native/include/wpi/math/estimator/KalmanFilter.hpp | 3 +++ .../include/wpi/math/estimator/SteadyStateKalmanFilter.hpp | 3 +++ .../include/wpi/math/estimator/UnscentedKalmanFilter.hpp | 3 +++ 5 files changed, 15 insertions(+) diff --git a/wpimath/src/main/native/include/wpi/math/controller/LinearQuadraticRegulator.hpp b/wpimath/src/main/native/include/wpi/math/controller/LinearQuadraticRegulator.hpp index 1bb1a6185d..2f53b06cda 100644 --- a/wpimath/src/main/native/include/wpi/math/controller/LinearQuadraticRegulator.hpp +++ b/wpimath/src/main/native/include/wpi/math/controller/LinearQuadraticRegulator.hpp @@ -311,6 +311,9 @@ class LinearQuadraticRegulator { Matrixd m_K; }; +template +using LQR = LinearQuadraticRegulator; + extern template class EXPORT_TEMPLATE_DECLARE(WPILIB_DLLEXPORT) LinearQuadraticRegulator<1, 1>; extern template class EXPORT_TEMPLATE_DECLARE(WPILIB_DLLEXPORT) diff --git a/wpimath/src/main/native/include/wpi/math/estimator/ExtendedKalmanFilter.hpp b/wpimath/src/main/native/include/wpi/math/estimator/ExtendedKalmanFilter.hpp index 103da61dd2..15a69198e1 100644 --- a/wpimath/src/main/native/include/wpi/math/estimator/ExtendedKalmanFilter.hpp +++ b/wpimath/src/main/native/include/wpi/math/estimator/ExtendedKalmanFilter.hpp @@ -428,4 +428,7 @@ class ExtendedKalmanFilter { StateMatrix m_initP; }; +template +using EKF = ExtendedKalmanFilter; + } // namespace wpi::math diff --git a/wpimath/src/main/native/include/wpi/math/estimator/KalmanFilter.hpp b/wpimath/src/main/native/include/wpi/math/estimator/KalmanFilter.hpp index 67178aa589..94a1dbf70d 100644 --- a/wpimath/src/main/native/include/wpi/math/estimator/KalmanFilter.hpp +++ b/wpimath/src/main/native/include/wpi/math/estimator/KalmanFilter.hpp @@ -262,6 +262,9 @@ class KalmanFilter { StateMatrix m_initP; }; +template +using KF = KalmanFilter; + extern template class EXPORT_TEMPLATE_DECLARE(WPILIB_DLLEXPORT) KalmanFilter<1, 1, 1>; extern template class EXPORT_TEMPLATE_DECLARE(WPILIB_DLLEXPORT) diff --git a/wpimath/src/main/native/include/wpi/math/estimator/SteadyStateKalmanFilter.hpp b/wpimath/src/main/native/include/wpi/math/estimator/SteadyStateKalmanFilter.hpp index 61b7d5cabe..d692ac8dda 100644 --- a/wpimath/src/main/native/include/wpi/math/estimator/SteadyStateKalmanFilter.hpp +++ b/wpimath/src/main/native/include/wpi/math/estimator/SteadyStateKalmanFilter.hpp @@ -237,6 +237,9 @@ class SteadyStateKalmanFilter { StateVector m_xHat; }; +template +using SteadyStateKF = SteadyStateKalmanFilter; + extern template class EXPORT_TEMPLATE_DECLARE(WPILIB_DLLEXPORT) SteadyStateKalmanFilter<1, 1, 1>; extern template class EXPORT_TEMPLATE_DECLARE(WPILIB_DLLEXPORT) diff --git a/wpimath/src/main/native/include/wpi/math/estimator/UnscentedKalmanFilter.hpp b/wpimath/src/main/native/include/wpi/math/estimator/UnscentedKalmanFilter.hpp index b6e42d9bb6..7a7ce432ab 100644 --- a/wpimath/src/main/native/include/wpi/math/estimator/UnscentedKalmanFilter.hpp +++ b/wpimath/src/main/native/include/wpi/math/estimator/UnscentedKalmanFilter.hpp @@ -496,4 +496,7 @@ class UnscentedKalmanFilter { SigmaPoints m_pts; }; +template SigmaPoints> +using UKF = UnscentedKalmanFilter; + } // namespace wpi::math