Visual Servoing Platform  version 3.2.0 under development (2018-08-20)
vpSphere Class Reference

#include <visp3/core/vpSphere.h>

+ Inheritance diagram for vpSphere:

Public Types

enum  vpForwardProjectionDeallocatorType { user, vpDisplayForwardProjection }
 

Public Member Functions

void init ()
 
 vpSphere ()
 
virtual ~vpSphere ()
 
 vpSphere (const vpColVector &oP)
 
 vpSphere (const double X0, const double Y0, const double Z0, const double R)
 
void setWorldCoordinates (const vpColVector &oP)
 
void setWorldCoordinates (const double X0, const double Y0, const double Z0, const double R)
 
double get_x () const
 
double get_y () const
 
double get_mu20 () const
 
double get_mu11 () const
 
double get_mu02 () const
 
double getX () const
 
double getY () const
 
double getZ () const
 
double getR () const
 
void projection ()
 
void projection (const vpColVector &cP, vpColVector &p)
 
void changeFrame (const vpHomogeneousMatrix &cMo, vpColVector &cP)
 
void changeFrame (const vpHomogeneousMatrix &cMo)
 
void display (const vpImage< unsigned char > &I, const vpCameraParameters &cam, const vpColor &color=vpColor::green, const unsigned int thickness=1)
 
void display (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam, const vpColor &color=vpColor::green, const unsigned int thickness=1)
 
vpSphereduplicate () const
 
void project ()
 
void project (const vpHomogeneousMatrix &cMo)
 
void track (const vpHomogeneousMatrix &cMo)
 
virtual void print () const
 
void setDeallocate (vpForwardProjectionDeallocatorType d)
 
vpForwardProjectionDeallocatorType getDeallocate ()
 

Public Attributes

vpColVector oP
 
vpColVector p
 
vpColVector cP
 
bool cPAvailable
 

Detailed Description

Class that defines what is a sphere.

Forward projection of a sphere.

Examples:
manGeometricFeatures.cpp, servoSimuSphere.cpp, servoSimuSphere2DCamVelocity.cpp, and servoSimuSphere2DCamVelocitySecondaryTask.cpp.

Definition at line 60 of file vpSphere.h.

Member Enumeration Documentation

Used for memory issue especially in the vpServo class.

Enumerator
user 
vpDisplayForwardProjection 

Definition at line 211 of file vpForwardProjection.h.

Constructor & Destructor Documentation

vpSphere::vpSphere ( )

Definition at line 61 of file vpSphere.cpp.

References init().

Referenced by duplicate().

vpSphere::~vpSphere ( )
virtual

Definition at line 75 of file vpSphere.cpp.

vpSphere::vpSphere ( const vpColVector oP)
explicit

Definition at line 63 of file vpSphere.cpp.

References init(), and setWorldCoordinates().

vpSphere::vpSphere ( const double  X0,
const double  Y0,
const double  Z0,
const double  R 
)

Definition at line 69 of file vpSphere.cpp.

References init(), and setWorldCoordinates().

Member Function Documentation

void vpSphere::changeFrame ( const vpHomogeneousMatrix cMo,
vpColVector cP 
)
virtual

Perspective projection of the circle.

Implements vpForwardProjection.

Definition at line 147 of file vpSphere.cpp.

References vpForwardProjection::oP.

Referenced by changeFrame(), and display().

void vpSphere::changeFrame ( const vpHomogeneousMatrix cMo)
virtual

perspective projection of the circle

Implements vpForwardProjection.

Definition at line 144 of file vpSphere.cpp.

References changeFrame(), and vpTracker::cP.

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

Displays the feature in the image I thanks to the 2D feature parameters in the image plane (vpTracker::p) and the camera parameters which enable to convert the features from meter to pixel.

Parameters
I: The image where the feature must be displayed in overlay.
cam: The camera parameters to enable the conversion from meter to pixel.
color: The desired color to display the line in the image.
thickness: Thickness of the feature representation.

Implements vpForwardProjection.

Examples:
manGeometricFeatures.cpp.

Definition at line 179 of file vpSphere.cpp.

References vpFeatureDisplay::displayEllipse(), and vpTracker::p.

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

Displays the feature in the image I thanks to the features in the object frame (vpForwardProjection::oP), the homogeneous matrix relative to the pose between the object frame and the camera frame and the camera parameters which enable to convert the features from meter to pixel.

Parameters
I: The image where the line must be displayed in overlay.
cMo: The homogeneous matrix corresponding to the pose between the camera frame and the object frame.
cam: The camera parameters to enable the conversion from meter to pixel.
color: The desired color to display the line in the image.
thickness: Thickness of the feature representation.

Implements vpForwardProjection.

Definition at line 170 of file vpSphere.cpp.

References changeFrame(), vpFeatureDisplay::displayEllipse(), and projection().

vpSphere * vpSphere::duplicate ( ) const
virtual

for memory issue (used by the vpServo class only)

Implements vpForwardProjection.

Definition at line 163 of file vpSphere.cpp.

References vpSphere().

double vpSphere::get_mu02 ( ) const
inline
Examples:
servoSimuSphere.cpp.

Definition at line 78 of file vpSphere.h.

double vpSphere::get_mu11 ( ) const
inline
Examples:
servoSimuSphere.cpp.

Definition at line 77 of file vpSphere.h.

double vpSphere::get_mu20 ( ) const
inline
Examples:
servoSimuSphere.cpp.

Definition at line 76 of file vpSphere.h.

double vpSphere::get_x ( ) const
inline
Examples:
servoSimuSphere.cpp.

Definition at line 74 of file vpSphere.h.

double vpSphere::get_y ( ) const
inline
Examples:
servoSimuSphere.cpp.

Definition at line 75 of file vpSphere.h.

