iCub-main
|
Online Stiction Estimator. More...
#include <tuning.h>
Public Member Functions | |
OnlineStictionEstimator () | |
Default constructor. | |
virtual bool | configure (yarp::dev::PolyDriver &driver, const yarp::os::Property &options) |
Configure the estimation. | |
virtual bool | reconfigure (const yarp::os::Property &options) |
Reconfigure the estimation after first initialization. | |
virtual bool | isConfigured () const |
Check the configuration status. | |
virtual bool | startEstimation () |
Start off the estimation procedure. | |
virtual bool | isDone () |
Check the current estimation status. | |
virtual bool | waitUntilDone () |
Wait until the condition |e_mean|<e_thres is met. | |
virtual void | stopEstimation () |
Stop the estimation procedure. | |
virtual bool | getResults (yarp::sig::Vector &results) |
Retrieve the estimation. | |
virtual bool | getInfo (yarp::os::Property &info) |
Retrieve useful information about the estimation experiment. | |
virtual | ~OnlineStictionEstimator () |
Destructor. | |
Protected Types | |
enum | { rising , falling } |
Protected Member Functions | |
void | applyStictionLimit () |
bool | threadInit () |
void | run () |
void | threadRelease () |
bool | start () |
void | stop () |
Protected Attributes | |
yarp::dev::IControlMode * | imod |
yarp::dev::IControlLimits * | ilim |
yarp::dev::IEncoders * | ienc |
yarp::dev::IPidControl * | ipid |
yarp::dev::IPWMControl * | ipwm |
yarp::dev::ICurrentControl * | icur |
std::mutex | mtx |
std::mutex | mtx_doneEvent |
std::condition_variable | cv_doneEvent |
yarp::sig::Vector | gamma |
yarp::sig::Vector | stiction |
yarp::os::Property | info |
yarp::sig::Vector | done |
AWLinEstimator | velEst |
AWQuadEstimator | accEst |
parallelPID * | pid |
Integrator | intErr |
minJerkTrajGen | trajGen |
int | joint |
double | dpos_dV |
double | t0 |
double | T |
double | x_min |
double | x_max |
double | x_pos |
double | x_vel |
double | x_acc |
double | Kp |
double | Ki |
double | Kd |
double | vel_thres |
double | e_thres |
double | tg |
double | xd_pos |
double | stiction_limit |
bool | adapt |
bool | adaptOld |
bool | configured |
enum iCub::ctrl::OnlineStictionEstimator:: { ... } | state |
Online Stiction Estimator.
Estimate the up and down stiction values.
During the experiment, the joint is controlled by a high-level pid controller that commands directly the voltage in order to track a time varying reference position. The stiction values are estimated during the rising and falling edge transitions.
OnlineStictionEstimator::OnlineStictionEstimator | ( | ) |
Default constructor.
Definition at line 135 of file tuning.cpp.
|
inlinevirtual |
|
protected |
Definition at line 255 of file tuning.cpp.
|
virtual |
Configure the estimation.
driver | the device driver to control the robot part. |
options | the configuration options. |
Available options are:
joint <int>: specify the joint to be controlled.
Ts <double>: specify the estimator sample time given in seconds.
T <double>: specify the period in seconds of the reference waveform used for tracking.
Kp <double>: specify the proportional term of the high-level controller for tracking purpose.
Ki <double>: specify the integral term of the high-level controller for tracking purpose.
Kd <double>: specify the derivative term of the high-level controller for tracking purpose.
vel_thres <double>: specify the velocity threshold (in degrees) used to identify the estimation time windows. The estimation is carried out whenever |vel|<vel_thres.
e_thres <double>: specify the error threshold (in degrees) above which keep updating the stiction values. The estimation is carried out until |e_mean|>e_thres, where e_mean accounts for the integral average of the error computed within the estimation time window. Value given in degrees.
gamma (<double> <double>): specify the gains used for updating the stiction up and down values, respectively.
stiction (<double> <double>): specify the initial stiction up and down values, respectively.
Definition at line 150 of file tuning.cpp.
|
virtual |
Retrieve useful information about the estimation experiment.
info | the property containing the info. Available info are: (voltage <double>) which specifies the commanded voltage; (reference <double>) which specifies the position reference; (position <double>) which specifies the actual encoder value. |
Definition at line 430 of file tuning.cpp.
|
virtual |
Retrieve the estimation.
results | Current up and down stiction values given as components of a 2x1 vector. |
Definition at line 418 of file tuning.cpp.
|
inlinevirtual |
|
virtual |
Check the current estimation status.
Definition at line 393 of file tuning.cpp.
|
virtual |
Reconfigure the estimation after first initialization.
options | the configuration options. |
Definition at line 199 of file tuning.cpp.
|
protected |
Definition at line 315 of file tuning.cpp.
|
protected |
|
inlinevirtual |
|
protected |
|
inlinevirtual |
|
protected |
Definition at line 263 of file tuning.cpp.
|
protected |
Definition at line 382 of file tuning.cpp.
|
virtual |
Wait until the condition |e_mean|<e_thres is met.
Definition at line 405 of file tuning.cpp.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
enum { ... } iCub::ctrl::OnlineStictionEstimator::state |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |