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

#include <vpRobotWireFrameSimulator.h>

Inheritance diagram for vpRobotWireFrameSimulator:

Public Types

enum  vpDisplayRobotType { MODEL_3D , MODEL_DH }
enum  vpRobotStateType {
  STATE_STOP , STATE_VELOCITY_CONTROL , STATE_POSITION_CONTROL , STATE_ACCELERATION_CONTROL ,
  STATE_FORCE_TORQUE_CONTROL
}
enum  vpControlFrameType {
  REFERENCE_FRAME , ARTICULAR_FRAME , JOINT_STATE = ARTICULAR_FRAME , END_EFFECTOR_FRAME ,
  CAMERA_FRAME , TOOL_FRAME = CAMERA_FRAME , MIXT_FRAME
}

Public Member Functions

 vpRobotWireFrameSimulator ()
VP_EXPLICIT vpRobotWireFrameSimulator (bool display)
Inherited functionalities from vpRobotWireFrameSimulator
vpCameraParameters getExternalCameraParameters () const
vpHomogeneousMatrix getExternalCameraPosition () const
void getInternalView (vpImage< vpRGBa > &I)
void getInternalView (vpImage< unsigned char > &I)
vpHomogeneousMatrix get_cMo ()
vpHomogeneousMatrix get_fMo () const
void initScene (const vpSceneObject &obj, const vpSceneDesiredObject &desiredObject)
void initScene (const char *obj, const char *desiredObject)
void initScene (const vpSceneObject &obj)
void initScene (const char *obj)
void setCameraColor (const vpColor &col)
void setConstantSamplingTimeMode (const bool _constantSamplingTimeMode)
void setCurrentViewColor (const vpColor &col)
void setDesiredViewColor (const vpColor &col)
void setDesiredCameraPosition (const vpHomogeneousMatrix &cdMo_)
void setDisplayRobotType (const vpDisplayRobotType dispType)
void setExternalCameraPosition (const vpHomogeneousMatrix &camMf_)
void setGraphicsThickness (unsigned int thickness)
void setSamplingTime (const double &delta_t) VP_OVERRIDE
void setSingularityManagement (bool sm)
void setVerbose (bool verbose)
void set_fMo (const vpHomogeneousMatrix &fMo_)
Inherited functionalities from vpRobotSimulator
double getSamplingTime () const
Inherited functionalities from vpRobot
virtual void get_eJe (vpMatrix &_eJe)=0
virtual void get_fJe (vpMatrix &_fJe)=0
virtual void getDisplacement (const vpRobot::vpControlFrameType frame, vpColVector &q)=0
double getMaxTranslationVelocity (void) const
double getMaxRotationVelocity (void) const
int getNDof () const
virtual void getPosition (const vpRobot::vpControlFrameType frame, vpColVector &position)=0
vpColVector getPosition (const vpRobot::vpControlFrameType frame)
virtual vpRobotStateType getRobotState (void) const
virtual void init ()=0
void setMaxRotationVelocity (double maxVr)
void setMaxTranslationVelocity (double maxVt)
virtual void setPosition (const vpRobot::vpControlFrameType frame, const vpColVector &q)=0
virtual vpRobotStateType setRobotState (const vpRobot::vpRobotStateType newState)
virtual void setVelocity (const vpRobot::vpControlFrameType frame, const vpColVector &vel)=0

Static Public Member Functions

Static Public Member Functions inherited from vpRobot
static vpColVector saturateVelocities (const vpColVector &v_in, const vpColVector &v_max, bool verbose=false)

Public Attributes

vpImage< vpRGBaI

Protected Types

enum  vpSceneObject {
  THREE_PTS , CUBE , PLATE , SMALL_PLATE ,
  RECTANGLE , SQUARE_10CM , DIAMOND , TRAPEZOID ,
  THREE_LINES , ROAD , TIRE , PIPE ,
  CIRCLE , SPHERE , CYLINDER , PLAN ,
  POINT_CLOUD
}
enum  vpSceneDesiredObject { D_STANDARD , D_CIRCLE , D_TOOL }
enum  vpCameraTrajectoryDisplayType { CT_LINE , CT_POINT }

Protected Member Functions

Inherited functionalities from vpWireFrameSimulator
void deleteCameraPositionHistory ()
void displayTrajectory (const vpImage< unsigned char > &I, const std::list< vpHomogeneousMatrix > &list_cMo, const std::list< vpHomogeneousMatrix > &list_fMo, const vpHomogeneousMatrix &camMf)
void displayTrajectory (const vpImage< vpRGBa > &I, const std::list< vpHomogeneousMatrix > &list_cMo, const std::list< vpHomogeneousMatrix > &list_fMo, const vpHomogeneousMatrix &camMf)
vpCameraParameters getExternalCameraParameters (const vpImage< unsigned char > &I) const
vpCameraParameters getExternalCameraParameters (const vpImage< vpRGBa > &I) const
void getExternalImage (vpImage< unsigned char > &I)
void getExternalImage (vpImage< unsigned char > &I, const vpHomogeneousMatrix &camMf)
void getExternalImage (vpImage< vpRGBa > &I)
void getExternalImage (vpImage< vpRGBa > &I, const vpHomogeneousMatrix &camMf)
vpCameraParameters getInternalCameraParameters (const vpImage< unsigned char > &I) const
vpCameraParameters getInternalCameraParameters (const vpImage< vpRGBa > &I) const
void getInternalImage (vpImage< unsigned char > &I)
void getInternalImage (vpImage< vpRGBa > &I)
vpHomogeneousMatrix get_cMo () const
void get_cMo_History (std::list< vpHomogeneousMatrix > &cMo_history)
void get_fMo_History (std::list< vpHomogeneousMatrix > &fMo_history)
void initScene (const vpSceneObject &obj, const vpSceneDesiredObject &desiredObject, const std::list< vpImageSimulator > &imObj)
void initScene (const char *obj, const char *desiredObject, const std::list< vpImageSimulator > &imObj)
void initScene (const vpSceneObject &obj, const std::list< vpImageSimulator > &imObj)
void initScene (const char *obj, const std::list< vpImageSimulator > &imObj)
void setCameraPositionRelObj (const vpHomogeneousMatrix &cMo_)
void setCameraPositionRelWorld (const vpHomogeneousMatrix &fMc_)
void setCameraSizeFactor (float factor)
void setCameraTrajectoryColor (const vpColor &col)
void setCameraTrajectoryDisplayType (const vpCameraTrajectoryDisplayType &camTraj_type)
void setDisplayCameraTrajectory (const bool &do_display)
void setExternalCameraParameters (const vpCameraParameters &cam)
void setInternalCameraParameters (const vpCameraParameters &cam)
void setNbPtTrajectory (unsigned int nbPt)
Protected Member Functions Inherited from vpWireFrameSimulator
void display_scene (Matrix mat, Bound_scene &sc, const vpImage< vpRGBa > &I, const vpColor &color)
void display_scene (Matrix mat, Bound_scene &sc, const vpImage< unsigned char > &I, const vpColor &color)
vpHomogeneousMatrix navigation (const vpImage< vpRGBa > &I, bool &changed)
vpHomogeneousMatrix navigation (const vpImage< unsigned char > &I, bool &changed)
vpImagePoint projectCameraTrajectory (const vpImage< vpRGBa > &I, const vpHomogeneousMatrix &cMo, const vpHomogeneousMatrix &fMo)
vpImagePoint projectCameraTrajectory (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpHomogeneousMatrix &fMo)
vpImagePoint projectCameraTrajectory (const vpImage< vpRGBa > &I, const vpHomogeneousMatrix &cMo, const vpHomogeneousMatrix &fMo, const vpHomogeneousMatrix &cMf)
vpImagePoint projectCameraTrajectory (const vpImage< unsigned char > &I, const vpHomogeneousMatrix &cMo, const vpHomogeneousMatrix &fMo, const vpHomogeneousMatrix &cMf)
Protected Member Functions Inherited from vpRobot
vpControlFrameType setRobotFrame (vpRobot::vpControlFrameType newFrame)
vpControlFrameType getRobotFrame (void) const

Protected Attributes

