varnames.h File Reference

Detailed Description

Definition of macros to unify the name of the variables included in the cuiksystems.

Ensuring names are always the same, we can query the identifier of a variable by constructing its name and querying the corresponding cuiksystem.

Definition in file varnames.h.

Macros

#define IN_PATCH_DOF_VAR(vname, id, ln1, ln2, i)   sprintf(vname,"_n_%s_%s_%s_%u",ln1,ln2,(i==0?"x":"y"),id)
 Auxiliary variables for in_patch. More...
 
#define DOF_VAR(vname, id, ln1, ln2, i)   sprintf(vname,"_d_%s_%s_%u_%u",ln1,ln2,i,id)
 Name for the degrees of freedom. More...
 
#define LINK_ROT(vname, linkName, vn, cn)   sprintf(vname,"_%s_%s_%s",linkName,(vn==0?"u":(vn==1?"v":"w")),(cn==0?"x":(cn==1?"y":"z")))
 Frame of reference for a link. More...
 
#define LINK_ROT2(vname, linkName, vn, cn)   (vn<3?LINK_ROT(vname,linkName,vn,cn):sprintf(vname,"_%s_wp_%s",linkName,(cn==0?"x":(cn==1?"y":"z"))))
 Frame of reference for a link. More...
 
#define LINK_ROT3_E(vname, linkName, rn, cn)   (rn==cn?sprintf(vname,"_%s_qq_%u",linkName,rn):sprintf(vname,"_%s_qq_%u_%u",linkName,rn,cn))
 Frame of reference for a link using quaternions. More...
 
#define LINK_ROT3_Q(vname, linkName, j)   sprintf(vname,"_%s_q_%u",linkName,j)
 System variables for a rotation matrix using quaternions. More...
 
#define LINK_TRANS(vname, linkName, cn)   sprintf(vname,"_%s_r_%s",linkName,(cn==0?"x":(cn==1?"y":"z")))
 Translation part of the homogeneous transform defining the position of a link in global coordinates. More...
 
#define FREE_JOINT_VAR(vname, id, id1, ln1, id2, ln2, k)   (id1==0?LINK_TRANS(vname,ln2,k):(id2==0?LINK_TRANS(vname,ln1,k):sprintf(vname,"_%s_%s_%s_%u",ln1,ln2,(k==0?"x":(k==1?"y":"z")),id)))
 Variables for a free joint. More...
 
#define PRS_JOINT_VAR(vname, id, ln1, ln2)   sprintf(vname,"_d_%s_%s_%u",ln1,ln2,id)
 One variable for each prismatic joint. More...
 
#define PRS_JOINT_VAR_SING_SIN(vname, id, ln1, ln2)   sprintf(vname,"_d_sing_sin_%s_%s_%u",ln1,ln2,id)
 One end-range singularity variable for each prismatic joint. More...
 
#define PRS_JOINT_VAR_SING_COS(vname, id, ln1, ln2)   sprintf(vname,"_d_sing_cos_%s_%s_%u",ln1,ln2,id)
 One end-range singularity variable for each prismatic joint. More...
 
#define UNV_JOINT_VAR(vname, id, ln1, ln2, i, k)   sprintf(vname,"_uni_%s_%s_%s_%s_%u",(i==0?"u":"v"),ln1,ln2,(k==0?"x":(k==1?"y":"z")),id)
 Two vectors for each universal joint. More...
 
#define SPH_SPH_JOINT_VAR(vname, id, ln1, ln2, i)   sprintf(vname,"_sph_sph_%s_%s_%s_%u",ln1,ln2,(i==0?"x":(i==1?"y":"z")),id)
 A vector for each spherical-spherical composite joint. More...
 
#define IN_PATCH_JOINT_CTRL_VAR(vname, id, ln1, ln2, i)   sprintf(vname,"_in_patch_%s_%s_%s_%u",ln1,ln2,(i==0?"u":(i==1?"v":"w")),id)
 Control variables defining a first order Bezier patch. More...
 
#define IN_PATCH_JOINT_CTRL_VAR_SING_SIN(vname, id, ln1, ln2, i)   sprintf(vname,"_in_patch_sing_sin_%s_%s_%s_%u",ln1,ln2,(i==0?"u":(i==1?"v":"w")),id)
 End-range singularity variable for each in_patch joint. More...
 
#define IN_PATCH_JOINT_CTRL_VAR_SING_COS(vname, id, ln1, ln2, i)   sprintf(vname,"_in_patch_sing_cos_%s_%s_%s_%u",ln1,ln2,(i==0?"u":(i==1?"v":"w")),id)
 End-range singularity variable for each in_patch joint. More...
 
#define IN_PATCH_JOINT_SCALE_VAR(vname, id, ln1, ln2)   sprintf(vname,"_in_patch_%s_%s_l_%u",ln1,ln2,id)
 Scale factor for the normal vector to a first order Bezier patch. More...
 
#define IN_CYLINDER_JOINT_VAR(vname, id, ln1, ln2, i)   sprintf(vname,"_in_cylinder_%s_%s_%s_%u",(i==0?"l":(i==1?"r":"w")),ln1,ln2,id)
 Auxiliary variables for in_cylinder. More...
 
#define IN_CYLINDER_JOINT_POINT(vname, id, ln1, ln2, i)   sprintf(vname,"_in_cylinder_p_%s_%s_%s_%u",ln1,ln2,(i==0?"x":(i==1?"y":"z")),id)
 Auxiliary variables for in_cylinder. More...
 
#define IN_CYLINDER_JOINT_VECTOR(vname, id, ln1, ln2, i)   sprintf(vname,"_in_cylinder_v_%s_%s_%s_%u",ln1,ln2,(i==0?"x":(i==1?"y":"z")),id)
 Auxiliary variables for in_cylinder. More...
 
#define IN_CYLINDER_JOINT_VAR_REF(vname, id, k, ln1, ln2, i)   sprintf(vname,"_in_cylinder_%s_%s_%s_%s_%u",(k==0?"w1":"w2"),ln1,ln2,(i==0?"x":(i==1?"y":"z")),id)
 Auxiliary variables for in_cylinder. More...
 
#define IN_CYLINDER_JOINT_VAR_SING_COS(vname, id, ln1, ln2, i)   sprintf(vname,"_in_cylincer_sing_cos_%s_%s_%s_%u",ln1,ln2,(i==0?"l":"r"),id)
 End-range singularity variable for each in_cylinder joint. More...
 
#define IN_CYLINDER_JOINT_VAR_SING_SIN(vname, id, ln1, ln2)   sprintf(vname,"_in_cylincer_sing_cos_%s_%s_l_%u",ln1,ln2,id)
 End-range singularity variable for each in_cylinder joint. More...
 
#define ROT_JOINT_VAR_REF(vname, id, k, ln1, ln2, i)   sprintf(vname,"_%s_%s_%s_%s_%u",(k==0?"w1":"w2"),ln1,ln2,(i==0?"x":(i==1?"y":"z")),id)
 Two vectors to define the angle in a revolute joint. More...
 
#define UNV_JOINT_VAR_REF(vname, id, k, ln1, ln2, i)   sprintf(vname,"_%s_%s_%s_%s_%u",(k==0?"w1":"w2"),ln1,ln2,(i==0?"x":(i==1?"y":"z")),id)
 Two vectors to define the angle in a universal joint. More...
 
#define COS_VAR(vname, id, ln1, ln2)   sprintf(vname,"_cos_%s_%s_%u",ln1,ln2,id)
 Cosinus between two links for rotation/spherical joints. More...
 
#define COS_VAR_SING(vname, id, ln1, ln2)   sprintf(vname,"_cos_sing_%s_%s_%u",ln1,ln2,id)
 One end-range singularity variable for each revolute joint. More...
 
#define COS_VAR_UNI(vname, id, ln1, ln2, k)   sprintf(vname,"_cos_%u_%s_%s_%u",k,ln1,ln2,id)
 Cosinus between two links for universal joints. More...
 
#define COS_VAR_UNI_SING(vname, id, ln1, ln2, k)   sprintf(vname,"_cos_sing_%u_%s_%s_%u",k,ln1,ln2,id)
 End-range singularity variable for each universal joint. More...
 
#define SPH_JOINT_VAR_REF(vname, id, v, ln1, ln2, k)   sprintf(vname,"_sph_%s_%s_%s_%s_%u",(v==0?"w1":"w2"),ln1,ln2,(k==0?"x":(k==1?"y":"z")),id)
 Two vectors defined for when limiting the movement of a spherical joints. More...
 
#define BODY_VERTEX(vname, linkName, bID, vID, k)   sprintf(vname,"_%s_b%u_v%u_%s",linkName,bID,vID,(k==0?"x":(k==1?"y":"z")))
 Vertex of a convex part of a link. More...
 
#define SPHERE_CENTER(vname, linkName, bID, k)   sprintf(vname,"_center_%s_b%u_%s",linkName,bID,(k==0?"x":(k==1?"y":"z")))
 Center of a sphere. More...
 
#define DIF_CENTERS_LL(vname, linkName1, bID1, linkName2, bID2, k)   sprintf(vname,"_diff_%s_b%u_%s_b%u_%s",linkName1,bID1,linkName2,bID2,(k==0?"x":(k==1?"y":"z")))
 Difference between centers of two spheres. More...
 
#define DIF_CENTERS_LO(vname, linkName1, bID1, oID, k)   sprintf(vname,"_diff_%s_b%u_o%u_%s",linkName1,bID1,oID,(k==0?"x":(k==1?"y":"z")))
 Difference between center of one sphere and an spheric obstacle. More...
 
#define SP_BB_PREFIX(prefix, ln1, b1, ln2, b2)   sprintf(prefix,"spbb_%s_b%u_%s_b%u",ln1,b1,ln2,b2)
 Prefix for the variables of the separating plane between two convex bodies (i.e., between parts of links). More...
 
#define SP_BO_PREFIX(prefix, ln1, b1, on)   sprintf(prefix,"spbo_%s_b%u_%s",ln1,b1,on)
 Prefix for the variables of the separating plane between two convex bodies (i.e., between parts of links). More...
 
#define SP_VAR(vname, prefix, k)   sprintf(vname,"_%s_%s",prefix,(k==0?"a":(k==1?"b":(k==2?"c":(k==3?"g1":"g2")))))
 Generates one of the variables used to define separating planes. More...
 

Macro Definition Documentation

#define IN_PATCH_DOF_VAR (   vname,
  id,
  ln1,
  ln2,
 
)    sprintf(vname,"_n_%s_%s_%s_%u",ln1,ln2,(i==0?"x":"y"),id)

Auxiliary varibles for in_patch joints when CT_REPRESENTATION is REP_JOINTS.

Two variables are defined representing the inverse of the norm of the vector normal to the surface and the tangent vector along the 'u' parameter. These two vectors define a reference frame but can only be defined in un-normalized form. The inverse norm are used to normalize them.

Parameters
vnameString where to store the varaible name.
idThe joint identifier.
ln1Name of the first link involved in the joint.
ln2Name of the second link involved in the joint.
iComponent of the dof (0 for x, 1 for y).

Definition at line 37 of file varnames.h.

#define DOF_VAR (   vname,
  id,
  ln1,
  ln2,
 
)    sprintf(vname,"_d_%s_%s_%u_%u",ln1,ln2,i,id)

Name given to the variables representing degrees of freedom. Only used if CT_REPRESENTATION is REP_JOINTS.

Parameters
vnameString where to store the varaible name.
idThe joint identifier.
ln1Name of the first link involved in the joint.
ln2Name of the second link involved in the joint.
iNumber of the degrees of freedom of this joint (many joints have more than one dof).

Definition at line 52 of file varnames.h.

Referenced by GenerateJointEquations(), and GetJointTransSeq().

#define LINK_ROT (   vname,
  linkName,
  vn,
  cn 
)    sprintf(vname,"_%s_%s_%s",linkName,(vn==0?"u":(vn==1?"v":"w")),(cn==0?"x":(cn==1?"y":"z")))

Three vectors (u,v,w) defining (in global coordinates) the frame of reference for a given link.

Note that this in only one of the ways to parametrize the rotation matrix. See LINK_ROT2 and LINK_ROT3_E for alternative ways.

Parameters
vnameString where to store the variable name.
linkNameName of the link.
vnVector identifier (0 for u, 1 for v, and 2 for w).
cnThe component of the vector (0 for x, 1 for y and 2 for z).

