Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches

#include <vpFeaturePoint.h>

Inheritance diagram for vpFeaturePoint:

Public Types

enum  vpBasicFeatureSelect { FEATURE_ALL = 0xffff }
enum  vpBasicFeatureDeallocatorType { user , vpServo }
Deprecated functions
enum  vpFeaturePointType { X = 1 , Y = 2 }

Public Member Functions

 vpFeaturePoint ()
vpFeaturePointbuildFrom (const double &x, const double &y, const double &Z)
void display (const vpCameraParameters &cam, const vpImage< unsigned char > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const VP_OVERRIDE
void display (const vpCameraParameters &cam, const vpImage< vpRGBa > &I, const vpColor &color=vpColor::green, unsigned int thickness=1) const VP_OVERRIDE
vpFeaturePointduplicate () const VP_OVERRIDE
vpColVector error (const vpBasicFeature &s_star, unsigned int select=FEATURE_ALL) VP_OVERRIDE
double get_x () const
double get_y () const
double get_Z () const
void init () VP_OVERRIDE
vpMatrix interaction (unsigned int select=FEATURE_ALL) VP_OVERRIDE
void print (unsigned int select=FEATURE_ALL) const VP_OVERRIDE
void set_x (double x)
void set_y (double y)
void set_Z (double Z)
void set_xyZ (double x, double y, double Z)

Static Public Member Functions

static unsigned int selectX ()
static unsigned int selectY ()

Static Public Attributes

static const unsigned int FEATURE_LINE [32]

Protected Attributes

vpColVector s
unsigned int dim_s
bool * flags
unsigned int nbParameters

Inherited functionalities from vpBasicFeature

unsigned int dimension_s ()
vpColVector get_s (unsigned int select=FEATURE_ALL) const
vpBasicFeatureDeallocatorType getDeallocate ()
unsigned int getDimension (unsigned int select=FEATURE_ALL) const
virtual double operator[] (unsigned int i) const
void setDeallocate (vpBasicFeatureDeallocatorType d)
void setFlags ()
static unsigned int selectAll ()
vpBasicFeatureDeallocatorType deallocate
void resetFlags ()

Detailed Description

Class that defines a 2D point visual feature $ s$ which is composed by two parameters that are the cartesian coordinates $x $ and $ y $.

In this class $ x $ and $ y $ are the 2D coordinates in the image plane and are given in meter. $ Z $ which is the 3D coordinate representing the depth is also a parameter of the point. It is needed during the computation of the interaction matrix $ L $.

The visual features can be set easily from an instance of the classes vpPoint, vpDot or vpDot2. For more precision see the vpFeatureBuilder class.

Once the values of the visual features are set, the interaction() method allows to compute the interaction matrix $ L $ associated to the visual feature, while the error() method computes the error vector $(s - s^*)$ between the current visual feature and the desired one.

The code below shows how to create a eye-in hand visual servoing task using a 2D point feature $(x,y)$ that correspond to the 2D coordinates of a point in the image plane. To control six degrees of freedom, at least four other features must be considered like two other point features for example. First we create a current ( $s$) 2D point feature. Then we set the task to use the interaction matrix associated to the current feature $L_s$. And finally we compute the camera velocity $v=-\lambda \; L_s^+ \;
(s-s^*)$. The current feature $s$ is updated in the while() loop.

#include <visp3/visual_features/vpFeaturePoint.h>
#include <visp3/vs/vpServo.h>
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
vpServo task; // Visual servoing task
vpFeaturePoint sd; //The desired point feature.
// Set the desired features x and y
double xd = 0;
double yd = 0;
// Set the depth of the point in the camera frame.
double Zd = 1;
// Set the point feature thanks to the desired parameters.
sd.buildFrom(xd, yd, Zd);
vpFeaturePoint s; //The current point feature.
// Set the current features x and y
double x; // You have to compute the value of x.
double y; // You have to compute the value of y.
double Z; // You have to compute the value of Z.
// Set the point feature thanks to the current parameters.
s.buildFrom(x, y, Z);
// In this case the parameter Z is not necessary because the interaction matrix is computed
// with the desired visual feature.
// Set eye-in-hand control law.
// The computed velocities will be expressed in the camera frame
task.setServo(vpServo::EYEINHAND_CAMERA);
// Interaction matrix is computed with the desired visual features sd
task.setInteractionMatrixType(vpServo::DESIRED);
// Add the 2D point feature to the task
task.addFeature(s, sd);
// Control loop
for ( ; ; ) {
// The new parameters x and y must be computed here.
// Update the current point visual feature
s.buildFrom(x, y, Z);
// Compute the control law
vpColVector v = task.computeControlLaw(); // camera velocity
}
return 0;
}
vpColVector s
State of the visual feature.
Implementation of column vector and the associated operations.
@ EYEINHAND_CAMERA
Definition vpServo.h:176
@ DESIRED
Definition vpServo.h:223

If you want to build your own control law, this other example shows how to create a current ( $s$) and desired ( $s^*$) 2D point visual feature, compute the corresponding error vector $(s-s^*)$ and finally build the interaction matrix $L_s$.

