![]() |
Visual Servoing Platform version 3.7.0
|
#include <vpRobotTemplate.h>
Public Types | |
| 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 } |
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) |
Protected Member Functions | |
| void | init () VP_OVERRIDE |
| void | getJointPosition (vpColVector &q) |
| void | setCartVelocity (const vpRobot::vpControlFrameType frame, const vpColVector &v) |
| void | setJointVelocity (const vpColVector &qdot) |
Protected Member Functions Inherited from vpRobot | |
| vpControlFrameType | setRobotFrame (vpRobot::vpControlFrameType newFrame) |
| vpControlFrameType | getRobotFrame (void) const |
Protected Attributes | |
| vpHomogeneousMatrix | m_eMc |
| 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 |
Class that defines a robot just to show which function you must implement.
Definition at line 53 of file vpRobotTemplate.h.
|
inherited |
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. |
|
inherited |
Robot control states.
| vpRobotTemplate::vpRobotTemplate | ( | ) |
Default constructor.
Definition at line 65 of file vpRobotTemplate.cpp.
|
virtual |
Destructor.
Definition at line 70 of file vpRobotTemplate.cpp.
|
virtual |
Get the robot Jacobian expressed in the end-effector frame.
| [out] | eJe_ | : End-effector frame Jacobian. |
Implements vpRobot.
Definition at line 86 of file vpRobotTemplate.cpp.
|
inline |
Return constant transformation between end-effector and tool frame. If your tool is a camera, this transformation is obtained by hand-eye calibration.
Definition at line 66 of file vpRobotTemplate.h.
References m_eMc.
|
virtual |
Get the robot Jacobian expressed in the robot reference frame.
| [out] | fJe_ | : Base (or reference) frame Jacobian. |
Implements vpRobot.
Definition at line 97 of file vpRobotTemplate.cpp.
|
virtual |
Get a displacement.
| [in] | frame | : Considered cartesian frame or joint state. |
| [out] | q | : Displacement in meter and rad. |
Implements vpRobot.
Definition at line 304 of file vpRobotTemplate.cpp.
|
protected |
Get robot joint positions.
| [in] | q | : Joint velocities in rad/s. |
Definition at line 263 of file vpRobotTemplate.cpp.
Referenced by getPosition().
|
inherited |
Get the maximal rotation velocity that can be sent to the robot during a velocity control.
Definition at line 272 of file vpRobot.cpp.
References maxRotationVelocity.
Referenced by vpSimulatorAfma6::computeArticularVelocity(), vpSimulatorViper850::computeArticularVelocity(), vpSimulatorAfma6::findHighestPositioningSpeed(), vpSimulatorViper850::findHighestPositioningSpeed(), getDisplacement(), vpRobotPololuPtu::setPosition(), vpSimulatorAfma6::setPosition(), vpRobotAfma6::setVelocity(), vpRobotCamera::setVelocity(), vpRobotFlirPtu::setVelocity(), vpRobotFranka::setVelocity(), vpRobotKinova::setVelocity(), vpRobotPioneer::setVelocity(), vpRobotPololuPtu::setVelocity(), vpRobotTemplate::setVelocity(), vpRobotUniversalRobots::setVelocity(), vpRobotViper650::setVelocity(), vpRobotViper850::setVelocity(), vpSimulatorAfma6::setVelocity(), vpSimulatorCamera::setVelocity(), vpSimulatorPioneer::setVelocity(), vpSimulatorPioneerPan::setVelocity(), and vpSimulatorViper850::setVelocity().
|
inherited |
Get the maximal translation velocity that can be sent to the robot during a velocity control.
Definition at line 250 of file vpRobot.cpp.
References maxTranslationVelocity.
Referenced by getDisplacement(), vpSimulatorAfma6::setPosition(), vpRobotAfma6::setVelocity(), vpRobotCamera::setVelocity(), vpRobotFlirPtu::setVelocity(), vpRobotFranka::setVelocity(), vpRobotKinova::setVelocity(), vpRobotPioneer::setVelocity(), vpRobotTemplate::setVelocity(), vpRobotUniversalRobots::setVelocity(), vpRobotViper650::setVelocity(), vpRobotViper850::setVelocity(), vpSimulatorAfma6::setVelocity(), vpSimulatorCamera::setVelocity(), vpSimulatorPioneer::setVelocity(), vpSimulatorPioneerPan::setVelocity(), and vpSimulatorViper850::setVelocity().
|
inlineinherited |
|
inherited |
Return the current robot position in the specified frame.
Definition at line 215 of file vpRobot.cpp.
References getPosition().
|
virtual |
Get robot position.
| [in] | frame | : Considered cartesian frame or joint state. |
| [out] | q | : Position of the arm. |
Implements vpRobot.
Definition at line 275 of file vpRobotTemplate.cpp.
References getJointPosition(), and vpRobot::JOINT_STATE.
|
inlineprotectedinherited |
Definition at line 180 of file vpRobot.h.
Referenced by vpSimulatorAfma6::computeArticularVelocity(), and vpSimulatorViper850::computeArticularVelocity().
|
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().
|
protectedvirtual |
Basic initialization.
Implements vpRobot.
Definition at line 50 of file vpRobotTemplate.cpp.
References vpRobot::maxRotationVelocity, vpRobot::maxRotationVelocityDefault, vpRobot::maxTranslationVelocity, vpRobot::maxTranslationVelocityDefault, and vpRobot::nDof.
Referenced by vpRobotTemplate().
|
staticinherited |
Saturate velocities.
| 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. |
| 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.
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().
|
inline |
Set constant transformation between end-effector and tool frame. If your tool is a camera, this transformation is obtained by hand-eye calibration.
Definition at line 75 of file vpRobotTemplate.h.
References m_eMc.
|
protected |
Send to the controller a 6-dim velocity twist vector expressed in a Cartesian frame.
| [in] | frame | : Cartesian control frame (either tool frame or end-effector) in which the velocity v is expressed. Units are m/s for translation and rad/s for rotation velocities. |
| [in] | v | : 6-dim vector that contains the 6 components of the velocity twist to send to the robot. Units are m/s and rad/s. |
Definition at line 120 of file vpRobotTemplate.cpp.
References vpRobot::END_EFFECTOR_FRAME, vpException::fatalError, vpRobot::JOINT_STATE, m_eMc, vpRobot::MIXT_FRAME, vpRobot::REFERENCE_FRAME, and vpRobot::TOOL_FRAME.
Referenced by setVelocity().
|
protected |
Send a joint velocity to the controller.
| [in] | qdot | : Joint velocities vector. Units are rad/s for a robot arm. |
Definition at line 182 of file vpRobotTemplate.cpp.
Referenced by setVelocity().
|
inherited |
Set the maximal rotation velocity that can be sent to the robot during a velocity control.
| w_max | : Maximum rotational velocity expressed in rad/s. |
Definition at line 259 of file vpRobot.cpp.
References maxRotationVelocity.
Referenced by init(), vpRobotViper650::setMaxRotationVelocity(), vpRobotViper850::setMaxRotationVelocity(), and vpSimulatorAfma6::setPosition().
|
inherited |
Set the maximal translation velocity that can be sent to the robot during a velocity control.
| v_max | : Maximum translation velocity expressed in m/s. |
Definition at line 238 of file vpRobot.cpp.
References maxTranslationVelocity.
Referenced by init(), and vpSimulatorAfma6::setPosition().
|
virtual |
Set a position to reach.
| [in] | frame | : Considered cartesian frame or joint state. |
| [in] | q | : Position to reach. |
Implements vpRobot.
Definition at line 291 of file vpRobotTemplate.cpp.
|
protectedinherited |
Definition at line 206 of file vpRobot.cpp.
Referenced by vpSimulatorAfma6::init(), vpSimulatorViper850::init(), vpSimulatorAfma6::setVelocity(), vpSimulatorCamera::setVelocity(), vpSimulatorPioneer::setVelocity(), vpSimulatorPioneerPan::setVelocity(), and vpSimulatorViper850::setVelocity().
|
virtualinherited |
Reimplemented in vpRobotAfma6, vpRobotBiclops, vpRobotFlirPtu, vpRobotFranka, vpRobotPololuPtu, vpRobotPtu46, vpRobotUniversalRobots, vpRobotViper650, vpRobotViper850, vpSimulatorAfma6, and vpSimulatorViper850.
Definition at line 200 of file vpRobot.cpp.
Referenced by setPosition(), vpRobotCamera::setPosition(), vpSimulatorCamera::setPosition(), vpRobotAfma6::setRobotState(), vpRobotBiclops::setRobotState(), vpRobotFlirPtu::setRobotState(), vpRobotFranka::setRobotState(), vpRobotPololuPtu::setRobotState(), vpRobotPtu46::setRobotState(), vpRobotUniversalRobots::setRobotState(), vpRobotViper650::setRobotState(), vpRobotViper850::setRobotState(), vpSimulatorAfma6::setRobotState(), vpSimulatorViper850::setRobotState(), vpRobotCamera::setVelocity(), vpSimulatorCamera::setVelocity(), vpSimulatorPioneer::setVelocity(), vpSimulatorPioneerPan::setVelocity(), vpSimulatorAfma6::stopMotion(), and vpSimulatorViper850::stopMotion().
|
virtual |
Send to the controller a velocity in a given frame.
| [in] | frame | : Control frame in which the velocity vel is expressed. Velocities could be joint velocities, or cartesian velocities. Units are m/s for translation and rad/s for rotation velocities. |
| [in] | vel | : Vector that contains the velocity to apply to the robot. |
Implements vpRobot.
Definition at line 200 of file vpRobotTemplate.cpp.
References vpException::dimensionError, vpRobot::END_EFFECTOR_FRAME, vpRobot::getMaxRotationVelocity(), vpRobot::getMaxTranslationVelocity(), vpRobot::getRobotState(), vpRobot::JOINT_STATE, vpRobot::MIXT_FRAME, vpRobot::nDof, vpRobot::REFERENCE_FRAME, vpRobot::saturateVelocities(), setCartVelocity(), setJointVelocity(), vpArray2D< Type >::size(), vpRobot::STATE_VELOCITY_CONTROL, vpRobot::TOOL_FRAME, and vpRobotException::wrongStateError.
|
inlineinherited |
Definition at line 167 of file vpRobot.h.
References verbose_.
Referenced by vpRobotAfma6::vpRobotAfma6(), vpRobotViper650::vpRobotViper650(), and vpRobotViper850::vpRobotViper850().
|
protectedinherited |
Definition at line 111 of file vpRobot.h.
Referenced by operator=(), vpRobot(), and vpRobot().
|
protectedinherited |
robot Jacobian expressed in the end-effector frame
Definition at line 103 of file vpRobot.h.
Referenced by vpRobotAfma6::get_eJe(), vpRobotBiclops::get_eJe(), vpRobotCamera::get_eJe(), vpRobotFlirPtu::get_eJe(), vpRobotFlirPtu::get_eJe(), vpRobotKinova::get_eJe(), vpRobotPioneer::get_eJe(), vpRobotPololuPtu::get_eJe(), vpRobotPololuPtu::get_eJe(), vpRobotPtu46::get_eJe(), vpRobotViper650::get_eJe(), vpRobotViper850::get_eJe(), vpSimulatorCamera::get_eJe(), operator=(), vpRobot(), and vpRobot().
|
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().
|
protectedinherited |
robot Jacobian expressed in the robot reference frame available
Definition at line 107 of file vpRobot.h.
Referenced by vpRobotAfma6::get_fJe(), vpRobotBiclops::get_fJe(), vpRobotFlirPtu::get_fJe(), vpRobotFlirPtu::get_fJe(), vpRobotKinova::get_fJe(), vpRobotPololuPtu::get_fJe(), vpRobotPololuPtu::get_fJe(), vpRobotPtu46::get_fJe(), vpRobotViper650::get_fJe(), vpRobotViper850::get_fJe(), operator=(), vpRobot(), and vpRobot().
|
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().
|
protected |
Constant transformation between end-effector and tool (or camera) frame.
Definition at line 86 of file vpRobotTemplate.h.
Referenced by get_eMc(), set_eMc(), setCartVelocity(), and vpRobotTemplate().
|
protectedinherited |
Definition at line 97 of file vpRobot.h.
Referenced by getMaxRotationVelocity(), vpRobotFlirPtu::init(), vpRobotKinova::init(), vpRobotTemplate::init(), operator=(), setMaxRotationVelocity(), vpRobotPtu46::setVelocity(), vpRobot(), vpRobot(), vpRobotViper650::vpRobotViper650(), and vpRobotViper850::vpRobotViper850().
|
staticprotectedinherited |
Definition at line 98 of file vpRobot.h.
Referenced by vpRobotFlirPtu::init(), vpRobotKinova::init(), vpRobotTemplate::init(), vpRobot(), and vpRobot().
|
protectedinherited |
Definition at line 95 of file vpRobot.h.
Referenced by getMaxTranslationVelocity(), vpRobotFlirPtu::init(), vpRobotKinova::init(), vpRobotTemplate::init(), operator=(), setMaxTranslationVelocity(), vpRobot(), and vpRobot().
|
staticprotectedinherited |
Definition at line 96 of file vpRobot.h.
Referenced by vpRobotFlirPtu::init(), vpRobotKinova::init(), vpRobotTemplate::init(), vpRobot(), and vpRobot().
|
protectedinherited |
number of degrees of freedom
Definition at line 101 of file vpRobot.h.
Referenced by vpRobotPololuPtu::get_eJe(), vpRobotPololuPtu::get_eJe(), vpRobotPololuPtu::get_fJe(), vpRobotPololuPtu::get_fJe(), vpRobotKinova::getJointPosition(), getNDof(), vpRobotPololuPtu::getPosition(), vpRobotFlirPtu::init(), vpRobotKinova::init(), vpRobotTemplate::init(), vpRobotUniversalRobots::init(), operator=(), vpRobotUniversalRobots::readPosFile(), vpRobotKinova::setDoF(), vpRobotKinova::setJointVelocity(), vpRobotKinova::setPosition(), vpRobotPololuPtu::setPosition(), vpRobotFlirPtu::setVelocity(), vpRobotKinova::setVelocity(), vpRobotPololuPtu::setVelocity(), vpRobotTemplate::setVelocity(), vpRobot(), vpRobot(), and vpRobotPololuPtu::vpRobotPololuPtu().
|
protectedinherited |
Definition at line 113 of file vpRobot.h.
Referenced by operator=(), vpRobot(), vpRobot(), and ~vpRobot().
|
protectedinherited |
Definition at line 112 of file vpRobot.h.
Referenced by operator=(), vpRobot(), vpRobot(), and ~vpRobot().
|
protectedinherited |
Definition at line 115 of file vpRobot.h.
Referenced by vpRobotAfma6::init(), vpRobotViper650::init(), vpRobotViper850::init(), vpSimulatorAfma6::initialiseCameraRelativeToObject(), vpSimulatorViper850::initialiseCameraRelativeToObject(), operator=(), vpSimulatorAfma6::setPosition(), vpSimulatorViper850::setPosition(), setVerbose(), vpRobotWireFrameSimulator::setVerbose(), vpSimulatorAfma6::updateArticularPosition(), vpSimulatorViper850::updateArticularPosition(), vpRobot(), vpRobot(), vpRobotAfma6::vpRobotAfma6(), vpRobotViper650::vpRobotViper650(), and vpRobotViper850::vpRobotViper850().