Definition at line 68 of file varnames.h.

Referenced by ApplyLinkRotFLinks(), CacheRotVarsFLinks(), and GenerateLinkRotFLinks().

#define LINK_ROT2 (   vname,
  linkName,
  vn,
  cn 
)    (vn<3?LINK_ROT(vname,linkName,vn,cn):sprintf(vname,"_%s_wp_%s",linkName,(cn==0?"x":(cn==1?"y":"z"))))

Three vectors in the form of (u,v,w-wp) defining (in global coordinates) the frame of reference for a given link.

The third vector w-wp are dummified forms of the cross product of u and v.

Note that this in only one of the ways to parametrize the rotation matrix. See LINK_ROT and LINK_ROT3_E for alternative ways.

Parameters
vnameString where to store the variable name.
linkNameName of the link.
vnVector identifier (0 for u, 1 for v, and 2 for w, and 3 for w_b).
cnThe component of the vector (0 for x, 1 for y and 2 for z).

Definition at line 86 of file varnames.h.

Referenced by ApplyLinkRotLinks(), CacheRotVarsLinks(), and GenerateLinkRotLinks().

#define LINK_ROT3_E (   vname,
  linkName,
  rn,
  cn 
)    (rn==cn?sprintf(vname,"_%s_qq_%u",linkName,rn):sprintf(vname,"_%s_qq_%u_%u",linkName,rn,cn))

Rotation matrix represented using quaternions.

This macro only gives the name the qq_ij variables (i,j=0..3) derived from the q_i, i=0..3, quaternion variables. If i=j then only one sub-index is used.

Note that this in only one of the ways to parametrize the rotation matrix. See LINK_ROT and LINK_ROT2 for alternative ways.

Parameters
vnameString where to store the variable name.
linkNameName of the link.
rnRow number.
cnColumn number.

Definition at line 106 of file varnames.h.

Referenced by ApplyLinkRotQLinks(), CacheRotVarsQLinks(), and GenerateLinkRotQLinks().

#define LINK_ROT3_Q (   vname,
  linkName,
 
)    sprintf(vname,"_%s_q_%u",linkName,j)

LINK_ROT3_E give the name for the variables used in the rotation matrics when using quaternions as a representation tool. However, these variables are not the basic varaiables of the quaternion but combinations of them.

This macro gives the name of the original quaternion variables q_i (i=0..3)

The variables defined with LINK_ROT3_E are related with the q_i variables by

e_ij=q_i*q_j

These relations appear in the form of dummy equations in the quaternion-based systems.

Definition at line 121 of file varnames.h.

Referenced by CacheRotVarsQLinks(), and GenerateLinkRotQLinks().

#define LINK_TRANS (   vname,
  linkName,
  cn 
)    sprintf(vname,"_%s_r_%s",linkName,(cn==0?"x":(cn==1?"y":"z")))

The vectors defined in LINK_ROT define the rotatin of a link in global coordinates. These variables define the translation part of the homogenous transform placing the link in the global frame of reference.

Parameters
vnameString where to store the variable name.
linkNameName of the link.
cnThe component of the vector (0 for x, 1 for y and 2 for z).

Definition at line 136 of file varnames.h.

Referenced by GenerateEquationsFromBranch(), GenerateWorldSingularityEquations(), GenerateWorldTWSEquations(), SetTransVars(), and WorldDOF2Sol().

#define FREE_JOINT_VAR (   vname,
  id,
  id1,
  ln1,
  id2,
  ln2,
 
)    (id1==0?LINK_TRANS(vname,ln2,k):(id2==0?LINK_TRANS(vname,ln1,k):sprintf(vname,"_%s_%s_%s_%u",ln1,ln2,(k==0?"x":(k==1?"y":"z")),id)))

A free vector defining a generic the translation from link 1 to link 2.

Note that the name of the variables generated for a free joint when one of the links involved is the ground link is the same as the name generated for the translation component of this link (see LINK_TRANS).

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
id1Identifier of the first link involved in the joint.
ln1Name of the first link involved in the joint.
id2Identifier of the first link involved in the joint.
ln2Name of the second link involved in the joint.
kComponent of the vector (0 for x, 1 for y and 2 for z).

