joint.c
Go to the documentation of this file.
687 Error("The range should be smaller than the minimum extension in Spherical-Prismatic-Spherical joint");
1283 Error("GenerateJointRangeSingularityEquations not yet implemented for JOINT-based representations.");
void NewFreeJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, Tjoint *j) Constructor. Definition: joint.c:101 #define COS_VAR_UNI_SING(vname, id, ln1, ln2, k) End-range singularity variable for each universal joint. Definition: varnames.h:469 Tinterval * GetBoxInterval(unsigned int n, Tbox *b) Returns a pointer to one of the intervals defining the box. Definition: box.c:270 #define REP_JOINTS One of the possible values of the REPRESENTATION parameter. Definition: parameters.h:60 void PrintJoint(FILE *f, Tjoint *j) Stores the joint information into a file. Definition: joint.c:3310 #define IN_PATCH_JOINT_CTRL_VAR_SING_COS(vname, id, ln1, ln2, i) End-range singularity variable for each in_patch joint. Definition: varnames.h:261 void HTransformApply(double *p_in, double *p_out, THTransform *t) Multiply a homogeneous transform and a vector. Definition: htransform.c:728 void HTransformTxyz(double tx, double ty, double tz, THTransform *t) Constructor. Definition: htransform.c:140 void GenerateSaddleEquation(unsigned int vx, unsigned int vy, unsigned int vz, Tequation *eq) Construtor. Generates a saddle equation. Definition: equation.c:1392 void HTransformPrettyPrint(FILE *f, THTransform *t) Prints a homogenoeus transform compactly. Definition: htransform.c:809 #define PRS_JOINT_VAR_SING_SIN(vname, id, ln1, ln2) One end-range singularity variable for each prismatic joint. Definition: varnames.h:180 void NewRevoluteJoint(unsigned int id, unsigned int r, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, boolean hasLimits, Tinterval *range, double **rPoints, boolean avoidLimits, double avoidLimitsWeight, Tjoint *coupled, Tjoint *j) Constructor. Definition: joint.c:132 void SetEquationType(unsigned int type, Tequation *eq) Changes the type of the equation (SYSTEM_EQ, CARTESIAN_EQ, DUMMY_EQ, DERIVED_EQ). ... Definition: equation.c:1013 void GenerateNormEquation(unsigned int vx, unsigned int vy, unsigned int vz, double n, Tequation *eq) Construtor. Generates an equation that is the norm of a 3d vector. Definition: equation.c:1431 void NewSphPrsSphJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, Tinterval *range, double r, Tcolor *color, Tjoint *j) Constructor. Definition: joint.c:652 CBLAS_INLINE void HTransformAcumRot2(THTransform *t_in, unsigned int type, double s, double c, THTransform *t) Computes the result of multiplying a homogeneous transform by a rotation matrix. Definition: htransform.c:716 void GenerateJointEquationsInBranch(Tparameters *p, double s, TCuikSystem *cs, Tequation *eq, Tjoint *j) Generate the constraints of a joint in a sequence. Definition: joint.c:1755 void AddPatchTrans2TransSeq(unsigned int t, int s, unsigned int u, unsigned int v, double **p, TTransSeq *ts) Adds a Parametrized-Patch transform to a transform sequence. Definition: trans_seq.c:375 A homgeneous transform in R^3. void SetBoxInterval(unsigned int n, Tinterval *is, Tbox *b) Replaces a particular interval in a box. Definition: box.c:259 double Det3x3(double *c1, double *c2, double *c3) Determinant of a 3x3 matrix. Definition: geom.c:730 CBLAS_INLINE double Norm(unsigned int s, double *v) Computes the norm of a vector. Definition: basic_algebra.c:265 unsigned int AddVariable2CS(Tvariable *v, TCuikSystem *cs) Adds a variable to the system. Definition: cuiksystem.c:2511 void IntervalAdd(Tinterval *i1, Tinterval *i2, Tinterval *i_out) Addition of two intervals. Definition: interval.c:418 void NewFixJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, THTransform *t, Tjoint *j) Constructor. Definition: joint.c:110 Definition of variable names. CBLAS_INLINE void SumVector(unsigned int s, double *v1, double *v2, double *v) Adds two vectors. Definition: basic_algebra.c:67 void HTransformApplyRot(double *p_in, double *p_out, THTransform *t) Multiply the rotation part of the homogeneous transform and a vector. Definition: htransform.c:747 void NewSphericalJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, boolean hasLimits, double range, double **rPoints, boolean avoidLimits, double avoidLimitsWeight, Tjoint *j) Constructor. Definition: joint.c:452 CBLAS_INLINE void HTransformAcumTrans(double tx, double ty, double tz, THTransform *t) Computes the result of multiplying a homogeneous transform by a translation matrix with parameters tx... Definition: htransform.c:641 void SetVariableInterval(Tinterval *i, Tvariable *v) Sets the new range for the variable. Definition: variable.c:70 CBLAS_INLINE void Normalize(unsigned int s, double *v) Normalizes a vector. Definition: basic_algebra.c:442 void GenerateJointRangeSingularityEquations(Tparameters *p, TCuikSystem *cs, Tjoint *j) Modifies the cuik system to detect end range singularities. Definition: joint.c:1276 void NewUniversalJoint(unsigned int id, unsigned int r, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, boolean hasLimits, Tinterval *range1, Tinterval *range2, double **rPoints, boolean avoidLimits, double avoidLimitsWeight, Tjoint *j) Constructor. Definition: joint.c:288 void GetJointDOFValues(Tparameters *p, THTransform *t1, THTransform *t2, double *dof, Tjoint *j) Recovers the joint DOFs from the absolute poses of the links. Definition: joint.c:2644 void PlotSphere(double r, double x, double y, double z, Tplot3d *p) Adds a sphere to the current object. Definition: plot3d.c:369 void NewInPatchJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, double **patch, boolean avoidLimits, double avoidLimitsWeight, Tjoint *j) Constructor. Definition: joint.c:709 CBLAS_INLINE void HTransformProduct(THTransform *t1, THTransform *t2, THTransform *t3) Product of two homogeneous transforms. Definition: htransform.c:404 #define ZERO Floating point operations giving a value below this constant (in absolute value) are considered 0... Definition: defines.h:37 #define COS_VAR_UNI(vname, id, ln1, ln2, k) Cosinus between two links for universal joints. Definition: varnames.h:455 void SetEquationValue(double v, Tequation *eq) Changes the right-hand value of the equation. Definition: equation.c:1026 void HTransformX2Vect(double sy, double sz, double *p1, double *p2, THTransform *t) Transform a unitary vector along the X axis to a generic vector. Definition: htransform.c:539 void Move3dObject(unsigned int nobj, THTransform *t, Tplot3d *p) Moves a 3d object. Definition: plot3d.c:217 void AddMonomial(Tmonomial *f, Tequation *eq) Adds a new monomial to the equation. Definition: equation.c:1356 void AddTerm2SearchCriterion(double w, unsigned int v, double val, TCuikSystem *cs) Adds penalty terms to the search criterion. Definition: cuiksystem.c:2438 void GenerateJointEquations(Tparameters *p, double maxCoord, TCuikSystem *cs, Tjoint *j) Generate the constraints related with the joint. Definition: joint.c:1920 void GetJointRangeN(unsigned int nr, double mt, Tinterval *r, Tjoint *j) Returns one of the ranges of the joint. Definition: joint.c:1037 #define SPH_JOINT_VAR_REF(vname, id, v, ln1, ln2, k) Two vectors defined for when limiting the movement of a spherical joints. Definition: varnames.h:484 void GetJointTransSeq(Tparameters *p, TCuikSystem *cs, TTransSeq *ts, Tjoint *j) Build the sequence of transforms passing through the joint. Definition: joint.c:2895 Error and warning functions. unsigned int JointToID(Tjoint *j) Gets the identifier of the second link involved in the joint. Definition: joint.c:951 void NewSphSphJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, double l, double r, Tcolor *color, Tjoint *j) Constructor. Definition: joint.c:609 boolean IntervalSqrt(Tinterval *i, Tinterval *i_out) Interval square root. Definition: interval.c:525 double HTransformGetElement(unsigned int i, unsigned int j, THTransform *t) Gets an element in a homogeneous transform. Definition: htransform.c:323 void RegenerateJointBox(Tparameters *p, TCuikSystem *cs, Tbox *b, Tjoint *j) Computes the values for the dummy variables used in the joint equations. Definition: joint.c:2292 void HTransformFromVectors(double *x, double *y, double *z, double *h, THTransform *t) Defines a homogeneous transform from 4 vectors. Definition: htransform.c:335 void SetEquationCmp(unsigned int cmp, Tequation *eq) Changes the relational operator (LEQ, GEQ, EQU) of the equation. Definition: equation.c:1018 double DotProduct(double *v1, double *v2) Computes the dot product of two 3d vectors. Definition: geom.c:643 void HTransformInverse(THTransform *t, THTransform *ti) Inverse of a homogeneous transform. Definition: htransform.c:468 boolean IsJointAllSpheres(Tjoint *j) Identifies joint formed only by spheres. Definition: joint.c:1004 void GetJointPoint(unsigned int link, unsigned int point, double *p, Tjoint *j) Gets one of the points defining the rotation/sliding axis for the joint. Definition: joint.c:1012 #define UNV_JOINT_VAR(vname, id, ln1, ln2, i, k) Two vectors for each universal joint. Definition: varnames.h:207 #define IN_PATCH_JOINT_SCALE_VAR(vname, id, ln1, ln2) Scale factor for the normal vector to a first order Bezier patch. Definition: varnames.h:277 unsigned int CoupledWith(Tjoint *j) Returns the identifier of the joint coupled with the query joint. Definition: joint.c:1216 double GetJointMaxCoordinate(Tjoint *j) Returns the maximum coordinate value for all the objects in the joint. Definition: joint.c:3130 Definitions of constants and macros used in several parts of the cuik library. Definition of the Tjoint type and the associated functions. void GetYawPitchRoll(double *a, double *b, double *c, THTransform *t) Recovers the Euler angles from a rotation matrix. Definition: htransform.c:599 #define IsGroundLink(id) A test that return TRUE if the given identifier is that of the ground link. Definition: link.h:79 void DifferenceVector(unsigned int s, double *v1, double *v2, double *v) Substracts two vectors. Definition: basic_algebra.c:223 void GenerateJointRangeEquations(Tparameters *p, TCuikSystem *cs, Tjoint *j) Generate the constraints related with the joint limits. Definition: joint.c:1463 void InitJoint(unsigned int t, unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, Tjoint *j) Initializes all fields for a joint with dummy values. Definition: joint.c:42 void AddEquation2CS(Tparameters *p, Tequation *eq, TCuikSystem *cs) Adds an equation to the system. Definition: cuiksystem.c:2481 void ApplyLinkRot(Tparameters *pr, double sf, unsigned int sv, double *p, Tequation *eq, TCuikSystem *cs, boolean groundLink, Tlink *l) Transforms a vector from the local reference frame to the global one and accumulates the resulting ex... Definition: link.c:834 A table of parameters. #define COS_VAR(vname, id, ln1, ln2) Cosinus between two links for rotation/spherical joints. Definition: varnames.h:425 CBLAS_INLINE void HTransformAcumRot(unsigned int type, double s, double c, THTransform *t) Computes the result of multiplying a homogeneous transform by a rotation matrix. Definition: htransform.c:673 void GetJointName(char **name, Tjoint *j) Returns a string identifying the joint. Definition: joint.c:961 #define UNV_JOINT_VAR_REF(vname, id, k, ln1, ln2, i) Two vectors to define the angle in a universal joint. Definition: varnames.h:408 Tlink * JointTo(Tjoint *j) Gets a pointer to the second link involved in the joint. Definition: joint.c:956 void GetJointTransform(double *dof, THTransform *t, Tjoint *j) Computes the transform induced by the joint. Definition: joint.c:2527 #define IN_PATCH_JOINT_CTRL_VAR(vname, id, ln1, ln2, i) Control variables defining a first order Bezier patch. Definition: varnames.h:235 #define COS_VAR_SING(vname, id, ln1, ln2) One end-range singularity variable for each revolute joint. Definition: varnames.h:438 void AddVarTrans2TransSeq(unsigned int t, int s, unsigned int v, TTransSeq *ts) Adds a variable transform to the sequence. Definition: trans_seq.c:338 double GetJointLength(Tjoint *j) Returns the length of a spherical-spherical joint. Definition: joint.c:1268 void GetTransform2Link(Tparameters *p, TCuikSystem *cs, double *sol, boolean groundLink, double *trans, THTransform *t, Tlink *l) Gets the homogeneous transform associated with a link for a given solution point. ... Definition: link.c:1311 #define ROT_JOINT_VAR_REF(vname, id, k, ln1, ln2, i) Two vectors to define the angle in a revolute joint. Definition: varnames.h:387 A cuiksystem, i.e., a set of variables and equations defining a position analysis problem... Definition: cuiksystem.h:181 #define NO_UINT Used to denote an identifier that has not been initialized. Definition: defines.h:435 CBLAS_INLINE void SumVectorScale(unsigned int s, double *v1, double w, double *v2, double *v) Adds two vectors with a scale. Definition: basic_algebra.c:86 void IntervalScale(Tinterval *i1, double e, Tinterval *i_out) Scales an interval. Definition: interval.c:355 void AddVariable2Monomial(unsigned int fn, unsigned int varid, unsigned int p, Tmonomial *f) Adds a power variable to the monomial. Definition: monomial.c:171 void SetVariableTopology(unsigned int t, Tvariable *v) Sets the topology of the variable. Definition: variable.c:44 void AddDispTrans2TransSeq(int s, unsigned int v, double *vect, TTransSeq *ts) Adds a displacement transform to the sequence. Definition: trans_seq.c:361 void NewPrismaticJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, Tinterval *range, boolean avoidLimits, double avoidLimitsWeight, Tjoint *j) Constructor. Definition: joint.c:541 double GetParameter(unsigned int n, Tparameters *p) Gets the value for a particular parameter. Definition: parameters.c:93 void IntervalProduct(Tinterval *i1, Tinterval *i2, Tinterval *i_out) Product of two intervals. Definition: interval.c:384 #define FREE_JOINT_VAR(vname, id, id1, ln1, id2, ln2, k) Variables for a free joint. Definition: varnames.h:155 void RegenerateJointSolution(Tparameters *p, TCuikSystem *cs, double *sol, Tjoint *j) Computes the values for the dummy variables used in the joint equations. Definition: joint.c:2256 #define PRS_JOINT_VAR(vname, id, ln1, ln2) One variable for each prismatic joint. Definition: varnames.h:168 Tlink * JointFrom(Tjoint *j) Gets a pointer to the first link involved in the joint. Definition: joint.c:946 void HTransformSetElement(unsigned int i, unsigned int j, double v, THTransform *t) Sets an element in a homogeneous transform. Definition: htransform.c:306 void MoveJointFromTransforms(Tparameters *p, Tplot3d *pt, THTransform *t1, THTransform *t2, Tjoint *j) Displaces a joint in a 3d scene. Definition: joint.c:3199 signed int GetJointDOF(Tjoint *j) Computes the degrees of freedom allowed by a given joint. Definition: joint.c:1224 void AddCtTrans2TransSeq(THTransform *t, TTransSeq *ts) Adds a constant transform to the sequence. Definition: trans_seq.c:313 #define PRS_JOINT_VAR_SING_COS(vname, id, ln1, ln2) One end-range singularity variable for each prismatic joint. Definition: varnames.h:192 void HTransformCopy(THTransform *t_dst, THTransform *t_src) Copy constructor. Definition: htransform.c:83 void DefineNormalVector(double *v, double *n) Defines a unitary vector normal to a given vector. Definition: geom.c:571 unsigned int GetCSVariableID(char *name, TCuikSystem *cs) Gets the numerical identifier of a variable given its name. Definition: cuiksystem.c:2586 #define SPH_SPH_JOINT_VAR(vname, id, ln1, ln2, i) A vector for each spherical-spherical composite joint. Definition: varnames.h:220 void PlotCylinder(double r, double *p1, double *p2, Tplot3d *p) Adds a cylinder to the current object. Definition: plot3d.c:377 void CrossProduct(double *v1, double *v2, double *v3) Computes the cross product of two 3d vectors. Definition: geom.c:630 unsigned int JointFromID(Tjoint *j) Gets the identifier of the first link involved in the joint. Definition: joint.c:941 unsigned int StartNew3dObject(Tcolor *c, Tplot3d *p) Start a composed object. Definition: plot3d.c:157 unsigned int GetJointRangeTopology(unsigned int nr, Tjoint *j) Returns the topology of one of the ranges of the joint. Definition: joint.c:1137 #define IN_PATCH_JOINT_CTRL_VAR_SING_SIN(vname, id, ln1, ln2, i) End-range singularity variable for each in_patch joint. Definition: varnames.h:248 void PrintJointAxes(Tparameters *p, FILE *f, TCuikSystem *cs, double *sol, double *r, Tjoint *j) Prints the joint axis in world coordinates. Definition: joint.c:3271 void GenerateJointSolution(Tparameters *p, double *dof, THTransform *t1, THTransform *t2, TCuikSystem *cs, double *sol, Tjoint *j) Generates a solution point from degrees of freedom. Definition: joint.c:2330 void GenerateDotProductEquation(unsigned int v1x, unsigned int v1y, unsigned int v1z, unsigned int v2x, unsigned int v2y, unsigned int v2z, unsigned int vc, double c, Tequation *eq) Construtor. Generates the equation of the dot product of two unitary vectors. Definition: equation.c:1526 Tinterval * GetJointSecondRange(Tjoint *j) Checks the second limit of a universal joint. Definition: joint.c:1032 void IntervalOffset(Tinterval *i, double offset, Tinterval *i_out) Interval offset. Definition: interval.c:622 |
Follow us!