![]() |
Visual Servoing Platform
version 3.3.0
|
#include <vpViper.h>
Public Member Functions | |
vpViper () | |
virtual | ~vpViper () |
Modelisation of the ADEPT Viper robot.
This robot has six degrees of freedom. The model of the robot is the following:
The non modified Denavit-Hartenberg representation of the robot is given in the table below, where are the variable joint positions.
In this modelisation, different frames have to be considered.
The forward kinematics of the robot is implemented in get_fMw(), get_fMe() and get_fMc().
The robot forward jacobian used to compute the cartesian velocities from joint ones is given and implemented in get_fJw(), get_fJe() and get_eJe().
vpViper::vpViper | ( | ) |
Default constructor.
Definition at line 64 of file vpViper.cpp.
void vpViper::get_cMe | ( | vpHomogeneousMatrix & | cMe | ) | const |
Get the geometric transformation between the camera frame and the end-effector frame. This transformation is constant and correspond to the extrinsic camera parameters estimated by calibration.
cMe | : Transformation between the camera frame and the end-effector frame. |
Definition at line 921 of file vpViper.cpp.
void vpViper::get_cVe | ( | vpVelocityTwistMatrix & | cVe | ) | const |
Get the twist transformation from camera frame to end-effector frame. This transformation allows to compute a velocity expressed in the end-effector frame into the camera frame.
cVe | : Twist transformation ![]() |
Definition at line 937 of file vpViper.cpp.
void vpViper::get_eJe | ( | const vpColVector & | q, |
vpMatrix & | eJe | ||
) | const |
Get the robot jacobian which gives the velocity of the origin of the end-effector frame expressed in end-effector frame.
q | : A six-dimension vector that contains the joint positions of the robot expressed in radians. |
eJe | : Robot jacobian ![]() |
Definition at line 969 of file vpViper.cpp.
void vpViper::get_eMc | ( | vpHomogeneousMatrix & | eMc_ | ) | const |
Get the geometric transformation between the end-effector frame and the camera frame. This transformation is constant and correspond to the extrinsic camera parameters estimated by calibration.
eMc_ | : Transformation between the the end-effector frame and the camera frame. |
Definition at line 893 of file vpViper.cpp.
void vpViper::get_eMs | ( | vpHomogeneousMatrix & | eMs | ) | const |
Get the geometric transformation between the end-effector frame and the force/torque sensor frame. This transformation is constant.
eMs | : Transformation between the the end-effector frame and the force/torque sensor frame. |
Definition at line 904 of file vpViper.cpp.
void vpViper::get_fJe | ( | const vpColVector & | q, |
vpMatrix & | fJe | ||
) | const |
Get the robot jacobian which gives the velocity of the origin of the end-effector frame expressed in the robot reference frame also called fix frame.
q | : A six-dimension vector that contains the joint positions of the robot expressed in radians. |
fJe | : Robot jacobian ![]() |
Definition at line 1158 of file vpViper.cpp.
void vpViper::get_fJw | ( | const vpColVector & | q, |
vpMatrix & | fJw | ||
) | const |
Get the robot jacobian which express the velocity of the origin of the wrist frame in the robot reference frame also called fix frame.
with
q | : A six-dimension vector that contains the joint positions of the robot expressed in radians. |
fJw | : Robot jacobian ![]() |
Definition at line 1053 of file vpViper.cpp.
vpHomogeneousMatrix vpViper::get_fMc | ( | const vpColVector & | q | ) | const |
Compute the forward kinematics (direct geometric model) as an homogeneous matrix.
By forward kinematics we mean here the position and the orientation of the camera relative to the base frame given the joint positions of all the six joints.
This method is the same than getForwardKinematics(const vpColVector & q).
q | : Vector of six joint positions expressed in radians. |
Definition at line 599 of file vpViper.cpp.
void vpViper::get_fMc | ( | const vpColVector & | q, |
vpHomogeneousMatrix & | fMc | ||
) | const |
Compute the forward kinematics (direct geometric model) as an homogeneous matrix.
By forward kinematics we mean here the position and the orientation of the camera relative to the base frame given the six joint positions.
q | : Vector of six joint positions expressed in radians. |
fMc | The homogeneous matrix ![]() |
Definition at line 628 of file vpViper.cpp.
void vpViper::get_fMe | ( | const vpColVector & | q, |
vpHomogeneousMatrix & | fMe | ||
) | const |
Compute the forward kinematics (direct geometric model) as an homogeneous matrix .
By forward kinematics we mean here the position and the orientation of the end effector with respect to the base frame given the motor positions of all the six joints.
with
q | : A 6-dimension vector that contains the 6 joint positions expressed in radians. |
fMe | The homogeneous matrix ![]() |
Note that this transformation can also be computed by considering the wrist frame .
Definition at line 714 of file vpViper.cpp.
void vpViper::get_fMw | ( | const vpColVector & | q, |
vpHomogeneousMatrix & | fMw | ||
) | const |
Compute the transformation between the fix frame and the wrist frame. The wrist frame is located on the intersection of the 3 last rotations.
q | : A 6-dimension vector that contains the 6 joint positions expressed in radians. |
fMw | The homogeneous matrix corresponding to the transformation between the fix frame and the wrist frame (fMw). |
with
Definition at line 809 of file vpViper.cpp.
void vpViper::get_wMe | ( | vpHomogeneousMatrix & | wMe | ) | const |
Return the transformation between the wrist frame and the end-effector. The wrist frame is located on the intersection of the 3 last rotations.
wMe | The homogeneous matrix corresponding to the transformation between the wrist frame and the end-effector frame (wMe). |
Definition at line 873 of file vpViper.cpp.
double vpViper::getCoupl56 | ( | ) | const |
Return the coupling factor between join 5 and joint 6.
This factor should be only useful when motor positions are considered. Since the positions returned by the robot are joint positions which takes into account the coupling factor, it has not to be considered in the modelization of the robot.
Definition at line 1219 of file vpViper.cpp.
vpHomogeneousMatrix vpViper::getForwardKinematics | ( | const vpColVector & | q | ) | const |
Compute the forward kinematics (direct geometric model) as an homogeneous matrix.
By forward kinematics we mean here the position and the orientation of the camera relative to the base frame given the six joint positions.
This method is the same than get_fMc(const vpColVector & q).
q | : A six dimension vector corresponding to the robot joint positions expressed in radians. |
Definition at line 120 of file vpViper.cpp.
unsigned int vpViper::getInverseKinematics | ( | const vpHomogeneousMatrix & | fMc, |
vpColVector & | q, | ||
const bool & | verbose = false |
||
) | const |
Compute the inverse kinematics (inverse geometric model).
By inverse kinematics we mean here the six joint values given the position and the orientation of the camera frame relative to the base frame.
fMc | : Homogeneous matrix ![]() |
q | : In input, a six dimension vector corresponding to the current joint positions expressed in radians. In output, the solution of the inverse kinematics, ie. the joint positions corresponding to ![]() |
verbose | : Add extra printings. |
The code below shows how to compute the inverse geometric model:
Definition at line 562 of file vpViper.cpp.
unsigned int vpViper::getInverseKinematicsWrist | ( | const vpHomogeneousMatrix & | fMw, |
vpColVector & | q, | ||
const bool & | verbose = false |
||
) | const |
Compute the inverse kinematics (inverse geometric model).
By inverse kinematics we mean here the six joint values given the position and the orientation of the camera frame relative to the base frame.
fMw | : Homogeneous matrix ![]() |
q | : In input, a six dimension vector corresponding to the current joint positions expressed in radians. In output, the solution of the inverse kinematics, ie. the joint positions corresponding to ![]() |
verbose | : Add extra printings. |
The code below shows how to compute the inverse geometric model:
Definition at line 221 of file vpViper.cpp.
vpColVector vpViper::getJointMax | ( | ) | const |
Get maximal joint values.
Definition at line 1207 of file vpViper.cpp.
vpColVector vpViper::getJointMin | ( | ) | const |
Get minimal joint values.
Definition at line 1198 of file vpViper.cpp.
|
virtual |
Set the geometric transformation between the end-effector frame and the tool frame (commonly a camera).
eMc_ | : Transformation between the end-effector frame and the tool frame. |
Reimplemented in vpRobotViper850, and vpRobotViper650.
Definition at line 1229 of file vpViper.cpp.
|
virtual |
Set the geometric transformation between the end-effector frame and the tool frame (commonly a camera frame).
etc_ | : Translation between the end-effector frame and the tool frame. |
erc_ | : Rotation between the end-effector frame and the tool frame using the Euler angles in radians with the XYZ convention. |
Reimplemented in vpRobotViper850, and vpRobotViper650.
Definition at line 1247 of file vpViper.cpp.
|
friend |
Print on the output stream os the robot parameters (joint min/max, coupling factor between axis 5 and 6, hand-to-eye constant homogeneous matrix .
os | : Output stream. |
viper | : Robot parameters. |
Definition at line 1264 of file vpViper.cpp.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |