Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
Uncalibvs_simAlgorithm Class Reference

IRI ROS Specific Driver Class. More...

#include <uncalibvs_sim_alg.h>

List of all members.

Public Types

typedef
iri_uncalibvs_sim::Uncalibvs_simConfig 
Config
 define config type

Public Member Functions

void config_update (Config &new_cfg, uint32_t level=0)
 config update
void lock (void)
 Lock Algorithm.
bool try_enter (void)
 Tries Access to Algorithm.
void uncalib_vs_sim (const bool &traditional, const bool &random_points, const bool &quadrotor, const bool &arm_unina, const bool &arm_catec, const bool &output_files, const std::string &path, const double &lambda, const Eigen::MatrixXf &lambda_robot, const double &final_z, const Eigen::Matrix4f &cTo, const double &secs, const Eigen::MatrixXf &V2, KDL::Chain &chain, Eigen::MatrixXf &QQ, const Eigen::Matrix3f &Rquad_inertial, Eigen::MatrixXf &Vel_quad)
 Main algorithm.
 Uncalibvs_simAlgorithm (void)
 constructor
void unlock (void)
 Unlock Algorithm.
 ~Uncalibvs_simAlgorithm (void)
 Destructor.

Public Attributes

Config config_
 config variable

Protected Member Functions

void base_rtw ()
 Base points.
Eigen::MatrixXf calcPinv (const Eigen::MatrixXf &a)
void compute_jacobian_t ()
 Compute Traditional Jacobian.
void compute_jacobian_u ()
 Compute Uncalibrated Jacobian.
void features_vector ()
 Features vector.
Eigen::Matrix4f GetTransform (const KDL::Frame &f)
void image_projection (const float &fu, const float &fv)
 Image projection.
void initZeros ()
 Initialitzation with zeros.
void K_control ()
 Compute 6DOF Control.
void pseudo_inverse (const Eigen::MatrixXf &M, const Eigen::MatrixXf &Y, Eigen::MatrixXf &X)
void q_control ()
 Compute the 4DOF control law.
void qa_control ()
 Compute the 9DOF control law.
void qa_kinematics ()
 Compute Quadrotor and Arm 9DOF Kinematics.
void v_null_space_catec ()
 Compute Desired pose velocities at the jacobian null space (over-determined system)
void v_null_space_unina ()
 Compute Desired pose velocities at the jacobian null space (over-determined system)

Protected Attributes

bool activate
Eigen::MatrixXf alfas_
CMutex alg_mutex_
 define config type
bool arm_catec_
bool arm_unina_
Eigen::MatrixXf ccP_
KDL::Chain chain_
Eigen::MatrixXf cj_0_
Eigen::MatrixXf cP_
Eigen::MatrixXf cP_x_
Eigen::Matrix4f cTo_
Eigen::MatrixXf diff_
Eigen::Matrix4f diTj_int_
float ff_
float ff_old_
double final_z_
Eigen::MatrixXf J_
KDL::Jacobian jacobian_
KDL::JntArray jnt_pos_
boost::scoped_ptr
< KDL::ChainJntToJacSolver
jnt_to_jac_solver_
boost::shared_ptr
< KDL::ChainFkSolverPos_recursive
jnt_to_pose_solver_
Eigen::MatrixXf Jqa_
double lambda_
Eigen::MatrixXf lambda_robot_
int n_
unsigned int nj_
int noise_
bool output_files_
Eigen::MatrixXf P0_
std::string path_
double phi_old_
Eigen::MatrixXf pj_
bool planar_
Eigen::MatrixXf pn_
Eigen::MatrixXf QQ_
bool quadrotor_
bool random_points_
Eigen::Matrix3f Rquad_inertial_
Eigen::MatrixXf s_
Eigen::MatrixXf S_
Eigen::MatrixXf S_x_
double secs_
Eigen::Matrix4f T0c_0_
Eigen::Matrix4f T0c_new_
Eigen::Matrix4f T0c_x_
Eigen::Matrix4f Tc0_
bool traditional_
float u0_
Eigen::MatrixXf uv_
float v0_
Eigen::MatrixXf V2_
Eigen::Matrix4f V_mod_
Eigen::MatrixXf Vel_
Eigen::MatrixXf Velqa_
Eigen::MatrixXf Vqa0_

Detailed Description

IRI ROS Specific Driver Class.

Definition at line 72 of file uncalibvs_sim_alg.h.


Member Typedef Documentation

define config type

Define a Config type with the Uncalibvs_simConfig. All driver implementations will then use the same variable type Config.

Definition at line 234 of file uncalibvs_sim_alg.h.


Constructor & Destructor Documentation

constructor