double tcur
double tprev
Bound_scene * robotArms
unsigned int size_fMi
vpHomogeneousMatrixfMi
vpColVector artCoord
vpColVector artVel
vpColVector velocity
std::thread * m_thread
std::mutex m_mutex_fMi
std::mutex m_mutex_eMc
std::mutex m_mutex_artVel
std::mutex m_mutex_artCoord
std::mutex m_mutex_velocity
std::mutex m_mutex_display
std::mutex m_mutex_robotStop
std::mutex m_mutex_frame
std::mutex m_mutex_setVelocityCalled
std::mutex m_mutex_scene
bool displayBusy
bool robotStop
bool jointLimit
unsigned int jointLimitArt
bool singularityManagement
vpCameraParameters cameraParam
vpDisplayX display
vpDisplayRobotType displayType
bool displayAllowed
bool constantSamplingTimeMode
bool setVelocityCalled
Bound_scene scene
Bound_scene desiredScene
Bound_scene camera
std::list< vpImageSimulatorobjectImage
vpHomogeneousMatrix fMo
vpHomogeneousMatrix fMc
vpHomogeneousMatrix camMf
vpHomogeneousMatrix refMo
vpHomogeneousMatrix cMo
vpHomogeneousMatrix cdMo
vpSceneObject object
vpSceneDesiredObject desiredObject
vpColor camColor
vpColor camTrajColor
vpColor curColor
vpColor desColor
bool sceneInitialized
bool displayCameraTrajectory
std::list< vpImagePointcameraTrajectory
std::list< vpHomogeneousMatrixposeList
std::list< vpHomogeneousMatrixfMoList
unsigned int nbrPtLimit
vpImagePoint old_iPr
vpImagePoint old_iPz
vpImagePoint old_iPt
bool blockedr
bool blockedz
bool blockedt
bool blocked
vpHomogeneousMatrix camMf2
vpHomogeneousMatrix f2Mf
double px_int
double py_int
double px_ext
double py_ext
bool displayObject
bool displayDesiredObject
bool displayCamera
bool displayImageSimulator
float cameraFactor
vpCameraTrajectoryDisplayType camTrajType
bool extCamChanged
vpHomogeneousMatrix rotz
unsigned int thickness_
double delta_t_
double maxTranslationVelocity
double maxRotationVelocity
int nDof
vpMatrix eJe
int eJeAvailable
vpMatrix fJe
int fJeAvailable
int areJointLimitsAvailable
double * qmin
double * qmax
bool verbose_

Static Protected Attributes

static const double maxTranslationVelocityDefault = 0.2
static const double maxRotationVelocityDefault = 0.7

Protected Member Functions Inherited from vpRobotWireFrameSimulator

static void launcher (vpRobotWireFrameSimulator &simulator)
virtual void updateArticularPosition ()=0
virtual int isInJointLimit ()=0
virtual void computeArticularVelocity ()=0
void initDisplay ()
virtual void initArms ()=0
vpColVector get_artCoord ()
void set_artCoord (const vpColVector &coord)
vpColVector get_artVel ()
void set_artVel (const vpColVector &vel)
vpColVector get_velocity ()
void set_velocity (const vpColVector &vel)
void set_displayBusy (const bool &status)
bool get_displayBusy ()
virtual void get_fMi (vpHomogeneousMatrix *fMit)=0

Detailed Description

This class aims to be a basis used to create all the simulators of robots.

Thus in this class you will find all the parameters and methods which are necessary to create a simulator. Several methods are pure virtual. In this case it means that they are specific to the each robot, for example the computation of the geometrical model.

Warning
This class uses threading capabilities. Thus on Unix-like platforms, the libpthread third-party library need to be installed. On Windows, we use the native threading capabilities.

Definition at line 79 of file vpRobotWireFrameSimulator.h.

Member Enumeration Documentation

◆ vpCameraTrajectoryDisplayType

Enumerator
CT_LINE 
CT_POINT 

Definition at line 228 of file vpWireFrameSimulator.h.

◆ vpControlFrameType

Robot control frames.

Enumerator
REFERENCE_FRAME 

Corresponds to a fixed reference frame attached to the robot structure.

ARTICULAR_FRAME 

Corresponds to the joint state. This value is deprecated. You should rather use vpRobot::JOINT_STATE.

JOINT_STATE 

Corresponds to the joint state.

END_EFFECTOR_FRAME 

Corresponds to robot end-effector frame.

CAMERA_FRAME 

Corresponds to a frame attached to the camera mounted on the robot end-effector.

TOOL_FRAME 

Corresponds to a frame attached to the tool (camera, gripper...) mounted on the robot end-effector. This value is equal to vpRobot::CAMERA_FRAME.

MIXT_FRAME 

Corresponds to a "virtual" frame where translations are expressed in the reference frame, and rotations in the camera frame.

Definition at line 73 of file vpRobot.h.

◆ vpDisplayRobotType

Enumerator
MODEL_3D 
MODEL_DH 

Definition at line 84 of file vpRobotWireFrameSimulator.h.

◆ vpRobotStateType

enum vpRobot::vpRobotStateType
inherited

Robot control states.

Enumerator
STATE_STOP 

Stops robot motion especially in velocity and acceleration control.

STATE_VELOCITY_CONTROL 

Initialize the velocity controller.

STATE_POSITION_CONTROL 

Initialize the position controller.

STATE_ACCELERATION_CONTROL 

Initialize the acceleration controller.

STATE_FORCE_TORQUE_CONTROL 

Initialize the force/torque controller.

Definition at line 61 of file vpRobot.h.

◆ vpSceneDesiredObject

Type of scene used to display the object at the desired pose (in the internal view).

  • D_STANDARD will use the vpSceneObject used to be the object at the current position.
  • D_OUTIL will display a tool which is attached to the camera.
Enumerator
D_STANDARD 

The object displayed at the desired position is the same than the scene object defined in vpSceneObject.

D_CIRCLE 

The object displayed at the desired position is a circle.

D_TOOL 

A cylindrical tool is attached to the camera.

Definition at line 220 of file vpWireFrameSimulator.h.

◆ vpSceneObject

Type of scene used to display the object at the current position.

Enumerator
THREE_PTS 

A 40cm by 40cm plate with 3 points at coordinates (0,0,0), (0.1,0,0), (0,0.1,0). Each point is represented by a circle with 2cm radius.

CUBE 

A 12.5cm size cube.

PLATE 

A 40cm by 40cm plate with 4 points at coordinates (-0.1,-0.1,0), (0.1,-0.1,0), (0.1,0.1,0), (0.1,0.1,0). Each point is represented by a circle with 2cm radius.

SMALL_PLATE 

4 points at coordinates (-0.03,-0.03,0), (0.03,-0.03,0), (0.03,0.03,0), (0.03,0.03,0). Each point is represented by a circle with 1cm radius.

RECTANGLE 

A 40cm by 40cm plate with 4 points at coordinates (-0.07,-0.05,0), (0.07,0.05,0), (0.07,-0.05,0), (-0.07,-0.05,0). Each point is represented by a circle with 2cm radius.

SQUARE_10CM 

A 40cm by 40cm plate with 4 points at coordinates (-0.05,0.05,0), (0.05,0.05,0), (0.05,-0.05,0), (-0.05,-0.05,0). Each point is represented by a circle with 2cm radius.

DIAMOND 

A 40cm by 40cm plate with 4 points at coordinates (0,-0.1,0), (0.1,0,0), (0,0.1,0), (-0.1,0,0). Each point is represented by a circle with 2cm radius.

TRAPEZOID 

A 40cm by 40cm plate with 4 points at coordinates (-0.025,-0.05,0), (-0.075,0.05,0), (0.075,0.05,0), (0.025,-0.05,0). Each point is represented by a circle with 2cm radius.

THREE_LINES 

Three parallel lines with equation y=-5, y=0, y=5.

ROAD 

Three parallel lines representing a road.

TIRE 

A tire represented by 2 circles with radius 10cm and 15cm.

PIPE 

A pipe represented by a cylinder of 25 cm length and 15cm radius.

CIRCLE 

A 10cm radius circle.

SPHERE 

A 15cm radius sphere.

