Added make_hybrid_drivetrain_velocity_loop to drivetrain_config
Change-Id: I66dde6ddf0fc63c794d6b11ff2a2131005902953
diff --git a/frc971/control_loops/drivetrain/BUILD b/frc971/control_loops/drivetrain/BUILD
index c37f379..7f87cca 100644
--- a/frc971/control_loops/drivetrain/BUILD
+++ b/frc971/control_loops/drivetrain/BUILD
@@ -34,6 +34,7 @@
],
deps = [
"//frc971:shifter_hall_effect",
+ "//frc971/control_loops:hybrid_state_feedback_loop",
"//frc971/control_loops:state_feedback_loop",
],
)
diff --git a/frc971/control_loops/drivetrain/drivetrain_config.h b/frc971/control_loops/drivetrain/drivetrain_config.h
index 476128d..c4652be 100644
--- a/frc971/control_loops/drivetrain/drivetrain_config.h
+++ b/frc971/control_loops/drivetrain/drivetrain_config.h
@@ -3,8 +3,11 @@
#include <functional>
-#include "frc971/shifter_hall_effect.h"
+#if defined(__linux__)
+#include "frc971/control_loops/hybrid_state_feedback_loop.h"
+#endif
#include "frc971/control_loops/state_feedback_loop.h"
+#include "frc971/shifter_hall_effect.h"
namespace frc971 {
namespace control_loops {
@@ -53,6 +56,12 @@
::std::function<StateFeedbackLoop<4, 2, 2, Scalar>()> make_drivetrain_loop;
::std::function<StateFeedbackLoop<2, 2, 2, Scalar>()> make_v_drivetrain_loop;
::std::function<StateFeedbackLoop<7, 2, 4, Scalar>()> make_kf_drivetrain_loop;
+#if defined(__linux__)
+ ::std::function<
+ StateFeedbackLoop<2, 2, 2, Scalar, StateFeedbackHybridPlant<2, 2, 2>,
+ HybridKalman<2, 2, 2>>()>
+ make_hybrid_drivetrain_velocity_loop;
+#endif
::std::chrono::nanoseconds dt; // Control loop time step.
Scalar robot_radius; // Robot radius, in meters.
diff --git a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
index 383059f..f6d5aa2 100644
--- a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
+++ b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
@@ -17,6 +17,7 @@
#include "frc971/queues/gyro.q.h"
#include "y2016/constants.h"
#include "y2016/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
+#include "y2016/control_loops/drivetrain/hybrid_velocity_drivetrain.h"
#include "y2016/control_loops/drivetrain/kalman_drivetrain_motor_plant.h"
#include "y2016/control_loops/drivetrain/polydrivetrain_dog_motor_plant.h"
@@ -43,6 +44,7 @@
::y2016::control_loops::drivetrain::MakeDrivetrainLoop,
::y2016::control_loops::drivetrain::MakeVelocityDrivetrainLoop,
::y2016::control_loops::drivetrain::MakeKFDrivetrainLoop,
+ ::y2016::control_loops::drivetrain::MakeHybridVelocityDrivetrainLoop,
chrono::duration_cast<chrono::nanoseconds>(
chrono::duration<double>(::y2016::control_loops::drivetrain::kDt)),
diff --git a/frc971/control_loops/hybrid_state_feedback_loop.h b/frc971/control_loops/hybrid_state_feedback_loop.h
index 05d5aab..0af0144 100644
--- a/frc971/control_loops/hybrid_state_feedback_loop.h
+++ b/frc971/control_loops/hybrid_state_feedback_loop.h
@@ -3,7 +3,6 @@
#include <assert.h>
-#include <iostream>
#include <memory>
#include <utility>
#include <vector>
diff --git a/frc971/control_loops/state_feedback_loop.h b/frc971/control_loops/state_feedback_loop.h
index dd581bf..2511d98 100644
--- a/frc971/control_loops/state_feedback_loop.h
+++ b/frc971/control_loops/state_feedback_loop.h
@@ -3,7 +3,6 @@
#include <assert.h>
-#include <iostream>
#include <memory>
#include <utility>
#include <vector>