Homepage Demos Overview Downloads Tutorials Reference
Credits

ROBOOP Namespace Reference


Classes

class  Clik
 Handle Closed Loop Inverse Kinematics scheme. More...
class  Config
 Handle configuration files. More...
class  Control_Select
 Select controller class. More...
class  Impedance
 Impedance controller class. More...
class  Resolved_acc
 Resolved rate acceleration controller class. More...
class  Computed_torque_method
 Computer torque method controller class. More...
class  Proportional_Derivative
 Proportional derivative controller class. More...
class  Dynamics
 Dynamics simulation handling class. More...
class  GNUcurve
 Object for one curve. More...
class  Plot2d
 2d plot object. More...
class  IO_matrix_file
 Read and write data at every iterations in a file. More...
class  Plot_file
 Creates a graphic from a data file. More...
class  Quaternion
 Quaternion class definition. More...
class  Link
 Link definitions. More...
class  Robot_basic
 Virtual base robot class. More...
class  Robot
 DH notation robot class. More...
class  mRobot
 Modified DH notation robot class. More...
class  mRobot_min_para
 Modified DH notation and minimal inertial parameters robot class. More...
class  Spl_cubic
 Natural cubic splines class. More...
class  Spl_path
 Cartesian or joint space trajectory. More...
class  Spl_Quaternion
 Cubic quaternions spline. More...
class  Trajectory_Select
 Trajectory class selection. More...

Typedefs

typedef map< Real, ColumnVector,
less< Real > > 
point_map
 Data at control points.
typedef map< Real, Quaternion,
less< Real > > 
quat_map
 Data at control points.

Functions

short set_plot2d (const char *title_graph, const char *x_axis_title, const char *y_axis_title, const char *label, int type, const Matrix &xdata, const Matrix &ydata, int start_y, int end_y)
short set_plot2d (const char *title_graph, const char *x_axis_title, const char *y_axis_title, const vector< char * > label, int type, const Matrix &xdata, const Matrix &ydata, const vector< int > &data_select)
ReturnMatrix trans (const ColumnVector &a)
 Translation.
ReturnMatrix rotx (const Real alpha)
 Rotation around x axis.
ReturnMatrix roty (const Real beta)
 Rotation around x axis.
ReturnMatrix rotz (const Real gamma)
 Rotation around z axis.
ReturnMatrix rotk (const Real theta, const ColumnVector &k)
 Rotation around arbitrary axis.
ReturnMatrix rpy (const ColumnVector &a)
 Roll Pitch Yaw rotation.
ReturnMatrix eulzxz (const ColumnVector &a)
 Euler ZXZ rotation.
ReturnMatrix rotd (const Real theta, const ColumnVector &k1, const ColumnVector &k2)
 Rotation around an arbitrary line.
ReturnMatrix irotk (const Matrix &R)
 Obtain axis from a rotation matrix.
ReturnMatrix irpy (const Matrix &R)
 Obtain Roll, Pitch and Yaw from a rotation matrix.
ReturnMatrix ieulzxz (const Matrix &R)
 Obtain Roll, Pitch and Yaw from a rotation matrix.
ReturnMatrix Omega (const Quaternion &q, const Quaternion &q_dot)
 Return angular velocity from a quaternion and it's time derivative.
short Integ_quat (Quaternion &dquat_present, Quaternion &dquat_past, Quaternion &quat, const Real dt)
 Trapezoidal quaternion integration.
Real Integ_Trap_quat_s (const Quaternion &present, Quaternion &past, const Real dt)
 Trapezoidal quaternion scalar part integration.
ReturnMatrix Integ_Trap_quat_v (const Quaternion &present, Quaternion &past, const Real dt)
 Trapezoidal quaternion vector part integration.
Quaternion Slerp (const Quaternion &q0, const Quaternion &q1, const Real t)
 Spherical Linear Interpolation.
Quaternion Slerp_prime (const Quaternion &q0, const Quaternion &q1, const Real t)
 Spherical Linear Interpolation derivative.
