TVM
0.9.2
|
#include <tvm/task_dynamics/VelocityDamper.h>
Classes | |
class | AnisotropicConfig |
class | Config |
class | Impl |
Public Member Functions | |
VelocityDamper (const Config &config, double big=constant::big_number) | |
Velocity damper for first order dynamics. More... | |
VelocityDamper (const AnisotropicConfig &config, double big=constant::big_number) | |
Velocity damper for first order dynamics. More... | |
VelocityDamper (double dt, const Config &config, double big=constant::big_number) | |
Velocity damper for second order dynamics. More... | |
VelocityDamper (double dt, const AnisotropicConfig &config, double big=constant::big_number) | |
Velocity damper for second order dynamics. More... | |
~VelocityDamper () override=default | |
Public Member Functions inherited from tvm::task_dynamics::abstract::TaskDynamics | |
virtual | ~TaskDynamics ()=default |
std::unique_ptr< TaskDynamicsImpl > | impl (FunctionPtr f, constraint::Type t, const Eigen::VectorXd &rhs) const |
Order | order () const |
Protected Member Functions | |
std::unique_ptr< abstract::TaskDynamicsImpl > | impl_ (FunctionPtr f, constraint::Type t, const Eigen::VectorXd &rhs) const override |
Order | order_ () const override |
template<typename Derived , typename... Args> | |
std::unique_ptr< abstract::TaskDynamicsImpl > | impl_ (FunctionPtr f, constraint::Type t, const Eigen::VectorXd &rhs, Args &&... args) const |
A first or second order dynamic task implementing the so-called velocity damper of Faverjon and Tournassoud. For a lower bound tasks e>=0, we have, for e<=di:
and for e>di:
For upper bound tasks e <= 0 this is adapted to get the same behavior as -e >= 0.
xsi can be computed automatically (see autoXsi
parameter).
f
with variable x
, its output value will be the same if x
keeps the same value x0
and velocity v0
between two consecutive updates, but the same entries x0
and v0
may give different values for unrelated updates, because of history differences. tvm::task_dynamics::VelocityDamper::VelocityDamper | ( | const Config & | config, |
double | big = constant::big_number |
||
) |
Velocity damper for first order dynamics.
config | configuration of the damper. |
big | value used as infinity. |
autoXsi
is true
, the value update will declare a dependency to the Velocity
of the error function. It is the user responsibility to ensure the velocity is correctly provided (in particular, this might require the value of the variables first derivatives to be set correctly). tvm::task_dynamics::VelocityDamper::VelocityDamper | ( | const AnisotropicConfig & | config, |
double | big = constant::big_number |
||
) |
Velocity damper for first order dynamics.
config | configuration of the damper. |
big | value used as infinity. |
autoXsi
apply. Furthermore, the dimensions of config
must match the function for which this task dynamic will be used. tvm::task_dynamics::VelocityDamper::VelocityDamper | ( | double | dt, |
const Config & | config, | ||
double | big = constant::big_number |
||
) |
Velocity damper for second order dynamics.
dt | integration time step to integrate acceleration to velocity (should be the control time step). Must be strictly positive. |
config | configuration of the damper. |
big | value used as infinity. |
tvm::task_dynamics::VelocityDamper::VelocityDamper | ( | double | dt, |
const AnisotropicConfig & | config, | ||
double | big = constant::big_number |
||
) |
Velocity damper for second order dynamics.
dt | integration time step to integrate acceleration to velocity (should be the control time step). Must be strictly positive. |
config | configuration of the damper. |
big | value used as infinity. |
|
overridedefault |
|
overrideprotectedvirtual |
Implements tvm::task_dynamics::abstract::TaskDynamics.
|
inlineprotected |
|
overrideprotectedvirtual |
Implements tvm::task_dynamics::abstract::TaskDynamics.