#include <visp3/core/vpMatrix.h>
#include <visp3/visual_features/vpFeaturePoint.h>
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
vpFeaturePoint sd; //The desired point feature.
// Set the desired features x and y
double xd = 0;
double yd = 0;
// Set the depth of the point in the camera frame.
double Zd = 1;
// Set the point feature thanks to the desired parameters.
sd.buildFrom(xd, yd, Zd);
vpFeaturePoint s; //The current point feature.
// Set the current features x and y
double x; // You have to compute the value of x.
double y; // You have to compute the value of y.
double Z; // You have to compute the value of Z.
// Set the point feature thanks to the current parameters.
s.buildFrom(x, y, Z);
// Compute the interaction matrix L_s for the current point feature
vpMatrix L = s.interaction();
// You can also compute the interaction matrix L_s for the desired point feature
// The corresponding line of code is : vpMatrix L = sd.interaction();
// Compute the error vector (s-sd) for the point feature
s.error(s_star);
}
Implementation of a matrix and operations on matrices.
Definition vpMatrix.h:175

Tutorials & Examples

Tutorials
An other fully explained example is given in:

Examples
manServo4PointsDisplay.cpp, manSimu4Dots.cpp, manSimu4Points.cpp, mbot-apriltag-2D-half-vs.cpp, servoAfma62DhalfCamVelocity.cpp, servoAfma6FourPoints2DArtVelocity.cpp, servoAfma6Point2DArtVelocity.cpp, servoAfma6Point2DCamVelocity.cpp, servoAfma6Points2DCamVelocityEyeToHand.cpp, servoBiclopsPoint2DArtVelocity.cpp, servoFlirPtuIBVS.cpp, servoFrankaIBVS-EyeToHand-Lcur_cVe_eJe.cpp, servoFrankaIBVS-EyeToHand-Lcur_cVf_fVe_eJe.cpp, servoFrankaIBVS-EyeToHand-Ldes_cVf_fVe_eJe.cpp, servoPioneerPoint2DDepth.cpp, servoPioneerPoint2DDepthWithoutVpServo.cpp, servoPololuPtuPoint2DJointVelocity.cpp, servoPtu46Point2DArtVelocity.cpp, servoSimu4Points.cpp, servoSimuAfma6FourPoints2DCamVelocity.cpp, servoSimuFourPoints2DCamVelocity.cpp, servoSimuFourPoints2DCamVelocityDisplay.cpp, servoSimuPoint2DCamVelocity1.cpp, servoSimuPoint2DCamVelocity2.cpp, servoSimuPoint2DCamVelocity3.cpp, servoSimuPoint2DhalfCamVelocity1.cpp, servoSimuPoint2DhalfCamVelocity2.cpp, servoSimuPoint2DhalfCamVelocity3.cpp, servoSimuViper850FourPoints2DCamVelocity.cpp, servoViper650FourPoints2DArtVelocityLs_cur.cpp, servoViper650FourPoints2DCamVelocityLs_cur-SR300.cpp, servoViper650FourPoints2DCamVelocityLs_cur.cpp, servoViper650Point2DCamVelocity.cpp, servoViper850FourPoints2DArtVelocityLs_cur.cpp, servoViper850FourPoints2DArtVelocityLs_des.cpp, servoViper850FourPoints2DCamVelocityLs_cur.cpp, servoViper850FourPointsKinect.cpp, servoViper850Point2DArtVelocity-jointAvoidance-basic.cpp, servoViper850Point2DArtVelocity-jointAvoidance-gpa.cpp, servoViper850Point2DArtVelocity-jointAvoidance-large.cpp, servoViper850Point2DArtVelocity.cpp, servoViper850Point2DCamVelocity.cpp, servoViper850Point2DCamVelocityKalman.cpp, simulateFourPoints2DCartesianCamVelocity.cpp, testPoint.cpp, testPoseFeatures.cpp, tutorial-flir-ptu-ibvs.cpp, tutorial-ibvs-4pts-display.cpp, tutorial-ibvs-4pts-image-tracking.cpp, tutorial-ibvs-4pts-ogre-tracking.cpp, tutorial-ibvs-4pts-ogre.cpp, tutorial-ibvs-4pts-plotter-continuous-gain-adaptive.cpp, tutorial-ibvs-4pts-plotter-gain-adaptive.cpp, tutorial-ibvs-4pts-plotter.cpp, tutorial-ibvs-4pts-wireframe-camera.cpp, tutorial-ibvs-4pts-wireframe-robot-afma6.cpp, tutorial-ibvs-4pts-wireframe-robot-viper.cpp, tutorial-ibvs-4pts.cpp, tutorial-simu-pioneer-continuous-gain-adaptive.cpp, tutorial-simu-pioneer-continuous-gain-constant.cpp, tutorial-simu-pioneer-pan.cpp, and tutorial-simu-pioneer.cpp.

Definition at line 189 of file vpFeaturePoint.h.

Member Enumeration Documentation

