world.c
Go to the documentation of this file.
2515 Error("GenerateForceEquilibriumEquations assumes that the equations are already generated (GenerateWorldEquations)");
2590 Error("WorldForceVars assumes that the equations are already generated (GenerateWorldEquations)");
2622 Error("WorldSimpKinematicVars assumes that the equations are already generated (GenerateWorldEquations)");
2689 Error("WorldPotentialEnergy assumes that the equations are already generated (GenerateWorldEquations)");
2732 Error("WorldPotentialEnergyGradient assumes that the equations are already generated (GenerateWorldEquations)");
2898 Error("WorldCoupleTensegrityVariable assumes that the equations are already generated (GenerateWorldEquations)");
3127 Error("Translation variable is not included in the cuiksystem (in GenerateWorldTWSEquations)");
3246 inline void WorldEvaluateSubSetSimpEquations(Tparameters *p,boolean *se,double *pt,double *r,Tworld *w)
3362 inline unsigned int WorldGenerateSimplifiedPoint(Tparameters *p,double *o,double **s,Tworld *w)
3370 unsigned int WorldGenerateSimplifiedPointFromSystem(Tparameters *p,double *o,double **s,Tworld *w)
3526 void WorldAtomJacobian(Tparameters *pr,double *sol,unsigned int *nr,unsigned int *nc,double ***J,Tworld *w)
3590 Warning("System-solution dimension missmatch in MoveWorld (using only the first values in the solution)");
void AddLeg2World(char *name, boolean planar, unsigned int type, unsigned int lID1, unsigned int lID2, double **points, Tinterval *length, double stiffness, Tinterval *rest, Tinterval *force, double radius, unsigned int gr, Tcolor *color, unsigned int bs, Tworld *w) Adds a sph-sph joint to the world. Definition: world.c:1446 boolean NewtonInWorld(Tparameters *p, double *v, Tbox *b_sol, Tworld *w) Generates a sample from a the kinematic cuiksystem in the world using the Newton algorithm. Definition: world.c:2335 void GetJointDOFName(unsigned int ndof, char **name, Tjoint *j) Label for a specific dof of a joint. Definition: joint.c:1006 void First(Titerator *i) Moves an iterator to the first position of its associated list. Definition: list.c:356 void GetWorldDOFLabel(unsigned int ndof, char **string, Tworld *w) Returns a label identifying each degree of freedom. Definition: world.c:2036 void GetJointTransform(double *dof, THTransform *t, Tjoint *j) Computes the transform induced by the joint. Definition: joint.c:2537 unsigned int GetWorldObstacleID(char *obsName, Tworld *w) Gets the identifier of an obstacle from its name. Definition: world.c:1837 boolean Intersection(Tinterval *i1, Tinterval *i2, Tinterval *i_out) Computes the intersection of two intervals. Definition: interval.c:285 void GetLinkPoseSimpVars(Tparameters *p, boolean *sv, TCuikSystem *cs, Tlink *l) Identifies the simplified variables giving the rotation of the link. Definition: link.c:1883 #define COUPLE_LENGTH One of the possible variables to couple in tensegrities. Definition: world.h:77 void RegenerateMechanismSolution(Tparameters *p, TCuikSystem *cs, double *sol, Tmechanism *m) Computes the values for the non-system variables used to represent the rotation matrices for all link... Definition: mechanism.c:230 unsigned int WorldManifoldDimension(Tparameters *p, double *point, Tworld *w) Dimensionality of the solution manifold.+. Definition: world.c:3404 #define INITIAL_FRAME_DELAY When generating 3d animations, delay before starting the animation. Definition: world.h:39 unsigned int WorldGenerateSimplifiedPoint(Tparameters *p, double *o, double **s, Tworld *w) Reconstruct a point in simplified kinematic system from an original point. Definition: world.c:3362 void CheckLinkLinkCollision(unsigned int a, unsigned int b, Tworld *w) Activates the possible collision between a particular pair of links. Definition: world.c:2167 Tinterval * GetBoxInterval(unsigned int n, Tbox *b) Returns a pointer to one of the intervals defining the box. Definition: box.c:270 signed int GetMechanismMobility(Tmechanism *m) Computes the mobility of a given mechanism. Definition: mechanism.c:74 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 void EvaluateSubSetSimpCSEquations(Tparameters *pr, boolean *se, double *p, double *r, TCuikSystem *cs) Evaluates a subset of the simplified equation set on a point. Definition: cuiksystem.c:5100 unsigned int SetForceRelatedVars(unsigned int r, boolean *vars, TCuikSystem *cs, Tlink *l) Identifies the force-related variables of the link. Definition: link.c:1596 void WorldInitDOFInfo(Tworld *w) Collects information about the DOF of the mechanism. Definition: world.c:1896 Tequation * GetEquation(unsigned int n, Tequations *eqs) Gets an equation from the set. Definition: equations.c:1799 #define REP_JOINTS One of the possible values of the REPRESENTATION parameter. Definition: parameters.h:60 void NoCheckLinkObstacleCollision(unsigned int a, unsigned int b, Tworld *w) Desactivates the possible collision between a particular link and an object in the environment... Definition: world.c:2200 boolean IsCSPolynomial(TCuikSystem *cs) Identifies polynomial cuiksystems. Definition: cuiksystem.c:2696 void InitJacobian(Tvariables *vs, Tequations *eqs, TJacobian *j) Constructor. Definition: jacobian.c:16 unsigned int VectorSize(Tvector *vector) Gets the number of elements in a vector. Definition: vector.c:173 boolean LinkCanCollide(unsigned int l, unsigned int nl, unsigned int no, boolean **checkCollisionsLL, boolean **checkCollisionsLO) Identifies links than can collide. Definition: cd.c:2218 void AddObstacle2World(char *name, Tpolyhedron *o, Tworld *w) Adds an obstacle to the environment in the world. Definition: world.c:1788 unsigned int ManifoldDimension(Tparameters *pr, double *p, TCuikSystem *cs) Computes the dimension of the solution space. Definition: cuiksystem.c:5312 void GetLinkTransSeq(Tparameters *p, TCuikSystem *cs, TTransSeq *ts, Tlink *l) Build the sequence of transforms passing through the link. Definition: link.c:1355 void DeleteLinkTransforms(THTransform *tl, TLinkConf *def, Tworld *w) Deletes transforms for each link. Definition: world.c:1336 void GetLinkDOFLabel(unsigned int i, char **n, Tlink *l) Returns a label for a given configuration parameter. Definition: link.c:1532 unsigned int SimplifyBooleanArray(Tparameters *p, boolean *bo, boolean **bs, TCuikSystem *cs) Transforms arrays of booleans from the original to the simplified system. Definition: cuiksystem.c:5002 void GenerateMEquationFromBranch(Tparameters *p, Tbranch *b, TMequation *meq, Tworld *w) Generates a matrix equation from a branch. Definition: world.c:725 unsigned int AddLink2World(Tlink *l, boolean endEffector, Tworld *w) Adds a link to the mechanism in the world. Definition: world.c:1383 void ChangeLinkReferenceFrame(unsigned int r, double **p1, double **p2, Tlink *l) Sets a new reference frame for the link. Definition: link.c:1115 Tpolyhedron * GetLinkBody(unsigned int i, Tlink *l) Gets one of the convex parts of the link. Definition: link.c:1227 void InitWorldCD(Tparameters *pr, unsigned int mt, Tworld *w) Initializes the collision detector. Definition: world.c:1030 void PlotMechanism(Tplot3d *pt, double axesLength, Tmechanism *m) Adds a mechanism to a 3d scene. Definition: mechanism.c:212 boolean WorldSimpInequalitiesHold(Tparameters *p, double *pt, Tworld *w) Check if the inequalities hold for the simplified system. Definition: world.c:3222 void GetPolyhedronCenter(double *c, Tpolyhedron *p) Gets the center of the spheres. Definition: polyhedron.c:1353 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 unsigned int WorldGenerateSimplifiedPointFromSystem(Tparameters *p, double *o, double **s, Tworld *w) Reconstruct a point in simplified kinematic system from an original point. Definition: world.c:3370 void GetWorldInitialBox(Tbox *b, Tworld *w) Gets the kinematic search space for a given problem. Definition: world.c:3388 Data structure to hold the information about the name of a file. Definition: filename.h:271 void PlotWorld(Tparameters *pr, Tplot3d *pt, double axesLength, Tworld *w) Adds a world (environment plus mechanism) in a 3D scene. Definition: world.c:3452 void GetWorldJointLabel(unsigned int ndof, char **string, Tworld *w) Returns a label identifying each joint. Definition: world.c:2024 void WorldForceFieldProjectedGradient(Tparameters *p, boolean simp, double *proj, double *sol, double **g, void *w) The projected gradient of the force field. Definition: world.c:2776 double GetMechanismMaxCoordinate(Tmechanism *m) Returns the sum of the maximum coordinate value for all the links and joints in the mechanism... Definition: mechanism.c:46 void GetWorldSimpInitialBox(Tparameters *p, Tbox *b, Tworld *w) Gets the kinematic simplified search space for a given problem. Definition: world.c:3396 void GenerateInitialBox(Tbox *box, TCuikSystem *cs) Gives the search space in the form of a box. Definition: cuiksystem.c:4849 unsigned int GetJointDOF(Tjoint *j) Computes the degrees of freedom allowed by a given joint. Definition: joint.c:1293 boolean GenerateEquationsFromBranch(Tparameters *p, unsigned int eq_type, TCuikSystem *cs, Tbranch *b, Tworld *w) Generate equations from a branch. Definition: world.c:794 unsigned int MaxWorldReduction(Tparameters *p, Tbox *b, double *reduction, Tworld *w) Reduces the system variables as much as possible using the kinematic constraints. ... Definition: world.c:3412 void GetLinkTransformsFromSolution(Tparameters *p, double *sol, THTransform **tl, TLinkConf **def, Tworld *w) Define transforms for the links from the a solution point. Definition: world.c:1305 void * GetVectorElement(unsigned int i, Tvector *vector) Returns a pointer to a vector element. Definition: vector.c:270 A homgeneous transform in R^3. void AddMatrixEquation(TMequation *equation, Tequations *eqs) Adds a matrix equation to the set. Definition: equations.c:1759 void SetBoxInterval(unsigned int n, Tinterval *is, Tbox *b) Replaces a particular interval in a box. Definition: box.c:259 double EvaluateWorldCost(Tparameters *p, boolean simp, double *pt, void *w) Evaluates the functions cost defined in a world. Definition: world.c:3281 void GenerateTransEquationsFromBranch(Tparameters *p, unsigned int eq_type, Tequation *eqs, Tbranch *b, Tworld *w) Generate equations from a branch. Definition: world.c:756 #define FINAL_FRAME_DELAY When generating 3d animations, delay between the end of the animation and the exit of the animation b... Definition: world.h:53 void AddShape2Environment(char *name, Tpolyhedron *o, Tenvironment *e) Adds an obstacle (i.e., a convex polyhedron) to the environment. Definition: environment.c:20 unsigned int AddVariable2CS(Tvariable *v, TCuikSystem *cs) Adds a variable to the system. Definition: cuiksystem.c:2532 void WorldForceField(Tparameters *p, boolean simp, double *sol, double **g, void *w) Evaluates the gradient of the potential energy of a configuration. Definition: world.c:2722 Definition of variable names. void CopyEquation(Tequation *eq_dst, Tequation *eq_orig) Copy constructor. Definition: equation.c:216 void GetBranchStep(unsigned int i, double *s, Tjoint **joint, Tbranch *b) Retrives a particular step form a kinematic chain. Definition: world.c:185 unsigned int WorldDOFTopology(unsigned int **t, Tworld *w) Gets the topology of the degrees of freedom. Definition: world.c:3171 double ErrorInSimpCSEquations(Tparameters *pr, double *p, TCuikSystem *cs) Evaluates the norm of the error in a point for the simplified equations. Definition: cuiksystem.c:5140 Tlink * JointFrom(Tjoint *j) Gets a pointer to the first link involved in the joint. Definition: joint.c:951 unsigned int GetWorldSimpVariableMask(Tparameters *p, boolean **sv, Tworld *w) Identifies pose related variable that survied in the simplified system. Definition: world.c:2396 void InitCD(unsigned int engine, boolean parallel, Tmechanism *m, Tenvironment *e, boolean **checkCollisionsLL, boolean **checkCollisionsLO, TworldCD *cd) Initializes the collision detector. Definition: cd.c:2135 void AddSimplifiedJacobianEquations(Tparameters *p, boolean *selectedVars, TCuikSystem *cs) Adds a linear combination of the Jacobian to the system. Definition: cuiksystem.c:2835 unsigned int GetCSSystemVars(boolean **sv, TCuikSystem *cs) Identifies the system variables. Definition: cuiksystem.c:2659 void PrintWorldCS(Tparameters *p, char *fname, Tworld *w) Prints the cuiksystems derived from a world. Definition: world.c:3881 Tinterval * GetLinkDOFRange(unsigned int i, Tlink *l) Gets a given DOF range. Definition: link.c:1497 boolean CheckCollision(boolean all, THTransform *tl, TLinkConf *def, THTransform *tlPrev, TLinkConf *defPrev, TworldCD *cd) Determines if there is a collision. Definition: cd.c:2260 unsigned int CoupledWith(Tjoint *j) Returns the identifier of the joint coupled with the query joint. Definition: joint.c:1285 unsigned int GetWorldTopology(Tparameters *p, unsigned int **t, Tworld *w) Gets the topology of the variables. Definition: world.c:3162 void InitPlot3d(char *name, boolean axes, int argc, char **arg, Tplot3d *p) Constructor. Definition: plot3d.c:41 #define WORLD_IN_DEFINITION One of the stages of the Tworld structure definition. Definition: world.h:61 boolean AllRevolute(Tmechanism *m) TRUE if all joints are revolute joints. Definition: mechanism.c:196 void SetVariableInterval(Tinterval *i, Tvariable *v) Sets the new range for the variable. Definition: variable.c:68 double WorldErrorInEquations(double *pt, Tworld *w) Evalates the norm of the error in the kinematic equations for a given point. Definition: world.c:3254 void NewSphere(double r, double *center, Tcolor *c, unsigned int gr, unsigned int bs, Tpolyhedron *p) Constructor. Definition: polyhedron.c:1020 void DeleteWorldCollisionInfo(Tworld *w) Removes the collision information stored in a Tworld. Definition: world.c:1877 unsigned int GetWorldLinkID(char *linkName, Tworld *w) Gets the identifier of a link from its name. Definition: world.c:1832 void MoveWorldDOF(Tparameters *pr, Tplot3d *pt, double *dof, Tworld *w) Moves a mechanisms to a configuration given by the degrees of freedom. Definition: world.c:3680 void AddMatrixEquation2CS(Tparameters *p, TMequation *eq, TCuikSystem *cs) Adds a matrix equation to the system. Definition: cuiksystem.c:2511 boolean WorldCanCollide(Tworld *w) Determines if any collision is potentially possible. Definition: world.c:1063 unsigned int LinkNBodies(Tlink *l) Gets the number of convex parts of the link. Definition: link.c:1201 void SimplifyMEquation(TMequation *me) Tries to reduce the complexity of the matrix equation. Definition: mequation.c:358 void EvaluateCSEquations(double *p, double *r, TCuikSystem *cs) Evaluates the equation set on a point. Definition: cuiksystem.c:5087 void PrintWorld(char *fname, int argc, char **arg, Tworld *w) Prints the world. Definition: world.c:3902 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 void InitWorldKinCS(Tparameters *p, Tworld *w) Initializes the kinematic sub-problem of a Tworld structure. Definition: world.c:916 unsigned int GetWorldSimpTopology(Tparameters *p, unsigned int **t, Tworld *w) Gets the topology of the variables. Definition: world.c:3153 unsigned int nStepsBranch(Tbranch *b) Gets the number of steps in a kinematic chain. Definition: world.c:180 void SetEquationValue(double v, Tequation *eq) Changes the right-hand value of the equation. Definition: equation.c:1089 Tlink * GetWorldLink(unsigned int linkID, Tworld *w) Gets a link from its identifier. Definition: world.c:1842 Tjoint * GetWorldJoint(unsigned int jointID, Tworld *w) Gets a joint from its identifier. Definition: world.c:1847 unsigned int Branches2Links(unsigned int from, unsigned int *links, unsigned int *jointTo, boolean *isLeaf, Tbranch *b, Tworld *w) Determines kinematic branch from a link to all other links. Definition: world.c:560 unsigned int GetSimpCSTopology(Tparameters *p, unsigned int **t, TCuikSystem *cs) Topology of the variables in the simplified system. Definition: cuiksystem.c:2719 void AddMonomial(Tmonomial *f, Tequation *eq) Adds a new monomial to the equation. Definition: equation.c:1419 unsigned int GetObstacleShapeStatus(unsigned int i, Tenvironment *e) Gets the status (NORMAL, HIDDEN, DECOR) of an obstacle given its identifier. Definition: environment.c:96 boolean AnyCollision(Tworld *w) Determines if we want to avoid any collision. Definition: world.c:2294 Definition of the Tworld type and the associated functions. void NewSpring(double length, double start, double rad, unsigned int lps, Tcolor *c, Tpolyhedron *p) Defines a spring. Definition: polyhedron.c:1145 void CopyCuikSystem(TCuikSystem *cs_dst, TCuikSystem *cs_src) Copy constructor. Definition: cuiksystem.c:2216 void NewRevUpJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, Tjoint *j) Constructor. Definition: joint.c:668 void WorldEvaluateSimpEquations(Tparameters *p, double *pt, double *r, Tworld *w) Evaluates the simplified kinematic equations. Definition: world.c:3238 void PrintEnvironment(FILE *f, char *path, Tenvironment *e) Stores the environment information into a file. Definition: environment.c:123 void WorldEvaluateEquations(double *pt, double *r, Tworld *w) Evaluates the kinematic equations. Definition: world.c:3206 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 GetJointName(char **name, Tjoint *j) Returns a string identifying the joint. Definition: joint.c:966 Error and warning functions. void InitAxisXLink(char *name, unsigned int forceModel, Tinterval *length, Tinterval *force, Tlink *l) Constructor. Definition: link.c:794 void EvaluateJacobianXVectors(double *p, unsigned int n, unsigned int ng, unsigned int *g, double *v, unsigned int *nr, unsigned int *nc, double ***m, TJacobian *j) Evaluates the Jacobian multiplied by some given vectors. Definition: jacobian.c:212 double LinkPotentialEnergy(unsigned int r, TCuikSystem *cs, double *p, Tlink *l) Potential energy stored in the link. Definition: link.c:1310 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 boolean MoveAndCheckCD(Tparameters *p, boolean all, unsigned int tID, double *sol, double *solPrev, Tworld *w) Checks a point for collision. Definition: world.c:1102 unsigned int MaxReduction(Tparameters *p, unsigned int varMask, double *reduction, Tbox *b, TCuikSystem *cs) Reduces a box as much as possible. Definition: cuiksystem.c:2955 double ErrorInCSEquations(double *p, TCuikSystem *cs) Evalates the norm of the error in a point. Definition: cuiksystem.c:5120 unsigned int GetBranchDestination(Tbranch *b) Returns the identifier of the link where the kinematic chain ends. Definition: world.c:214 boolean WorldInequalitiesHold(double *pt, Tworld *w) Check if the inequalities hold. Definition: world.c:3214 double HTransformGetElement(unsigned int i, unsigned int j, THTransform *t) Gets an element in a homogeneous transform. Definition: htransform.c:329 void AddStepToBranch(double s, Tjoint *joint, Tbranch *b) Adds a step to a kinematic chain. Definition: world.c:168 void MergeBranches(Tbranch *b1, Tbranch *b2, Tbranch *b) Merge two kinematic branches. Definition: world.c:229 void NewFreeJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, Tjoint *j) Constructor. Definition: joint.c:93 void Delay3dObject(double t, Tplot3d *p) Introduces a delay in the generation of the geometry. Definition: plot3d.c:211 void SetEquationCmp(unsigned int cmp, Tequation *eq) Changes the relational operator (LEQ, GEQ, EQU) of the equation. Definition: equation.c:1081 void WorldDeleteDOFInfo(Tworld *w) Deletes the information collected at WorldInitDOFInfo. Definition: world.c:1986 boolean IsWorldPolynomial(Tworld *w) Checks if the system of equations is polynomial. Definition: world.c:2089 void HTransformInverse(THTransform *t, THTransform *ti) Inverse of a homogeneous transform. Definition: htransform.c:503 void GenerateForceEquilibriumEquations(Tparameters *p, Tworld *w) Adds force equilibrium equations. Definition: world.c:2510 void InitDeformXLink(char *name, unsigned int forceModel, Tinterval *length, double stiffness, Tinterval *rest, Tinterval *force, Tlink *l) Constructor. Definition: link.c:835 unsigned int GetWorldNDOF(Tworld *w) Gets the number of degrees of freedom in the world. Definition: world.c:1997 void FixLinkZToZero(Tparameters *p, unsigned int lID, TCuikSystem *cs, Tlink *l) Fixes the Z compoment of the vector giving the pose of the link. Definition: link.c:2405 void GetTransformFromBranch(THTransform *tj, THTransform *t, Tbranch *b) Defines the transform taking to the end of the branch. Definition: world.c:272 void GetMechanismDOFsFromTransforms(Tparameters *p, THTransform *tl, TLinkConf *def, double *dof, Tmechanism *m) Extract the joint DOF values form the poses of all links. Definition: mechanism.c:286 void WorldPrintAtoms(Tparameters *pr, FILE *f, double *pt, Tworld *w) Generates a file with the atom centers in global coordiantes. Definition: world.c:3496 boolean EndOfList(Titerator *i) Checks if an iterator is pointing at the end of the list. Definition: list.c:445 unsigned int GetBranchOrigin(Tbranch *b) Returns the identifier of the link where the kinematic chain starts. Definition: world.c:199 unsigned int GetWorldNConvexBodiesInLinks(Tworld *w) Gets the number of convex polyhedrons that define the mechanism included in the world. Definition: world.c:1867 unsigned int WorldForceVarsIndices(Tparameters *p, unsigned int **iv, Tworld *w) Creates an array with the indices of the force variables. Definition: world.c:2649 Definitions of constants and macros used in several parts of the cuik library. void MechanismStoreRigidAtoms(FILE *f, THTransform *tl, Tmechanism *m) Auxiliary function for WorldStoreRigidGroups. Definition: mechanism.c:354 void InitVector(unsigned int ele_size, void(*Copy)(void *, void *), void(*Delete)(void *), unsigned int max_ele, Tvector *vector) Constructor. Definition: vector.c:100 void GetWorldRangeDOF(unsigned int ndof, Tinterval *r, Tworld *w) Gets the range for a given degree of freedom. Definition: world.c:2002 void NewSphSphLowJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, Tjoint *j) Constructor. Definition: joint.c:601 unsigned int GetWorldSystemVars(boolean **sv, Tworld *w) Gets the system vars of the kinematic cuiksystem. Definition: world.c:2383 double GetLinkTrans(unsigned int dim, Tlink *l) Retrives the (eventually) fixed translation of a link. Definition: link.c:1082 void GetCSJacobian(TJacobian *J, TCuikSystem *cs) Defines the Jacobian of a CuikSystem. Definition: cuiksystem.c:2714 #define IsGroundLink(id) A test that return TRUE if the given identifier is that of the ground link. Definition: link.h:167 Definition of the Tlist type and the associated functions. unsigned int GetWorldMobility(Tworld *w) Returns the number of degrees of freedom of the mechanism in the world. Definition: world.c:1822 unsigned int GetJointRangeTopology(unsigned int nr, Tjoint *j) Returns the topology of one of the ranges of the joint. Definition: joint.c:1214 void CheckLinkObstacleCollision(unsigned int a, unsigned int b, Tworld *w) Activates the possible collision between a particular link and an object in the environment. Definition: world.c:2191 double WorldErrorInSimpEquations(Tparameters *p, double *pt, Tworld *w) Evalates the norm of the error in the kinematic equations for a given point. Definition: world.c:3262 void GenerateKinTree(Tvector *bOut, Tworld *w) Builds a kinematic tree departing from the ground link. Definition: world.c:632 void PrintWorldCollisionInfo(FILE *f, char *fname, Tworld *w) Prints information collected durint last collision check. Definition: world.c:3674 void EvaluateEqualityEquations(boolean systemOnly, double *v, double *r, Tequations *eqs) Evaluates all equality equations in the set. Definition: equations.c:2579 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 NoCheckAllCollisions(unsigned int fl, unsigned int fo, Tworld *w) Desactivates all the possible collision between links and links and obstacles. Definition: world.c:2119 void NoCheckSelfCollisions(unsigned int fl, Tworld *w) Desactivates all the possible collision between links. Definition: world.c:2153 boolean MoveAndCheckCDFromTransforms(boolean all, unsigned int tID, THTransform *tl, TLinkConf *def, THTransform *tlPrev, TLinkConf *defPrev, Tworld *w) Checks a point for collision. Definition: world.c:1077 boolean CuikNewton(Tparameters *p, double *sol, Tbox *b_sol, TCuikSystem *cs) Applies Newton-Rhapson to a set of equations. Definition: cuiksystem.c:3947 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 unsigned int WorldDOF2Sol(Tparameters *p, double *dof, double **sol, Tbox *b, Tworld *w) Transforms from degrees of freedom to cuik variables. Definition: world.c:3708 A table of parameters. void CreateFileName(char *path, char *name, char *suffix, char *ext, Tfilename *fn) Constructor. Definition: filename.c:22 unsigned int CuikNewtonSimp(Tparameters *p, double *x, TCuikSystem *cs) CuikNewton on the simplified system. Definition: cuiksystem.c:3618 void NewCylinder(double r, double *p1, double *p2, Tcolor *c, unsigned int gr, unsigned int bs, Tpolyhedron *p) Constructor. Definition: polyhedron.c:1044 void GenerateLinkSolution(Tparameters *p, THTransform *t, TLinkConf *def, TCuikSystem *cs, double *sol, boolean groundLink, Tlink *l) Defines the link variables from a transform. Definition: link.c:3382 void GetWorldSimpJacobian(Tparameters *p, TJacobian *J, Tworld *w) Gets the simplified kinematic Jacobian. Definition: world.c:3145 boolean InequalitiesHoldOnPoint(double *p, TCuikSystem *cs) Tests if all inqualities hold for a given point. Definition: cuiksystem.c:5248 void GetLinkTransform(double *dof, THTransform *t, Tlink *l) The homogeneous transform traversing the link. Definition: link.c:1376 void PrintCollisionInfo(THTransform *tl, Tmechanism *m, Tenvironment *e, TworldCD *cd) Prints some information collected during last collision check. Definition: cd.c:2374 unsigned int RegenerateWorldOriginalSystemPoint(Tparameters *p, double *s, double **o, Tworld *w) Reconstruct a point in original kinematic system from a simplified point. Definition: world.c:3334 char * GetCSSystemVariableName(unsigned int id, TCuikSystem *cs) Gets a system variable name. Definition: cuiksystem.c:2617 Tjoint * GetMechanismJoint(unsigned int i, Tmechanism *m) Gets a joint given its identifier. Definition: mechanism.c:185 unsigned int GetCSNumSystemVariables(TCuikSystem *cs) Gets the number of system variables already in the cuiksystem. Definition: cuiksystem.c:2570 void GetJointTransSeq(Tparameters *p, TCuikSystem *cs, TTransSeq *ts, Tjoint *j) Build the sequence of transforms passing through the joint. Definition: joint.c:2829 unsigned int SetForceVars(unsigned int r, boolean *vars, TCuikSystem *cs, Tlink *l) Identifies the variable giving the force of the link. Definition: link.c:1578 char * GetFileFullName(Tfilename *fn) Gets the file full name (paht+name+extension). Definition: filename.c:151 boolean IsMechanismAllSpheres(Tmechanism *m) TRUE if the mechanism is composed by spheres only. Definition: mechanism.c:41 double GetForceOnLink(unsigned int dim, Tlink *l) Retrives the external force applied to a link. Definition: link.c:1057 double WorldErrorInSimpInequalities(Tparameters *p, double *pt, Tworld *w) Determines the maximum error in the inequalites for the simplified system. Definition: world.c:3230 void NoCheckConnectedCollisions(unsigned int fl, Tworld *w) Desactivates the collision detection between connected links. Definition: world.c:2225 void GetCSVariables(Tvariables *vs, TCuikSystem *cs) Gets the cuiksystem variables. Definition: cuiksystem.c:2550 void EvaluateCSJacobian(double *p, double ***J, TCuikSystem *cs) Evaluates the Jacobian of the system in a given point. Definition: cuiksystem.c:5108 void StoreCollisionInfo(FILE *f, char *fname, unsigned int objectID, Tmechanism *m, TworldCD *cd) Stores the information collected during last collision check into a file. Definition: cd.c:2346 unsigned int WorldForceVars(Tparameters *p, boolean **fv, Tworld *w) Creates a boolean array identifying force variables. Definition: world.c:2585 void PrintCollisions(FILE *f, Tworld *w) Stores the collision information into a file. Definition: world.c:2306 double WorldErrorFromDOFs(Tparameters *p, double *dof, Tworld *w) Error in equations from DOFs. Definition: world.c:3270 double GetEquationValue(Tequation *eq) Gets the right-hand value of the equation. Definition: equation.c:1212 void PrintMechanism(FILE *f, char *path, char *prefix, Tmechanism *m) Stores the mechanisms information into a file. Definition: mechanism.c:411 unsigned int GetWorldNumVariables(Tworld *w) Number of variables in the kinematic subsystem. Definition: world.c:3289 unsigned int WorldSimpKinematicVars(Tparameters *p, boolean **kv, Tworld *w) Creates a boolean array to identify kinematic variables. Definition: world.c:2616 A cuiksystem, i.e., a set of variables and equations defining a position analysis problem... Definition: cuiksystem.h:181 void WorldEvaluateSubSetSimpEquations(Tparameters *p, boolean *se, double *pt, double *r, Tworld *w) Evaluates a subset of the simplified kinematic equations. Definition: world.c:3246 void WorldStoreRigidGroups(Tparameters *pr, FILE *f, double *pt, Tworld *w) Generates a file with the atoms grouped in rigid clusters. Definition: world.c:3511 #define NO_UINT Used to denote an identifier that has not been initialized. Definition: defines.h:435 void InitBoxFromPoint(unsigned int dim, double *p, Tbox *b) Initializes a box from a point. Definition: box.c:43 boolean IsRevoluteBinaryLink(unsigned int nl, double ***p, Tworld *w) Identifies links articulated with only two revolute joints. Definition: world.c:879 unsigned int WorldSimpCuikNewton(Tparameters *p, double *pt, Tworld *w) Tries to reach the kinematic manifold. Definition: world.c:3193 double WorldPotentialEnergy(Tparameters *p, boolean simp, double *sol, void *w) Evaluates the potential energy of a configuration. Definition: world.c:2680 void PrintWorldAxes(Tparameters *pr, FILE *f, Tbox *b, Tworld *w) Prints the axes of the mechanism. Definition: world.c:3637 void AddVariable2Monomial(unsigned int fn, unsigned int varid, unsigned int p, Tmonomial *f) Adds a power variable to the monomial. Definition: monomial.c:171 unsigned int JointFromID(Tjoint *j) Gets the identifier of the first link involved in the joint. Definition: joint.c:946 void CheckSelfCollisions(unsigned int fl, Tworld *w) Activates all the possible collision between links. Definition: world.c:2138 Definition of the TSHTransform type and the associated functions. void GenerateLinkRot(Tparameters *p, unsigned int lID, TCuikSystem *cs, Tlink *l) Generate the variables and constraints related with the rotation of the link reference frame... Definition: link.c:1941 unsigned int AddLink2Mechanism(Tlink *l, Tmechanism *m) Adds a link to a mechanism. Definition: mechanism.c:95 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 PrintCuikSystem(Tparameters *p, FILE *f, TCuikSystem *cs) Prints a cuiksystem. Definition: cuiksystem.c:5359 char * GetWorldSystemVarName(unsigned int nv, Tworld *w) Returns the name of a given system variable. Definition: world.c:2423 unsigned int GetWorldNObstacles(Tworld *w) Gets the number of obstacles in the environment included in the world. Definition: world.c:1862 unsigned int GetMechanismLinkID(char *ln, Tmechanism *m) Gets a link identifier given its name. Definition: mechanism.c:160 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 char * GetObstacleName(unsigned int i, Tenvironment *e) Gets the name of an obstacle given its identifier. Definition: environment.c:74 void GetCSVariableNames(char **varNames, TCuikSystem *cs) Gets points to the variable names. Definition: cuiksystem.c:2555 unsigned int GetCSTopology(Tparameters *p, unsigned int **t, TCuikSystem *cs) Topology of the variables in the system. Definition: cuiksystem.c:2728 boolean IsForceEquilibriumLink(Tlink *l) Determines if forces on link must be in equilibrium. Definition: link.c:1070 boolean SimpInequalitiesHoldOnPoint(Tparameters *pr, double *p, TCuikSystem *cs) Tests if all simplified inqualities hold for a given point. Definition: cuiksystem.c:5268 void NoCheckObstacleCollision(unsigned int fl, unsigned int b, Tworld *w) Deactivates the possible collision between a particular obstacle and all the links. Definition: world.c:2217 void GenerateWorldSingularityEquations(Tparameters *p, char *ln, TCuikSystem *cs, Tworld *w) Adds variables/equations to detect singularities. Definition: world.c:3039 void WorldFixTensegrityAddon(Tparameters *p, unsigned int linkID, double **point, unsigned int *n, Tworld *w) Fixes a tensegrity addon. Definition: world.c:2819 void NewRevLowJoint(unsigned int id, unsigned int linkID1, Tlink *link1, unsigned int linkID2, Tlink *link2, double **points, Tjoint *j) Constructor. Definition: joint.c:627 boolean WorldContinuousCD(Tworld *w) Determines the type of collision library used. Definition: world.c:1068 unsigned int GetWorldVarTopology(unsigned int vID, Tworld *w) Get the topology of a given variable. Definition: world.c:2391 void FixLinks(Tparameters *p, Tworld *w) Generate equations to fix some links. Definition: world.c:2783 void GetLinkForceVars(unsigned int r, unsigned int *xID, unsigned int *yID, unsigned int *zID, unsigned int *le, unsigned int *re, unsigned int *f, TCuikSystem *cs, Tlink *l) Get the identifier of the force-related variables of the link. Definition: link.c:1269 void LinkForceField(unsigned int r, TCuikSystem *cs, double *p, double *g, Tlink *l) Gradient of the potential energy stored in the link. Definition: link.c:1336 #define MEM_EXPAND(_var, _n, _type) Expands a previously allocated memory space. Definition: defines.h:404 double GetParameter(unsigned int n, Tparameters *p) Gets the value for a particular parameter. Definition: parameters.c:93 unsigned int RegenerateWorldSolutionPoint(Tparameters *pr, double *p, double **v, Tworld *w) Computes the missing values in a kinematic solution. Definition: world.c:3468 void GetLinkConfFromDOF(double *dof, TLinkConf *def, Tlink *l) Computes a link configuration. Definition: link.c:1421 unsigned int GetWorldNLinks(Tworld *w) Gets the number of links in the mechanism included in the world. Definition: world.c:1852 void EvaluateWorldJacobian(double *pt, double ***J, Tworld *w) Evaluates the kinematic Jacobian. Definition: world.c:3198 unsigned int AddJoint2World(Tjoint *j, Tworld *w) Adds a joint to the mechanism in the world. Definition: world.c:1436 Tlink * GetMechanismLink(unsigned int i, Tmechanism *m) Gets a link given its identifier. Definition: mechanism.c:149 void EvaluateSimpCSEquations(Tparameters *pr, double *p, double *r, TCuikSystem *cs) Evaluates the simplified equation set on a point. Definition: cuiksystem.c:5092 void FixZToZero(Tparameters *p, Tworld *w) Generate equations to fix the Z components of the links. Definition: world.c:2867 boolean IsMechanismInWorldAllSpheres(Tworld *w) TRUE if the mechanisms in the world is based on spheres. Definition: world.c:1827 unsigned int NumLinkDOF(Tlink *l) Gets the number of configuration parameters for a given link. Definition: link.c:1487 unsigned int GetSolutionPointFromLinkTransforms(Tparameters *p, THTransform *tl, TLinkConf *def, double **sol, Tworld *w) Determines the mechanisms configuration from the pose of all links. Definition: world.c:1261 void WorldCoupleTensegrityVariable(Tparameters *p, unsigned int t, unsigned int lID1, unsigned int lID2, double scale, THTransform *r, Tworld *w) Couple variables from different elements of a tensegrity. Definition: world.c:2889 void MoveWorld(Tparameters *pr, Tplot3d *pt, Tbox *b, Tworld *w) Moves the mechanisms defined in a world information to a given configuration. Definition: world.c:3581 void GetBoxCenter(boolean *used, double *c, Tbox *b) Returns the box center along the selected dimensions. Definition: box.c:721 double EvaluateCSCost(Tparameters *p, boolean simp, double *s, void *cs) Evalutes the equation to minimize in a given point. Definition: cuiksystem.c:5162 unsigned int GetWorldNConvexBodies(Tworld *w) Gets the number of convex polyhedrons that define the mechanism and the environment included in the w... Definition: world.c:1872 double GetEnvironmentMaxCoordinate(Tenvironment *e) Returns the sum of the maximum coordinate value for all the convex polyhedrons in the environment... Definition: environment.c:118 unsigned int GetCSVariableID(char *name, TCuikSystem *cs) Gets the numerical identifier of a variable given its name. Definition: cuiksystem.c:2607 void InitPrismaticXLink(char *name, unsigned int forceModel, Tinterval *length, double stiffness, Tinterval *rest, Tinterval *force, Tlink *l) Constructor. Definition: link.c:893 Definition of basic randomization functions. unsigned int GetCSNumNonDummyVariables(TCuikSystem *cs) Gets the number of non-dummy variables already in the cuiksystem. Definition: cuiksystem.c:2579 void GenerateWorldEquations(Tparameters *p, Tworld *w) Generates all the cuiksystems derived from the world information. Definition: world.c:2431 unsigned int GetLinkForceModel(Tlink *l) Identify the force model of the link. Definition: link.c:1264 void GenerateJointRangeSingularityEquations(Tparameters *p, TCuikSystem *cs, Tjoint *j) Modifies the cuik system to detect end range singularities. Definition: joint.c:1333 unsigned int GetCSVarTopology(unsigned int vID, TCuikSystem *cs) Determines the topology of a given variable. Definition: cuiksystem.c:2672 unsigned int GetObstacleID(char *name, Tenvironment *e) Gets the idetifier of an obstacles given its name. Definition: environment.c:48 void AnimateWorld(Tparameters *pr, char *pname, double axesLength, double frameDelay, Tlist *p, Tworld *w) Produces an animation along a path. Definition: world.c:3837 unsigned int GetWorldNumSystemVariables(Tworld *w) Number of system variables in the kinematic subsystem. Definition: world.c:3297 void GetLinkTransformsFromSolutionPoint(Tparameters *p, boolean simp, double *sol, THTransform **tl, TLinkConf **def, Tworld *w) Define transforms for the links from the a solution point. Definition: world.c:1215 void GenerateWorldTWSEquations(Tparameters *p, char *ln, TCuikSystem *cs, Tworld *w) Adds variables/equations to detect translational workspace boundaries. Definition: world.c:3104 unsigned int RegenerateOriginalPoint(Tparameters *p, double *s, double **o, TCuikSystem *cs) Generates an original point from a simplified point. Definition: cuiksystem.c:4978 void MoveMechanismFromTransforms(Tparameters *pr, Tplot3d *pt, THTransform *tl, TLinkConf *def, Tmechanism *m) Displaces a mechanism in a 3d scene. Definition: mechanism.c:391 void CheckObstacleCollision(unsigned int fl, unsigned int b, Tworld *w) Activates the possible collision between a particular obstacle and all the links. ... Definition: world.c:2209 void WorldAtomJacobian(Tparameters *pr, double *sol, unsigned int *nr, unsigned int *nc, double ***J, Tworld *w) Jacobian of the atom position w.r.t. the variables. Definition: world.c:3526 void AddTransSeq2MEquation(int s, TTransSeq *ts, TMequation *me) Concatenates a transform sequence to the matrix equation. Definition: mequation.c:250 void GetSimpCSJacobian(Tparameters *p, TJacobian *J, TCuikSystem *cs) Defines the Jacobian of a simplified CuikSystem. Definition: cuiksystem.c:2734 unsigned int GetCSNumVariables(TCuikSystem *cs) Gets the number of variables already in the cuiksystem. Definition: cuiksystem.c:2565 double ErrorInSimpInequalitiesOnPoint(Tparameters *pr, double *p, TCuikSystem *cs) Computes the maximum error in all the simplified inqualities for a given point. Definition: cuiksystem.c:5291 unsigned int RegenerateWorldOriginalPoint(Tparameters *p, double *s, double **o, Tworld *w) Reconstruct a point in original kinematic system from a simplified point. Definition: world.c:3305 void GenerateJointRangeEquations(Tparameters *p, TCuikSystem *cs, Tjoint *j) Generate the constraints related with the joint limits. Definition: joint.c:1521 #define COUPLE_ORIENTATION One of the possible variables to couple in tensegrities. Definition: world.h:104 void GetLinkTransformsFromDOF(double *dof, THTransform **tl, TLinkConf **def, Tworld *w) Define transforms for the links from the DOF. Definition: world.c:1145 boolean Advance(Titerator *i) Moves an iterator to the next position of its associated list. Definition: list.c:373 unsigned int GetLinkID(char *name, Tmechanism *m) Gets the identifier of a link given its name. Definition: mechanism.c:51 #define LINK_TRANS(vname, linkName, cn) Translation part of the homogeneous transform defining the position of a link in global coordinates... Definition: varnames.h:168 unsigned int AddJoint2Mechanism(Tjoint *j, Tmechanism *m) Adds a joint to a mechanism. Definition: mechanism.c:113 void MechanismPrintAtoms(FILE *f, THTransform *tl, Tmechanism *m) Prints the center of the atoms in a mechanism. Definition: mechanism.c:339 unsigned int GenerateSimplifiedPoint(Tparameters *p, double *o, double **s, TCuikSystem *cs) Generates a simplified point. Definition: cuiksystem.c:4992 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 void PlotEnvironment(Tplot3d *pt, Tenvironment *e) Displays the obstacles in the environment in a 3D geometry. Definition: environment.c:146 unsigned int GetPolyhedronType(Tpolyhedron *p) Retrives the type of a polyhedron. Definition: polyhedron.c:1363 void ClosePlot3d(boolean quit, double average_x, double average_y, double average_z, Tplot3d *p) Destructor. Definition: plot3d.c:473 void NoCheckLinkLinkCollision(unsigned int a, unsigned int b, Tworld *w) Desactivates the possible collision between a particular pair of links. Definition: world.c:2179 void GenerateSimpInitialBox(Tparameters *p, Tbox *box, TCuikSystem *cs) Gives the search space in the form of a box for the simplified system. Definition: cuiksystem.c:4854 unsigned int NewVectorElement(void *e, Tvector *vector) Adds an element to the vector. Definition: vector.c:216 unsigned int GetWorldNJoints(Tworld *w) Gets the number of joints in the mechanism included in the world. Definition: world.c:1857 unsigned int GetEnvironmentNObstacles(Tenvironment *e) Gets the number of obstacles in the environment. Definition: environment.c:43 void AddEquationNoSimp(Tequation *equation, Tequations *eqs) Adds an equation to the set. Definition: equations.c:1750 unsigned int JointToID(Tjoint *j) Gets the identifier of the second link involved in the joint. Definition: joint.c:956 void WorldSample2DOF(Tparameters *p, double *sample, double *dof, Tworld *w) Transforms a sample degrees of freedom. Definition: world.c:3800 void CheckAllCollisions(unsigned int fl, unsigned int fo, Tworld *w) Activates all the possible collision between links and links and obstacles. Definition: world.c:2097 void InitWorldCS(Tworld *w) Initializes the cuiksystems in a Tworld structure. Definition: world.c:998 void DeleteWorldCD(Tworld *w) Deletes the collision information stored in the world. Definition: world.c:1127 |
Follow us!