Quaternion Squad (const Quaternion &p, const Quaternion &a, const Quaternion &b, const Quaternion &q, const Real t)
 Spherical Cubic Interpolation.
Quaternion Squad_prime (const Quaternion &p, const Quaternion &a, const Quaternion &b, const Quaternion &q, const Real t)
 Spherical Cubic Interpolation derivative.
void perturb_robot (Robot_basic &robot, const double f)
 Modify a robot.
bool Puma_DH (const Robot_basic *robot)
 Return true if the robot is like a Puma on DH notation.
bool Rhino_DH (const Robot_basic *robot)
 Return true if the robot is like a Rhino on DH notation.
bool ERS_Leg_DH (const Robot_basic *robot)
 Return true if the robot is like the leg chain of an AIBO on DH notation.
bool ERS2xx_Head_DH (const Robot_basic *robot)
 Return true if the robot is like the camera chain of a 200 series AIBO on DH notation.
bool ERS7_Head_DH (const Robot_basic *robot)
 Return true if the robot is like the camera or mouth chain of a 7 model AIBO on DH notation.
bool Puma_mDH (const Robot_basic *robot)
 Return true if the robot is like a Puma on modified DH notation.
bool Rhino_mDH (const Robot_basic *robot)
 Return true if the robot is like a Rhino on modified DH notation.
ReturnMatrix x_prod_matrix (const ColumnVector &x)
 Cross product matrix.
ReturnMatrix Integ_Trap (const ColumnVector &present, ColumnVector &past, const Real dt)
 Trapezoidal integration.
void Runge_Kutta4_Real_time (ReturnMatrix(*xdot)(Real time, const Matrix &xin, bool &exit, bool &init), const Matrix &xo, Real to, Real tf, int nsteps)
 Fixed step size fourth-order Runge-Kutta integrator.
void Runge_Kutta4_Real_time (ReturnMatrix(*xdot)(const Real time, const Matrix &xin), const Matrix &xo, const Real to, const Real tf, const int nsteps)
void Runge_Kutta4 (ReturnMatrix(*xdot)(Real time, const Matrix &xin), const Matrix &xo, Real to, Real tf, int nsteps, RowVector &tout, Matrix &xout)
 Fixed step size fourth-order Runge-Kutta integrator.
ReturnMatrix rk4 (const Matrix &x, const Matrix &dxdt, Real t, Real h, ReturnMatrix(*xdot)(Real time, const Matrix &xin))
 Compute one Runge-Kutta fourth order step.
void rkqc (Matrix &x, Matrix &dxdt, Real &t, Real htry, Real eps, Matrix &xscal, Real &hdid, Real &hnext, ReturnMatrix(*xdot)(Real time, const Matrix &xin))
 Compute one adaptive step based on two rk4.
void odeint (ReturnMatrix(*xdot)(Real time, const Matrix &xin), Matrix &xo, Real to, Real tf, Real eps, Real h1, Real hmin, int &nok, int &nbad, RowVector &tout, Matrix &xout, Real dtsav)
 Integrate the ordinary differential equation xdot from time to to time tf using an adaptive step size strategy.
ReturnMatrix sign (const Matrix &x)
 Sign of a matrix.
short sign (const Real x)
 Sign of real.
void Runge_Kutta4_Real_time (ReturnMatrix(*xdot)(Real time, const Matrix &xin), const Matrix &xo, Real to, Real tf, int nsteps)

Variables

static const char rcsid[] __UNUSED__ = "$Id: clik.cpp,v 1.6 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char header_clik_rcsid[] __UNUSED__ = "$Id: clik.h,v 1.5 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: comp_dq.cpp,v 1.5 2005/07/26 03:22:08 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: comp_dqp.cpp,v 1.5 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: config.cpp,v 1.12 2006/09/25 23:30:32 ejt Exp $"
 RCS/CVS version.
