TVM  0.9.4
tvm::task_dynamics::ProportionalDerivative Class Reference

#include <tvm/task_dynamics/ProportionalDerivative.h>

Inheritance diagram for tvm::task_dynamics::ProportionalDerivative:
Collaboration diagram for tvm::task_dynamics::ProportionalDerivative:

Classes

class  Impl
 

Public Types

using Gain = mpark::variant< double, Eigen::VectorXd, Eigen::MatrixXd >
 

Public Member Functions

 ProportionalDerivative (double kp)
 
 ProportionalDerivative (const Eigen::VectorXd &kp)
 
 ProportionalDerivative (const Eigen::MatrixXd &kp)
 
 ~ProportionalDerivative () override=default
 
 ProportionalDerivative (double kp, double kv)
 
 ProportionalDerivative (const Eigen::VectorXd &kp, const Eigen::VectorXd &kv)
 
 ProportionalDerivative (const Eigen::MatrixXd &kp, const Eigen::MatrixXd &kv)
 
 ProportionalDerivative (double kp, const Eigen::VectorXd &kv)
 
 ProportionalDerivative (double kp, const Eigen::MatrixXd &kv)
 
 ProportionalDerivative (const Eigen::VectorXd &kp, double kv)
 
 ProportionalDerivative (const Eigen::VectorXd &kp, const Eigen::MatrixXd &kv)
 
 ProportionalDerivative (const Eigen::MatrixXd &kp, double kv)
 
 ProportionalDerivative (const Eigen::MatrixXd &kp, const Eigen::VectorXd &kv)
 
- Public Member Functions inherited from tvm::task_dynamics::abstract::TaskDynamics
virtual ~TaskDynamics ()=default
 
std::unique_ptr< TaskDynamicsImplimpl (FunctionPtr f, constraint::Type t, const Eigen::VectorXd &rhs) const
 
Order order () const
 

Protected Member Functions

std::unique_ptr< abstract::TaskDynamicsImplimpl_ (FunctionPtr f, constraint::Type t, const Eigen::VectorXd &rhs) const override
 
Order order_ () const override
 

Detailed Description

Compute \( \ddot{e}^* = -k_v \dot{e} - k_p e\) (dynamic order) where \( k_p \) and \( k_v \) can be (independently) a scalar, a diagonal matrix (given as a vector) or a matrix.

Member Typedef Documentation

◆ Gain

using tvm::task_dynamics::ProportionalDerivative::Gain = mpark::variant<double, Eigen::VectorXd, Eigen::MatrixXd>

Constructor & Destructor Documentation

◆ ProportionalDerivative() [1/12]

tvm::task_dynamics::ProportionalDerivative::ProportionalDerivative ( double  kp,
double  kv 
)

General constructor.

Parameters
kpStiffness gain, as a scalar, a vector representing a diagonal matrix, or a matrix.
kvDamping gain, as a scalar, a vector representing a diagonal matrix, or a matrix.

◆ ProportionalDerivative() [2/12]

tvm::task_dynamics::ProportionalDerivative::ProportionalDerivative ( const Eigen::VectorXd &  kp,
const Eigen::VectorXd &  kv 
)

General constructor.

Parameters
kpStiffness gain, as a scalar, a vector representing a diagonal matrix, or a matrix.
kvDamping gain, as a scalar, a vector representing a diagonal matrix, or a matrix.

◆ ProportionalDerivative() [3/12]

tvm::task_dynamics::ProportionalDerivative::ProportionalDerivative ( const Eigen::MatrixXd &  kp,
const Eigen::MatrixXd &  kv 
)

General constructor.

Parameters
kpStiffness gain, as a scalar, a vector representing a diagonal matrix, or a matrix.
kvDamping gain, as a scalar, a vector representing a diagonal matrix, or a matrix.

◆ ProportionalDerivative() [4/12]

tvm::task_dynamics::ProportionalDerivative::ProportionalDerivative ( double  kp,
const Eigen::VectorXd &  kv 
)

