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>
diff --git a/y2012/control_loops/drivetrain/drivetrain_base.cc b/y2012/control_loops/drivetrain/drivetrain_base.cc
index 8ca87bc..4e5a87f 100644
--- a/y2012/control_loops/drivetrain/drivetrain_base.cc
+++ b/y2012/control_loops/drivetrain/drivetrain_base.cc
@@ -7,6 +7,7 @@
#include "y2012/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
#include "y2012/control_loops/drivetrain/kalman_drivetrain_motor_plant.h"
#include "y2012/control_loops/drivetrain/polydrivetrain_dog_motor_plant.h"
+#include "y2012/control_loops/drivetrain/hybrid_velocity_drivetrain.h"
using ::frc971::control_loops::drivetrain::DrivetrainConfig;
@@ -27,9 +28,10 @@
::frc971::control_loops::drivetrain::GyroType::SPARTAN_GYRO,
::frc971::control_loops::drivetrain::IMUType::IMU_X,
- ::y2012::control_loops::drivetrain::MakeDrivetrainLoop,
- ::y2012::control_loops::drivetrain::MakeVelocityDrivetrainLoop,
- ::y2012::control_loops::drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeDrivetrainLoop,
+ drivetrain::MakeVelocityDrivetrainLoop,
+ drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeHybridVelocityDrivetrainLoop,
chrono::duration_cast<chrono::nanoseconds>(
chrono::duration<double>(drivetrain::kDt)),
diff --git a/y2014/control_loops/drivetrain/drivetrain_base.cc b/y2014/control_loops/drivetrain/drivetrain_base.cc
index 07a74c4..8859f16 100644
--- a/y2014/control_loops/drivetrain/drivetrain_base.cc
+++ b/y2014/control_loops/drivetrain/drivetrain_base.cc
@@ -5,6 +5,7 @@
#include "frc971/control_loops/drivetrain/drivetrain_config.h"
#include "y2014/constants.h"
#include "y2014/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
+#include "y2014/control_loops/drivetrain/hybrid_velocity_drivetrain.h"
#include "y2014/control_loops/drivetrain/kalman_drivetrain_motor_plant.h"
#include "y2014/control_loops/drivetrain/polydrivetrain_dog_motor_plant.h"
@@ -23,9 +24,10 @@
::frc971::control_loops::drivetrain::GyroType::SPARTAN_GYRO,
::frc971::control_loops::drivetrain::IMUType::IMU_X,
- ::y2014::control_loops::drivetrain::MakeDrivetrainLoop,
- ::y2014::control_loops::drivetrain::MakeVelocityDrivetrainLoop,
- ::y2014::control_loops::drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeDrivetrainLoop,
+ drivetrain::MakeVelocityDrivetrainLoop,
+ drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeHybridVelocityDrivetrainLoop,
chrono::duration_cast<chrono::nanoseconds>(
chrono::duration<double>(drivetrain::kDt)),
diff --git a/y2014_bot3/control_loops/drivetrain/drivetrain_base.cc b/y2014_bot3/control_loops/drivetrain/drivetrain_base.cc
index 0380564..4d03eca 100644
--- a/y2014_bot3/control_loops/drivetrain/drivetrain_base.cc
+++ b/y2014_bot3/control_loops/drivetrain/drivetrain_base.cc
@@ -5,6 +5,7 @@
#include "frc971/control_loops/drivetrain/drivetrain_config.h"
#include "frc971/control_loops/state_feedback_loop.h"
#include "y2014_bot3/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
+#include "y2014_bot3/control_loops/drivetrain/hybrid_velocity_drivetrain.h"
#include "y2014_bot3/control_loops/drivetrain/kalman_drivetrain_motor_plant.h"
#include "y2014_bot3/control_loops/drivetrain/polydrivetrain_dog_motor_plant.h"
@@ -30,6 +31,7 @@
::y2014_bot3::control_loops::drivetrain::MakeDrivetrainLoop,
::y2014_bot3::control_loops::drivetrain::MakeVelocityDrivetrainLoop,
::y2014_bot3::control_loops::drivetrain::MakeKFDrivetrainLoop,
+ ::y2014_bot3::control_loops::drivetrain::MakeHybridVelocityDrivetrainLoop,
chrono::duration_cast<chrono::nanoseconds>(
chrono::duration<double>(drivetrain::kDt)),
diff --git a/y2016/control_loops/drivetrain/drivetrain_base.cc b/y2016/control_loops/drivetrain/drivetrain_base.cc
index bee3666..3a3f3c8 100644
--- a/y2016/control_loops/drivetrain/drivetrain_base.cc
+++ b/y2016/control_loops/drivetrain/drivetrain_base.cc
@@ -6,6 +6,7 @@
#include "frc971/control_loops/state_feedback_loop.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"
@@ -28,9 +29,10 @@
::frc971::control_loops::drivetrain::GyroType::SPARTAN_GYRO,
::frc971::control_loops::drivetrain::IMUType::IMU_X,
- ::y2016::control_loops::drivetrain::MakeDrivetrainLoop,
- ::y2016::control_loops::drivetrain::MakeVelocityDrivetrainLoop,
- ::y2016::control_loops::drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeDrivetrainLoop,
+ drivetrain::MakeVelocityDrivetrainLoop,
+ drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeHybridVelocityDrivetrainLoop,
chrono::duration_cast<chrono::nanoseconds>(
chrono::duration<double>(drivetrain::kDt)),
diff --git a/y2017/control_loops/drivetrain/drivetrain_base.cc b/y2017/control_loops/drivetrain/drivetrain_base.cc
index ecea96c..6cc7822 100644
--- a/y2017/control_loops/drivetrain/drivetrain_base.cc
+++ b/y2017/control_loops/drivetrain/drivetrain_base.cc
@@ -6,6 +6,7 @@
#include "frc971/control_loops/state_feedback_loop.h"
#include "y2017/constants.h"
#include "y2017/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
+#include "y2017/control_loops/drivetrain/hybrid_velocity_drivetrain.h"
#include "y2017/control_loops/drivetrain/kalman_drivetrain_motor_plant.h"
#include "y2017/control_loops/drivetrain/polydrivetrain_dog_motor_plant.h"
@@ -28,9 +29,10 @@
::frc971::control_loops::drivetrain::GyroType::IMU_Z_GYRO,
::frc971::control_loops::drivetrain::IMUType::IMU_X,
- ::y2017::control_loops::drivetrain::MakeDrivetrainLoop,
- ::y2017::control_loops::drivetrain::MakeVelocityDrivetrainLoop,
- ::y2017::control_loops::drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeDrivetrainLoop,
+ drivetrain::MakeVelocityDrivetrainLoop,
+ drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeHybridVelocityDrivetrainLoop,
chrono::duration_cast<chrono::nanoseconds>(
chrono::duration<double>(drivetrain::kDt)),
diff --git a/y2017_bot3/control_loops/drivetrain/drivetrain_base.cc b/y2017_bot3/control_loops/drivetrain/drivetrain_base.cc
index b9b5728..97b5ed4 100644
--- a/y2017_bot3/control_loops/drivetrain/drivetrain_base.cc
+++ b/y2017_bot3/control_loops/drivetrain/drivetrain_base.cc
@@ -5,6 +5,7 @@
#include "frc971/control_loops/drivetrain/drivetrain_config.h"
#include "frc971/control_loops/state_feedback_loop.h"
#include "y2017_bot3/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
+#include "y2017_bot3/control_loops/drivetrain/hybrid_velocity_drivetrain.h"
#include "y2017_bot3/control_loops/drivetrain/kalman_drivetrain_motor_plant.h"
#include "y2017_bot3/control_loops/drivetrain/polydrivetrain_dog_motor_plant.h"
@@ -27,9 +28,10 @@
::frc971::control_loops::drivetrain::GyroType::SPARTAN_GYRO,
::frc971::control_loops::drivetrain::IMUType::IMU_X,
- ::y2017_bot3::control_loops::drivetrain::MakeDrivetrainLoop,
- ::y2017_bot3::control_loops::drivetrain::MakeVelocityDrivetrainLoop,
- ::y2017_bot3::control_loops::drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeDrivetrainLoop,
+ drivetrain::MakeVelocityDrivetrainLoop,
+ drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeHybridVelocityDrivetrainLoop,
chrono::duration_cast<chrono::nanoseconds>(
chrono::duration<double>(drivetrain::kDt)),
diff --git a/y2018/control_loops/drivetrain/drivetrain_base.cc b/y2018/control_loops/drivetrain/drivetrain_base.cc
index 78e4b84..bfd1a48 100644
--- a/y2018/control_loops/drivetrain/drivetrain_base.cc
+++ b/y2018/control_loops/drivetrain/drivetrain_base.cc
@@ -5,6 +5,7 @@
#include "frc971/control_loops/drivetrain/drivetrain_config.h"
#include "frc971/control_loops/state_feedback_loop.h"
#include "y2018/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
+#include "y2018/control_loops/drivetrain/hybrid_velocity_drivetrain.h"
#include "y2018/control_loops/drivetrain/kalman_drivetrain_motor_plant.h"
#include "y2018/control_loops/drivetrain/polydrivetrain_dog_motor_plant.h"
@@ -27,9 +28,10 @@
::frc971::control_loops::drivetrain::GyroType::IMU_Z_GYRO,
::frc971::control_loops::drivetrain::IMUType::IMU_Y,
- ::y2018::control_loops::drivetrain::MakeDrivetrainLoop,
- ::y2018::control_loops::drivetrain::MakeVelocityDrivetrainLoop,
- ::y2018::control_loops::drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeDrivetrainLoop,
+ drivetrain::MakeVelocityDrivetrainLoop,
+ drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeHybridVelocityDrivetrainLoop,
chrono::duration_cast<chrono::nanoseconds>(
chrono::duration<double>(drivetrain::kDt)),
diff --git a/y2018_bot3/control_loops/drivetrain/drivetrain_base.cc b/y2018_bot3/control_loops/drivetrain/drivetrain_base.cc
index 9501a8a..4945947 100644
--- a/y2018_bot3/control_loops/drivetrain/drivetrain_base.cc
+++ b/y2018_bot3/control_loops/drivetrain/drivetrain_base.cc
@@ -4,6 +4,7 @@
#include "frc971/control_loops/drivetrain/drivetrain_config.h"
#include "frc971/control_loops/state_feedback_loop.h"
+#include "y2018_bot3/control_loops/drivetrain/hybrid_velocity_drivetrain.h"
#include "y2018_bot3/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
#include "y2018_bot3/control_loops/drivetrain/kalman_drivetrain_motor_plant.h"
#include "y2018_bot3/control_loops/drivetrain/polydrivetrain_dog_motor_plant.h"
@@ -28,9 +29,10 @@
::frc971::control_loops::drivetrain::GyroType::SPARTAN_GYRO,
::frc971::control_loops::drivetrain::IMUType::IMU_X,
- ::y2018_bot3::control_loops::drivetrain::MakeDrivetrainLoop,
- ::y2018_bot3::control_loops::drivetrain::MakeVelocityDrivetrainLoop,
- ::y2018_bot3::control_loops::drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeDrivetrainLoop,
+ drivetrain::MakeVelocityDrivetrainLoop,
+ drivetrain::MakeKFDrivetrainLoop,
+ drivetrain::MakeHybridVelocityDrivetrainLoop,
chrono::duration_cast<chrono::nanoseconds>(
chrono::duration<double>(drivetrain::kDt)),