CYLINDER 

A cylinder of 80cm length and 10cm radius.

PLAN 

A plane represented by a 56cm by 56cm plate with a grid of 49 squares inside.

POINT_CLOUD 

A plate with 8 points at coordinates (0.05,0,0), (0.15,0.05,0), (0.2,0.2,0), (-0.05,0.2,0), (-0.15,-0.1,0), (-0.1,-0.1,0), (-0.05,0.05,0) and (0.5,0,0). ach point is represented by a circle with 2cm radius.

Definition at line 168 of file vpWireFrameSimulator.h.

Constructor & Destructor Documentation

◆ vpRobotWireFrameSimulator() [1/2]

◆ vpRobotWireFrameSimulator() [2/2]

Member Function Documentation

◆ computeArticularVelocity()

virtual void vpRobotWireFrameSimulator::computeArticularVelocity ( )
protectedpure virtual

Compute the articular velocity relative to the velocity in another frame.

Implemented in vpSimulatorAfma6, and vpSimulatorViper850.

◆ deleteCameraPositionHistory()

void vpWireFrameSimulator::deleteCameraPositionHistory ( )
inlineinherited

Delete the history of the main camera position which are displayed in the external views.

Definition at line 303 of file vpWireFrameSimulator.h.

References cameraTrajectory, fMoList, and poseList.

◆ display_scene() [1/2]

void vpWireFrameSimulator::display_scene ( Matrix mat,
Bound_scene & sc,
const vpImage< unsigned char > & I,
const vpColor & color )
protectedinherited

Definition at line 119 of file vpWireFrameSimulator.cpp.

References vpDisplay::displayLine(), and thickness_.

◆ display_scene() [2/2]

◆ displayTrajectory() [1/2]

void vpWireFrameSimulator::displayTrajectory ( const vpImage< unsigned char > & I,
const std::list< vpHomogeneousMatrix > & list_cMo,
const std::list< vpHomogeneousMatrix > & list_fMo,
const vpHomogeneousMatrix & cMf )
inherited

Display a trajectory thanks to a list of homogeneous matrices which give the position of the camera relative to the object and the position of the object relative to the world reference frame. The trajectory is projected into the view of an external camera whose position is given in parameter.

The two lists must have the same size of homogeneous matrices must have the same size.

Parameters
I: The image where the trajectory is displayed.
list_cMo: The homogeneous matrices list containing the position of the camera relative to the object.
list_fMo: The homogeneous matrices list containing the position of the object relative to the world reference frame.
cMf: A homogeneous matrix which gives the position of the external camera (used to project the trajectory) relative to the world reference frame.

Definition at line 1278 of file vpWireFrameSimulator.cpp.

References camTrajColor, camTrajType, CT_LINE, CT_POINT, vpException::dimensionError, vpDisplay::displayLine(), vpDisplay::displayPoint(), projectCameraTrajectory(), rotz, and thickness_.

◆ displayTrajectory() [2/2]

void vpWireFrameSimulator::displayTrajectory ( const vpImage< vpRGBa > & I,
const std::list< vpHomogeneousMatrix > & list_cMo,
const std::list< vpHomogeneousMatrix > & list_fMo,
const vpHomogeneousMatrix & cMf )
inherited

Display a trajectory thanks to a list of homogeneous matrices which give the position of the camera relative to the object and the position of the object relative to the world reference frame. The trajectory is projected into the view of an external camera whose position is given in parameter.

The two lists must have the same size of homogeneous matrices must have the same size.

Parameters
I: The image where the trajectory is displayed.
list_cMo: The homogeneous matrices list containing the position of the camera relative to the object.
list_fMo: The homogeneous matrices list containing the position of the object relative to the world reference frame.
cMf: A homogeneous matrix which gives the position of the external camera (used to project the trajectory) relative to the world reference frame.

Definition at line 1325 of file vpWireFrameSimulator.cpp.

References camTrajColor, camTrajType, CT_LINE, CT_POINT, vpException::dimensionError, vpDisplay::displayLine(), vpDisplay::displayPoint(), projectCameraTrajectory(), rotz, and thickness_.

◆ get_artCoord()

◆ get_artVel()

◆ get_cMo() [1/2]

vpHomogeneousMatrix vpRobotWireFrameSimulator::get_cMo ( )

Get the pose between the object and the robot's camera.

Returns
The pose between the object and the fixed world frame.

Definition at line 345 of file vpRobotWireFrameSimulator.cpp.

References vpWireFrameSimulator::fMo, get_fMi(), vpHomogeneousMatrix::inverse(), and size_fMi.

Referenced by vpSimulatorAfma6::setPosition().

◆ get_cMo() [2/2]

vpHomogeneousMatrix vpWireFrameSimulator::get_cMo ( ) const
inlineinherited

Get the pose between the object and the camera.

Returns
The pose between between the object and the camera.

Definition at line 414 of file vpWireFrameSimulator.h.

References cMo, and rotz.

◆ get_cMo_History()

void vpWireFrameSimulator::get_cMo_History ( std::list< vpHomogeneousMatrix > & cMo_history)
inlineinherited

Get the homogeneous matrices cMo stored to display the camera trajectory.

Parameters
cMo_history: The list of the homogeneous matrices cMo.

Definition at line 422 of file vpWireFrameSimulator.h.

References poseList, and rotz.

◆ get_displayBusy()

bool vpRobotWireFrameSimulator::get_displayBusy ( )
inlineprotected

◆ get_eJe()

virtual void vpRobot::get_eJe ( vpMatrix & _eJe)
pure virtualinherited

◆ get_fJe()

virtual void vpRobot::get_fJe ( vpMatrix & _fJe)
pure virtualinherited

Get the robot Jacobian expressed in the robot reference (or world) frame.

Implemented in vpRobotAfma6, vpRobotBiclops, vpRobotFlirPtu, vpRobotFranka, vpRobotKinova, vpRobotPololuPtu, vpRobotPtu46, vpRobotTemplate, vpRobotViper650, vpRobotViper850, vpSimulatorAfma6, and vpSimulatorViper850.

◆ get_fMi()

virtual void vpRobotWireFrameSimulator::get_fMi ( vpHomogeneousMatrix * fMit)
protectedpure virtual

Get a table of poses between the reference frame and the frames you used to compute the Denavit-Hartenberg representation

Implemented in vpSimulatorAfma6, and vpSimulatorViper850.

Referenced by get_cMo(), getInternalView(), and getInternalView().

◆ get_fMo()

vpHomogeneousMatrix vpRobotWireFrameSimulator::get_fMo ( ) const
inline

Get the pose between the object and the fixed world frame.

Returns
The pose between the object and the fixed world frame.

Definition at line 208 of file vpRobotWireFrameSimulator.h.

References vpWireFrameSimulator::fMo.

◆ get_fMo_History()

void vpWireFrameSimulator::get_fMo_History ( std::list< vpHomogeneousMatrix > & fMo_history)
inlineinherited

Get the homogeneous matrices fMo stored to display the camera trajectory.

Parameters
fMo_history: The list of the homogeneous matrices fMo.

Definition at line 443 of file vpWireFrameSimulator.h.

References fMoList.

◆ get_velocity()

vpColVector vpRobotWireFrameSimulator::get_velocity ( )
inlineprotected

◆ getDisplacement()

virtual void vpRobot::getDisplacement ( const vpRobot::vpControlFrameType frame,
vpColVector & q )
pure virtualinherited

Get a displacement (frame as to ve specified) between two successive position control.

Implemented in vpRobotAfma6, vpRobotBiclops, vpRobotFlirPtu, vpRobotKinova, vpRobotPtu46, vpRobotTemplate, vpRobotViper650, vpRobotViper850, vpSimulatorAfma6, and vpSimulatorViper850.

References getMaxRotationVelocity(), and getMaxTranslationVelocity().

◆ getExternalCameraParameters() [1/3]

vpCameraParameters vpRobotWireFrameSimulator::getExternalCameraParameters ( ) const
inline

Get the parameters of the virtual external camera.

Returns
It returns the camera parameters.

Definition at line 175 of file vpRobotWireFrameSimulator.h.

