Add some "simplified" swerve dynamics
This provides some dynamics which ignore a bunch of the dynamics from
the more complete physics, with the intention of trying to provide
something that is cheaper to linearize and work with while being easier
to verify/reason about than the more complex physics.
Change-Id: I654d42d3fbdd2fa9f8f7e666f72ff99d4ce3ada0
Signed-off-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
diff --git a/frc971/control_loops/swerve/BUILD b/frc971/control_loops/swerve/BUILD
index f51ba04..e52efcd 100644
--- a/frc971/control_loops/swerve/BUILD
+++ b/frc971/control_loops/swerve/BUILD
@@ -368,3 +368,28 @@
"//aos/testing:googletest",
],
)
+
+cc_library(
+ name = "simplified_dynamics",
+ hdrs = ["simplified_dynamics.h"],
+ deps = [
+ ":auto_diff_jacobian",
+ ":eigen_dynamics",
+ ":motors",
+ "//aos/util:math",
+ "@com_google_absl//absl/log",
+ "@com_google_absl//absl/log:check",
+ ],
+)
+
+cc_test(
+ name = "simplified_dynamics_test",
+ srcs = ["simplified_dynamics_test.cc"],
+ deps = [
+ ":simplified_dynamics",
+ "//aos/testing:googletest",
+ "//aos/time",
+ "//frc971/control_loops:jacobian",
+ "@com_google_absl//absl/log",
+ ],
+)