61 [[nodiscard]] std::map<int, FirmwarePidResult>
tune(
62 const std::map<int, int>& max_bemf_speeds,
84 const std::string& csv_path =
"")
const;
102 [[nodiscard]] std::vector<StepResponseData> runParallelStepResponse(
103 const std::vector<hal::motor::IMotor*>& motors,
104 const std::vector<int>& bemf_targets,
106 int sample_hz)
const;
108 std::vector<hal::motor::IMotor*> motors_;
FirmwarePidTuner(const std::vector< hal::motor::IMotor * > &motors, hal::imu::IIMU *imu=nullptr)
std::map< int, FirmwarePidResult > tune(const std::map< int, int > &max_bemf_speeds, const FirmwarePidConfig &cfg) const
Tune every motor passed at construction.
FirmwarePidResult tuneMotor(hal::motor::IMotor *motor, int max_bemf_speed, const FirmwarePidConfig &cfg) const
Tune a single motor.
Configuration for the FirmwarePidTuner.
Result of tuning a single motor's firmware-side velocity PID.
Raw step-response recording for one velocity axis.
Interface for IMU abstraction.
Interface for motor abstraction.