Implements a minimum-jerk controller with velocity commands assuming a non ideal plant represented with a pure integrator followed by a system with one zero and two poles (real or underdamped), such that the overall transfer function is (1/s)*(Kp*(1+Tz*s)/(1+2*Zeta*Tw*s+(Tw*s)^2)).
More...
#include <minJerkCtrl.h>
Implements a minimum-jerk controller with velocity commands assuming a non ideal plant represented with a pure integrator followed by a system with one zero and two poles (real or underdamped), such that the overall transfer function is (1/s)*(Kp*(1+Tz*s)/(1+2*Zeta*Tw*s+(Tw*s)^2)).
Definition at line 135 of file minJerkCtrl.h.
◆ minJerkVelCtrlForNonIdealPlant()
minJerkVelCtrlForNonIdealPlant::minJerkVelCtrlForNonIdealPlant |
( |
const double |
_Ts, |
|
|
const int |
_dim |
|
) |
| |
Constructor.
- Parameters
-
_Ts | is the controller sample time in seconds. |
_dim | is the controller's dimension |
Definition at line 99 of file minJerkCtrl.cpp.
◆ ~minJerkVelCtrlForNonIdealPlant()
minJerkVelCtrlForNonIdealPlant::~minJerkVelCtrlForNonIdealPlant |
( |
| ) |
|
|
virtual |
◆ computeCmd()
Vector minJerkVelCtrlForNonIdealPlant::computeCmd |
( |
const double |
_T, |
|
|
const yarp::sig::Vector & |
e |
|
) |
| |
|
virtual |
Computes the velocity command.
- Parameters
-
_T | the current execution time. |
e | the error between the desired position and the feedback. |
- Returns
- the velocity command.
Implements iCub::ctrl::minJerkVelCtrl.
Definition at line 169 of file minJerkCtrl.cpp.
◆ computeCoeffs()
void minJerkVelCtrlForNonIdealPlant::computeCoeffs |
( |
| ) |
|
|
protectedvirtual |
◆ getPlantParameters()
void minJerkVelCtrlForNonIdealPlant::getPlantParameters |
( |
yarp::os::Property & |
parameters, |
|
|
const std::string & |
entryTag = "dimension" |
|
) |
| |
|
virtual |
Allows user to retrieve plant parameters.
- Parameters
-
parameters | contains the set of plant parameters for each dimension in form of a Property object. |
Available parameters are:
dimension_# < list>: example (dimension_2 ((Kp 1.0) (Tw 0.1) ...)), specifies the Kp, Tz, Tw and Zeta parameters for a given dimension of the plant ("dimension_2" in the example). Dimensions are 0-based numbers.
- Parameters
-
entryTag | specifies an entry tag different from "dimension". |
Definition at line 241 of file minJerkCtrl.cpp.
◆ reset()
void minJerkVelCtrlForNonIdealPlant::reset |
( |
const yarp::sig::Vector & |
u0 | ) |
|
|
virtual |
◆ setPlantParameters()
void minJerkVelCtrlForNonIdealPlant::setPlantParameters |
( |
const yarp::os::Property & |
parameters, |
|
|
const std::string & |
entryTag = "dimension" , |
|
|
const yarp::os::Bottle & |
ordering = yarp::os::Bottle() |
|
) |
| |
|
virtual |
Allows user to assign values to plant parameters.
- Parameters
-
parameters | contains the set of plant parameters for each dimension in form of a Property object. |
Available parameters are:
dimension_# < list>: example (dimension_2 ((Kp 1.0) (Tw 0.1) ...)), specifies the Kp, Tz, Tw and Zeta parameters for a given dimension of the plant ("dimension_2" in the example). Dimensions are 0-based numbers.
- Parameters
-
entryTag | specifies an entry tag different from "dimension". |
ordering | if a not empty Bottle is provided, the ordering is not 0,1,2...dim-1 but the one specified by the bottle content. |
Definition at line 202 of file minJerkCtrl.cpp.
◆ dim
int iCub::ctrl::minJerkVelCtrlForNonIdealPlant::dim |
|
protected |
std::deque<ctrl::Filter*> iCub::ctrl::minJerkVelCtrlForNonIdealPlant::F |
|
protected |
◆ Kp
yarp::sig::Vector iCub::ctrl::minJerkVelCtrlForNonIdealPlant::Kp |
|
protected |
double iCub::ctrl::minJerkVelCtrlForNonIdealPlant::T |
|
protected |
◆ Ts
double iCub::ctrl::minJerkVelCtrlForNonIdealPlant::Ts |
|
protected |
◆ Tw
yarp::sig::Vector iCub::ctrl::minJerkVelCtrlForNonIdealPlant::Tw |
|
protected |
◆ Tz
yarp::sig::Vector iCub::ctrl::minJerkVelCtrlForNonIdealPlant::Tz |
|
protected |
◆ Zeta
yarp::sig::Vector iCub::ctrl::minJerkVelCtrlForNonIdealPlant::Zeta |
|
protected |
The documentation for this class was generated from the following files: