atlasrrt.c
Go to the documentation of this file.
55 /**********************************************************************************************************/
56 /**********************************************************************************************************/
57 /**********************************************************************************************************/
118 /**********************************************************************************************************/
119 /**********************************************************************************************************/
171 /**********************************************************************************************************/
172 /**********************************************************************************************************/
189 /**********************************************************************************************************/
190 /**********************************************************************************************************/
231 /**********************************************************************************************************/
232 /**********************************************************************************************************/
279 /**********************************************************************************************************/
280 /**********************************************************************************************************/
281 /**********************************************************************************************************/
2466 fprintf(stderr," New random sample in chart %u: [%f %f] [%f %f %f]\n",rand->c,rand->t[0],rand->t[1],rand->s[0],rand->s[1],rand->s[2]);
2970 if ((!revisitCharts)&&((!ar->birrt)||((ar->ci[currentSampleInfo->c]->tree)&(ar->ci[*nextChart]->tree))))
3338 fprintf(stderr," Sample at chart %u generated a new chart (%u): [%f %f ...] [%.16f %.16f %.16f ...]\n",
4272 fprintf(stderr," Expanding to goal-----------------------------------------------------------------\n");
4340 boolean AtlasRRTValidateSample(Tparameters *pr,double *q_rand,unsigned int tree,boolean expand2goal,
4518 fprintf(stderr,"Iteration: %u (s:%u c:%u t:%u tm:%g sc:%.2f)\n",it,ar->ns,ar->nc,t1,*time,scale);
4901 d=AddBranchToAtlasRRT(pr,it,(expand2Goal?ADD_LAST_NO_REP:ADD_LAST),TRUE,TRUE,expand2Goal,FALSE,
5063 (*t)|=GetRRTNodeTree(n[i],&(ar->rrt)); /* take note of the tree of this neighbour (even if not reached)*/
Definition of the boolean type. void NewAtlasRRTNoConnectToParent(TAtlasRRTStatistics *arst) A chart that does not intersect with its parent. Definition: atlasrrt.c:695 unsigned int GetRRTParent(unsigned int i, Trrt *rrt) Returns identifier of the parent of one of the nodes of the RRT. Definition: rrt.c:3552 void AdjustDynamicDomain(unsigned int i, boolean collision, Trrt *rrt) Sets the dynamic domain. Definition: rrt.c:3481 void PlotVect3d(unsigned int n, double *x, double *y, double *z, Tplot3d *p) Adds a polyline to the current object. Definition: plot3d.c:447 void LoadAtlas(Tparameters *pr, Tfilename *fname, TAtlasBase *w, Tatlas *a) Defines an atlas from the information on a file. Definition: atlas.c:3973 Definition of the combination of an atlas with a RRT. unsigned int VectorSize(Tvector *vector) Gets the number of elements in a vector. Definition: vector.c:173 #define CS_WD_ERROR_IN_SIMP_EQUATIONS(pr, p, wcs) Computes the error in the simplified system for a given point. Definition: wcs.h:509 double GetRRTNodeCostFromParent(unsigned int i, Trrt *rrt) Returns the cost from the parent node, if defined. Definition: rrt.c:3601 double ConnectSamplesChart(Tparameters *pr, unsigned int *tp, boolean *sv, Tbox *domain, unsigned int m, unsigned int n, double *s1, double *s2, double md, boolean checkCollisions, TJacobian *sJ, boolean *reached, boolean *collision, double *lastSample, unsigned int *ns, double ***path, TAtlasBase *w) Determines the connection between two points on the manifold. Definition: samples.c:694 boolean AtlasRRTstar(Tparameters *pr, double *pg, unsigned int *it, double *times, double *costs, double *planningTime, double *pl, unsigned int *ns, double ***path, TAtlasRRTStatistics *str, Tatlasrrt *ar) Optimal AtlasRRT on manifolds. Definition: atlasrrt.c:5285 #define CS_WD_GENERATE_SIMPLIFIED_POINT(pr, p, r, wcs) Generates a simplified point from an original one. Definition: wcs.h:495 void LoadAtlasRRTSampleInfo(FILE *f, TSampleInfo *si, Tatlasrrt *ar) Reads the information associated with a sample in an AtlasRRT. Definition: atlasrrt.c:4088 boolean New_PointTowardRandSample(TAtlasRRTBranchConfig *config, unsigned int samplingMode, double *randSample, TAtlasRRTBranchStatus *status, TSampleInfo *current, TSampleInfo *rand, Tatlasrrt *ar) Determines the motion on the current chart to approach q_rand. Definition: atlasrrt.c:2425 double DistanceTopology(unsigned int s, unsigned int *tp, double *v1, double *v2) Computes the distance of two points. Definition: basic_algebra.c:498 boolean canContinueBranch(TAtlasRRTBranchConfig *config, TAtlasRRTBranchStatus *status) Tests if the branch can be continued. Definition: atlasrrt.c:1723 boolean RRTSample(unsigned int samplingMode, unsigned int tree, double *goal, double *q_rand, TRRTStatistics *rst, Trrt *rrt) Generates a random sample to expand the RRT. Definition: rrt.c:1470 Data structure to hold the information about the name of a file. Definition: filename.h:271 boolean RandomPointInAtlas(Tparameters *pr, double scale, double *w, unsigned int *nm, double *t, double *p, Tatlas *a) Samples a random point on the atlas. Definition: atlas.c:4048 void NewAtlasRRTDistanceQrand(double dqr, TAtlasRRTStatistics *arst) New distance to q_rand. Definition: atlasrrt.c:615 void PlotRRT(char *fname, int argc, char **arg, Tparameters *pr, unsigned int xID, unsigned int yID, unsigned int zID, Trrt *rrt) Pots a projection of a RRT. Definition: rrt.c:3734 void NewAtlasRRTOutOfChart(TAtlasRRTStatistics *arst) New chart due to radius. Definition: atlasrrt.c:660 void * GetVectorElement(unsigned int i, Tvector *vector) Returns a pointer to a vector element. Definition: vector.c:270 unsigned int randomMax(unsigned int m) Returns a random integer in the range [0,m]. Definition: random.c:77 void AddEdgeToRRT(unsigned int i, unsigned int j, double c, Trrt *rrt) Adds a neighbouring relation to an RRT. Definition: rrt.c:781 void NewAtlasRRTNoEmptyTreeConnection(TAtlasRRTStatistics *arst) New non-void attempt to connect the two trees. Definition: atlasrrt.c:610 void InitStatistics(unsigned int np, double v, Tstatistics *t) Constructor. Definition: statistics.c:21 CBLAS_INLINE double Norm(unsigned int s, double *v) Computes the norm of a vector. Definition: basic_algebra.c:356 boolean AddNodeToRRT(Tparameters *pr, unsigned int tree, unsigned int i_near, double *sample, double *goal, unsigned int *lastSample, void *info, double costp, double cost, TRRTStatistics *rst, Trrt *rrt) Adds a point to a RRT. Definition: rrt.c:1868 void PlotConnection(Tparameters *pr, char *prefix, unsigned int target, unsigned int near, unsigned int end, unsigned int xID, unsigned int yID, unsigned int zID, Tatlasrrt *ar) Graphical representation of the attempt to connect two trees. Definition: atlasrrt.c:4008 void DifferenceVectorTopology(unsigned int s, unsigned int *tp, double *v1, double *v2, double *v) Substracts two vectors. Definition: basic_algebra.c:306 double(* costF)(Tparameters *, boolean, double *, void *) Definition: atlasrrt.c:114 void NewAtlasRRTQrandReached(TAtlasRRTStatistics *arst) Random sample reached. Definition: atlasrrt.c:630 CBLAS_INLINE void AccumulateVector(unsigned int s, double *v1, double *v2) Adds a vector to another vectors. Definition: basic_algebra.c:55 boolean AtlasTRRT(Tparameters *pr, double *pg, double *time, double *pl, double *pc, unsigned int *ns, double ***path, double(*costF)(Tparameters *, boolean, double *, void *), void *costData, TAtlasRRTStatistics *str, Tatlasrrt *ar) Extends a Atlas-TRRT until we reach a targed point. Definition: atlasrrt.c:4688 void PlotQrand(Tparameters *pr, char *prefix, unsigned int inear, unsigned int c_rand, double *t_rand, double *q_rand, unsigned int xID, unsigned int yID, unsigned int zID, Tatlasrrt *ar) Plots a point where q_rang is and a line to its chart. Definition: atlasrrt.c:3911 void InitBranchConfig(unsigned int mode, TAtlasRRTBranchConfig *config) Initializes a branch configuration. Definition: atlasrrt.c:1733 void LoadAtlasRRTChartInfo(FILE *f, TChartInfo *ci, Tatlasrrt *ar) Reads the information associated with a chart in an AtlasRRT. Definition: atlasrrt.c:4103 void InitRRT(Tparameters *pr, boolean parallel, boolean simp, double *ps, unsigned int mode, boolean graph, double *pg, unsigned int m, TAtlasBase *w, Trrt *rrt) Defines a RRT from a given point. Definition: rrt.c:1203 unsigned int randomWithDistribution(unsigned int m, double s, double *d) Random number with a given discrete distribution. Definition: random.c:86 unsigned int GetRRTNN(unsigned int tree, double *q_rand, Trrt *rrt) Locates the nearest sample in the tree of samples. Definition: rrt.c:1546 Definition of the Tfilename type and the associated functions. void PlotAtlasRRT(char *prefix, int argc, char **arg, Tparameters *pr, unsigned int xID, unsigned int yID, unsigned int zID, Tatlasrrt *ar) Pots a projection of an atlasRRT. Definition: atlasrrt.c:5859 void InitPlot3d(char *name, boolean axes, int argc, char **arg, Tplot3d *p) Constructor. Definition: plot3d.c:41 #define CT_GAMMA Contant part of the search radius for nearest neightours in RRT*. Definition: parameters.h:325 void IncreaseChartSamplingRadius(Tchart *c) Increase the sampling radious of the chart. Definition: chart.c:1382 CBLAS_INLINE void Normalize(unsigned int s, double *v) Normalizes a vector. Definition: basic_algebra.c:592 boolean TransitionTestRRT(Tparameters *pr, unsigned int parent, double *q_next, double deltaStep, double *cost, double(*costF)(Tparameters *, boolean, double *, void *), void *costData, Trrt *rrt) transition Test for Transition RRT Definition: rrt.c:806 void InitAtlasRRTStatistics(TAtlasRRTStatistics *arst) Init the Atlas RRT statistics. Definition: atlasrrt.c:553 double AddSample2AtlasRRT(Tparameters *pr, unsigned int tree, unsigned int *currentID, unsigned int nextChart, double *nextParam, double *nextSample, double dp, double cost, Tatlasrrt *ar) Adds a sample to the AtlasRRT. Definition: atlasrrt.c:3146 double Chart2Manifold(Tparameters *pr, TJacobian *sJ, double *t, unsigned int *tp, double *pInit, double *p, Tchart *c) Returns the point in the manifold for a given set of parameteres. Definition: chart.c:1069 void NewTemptativeSample(Tparameters *pr, unsigned int it, unsigned int *nChanges, boolean revisitCharts, boolean chartCreated, boolean checkCollisions, boolean onManifold, TSampleInfo *currentSampleInfo, double *currentParam, double *origRandSample, unsigned int *randChart, double *randParam, double *randSample, double currentDelta, double d, double *deltaParam, unsigned int *nextChart, double *nextParam, double *nextSample, void *st, double(*costF)(Tparameters *, boolean, double *, void *), void *costData, double *cost, boolean *blocked, boolean *inCollision, boolean *valid, Tatlasrrt *ar) Generates a new sample in between q_near and q_rand. Definition: atlasrrt.c:2881 unsigned int GetRRTNNInNeighbourChart(unsigned int tree, unsigned int c_rand, double *t_rand, double *q_rand, Tatlasrrt *ar) Selects the nearest point in the chart of Id ChartId, or in a neighbour. Definition: atlasrrt.c:5800 void NewAtlasRRTSampleRejection(TAtlasRRTStatistics *arst) New sample rejection. Definition: atlasrrt.c:710 double ChangeBiRRTSteps(unsigned int l1, unsigned int l2, double c12, Tvector *steps, Trrt *rrt) Changes the optimal path in a bidirectional RRT. Definition: rrt.c:3297 unsigned int ReconstructAtlasRRTPath(Tparameters *pr, unsigned int sID, double *pl, unsigned int *ns, double ***path, Tatlasrrt *ar) Collects samples from the tree root to a given sample. Definition: atlasrrt.c:3553 boolean AddChart2AtlasRRT(Tparameters *pr, unsigned int tree, unsigned int it, TSampleInfo *currentSampleInfo, boolean *intersectParent, Tatlasrrt *ar) Adds a chart to the Atlas RRT. Definition: atlasrrt.c:3284 #define CT_MAX_PLANNING_ITERATIONS Maximum iterations for path planning. Definition: parameters.h:483 void SetRRTParent(unsigned int i, unsigned int p, Trrt *rrt) Changes the parent for a given node. Definition: rrt.c:3560 void AtlasRRTstarCloseIteration(unsigned int it, unsigned int id_goal, double time, double gamma, double *times, double *costs, Tatlasrrt *ar) Prints information about the AtlasRRT* iteration. Definition: atlasrrt.c:5220 void LoadRRT(Tparameters *pr, Tfilename *fname, TAtlasBase *w, Trrt *rrt) Defines a RRT from the information on a file. Definition: rrt.c:4041 void AddElement2Heap(unsigned int id, void *e, Theap *heap) Adds an element to the heap. Definition: heap.c:294 boolean PathStart2GoalInRRT(Tparameters *pr, double *pgs, unsigned int l1, unsigned int l2, double *pl, double *pc, unsigned int *ns, double ***path, Trrt *rrt) Determines the path from start to goal using an RRT. Definition: rrt.c:3401 double * GetRRTNode(unsigned int i, Trrt *rrt) Returns one of the nodes of the RRT. Definition: rrt.c:3531 unsigned int StepsToRoot(unsigned int sID, Trrt *rrt) Computes the number of steps from a node to the root. Definition: rrt.c:3719 Definition of a binary heap used to implement priority queues. boolean InDynamicDomain(unsigned int i, double *q, Trrt *rrt) Checks if a sample is in the dynamic domaiin of a given node. Definition: rrt.c:3473 double Distance(unsigned int s, double *v1, double *v2) Computes the distance of two points. Definition: basic_algebra.c:438 void AddSample2Samples(unsigned int nv, double *sample, unsigned int nvs, boolean *systemVars, unsigned int *ms, unsigned int *ns, double ***path) Adds a sample to a set of samples. Definition: samples.c:672 boolean LessThanDoublePair(void *a, void *b, void *userData) Comparison operator for paris of doubles. Definition: heap.c:224 void RecursiveReWireRRTstar(Tparameters *pr, Theap *q, double *g, Tvector *steps, double *l, Trrt *rrt) A rewire that is propagates as much as necessary over the graph. Definition: rrt.c:2144 unsigned int InitChart(Tparameters *pr, boolean simple, Tbox *domain, unsigned int *tp, unsigned int m, unsigned int k, double *p, double e, double eCurv, double r, TJacobian *sJ, TAtlasBase *w, Tchart *c) Constructor. Definition: chart.c:795 double UpdateBiRRTSteps(Tvector *steps, Trrt *rrt) Updates the current optimal path. Definition: rrt.c:3356 unsigned int AtlasRRTMemSize(Tatlasrrt *ar) Memory used by a given atlasRRT. Definition: atlasrrt.c:6066 boolean AtlasBiRRTstar(Tparameters *pr, double *pg, unsigned int *it, double *times, double *costs, double *planningTime, double *pl, unsigned int *ns, double ***path, TAtlasRRTStatistics *str, Tatlasrrt *ar) Bidirectional version of AtlasRRTstar. Definition: atlasrrt.c:5523 #define CS_WD_SIMP_INEQUALITIES_HOLD(pr, p, wcs) Cheks if all inequalities hold. Definition: wcs.h:207 boolean RandomPointInChart(Tparameters *pr, double scale, unsigned int *tp, double *t, double *p, Tchart *c) Samples a random point in the area covered by the chart. Definition: chart.c:1367 void AtlasBiRRTstarCloseIteration(unsigned int it, double l, double time, double gamma, double *times, double *costs, Tatlasrrt *ar) Prints information about the BiAtlasRRT* iteration. Definition: atlasrrt.c:5255 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 NewAtlasRRTNoEmptyBranch(TAtlasRRTStatistics *arst) New no empty branch. Definition: atlasrrt.c:600 void ReWireAtlasRRTstar(Tparameters *pr, unsigned int id_new, double gamma, unsigned int nn, unsigned int *n, double *c, Tvector *steps, double *l, TAtlasRRTStatistics *arst, Tatlasrrt *ar) Rewires an AtlasRRT star. Definition: atlasrrt.c:5127 double GetChartSamplingRadius(Tchart *c) Returns de sampling range of the chart. Definition: chart.c:946 void DifferenceVector(unsigned int s, double *v1, double *v2, double *v) Substracts two vectors. Definition: basic_algebra.c:264 unsigned int GetRRTNNInChart(unsigned int tree, unsigned int chartId, double *q_rand, double t, double *d, Tatlasrrt *ar) Selects the nearest neighbour from the random point in the chart of Id ChartId. Definition: atlasrrt.c:5832 unsigned int nNoEmptyTreeConnection Definition: atlasrrt.h:117 boolean AtlasRRT(Tparameters *pr, double *pg, double *time, double *pl, unsigned int *ns, double ***path, TAtlasRRTStatistics *str, Tatlasrrt *ar) Extends a Atlas-RRT until we reach a targed point. Definition: atlasrrt.c:4392 A table of parameters. void CreateFileName(char *path, char *name, char *suffix, char *ext, Tfilename *fn) Constructor. Definition: filename.c:22 void NewAtlasRRTLargeCurvature(TAtlasRRTStatistics *arst) New chart due large curvature between two charts. Definition: atlasrrt.c:670 void SetSampleInfo(unsigned int m, unsigned int k, TSampleInfo *si_dst, TSampleInfo *si_src) Initializes a parametrized point from another parametrized point. Definition: atlasrrt.c:1793 #define CS_WD_GET_SIMP_JACOBIAN(pr, J, wcs) Computes the Jacobian of the simplified system. Definition: wcs.h:553 boolean AtlasRRTSample(Tparameters *pr, unsigned int samplingMode, unsigned int it, unsigned int tree, double *goal, double scale, boolean *exploration, unsigned int *c_rand, double *t_rand, double *q_rand, TAtlasRRTStatistics *arst, Tatlasrrt *ar) Generates a random sample to expand the AtlasRRT. Definition: atlasrrt.c:4252 void NewAtlasRRTTreeConnection(TAtlasRRTStatistics *arst) New attempt to connect the two trees. Definition: atlasrrt.c:605 void NewAtlasRRTInitChartError(TAtlasRRTStatistics *arst) New chart due to error when trying to create a chart. Definition: atlasrrt.c:665 Definition of a local chart on a manifold. char * GetFileFullName(Tfilename *fn) Gets the file full name (paht+name+extension). Definition: filename.c:151 void GetRRTNNInBranch(unsigned int tree, unsigned int n1, unsigned int n2, unsigned int *n, unsigned int *nn, Trrt *rrt) Locates the nearest sample in the tree to a branch. Definition: rrt.c:1774 void AccumulateAtlasRRTStatistics(TAtlasRRTStatistics *arst1, TAtlasRRTStatistics *arst2) Accumulates two sets of Atlas RRT statistics. Definition: atlasrrt.c:720 #define CS_WD_REGENERATE_ORIGINAL_POINT(pr, p, o, wcs) Completes an original point from a simplified one. Definition: wcs.h:293 void InitHeap(unsigned int ele_size, void(*Copy)(void *, void *), void(*Delete)(void *), boolean(*LessThan)(void *, void *, void *), void *userData, boolean hasIDs, unsigned int max_ele, Theap *heap) Constructor. Definition: heap.c:237 void InitSampleInfo(unsigned int m, unsigned int k, TSampleInfo *si) Initializes the space to hold a parametrized point. Definition: atlasrrt.c:1782 unsigned int GetRRTNodeTree(unsigned int i, Trrt *rrt) Returns the tree for a given node. Definition: rrt.c:3539 double GetRRTNodeCost(unsigned int i, Trrt *rrt) Returns the cost associated with a node. Definition: rrt.c:3593 void ReverseSamples(unsigned int ns, double **path) Reverses a set of samples. Definition: samples.c:2752 void WireAtlasRRTstar(Tparameters *pr, unsigned int id_new, unsigned int i_near, double gamma, unsigned int nn, unsigned int *n, double **c, double h, Theap *q, unsigned int *t, TAtlasRRTStatistics *arst, Tatlasrrt *ar) Wires a node to the AtlasRRT star. Definition: atlasrrt.c:4968 #define MEM_DUP(_var, _n, _type) Duplicates a previously allocated memory space. Definition: defines.h:414 unsigned int GetAtlasRRTNumCharts(Tatlasrrt *ar) Number of charts in the AtlasRRT. Definition: atlasrrt.c:5794 #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 SaveRRT(Tfilename *fname, Trrt *rrt) Stores the RRT information on a file. Definition: rrt.c:3990 double New_AddBranchToAtlasRRT(Tparameters *pr, unsigned int it, TAtlasRRTBranchConfig *config, unsigned int i_near, double *randSample, double *goalSample, void *st, TAtlasRRTBranchStatus *status, unsigned int *ns, double ***path, Tatlasrrt *ar) Adds a new branch to the AtlasRRT. Definition: atlasrrt.c:1816 void InitSamples(unsigned int *ms, unsigned int *ns, double ***path) Initializes a set of samples. Definition: samples.c:665 boolean RandomPointInAtlasTree(Tparameters *pr, double scale, unsigned int tree, unsigned int *nm, double *t, double *p, Tatlasrrt *ar) Selects a random point in the set of charts of the tree. Definition: atlasrrt.c:3821 void NewAtlasRRTNotInDomain(TAtlasRRTStatistics *arst) New node not in the given domain. Definition: atlasrrt.c:635 void SmoothPathInAtlasRRT(Tparameters *pr, unsigned int sID, Tatlasrrt *ar) Local optimiziation of the path to a node. Definition: atlasrrt.c:3745 void GetRRTNNInBall(unsigned int tree, double *q_rand, double r, unsigned int *nn, unsigned int **n, Trrt *rrt) Locates the all the sample closer than a given distance. Definition: rrt.c:1653 Definition of the Tvector type and the associated functions. void InitBranchStatus(double epsilon, double delta, TAtlasRRTBranchConfig *config, TSampleInfo *near, double *randSample, double *goalSample, Tatlasrrt *ar, TAtlasRRTBranchStatus *status) Initializes the branch status. Definition: atlasrrt.c:1634 Tchart * GetAtlasChart(unsigned int id, Tatlas *a) Gets one of the charts of the chart. Definition: atlas.c:4040 void LoadAtlasRRT(Tparameters *pr, char *prefix, TAtlasBase *w, Tatlasrrt *ar) Defines an atlasRRT from the information on a file. Definition: atlasrrt.c:6133 void SaveAtlas(Tparameters *pr, Tfilename *fname, Tatlas *a) Stores the atlas information on a file. Definition: atlas.c:3946 boolean InsideChartPolytope(double *t, Tchart *c) Checks if a parameter point is inside the chart polytope. Definition: chart.c:1316 void Local2Global(double *t, unsigned int *tp, double *p, Tchart *c) Transforms a parameter in tangent space to a point in ambient space. Definition: chart.c:1215 unsigned int AddTrustedChart2Atlas(Tparameters *pr, double *ps, unsigned int parentID, boolean *singular, Tatlas *a) Defines a new chart and adds it to the atlas. Definition: atlas.c:2905 boolean ElementInVector(void *e, boolean(*cmp)(void *, void *), Tvector *vector) Search for an element in a vector. Definition: vector.c:188 void SetSampleInfoFromNode(unsigned int n, Tatlasrrt *ar, TSampleInfo *si) Sets the sample info to taking data from an AtlasRRT node. Definition: atlasrrt.c:1805 void SetRRTCostAndParent(unsigned int i, unsigned int p, double costp, double cost, Trrt *rrt) Changes the cost and the parent associated with a node. Definition: rrt.c:3620 double Manifold2Chart(double *p, unsigned int *tp, double *t, Tchart *c) Returns the parametrization of a point. Definition: chart.c:1039 double DistanceTopologyMin(double t, unsigned int s, unsigned int *tp, double *v1, double *v2) Computes the distance of two points, if it is below a given threshold. Definition: basic_algebra.c:556 #define MEM_EXPAND(_var, _n, _type) Expands a previously allocated memory space. Definition: defines.h:404 boolean CloseCharts(Tparameters *pr, unsigned int *tp, Tchart *c1, Tchart *c2) Identifies close local charts. Definition: chart.c:1267 double GetParameter(unsigned int n, Tparameters *p) Gets the value for a particular parameter. Definition: parameters.c:93 void PopulateWithSamples(Tparameters *pr, unsigned int id, Tatlasrrt *ar) Assign samples to a newly created chart. Definition: atlasrrt.c:3463 unsigned int Steps2PathinAtlasRRT(Tparameters *pr, Tvector *steps, double *pl, double *pc, unsigned int *ns, double ***path, Tatlasrrt *ar) Defines a path from a vector of steps. Definition: atlasrrt.c:3637 #define CS_WD_REGENERATE_SOLUTION_POINT(pr, p, r, wcs) Compleates a solution point with the dummy variables. Definition: wcs.h:480 void NewAtlasRRTStep(TAtlasRRTStatistics *arst) New step in branch extension. Definition: atlasrrt.c:620 unsigned int ChartNumNeighbours(Tchart *c) Number of neighbours of the chart. Definition: chart.c:1678 void SaveAtlasRRTSampleInfo(FILE *f, TSampleInfo *si, Tatlasrrt *ar) Saves the information associated with a sample in an AtlasRRT. Definition: atlasrrt.c:4067 double CostToRoot(unsigned int sID, Trrt *rrt) Computes the cost from a node to the root. Definition: rrt.c:3643 void ForceChartCut(Tparameters *pr, unsigned int *tp, Tbox *ambient, unsigned int id1, Tchart *c1, unsigned int id2, Tchart *c2) Intersect two charts that might be non-neighbours. Definition: chart.c:265 void UpdateCostAndTree(unsigned int sID, Trrt *rrt) A combination of UpdateCostToRoot and UpdateTree. Definition: rrt.c:3692 void NewAtlasRRTCollisionCheck(TAtlasRRTStatistics *arst) New collision check. Definition: atlasrrt.c:715 #define CS_WD_IN_COLLISION(f, pr, s, sPrev, wcs) Checks if a configuration is in collision. Definition: wcs.h:355 void SetRRTNodeCost(unsigned int i, double costp, double cost, Trrt *rrt) Changes the cost associated with a node. Definition: rrt.c:3609 void EnlargeChart(double *t, Tchart *c) Ensures that a chart includes a given point. Definition: chart.c:1335 #define CT_DELTA Size of the steps in the path connecting two configurations. Definition: parameters.h:282 void NewAtlasRRTDirLargeCurvature(TAtlasRRTStatistics *arst) New chart due to the curvature in the expansion direction. Definition: atlasrrt.c:675 void NewAtlasRRTBlockBySingularity(TAtlasRRTStatistics *arst) Number of times we try to create a char at a singular regions. Definition: atlasrrt.c:700 #define CT_N_DOF Dimensionality of the solution space for the mechanism at hand. Definition: parameters.h:318 Auxiliary functions to deal with sets of samples. #define CT_DETECT_BIFURCATIONS TRUE (or 1) if bifurcation must be detected. Definition: parameters.h:468 unsigned int ChartNeighbourID(unsigned int n, Tchart *c) Returns the identifier of one of the neighbours of a chart. Definition: chart.c:1690 boolean InitAtlasFromPoint(Tparameters *pr, boolean parallel, boolean simpleChart, double *p, TAtlasBase *w, Tatlas *a) Initializes an atlas from a given point. Definition: atlas.c:2782 void InitAtlasRRT(Tparameters *pr, boolean parallel, double *ps, unsigned int mode, boolean graph, double *pg, TAtlasBase *w, Tatlasrrt *ar) Defines a Atlas-RRT from a given point. Definition: atlasrrt.c:4114 Definition of basic randomization functions. boolean PointTowardRandSample(unsigned int cId, double d, double *t, unsigned int samplingMode, boolean onManifold, double *origRandSample, unsigned int *randChart, double *randParam, double *randSample, double *deltaParam, Tatlasrrt *ar) Determines the motion on the current chart to approach q_rand. Definition: atlasrrt.c:3240 void New_NewTemptativeSample(Tparameters *pr, unsigned int it, TAtlasRRTBranchConfig *config, TAtlasRRTBranchStatus *status, TSampleInfo *current, TSampleInfo *next, TSampleInfo *rand, double *randSample, void *st, Tatlasrrt *ar) Generates a new sample in between q_near and q_rand. Definition: atlasrrt.c:2115 void NewAtlasRRTRandomSample(TAtlasRRTStatistics *arst) New random sample. Definition: atlasrrt.c:705 void DeleteSamples(unsigned int ns, double **path) Deletes the space used by a set of samples. Definition: samples.c:3159 unsigned int AddStepToAtlasRRTstar(Tparameters *pr, unsigned int it, boolean expand2Goal, unsigned int i_near, double *q_rand, unsigned int *id_goal, double *goal, TAtlasRRTStatistics *arst, Tatlasrrt *ar) Adds a node to an AtlasRRT*. Definition: atlasrrt.c:4872 void NewAtlasRRTNoConvergentStep(TAtlasRRTStatistics *arst) Problems with convergence. Definition: atlasrrt.c:625 #define CS_WD_GENERATE_SIMP_INITIAL_BOX(pr, b, wcs) Computes the global box for the simplified system. Definition: wcs.h:539 unsigned int GetAtlasRRTNumNodes(Tatlasrrt *ar) Number of nodes in the AtlasRRT. Definition: atlasrrt.c:5789 void SaveAtlasRRTChartInfo(FILE *f, TChartInfo *ci, Tatlasrrt *ar) Saves the information associated with a chart in an AtlasRRT. Definition: atlasrrt.c:4081 boolean AtlasRRTValidateSample(Tparameters *pr, double *q_rand, unsigned int tree, boolean expand2goal, unsigned int lastNN2Goal, double *goal, double l, double *h, unsigned int *i_near, TAtlasRRTStatistics *arst, Tatlasrrt *ar) Validates a sample generate with AtlasRRTSample. Definition: atlasrrt.c:4340 unsigned int StartNew3dObject(Tcolor *c, Tplot3d *p) Start a composed object. Definition: plot3d.c:157 void DecreaseChartSamplingRadius(Tchart *c) Decrease the sampling radious of the chart. Definition: chart.c:1388 double AddBranchToAtlasRRT(Tparameters *pr, unsigned int it, unsigned int addMode, boolean revisitCharts, boolean checkCollisions, boolean onManifold, boolean explorationSample, double maxLength, unsigned int i_near, double *origRandSample, double *goalSample, void *st, unsigned int *lastSampleID, boolean *reachedQRand, boolean *reachedGoal, unsigned int *ns, double ***path, double(*costF)(Tparameters *, boolean, double *, void *), void *costData, Tatlasrrt *ar) Adds a new branch to the AtlasRRT. Definition: atlasrrt.c:2478 void AddChart2Tree(unsigned int tree, unsigned int chartId, Tatlasrrt *ar) Add a chart to a tree. Definition: atlasrrt.c:3218 void PlotAtlas(char *fname, int argc, char **arg, Tparameters *pr, FILE *fcost, unsigned int xID, unsigned int yID, unsigned int zID, Tatlas *a) Pots a projection of an atlas. Definition: atlas.c:4227 unsigned int * GetRRTTopology(Trrt *rrt) Returns a pointer to an array with the topology for each variable. Definition: rrt.c:3638 void ClosePlot3d(boolean quit, double average_x, double average_y, double average_z, Tplot3d *p) Destructor. Definition: plot3d.c:473 unsigned int NewVectorElement(void *e, Tvector *vector) Adds an element to the vector. Definition: vector.c:216 boolean PointInBoxTopology(boolean *used, boolean update, unsigned int n, double *v, double tol, unsigned int *tp, Tbox *b) Checks if a point is included in a(sub-) box. Definition: box.c:374 void PrintAtlasRRTStatistics(Tatlasrrt *ar, TAtlasRRTStatistics *arst) Prints the summary of atlasRRT statistics. Definition: atlasrrt.c:766 unsigned int DetermineChartNeighbour(double epsilon, double *t, Tchart *c) Determines the neighbouring chart containing a given point. Definition: chart.c:1324 double GetDynamicDomainRadius(unsigned int i, Trrt *rrt) Returns the current dynamic domain radius for a given sample. Definition: rrt.c:3513 #define CS_WD_ORIGINAL_IN_COLLISION(pr, o, oPrev, wcs) Checks if a configuration is in collision. Definition: wcs.h:397 void SaveAtlasRRT(Tparameters *pr, char *prefix, Tatlasrrt *ar) Stores the Atlas-RRT information on a file. Definition: atlasrrt.c:6076 |
Follow us!