References I, vpMath::maximum(), vpMath::minimum(), vpWireFrameSimulator::px_ext, and vpWireFrameSimulator::py_ext.

◆ getExternalCameraParameters() [2/3]

vpCameraParameters vpWireFrameSimulator::getExternalCameraParameters ( const vpImage< unsigned char > & I) const
inlineinherited

Get the parameters of the virtual external camera.

Parameters
I: The image used to display the view of the camera.
Returns
It returns the camera parameters.

Definition at line 322 of file vpWireFrameSimulator.h.

References vpMath::maximum(), vpMath::minimum(), px_ext, and py_ext.

Referenced by projectCameraTrajectory(), projectCameraTrajectory(), projectCameraTrajectory(), and projectCameraTrajectory().

◆ getExternalCameraParameters() [3/3]

vpCameraParameters vpWireFrameSimulator::getExternalCameraParameters ( const vpImage< vpRGBa > & I) const
inlineinherited

Get the parameters of the virtual external camera.

Parameters
I: The image used to display the view of the camera.
Returns
It returns the camera parameters.

Definition at line 341 of file vpWireFrameSimulator.h.

References vpMath::maximum(), vpMath::minimum(), px_ext, and py_ext.

◆ getExternalCameraPosition()

vpHomogeneousMatrix vpRobotWireFrameSimulator::getExternalCameraPosition ( ) const
inline

Get the external camera's position relative to the the world reference frame.

Returns
the main external camera position relative to the the world reference frame.

Definition at line 194 of file vpRobotWireFrameSimulator.h.

References vpWireFrameSimulator::getExternalCameraPosition().

Referenced by vpSimulatorAfma6::updateArticularPosition(), and vpSimulatorViper850::updateArticularPosition().

◆ getExternalImage() [1/4]

void vpWireFrameSimulator::getExternalImage ( vpImage< unsigned char > & I)
inherited

◆ getExternalImage() [2/4]

void vpWireFrameSimulator::getExternalImage ( vpImage< unsigned char > & I,
const vpHomogeneousMatrix & cam_Mf )
inherited

Get an external view. The point of view is set thanks to the pose between the camera camMf and the fixed world frame.

Parameters
I: The image where the external view is displayed.
cam_Mf: The pose between the point of view and the fixed world frame.
Warning
: The objects are displayed thanks to overlays. The image I is not modified.

Definition at line 1211 of file vpWireFrameSimulator.cpp.

References camColor, camera, cMo, curColor, vpDisplay::display(), display_scene(), displayCamera, displayImageSimulator, displayObject, fMo, vpImageSimulator::getImage(), getInternalCameraParameters(), vpHomogeneousMatrix::inverse(), vpMath::maximum(), vpMath::minimum(), objectImage, px_ext, py_ext, rotz, scene, and vpImageSimulator::setCameraPosition().

◆ getExternalImage() [3/4]

void vpWireFrameSimulator::getExternalImage ( vpImage< vpRGBa > & I)
inherited

Get the external view. It corresponds to the view of the scene from a reference frame you have to set.

Parameters
I: The image where the external view is displayed.
Warning
: The objects are displayed thanks to overlays. The image I is not modified.

Definition at line 809 of file vpWireFrameSimulator.cpp.

References camColor, camera, cameraTrajectory, camMf, camMf2, camTrajColor, camTrajType, cMo, CT_LINE, CT_POINT, CUBE, curColor, vpDisplay::display(), display_scene(), displayCamera, displayCameraTrajectory, displayImageSimulator, vpDisplay::displayLine(), displayObject, vpDisplay::displayPoint(), extCamChanged, f2Mf, fMc, fMo, fMoList, vpImageSimulator::getImage(), getInternalCameraParameters(), vpMath::maximum(), vpMath::minimum(), navigation(), nbrPtLimit, objectImage, poseList, projectCameraTrajectory(), px_ext, py_ext, rotz, scene, vpImageSimulator::setCameraPosition(), SPHERE, and thickness_.

◆ getExternalImage() [4/4]

void vpWireFrameSimulator::getExternalImage ( vpImage< vpRGBa > & I,
const vpHomogeneousMatrix & cam_Mf )
inherited

Get an external view. The point of view is set thanks to the pose between the camera camMf and the fixed world frame.

Parameters
I: The image where the external view is displayed.
cam_Mf: The pose between the point of view and the fixed world frame.
Warning
: The objects are displayed thanks to overlays. The image I is not modified.

Definition at line 943 of file vpWireFrameSimulator.cpp.

References camColor, camera, cMo, curColor, vpDisplay::display(), display_scene(), displayCamera, displayImageSimulator, displayObject, fMo, vpImageSimulator::getImage(), getInternalCameraParameters(), vpHomogeneousMatrix::inverse(), vpMath::maximum(), vpMath::minimum(), objectImage, px_ext, py_ext, rotz, scene, and vpImageSimulator::setCameraPosition().

◆ getInternalCameraParameters() [1/2]

vpCameraParameters vpWireFrameSimulator::getInternalCameraParameters ( const vpImage< unsigned char > & I) const
inlineinherited

Get the parameters of the virtual internal camera.

Parameters
I: The image used to display the view of the camera.
Returns
It returns the camera parameters.

Definition at line 374 of file vpWireFrameSimulator.h.

References vpMath::maximum(), vpMath::minimum(), px_int, and py_int.

Referenced by getExternalImage(), getExternalImage(), getExternalImage(), getExternalImage(), getInternalImage(), and getInternalImage().

◆ getInternalCameraParameters() [2/2]

vpCameraParameters vpWireFrameSimulator::getInternalCameraParameters ( const vpImage< vpRGBa > & I) const
inlineinherited

Get the parameters of the virtual internal camera.

Parameters
I: The image used to display the view of the camera.
Returns
It returns the camera parameters.

Definition at line 393 of file vpWireFrameSimulator.h.

References vpMath::maximum(), vpMath::minimum(), px_int, and py_int.

◆ getInternalImage() [1/2]

void vpWireFrameSimulator::getInternalImage ( vpImage< unsigned char > & I)
inherited

◆ getInternalImage() [2/2]

void vpWireFrameSimulator::getInternalImage ( vpImage< vpRGBa > & I)
inherited

Get the internal view ie the view of the camera.

Parameters
I: The image where the internal view is displayed.
Warning
: The objects are displayed thanks to overlays. The image I is not modified.

Definition at line 734 of file vpWireFrameSimulator.cpp.

References cdMo, cMo, curColor, D_TOOL, desColor, desiredObject, desiredScene, vpDisplay::display(), display_scene(), displayDesiredObject, displayImageSimulator, displayObject, vpImageSimulator::getImage(), getInternalCameraParameters(), vpMath::maximum(), vpMath::minimum(), vpException::notInitialized, objectImage, px_int, py_int, vpColor::red, rotz, scene, sceneInitialized, and vpImageSimulator::setCameraPosition().

◆ getInternalView() [1/2]

void vpRobotWireFrameSimulator::getInternalView ( vpImage< unsigned char > & I_)

◆ getInternalView() [2/2]

◆ getMaxRotationVelocity()

◆ getMaxTranslationVelocity()

◆ getNDof()

int vpRobot::getNDof ( ) const
inlineinherited

Return robot degrees of freedom number.

Definition at line 142 of file vpRobot.h.

References nDof.

◆ getPosition() [1/2]

vpColVector vpRobot::getPosition ( const vpRobot::vpControlFrameType frame)
inherited

Return the current robot position in the specified frame.

Definition at line 215 of file vpRobot.cpp.

References getPosition().

◆ getPosition() [2/2]

virtual void vpRobot::getPosition ( const vpRobot::vpControlFrameType frame,
vpColVector & position )
pure virtualinherited

◆ getRobotFrame()

vpControlFrameType vpRobot::getRobotFrame ( void ) const
inlineprotectedinherited

◆ getRobotState()

virtual vpRobotStateType vpRobot::getRobotState ( void ) const
inlinevirtualinherited

Definition at line 152 of file vpRobot.h.