In this constructor parameters related to the specific driver can be initalized. Those parameters can be also set in the openDriver() function. Attributes from the main node driver class IriBaseDriver such as loop_rate, may be also overload here.

Definition at line 4 of file uncalibvs_sim_alg.cpp.

Destructor.

This destructor is called when the object is about to be destroyed.

Definition at line 10 of file uncalibvs_sim_alg.cpp.


Member Function Documentation

void Uncalibvs_simAlgorithm::base_rtw ( ) [protected]

Base points.

Obtain the base points of the object

Definition at line 171 of file uncalibvs_sim_alg.cpp.

Eigen::MatrixXf Uncalibvs_simAlgorithm::calcPinv ( const Eigen::MatrixXf &  a) [protected]

Matrix pseudo-inverse

Compute the matrix pseudo-inverse using SVD

Definition at line 1361 of file uncalibvs_sim_alg.cpp.

Compute Traditional Jacobian.

Traditional Jacobian that translates image features velocities to camera velocities

Definition at line 443 of file uncalibvs_sim_alg.cpp.

Compute Uncalibrated Jacobian.

Uncalibrated Jacobian that translates image features velocities to camera velocities

Definition at line 489 of file uncalibvs_sim_alg.cpp.

void Uncalibvs_simAlgorithm::config_update ( Config new_cfg,
uint32_t  level = 0 
)

config update

In this function the driver parameters must be updated with the input config variable. Then the new configuration state will be stored in the Config attribute.

Parameters:
new_cfgthe new driver configuration state
levellevel in which the update is taken place

Definition at line 14 of file uncalibvs_sim_alg.cpp.

Features vector.

Vector of features (x,y) in the camera frame

Definition at line 409 of file uncalibvs_sim_alg.cpp.

Eigen::Matrix4f Uncalibvs_simAlgorithm::GetTransform ( const KDL::Frame f) [protected]

KDL Frame to Homogenous transform

Compute the convertion from KDL Frame to Homogenous transform (Eigen Matrix 4f)

Definition at line 1414 of file uncalibvs_sim_alg.cpp.

void Uncalibvs_simAlgorithm::image_projection ( const float &  fu,
const float &  fv 
) [protected]

Image projection.

Projection of 3D points (x,y,z) to image plane (u,v)

Definition at line 401 of file uncalibvs_sim_alg.cpp.

void Uncalibvs_simAlgorithm::initZeros ( ) [protected]

Initialitzation with zeros.

Matrix structures initialization.

Definition at line 342 of file uncalibvs_sim_alg.cpp.

void Uncalibvs_simAlgorithm::K_control ( ) [protected]

Compute 6DOF Control.

Compute the Lambda proportional 6DOF control of the visual servo

Definition at line 691 of file uncalibvs_sim_alg.cpp.

void Uncalibvs_simAlgorithm::lock ( void  ) [inline]

Lock Algorithm.

Locks access to the Algorithm class

Definition at line 261 of file uncalibvs_sim_alg.h.

void Uncalibvs_simAlgorithm::pseudo_inverse ( const Eigen::MatrixXf &  M,
const Eigen::MatrixXf &  Y,
Eigen::MatrixXf &  X 
) [protected]

Matrix pseudo-inverse

Compute the QR matrix pseudo-inverse such as M*X=Y -> X=M^-1*Y

Definition at line 1406 of file uncalibvs_sim_alg.cpp.

void Uncalibvs_simAlgorithm::q_control ( ) [protected]

Compute the 4DOF control law.

Compute the motions of the quadrotor

Definition at line 749 of file uncalibvs_sim_alg.cpp.

void Uncalibvs_simAlgorithm::qa_control ( ) [protected]

Compute the 9DOF control law.

Compute the motions of the quadrotor and arm joints

Definition at line 878 of file uncalibvs_sim_alg.cpp.

Compute Quadrotor and Arm 9DOF Kinematics.

Compute the quadrotor and arm jacobian and the position of the quadrotor using forward kinematics

Definition at line 781 of file uncalibvs_sim_alg.cpp.

Tries Access to Algorithm.

Tries access to Algorithm

Returns:
true if the lock was adquired, false otherwise

Definition at line 277 of file uncalibvs_sim_alg.h.

void Uncalibvs_simAlgorithm::uncalib_vs_sim ( const bool traditional,
const bool random_points,
const bool quadrotor,
const bool arm_unina,
const bool arm_catec,
const bool output_files,
const std::string &  path,
const double &  lambda,
const Eigen::MatrixXf &  lambda_robot,
const double &  final_z,
const Eigen::Matrix4f &  cTo,
const double &  secs,
const Eigen::MatrixXf &  V2,
KDL::Chain chain,
Eigen::MatrixXf &  QQ,
const Eigen::Matrix3f &  Rquad_inertial,
Eigen::MatrixXf &  Vel_quad 
)

