ROBOOP Namespace Reference
|
Classes |
class | ROBOOP::Clik |
| Handle Closed Loop Inverse Kinematics scheme. More...
|
struct | ROBOOP::Data |
| Basic data element used in Config class. More...
|
class | ROBOOP::Config |
| Handle configuration files. More...
|
class | ROBOOP::Control_Select |
| Select controller class. More...
|
class | ROBOOP::Impedance |
| Impedance controller class. More...
|
class | ROBOOP::Resolved_acc |
| Resolved rate acceleration controller class. More...
|
class | ROBOOP::Computed_torque_method |
| Computer torque method controller class. More...
|
class | ROBOOP::Proportional_Derivative |
| Proportional derivative controller class. More...
|
class | ROBOOP::Dynamics |
| Dynamics simulation handling class. More...
|
class | ROBOOP::GNUcurve |
| Object for one curve. More...
|
class | ROBOOP::Plot2d |
| 2d plot object. More...
|
class | ROBOOP::IO_matrix_file |
| Read and write data at every iterations in a file. More...
|
class | ROBOOP::Plot_file |
| Creates a graphic from a data file. More...
|
class | ROBOOP::Quaternion |
| Quaternion class definition. More...
|
class | ROBOOP::Link |
| Link definitions. More...
|
class | ROBOOP::Robot_basic |
| Virtual base robot class. More...
|
class | ROBOOP::Robot |
| DH notation robot class. More...
|
class | ROBOOP::mRobot |
| Modified DH notation robot class. More...
|
class | ROBOOP::mRobot_min_para |
| Modified DH notation and minimal inertial parameters robot class. More...
|
class | ROBOOP::Spl_cubic |
| Natural cubic splines class. More...
|
class | ROBOOP::Spl_path |
| Cartesian or joint space trajectory. More...
|
class | ROBOOP::Spl_Quaternion |
| Cubic quaternions spline. More...
|
class | ROBOOP::Trajectory_Select |
| Trajectory class selection. More...
|
Typedefs |
typedef ROBOOP::Data | Data |
| Basic data element used in Config class.
|
typedef vector< Data > | Conf_data |
| Configuration data type.
|
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 |
char * | curvetype [] |
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 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 matrix.
|
Typedef Documentation
|
Configuration data type.
Definition at line 101 of file config.h. |
|
Basic data element used in Config class.
|
Function Documentation
bool ROBOOP::ERS2xx_Head_DH |
( |
const Robot_basic * |
robot |
) |
|
|
bool ROBOOP::ERS7_Head_DH |
( |
const Robot_basic * |
robot |
) |
|
|
bool ROBOOP::ERS_Leg_DH |
( |
const Robot_basic * |
robot |
) |
|
|
|
Obtain Roll, Pitch and Yaw from a rotation matrix.
Definition at line 286 of file homogen.cpp. |
short ROBOOP::Integ_quat |
( |
Quaternion & |
dquat_present, |
|
|
Quaternion & |
dquat_past, |
|
|
Quaternion & |
quat, |
|
|
const Real |
dt |
|
) |
|
|
ReturnMatrix ROBOOP::Integ_Trap |
( |
const ColumnVector & |
present, |
|
|
ColumnVector & |
past, |
|
|
const Real |
dt |
|
) |
|
|
Real ROBOOP::Integ_Trap_quat_s |
( |
const Quaternion & |
present, |
|
|
Quaternion & |
past, |
|
|
const Real |
dt |
|
) |
|
|
ReturnMatrix ROBOOP::Integ_Trap_quat_v |
( |
const Quaternion & |
present, |
|
|
Quaternion & |
past, |
|
|
const Real |
dt |
|
) |
|
|
|
Obtain axis from a rotation matrix.
Definition at line 245 of file homogen.cpp. |
|
Obtain Roll, Pitch and Yaw from a rotation matrix.
Definition at line 263 of file homogen.cpp. |
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 258 of file utils.cpp. |
ReturnMatrix ROBOOP::Omega |
( |
const Quaternion & |
q, |
|
|
const Quaternion & |
q_dot |
|
) |
|
|
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 1595 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 1628 of file robot.cpp.
Referenced by ROBOOP::Robot::robotType_inv_kin(). |
bool ROBOOP::Puma_mDH |
( |
const Robot_basic * |
robot |
) |
|
|
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 1662 of file robot.cpp.
Referenced by ROBOOP::Robot::robotType_inv_kin(). |
bool ROBOOP::Rhino_mDH |
( |
const Robot_basic * |
robot |
) |
|
|
ReturnMatrix 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 171 of file utils.cpp.
Referenced by rkqc(). |
void 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 206 of file utils.cpp.
Referenced by odeint(). |
ReturnMatrix ROBOOP::rotd |
( |
const Real |
theta, |
|
|
const ColumnVector & |
k1, |
|
|
const ColumnVector & |
k2 |
|
) |
|
|
|
Rotation around an arbitrary line.
Definition at line 232 of file homogen.cpp. |
|
Rotation around x axis.
Definition at line 79 of file homogen.cpp. |
|
Rotation around x axis.
Definition at line 99 of file homogen.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 143 of file utils.cpp. |
void Runge_Kutta4_Real_time |
( |
ReturnMatrix(*)(Real time, const Matrix &xin) |
xdot, |
|
|
const Matrix & |
xo, |
|
|
Real |
to, |
|
|
Real |
tf, |
|
|
int |
nsteps |
|
) |
|
|
void Runge_Kutta4_Real_time |
( |
ReturnMatrix(*)(const Real time, const Matrix &xin) |
xdot, |
|
|
const Matrix & |
xo, |
|
|
const Real |
to, |
|
|
const Real |
tf, |
|
|
const int |
nsteps |
|
) |
|
|
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 89 of file utils.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 |
|
) |
|
|
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 |
|
) |
|
|
short ROBOOP::sign |
( |
const Real |
x |
) |
|
|
Quaternion ROBOOP::Slerp |
( |
const Quaternion & |
q0, |
|
|
const Quaternion & |
q1, |
|
|
const Real |
t |
|
) |
|
|
Quaternion ROBOOP::Slerp_prime |
( |
const Quaternion & |
q0, |
|
|
const Quaternion & |
q1, |
|
|
const Real |
t |
|
) |
|
|
|
Spherical Linear Interpolation derivative.
Cite_: Dam
The derivative of the function where is a constant unit quaternion is
Using the preceding equation the Slerp derivative is then
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 (p), (a), (b) and (q) be the ordered vertices of a quadrilateral. Obtain c from to interpolation. Obtain d from to interpolation. Obtain e, the final result, from c to d interpolation.
The intermediate quaternion and are given by
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 where is a constant unit quaternion is
Recalling that (see Quaternion::Log()). If the power is a function we have
If is a function of time and the power is differentiable function of time we have
Using these last three equations Squad derivative can be define. Let , , . We then have 
where , , 
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(). |
ReturnMatrix ROBOOP::x_prod_matrix |
( |
const ColumnVector & |
x |
) |
|
|
Variable Documentation
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 matrix.
Definition at line 106 of file robot.cpp. |
|
Used to initialize a matrix.
Definition at line 109 of file robot.cpp. |
|