Definition at line 155 of file varnames.h.

Referenced by GenerateJointEquations(), GenerateJointEquationsInBranch(), and GenerateJointSolution().

#define PRS_JOINT_VAR (   vname,
  id,
  ln1,
  ln2 
)    sprintf(vname,"_d_%s_%s_%u",ln1,ln2,id)

One variable for each prismatic joint: the displacement along the sliding axis.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.

Definition at line 168 of file varnames.h.

Referenced by GenerateJointEquationsInBranch(), GenerateJointRangeEquations(), GenerateJointRangeSingularityEquations(), and GenerateJointSolution().

#define PRS_JOINT_VAR_SING_SIN (   vname,
  id,
  ln1,
  ln2 
)    sprintf(vname,"_d_sing_sin_%s_%s_%u",ln1,ln2,id)

Auxiliar variable to detect singularities in bounded prismatic joints.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.

Definition at line 180 of file varnames.h.

Referenced by GenerateJointRangeSingularityEquations().

#define PRS_JOINT_VAR_SING_COS (   vname,
  id,
  ln1,
  ln2 
)    sprintf(vname,"_d_sing_cos_%s_%s_%u",ln1,ln2,id)

Auxiliar variable to detect singularities in bounded prismatic joints.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.

Definition at line 192 of file varnames.h.

Referenced by GenerateJointRangeSingularityEquations().

#define UNV_JOINT_VAR (   vname,
  id,
  ln1,
  ln2,
  i,
 
)    sprintf(vname,"_uni_%s_%s_%s_%s_%u",(i==0?"u":"v"),ln1,ln2,(k==0?"x":(k==1?"y":"z")),id)

Two vectors for each universal joint defining the copunctual orthogonal rotation axis that define the universal joint.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
i0 for the first axis of the universal joint and 1 for the second.
kComponent of the vector (0 for x, 1 for y and 2 for z).

Definition at line 207 of file varnames.h.

Referenced by GenerateJointEquations(), GenerateJointRangeEquations(), and GenerateJointSolution().

#define SPH_SPH_JOINT_VAR (   vname,
  id,
  ln1,
  ln2,
 
)    sprintf(vname,"_sph_sph_%s_%s_%s_%u",ln1,ln2,(i==0?"x":(i==1?"y":"z")),id)

A vector (x,y,z components) for each spherical-spherical composite joint.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
iComponent of the vector (0 for x, 1 for y and 2 for z).

Definition at line 220 of file varnames.h.

Referenced by GenerateJointEquations(), GenerateJointEquationsInBranch(), and GenerateJointSolution().

#define IN_PATCH_JOINT_CTRL_VAR (   vname,
  id,
  ln1,
  ln2,
 
)    sprintf(vname,"_in_patch_%s_%s_%s_%u",ln1,ln2,(i==0?"u":(i==1?"v":"w")),id)

A first order Bezier is defined with two variables (u,v). Here we additionally define a third variable w that is u*v so that all equations remain linear or bilinear.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
iThe control variable (0 for u, 1 for v and 2 for w).

Definition at line 235 of file varnames.h.

Referenced by GenerateJointEquations(), GenerateJointEquationsInBranch(), GenerateJointRangeEquations(), GenerateJointRangeSingularityEquations(), GenerateJointSolution(), RegenerateJointBox(), and RegenerateJointSolution().

#define IN_PATCH_JOINT_CTRL_VAR_SING_SIN (   vname,
  id,
  ln1,
  ln2,
 
)    sprintf(vname,"_in_patch_sing_sin_%s_%s_%s_%u",ln1,ln2,(i==0?"u":(i==1?"v":"w")),id)

Auxiliar variable to detect singularities in in_patch joints.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
iThe control variable (0 for u, 1 for v and 2 for w).

Definition at line 248 of file varnames.h.

Referenced by GenerateJointRangeSingularityEquations().

#define IN_PATCH_JOINT_CTRL_VAR_SING_COS (   vname,
  id,
  ln1,
  ln2,
 
)    sprintf(vname,"_in_patch_sing_cos_%s_%s_%s_%u",ln1,ln2,(i==0?"u":(i==1?"v":"w")),id)