Referenced by vpRobotBiclops::getPosition(), vpRobotBiclops::getVelocity(), vpRobotAfma6::setPosition(), vpRobotBiclops::setPosition(), vpRobotCamera::setPosition(), vpRobotFranka::setPosition(), vpRobotPololuPtu::setPosition(), vpRobotPtu46::setPosition(), vpRobotUniversalRobots::setPosition(), vpRobotViper650::setPosition(), vpRobotViper850::setPosition(), vpSimulatorAfma6::setPosition(), vpSimulatorCamera::setPosition(), vpSimulatorViper850::setPosition(), vpRobotAfma6::setRobotState(), vpRobotBiclops::setRobotState(), vpRobotFlirPtu::setRobotState(), vpRobotFranka::setRobotState(), vpRobotPololuPtu::setRobotState(), vpRobotPtu46::setRobotState(), vpRobotUniversalRobots::setRobotState(), vpRobotViper650::setRobotState(), vpRobotViper850::setRobotState(), vpSimulatorAfma6::setRobotState(), vpSimulatorViper850::setRobotState(), vpRobotAfma6::setVelocity(), vpRobotBiclops::setVelocity(), vpRobotCamera::setVelocity(), vpRobotFlirPtu::setVelocity(), vpRobotFranka::setVelocity(), vpRobotKinova::setVelocity(), vpRobotPololuPtu::setVelocity(), vpRobotPtu46::setVelocity(), vpRobotTemplate::setVelocity(), vpRobotUniversalRobots::setVelocity(), vpRobotViper650::setVelocity(), vpRobotViper850::setVelocity(), vpSimulatorAfma6::setVelocity(), vpSimulatorCamera::setVelocity(), vpSimulatorPioneer::setVelocity(), vpSimulatorPioneerPan::setVelocity(), vpSimulatorViper850::setVelocity(), vpRobotFlirPtu::stopMotion(), vpRobotFranka::stopMotion(), vpRobotViper650::stopMotion(), vpRobotViper850::stopMotion(), vpSimulatorAfma6::stopMotion(), and vpSimulatorViper850::stopMotion().

◆ getSamplingTime()

double vpRobotSimulator::getSamplingTime ( ) const
inlineinherited

Return the sampling time.

Returns
Sampling time in second used to compute the robot displacement from the velocity applied to the robot during this time.

Definition at line 73 of file vpRobotSimulator.h.

Referenced by vpSimulatorAfma6::updateArticularPosition(), and vpSimulatorViper850::updateArticularPosition().

◆ init()

◆ initArms()

virtual void vpRobotWireFrameSimulator::initArms ( )
protectedpure virtual

Implemented in vpSimulatorAfma6, and vpSimulatorViper850.

◆ initDisplay()

void vpRobotWireFrameSimulator::initDisplay ( )
inlineprotected

Definition at line 346 of file vpRobotWireFrameSimulator.h.

◆ initScene() [1/8]

void vpRobotWireFrameSimulator::initScene ( const char * obj)

Initialize the display. It enables to choose the type of scene which will be used to display the object at the current position. The object at the desired position is not displayed.

Here you can use the scene you want. You have to set the path to the .bnd file which is a scene file, or the vrml file.

Parameters
obj: Path to the scene file you want to use.

Definition at line 179 of file vpRobotWireFrameSimulator.cpp.

References vpWireFrameSimulator::camera, vpWireFrameSimulator::displayCamera, and vpWireFrameSimulator::initScene().

◆ initScene() [2/8]

void vpRobotWireFrameSimulator::initScene ( const char * obj,
const char * desired_object )

Initialize the display. It enables to choose the type of scene which will be used to display the object at the current position and at the desired position.

Here you can use the scene you want. You have to set the path to the .bnd file which is a scene file. It is also possible to use a vrml (.wrl) file.

Parameters
obj: Path to the scene file you want to use.
desired_object: Path to the scene file you want to use.

Definition at line 133 of file vpRobotWireFrameSimulator.cpp.

References vpWireFrameSimulator::camera, vpWireFrameSimulator::displayCamera, and vpWireFrameSimulator::initScene().

◆ initScene() [3/8]

void vpRobotWireFrameSimulator::initScene ( const vpSceneObject & obj)

Initialize the display. It enables to choose the type of object which will be used to display the object at the current position. The object at the desired position is not displayed.

It exists several default scenes you can use. Use the vpSceneObject attributes to use them in this method. The corresponding files are stored in the "data" folder which is in the ViSP build directory.

Parameters
obj: Type of scene used to display the object at the current position.

Definition at line 157 of file vpRobotWireFrameSimulator.cpp.

References vpWireFrameSimulator::camera, vpWireFrameSimulator::displayCamera, and vpWireFrameSimulator::initScene().

◆ initScene() [4/8]

void vpRobotWireFrameSimulator::initScene ( const vpSceneObject & obj,
const vpSceneDesiredObject & desired_object )

Initialize the display. It enables to choose the type of scene which will be used to display the object at the current position and at the desired position.

It exists several default scenes you can use. Use the vpSceneObject and the vpSceneDesiredObject attributes to use them in this method. The corresponding files are stored in the "data" folder which is in the ViSP build directory.

Parameters
obj: Type of scene used to display the object at the current position.
desired_object: Type of scene used to display the object at the desired pose (in the internal view).

Definition at line 108 of file vpRobotWireFrameSimulator.cpp.

References vpWireFrameSimulator::camera, vpWireFrameSimulator::displayCamera, vpWireFrameSimulator::initScene(), and m_mutex_scene.

◆ initScene() [5/8]

void vpWireFrameSimulator::initScene ( const char * obj,
const char * desired_object,
const std::list< vpImageSimulator > & imObj )
inherited

Initialize the simulator. It enables to choose the type of scene which will be used to display the object at the current position and at the desired position.

Here you can use the scene you want. You have to set the path to a .bnd or a .wrl file which is a 3D model file.

It is also possible to add a list of vpImageSimulator instances. They will be automatically projected into the image. The position of the four corners have to be given in the object frame.

Parameters
obj: Path to the scene file you want to use.
desired_object: Path to the scene file you want to use.
imObj: A list of vpImageSimulator instances.

Definition at line 503 of file vpWireFrameSimulator.cpp.

References displayImageSimulator, initScene(), and objectImage.

◆ initScene() [6/8]

void vpWireFrameSimulator::initScene ( const char * obj,
const std::list< vpImageSimulator > & imObj )
inherited

Initialize the simulator. It enables to choose the type of scene which will be used to display the object at the current position. The object at the desired position is not displayed.

Here you can use the scene you want. You have to set the path to a .bnd or a .wrl file which is a 3D model file.

It is also possible to add a list of vpImageSimulator instances. They will be automatically projected into the image. The position of the four corners have to be given in the object frame.

Parameters
obj: Path to the scene file you want to use.
imObj: A list of vpImageSimulator instances.

Definition at line 719 of file vpWireFrameSimulator.cpp.

References displayImageSimulator, initScene(), and objectImage.

◆ initScene() [7/8]

void vpWireFrameSimulator::initScene ( const vpSceneObject & obj,
const std::list< vpImageSimulator > & imObj )
inherited

Initialize the simulator. It enables to choose the type of object which will be used to display the object at the current position. The object at the desired position is not displayed.

It exists several default scenes you can use. Use the vpSceneObject attributes to use them in this method. The corresponding files are stored in the "data" folder which is in the ViSP build directory.

It is also possible to add a list of vpImageSimulator instances. They will be automatically projected into the image. The position of the four corners have to be given in the object frame.

Parameters
obj: Type of scene used to display the object at the current position.
imObj: A list of vpImageSimulator instances.

Definition at line 645 of file vpWireFrameSimulator.cpp.

References displayImageSimulator, initScene(), and objectImage.

◆ initScene() [8/8]

void vpWireFrameSimulator::initScene ( const vpSceneObject & obj,
const vpSceneDesiredObject & desired_object,
const std::list< vpImageSimulator > & imObj )
inherited

Initialize the simulator. It enables to choose the type of scene which will be used to display the object at the current position and at the desired position.

It exists several default scenes you can use. Use the vpSceneObject and the vpSceneDesiredObject attributes to use them in this method. The corresponding files are stored in the "data" folder which is in the ViSP build directory.

