26#include <condition_variable>
28#include <yarp/os/all.h>
29#include <yarp/dev/all.h>
30#include <yarp/sig/all.h>
95 bool init(
const double Ts,
const double Q,
const double R,
96 const double P0,
const yarp::sig::Vector &x0);
106 bool init(
const double P0,
const yarp::sig::Vector &x0);
118 yarp::sig::Vector
estimate(
const double u,
const double y);
126 yarp::sig::Vector
get_x()
const {
return _x; }
133 yarp::sig::Matrix
get_P()
const {
return P; }
159 yarp::dev::IControlLimits *
ilim;
163 yarp::dev::ICurrentControl *
icur;
256 virtual bool configure(yarp::dev::PolyDriver &driver,
const yarp::os::Property &options);
264 virtual bool reconfigure(
const yarp::os::Property &options);
308 virtual bool getResults(yarp::sig::Vector &results);
355 yarp::dev::IControlLimits *
ilim;
357 yarp::dev::IPositionControl *
ipos;
358 yarp::dev::IPositionDirect *
idir;
361 yarp::dev::ICurrentControl *
icur;
369 yarp::os::BufferedPort<yarp::sig::Vector>
port;
371 yarp::sig::Vector
x0;
463 virtual bool configure(yarp::dev::PolyDriver &driver,
const yarp::os::Property &options);
515 virtual bool tuneController(
const yarp::os::Property &options, yarp::os::Property &results);
669 virtual bool getResults(yarp::os::Property &results);
Adaptive window linear fitting to estimate the first derivative.
Adaptive window quadratic fitting to estimate the second derivative.
A class for defining a saturated integrator based on Tustin formula: .
Classic Kalman estimator.
Online Compensator Design.
virtual bool isDone()
Check the status of the current ongoing operation.
OnlineCompensatorDesign()
Default constructor.
virtual bool tuneController(const yarp::os::Property &options, yarp::os::Property &results)
Tune the controller once given the plant characteristics.
void commandJoint(double &enc, double &u)
yarp::dev::IPidControl * ipid
yarp::dev::IPWMControl * ipwm
virtual bool startStictionEstimation(const yarp::os::Property &options)
Start off the stiction estimation procedure.
yarp::dev::IEncoders * ienc
OnlineStictionEstimator stiction
std::condition_variable cv_doneEvent
yarp::dev::IPositionControl * ipos
virtual void stopOperation()
Stop any ongoing operation.
bool controller_validation_ref_square
yarp::dev::IControlMode * imod
yarp::dev::ICurrentControl * icur
virtual bool startPlantEstimation(const yarp::os::Property &options)
Start off the plant estimation procedure.
enum iCub::ctrl::OnlineCompensatorDesign::@2 mode
double controller_validation_stiction_down
virtual bool startPlantValidation(const yarp::os::Property &options)
Start off the plant validation procedure.
virtual bool getResults(yarp::os::Property &results)
Retrieve the results of the current ongoing operation.
virtual bool waitUntilDone()
Wait until the current ongoing operation is accomplished.
yarp::dev::IPositionDirect * idir
double controller_validation_ref_sustain_time
yarp::dev::IControlLimits * ilim
int controller_validation_cycles_to_switch
virtual bool isConfigured() const
Check the configuration status.
OnlineDCMotorEstimator plant
virtual bool configure(yarp::dev::PolyDriver &driver, const yarp::os::Property &options)
Configure the design.
double controller_validation_ref_period
int controller_validation_num_cycles
yarp::os::BufferedPort< yarp::sig::Vector > port
bool controller_validation_stiction_yarp
double controller_validation_stiction_up
virtual ~OnlineCompensatorDesign()
Destructor.
virtual bool startControllerValidation(const yarp::os::Property &options)
Start off the controller validation procedure.
yarp::sig::Vector meanParams
Online DC Motor Parameters Estimator.
yarp::sig::Vector estimate(const double u, const double y)
Estimate the state vector given the current input and the current measurement.
bool init(const double P0, const yarp::sig::Vector &x0)
Initialize the internal state.
yarp::sig::Vector get_parameters() const
Return the system parameters.
bool init(const double Ts, const double Q, const double R, const double P0, const yarp::sig::Vector &x0)
Initialize the estimation.
OnlineDCMotorEstimator()
Default constructor.
yarp::sig::Matrix get_P() const
Return the estimated error covariance.
yarp::sig::Vector get_x() const
Return the estimated state.
Online Stiction Estimator.
OnlineStictionEstimator()
Default constructor.
virtual ~OnlineStictionEstimator()
Destructor.
yarp::dev::IPidControl * ipid
yarp::sig::Vector stiction
virtual void stopEstimation()
Stop the estimation procedure.
virtual bool waitUntilDone()
Wait until the condition |e_mean|<e_thres is met.
virtual bool configure(yarp::dev::PolyDriver &driver, const yarp::os::Property &options)
Configure the estimation.
virtual bool getResults(yarp::sig::Vector &results)
Retrieve the estimation.
enum iCub::ctrl::OnlineStictionEstimator::@1 state
std::condition_variable cv_doneEvent
void applyStictionLimit()
virtual bool isDone()
Check the current estimation status.
yarp::dev::IControlMode * imod
yarp::dev::ICurrentControl * icur
yarp::dev::IControlLimits * ilim
virtual bool getInfo(yarp::os::Property &info)
Retrieve useful information about the estimation experiment.
yarp::dev::IPWMControl * ipwm
virtual bool startEstimation()
Start off the estimation procedure.
yarp::dev::IEncoders * ienc
virtual bool reconfigure(const yarp::os::Property &options)
Reconfigure the estimation after first initialization.
virtual bool isConfigured() const
Check the configuration status.
Generator of approximately minimum jerk trajectories.
General structure of parallel (non-interactive) PID.
This file contains the definition of unique IDs for the body parts and the skin parts of the robot.