mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-06 03:31:43 +00:00
[docs] Set Doxygen extract_all to true and fix Doxygen failures (#3695)
The template argument order for UnscentedTransform was reversed to match all the other UKF classes. Since UnscentedTransform is intended as a class for internal use only, this shouldn't cause much breakage.
This commit is contained in:
130
upstream_utils/drake-fix-doxygen.patch
Normal file
130
upstream_utils/drake-fix-doxygen.patch
Normal file
@@ -0,0 +1,130 @@
|
||||
diff --git a/wpimath/src/main/native/include/drake/math/discrete_algebraic_riccati_equation.h b/wpimath/src/main/native/include/drake/math/discrete_algebraic_riccati_equation.h
|
||||
index 5d7a316f3..dc08be95e 100644
|
||||
--- a/wpimath/src/main/native/include/drake/math/discrete_algebraic_riccati_equation.h
|
||||
+++ b/wpimath/src/main/native/include/drake/math/discrete_algebraic_riccati_equation.h
|
||||
@@ -9,18 +9,19 @@
|
||||
namespace drake {
|
||||
namespace math {
|
||||
|
||||
-/// Computes the unique stabilizing solution X to the discrete-time algebraic
|
||||
-/// Riccati equation:
|
||||
-///
|
||||
-/// AᵀXA − X − AᵀXB(BᵀXB + R)⁻¹BᵀXA + Q = 0
|
||||
-///
|
||||
-/// @throws std::exception if Q is not positive semi-definite.
|
||||
-/// @throws std::exception if R is not positive definite.
|
||||
-///
|
||||
-/// Based on the Schur Vector approach outlined in this paper:
|
||||
-/// "On the Numerical Solution of the Discrete-Time Algebraic Riccati Equation"
|
||||
-/// by Thrasyvoulos Pappas, Alan J. Laub, and Nils R. Sandell
|
||||
-///
|
||||
+/**
|
||||
+Computes the unique stabilizing solution X to the discrete-time algebraic
|
||||
+Riccati equation:
|
||||
+
|
||||
+AᵀXA − X − AᵀXB(BᵀXB + R)⁻¹BᵀXA + Q = 0
|
||||
+
|
||||
+@throws std::exception if Q is not positive semi-definite.
|
||||
+@throws std::exception if R is not positive definite.
|
||||
+
|
||||
+Based on the Schur Vector approach outlined in this paper:
|
||||
+"On the Numerical Solution of the Discrete-Time Algebraic Riccati Equation"
|
||||
+by Thrasyvoulos Pappas, Alan J. Laub, and Nils R. Sandell
|
||||
+*/
|
||||
WPILIB_DLLEXPORT
|
||||
Eigen::MatrixXd DiscreteAlgebraicRiccatiEquation(
|
||||
const Eigen::Ref<const Eigen::MatrixXd>& A,
|
||||
@@ -28,49 +29,50 @@ Eigen::MatrixXd DiscreteAlgebraicRiccatiEquation(
|
||||
const Eigen::Ref<const Eigen::MatrixXd>& Q,
|
||||
const Eigen::Ref<const Eigen::MatrixXd>& R);
|
||||
|
||||
-/// Computes the unique stabilizing solution X to the discrete-time algebraic
|
||||
-/// Riccati equation:
|
||||
-///
|
||||
-/// AᵀXA − X − (AᵀXB + N)(BᵀXB + R)⁻¹(BᵀXA + Nᵀ) + Q = 0
|
||||
-///
|
||||
-/// This is equivalent to solving the original DARE:
|
||||
-///
|
||||
-/// A₂ᵀXA₂ − X − A₂ᵀXB(BᵀXB + R)⁻¹BᵀXA₂ + Q₂ = 0
|
||||
-///
|
||||
-/// where A₂ and Q₂ are a change of variables:
|
||||
-///
|
||||
-/// A₂ = A − BR⁻¹Nᵀ and Q₂ = Q − NR⁻¹Nᵀ
|
||||
-///
|
||||
-/// This overload of the DARE is useful for finding the control law uₖ that
|
||||
-/// minimizes the following cost function subject to xₖ₊₁ = Axₖ + Buₖ.
|
||||
-///
|
||||
-/// @verbatim
|
||||
-/// ∞ [xₖ]ᵀ[Q N][xₖ]
|
||||
-/// J = Σ [uₖ] [Nᵀ R][uₖ] ΔT
|
||||
-/// k=0
|
||||
-/// @endverbatim
|
||||
-///
|
||||
-/// This is a more general form of the following. The linear-quadratic regulator
|
||||
-/// is the feedback control law uₖ that minimizes the following cost function
|
||||
-/// subject to xₖ₊₁ = Axₖ + Buₖ:
|
||||
-///
|
||||
-/// @verbatim
|
||||
-/// ∞
|
||||
-/// J = Σ (xₖᵀQxₖ + uₖᵀRuₖ) ΔT
|
||||
-/// k=0
|
||||
-/// @endverbatim
|
||||
-///
|
||||
-/// This can be refactored as:
|
||||
-///
|
||||
-/// @verbatim
|
||||
-/// ∞ [xₖ]ᵀ[Q 0][xₖ]
|
||||
-/// J = Σ [uₖ] [0 R][uₖ] ΔT
|
||||
-/// k=0
|
||||
-/// @endverbatim
|
||||
-///
|
||||
-/// @throws std::runtime_error if Q − NR⁻¹Nᵀ is not positive semi-definite.
|
||||
-/// @throws std::runtime_error if R is not positive definite.
|
||||
-///
|
||||
+/**
|
||||
+Computes the unique stabilizing solution X to the discrete-time algebraic
|
||||
+Riccati equation:
|
||||
+
|
||||
+AᵀXA − X − (AᵀXB + N)(BᵀXB + R)⁻¹(BᵀXA + Nᵀ) + Q = 0
|
||||
+
|
||||
+This is equivalent to solving the original DARE:
|
||||
+
|
||||
+A₂ᵀXA₂ − X − A₂ᵀXB(BᵀXB + R)⁻¹BᵀXA₂ + Q₂ = 0
|
||||
+
|
||||
+where A₂ and Q₂ are a change of variables:
|
||||
+
|
||||
+A₂ = A − BR⁻¹Nᵀ and Q₂ = Q − NR⁻¹Nᵀ
|
||||
+
|
||||
+This overload of the DARE is useful for finding the control law uₖ that
|
||||
+minimizes the following cost function subject to xₖ₊₁ = Axₖ + Buₖ.
|
||||
+
|
||||
+@verbatim
|
||||
+ ∞ [xₖ]ᵀ[Q N][xₖ]
|
||||
+J = Σ [uₖ] [Nᵀ R][uₖ] ΔT
|
||||
+ k=0
|
||||
+@endverbatim
|
||||
+
|
||||
+This is a more general form of the following. The linear-quadratic regulator
|
||||
+is the feedback control law uₖ that minimizes the following cost function
|
||||
+subject to xₖ₊₁ = Axₖ + Buₖ:
|
||||
+
|
||||
+@verbatim
|
||||
+ ∞
|
||||
+J = Σ (xₖᵀQxₖ + uₖᵀRuₖ) ΔT
|
||||
+ k=0
|
||||
+@endverbatim
|
||||
+
|
||||
+This can be refactored as:
|
||||
+
|
||||
+@verbatim
|
||||
+ ∞ [xₖ]ᵀ[Q 0][xₖ]
|
||||
+J = Σ [uₖ] [0 R][uₖ] ΔT
|
||||
+ k=0
|
||||
+@endverbatim
|
||||
+
|
||||
+@throws std::runtime_error if Q − NR⁻¹Nᵀ is not positive semi-definite.
|
||||
+@throws std::runtime_error if R is not positive definite.
|
||||
+*/
|
||||
WPILIB_DLLEXPORT
|
||||
Eigen::MatrixXd DiscreteAlgebraicRiccatiEquation(
|
||||
const Eigen::Ref<const Eigen::MatrixXd>& A,
|
||||
Reference in New Issue
Block a user