It is also possible to add a list of vpImageSimulator instances. They will be automatically projected into the image. The position of the four corners have to be given in the object frame.

Parameters
obj: Type of scene used to display the object at the current position.
desired_object: Type of scene used to display the object at the desired pose (in the internal view).
imObj: A list of vpImageSimulator instances.

Definition at line 410 of file vpWireFrameSimulator.cpp.

References displayImageSimulator, initScene(), and objectImage.

◆ isInJointLimit()

virtual int vpRobotWireFrameSimulator::isInJointLimit ( )
protectedpure virtual

Method used to check if the robot reached a joint limit.

Implemented in vpSimulatorAfma6, and vpSimulatorViper850.

◆ launcher()

void vpRobotWireFrameSimulator::launcher ( vpRobotWireFrameSimulator & simulator)
inlinestaticprotected

◆ navigation() [1/2]

◆ navigation() [2/2]

◆ projectCameraTrajectory() [1/4]

vpImagePoint vpWireFrameSimulator::projectCameraTrajectory ( const vpImage< unsigned char > & I,
const vpHomogeneousMatrix & cMo_,
const vpHomogeneousMatrix & fMo_ )
protectedinherited

◆ projectCameraTrajectory() [2/4]

vpImagePoint vpWireFrameSimulator::projectCameraTrajectory ( const vpImage< unsigned char > & I,
const vpHomogeneousMatrix & cMo_,
const vpHomogeneousMatrix & fMo_,
const vpHomogeneousMatrix & cMf )
protectedinherited

◆ projectCameraTrajectory() [3/4]

vpImagePoint vpWireFrameSimulator::projectCameraTrajectory ( const vpImage< vpRGBa > & I,
const vpHomogeneousMatrix & cMo_,
const vpHomogeneousMatrix & fMo_ )
protectedinherited

◆ projectCameraTrajectory() [4/4]

vpImagePoint vpWireFrameSimulator::projectCameraTrajectory ( const vpImage< vpRGBa > & I,
const vpHomogeneousMatrix & cMo_,
const vpHomogeneousMatrix & fMo_,
const vpHomogeneousMatrix & cMf )
protectedinherited

◆ saturateVelocities()

vpColVector vpRobot::saturateVelocities ( const vpColVector & v_in,
const vpColVector & v_max,
bool verbose = false )
staticinherited

Saturate velocities.

Parameters
v_in: Vector of input velocities to saturate. Translation velocities should be expressed in m/s while rotation velocities in rad/s.
v_max: Vector of maximal allowed velocities. Maximal translation velocities should be expressed in m/s while maximal rotation velocities in rad/s.
verbose: Print a message indicating which axis causes the saturation.
Returns
Saturated velocities.
Exceptions
vpRobotException::dimensionError: If the input vectors have different dimensions.

The code below shows how to use this static method in order to saturate a velocity skew vector.

#include <iostream>
#include <visp3/robot/vpRobot.h>
#ifdef ENABLE_VISP_NAMESPACE
using namespace VISP_NAMESPACE_NAME;
#endif
int main()
{
// Set a velocity skew vector
v[0] = 0.1; // vx in m/s
v[1] = 0.2; // vy
v[2] = 0.3; // vz
v[3] = vpMath::rad(10); // wx in rad/s
v[4] = vpMath::rad(-10); // wy
v[5] = vpMath::rad(20); // wz
// Set the maximal allowed velocities
vpColVector v_max(6);
for (int i=0; i<3; i++)
v_max[i] = 0.3; // in translation (m/s)
for (int i=3; i<6; i++)
v_max[i] = vpMath::rad(10); // in rotation (rad/s)
// Compute the saturated velocity skew vector
vpColVector v_sat = vpRobot::saturateVelocities(v, v_max, true);
std::cout << "v : " << v.t() << std::endl;
std::cout << "v max: " << v_max.t() << std::endl;
std::cout << "v sat: " << v_sat.t() << std::endl;
return 0;
}
Implementation of column vector and the associated operations.
vpRowVector t() const
static double rad(double deg)
Definition vpMath.h:129
static vpColVector saturateVelocities(const vpColVector &v_in, const vpColVector &v_max, bool verbose=false)
Definition vpRobot.cpp:162

Definition at line 162 of file vpRobot.cpp.

References vpException::dimensionError, and vpArray2D< Type >::size().

Referenced by vpRobotAfma6::setVelocity(), vpRobotCamera::setVelocity(), vpRobotFlirPtu::setVelocity(), vpRobotFranka::setVelocity(), vpRobotKinova::setVelocity(), vpRobotPioneer::setVelocity(), vpRobotTemplate::setVelocity(), vpRobotUniversalRobots::setVelocity(), vpRobotViper650::setVelocity(), vpRobotViper850::setVelocity(), vpSimulatorCamera::setVelocity(), vpSimulatorPioneer::setVelocity(), and vpSimulatorPioneerPan::setVelocity().

◆ set_artCoord()

◆ set_artVel()

◆ set_displayBusy()

void vpRobotWireFrameSimulator::set_displayBusy ( const bool & status)
inlineprotected

◆ set_fMo()

void vpRobotWireFrameSimulator::set_fMo ( const vpHomogeneousMatrix & fMo_)
inline

Set the pose between the object and the fixed world frame.

Parameters
fMo_: The pose between the object and the fixed world frame.

Definition at line 319 of file vpRobotWireFrameSimulator.h.

References vpWireFrameSimulator::fMo.

◆ set_velocity()

◆ setCameraColor()

void vpRobotWireFrameSimulator::setCameraColor ( const vpColor & col)
inline

Set the color used to display the camera in the external view.

Parameters
col: The desired color.

Definition at line 221 of file vpRobotWireFrameSimulator.h.

References vpWireFrameSimulator::camColor.

◆ setCameraPositionRelObj()

void vpWireFrameSimulator::setCameraPositionRelObj ( const vpHomogeneousMatrix & cMo_)
inlineinherited

Set the transformation between the camera frame and the object frame.

Parameters
cMo_: The pose of the object in the camera frame.
Examples
servoSimu4Points.cpp, servoSimuCylinder.cpp, servoSimuSphere.cpp, tutorial-ibvs-4pts-wireframe-camera.cpp, and wireframeSimulator.cpp.

Definition at line 467 of file vpWireFrameSimulator.h.

References fMc, fMo, vpHomogeneousMatrix::inverse(), and rotz.

◆ setCameraPositionRelWorld()

void vpWireFrameSimulator::setCameraPositionRelWorld ( const vpHomogeneousMatrix & fMc_)
inlineinherited

Set the position of the the world reference frame relative to the camera.

Parameters
fMc_: The pose of the camera.

Definition at line 479 of file vpWireFrameSimulator.h.

References cMo, fMo, vpHomogeneousMatrix::inverse(), and rotz.

◆ setCameraSizeFactor()

void vpWireFrameSimulator::setCameraSizeFactor ( float factor)
inlineinherited

Set the parameter which enables to choose the size of the main camera in the external camera views. By default this parameter is set to 1.

Parameters
factor: The ration for the camera size.

Definition at line 491 of file vpWireFrameSimulator.h.

References cameraFactor.

◆ setCameraTrajectoryColor()

void vpWireFrameSimulator::setCameraTrajectoryColor ( const vpColor & col)
inlineinherited

Set the color used to display the camera trajectory in the external view.

Parameters
col: The desired color.

Definition at line 499 of file vpWireFrameSimulator.h.

References camTrajColor.

◆ setCameraTrajectoryDisplayType()

void vpWireFrameSimulator::setCameraTrajectoryDisplayType ( const vpCameraTrajectoryDisplayType & camTraj_type)
inlineinherited

Set the way to display the history of the main camera trajectory in the main external view. The choice is given between displaying lines and points.

Parameters
camTraj_type: The chosen way to display the camera trajectory.

Definition at line 508 of file vpWireFrameSimulator.h.

◆ setConstantSamplingTimeMode()

void vpRobotWireFrameSimulator::setConstantSamplingTimeMode ( const bool _constantSamplingTimeMode)
inline

