mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-24 01:31:46 +00:00
[sysid] Remove obsolete WPILib presets, rename CTRE presets (#6460)
This commit is contained in:
@@ -31,11 +31,10 @@ Analyzer::Analyzer(glass::Storage& storage, wpi::Logger& logger)
|
||||
: m_logger(logger) {
|
||||
// Fill the StringMap with preset values.
|
||||
m_presets["Default"] = presets::kDefault;
|
||||
m_presets["WPILib (2020-)"] = presets::kWPILibNew;
|
||||
m_presets["WPILib (Pre-2020)"] = presets::kWPILibOld;
|
||||
m_presets["CANCoder"] = presets::kCTRECANCoder;
|
||||
m_presets["CTRE"] = presets::kCTREDefault;
|
||||
m_presets["CTRE (Pro)"] = presets::kCTREProDefault;
|
||||
m_presets["WPILib"] = presets::kWPILib;
|
||||
m_presets["CTRE Phoenix 5 CANcoder"] = presets::kCTREv5CANCoder;
|
||||
m_presets["CTRE Phoenix 5"] = presets::kCTREv5;
|
||||
m_presets["CTRE Phoenix 6"] = presets::kCTREv6;
|
||||
m_presets["REV Brushless Encoder Port"] = presets::kREVNEOBuiltIn;
|
||||
m_presets["REV Brushed Encoder Port"] = presets::kREVNonNEO;
|
||||
m_presets["REV Data Port"] = presets::kREVNonNEO;
|
||||
|
||||
@@ -73,9 +73,7 @@ enum class FeedbackControllerLoopType { kPosition, kVelocity };
|
||||
namespace presets {
|
||||
inline constexpr FeedbackControllerPreset kDefault{1.0, 1.0, 20_ms, true, 0_s};
|
||||
|
||||
inline constexpr FeedbackControllerPreset kWPILibNew{kDefault};
|
||||
inline constexpr FeedbackControllerPreset kWPILibOld{1.0 / 12.0, 1.0, 50_ms,
|
||||
false, 0_s};
|
||||
inline constexpr FeedbackControllerPreset kWPILib{kDefault};
|
||||
|
||||
// Measurement delay from a moving average filter:
|
||||
//
|
||||
@@ -117,20 +115,19 @@ inline constexpr FeedbackControllerPreset kWPILibOld{1.0 / 12.0, 1.0, 50_ms,
|
||||
*
|
||||
* Total delay = 50 ms + 31.5 ms = 81.5 ms.
|
||||
*/
|
||||
inline constexpr FeedbackControllerPreset kCTRECANCoder{1.0 / 12.0, 60.0, 1_ms,
|
||||
true, 81.5_ms};
|
||||
inline constexpr FeedbackControllerPreset kCTREDefault{1023.0 / 12.0, 0.1, 1_ms,
|
||||
false, 81.5_ms};
|
||||
inline constexpr FeedbackControllerPreset kCTREv5CANCoder{1.0 / 12.0, 60.0,
|
||||
1_ms, true, 81.5_ms};
|
||||
inline constexpr FeedbackControllerPreset kCTREv5{1023.0 / 12.0, 0.1, 1_ms,
|
||||
false, 81.5_ms};
|
||||
/**
|
||||
* https://api.ctr-electronics.com/phoenixpro/release/cpp/classctre_1_1phoenixpro_1_1hardware_1_1core_1_1_core_c_a_ncoder.html#a718a1a214b58d3c4543e88e3cb51ade5
|
||||
*
|
||||
* Phoenix Pro uses standard units and Voltage output. This means the output
|
||||
* Phoenix 6 uses standard units and Voltage output. This means the output
|
||||
* is 1.0, time factor is 1.0, and closed loop operates at 1 millisecond. All
|
||||
* Pro devices make use of Kalman filters default-tuned to lowest latency, which
|
||||
* in testing is roughly 1 millisecond
|
||||
* Phoenix 6 devices make use of Kalman filters default-tuned to lowest latency,
|
||||
* which in testing is roughly 1 millisecond
|
||||
*/
|
||||
inline constexpr FeedbackControllerPreset kCTREProDefault{1.0, 1.0, 1_ms, true,
|
||||
1_ms};
|
||||
inline constexpr FeedbackControllerPreset kCTREv6{1.0, 1.0, 1_ms, true, 1_ms};
|
||||
|
||||
/**
|
||||
* https://github.com/wpilibsuite/sysid/issues/258#issuecomment-1010658237
|
||||
|
||||
@@ -56,11 +56,10 @@ class Analyzer : public glass::View {
|
||||
* The different motor controller timing presets that can be used.
|
||||
*/
|
||||
static constexpr const char* kPresetNames[] = {"Default",
|
||||
"WPILib (2020-)",
|
||||
"WPILib (Pre-2020)",
|
||||
"CANCoder",
|
||||
"CTRE (Pro)",
|
||||
"CTRE",
|
||||
"WPILib",
|
||||
"CTRE Phoenix 5 CANcoder",
|
||||
"CTRE Phoenix 5",
|
||||
"CTRE Phoenix 6",
|
||||
"REV Brushless Encoder Port",
|
||||
"REV Brushed Encoder Port",
|
||||
"REV Data Port",
|
||||
|
||||
@@ -55,7 +55,7 @@ TEST(FeedbackAnalysisTest, VelocityCTRE) {
|
||||
sysid::LQRParameters params{1, 1.5, 7};
|
||||
|
||||
auto [Kp, Kd] = sysid::CalculateVelocityFeedbackGains(
|
||||
sysid::presets::kCTRECANCoder, params, Kv, Ka);
|
||||
sysid::presets::kCTREv5CANCoder, params, Kv, Ka);
|
||||
|
||||
EXPECT_NEAR(Kp, 0.000417, 0.00005);
|
||||
EXPECT_NEAR(Kd, 0.00, 0.05);
|
||||
@@ -68,7 +68,7 @@ TEST(FeedbackAnalysisTest, VelocityCTREConversion) {
|
||||
sysid::LQRParameters params{1, 1.5, 7};
|
||||
|
||||
auto [Kp, Kd] = sysid::CalculateVelocityFeedbackGains(
|
||||
sysid::presets::kCTRECANCoder, params, Kv, Ka, 3.0);
|
||||
sysid::presets::kCTREv5CANCoder, params, Kv, Ka, 3.0);
|
||||
|
||||
// This should have the same Kp as the test above, but scaled by a factor
|
||||
// of 3.
|
||||
|
||||
Reference in New Issue
Block a user