Main algorithm.

Uncalibrated visual servoing algorithm call.

Definition at line 24 of file uncalibvs_sim_alg.cpp.

void Uncalibvs_simAlgorithm::unlock ( void  ) [inline]

Unlock Algorithm.

Unlocks access to the Algorithm class

Definition at line 268 of file uncalibvs_sim_alg.h.

Compute Desired pose velocities at the jacobian null space (over-determined system)

Compute the vector of motion of the jacobian null space

Definition at line 1283 of file uncalibvs_sim_alg.cpp.

Compute Desired pose velocities at the jacobian null space (over-determined system)

Compute the vector of motion of the jacobian null space

Definition at line 956 of file uncalibvs_sim_alg.cpp.


Member Data Documentation

Definition at line 96 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::alfas_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

define config type

Define a Config type with the Uncalibvs_simConfig. All driver implementations will then use the same variable type Config.

Definition at line 81 of file uncalibvs_sim_alg.h.

Definition at line 96 of file uncalibvs_sim_alg.h.

Definition at line 96 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::ccP_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Definition at line 100 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::cj_0_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

config variable

This variable has all the driver parameters defined in the cfg config file. Is updated everytime function config_update() is called.

Definition at line 243 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::cP_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::cP_x_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Eigen::Matrix4f Uncalibvs_simAlgorithm::cTo_ [protected]

Definition at line 92 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::diff_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Eigen::Matrix4f Uncalibvs_simAlgorithm::diTj_int_ [protected]

Definition at line 92 of file uncalibvs_sim_alg.h.

float Uncalibvs_simAlgorithm::ff_ [protected]

Definition at line 88 of file uncalibvs_sim_alg.h.

Definition at line 88 of file uncalibvs_sim_alg.h.

Definition at line 87 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::J_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Definition at line 102 of file uncalibvs_sim_alg.h.

KDL::JntArray Uncalibvs_simAlgorithm::jnt_pos_ [protected]

Definition at line 101 of file uncalibvs_sim_alg.h.

Definition at line 105 of file uncalibvs_sim_alg.h.

Definition at line 104 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::Jqa_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

double Uncalibvs_simAlgorithm::lambda_ [protected]

Definition at line 87 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::lambda_robot_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

int Uncalibvs_simAlgorithm::n_ [protected]

Definition at line 85 of file uncalibvs_sim_alg.h.

unsigned int Uncalibvs_simAlgorithm::nj_ [protected]

Definition at line 86 of file uncalibvs_sim_alg.h.

Definition at line 85 of file uncalibvs_sim_alg.h.

Definition at line 96 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::P0_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

std::string Uncalibvs_simAlgorithm::path_ [protected]

Definition at line 97 of file uncalibvs_sim_alg.h.

Definition at line 87 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::pj_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Definition at line 96 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::pn_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::QQ_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Definition at line 96 of file uncalibvs_sim_alg.h.

Definition at line 96 of file uncalibvs_sim_alg.h.

Eigen::Matrix3f Uncalibvs_simAlgorithm::Rquad_inertial_ [protected]

Definition at line 91 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::S_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::s_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::S_x_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

double Uncalibvs_simAlgorithm::secs_ [protected]

Definition at line 87 of file uncalibvs_sim_alg.h.

Eigen::Matrix4f Uncalibvs_simAlgorithm::T0c_0_ [protected]

Definition at line 92 of file uncalibvs_sim_alg.h.

Eigen::Matrix4f Uncalibvs_simAlgorithm::T0c_new_ [protected]

Definition at line 92 of file uncalibvs_sim_alg.h.

Eigen::Matrix4f Uncalibvs_simAlgorithm::T0c_x_ [protected]

Definition at line 92 of file uncalibvs_sim_alg.h.

Eigen::Matrix4f Uncalibvs_simAlgorithm::Tc0_ [protected]

Definition at line 92 of file uncalibvs_sim_alg.h.

Definition at line 96 of file uncalibvs_sim_alg.h.

float Uncalibvs_simAlgorithm::u0_ [protected]

Definition at line 88 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::uv_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

float Uncalibvs_simAlgorithm::v0_ [protected]

Definition at line 88 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::V2_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Eigen::Matrix4f Uncalibvs_simAlgorithm::V_mod_ [protected]

Definition at line 92 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::Vel_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::Velqa_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.

Eigen::MatrixXf Uncalibvs_simAlgorithm::Vqa0_ [protected]

Definition at line 93 of file uncalibvs_sim_alg.h.


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


iri_uncalibvs_sim
Author(s): Àngel Sanatamaria Navarro
autogenerated on Fri Dec 6 2013 21:57:13