Set the flag used to force the sampling time in the thread computing the robot's displacement to a constant value; see setSamplingTime(). It may be useful if the main thread (computing the features) is very time consuming. False by default.

Parameters
_constantSamplingTimeMode: The new value of the constantSamplingTimeMode flag.

Definition at line 232 of file vpRobotWireFrameSimulator.h.

References constantSamplingTimeMode.

◆ setCurrentViewColor()

void vpRobotWireFrameSimulator::setCurrentViewColor ( const vpColor & col)
inline

Set the color used to display the object at the current position in the robot's camera view.

Parameters
col: The desired color.

Definition at line 243 of file vpRobotWireFrameSimulator.h.

References vpWireFrameSimulator::curColor.

◆ setDesiredCameraPosition()

void vpRobotWireFrameSimulator::setDesiredCameraPosition ( const vpHomogeneousMatrix & cdMo_)
inline

Set the desired position of the robot's camera relative to the object.

Parameters
cdMo_: The desired pose of the camera.

Definition at line 258 of file vpRobotWireFrameSimulator.h.

References vpWireFrameSimulator::setDesiredCameraPosition().

◆ setDesiredViewColor()

void vpRobotWireFrameSimulator::setDesiredViewColor ( const vpColor & col)
inline

Set the color used to display the object at the desired position in the robot's camera view.

Parameters
col: The desired color.

Definition at line 251 of file vpRobotWireFrameSimulator.h.

References vpWireFrameSimulator::desColor.

◆ setDisplayCameraTrajectory()

void vpWireFrameSimulator::setDisplayCameraTrajectory ( const bool & do_display)
inlineinherited

Enable or disable the displaying of the camera trajectory in the main external camera view.

By default the trajectory is displayed.

Parameters
do_display: Set to true to display the camera trajectory.

Definition at line 539 of file vpWireFrameSimulator.h.

◆ setDisplayRobotType()

void vpRobotWireFrameSimulator::setDisplayRobotType ( const vpDisplayRobotType dispType)
inline

Set the way to draw the robot. Depending on what you choose you can display a 3D wireframe model or a set of lines linking the frames used to compute the geometrical model.

Parameters
dispType: Type of display. Can be MODEL_3D or MODEL_DH.

Definition at line 270 of file vpRobotWireFrameSimulator.h.

References displayType.

◆ setExternalCameraParameters()

void vpWireFrameSimulator::setExternalCameraParameters ( const vpCameraParameters & cam)
inlineinherited

Set the internal camera parameters.

Parameters
cam: The desired camera parameters.
Examples
servoSimu4Points.cpp, servoSimuCylinder.cpp, servoSimuSphere.cpp, tutorial-ibvs-4pts-wireframe-camera.cpp, and wireframeSimulator.cpp.

Definition at line 546 of file vpWireFrameSimulator.h.

References px_ext, and py_ext.

Referenced by vpSimulatorAfma6::initDisplay(), and vpSimulatorViper850::initDisplay().

◆ setExternalCameraPosition()

void vpRobotWireFrameSimulator::setExternalCameraPosition ( const vpHomogeneousMatrix & camMf_)
inline

Set the external camera point of view.

Parameters
camMf_: The pose of the external camera relative to the world reference frame.

Definition at line 277 of file vpRobotWireFrameSimulator.h.

References vpWireFrameSimulator::setExternalCameraPosition().

Referenced by vpSimulatorAfma6::initDisplay(), and vpSimulatorViper850::initDisplay().

◆ setGraphicsThickness()

void vpRobotWireFrameSimulator::setGraphicsThickness ( unsigned int thickness)
inline

Specify the thickness of the graphics drawings.

Definition at line 284 of file vpRobotWireFrameSimulator.h.

References vpWireFrameSimulator::thickness_.

◆ setInternalCameraParameters()

void vpWireFrameSimulator::setInternalCameraParameters ( const vpCameraParameters & cam)
inlineinherited

Set the internal camera parameters.

Parameters
cam: The desired camera parameters.
Examples
servoSimu4Points.cpp, servoSimuCylinder.cpp, servoSimuSphere.cpp, tutorial-ibvs-4pts-wireframe-camera.cpp, and wireframeSimulator.cpp.

Definition at line 577 of file vpWireFrameSimulator.h.

References px_int, and py_int.

◆ setMaxRotationVelocity()

void vpRobot::setMaxRotationVelocity ( double w_max)
inherited

Set the maximal rotation velocity that can be sent to the robot during a velocity control.

Parameters
w_max: Maximum rotational velocity expressed in rad/s.
Examples
servoMomentPoints.cpp.

Definition at line 259 of file vpRobot.cpp.

References maxRotationVelocity.

Referenced by init(), vpRobotViper650::setMaxRotationVelocity(), vpRobotViper850::setMaxRotationVelocity(), and vpSimulatorAfma6::setPosition().

◆ setMaxTranslationVelocity()

void vpRobot::setMaxTranslationVelocity ( double v_max)
inherited

Set the maximal translation velocity that can be sent to the robot during a velocity control.

Parameters
v_max: Maximum translation velocity expressed in m/s.
Examples
servoMomentPoints.cpp.

Definition at line 238 of file vpRobot.cpp.

References maxTranslationVelocity.

Referenced by init(), and vpSimulatorAfma6::setPosition().

◆ setNbPtTrajectory()

void vpWireFrameSimulator::setNbPtTrajectory ( unsigned int nbPt)
inlineinherited

Set the maximum number of main camera's positions which are stored. Those position can be displayed in the external camera field of view. By default this parameter is set to 1000.

Parameters
nbPt: The desired number of position which are saved.

Definition at line 590 of file vpWireFrameSimulator.h.

References nbrPtLimit.

◆ setPosition()

virtual void vpRobot::setPosition ( const vpRobot::vpControlFrameType frame,
const vpColVector & q )
pure virtualinherited

◆ setRobotFrame()

◆ setRobotState()

◆ setSamplingTime()

void vpRobotWireFrameSimulator::setSamplingTime ( const double & delta_t)
inlinevirtual

Set the sampling time.

Parameters
delta_t: Sampling time in second used to compute the robot displacement from the velocity applied to the robot during this time.

Since the wireframe simulator is threaded, the sampling time is set to vpTime::getMinTimeForUsleepCall() / 1000 seconds.

Reimplemented from vpRobotSimulator.

Definition at line 295 of file vpRobotWireFrameSimulator.h.

References vpRobotSimulator::delta_t_, and vpTime::getMinTimeForUsleepCall().

Referenced by vpRobotWireFrameSimulator(), and vpRobotWireFrameSimulator().

◆ setSingularityManagement()

void vpRobotWireFrameSimulator::setSingularityManagement ( bool sm)
inline

Set the parameter which enable or disable the singularity management.

Definition at line 307 of file vpRobotWireFrameSimulator.h.

References singularityManagement.

◆ setVelocity()

virtual void vpRobot::setVelocity ( const vpRobot::vpControlFrameType frame,
const vpColVector & vel )
pure virtualinherited

◆ setVerbose()

void vpRobotWireFrameSimulator::setVerbose ( bool verbose)
inline

Activates extra printings when the robot reaches joint limits...

Definition at line 312 of file vpRobotWireFrameSimulator.h.

References vpRobot::verbose_.

◆ updateArticularPosition()

virtual void vpRobotWireFrameSimulator::updateArticularPosition ( )
protectedpure virtual

Method launched by the thread to compute the position of the robot in the articular frame.

Implemented in vpSimulatorAfma6, and vpSimulatorViper850.

Member Data Documentation

◆ areJointLimitsAvailable

int vpRobot::areJointLimitsAvailable
protectedinherited

Definition at line 111 of file vpRobot.h.

Referenced by operator=(), vpRobot(), and vpRobot().

◆ artCoord

vpColVector vpRobotWireFrameSimulator::artCoord
protected

◆ artVel

vpColVector vpRobotWireFrameSimulator::artVel
protected

◆ blocked

bool vpWireFrameSimulator::blocked
protectedinherited

Definition at line 265 of file vpWireFrameSimulator.h.

Referenced by navigation(), navigation(), and vpWireFrameSimulator().

◆ blockedr