static const char header_config_rcsid[] __UNUSED__ = "$Id: config.h,v 1.14 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: control_select.cpp,v 1.4 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char header_Control_Select_rcsid[] __UNUSED__ = "$Id: control_select.h,v 1.4 2005/07/26 03:22:08 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: controller.cpp,v 1.4 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char header_controller_rcsid[] __UNUSED__ = "$Id: controller.h,v 1.4 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: delta_t.cpp,v 1.6 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: dynamics.cpp,v 1.7 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: dynamics_sim.cpp,v 1.3 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char header_dynamics_sim_rcsid[] __UNUSED__ = "$Id: dynamics_sim.h,v 1.4 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: gnugraph.cpp,v 1.3 2005/07/26 03:22:08 ejt Exp $"
 RCS/CVS version.
char * curvetype []
static const char header_gnugraph_rcsid[] __UNUSED__ = "$Id: gnugraph.h,v 1.2 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: homogen.cpp,v 1.5 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: invkine.cpp,v 1.25 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: kinemat.cpp,v 1.17 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: quaternion.cpp,v 1.5 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char header_quat_rcsid[] __UNUSED__ = "$Id: quaternion.h,v 1.5 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: robot.cpp,v 1.21 2005/07/26 03:22:08 ejt Exp $"
 RCS/CVS version.
Real fourbyfourident [] = {1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0}
 Used to initialize a $4\times 4$ matrix.
Real threebythreeident [] = {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0}
 Used to initialize a $3\times 3$ matrix.
static const char header_rcsid[] __UNUSED__ = "$Id: robot.h,v 1.19 2005/07/26 03:22:08 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: sensitiv.cpp,v 1.5 2005/07/26 03:22:08 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: trajectory.cpp,v 1.5 2005/07/26 03:22:08 ejt Exp $"
 RCS/CVS version.
static const char header_trajectory_rcsid[] __UNUSED__ = "$Id: trajectory.h,v 1.5 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char rcsid[] __UNUSED__ = "$Id: utils.cpp,v 1.6 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
static const char header_utils_rcsid[] __UNUSED__ = "$Id: utils.h,v 1.5 2005/07/26 03:22:09 ejt Exp $"
 RCS/CVS version.
Real fourbyfourident []
 Used to initialize a $4\times 4$ matrix.
Real threebythreeident []
 Used to initialize a $3\times 3$ matrix.


Typedef Documentation

typedef map< Real, ColumnVector, less< Real > > ROBOOP::point_map

Data at control points.

Definition at line 114 of file trajectory.h.

typedef map< Real, Quaternion, less< Real > > ROBOOP::quat_map

Data at control points.

Definition at line 143 of file trajectory.h.


Function Documentation

short ROBOOP::set_plot2d ( const char *  title_graph,
const char *  x_axis_title,
const char *  y_axis_title,
const char *  label,
int  type,
const Matrix &  xdata,
const Matrix &  ydata,
int  start_y,
int  end_y 
)

Definition at line 674 of file gnugraph.cpp.

short ROBOOP::set_plot2d ( const char *  title_graph,
const char *  x_axis_title,
const char *  y_axis_title,
const vector< char * >  label,
int  type,
const Matrix &  xdata,
const Matrix &  ydata,
const vector< int > &  data_select 
)

Definition at line 713 of file gnugraph.cpp.

ReturnMatrix ROBOOP::trans ( const ColumnVector &  a  ) 

Translation.

Definition at line 58 of file homogen.cpp.

Referenced by rotd().

ReturnMatrix ROBOOP::rotx ( const Real  alpha  ) 

Rotation around x axis.

Definition at line 78 of file homogen.cpp.

ReturnMatrix ROBOOP::roty ( const Real  beta  ) 

Rotation around x axis.

Definition at line 98 of file homogen.cpp.

ReturnMatrix ROBOOP::rotz ( const Real  gamma  ) 

Rotation around z axis.

Definition at line 118 of file homogen.cpp.

ReturnMatrix ROBOOP::rotk ( const Real  theta,
const ColumnVector &  k 
)

Rotation around arbitrary axis.

Definition at line 140 of file homogen.cpp.

Referenced by rotd().

ReturnMatrix ROBOOP::rpy ( const ColumnVector &  a  ) 

Roll Pitch Yaw rotation.

