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

IRI ROS Specific Driver Class. More...

#include <uncalibvs_alg.h>

List of all members.

Public Types

typedef
iri_uncalibvs::UncalibvsConfig 
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 (const bool &traditional, const bool &random_points, const bool &quadrotor, const bool &arm, const bool &output_files, const std::string &path, const double &lambda, 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_Algorithm (void)
 constructor
void unlock (void)
 Unlock Algorithm.
 ~Uncalibvs_Algorithm (void)
 Destructor.

Public Attributes

Config config_
 config variable

Protected Member Functions

void base_rtw ()
 Base points.
void compute_jacobian_t ()
 Compute Traditional Jacobian.
void compute_jacobian_u ()
 Compute Uncalibrated Jacobian.
void features_vector ()
 Features vector.
void image_projection (const float &fu, const float &fv)
 Image projection.
void initZeros ()
 Initialitzation with zeros.
void K_control ()
 Compute 6DOF Control.
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 ()
 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_
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_
int n_
int noise_
bool output_files_
Eigen::MatrixXf P0_
std::string path_
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 66 of file uncalibvs_alg.h.


Member Typedef Documentation

typedef iri_uncalibvs::UncalibvsConfig Uncalibvs_Algorithm::Config

define config type

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

Definition at line 197 of file uncalibvs_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_alg.cpp.

Destructor.

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

Definition at line 10 of file uncalibvs_alg.cpp.


Member Function Documentation

void Uncalibvs_Algorithm::base_rtw ( ) [protected]

Base points.

Obtain the base points of the object

Definition at line 203 of file uncalibvs_alg.cpp.

Compute Traditional Jacobian.

Traditional Jacobian that translates image features velocities to camera velocities

Definition at line 471 of file uncalibvs_alg.cpp.

Compute Uncalibrated Jacobian.

Uncalibrated Jacobian that translates image features velocities to camera velocities

Definition at line 518 of file uncalibvs_alg.cpp.

void Uncalibvs_Algorithm::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_alg.cpp.

Features vector.

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

Definition at line 437 of file uncalibvs_alg.cpp.

void Uncalibvs_Algorithm::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 429 of file uncalibvs_alg.cpp.

void Uncalibvs_Algorithm::initZeros ( ) [protected]

Initialitzation with zeros.

Matrix structures initialization.

Definition at line 368 of file uncalibvs_alg.cpp.

void Uncalibvs_Algorithm::K_control ( ) [protected]

Compute 6DOF Control.

Compute the Lambda proportional 6DOF control of the visual servo

Definition at line 720 of file uncalibvs_alg.cpp.

void Uncalibvs_Algorithm::lock ( void  ) [inline]

Lock Algorithm.

Locks access to the Algorithm class

Definition at line 224 of file uncalibvs_alg.h.

void Uncalibvs_Algorithm::q_control ( ) [protected]

Compute the 4DOF control law.

Compute the motions of the quadrotor

Definition at line 770 of file uncalibvs_alg.cpp.

void Uncalibvs_Algorithm::qa_control ( ) [protected]

Compute the 9DOF control law.

Compute the motions of the quadrotor and arm joints

Definition at line 811 of file uncalibvs_alg.cpp.

void Uncalibvs_Algorithm::qa_kinematics ( ) [protected]

Compute Quadrotor and Arm 9DOF Kinematics.

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

Definition at line 922 of file uncalibvs_alg.cpp.

bool Uncalibvs_Algorithm::try_enter ( void  ) [inline]

Tries Access to Algorithm.

Tries access to Algorithm

Returns:
true if the lock was adquired, false otherwise

Definition at line 240 of file uncalibvs_alg.h.

void Uncalibvs_Algorithm::uncalib_vs ( const bool traditional,
const bool random_points,
const bool quadrotor,
const bool arm,
const bool output_files,
const std::string &  path,
const double &  lambda,
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_alg.cpp.

void Uncalibvs_Algorithm::unlock ( void  ) [inline]

Unlock Algorithm.

Unlocks access to the Algorithm class

Definition at line 231 of file uncalibvs_alg.h.

void Uncalibvs_Algorithm::v_null_space ( ) [protected]

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 849 of file uncalibvs_alg.cpp.


Member Data Documentation

Definition at line 88 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::alfas_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

CMutex Uncalibvs_Algorithm::alg_mutex_ [protected]

define config type

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

Definition at line 75 of file uncalibvs_alg.h.

Definition at line 88 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::ccP_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Definition at line 93 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::cj_0_ [protected]

Definition at line 85 of file uncalibvs_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 206 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::cP_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::cP_x_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Eigen::Matrix4f Uncalibvs_Algorithm::cTo_ [protected]

Definition at line 84 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::diff_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Eigen::Matrix4f Uncalibvs_Algorithm::diTj_int_ [protected]

Definition at line 84 of file uncalibvs_alg.h.

float Uncalibvs_Algorithm::ff_ [protected]

Definition at line 81 of file uncalibvs_alg.h.

float Uncalibvs_Algorithm::ff_old_ [protected]

Definition at line 81 of file uncalibvs_alg.h.

double Uncalibvs_Algorithm::final_z_ [protected]

Definition at line 80 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::J_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Definition at line 95 of file uncalibvs_alg.h.

KDL::JntArray Uncalibvs_Algorithm::jnt_pos_ [protected]

Definition at line 94 of file uncalibvs_alg.h.

Definition at line 98 of file uncalibvs_alg.h.

Definition at line 97 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::Jqa_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

double Uncalibvs_Algorithm::lambda_ [protected]

Definition at line 80 of file uncalibvs_alg.h.

int Uncalibvs_Algorithm::n_ [protected]

Definition at line 79 of file uncalibvs_alg.h.

int Uncalibvs_Algorithm::noise_ [protected]

Definition at line 79 of file uncalibvs_alg.h.

Definition at line 88 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::P0_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

std::string Uncalibvs_Algorithm::path_ [protected]

Definition at line 89 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::pj_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Definition at line 88 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::pn_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::QQ_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Definition at line 88 of file uncalibvs_alg.h.

Definition at line 88 of file uncalibvs_alg.h.

Eigen::Matrix3f Uncalibvs_Algorithm::Rquad_inertial_ [protected]

Definition at line 83 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::S_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::s_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::S_x_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

double Uncalibvs_Algorithm::secs_ [protected]

Definition at line 80 of file uncalibvs_alg.h.

Eigen::Matrix4f Uncalibvs_Algorithm::T0c_0_ [protected]

Definition at line 84 of file uncalibvs_alg.h.

Eigen::Matrix4f Uncalibvs_Algorithm::T0c_new_ [protected]

Definition at line 84 of file uncalibvs_alg.h.

Eigen::Matrix4f Uncalibvs_Algorithm::T0c_x_ [protected]

Definition at line 84 of file uncalibvs_alg.h.

Eigen::Matrix4f Uncalibvs_Algorithm::Tc0_ [protected]

Definition at line 84 of file uncalibvs_alg.h.

Definition at line 88 of file uncalibvs_alg.h.

float Uncalibvs_Algorithm::u0_ [protected]

Definition at line 81 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::uv_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

float Uncalibvs_Algorithm::v0_ [protected]

Definition at line 81 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::V2_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Eigen::Matrix4f Uncalibvs_Algorithm::V_mod_ [protected]

Definition at line 84 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::Vel_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::Velqa_ [protected]

Definition at line 85 of file uncalibvs_alg.h.

Eigen::MatrixXf Uncalibvs_Algorithm::Vqa0_ [protected]

Definition at line 85 of file uncalibvs_alg.h.


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


iri_uncalibvs
Author(s): Àngel Sanatamaria Navarro
autogenerated on Fri Dec 6 2013 23:40:59