◆ vpBasicFeatureDeallocatorType

Indicates who should deallocate the feature.

Enumerator
user 
vpServo 

Definition at line 86 of file vpBasicFeature.h.

◆ vpBasicFeatureSelect

Enumerator
FEATURE_ALL 

Definition at line 81 of file vpBasicFeature.h.

◆ vpFeaturePointType

Enumerator

Definition at line 235 of file vpFeaturePoint.h.

Constructor & Destructor Documentation

◆ vpFeaturePoint()

vpFeaturePoint::vpFeaturePoint ( )

Default constructor that build a visual feature.

Definition at line 85 of file vpFeaturePoint.cpp.

References init().

Referenced by buildFrom(), and duplicate().

Member Function Documentation

◆ buildFrom()

vpFeaturePoint & vpFeaturePoint::buildFrom ( const double & x_,
const double & y_,
const double & Z_ )

Build a 2D point visual feature from the point coordinates in the image plan $ x $ and $ y $. The parameter Z which describes the depth, is set in the same time.

See the vpFeaturePoint class description for more details about $ x $ and $ y $.

Parameters
x_: The $ x $ parameter.
y_: The $ y $ parameter.
Z_: The $ Z $ parameter.
Examples
mbot-apriltag-2D-half-vs.cpp, servoAfma6FourPoints2DArtVelocity.cpp, servoAfma6Point2DArtVelocity.cpp, servoAfma6Point2DCamVelocity.cpp, servoBiclopsPoint2DArtVelocity.cpp, servoFrankaIBVS-EyeToHand-Lcur_cVe_eJe.cpp, servoFrankaIBVS-EyeToHand-Lcur_cVf_fVe_eJe.cpp, servoFrankaIBVS-EyeToHand-Ldes_cVf_fVe_eJe.cpp, servoPioneerPoint2DDepth.cpp, servoPioneerPoint2DDepthWithoutVpServo.cpp, servoPololuPtuPoint2DJointVelocity.cpp, servoPtu46Point2DArtVelocity.cpp, servoSimuFourPoints2DCamVelocity.cpp, servoSimuFourPoints2DCamVelocityDisplay.cpp, servoSimuPoint2DCamVelocity1.cpp, servoSimuPoint2DCamVelocity2.cpp, servoSimuPoint2DCamVelocity3.cpp, servoViper650Point2DCamVelocity.cpp, servoViper850FourPoints2DArtVelocityLs_des.cpp, servoViper850Point2DArtVelocity-jointAvoidance-basic.cpp, servoViper850Point2DArtVelocity-jointAvoidance-gpa.cpp, servoViper850Point2DArtVelocity-jointAvoidance-large.cpp, servoViper850Point2DArtVelocity.cpp, servoViper850Point2DCamVelocity.cpp, servoViper850Point2DCamVelocityKalman.cpp, simulateFourPoints2DCartesianCamVelocity.cpp, tutorial-simu-pioneer-continuous-gain-adaptive.cpp, tutorial-simu-pioneer-continuous-gain-constant.cpp, tutorial-simu-pioneer-pan.cpp, and tutorial-simu-pioneer.cpp.

Definition at line 392 of file vpFeaturePoint.cpp.

References vpFeatureException::badInitializationError, vpBasicFeature::flags, vpBasicFeature::nbParameters, vpBasicFeature::s, vpERROR_TRACE, and vpFeaturePoint().

◆ dimension_s()

unsigned int vpBasicFeature::dimension_s ( )
inlineinherited

Return the dimension of the feature vector $\bf s$.

Definition at line 108 of file vpBasicFeature.h.

References dim_s.

◆ display() [1/2]

void vpFeaturePoint::display ( const vpCameraParameters & cam,
const vpImage< unsigned char > & I,
const vpColor & color = vpColor::green,
unsigned int thickness = 1 ) const
virtual

Display point feature.

Parameters
cam: Camera parameters.
I: Image.
color: Color to use for the display.
thickness: Thickness of the feature representation.

Implements vpBasicFeature.

Examples
servoAfma62DhalfCamVelocity.cpp.

Definition at line 430 of file vpFeaturePoint.cpp.

References vpFeatureDisplay::displayPoint(), get_x(), get_y(), and vpERROR_TRACE.

◆ display() [2/2]

void vpFeaturePoint::display ( const vpCameraParameters & cam,
const vpImage< vpRGBa > & I,
const vpColor & color = vpColor::green,
unsigned int thickness = 1 ) const
virtual

Display point feature.

Parameters
cam: Camera parameters.
I: color Image.
color: Color to use for the display.
thickness: Thickness of the feature representation.

Implements vpBasicFeature.

Definition at line 457 of file vpFeaturePoint.cpp.

References vpFeatureDisplay::displayPoint(), get_x(), get_y(), and vpERROR_TRACE.

◆ duplicate()

vpFeaturePoint * vpFeaturePoint::duplicate ( ) const
virtual

Create an object with the same type.

s_star = s.duplicate(); // s_star is now a vpFeaturePoint

Implements vpBasicFeature.