Auxiliar variable to detect singularities in in_patch joints.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
iThe control variable (0 for u, 1 for v and 2 for w).

Definition at line 261 of file varnames.h.

Referenced by GenerateJointRangeSingularityEquations().

#define IN_PATCH_JOINT_SCALE_VAR (   vname,
  id,
  ln1,
  ln2 
)    sprintf(vname,"_in_patch_%s_%s_l_%u",ln1,ln2,id)

When defining a IN_PATCH joint, the normal vectors at the two links in contact at the contact point are equated. In the first link this vector is constant but in the second link it is variable (depends on the control points defining the patch). This scale variable is used to make the two vectors equal.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.

Definition at line 277 of file varnames.h.

Referenced by GenerateJointEquations(), and GenerateJointSolution().

#define IN_CYLINDER_JOINT_VAR (   vname,
  id,
  ln1,
  ln2,
 
)    sprintf(vname,"_in_cylinder_%s_%s_%s_%u",(i==0?"l":(i==1?"r":"w")),ln1,ln2,id)

The three variables defining the degrees of freedom of the in_cylinder joint. The first one is the displacement along the cylinder axis, the second one is the rotation around this axis, and the third is the rotation around the contact point.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
iIdentifier of the degree of freedom of the in_cylinder joint (0 for the translation along the cylinder axis and 1 for the rotation about this axis).

Definition at line 295 of file varnames.h.

#define IN_CYLINDER_JOINT_POINT (   vname,
  id,
  ln1,
  ln2,
 
)    sprintf(vname,"_in_cylinder_p_%s_%s_%s_%u",ln1,ln2,(i==0?"x":(i==1?"y":"z")),id)

Point on the cylinder in local coordinates and relative to the 1st point defining the cylinder.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
iVector component (x,y,z).

Definition at line 308 of file varnames.h.

#define IN_CYLINDER_JOINT_VECTOR (   vname,
  id,
  ln1,
  ln2,
 
)    sprintf(vname,"_in_cylinder_v_%s_%s_%s_%u",ln1,ln2,(i==0?"x":(i==1?"y":"z")),id)

Vector from the first point defining the cylinder axis to the point on the cylinder. In global coordinates.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
iVector component (x,y,z).

Definition at line 322 of file varnames.h.

#define IN_CYLINDER_JOINT_VAR_REF (   vname,
  id,
  k,
  ln1,
  ln2,
 
)    sprintf(vname,"_in_cylinder_%s_%s_%s_%s_%u",(k==0?"w1":"w2"),ln1,ln2,(i==0?"x":(i==1?"y":"z")),id)

Two vectors giving the angle between the link in contact with the cylinder and the reference for rotation about the cylinder axis.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
kWhich one of the two vectors to generate (0 for the vector attached ot the link and 1 for the reference vector attached to the cylinder).
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
iVector component (x,y,z).

Definition at line 338 of file varnames.h.

#define IN_CYLINDER_JOINT_VAR_SING_COS (   vname,
  id,
  ln1,
  ln2,
 
)    sprintf(vname,"_in_cylincer_sing_cos_%s_%s_%s_%u",ln1,ln2,(i==0?"l":"r"),id)

Auxiliar variable to detect singularities in in_cylinder joints. This is used to detect singularities for the displacement along the cylinder axis and for the rotations about this axis.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
iIdentifier of the degree of freedom of the in_cylinder joint (0 for the translation along the cylinder axis and 1 for the rotation about this axis).

Definition at line 354 of file varnames.h.

#define IN_CYLINDER_JOINT_VAR_SING_SIN (   vname,
  id,
  ln1,
  ln2 
)    sprintf(vname,"_in_cylincer_sing_cos_%s_%s_l_%u",ln1,ln2,id)

Auxiliar variable to detect singularities in in_cylinder joints. This is only used to detect singularities for the displacement along the cylinder axis.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.

Definition at line 367 of file varnames.h.

#define ROT_JOINT_VAR_REF (   vname,
  id,
  k,
  ln1,
  ln2,
 
)    sprintf(vname,"_%s_%s_%s_%s_%u",(k==0?"w1":"w2"),ln1,ln2,(i==0?"x":(i==1?"y":"z")),id)