bool vpWireFrameSimulator::blockedr
protectedinherited

Definition at line 262 of file vpWireFrameSimulator.h.

Referenced by navigation(), navigation(), and vpWireFrameSimulator().

◆ blockedt

bool vpWireFrameSimulator::blockedt
protectedinherited

Definition at line 264 of file vpWireFrameSimulator.h.

Referenced by navigation(), navigation(), and vpWireFrameSimulator().

◆ blockedz

bool vpWireFrameSimulator::blockedz
protectedinherited

Definition at line 263 of file vpWireFrameSimulator.h.

Referenced by navigation(), navigation(), and vpWireFrameSimulator().

◆ camColor

◆ camera

◆ cameraFactor

float vpWireFrameSimulator::cameraFactor
protectedinherited

◆ cameraParam

◆ cameraTrajectory

std::list<vpImagePoint> vpWireFrameSimulator::cameraTrajectory
protectedinherited

◆ camMf

◆ camMf2

◆ camTrajColor

vpColor vpWireFrameSimulator::camTrajColor
protectedinherited

◆ camTrajType

vpCameraTrajectoryDisplayType vpWireFrameSimulator::camTrajType
protectedinherited

◆ cdMo

◆ cMo

◆ constantSamplingTimeMode

bool vpRobotWireFrameSimulator::constantSamplingTimeMode
protected

Flag used to force the sampling time in the thread computing the robot's displacement to a constant value (samplingTime). It may be useful if the main thread (computing the features) is very time consuming. False by default.

Definition at line 158 of file vpRobotWireFrameSimulator.h.

Referenced by setConstantSamplingTimeMode(), vpSimulatorAfma6::updateArticularPosition(), vpSimulatorViper850::updateArticularPosition(), vpRobotWireFrameSimulator(), and vpRobotWireFrameSimulator().

◆ curColor

◆ delta_t_

◆ desColor

◆ desiredObject

◆ desiredScene

◆ display

vpDisplayX vpRobotWireFrameSimulator::display
protected

◆ displayAllowed

◆ displayBusy

bool vpRobotWireFrameSimulator::displayBusy
protected

◆ displayCamera

◆ displayCameraTrajectory

bool vpWireFrameSimulator::displayCameraTrajectory
protectedinherited

◆ displayDesiredObject

◆ displayImageSimulator

◆ displayObject

◆ displayType

◆ eJe

◆ eJeAvailable

int vpRobot::eJeAvailable
protectedinherited

is the robot Jacobian expressed in the end-effector frame available

Definition at line 105 of file vpRobot.h.

Referenced by operator=(), vpRobot(), and vpRobot().

◆ extCamChanged

bool vpWireFrameSimulator::extCamChanged
protectedinherited

◆ f2Mf

◆ fJe

◆ fJeAvailable

int vpRobot::fJeAvailable
protectedinherited

is the robot Jacobian expressed in the robot reference frame available

Definition at line 109 of file vpRobot.h.

Referenced by operator=(), vpRobot(), and vpRobot().

◆ fMc

vpHomogeneousMatrix vpWireFrameSimulator::fMc
protectedinherited

◆ fMi

vpHomogeneousMatrix* vpRobotWireFrameSimulator::fMi
protected

Table containing all the homogeneous matrices between the reference frame of the robot and the frames you used to compute the Denavit-Hartenberg representation

If you use a camera at the end of the effector, the last homogeneous matrix has to be the one between the reference frame and the camera frame (fMc)

Definition at line 103 of file vpRobotWireFrameSimulator.h.

Referenced by vpSimulatorAfma6::compute_fMi(), vpSimulatorViper850::compute_fMi(), vpSimulatorAfma6::get_fMi(), vpSimulatorViper850::get_fMi(), vpSimulatorAfma6::init(), vpSimulatorViper850::init(), vpSimulatorAfma6::updateArticularPosition(), vpSimulatorViper850::updateArticularPosition(), vpRobotWireFrameSimulator(), vpRobotWireFrameSimulator(), vpSimulatorAfma6::~vpSimulatorAfma6(), and vpSimulatorViper850::~vpSimulatorViper850().

◆ fMo

◆ fMoList

std::list<vpHomogeneousMatrix> vpWireFrameSimulator::fMoList
protectedinherited

◆ I

◆ jointLimit

◆ jointLimitArt

unsigned int vpRobotWireFrameSimulator::jointLimitArt
protected

◆ m_mutex_artCoord

std::mutex vpRobotWireFrameSimulator::m_mutex_artCoord
protected

◆ m_mutex_artVel

std::mutex vpRobotWireFrameSimulator::m_mutex_artVel
protected

◆ m_mutex_display

std::mutex vpRobotWireFrameSimulator::m_mutex_display
protected

◆ m_mutex_eMc

◆ m_mutex_fMi

◆ m_mutex_frame

◆ m_mutex_robotStop

◆ m_mutex_scene

◆ m_mutex_setVelocityCalled

◆ m_mutex_velocity

std::mutex vpRobotWireFrameSimulator::m_mutex_velocity
protected

◆ m_thread

◆ maxRotationVelocity

◆ maxRotationVelocityDefault

const double vpRobot::maxRotationVelocityDefault = 0.7
staticprotectedinherited

◆ maxTranslationVelocity

double vpRobot::maxTranslationVelocity
protectedinherited

◆ maxTranslationVelocityDefault

BEGIN_VISP_NAMESPACE const double vpRobot::maxTranslationVelocityDefault = 0.2
staticprotectedinherited

◆ nbrPtLimit

unsigned int vpWireFrameSimulator::nbrPtLimit
protectedinherited

◆ nDof

◆ object

vpSceneObject vpWireFrameSimulator::object
protectedinherited

Definition at line 243 of file vpWireFrameSimulator.h.

Referenced by vpWireFrameSimulator().

◆ objectImage

◆ old_iPr

vpImagePoint vpWireFrameSimulator::old_iPr
protectedinherited

Definition at line 259 of file vpWireFrameSimulator.h.

Referenced by navigation(), navigation(), and vpWireFrameSimulator().

◆ old_iPt

vpImagePoint vpWireFrameSimulator::old_iPt
protectedinherited

Definition at line 261 of file vpWireFrameSimulator.h.

Referenced by navigation(), navigation(), and vpWireFrameSimulator().

◆ old_iPz

vpImagePoint vpWireFrameSimulator::old_iPz
protectedinherited

Definition at line 260 of file vpWireFrameSimulator.h.

Referenced by navigation(), navigation(), and vpWireFrameSimulator().

◆ poseList

std::list<vpHomogeneousMatrix> vpWireFrameSimulator::poseList
protectedinherited

◆ px_ext

◆ px_int

◆ py_ext

◆ py_int

◆ qmax

double* vpRobot::qmax
protectedinherited

Definition at line 113 of file vpRobot.h.

Referenced by operator=(), vpRobot(), vpRobot(), and ~vpRobot().

◆ qmin

double* vpRobot::qmin
protectedinherited

Definition at line 112 of file vpRobot.h.

Referenced by operator=(), vpRobot(), vpRobot(), and ~vpRobot().

◆ refMo

vpHomogeneousMatrix vpWireFrameSimulator::refMo
protectedinherited

Definition at line 239 of file vpWireFrameSimulator.h.

Referenced by vpWireFrameSimulator().

◆ robotArms

◆ robotStop

◆ rotz

◆ scene

◆ sceneInitialized

◆ setVelocityCalled

bool vpRobotWireFrameSimulator::setVelocityCalled
protected

◆ singularityManagement

bool vpRobotWireFrameSimulator::singularityManagement
protected

◆ size_fMi

unsigned int vpRobotWireFrameSimulator::size_fMi
protected

◆ tcur

◆ thickness_

◆ tprev

double vpRobotWireFrameSimulator::tprev
protected

◆ velocity

vpColVector vpRobotWireFrameSimulator::velocity
protected

The velocity in the current frame (articular, camera or reference)

Definition at line 110 of file vpRobotWireFrameSimulator.h.

Referenced by get_velocity(), set_velocity(), vpRobotWireFrameSimulator(), and vpRobotWireFrameSimulator().

◆ verbose_