Definition at line 484 of file vpFeaturePoint.cpp.

References vpFeaturePoint().

◆ error()

vpColVector vpFeaturePoint::error ( const vpBasicFeature & s_star,
unsigned int select = FEATURE_ALL )
virtual

Compute the error $ (s-s^*)$ between the current and the desired visual features from a subset of the possible features.

Parameters
s_star: Desired visual feature.
select: The error can be computed for a selection of a subset of the possible point features.
  • To compute the error for all the two point features use vpBasicFeature::FEATURE_ALL. In that case the error vector is a 2 dimension column vector.
  • To compute the error for only one of the point component feature ( $ x, y
$) use one of the corresponding function selectX() or selectY(). In that case the error vector is a 1 dimension column vector.
Returns
The error $ (s-s^*)$ between the current and the desired visual feature.

The code below shows how to use this method to manipulate the $ x $ subset:

// Creation of the current feature s
s.buildFrom(0, 0, 1);
// Creation of the desired feature s*
s_star.buildFrom(1, 1, 1);
// Compute the interaction matrix for the x feature
vpMatrix L_x = s.interaction( vpFeaturePoint::selectX() );
// Compute the error vector (s-s*) for the x feature
s.error(s_star, vpFeaturePoint::selectX());
vpFeaturePoint & buildFrom(const double &x, const double &y, const double &Z)
static unsigned int selectX()

Reimplemented from vpBasicFeature.

Examples
servoPioneerPoint2DDepthWithoutVpServo.cpp.

Definition at line 325 of file vpFeaturePoint.cpp.

References vpBasicFeature::s, selectX(), selectY(), vpColVector::stack(), and vpBasicFeature::vpBasicFeature().

◆ get_s()

vpColVector vpBasicFeature::get_s ( unsigned int select = FEATURE_ALL) const
inherited

◆ get_x()

double vpFeaturePoint::get_x ( ) const

Get the value of $ x $ which represents the x coordinate of the point in the image plan. It is one parameter of the visual feature $ s $.

Returns
The value of $ x $.
Examples
mbot-apriltag-2D-half-vs.cpp, servoPioneerPoint2DDepth.cpp, servoPioneerPoint2DDepthWithoutVpServo.cpp, tutorial-simu-pioneer-continuous-gain-adaptive.cpp, tutorial-simu-pioneer-continuous-gain-constant.cpp, tutorial-simu-pioneer-pan.cpp, and tutorial-simu-pioneer.cpp.

Definition at line 126 of file vpFeaturePoint.cpp.

References vpBasicFeature::s.

Referenced by display(), display(), interaction(), and print().

◆ get_y()

double vpFeaturePoint::get_y ( ) const

Get the value of $ y $ which represents the x coordinate of the point in the image plan. It is one parameter of the visual feature $ s $.

Returns
The value of $ y $.
Examples
mbot-apriltag-2D-half-vs.cpp, servoPioneerPoint2DDepth.cpp, servoPioneerPoint2DDepthWithoutVpServo.cpp, tutorial-simu-pioneer-continuous-gain-adaptive.cpp, tutorial-simu-pioneer-continuous-gain-constant.cpp, tutorial-simu-pioneer-pan.cpp, and tutorial-simu-pioneer.cpp.

Definition at line 146 of file vpFeaturePoint.cpp.

References vpBasicFeature::s.

Referenced by display(), display(), interaction(), and print().

◆ get_Z()

double vpFeaturePoint::get_Z ( ) const

Get the value of $ Z $ which represents the depth in the 3D camera frame.

Returns
The value of $ Z $.

Definition at line 105 of file vpFeaturePoint.cpp.

Referenced by interaction(), and print().

◆ getDeallocate()

vpBasicFeatureDeallocatorType vpBasicFeature::getDeallocate ( )
inlineinherited

Definition at line 121 of file vpBasicFeature.h.

References deallocate.

◆ getDimension()

unsigned int vpBasicFeature::getDimension ( unsigned int select = FEATURE_ALL) const
inherited

Get the feature vector dimension.

Definition at line 100 of file vpBasicFeature.cpp.

References dim_s, FEATURE_LINE, and s.

◆ init()

BEGIN_VISP_NAMESPACE void vpFeaturePoint::init ( void )
virtual

Initialize the memory space requested for 2D point visual feature.

Implements vpBasicFeature.

Definition at line 65 of file vpFeaturePoint.cpp.

References vpBasicFeature::dim_s, vpBasicFeature::flags, vpBasicFeature::nbParameters, and vpBasicFeature::s.

Referenced by vpFeaturePoint().

◆ interaction()

vpMatrix vpFeaturePoint::interaction ( unsigned int select = FEATURE_ALL)
virtual

Compute and return the interaction matrix $ L $. The computation is made thanks to the values of the point features $ x $ and $ y $ and the depth $ Z $.

\‍[ L = \left[\begin{array}{c}L_{x} \\ L_{y}\end{array}\right] =
\left[\begin{array}{cccccc}
-1/Z & 0 & x/Z & xy & -(1+x^2) & y \\
0 & -1/Z & y/Z & 1+y^2 & -xy & -x
\end{array}\right]\‍]