Two vectors (x-y-z variables) orthogonal to the rotation axis one attached to the 1st link and the another to the 2nd link.

A third vector aligned with the rotation axis used to define the cross product between the two first vectors.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
kNumber of the vector to which to variable is referred (0,1). The varible for 0 is named *_w1_* and for 1 we get *_w2_*
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
iComponent of the vector (0 for x, 1 for y and 2 for z).

Definition at line 387 of file varnames.h.

Referenced by GenerateJointRangeEquations(), and GenerateJointSolution().

#define UNV_JOINT_VAR_REF (   vname,
  id,
  k,
  ln1,
  ln2,
 
)    sprintf(vname,"_%s_%s_%s_%s_%u",(k==0?"w1":"w2"),ln1,ln2,(i==0?"x":(i==1?"y":"z")),id)

Two vectors (x-y-z variables) to define the angle in a universal joint. The first vector defines the first angle w.r.t. the second rotation axis of the universal joint. The second vector defines the first angle w.r.t. the first rotation axis of the universal joint.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
kNumber of the vector to which to variable is referred (0,1). The varible for 0 is named *_w1_* and for 1 we get *_w2_*
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
iComponent of the vector (0 for x, 1 for y and 2 for z).

Definition at line 408 of file varnames.h.

Referenced by GenerateJointRangeEquations(), and GenerateJointSolution().

#define COS_VAR (   vname,
  id,
  ln1,
  ln2 
)    sprintf(vname,"_cos_%s_%s_%u",ln1,ln2,id)

Cosinus between two links articulated by a rotation/spherical joint (actually, cosinus between two vectors rigidly attached to two links).

In revolute/spherical joints only one angle is possible between two links for a give joint

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.

Definition at line 425 of file varnames.h.

Referenced by GenerateJointRangeEquations(), GenerateJointRangeSingularityEquations(), and GenerateJointSolution().

#define COS_VAR_SING (   vname,
  id,
  ln1,
  ln2 
)    sprintf(vname,"_cos_sing_%s_%s_%u",ln1,ln2,id)

Auxiliar variable to detect singularities in bounded revolute/spherical joints.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.

Definition at line 438 of file varnames.h.

Referenced by GenerateJointRangeSingularityEquations().

#define COS_VAR_UNI (   vname,
  id,
  ln1,
  ln2,
 
)    sprintf(vname,"_cos_%u_%s_%s_%u",k,ln1,ln2,id)

Cosinus between two links articulated by a universal joint. Two cosinus are defined, one for the first rotation and another for the second rotation of the universal joint.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
kIdentifier of the universal joint rotation (0 for the first rotation and 1 for the second one).

Definition at line 455 of file varnames.h.

Referenced by GenerateJointRangeEquations(), GenerateJointRangeSingularityEquations(), and GenerateJointSolution().

#define COS_VAR_UNI_SING (   vname,
  id,
  ln1,
  ln2,
 
)    sprintf(vname,"_cos_sing_%u_%s_%s_%u",k,ln1,ln2,id)

Auxiliar variables to detect singularities in bounded universal joints.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
kIdentifier of the universal joint rotation (0 for the first rotation and 1 for the second one).

Definition at line 469 of file varnames.h.

Referenced by GenerateJointRangeSingularityEquations().

#define SPH_JOINT_VAR_REF (   vname,
  id,
  v,
  ln1,
  ln2,
 
)    sprintf(vname,"_sph_%s_%s_%s_%s_%u",(v==0?"w1":"w2"),ln1,ln2,(k==0?"x":(k==1?"y":"z")),id)

We define two vectors, the first attached to link1 and the second to link2, that must coincide for angle 0.

Parameters
vnameString where to store the variable name.
idUnique identifier for the joint.
vVector identifier (0 for w1, 1 for w2).
ln1Identifier of the first link involved in the joint.
ln2Identifier of the second link involved in the joint.
kComponent of the vector (0 for x, 1 for y and 2 for z).

Definition at line 484 of file varnames.h.

Referenced by GenerateJointRangeEquations(), and GenerateJointSolution().

#define BODY_VERTEX (   vname,
  linkName,
  bID,
  vID,
 
)    sprintf(vname,"_%s_b%u_v%u_%s",linkName,bID,vID,(k==0?"x":(k==1?"y":"z")))