vpForwardProjectionDeallocatorType vpForwardProjection::getDeallocate ( )
inlineinherited

Definition at line 220 of file vpForwardProjection.h.

double vpSphere::getX ( ) const
inline

Definition at line 80 of file vpSphere.h.

double vpSphere::getY ( ) const
inline

Definition at line 81 of file vpSphere.h.

double vpSphere::getZ ( ) const
inline

Definition at line 82 of file vpSphere.h.

void vpSphere::init ( )
virtual

Default initialisation of the feature parameters:

  • in the object frame: oP
  • in the camera frame: cP
  • in the image plane: p.

Implements vpForwardProjection.

Definition at line 42 of file vpSphere.cpp.

References vpTracker::cP, vpForwardProjection::oP, vpTracker::p, and vpColVector::resize().

Referenced by vpSphere().

void vpForwardProjection::print ( ) const
virtualinherited

Print to stdout the feature parameters in:

  • the object frame
  • the camera frame
  • the image plane.
Examples:
servoSimuCircle2DCamVelocityDisplay.cpp, servoSimuLine2DCamVelocityDisplay.cpp, and servoSimuSquareLine2DCamVelocityDisplay.cpp.

Definition at line 53 of file vpForwardProjection.cpp.

References vpTracker::cP, vpForwardProjection::oP, vpTracker::p, and vpColVector::t().

void vpForwardProjection::project ( const vpHomogeneousMatrix cMo)
inherited

Compute the feature parameters in the camera frame (vpTracker::cP) and than compute the projection of these parameters in the image plane (vpTracker::p).

Warning
The feature parameters in the object frame (vpForwardProjection:oP) need to be set prior the use of this method. To initialize these parameters see setWorldCoordinates().
Parameters
cMo: The homogeneous matrix corresponding to the pose between the camera frame and the object frame.

Definition at line 84 of file vpForwardProjection.cpp.

References vpForwardProjection::changeFrame(), vpForwardProjection::projection(), and vpERROR_TRACE.

void vpSphere::projection ( )
virtual

perspective projection of the sphere

Implements vpForwardProjection.

Definition at line 78 of file vpSphere.cpp.

References vpTracker::cP, and vpTracker::p.

Referenced by display().

void vpSphere::projection ( const vpColVector cP,
vpColVector p 
)
virtual

Perspective projection of the circle.

Implements vpForwardProjection.

Definition at line 81 of file vpSphere.cpp.

References vpERROR_TRACE.

void vpForwardProjection::setDeallocate ( vpForwardProjectionDeallocatorType  d)
inlineinherited

Definition at line 219 of file vpForwardProjection.h.

void vpSphere::setWorldCoordinates ( const vpColVector oP)
virtual

Sets the parameters which define the feature in the object frame.

Parameters
oP: Feature parameters expressed in the object frame used to set the vpForwardProjection::oP public attribute.

Implements vpForwardProjection.

Examples:
manGeometricFeatures.cpp, servoSimuSphere2DCamVelocity.cpp, and servoSimuSphere2DCamVelocitySecondaryTask.cpp.

Definition at line 51 of file vpSphere.cpp.

References vpForwardProjection::oP.

Referenced by vpSphere().

void vpSphere::setWorldCoordinates ( const double  X0,
const double  Y0,
const double  Z0,
const double  R 
)

Definition at line 53 of file vpSphere.cpp.

References vpForwardProjection::oP.

void vpForwardProjection::track ( const vpHomogeneousMatrix cMo)
inherited

Track the feature parameters in the camera frame (vpTracker::cP) and than compute the projection of these parameters in the image plane (vpTracker::p).

This method is similar to project(const vpHomogeneousMatrix &).

Warning
The feature parameters in the object frame (vpForwardProjection:oP) need to be set prior the use of this method. To initialize these parameters see setWorldCoordinates().
Parameters
cMo: The homogeneous matrix corresponding to the pose between the camera frame and the object frame.
Examples:
mbot-apriltag-ibvs.cpp, servoMomentPoints.cpp, servoMomentPolygon.cpp, servoSimu4Points.cpp, servoSimuAfma6FourPoints2DCamVelocity.cpp, servoSimuCircle2DCamVelocity.cpp, servoSimuCircle2DCamVelocityDisplay.cpp, servoSimuFourPoints2DCamVelocity.cpp, servoSimuFourPoints2DCamVelocityDisplay.cpp, servoSimuFourPoints2DPolarCamVelocityDisplay.cpp, servoSimuLine2DCamVelocityDisplay.cpp, servoSimuSphere.cpp, servoSimuSphere2DCamVelocity.cpp, servoSimuSphere2DCamVelocitySecondaryTask.cpp, servoSimuSquareLine2DCamVelocityDisplay.cpp, servoSimuViper850FourPoints2DCamVelocity.cpp, simulateCircle2DCamVelocity.cpp, simulateFourPoints2DCartesianCamVelocity.cpp, simulateFourPoints2DPolarCamVelocity.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.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 111 of file vpForwardProjection.cpp.

References vpForwardProjection::project(), and vpERROR_TRACE.

Referenced by vpPoseFeatures::addFeatureSegment(), vpPose::computeResidual(), vpProjectionDisplay::displayCamera(), vpPose::poseVirtualVS(), vpPose::poseVirtualVSrobust(), vpWireFrameSimulator::projectCameraTrajectory(), vpSimulatorAfma6::updateArticularPosition(), and vpSimulatorViper850::updateArticularPosition().

Member Data Documentation

bool vpTracker::cPAvailable
inherited

Flag used to indicate if the feature parameters cP expressed in the camera frame are available.

Definition at line 81 of file vpTracker.h.

Referenced by vpTracker::init(), vpTracker::operator=(), and vpPoint::operator=().