Definition at line 173 of file homogen.cpp.

ReturnMatrix ROBOOP::eulzxz ( const ColumnVector &  a  ) 

Euler ZXZ rotation.

Definition at line 202 of file homogen.cpp.

ReturnMatrix ROBOOP::rotd ( const Real  theta,
const ColumnVector &  k1,
const ColumnVector &  k2 
)

Rotation around an arbitrary line.

Definition at line 231 of file homogen.cpp.

ReturnMatrix ROBOOP::irotk ( const Matrix &  R  ) 

Obtain axis from a rotation matrix.

Definition at line 244 of file homogen.cpp.

ReturnMatrix ROBOOP::irpy ( const Matrix &  R  ) 

Obtain Roll, Pitch and Yaw from a rotation matrix.

Definition at line 262 of file homogen.cpp.

ReturnMatrix ROBOOP::ieulzxz ( const Matrix &  R  ) 

Obtain Roll, Pitch and Yaw from a rotation matrix.

Definition at line 285 of file homogen.cpp.

ReturnMatrix ROBOOP::Omega ( const Quaternion &  q,
const Quaternion &  q_dot 
)

Return angular velocity from a quaternion and it's time derivative.

See Quaternion::dot for explanation.

Definition at line 558 of file quaternion.cpp.

Referenced by ROBOOP::Spl_Quaternion::quat_w().

short ROBOOP::Integ_quat ( Quaternion &  dquat_present,
Quaternion &  dquat_past,
Quaternion &  quat,
const Real  dt 
)

Trapezoidal quaternion integration.

Definition at line 583 of file quaternion.cpp.

Referenced by ROBOOP::Impedance::control().

Real ROBOOP::Integ_Trap_quat_s ( const Quaternion &  present,
Quaternion &  past,
const Real  dt 
)

Trapezoidal quaternion scalar part integration.

Definition at line 610 of file quaternion.cpp.

Referenced by Integ_quat().

ReturnMatrix ROBOOP::Integ_Trap_quat_v ( const Quaternion &  present,
Quaternion &  past,
const Real  dt 
)

Trapezoidal quaternion vector part integration.

Definition at line 619 of file quaternion.cpp.

Referenced by Integ_quat().

Quaternion ROBOOP::Slerp ( const Quaternion &  q0,
const Quaternion &  q1,
const Real  t 
)

Spherical Linear Interpolation.

Cite_:Dam

The quaternion $q(t)$ interpolate the quaternions $q_0$ and $q_1$ given the parameter $t$ along the quaternion sphere.

\[ q(t) = c_0(t)q_0 + c_1(t)q_1 \]

where $c_0$ and $c_1$ are real functions with $0\leq t \leq 1$. As $t$ varies between 0 and 1. the values $q(t)$ varies uniformly along the circular arc from $q_0$ and $q_1$. The angle between $q(t)$ and $q_0$ is $\cos(t\theta)$ and the angle between $q(t)$ and $q_1$ is $\cos((1-t)\theta)$. Taking the dot product of $q(t)$ and $q_0$ yields

\[ \cos(t\theta) = c_0(t) + \cos(\theta)c_1(t) \]

and taking the dot product of $q(t)$ and $q_1$ yields

\[ \cos((1-t)\theta) = \cos(\theta)c_0(t) + c_1(t) \]

These are two equations with $c_0$ and $c_1$. The solution is

\[ c_0 = \frac{\sin((1-t)\theta)}{\sin(\theta)} \]

\[ c_1 = \frac{\sin(t\theta)}{sin(\theta)} \]

The interpolation is then

\[ Slerp(q_0, q_1, t) = \frac{q_0\sin((1-t)\theta)+q_1\sin(t\theta)}{\sin(\theta)} \]

If $q_0$ and $q_1$ are unit quaternions the $q(t)$ is also a unit quaternions. For unit quaternions we have

\[ Slerp(q_0, q_1, t) = q_0(q_0^{-1}q_1)^t \]

For t = 0 and t = 1 we have

\[ q_0 = Slerp(q_0, q_1, 0) \]