3D vector corresponding to a vertex in a convex part of a link.

Parameters
vnameString where to store the variable name.
linkNameName of the link.
bIDIdentifier of the convex body (i.e., number of convex body in the link).
vIDVertex identifier (i.e., number of bertex in the convex body).
kThe component of the vector (0 for x, 1 for y and 2 for z).

Definition at line 498 of file varnames.h.

#define SPHERE_CENTER (   vname,
  linkName,
  bID,
 
)    sprintf(vname,"_center_%s_b%u_%s",linkName,bID,(k==0?"x":(k==1?"y":"z")))

3D vector corresponding to the center of a sphere defining a body in a link. This is used only when all bodies are spheres and a particular collision detection is implemented.

Parameters
vnameString where to store the variable name.
linkNameName of the link.
bIDIdentifier of the convex body (i.e., number of convex body in the link).
kThe component of the vector (0 for x, 1 for y and 2 for z).

Definition at line 512 of file varnames.h.

#define DIF_CENTERS_LL (   vname,
  linkName1,
  bID1,
  linkName2,
  bID2,
 
)    sprintf(vname,"_diff_%s_b%u_%s_b%u_%s",linkName1,bID1,linkName2,bID2,(k==0?"x":(k==1?"y":"z")))

Substraction between two sphere centers corresponding to particular bodies in two different links.

Parameters
vnameString where to store the variable name.
linkName1Name of the first link.
bID1Identifier of the convex body in the first link.
linkName2Name of the second link.
bID2Identifier of the convex body in the second link.
kThe component of the vector (0 for x, 1 for y and 2 for z).

Definition at line 527 of file varnames.h.

#define DIF_CENTERS_LO (   vname,
  linkName1,
  bID1,
  oID,
 
)    sprintf(vname,"_diff_%s_b%u_o%u_%s",linkName1,bID1,oID,(k==0?"x":(k==1?"y":"z")))

Substraction between a sphere center corresponding to particular body in a given link and a sphere center corresponding to an obstacle (and, thus, with constant coordinates)

Parameters
vnameString where to store the variable name.
linkName1Name of the first link.
bID1Identifier of the convex body in the first link.
oIDIdentifier of the convex body in the environment (i.e., the obstacle).
kThe component of the vector (0 for x, 1 for y and 2 for z).

Definition at line 541 of file varnames.h.

#define SP_BB_PREFIX (   prefix,
  ln1,
  b1,
  ln2,
  b2 
)    sprintf(prefix,"spbb_%s_b%u_%s_b%u",ln1,b1,ln2,b2)

Four variables (a,b,c,d) for each body-body possible collision.

This is only the prefix for this variables. The variable name is completed in SP_VAR.

Parameters
prefixString where to store the prefix.
ln1Identifier of the first link involved in the possible collision.
b1Identifier of the first convex body (i.e., number of convex body in the first link).
ln2Identifier of the second link involved in the possible collision.
b2Identifier of the second convex body (i.e., number of convex body in the second link).

Definition at line 560 of file varnames.h.

#define SP_BO_PREFIX (   prefix,
  ln1,
  b1,
  on 
)    sprintf(prefix,"spbo_%s_b%u_%s",ln1,b1,on)

Four variables (a,b,c,d) for each body-obstacle possible collision.

This is only the prefix for this variables. The variable name is completed in SP_VAR.

Parameters
prefixString where to store the prefix.
ln1Identifier of the first link involved in the possible collision.
b1Identifier of the first convex body (i.e., number of convex body in the first link).
onIdentifier of the obstacle involved in the possible collision.

Definition at line 578 of file varnames.h.

#define SP_VAR (   vname,
  prefix,
 
)    sprintf(vname,"_%s_%s",prefix,(k==0?"a":(k==1?"b":(k==2?"c":(k==3?"g1":"g2")))))

Generates one of the variables used to define separating planes.

Parameters
vnameString where to store the variable name.
prefixPrefix generated with SP_BB_PREFIX or SP_BO_PREFIX.
kNumber of the variable to generate (0 for 'a', 1 for 'b', 2 for 'c', 3 for 'g1' and 4 for 'g2')

Definition at line 589 of file varnames.h.