Parameters
select: Selection of a subset of the possible point features.
  • To compute the interaction matrix for all the two point features use vpBasicFeature::FEATURE_ALL. In that case the dimension of the interaction matrix is $ [2 \times 6] $
  • To compute the interaction matrix for only one of the point component feature ( $ x, y $) use one of the corresponding function selectX() or selectY(). In that case the returned interaction matrix is $ [1 \times
6] $ dimension.
Returns
The interaction matrix computed from the point features.

The code below shows how to compute the interaction matrix associated to the visual feature $ s = x $.

// Creation of the current feature s
s.buildFrom(0, 0, 1);
vpMatrix L_x = s.interaction( vpFeaturePoint::selectX() );

The code below shows how to compute the interaction matrix associated to the visual feature $ s = (x, y) $.

// Creation of the current feature s
s.buildFrom(0, 0, 1);
vpMatrix L_x = s.interaction( vpBasicFeature::FEATURE_ALL );

Implements vpBasicFeature.

Examples
servoPioneerPoint2DDepthWithoutVpServo.cpp.

Definition at line 211 of file vpFeaturePoint.cpp.

References vpFeatureException::badInitializationError, vpBasicFeature::deallocate, vpBasicFeature::flags, get_x(), get_y(), get_Z(), vpBasicFeature::nbParameters, vpBasicFeature::resetFlags(), vpArray2D< Type >::resize(), selectX(), selectY(), vpMatrix::stack(), vpBasicFeature::user, vpERROR_TRACE, and vpTRACE.

◆ operator[]()

virtual double vpBasicFeature::operator[] ( unsigned int i) const
inlinevirtualinherited

Return element i in the state vector (usage : x = s[i] ).

Definition at line 128 of file vpBasicFeature.h.

References s.

◆ print()

void vpFeaturePoint::print ( unsigned int select = FEATURE_ALL) const
virtual

Print to stdout the values of the current visual feature $ s $.

Parameters
select: Selection of a subset of the possible point features.
vpFeaturePoint s; // Current visual feature s
// Creation of the current feature s
s.buildFrom(0, 0, 1);
s.print(); // print all the 2 components of the feature
s.print(vpBasicFeature::FEATURE_ALL); // same behavior then previous line
s.print(vpFeaturePoint::selectX()); // print only the x component

Implements vpBasicFeature.

Examples
testPoint.cpp.

Definition at line 369 of file vpFeaturePoint.cpp.

References get_x(), get_y(), get_Z(), selectX(), and selectY().

◆ resetFlags()

◆ selectAll()

unsigned int vpBasicFeature::selectAll ( )
inlinestaticinherited

Select all the features.

Examples
testPoint.cpp.

Definition at line 140 of file vpBasicFeature.h.

References FEATURE_ALL.

◆ selectX()

unsigned int vpFeaturePoint::selectX ( )
static

Function used to select the $ x $ subset of the point visual feature.

This function is to use in conjunction with interaction() in order to compute the interaction matrix associated to $ x $.

This function is also useful in the vpServo class to indicate that a subset of the visual feature is to use in the control law:

vpServo task;
...
// Add the (x) subset features from the 2D point
task.addFeature(s, vpFeaturePoint::selectX());
Examples
mbot-apriltag-2D-half-vs.cpp, servoPioneerPoint2DDepthWithoutVpServo.cpp, servoSimuPoint2DCamVelocity3.cpp, testPoint.cpp, tutorial-simu-pioneer-continuous-gain-adaptive.cpp, tutorial-simu-pioneer-continuous-gain-constant.cpp, tutorial-simu-pioneer-pan.cpp, and tutorial-simu-pioneer.cpp.

Definition at line 508 of file vpFeaturePoint.cpp.

References vpBasicFeature::FEATURE_LINE.

Referenced by error(), interaction(), and print().

◆ selectY()

unsigned int vpFeaturePoint::selectY ( )
static

Function used to select the $ y $ subset of the point visual feature.

This function is to use in conjunction with interaction() in order to compute the interaction matrix associated to $ y $.

This function is also useful in the vpServo class to indicate that a subset of the visual feature is to use in the control law:

vpServo task;
...
// Add the (y) subset features from the 2D point
task.addFeature(s, vpFeaturePoint::selectY());
static unsigned int selectY()
Examples
testPoint.cpp.

Definition at line 528 of file vpFeaturePoint.cpp.

References vpBasicFeature::FEATURE_LINE.

Referenced by error(), interaction(), and print().

◆ set_x()

◆ set_xyZ()

void vpFeaturePoint::set_xyZ ( double x_,
double y_,
double Z_ )

Set the value of $ x $, $ y $ and $ Z $. $ x $ and $ y $ represent the coordinates of the point in the image plan and are the parameters of the visual feature $ s $. $ Z $ is the 3D coordinate in the camera frame representing the depth.

Parameters
x_: $ x $ value to set.
y_: $ y $ value to set.
Z_: $ Z $ value to set.