\[ q_1 = Slerp(q_0, q_1, 1) \]

It is customary to choose the sign G on q1 so that q0.Gq1 >=0 (the angle between q0 ang Gq1 is acute). This choice avoids extra spinning caused by the interpolated rotations.

Definition at line 629 of file quaternion.cpp.

Referenced by ROBOOP::Spl_Quaternion::quat(), ROBOOP::Spl_Quaternion::quat_w(), Slerp_prime(), Squad(), and Squad_prime().

Quaternion ROBOOP::Slerp_prime ( const Quaternion &  q0,
const Quaternion &  q1,
const Real  t 
)

Spherical Linear Interpolation derivative.

Cite_: Dam

The derivative of the function $q^t$ where $q$ is a constant unit quaternion is

\[ \frac{d}{dt}q^t = q^t log(q) \]

Using the preceding equation the Slerp derivative is then

\[ Slerp'(q_0, q_1, t) = q_0(q_0^{-1}q_1)^t log(q_0^{-1}q_1) \]

It is customary to choose the sign G on q1 so that q0.Gq1 >=0 (the angle between q0 ang Gq1 is acute). This choice avoids extra spinning caused by the interpolated rotations. The result is not necessary a unit quaternion.

Definition at line 690 of file quaternion.cpp.

Referenced by ROBOOP::Spl_Quaternion::quat_w().

Quaternion ROBOOP::Squad ( const Quaternion &  p,
const Quaternion &  a,
const Quaternion &  b,
const Quaternion &  q,
const Real  t 
)

Spherical Cubic Interpolation.

Cite_: Dam

Let four quaternions be $q_i$ (p), $s_i$ (a), $s_{i+1}$ (b) and $q_{i+1}$ (q) be the ordered vertices of a quadrilateral. Obtain c from $q_i$ to $q_{i+1}$ interpolation. Obtain d from $s_i$ to $s_{i+1}$ interpolation. Obtain e, the final result, from c to d interpolation.

\[ Squad(q_i, s_i, s_{i+1}, q_{i+1}, t) = Slerp(Slerp(q_i,q_{i+1},t),Slerp(s_i,s_{i+1},t), 2t(1-t)) \]

The intermediate quaternion $s_i$ and $s_{i+1}$ are given by

\[ s_i = q_i exp\Big ( - \frac{log(q_i^{-1}q_{i+1}) + log(q_i^{-1}q_{i-1})}{4}\Big ) \]

Definition at line 723 of file quaternion.cpp.

Referenced by ROBOOP::Spl_Quaternion::quat(), and ROBOOP::Spl_Quaternion::quat_w().

Quaternion ROBOOP::Squad_prime ( const Quaternion &  p,
const Quaternion &  a,
const Quaternion &  b,
const Quaternion &  q,
const Real  t 
)

Spherical Cubic Interpolation derivative.

Cite_: www.magic-software.com

The derivative of the function $q^t$ where $q$ is a constant unit quaternion is

\[ \frac{d}{dt}q^t = q^t log(q) \]

Recalling that $log(q) = [0, v\theta]$ (see Quaternion::Log()). If the power is a function we have

\[ \frac{d}{dt}q^{f(t)} = f'(t)q^{f(t)}log(q) \]

If $q$ is a function of time and the power is differentiable function of time we have

\[ \frac{d}{dt}(q(t))^{f(t)} = f'(t)(q(t))^{f(t)}log(q) + f(t)(q(t))^{f(t)-1}q'(t) \]

Using these last three equations Squad derivative can be define. Let $U(t)=Slerp(p,q,t)$, $V(t)=Slerp(q,b,t)$, $W(t)=U(t)^{-1}V(t)$. We then have $Squad(p,a,b,q,t)=Slerp(U(t),V(t),2t(1-t))=U(t)W(t)^{2t(1-t)}$

\[ Squad'(p,a,b,q,t) = \frac{d}{dt}\Big [ UW^{2t(1-t)}\Big ] \]

\[ Squad'(p,a,b,q,t) = U\frac{d}{dt}\Big [ W^{2t(1-t)}\Big ] + U'\Big [W^{2t(1-t)}\Big] \]

\[ Squad'(p,a,b,q,t) = U\Big[(2-4t)W^{2t(1-t)}log(W)+2t(1-t)W^{2t(1-t)-1}W'\Big] + U'\Big[W^{2t(1-t)} \Big] \]

where $U'=Ulog(p^{-1}q)$, $V'=Vlog(a^{-1},b)$, $W'=U^{-1}V'-U^{-2}U'V$

The result is not necessarily a unit quaternion even if all the input quaternions are unit.

Definition at line 749 of file quaternion.cpp.

Referenced by ROBOOP::Spl_Quaternion::quat_w().

void ROBOOP::perturb_robot ( Robot_basic &  robot,
const double  f = 0.1 
)

Modify a robot.

Parameters:
robot,: Robot_basic reference.
f,: Percentage of erreur between 0 and 1.
f represents an error to added on the robot inertial parameter. f is between 0 (no error) and 1 (100% error).

Definition at line 1601 of file robot.cpp.

bool ROBOOP::Puma_DH ( const Robot_basic *  robot  ) 

Return true if the robot is like a Puma on DH notation.

Compare the robot DH table with the Puma DH table. The function return true if the tables are similar (same alpha and similar a and d parameters).

Definition at line 1634 of file robot.cpp.

Referenced by ROBOOP::Robot::robotType_inv_kin().

bool ROBOOP::Rhino_DH ( const Robot_basic *  robot  ) 

Return true if the robot is like a Rhino on DH notation.

Compare the robot DH table with the Puma DH table. The function return true if the tables are similar (same alpha and similar a and d parameters).

Definition at line 1668 of file robot.cpp.

Referenced by ROBOOP::Robot::robotType_inv_kin().

bool ROBOOP::ERS_Leg_DH ( const Robot_basic *  robot  ) 

Return true if the robot is like the leg chain of an AIBO on DH notation.

Definition at line 1701 of file robot.cpp.

Referenced by ROBOOP::Robot::robotType_inv_kin().

bool ROBOOP::ERS2xx_Head_DH ( const Robot_basic *  robot  ) 

Return true if the robot is like the camera chain of a 200 series AIBO on DH notation.

Definition at line 1717 of file robot.cpp.

Referenced by ROBOOP::Robot::robotType_inv_kin().

bool ROBOOP::ERS7_Head_DH ( const Robot_basic *  robot  ) 

Return true if the robot is like the camera or mouth chain of a 7 model AIBO on DH notation.

Definition at line 1736 of file robot.cpp.

Referenced by ROBOOP::Robot::robotType_inv_kin().

bool ROBOOP::Puma_mDH ( const Robot_basic *  robot  ) 

Return true if the robot is like a Puma on modified DH notation.

Compare the robot DH table with the Puma DH table. The function return true if the tables are similar (same alpha and similar a and d parameters).

Definition at line 1756 of file robot.cpp.

Referenced by ROBOOP::mRobot_min_para::robotType_inv_kin(), and ROBOOP::mRobot::robotType_inv_kin().

bool ROBOOP::Rhino_mDH ( const Robot_basic *  robot  ) 

Return true if the robot is like a Rhino on modified DH notation.

Compare the robot DH table with the Puma DH table. The function return true if the tables are similar (same alpha and similar a and d parameters).

Definition at line 1790 of file robot.cpp.

Referenced by ROBOOP::mRobot_min_para::robotType_inv_kin(), and ROBOOP::mRobot::robotType_inv_kin().

ReturnMatrix ROBOOP::x_prod_matrix ( const ColumnVector &  x  ) 

ReturnMatrix ROBOOP::Integ_Trap ( const ColumnVector &  present,
ColumnVector &  past,
const Real  dt 
)

Trapezoidal integration.

Definition at line 77 of file utils.cpp.

Referenced by ROBOOP::Impedance::control(), and ROBOOP::Clik::q_qdot().

void ROBOOP::Runge_Kutta4_Real_time ( ReturnMatrix(*)(Real time, const Matrix &xin, bool &exit, bool &init)  xdot,
const Matrix &  xo,
Real  to,
Real  tf,
int  nsteps 
)

Fixed step size fourth-order Runge-Kutta integrator.

Definition at line 90 of file utils.cpp.

void ROBOOP::Runge_Kutta4_Real_time ( ReturnMatrix(*)(const Real time, const Matrix &xin)  xdot,
const Matrix &  xo,
const Real  to,
const Real  tf,
const int  nsteps 
)

Definition at line 119 of file utils.cpp.

void ROBOOP::Runge_Kutta4 ( ReturnMatrix(*)(Real time, const Matrix &xin)  xdot,
const Matrix &  xo,
Real  to,
Real  tf,
int  nsteps,
RowVector &  tout,
Matrix &  xout 
)

Fixed step size fourth-order Runge-Kutta integrator.

Definition at line 144 of file utils.cpp.

ReturnMatrix ROBOOP::rk4 ( const Matrix &  x,
const Matrix &  dxdt,
Real  t,
Real  h,
ReturnMatrix(*)(Real time, const Matrix &xin)  xdot 
)

Compute one Runge-Kutta fourth order step.

adapted from: Numerical Recipes in C, The Art of Scientific Computing, Press, William H. and Flannery, Brian P. and Teukolsky, Saul A. and Vetterling, William T., Cambridge University Press, 1988.

Definition at line 172 of file utils.cpp.

Referenced by rkqc().

void ROBOOP::rkqc ( Matrix &  x,
Matrix &  dxdt,
Real t,
Real  htry,
Real  eps,
Matrix &  xscal,
Real hdid,
Real hnext,
ReturnMatrix(*)(Real time, const Matrix &xin)  xdot 
)

Compute one adaptive step based on two rk4.

adapted from: Numerical Recipes in C, The Art of Scientific Computing, Press, William H. and Flannery, Brian P. and Teukolsky, Saul A. and Vetterling, William T., Cambridge University Press, 1988.

Definition at line 207 of file utils.cpp.

Referenced by odeint().

void ROBOOP::odeint ( ReturnMatrix(*)(Real time, const Matrix &xin)  xdot,
Matrix &  xo,
Real  to,
Real  tf,
Real  eps,
Real  h1,
Real  hmin,
int &  nok,
int &  nbad,
RowVector &  tout,
Matrix &  xout,
Real  dtsav 
)

Integrate the ordinary differential equation xdot from time to to time tf using an adaptive step size strategy.

adapted from: Numerical Recipes in C, The Art of Scientific Computing, Press, William H. and Flannery, Brian P. and Teukolsky, Saul A. and Vetterling, William T., Cambridge University Press, 1988.

Definition at line 259 of file utils.cpp.

short ROBOOP::sign ( const Real  x  ) 

Sign of real.

Definition at line 337 of file utils.cpp.

void ROBOOP::Runge_Kutta4_Real_time ( ReturnMatrix(*)(Real time, const Matrix &xin)  xdot,
const Matrix &  xo,
Real  to,
Real  tf,
int  nsteps 
)


Variable Documentation

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: clik.cpp,v 1.6 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 45 of file clik.cpp.

const char header_clik_rcsid [] ROBOOP::__UNUSED__ = "$Id: clik.h,v 1.5 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 72 of file clik.h.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: comp_dq.cpp,v 1.5 2005/07/26 03:22:08 ejt Exp $" [static]

RCS/CVS version.

Definition at line 62 of file comp_dq.cpp.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: comp_dqp.cpp,v 1.5 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 61 of file comp_dqp.cpp.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: config.cpp,v 1.12 2006/09/25 23:30:32 ejt Exp $" [static]

RCS/CVS version.

Definition at line 71 of file config.cpp.

const char header_config_rcsid [] ROBOOP::__UNUSED__ = "$Id: config.h,v 1.14 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 71 of file config.h.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: control_select.cpp,v 1.4 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 44 of file control_select.cpp.

const char header_Control_Select_rcsid [] ROBOOP::__UNUSED__ = "$Id: control_select.h,v 1.4 2005/07/26 03:22:08 ejt Exp $" [static]

RCS/CVS version.

Definition at line 52 of file control_select.h.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: controller.cpp,v 1.4 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 36 of file controller.cpp.

const char header_controller_rcsid [] ROBOOP::__UNUSED__ = "$Id: controller.h,v 1.4 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 47 of file controller.h.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: delta_t.cpp,v 1.6 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 61 of file delta_t.cpp.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: dynamics.cpp,v 1.7 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 76 of file dynamics.cpp.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: dynamics_sim.cpp,v 1.3 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 36 of file dynamics_sim.cpp.

const char header_dynamics_sim_rcsid [] ROBOOP::__UNUSED__ = "$Id: dynamics_sim.h,v 1.4 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 49 of file dynamics_sim.h.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: gnugraph.cpp,v 1.3 2005/07/26 03:22:08 ejt Exp $" [static]

RCS/CVS version.

Definition at line 70 of file gnugraph.cpp.

Initial value:

   {"lines",
    "points",
    "linespoints",
    "impulses",
    "dots",
    "steps",
    "boxes"}

Definition at line 72 of file gnugraph.cpp.

Referenced by ROBOOP::GNUcurve::dump(), and ROBOOP::Plot2d::gnuplot().

const char header_gnugraph_rcsid [] ROBOOP::__UNUSED__ = "$Id: gnugraph.h,v 1.2 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 82 of file gnugraph.h.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: homogen.cpp,v 1.5 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 55 of file homogen.cpp.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: invkine.cpp,v 1.25 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 72 of file invkine.cpp.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: kinemat.cpp,v 1.17 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 96 of file kinemat.cpp.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: quaternion.cpp,v 1.5 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 64 of file quaternion.cpp.

const char header_quat_rcsid [] ROBOOP::__UNUSED__ = "$Id: quaternion.h,v 1.5 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 72 of file quaternion.h.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: robot.cpp,v 1.21 2005/07/26 03:22:08 ejt Exp $" [static]

RCS/CVS version.

Definition at line 109 of file robot.cpp.

Real ROBOOP::fourbyfourident[] = {1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0}

Used to initialize a $4\times 4$ matrix.

Definition at line 112 of file robot.cpp.

Referenced by eulzxz(), ROBOOP::Robot_basic::kine(), rotk(), rotx(), roty(), rotz(), rpy(), ROBOOP::Quaternion::T(), and trans().

const char header_rcsid [] ROBOOP::__UNUSED__ = "$Id: robot.h,v 1.19 2005/07/26 03:22:08 ejt Exp $" [static]

RCS/CVS version.

Definition at line 126 of file robot.h.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: sensitiv.cpp,v 1.5 2005/07/26 03:22:08 ejt Exp $" [static]

RCS/CVS version.

Definition at line 55 of file sensitiv.cpp.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: trajectory.cpp,v 1.5 2005/07/26 03:22:08 ejt Exp $" [static]

RCS/CVS version.

Definition at line 47 of file trajectory.cpp.

const char header_trajectory_rcsid [] ROBOOP::__UNUSED__ = "$Id: trajectory.h,v 1.5 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 79 of file trajectory.h.

const char rcsid [] ROBOOP::__UNUSED__ = "$Id: utils.cpp,v 1.6 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 62 of file utils.cpp.

const char header_utils_rcsid [] ROBOOP::__UNUSED__ = "$Id: utils.h,v 1.5 2005/07/26 03:22:09 ejt Exp $" [static]

RCS/CVS version.

Definition at line 80 of file utils.h.

Used to initialize a $4\times 4$ matrix.

Definition at line 112 of file robot.cpp.

Referenced by eulzxz(), ROBOOP::Robot_basic::kine(), rotk(), rotx(), roty(), rotz(), rpy(), ROBOOP::Quaternion::T(), and trans().


ROBOOP v1.21a
Generated Wed Oct 4 00:00:45 2006 by Doxygen 1.4.7