|
iCub-main
|
Online Stiction Estimator. More...
#include <tuning.h>
Inheritance diagram for iCub::ctrl::OnlineStictionEstimator: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 |