Definition at line 159 of file vpFeaturePoint.cpp.

References vpBasicFeature::flags, vpBasicFeature::nbParameters, set_x(), set_y(), and set_Z().

◆ set_y()

void vpFeaturePoint::set_y ( double y)

◆ set_Z()

◆ setDeallocate()

void vpBasicFeature::setDeallocate ( vpBasicFeatureDeallocatorType d)
inlineinherited

Definition at line 135 of file vpBasicFeature.h.

References deallocate.

Referenced by vpServo::addFeature().

◆ setFlags()

void vpBasicFeature::setFlags ( )
inherited

Set feature flags to true to prevent warning when re-computing the interaction matrix without having updated the feature.

Definition at line 140 of file vpBasicFeature.cpp.

References flags, and nbParameters.

Member Data Documentation

◆ deallocate

◆ dim_s

unsigned int vpBasicFeature::dim_s
protectedinherited

Dimension of the visual feature.

Definition at line 92 of file vpBasicFeature.h.

Referenced by dimension_s(), vpFeatureMoment::duplicate(), vpGenericFeature::duplicate(), error(), vpFeatureLuminance::error(), vpFeatureLuminanceMapping::error(), vpFeatureLuminanceMapping::error(), vpGenericFeature::error(), vpGenericFeature::error(), get_s(), vpGenericFeature::get_s(), vpGenericFeature::get_s(), vpGenericFeature::get_s(), vpGenericFeature::get_s(), getDimension(), vpFeatureMoment::getDimension(), vpFeatureDepth::init(), vpFeatureEllipse::init(), vpFeatureLine::init(), vpFeatureLuminance::init(), vpFeatureLuminanceMapping::init(), vpFeatureLuminanceMapping::init(), vpFeatureLuminanceMapping::init(), vpFeatureMoment::init(), vpFeaturePoint3D::init(), vpFeaturePoint::init(), vpFeaturePointPolar::init(), vpFeatureSegment::init(), vpFeatureThetaU::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::init(), vpFeatureLuminance::interaction(), vpFeatureLuminanceMapping::interaction(), vpFeatureLuminanceMapping::interaction(), vpFeatureMoment::interaction(), vpGenericFeature::interaction(), operator=(), vpFeatureLuminance::operator=(), vpFeatureLuminanceMapping::operator=(), vpFeatureMoment::print(), vpGenericFeature::print(), vpGenericFeature::set_s(), vpGenericFeature::set_s(), vpGenericFeature::set_s(), vpGenericFeature::set_s(), vpGenericFeature::setError(), vpGenericFeature::setInteractionMatrix(), vpFeatureMoment::update(), vpBasicFeature(), vpBasicFeature(), vpFeatureLuminance::vpFeatureLuminance(), and vpGenericFeature::vpGenericFeature().

◆ FEATURE_LINE

BEGIN_VISP_NAMESPACE const unsigned int vpBasicFeature::FEATURE_LINE
staticinherited
Initial value:
= {
static_cast<unsigned int>(1 << 0), static_cast<unsigned int>(1 << 1), static_cast<unsigned int>(1 << 2), static_cast<unsigned int>(1 << 3),
static_cast<unsigned int>(1 << 4), static_cast<unsigned int>(1 << 5), static_cast<unsigned int>(1 << 6), static_cast<unsigned int>(1 << 7),
static_cast<unsigned int>(1 << 8), static_cast<unsigned int>(1 << 9), static_cast<unsigned int>(1 << 10), static_cast<unsigned int>(1 << 11),
static_cast<unsigned int>(1 << 12), static_cast<unsigned int>(1 << 13), static_cast<unsigned int>(1 << 14), static_cast<unsigned int>(1 << 15),
static_cast<unsigned int>(1 << 16), static_cast<unsigned int>(1 << 17), static_cast<unsigned int>(1 << 18), static_cast<unsigned int>(1 << 19),
static_cast<unsigned int>(1 << 20), static_cast<unsigned int>(1 << 21), static_cast<unsigned int>(1 << 22), static_cast<unsigned int>(1 << 23),
static_cast<unsigned int>(1 << 24), static_cast<unsigned int>(1 << 25), static_cast<unsigned int>(1 << 26), static_cast<unsigned int>(1 << 27),
static_cast<unsigned int>(1 << 28), static_cast<unsigned int>(1 << 29), static_cast<unsigned int>(1 << 30), static_cast<unsigned int>(1 << 31) }

Definition at line 45 of file vpBasicFeature.h.

