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

Handle Closed Loop Inverse Kinematics scheme. More...

#include <clik.h>

Public Member Functions

 Clik (const Robot &robot_, const DiagonalMatrix &Kp_, const DiagonalMatrix &Ko_, const Real eps_=0.04, const Real lambda_max_=0.04, const Real dt=1.0)
 Constructor.
 
 Clik (const mRobot &mrobot_, const DiagonalMatrix &Kp_, const DiagonalMatrix &Ko_, const Real eps_=0.04, const Real lambda_max_=0.04, const Real dt=1.0)
 Constructor.
 
 Clik (const mRobot_min_para &mrobot_min_para_, const DiagonalMatrix &Kp_, const DiagonalMatrix &Ko_, const Real eps_=0.04, const Real lambda_max_=0.04, const Real dt=1.0)
 Constructor.
 
 Clik (const Clik &x)
 Copy constructor.
 
Clikoperator= (const Clik &x)
 Overload = operator.
 
void q_qdot (const Quaternion &qd, const ColumnVector &pd, const ColumnVector &pddot, const ColumnVector &wd, ColumnVector &q, ColumnVector &qp)
 Obtain joints position and velocity. More...
 

Private Member Functions

int endeff_pos_ori_err (const ColumnVector &pd, const ColumnVector &pddot, const Quaternion &qd, const ColumnVector &wd)
 Obtain end effector position and orientation error. More...
 

Private Attributes

Real dt
 Time frame.
 
Real eps
 Range of singular region in Jacobian DLS inverse.
 
Real lambda_max
 Damping factor in Jacobian DLS inverse.
 
short robot_type
 Robot type used.
 
Robot robot
 Robot instance.
 
mRobot mrobot
 mRobot instance.
 
mRobot_min_para mrobot_min_para
 mRobot_min_para instance.
 
DiagonalMatrix Kp
 Position error gain.
 
DiagonalMatrix Ko
 Orientation error gain.
 
ColumnVector q
 Clik joint position.
 
ColumnVector qp
 Clik joint velocity.
 
ColumnVector qp_prev
 Clik previous joint velocity.
 
ColumnVector Kpep
 Kp times position error.
 
ColumnVector Koe0Quat
 Ko times orientation error (quaternion vector part).
 
ColumnVector v
 Quaternion vector part.
 

Detailed Description

Handle Closed Loop Inverse Kinematics scheme.

Definition at line 84 of file clik.h.

Member Function Documentation

int Clik::endeff_pos_ori_err ( const ColumnVector &  pd,
const ColumnVector &  pdd,
const Quaternion qqqd,
const ColumnVector &  wd 
)
private

Obtain end effector position and orientation error.

Parameters
pd,:Desired eff position in base frame.
pdd,:Desired eff velocity in base frame.
qqqd,:Desired eff orientation in base frame.
wd,:Desired eff angular velocity in base frame.

Definition at line 221 of file clik.cpp.

References CLICK_DH, CLICK_mDH, CLICK_mDH_min_para, Robot_basic::kine(), Ko, Koe0Quat, Kp, Kpep, mrobot, mrobot_min_para, q, robot, robot_type, Quaternion::s(), Robot_basic::set_q(), Quaternion::v(), and x_prod_matrix().

Referenced by q_qdot().

void Clik::q_qdot ( const Quaternion qd,
const ColumnVector &  pd,
const ColumnVector &  pdd,
const ColumnVector &  wd,
ColumnVector &  q_,
ColumnVector &  qp_ 
)

Obtain joints position and velocity.

Parameters
qd,:Desired eff orientatio in base frame.
pd,:Desired eff position in base frame.
pdd,:Desired eff velocity in base frame.
wd,:Desired eff angular velocity in base frame.
q_,:Output joint position.
qp_,:Output joint velocity.

Definition at line 266 of file clik.cpp.

References CLICK_DH, CLICK_mDH, CLICK_mDH_min_para, dt, endeff_pos_ori_err(), eps, Integ_Trap(), Robot_basic::jacobian_DLS_inv(), Koe0Quat, Kpep, lambda_max, mrobot, mrobot_min_para, q, qp, qp_prev, robot, robot_type, Robot_basic::set_q(), and v.