General constructor.

Parameters
kpStiffness gain, as a scalar, a vector representing a diagonal matrix, or a matrix.
kvDamping gain, as a scalar, a vector representing a diagonal matrix, or a matrix.

◆ ProportionalDerivative() [5/12]

tvm::task_dynamics::ProportionalDerivative::ProportionalDerivative ( double  kp,
const Eigen::MatrixXd &  kv 
)

General constructor.

Parameters
kpStiffness gain, as a scalar, a vector representing a diagonal matrix, or a matrix.
kvDamping gain, as a scalar, a vector representing a diagonal matrix, or a matrix.

◆ ProportionalDerivative() [6/12]

tvm::task_dynamics::ProportionalDerivative::ProportionalDerivative ( const Eigen::VectorXd &  kp,
double  kv 
)

General constructor.

Parameters
kpStiffness gain, as a scalar, a vector representing a diagonal matrix, or a matrix.
kvDamping gain, as a scalar, a vector representing a diagonal matrix, or a matrix.

◆ ProportionalDerivative() [7/12]

tvm::task_dynamics::ProportionalDerivative::ProportionalDerivative ( const Eigen::VectorXd &  kp,
const Eigen::MatrixXd &  kv 
)

General constructor.

Parameters
kpStiffness gain, as a scalar, a vector representing a diagonal matrix, or a matrix.
kvDamping gain, as a scalar, a vector representing a diagonal matrix, or a matrix.

◆ ProportionalDerivative() [8/12]

tvm::task_dynamics::ProportionalDerivative::ProportionalDerivative ( const Eigen::MatrixXd &  kp,
double  kv 
)

General constructor.

Parameters
kpStiffness gain, as a scalar, a vector representing a diagonal matrix, or a matrix.
kvDamping gain, as a scalar, a vector representing a diagonal matrix, or a matrix.

◆ ProportionalDerivative() [9/12]

tvm::task_dynamics::ProportionalDerivative::ProportionalDerivative ( const Eigen::MatrixXd &  kp,
const Eigen::VectorXd &  kv 
)

General constructor.

Parameters
kpStiffness gain, as a scalar, a vector representing a diagonal matrix, or a matrix.
kvDamping gain, as a scalar, a vector representing a diagonal matrix, or a matrix.

◆ ProportionalDerivative() [10/12]

tvm::task_dynamics::ProportionalDerivative::ProportionalDerivative ( double  kp)

Critically damped version.

Parameters
kpStiffness gain. The damping gain is automatically computed to get a critically damped behavior.

◆ ProportionalDerivative() [11/12]

tvm::task_dynamics::ProportionalDerivative::ProportionalDerivative ( const Eigen::VectorXd &  kp)

Critically damped version.

Parameters
kpDiagonal of the stiffness gain matrix. The damping gain is automatically computed to get a critically damped behavior.

◆ ProportionalDerivative() [12/12]

tvm::task_dynamics::ProportionalDerivative::ProportionalDerivative ( const Eigen::MatrixXd &  kp)

Critically damped version.

Parameters
kpStiffness gain matrix. The damping gain is automatically computed to get a critically damped behavior. For this version, kp is supposed to be symmetric and positive definite.
Note
The automatic damping computation is relatively heavy, involving a Schur decomposition, matrices multiplications and memory allocation.

◆ ~ProportionalDerivative()

tvm::task_dynamics::ProportionalDerivative::~ProportionalDerivative ( )
overridedefault

Member Function Documentation

◆ impl_()

std::unique_ptr<abstract::TaskDynamicsImpl> tvm::task_dynamics::ProportionalDerivative::impl_ ( FunctionPtr  f,
constraint::Type  t,
const Eigen::VectorXd &  rhs 
) const
overrideprotectedvirtual

◆ order_()

Order tvm::task_dynamics::ProportionalDerivative::order_ ( ) const
overrideprotectedvirtual

The documentation for this class was generated from the following file: