ROBOOP, A Robotics Object Oriented Package in C++
Proportional_Derivative Class Reference

Proportional derivative controller class. More...

#include <controller.h>

Public Member Functions

 Proportional_Derivative (const short dof=1)
 Constructor.
 
 Proportional_Derivative (const Robot_basic &robot, const DiagonalMatrix &Kp, const DiagonalMatrix &Kd)
 Constructor.
 
ReturnMatrix torque_cmd (Robot_basic &robot, const ColumnVector &qd, const ColumnVector &qpd)
 Output torque.
 
short set_Kd (const DiagonalMatrix &Kd)
 Assign the velocity error gain matrix $K_p(i,i)$. More...
 
short set_Kp (const DiagonalMatrix &Kp)
 Assign the position error gain matrix $K_p(i,i)$. More...
 

Private Attributes

int dof
 Degree of freedom.
 
ColumnVector q
 Robot joints positions.
 
ColumnVector qp
 Robot joints velocity.
 
ColumnVector qpp
 Robot joints acceleration.
 
ColumnVector tau
 Output torque.
 
ColumnVector zero3
 $3\times 1$ zero vector.
 
DiagonalMatrix Kp
 Position error gain.
 
DiagonalMatrix Kd
 Velocity error gain.
 

Detailed Description

Proportional derivative controller class.

The driving torques can be expressed as

\[ \tau = K_p(q_d-q) + K_d(\dot{q}_d-q) \]

where $K_p$, $K_d$ are diagonal positive definie matrix.

Definition at line 248 of file controller.h.

Member Function Documentation

short Proportional_Derivative::set_Kd ( const DiagonalMatrix &  Kd_)

Assign the velocity error gain matrix $K_p(i,i)$.

Returns
short: 0 or WRONG_SIZE if the matrix is not $dof \times dof$.

Definition at line 653 of file controller.cpp.

References WRONG_SIZE.

short Proportional_Derivative::set_Kp ( const DiagonalMatrix &  Kp_)

Assign the position error gain matrix $K_p(i,i)$.

Returns
short: 0 or WRONG_SIZE if the matrix is not $dof \times dof$.

Definition at line 670 of file controller.cpp.

References WRONG_SIZE.