Referenced by error(), vpGenericFeature::error(), vpGenericFeature::error(), get_s(), getDimension(), vpFeatureMoment::getDimension(), vpFeatureMoment::interaction(), vpGenericFeature::interaction(), vpFeatureMoment::print(), vpGenericFeature::print(), vpFeatureEllipse::select_n02(), vpFeatureEllipse::select_n11(), vpFeatureEllipse::select_n20(), vpFeatureSegment::selectAlpha(), vpFeatureVanishingPoint::selectAlpha(), vpFeatureVanishingPoint::selectAtanOneOverRho(), vpFeatureSegment::selectL(), vpFeatureEllipse::selectMu02(), vpFeatureEllipse::selectMu11(), vpFeatureEllipse::selectMu20(), vpFeatureVanishingPoint::selectOneOverRho(), vpFeatureLine::selectRho(), vpFeaturePointPolar::selectRho(), vpFeatureLine::selectTheta(), vpFeaturePointPolar::selectTheta(), vpFeatureThetaU::selectTUx(), vpFeatureThetaU::selectTUy(), vpFeatureThetaU::selectTUz(), vpFeatureTranslation::selectTx(), vpFeatureTranslation::selectTy(), vpFeatureTranslation::selectTz(), vpFeatureEllipse::selectX(), vpFeaturePoint3D::selectX(), vpFeaturePoint::selectX(), vpFeatureVanishingPoint::selectX(), vpFeatureSegment::selectXc(), vpFeatureEllipse::selectY(), vpFeaturePoint3D::selectY(), vpFeaturePoint::selectY(), vpFeatureVanishingPoint::selectY(), vpFeatureSegment::selectYc(), and vpFeaturePoint3D::selectZ().

◆ flags

bool* vpBasicFeature::flags
protectedinherited

Ensure that all the parameters needed to compute the interaction matrix are set.

Definition at line 96 of file vpBasicFeature.h.

Referenced by vpFeatureDepth::buildFrom(), vpFeatureEllipse::buildFrom(), vpFeatureEllipse::buildFrom(), vpFeatureLine::buildFrom(), vpFeatureLine::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeaturePoint::buildFrom(), vpFeaturePointPolar::buildFrom(), vpFeatureThetaU::buildFrom(), vpFeatureTranslation::buildFrom(), vpFeatureMoment::duplicate(), vpFeatureDepth::init(), vpFeatureEllipse::init(), vpFeatureLine::init(), vpFeatureLuminance::init(), vpFeatureMoment::init(), vpFeaturePoint3D::init(), vpFeaturePoint::init(), vpFeaturePointPolar::init(), vpFeatureSegment::init(), vpFeatureThetaU::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::init(), vpFeatureDepth::interaction(), vpFeatureEllipse::interaction(), vpFeatureLine::interaction(), vpFeaturePoint3D::interaction(), vpFeaturePoint::interaction(), vpFeaturePointPolar::interaction(), vpFeatureSegment::interaction(), vpFeatureThetaU::interaction(), vpFeatureTranslation::interaction(), vpFeatureVanishingPoint::interaction(), operator=(), resetFlags(), vpFeaturePointPolar::set_rho(), vpFeaturePointPolar::set_rhoThetaZ(), vpFeaturePointPolar::set_theta(), vpFeatureThetaU::set_TUx(), vpFeatureThetaU::set_TUy(), vpFeatureThetaU::set_TUz(), vpFeaturePoint3D::set_X(), vpFeatureDepth::set_x(), vpFeatureEllipse::set_x(), vpFeaturePoint::set_x(), vpFeatureVanishingPoint::set_x(), vpFeatureEllipse::set_xy(), vpFeaturePoint3D::set_XYZ(), vpFeaturePoint::set_xyZ(), vpFeatureDepth::set_xyZLogZoverZstar(), vpFeaturePoint3D::set_Y(), vpFeatureDepth::set_y(), vpFeatureEllipse::set_y(), vpFeaturePoint::set_y(), vpFeatureVanishingPoint::set_y(), vpFeatureDepth::set_Z(), vpFeatureLuminance::set_Z(), vpFeaturePoint3D::set_Z(), vpFeaturePoint::set_Z(), vpFeaturePointPolar::set_Z(), vpFeatureEllipse::setABC(), vpFeatureLine::setABCD(), vpFeatureSegment::setAlpha(), vpFeatureVanishingPoint::setAlpha(), vpFeatureVanishingPoint::setAtanOneOverRho(), setFlags(), vpFeatureSegment::setL(), vpFeatureEllipse::setMoments(), vpFeatureVanishingPoint::setOneOverRho(), vpFeatureLine::setRhoTheta(), vpFeatureSegment::setXc(), vpFeatureSegment::setYc(), vpFeatureSegment::setZ1(), vpFeatureSegment::setZ2(), vpFeatureMoment::update(), vpBasicFeature(), vpBasicFeature(), vpFeatureLuminance::vpFeatureLuminance(), and ~vpBasicFeature().

◆ nbParameters

◆ s

vpColVector vpBasicFeature::s
protectedinherited

State of the visual feature.

Definition at line 90 of file vpBasicFeature.h.

