joint.c
Go to the documentation of this file.
1340 Error("GenerateJointRangeSingularityEquations not yet implemented for JOINT-based representations.");
1925 void JointForceEquation(Tparameters *pr,unsigned int linkID,TCuikSystem *cs,Tequation *eq,Tjoint *j)
void NewFreeJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, Tjoint *j) Constructor. Definition: joint.c:93 #define COS_VAR_UNI_SING(vname, id, ln1, ln2, k) End-range singularity variable for each universal joint. Definition: varnames.h:398 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:3054 #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:280 void HTransformApply(double *p_in, double *p_out, THTransform *t) Multiply a homogeneous transform and a vector. Definition: htransform.c:782 void HTransformTxyz(double tx, double ty, double tz, THTransform *t) Constructor. Definition: htransform.c:146 void GenerateSaddleEquation(unsigned int vx, unsigned int vy, unsigned int vz, Tequation *eq) Construtor. Generates a saddle equation. Definition: equation.c:1455 void HTransformPrettyPrint(FILE *f, THTransform *t) Prints a homogenoeus transform compactly. Definition: htransform.c:863 #define PRS_JOINT_VAR_SING_SIN(vname, id, ln1, ln2) One end-range singularity variable for each prismatic joint. Definition: varnames.h:212 void JointForceEquation(Tparameters *pr, unsigned int linkID, TCuikSystem *cs, Tequation *eq, Tjoint *j) Add the force terms derived from a given joint. Definition: joint.c:1925 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:124 void SetEquationType(unsigned int type, Tequation *eq) Changes the type of the equation (SYSTEM_EQ, CARTESIAN_EQ, DUMMY_EQ, DERIVED_EQ). ... Definition: equation.c:1076 void GenerateJointEquationsInBranch(Tparameters *p, double s, TCuikSystem *cs, Tequation *eq, Tjoint *j) Generate the constraints of a joint in a sequence. Definition: joint.c:1812 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:615 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 void NewRevLowJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, Tjoint *j) Constructor. Definition: joint.c:627 double Det3x3(double *c1, double *c2, double *c3) Determinant of a 3x3 matrix. Definition: geom.c:739 CBLAS_INLINE double Norm(unsigned int s, double *v) Computes the norm of a vector. Definition: basic_algebra.c:356 unsigned int AddVariable2CS(Tvariable *v, TCuikSystem *cs) Adds a variable to the system. Definition: cuiksystem.c:2532 void IntervalAdd(Tinterval *i1, Tinterval *i2, Tinterval *i_out) Addition of two intervals. Definition: interval.c:423 void NewFixJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, THTransform *t, Tjoint *j) Constructor. Definition: joint.c:102 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:801 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:444 void GetJointDOFName(unsigned int ndof, char **name, Tjoint *j) Label for a specific dof of a joint. Definition: joint.c:1006 void SetVariableInterval(Tinterval *i, Tvariable *v) Sets the new range for the variable. Definition: variable.c:68 CBLAS_INLINE void Normalize(unsigned int s, double *v) Normalizes a vector. Definition: basic_algebra.c:592 void GenerateJointRangeSingularityEquations(Tparameters *p, TCuikSystem *cs, Tjoint *j) Modifies the cuik system to detect end range singularities. Definition: joint.c:1333 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:280 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:2638 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:715 CBLAS_INLINE void HTransformProduct(THTransform *t1, THTransform *t2, THTransform *t3) Product of two homogeneous transforms. Definition: htransform.c:410 #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:384 void SetEquationValue(double v, Tequation *eq) Changes the right-hand value of the equation. Definition: equation.c:1089 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:574 void AddMonomial(Tmonomial *f, Tequation *eq) Adds a new monomial to the equation. Definition: equation.c:1419 void AddTerm2SearchCriterion(double w, unsigned int v, double val, TCuikSystem *cs) Adds penalty terms to the search criterion. Definition: cuiksystem.c:2456 void GenerateJointEquations(Tparameters *p, double maxCoord, TCuikSystem *cs, Tjoint *j) Generate the constraints related with the joint. Definition: joint.c:1967 void NewSphSphUpJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, Tjoint *j) Constructor. Definition: joint.c:612 void GetJointRangeN(unsigned int nr, double mt, Tinterval *r, Tjoint *j) Returns one of the ranges of the joint. Definition: joint.c:1127 #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:413 void GetJointTransSeq(Tparameters *p, TCuikSystem *cs, TTransSeq *ts, Tjoint *j) Build the sequence of transforms passing through the joint. Definition: joint.c:2829 Error and warning functions. void GetTransform2Link(Tparameters *p, TCuikSystem *cs, double *sol, boolean groundLink, double *trans, THTransform *t, TLinkConf *def, Tlink *l) Gets the homogeneous transform associated with a link for a given solution point. ... Definition: link.c:3172 unsigned int JointToID(Tjoint *j) Gets the identifier of the second link involved in the joint. Definition: joint.c:956 boolean IntervalSqrt(Tinterval *i, Tinterval *i_out) Interval square root. Definition: interval.c:530 double HTransformGetElement(unsigned int i, unsigned int j, THTransform *t) Gets an element in a homogeneous transform. Definition: htransform.c:329 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:2327 void ApplyLinkRotNoDeform(Tparameters *pr, double sf, unsigned int sv, double *p, Tequation *eq, TCuikSystem *cs, boolean groundLink, Tlink *l) Variant of ApplyLinkRot. Definition: link.c:2498 void HTransformFromVectors(double *x, double *y, double *z, double *h, THTransform *t) Defines a homogeneous transform from 4 vectors. Definition: htransform.c:341 void SetEquationCmp(unsigned int cmp, Tequation *eq) Changes the relational operator (LEQ, GEQ, EQU) of the equation. Definition: equation.c:1081 double DotProduct(double *v1, double *v2) Computes the dot product of two 3d vectors. Definition: geom.c:652 void HTransformInverse(THTransform *t, THTransform *ti) Inverse of a homogeneous transform. Definition: htransform.c:503 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:1102 #define UNV_JOINT_VAR(vname, id, ln1, ln2, i, k) Two vectors for each universal joint. Definition: varnames.h:239 #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:296 unsigned int CoupledWith(Tjoint *j) Returns the identifier of the joint coupled with the query joint. Definition: joint.c:1285 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:634 #define IsGroundLink(id) A test that return TRUE if the given identifier is that of the ground link. Definition: link.h:167 void DifferenceVector(unsigned int s, double *v1, double *v2, double *v) Substracts two vectors. Definition: basic_algebra.c:264 void GenerateJointRangeEquations(Tparameters *p, TCuikSystem *cs, Tjoint *j) Generate the constraints related with the joint limits. Definition: joint.c:1521 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:2502 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:2441 A table of parameters. unsigned int GetJointDOF(Tjoint *j) Computes the degrees of freedom allowed by a given joint. Definition: joint.c:1293 #define COS_VAR(vname, id, ln1, ln2) Cosinus between two links for rotation/spherical joints. Definition: varnames.h:354 void NewRevUpJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, Tjoint *j) Constructor. Definition: joint.c:668 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:727 void GetJointName(char **name, Tjoint *j) Returns a string identifying the joint. Definition: joint.c:966 #define UNV_JOINT_VAR_REF(vname, id, k, ln1, ln2, i) Two vectors to define the angle in a universal joint. Definition: varnames.h:337 Tlink * JointTo(Tjoint *j) Gets a pointer to the second link involved in the joint. Definition: joint.c:961 void GetJointTransform(double *dof, THTransform *t, Tjoint *j) Computes the transform induced by the joint. Definition: joint.c:2537 #define IN_PATCH_JOINT_CTRL_VAR(vname, id, ln1, ln2, i) Control variables defining a first order Bezier patch. Definition: varnames.h:254 #define COS_VAR_SING(vname, id, ln1, ln2) One end-range singularity variable for each revolute joint. Definition: varnames.h:367 void AddVarTrans2TransSeq(unsigned int t, int s, unsigned int v, TTransSeq *ts) Adds a variable transform to the sequence. Definition: trans_seq.c:578 #define ROT_JOINT_VAR_REF(vname, id, k, ln1, ln2, i) Two vectors to define the angle in a revolute joint. Definition: varnames.h:316 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:360 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 NewSphSphLowJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, Tjoint *j) Constructor. Definition: joint.c:601 void SetVariableTopology(unsigned int t, Tvariable *v) Sets the topology of the variable. Definition: variable.c:42 void AddDispTrans2TransSeq(int s, unsigned int v, double *vect, TTransSeq *ts) Adds a displacement transform to the sequence. Definition: trans_seq.c:601 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:533 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:389 #define FREE_JOINT_VAR(vname, id, id1, ln1, id2, ln2, k) Variables for a free joint. Definition: varnames.h:187 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:2291 #define PRS_JOINT_VAR(vname, id, ln1, ln2) One variable for each prismatic joint. Definition: varnames.h:200 Tlink * JointFrom(Tjoint *j) Gets a pointer to the first link involved in the joint. Definition: joint.c:951 void HTransformSetElement(unsigned int i, unsigned int j, double v, THTransform *t) Sets an element in a homogeneous transform. Definition: htransform.c:312 void AddCtTrans2TransSeq(THTransform *t, TTransSeq *ts) Adds a constant transform to the sequence. Definition: trans_seq.c:550 #define PRS_JOINT_VAR_SING_COS(vname, id, ln1, ln2) One end-range singularity variable for each prismatic joint. Definition: varnames.h:224 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:2607 unsigned int GetLinkForceModel(Tlink *l) Identify the force model of the link. Definition: link.c:1264 void CrossProduct(double *v1, double *v2, double *v3) Computes the cross product of two 3d vectors. Definition: geom.c:639 unsigned int JointFromID(Tjoint *j) Gets the identifier of the first link involved in the joint. Definition: joint.c:946 unsigned int GetJointRangeTopology(unsigned int nr, Tjoint *j) Returns the topology of one of the ranges of the joint. Definition: joint.c:1214 #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:267 void PrintJointAxes(Tparameters *p, FILE *f, TCuikSystem *cs, double *sol, double *r, Tjoint *j) Prints the joint axis in world coordinates. Definition: joint.c:3014 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:2365 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:1588 Tinterval * GetJointSecondRange(Tjoint *j) Checks the second limit of a universal joint. Definition: joint.c:1122 void IntervalOffset(Tinterval *i, double offset, Tinterval *i_out) Interval offset. Definition: interval.c:627 |
Follow us!