48 lines
1.8 KiB
C++
48 lines
1.8 KiB
C++
|
/*
|
||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
*/
|
||
|
#pragma once
|
||
|
|
||
|
#include "okapi/api/control/util/pidTuner.hpp"
|
||
|
#include <memory>
|
||
|
|
||
|
namespace okapi {
|
||
|
class PIDTunerFactory {
|
||
|
public:
|
||
|
static PIDTuner create(const std::shared_ptr<ControllerInput<double>> &iinput,
|
||
|
const std::shared_ptr<ControllerOutput<double>> &ioutput,
|
||
|
QTime itimeout,
|
||
|
std::int32_t igoal,
|
||
|
double ikPMin,
|
||
|
double ikPMax,
|
||
|
double ikIMin,
|
||
|
double ikIMax,
|
||
|
double ikDMin,
|
||
|
double ikDMax,
|
||
|
std::int32_t inumIterations = 5,
|
||
|
std::int32_t inumParticles = 16,
|
||
|
double ikSettle = 1,
|
||
|
double ikITAE = 2,
|
||
|
const std::shared_ptr<Logger> &ilogger = Logger::getDefaultLogger());
|
||
|
|
||
|
static std::unique_ptr<PIDTuner>
|
||
|
createPtr(const std::shared_ptr<ControllerInput<double>> &iinput,
|
||
|
const std::shared_ptr<ControllerOutput<double>> &ioutput,
|
||
|
QTime itimeout,
|
||
|
std::int32_t igoal,
|
||
|
double ikPMin,
|
||
|
double ikPMax,
|
||
|
double ikIMin,
|
||
|
double ikIMax,
|
||
|
double ikDMin,
|
||
|
double ikDMax,
|
||
|
std::int32_t inumIterations = 5,
|
||
|
std::int32_t inumParticles = 16,
|
||
|
double ikSettle = 1,
|
||
|
double ikITAE = 2,
|
||
|
const std::shared_ptr<Logger> &ilogger = Logger::getDefaultLogger());
|
||
|
};
|
||
|
} // namespace okapi
|