Referenced by vpFeatureDepth::buildFrom(), vpFeatureEllipse::buildFrom(), vpFeatureEllipse::buildFrom(), vpFeatureLine::buildFrom(), vpFeatureLine::buildFrom(), vpFeatureLuminance::buildFrom(), vpFeatureLuminanceMapping::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeaturePoint3D::buildFrom(), vpFeaturePoint::buildFrom(), vpFeaturePointPolar::buildFrom(), vpFeatureThetaU::buildFrom(), vpFeatureTranslation::buildFrom(), vpFeatureEllipse::display(), vpFeatureEllipse::display(), vpFeatureMoment::duplicate(), error(), vpFeatureDepth::error(), vpFeatureEllipse::error(), vpFeatureLine::error(), vpFeatureLuminance::error(), vpFeatureLuminanceMapping::error(), vpFeatureMomentAlpha::error(), vpFeaturePoint3D::error(), vpFeaturePoint::error(), vpFeaturePointPolar::error(), vpFeatureThetaU::error(), vpFeatureTranslation::error(), vpFeatureVanishingPoint::error(), vpGenericFeature::error(), vpGenericFeature::error(), vpFeatureDepth::get_LogZoverZstar(), vpFeatureEllipse::get_n02(), vpFeatureEllipse::get_n11(), vpFeatureEllipse::get_n20(), vpFeaturePointPolar::get_rho(), get_s(), vpGenericFeature::get_s(), vpGenericFeature::get_s(), vpGenericFeature::get_s(), vpGenericFeature::get_s(), vpFeaturePointPolar::get_theta(), vpFeatureThetaU::get_TUx(), vpFeatureThetaU::get_TUy(), vpFeatureThetaU::get_TUz(), vpFeatureTranslation::get_Tx(), vpFeatureTranslation::get_Ty(), vpFeatureTranslation::get_Tz(), vpFeaturePoint3D::get_X(), vpFeatureEllipse::get_x(), vpFeaturePoint::get_x(), vpFeatureVanishingPoint::get_x(), vpFeaturePoint3D::get_Y(), vpFeatureEllipse::get_y(), vpFeaturePoint::get_y(), vpFeatureVanishingPoint::get_y(), vpFeaturePoint3D::get_Z(), vpFeatureSegment::getAlpha(), vpFeatureVanishingPoint::getAlpha(), vpFeatureVanishingPoint::getAtanOneOverRho(), getDimension(), vpFeatureSegment::getL(), vpFeatureEllipse::getMu02(), vpFeatureEllipse::getMu11(), vpFeatureEllipse::getMu20(), vpFeatureVanishingPoint::getOneOverRho(), vpFeatureLine::getRho(), vpFeatureLine::getTheta(), vpFeatureSegment::getXc(), vpFeatureSegment::getYc(), vpFeatureDepth::init(), vpFeatureEllipse::init(), vpFeatureLine::init(), vpFeatureLuminance::init(), vpFeatureLuminanceMapping::init(), vpFeatureLuminanceMapping::init(), vpFeatureMoment::init(), vpFeaturePoint3D::init(), vpFeaturePoint::init(), vpFeaturePointPolar::init(), vpFeatureSegment::init(), vpFeatureThetaU::init(), vpFeatureTranslation::init(), vpFeatureVanishingPoint::init(), vpGenericFeature::init(), vpFeatureEllipse::interaction(), vpFeatureLine::interaction(), vpFeatureLuminanceMapping::interaction(), vpFeatureThetaU::interaction(), vpFeatureTranslation::interaction(), operator=(), vpFeatureLuminance::operator=(), vpFeatureLuminanceMapping::operator=(), operator[](), vpFeatureEllipse::print(), vpFeatureLine::print(), vpFeatureLuminanceMapping::print(), vpFeatureMoment::print(), vpFeatureSegment::print(), vpFeatureThetaU::print(), vpFeatureTranslation::print(), vpGenericFeature::print(), vpFeatureDepth::set_LogZoverZstar(), vpFeaturePointPolar::set_rho(), vpGenericFeature::set_s(), vpGenericFeature::set_s(), vpGenericFeature::set_s(), vpGenericFeature::set_s(), vpFeaturePointPolar::set_theta(), vpFeatureThetaU::set_TUx(), vpFeatureThetaU::set_TUy(), vpFeatureThetaU::set_TUz(), vpFeatureTranslation::set_Tx(), vpFeatureTranslation::set_Ty(), vpFeatureTranslation::set_Tz(), vpFeaturePoint3D::set_X(), vpFeatureEllipse::set_x(), vpFeaturePoint::set_x(), vpFeatureVanishingPoint::set_x(), vpFeatureEllipse::set_xy(), vpFeaturePoint3D::set_Y(), vpFeatureEllipse::set_y(), vpFeaturePoint::set_y(), vpFeatureVanishingPoint::set_y(), vpFeaturePoint3D::set_Z(), vpFeatureSegment::setAlpha(), vpFeatureVanishingPoint::setAlpha(), vpFeatureVanishingPoint::setAtanOneOverRho(), vpFeatureSegment::setL(), vpFeatureEllipse::setMoments(), vpFeatureVanishingPoint::setOneOverRho(), vpFeatureLine::setRhoTheta(), vpFeatureSegment::setXc(), vpFeatureSegment::setYc(), vpFeatureMoment::update(), vpBasicFeature(), vpBasicFeature(), and vpGenericFeature::vpGenericFeature().