atlasrrt.h File Reference IntroductionDefines a RRT where the sampling is done using an atlas. Many functions are very similar to those for Trrt but adapted to work in combination with an atlas.
Definition in file atlasrrt.h.
Macro Definition Documentation◆ ATLASRRT_VERBOSE
Vebosity of the atlasRRT operations. If set to 0 only minimalistic information is printed. Note that some of the operations of the AtlasRRT are actually performed at the level of RRT. Thus to get a complete information you should set RRT_VERBOSE to 1 too. And the same applies for ATLAS_VERBOSE. Definition at line 32 of file atlasrrt.h. ◆ REVISIT_CHARTS
If set, RRT branches can enter previously existing charts (charts in the atlas before starting the branch). This option is only taken into account when extending an RRT (towards and randomly generated sample) and not when aiming at a sample already in the RRT (when Definition at line 44 of file atlasrrt.h. ◆ REPEAT_CHARTS
If set, RRT branches can re-enter previously traversed charts (by the same branch). Definition at line 51 of file atlasrrt.h. ◆ RANDOM_INT_TIME
If set to 1, the integration time for each planning step is set at random with a maximum set in the parameters (CT_INTEGRATION_TIME). Definition at line 59 of file atlasrrt.h. ◆ RELINEALIZE_DYNAMICS
If set, we re-compute the LQR policy after the creation of a new chart. In this way, the linearization errors may be mitigated and the system may converge faster to the random state (or, eventually, the goal). Possible values:
Definition at line 73 of file atlasrrt.h. ◆ DYNAMICS_ADD_ALL
In dynamic branches we can add just the last step or all intermediate steps. This second option generates more nodes in the tree but provides more points for future three extension.
Definition at line 93 of file atlasrrt.h. ◆ RANDOMIZED_LQR
If set (i.e., larger than 0) some of the action are selected at random instead of using the LQR approach. This only holds when using LQR, of course. The value is in the range [0,1] and gives the probability of executing random actions (e.g., 0.1 means a 10% of chance of selecting the action at random). Definition at line 104 of file atlasrrt.h. ◆ GET_ATLASRRT_GLOBAL_CURV_CHECK
Set this to one to check the global curvature tolerences between charts. Otherwise, it is only the curvature along the direction of expansion that is checked. Definition at line 112 of file atlasrrt.h. ◆ REJECT_USING_DYNAMIC_CONE
Reject samples if they are not in the dynamic cone of the near sample. Definition at line 119 of file atlasrrt.h. ◆ ATLASRRT_DYNAMIC_CONNECT
If set, the RRT for problems with dynamics implement the connect stratey instead of the extend, i.e., braches are extended as far as they get closer to the random sample. Definition at line 128 of file atlasrrt.h. ◆ DEBUG_SIMULATION
If set we collect statistics during the simulation. This is only used for debugging purposes and mainly to check the number of Broyden iterations. Definition at line 137 of file atlasrrt.h. ◆ GET_ATLASRRT_STATISTICS
Set this to one to gather statistics of AtlasRRT construction process. These statistics are printed at the end of the AtlasRRT construction. Definition at line 145 of file atlasrrt.h. ◆ ADJUST_SA
If set (>0) the sampling area is adjusted (reduced/increased) taking into account the branch extension (if successful the sampling area is incresased and if a branch extension failed the sampling area is reduced). Two modes are possible
The ratio at which the sampling area is adjusted is defined in MOV_AVG_UP and MOV_AVG_DOWN.
Definition at line 166 of file atlasrrt.h. ◆ NN_IN_CHART
If set to 1 we search for nearest neighbour inside the chart including the random sample. This should only be done in problems with dynamics and when using the time to go metric. Definition at line 175 of file atlasrrt.h. ◆ NN_IN_NEIGHBOUR_CHART
If NN_IN_CHART is set, we can additionally look for the nearest neighbours in the neighbouring chart just activating this flag. Definition at line 183 of file atlasrrt.h. Function Documentation◆ InitAtlasRRTStatistics()
Init the Atlas RRT statistics.
Definition at line 1086 of file atlasrrt.c. References TAtlasRRTStatistics::dQrand, TAtlasRRTStatistics::dQrandReached, TAtlasRRTStatistics::itB, TAtlasRRTStatistics::n, TAtlasRRTStatistics::nAverageNeighbours, TAtlasRRTStatistics::nB, TAtlasRRTStatistics::nBranch, TAtlasRRTStatistics::nChart, TAtlasRRTStatistics::nChartBlocked, TAtlasRRTStatistics::nCollision, TAtlasRRTStatistics::nCollisionChecks, TAtlasRRTStatistics::nDirLargeCurvature, TAtlasRRTStatistics::nDynamicErrors, TAtlasRRTStatistics::nDynamicExtension, TAtlasRRTStatistics::nErrorNewChart, TAtlasRRTStatistics::nImpossible, TAtlasRRTStatistics::nImprovedDynamicExtension, TAtlasRRTStatistics::nIntTimeReached, TAtlasRRTStatistics::nLargeCurvature, TAtlasRRTStatistics::nLQRComputePolicy, TAtlasRRTStatistics::nLQRPolicy, TAtlasRRTStatistics::nNoAction, TAtlasRRTStatistics::nNoConnect, TAtlasRRTStatistics::nNoConvergent, TAtlasRRTStatistics::nNoDir, TAtlasRRTStatistics::nNoEmptyBranch, TAtlasRRTStatistics::nNoEmptyTreeConnection, TAtlasRRTStatistics::nNoPolicy, TAtlasRRTStatistics::nNoReplay, TAtlasRRTStatistics::nNotInDomain, TAtlasRRTStatistics::nOutOfChart, TAtlasRRTStatistics::nQrandReached, TAtlasRRTStatistics::nRandom, TAtlasRRTStatistics::nRejections1, TAtlasRRTStatistics::nRejections2, TAtlasRRTStatistics::nRejections3, TAtlasRRTStatistics::nRejections4, TAtlasRRTStatistics::nRepeatedChart, TAtlasRRTStatistics::nRepeatedSample, TAtlasRRTStatistics::nRevisitedChart, TAtlasRRTStatistics::nSample, TAtlasRRTStatistics::nSingular, TAtlasRRTStatistics::nStep, TAtlasRRTStatistics::nStepReduction, TAtlasRRTStatistics::nTooFar, TAtlasRRTStatistics::nTooLong, TAtlasRRTStatistics::nToptIncrements, TAtlasRRTStatistics::nTransTestFailed, TAtlasRRTStatistics::nTreeConnection, TAtlasRRTStatistics::satAction, and TAtlasRRTStatistics::topt. Referenced by AtlasBiRRTstar(), AtlasRRT(), AtlasRRTSimulate(), AtlasRRTstar(), AtlasTRRT(), and main(). ◆ AccumulateAtlasRRTStatistics()
Accumulates two sets of Atlas RRT statistics. This is used to accumulate statistics when executing a long sequence of experiments.
Definition at line 1405 of file atlasrrt.c. References TAtlasRRTStatistics::dQrand, TAtlasRRTStatistics::dQrandReached, TAtlasRRTStatistics::itB, TAtlasRRTStatistics::n, TAtlasRRTStatistics::nAverageNeighbours, TAtlasRRTStatistics::nB, TAtlasRRTStatistics::nBranch, TAtlasRRTStatistics::nChart, TAtlasRRTStatistics::nChartBlocked, TAtlasRRTStatistics::nCollision, TAtlasRRTStatistics::nCollisionChecks, TAtlasRRTStatistics::nDirLargeCurvature, TAtlasRRTStatistics::nDynamicErrors, TAtlasRRTStatistics::nDynamicExtension, TAtlasRRTStatistics::nErrorNewChart, TAtlasRRTStatistics::nImpossible, TAtlasRRTStatistics::nImprovedDynamicExtension, TAtlasRRTStatistics::nIntTimeReached, TAtlasRRTStatistics::nLargeCurvature, TAtlasRRTStatistics::nLQRComputePolicy, TAtlasRRTStatistics::nLQRPolicy, TAtlasRRTStatistics::nNoAction, TAtlasRRTStatistics::nNoConnect, TAtlasRRTStatistics::nNoConvergent, TAtlasRRTStatistics::nNoDir, TAtlasRRTStatistics::nNoEmptyBranch, TAtlasRRTStatistics::nNoEmptyTreeConnection, TAtlasRRTStatistics::nNoPolicy, TAtlasRRTStatistics::nNoReplay, TAtlasRRTStatistics::nNotInDomain, TAtlasRRTStatistics::nOutOfChart, TAtlasRRTStatistics::nQrandReached, TAtlasRRTStatistics::nRandom, TAtlasRRTStatistics::nRejections1, TAtlasRRTStatistics::nRejections2, TAtlasRRTStatistics::nRejections3, TAtlasRRTStatistics::nRejections4, TAtlasRRTStatistics::nRepeatedChart, TAtlasRRTStatistics::nRepeatedSample, TAtlasRRTStatistics::nRevisitedChart, TAtlasRRTStatistics::nSample, TAtlasRRTStatistics::nSingular, TAtlasRRTStatistics::nStep, TAtlasRRTStatistics::nStepReduction, TAtlasRRTStatistics::nTooFar, TAtlasRRTStatistics::nTooLong, TAtlasRRTStatistics::nToptIncrements, TAtlasRRTStatistics::nTransTestFailed, TAtlasRRTStatistics::nTreeConnection, TAtlasRRTStatistics::satAction, and TAtlasRRTStatistics::topt. Referenced by AtlasBiRRTstar(), AtlasRRT(), AtlasRRTstar(), and AtlasTRRT(). ◆ PrintAtlasRRTStatistics()
Prints a report about the collected atlasRRT statistics.
Definition at line 1482 of file atlasrrt.c. References Tatlasrrt::atlas, TAtlasRRTStatistics::dQrand, TAtlasRRTStatistics::dQrandReached, DynamicDomainRRT(), Tatlasrrt::dynamics, GetAtlasChart(), GetChartSamplingRadius(), GetDynamicDomainRadius(), INF, TAtlasRRTStatistics::itB, TAtlasRRTStatistics::n, TAtlasRRTStatistics::nAverageNeighbours, TAtlasRRTStatistics::nB, TAtlasRRTStatistics::nBranch, Tatlasrrt::nc, TAtlasRRTStatistics::nChart, TAtlasRRTStatistics::nChartBlocked, TAtlasRRTStatistics::nCollision, TAtlasRRTStatistics::nCollisionChecks, TAtlasRRTStatistics::nDirLargeCurvature, TAtlasRRTStatistics::nDynamicErrors, TAtlasRRTStatistics::nDynamicExtension, TAtlasRRTStatistics::nErrorNewChart, TAtlasRRTStatistics::nImpossible, TAtlasRRTStatistics::nImprovedDynamicExtension, TAtlasRRTStatistics::nIntTimeReached, TAtlasRRTStatistics::nLargeCurvature, TAtlasRRTStatistics::nLQRComputePolicy, TAtlasRRTStatistics::nLQRPolicy, TAtlasRRTStatistics::nNoAction, TAtlasRRTStatistics::nNoConnect, TAtlasRRTStatistics::nNoConvergent, TAtlasRRTStatistics::nNoDir, TAtlasRRTStatistics::nNoEmptyBranch, TAtlasRRTStatistics::nNoEmptyTreeConnection, TAtlasRRTStatistics::nNoPolicy, TAtlasRRTStatistics::nNoReplay, TAtlasRRTStatistics::nNotInDomain, TAtlasRRTStatistics::nOutOfChart, TAtlasRRTStatistics::nQrandReached, TAtlasRRTStatistics::nRandom, TAtlasRRTStatistics::nRejections1, TAtlasRRTStatistics::nRejections2, TAtlasRRTStatistics::nRejections3, TAtlasRRTStatistics::nRejections4, TAtlasRRTStatistics::nRepeatedChart, TAtlasRRTStatistics::nRepeatedSample, TAtlasRRTStatistics::nRevisitedChart, Tatlasrrt::ns, TAtlasRRTStatistics::nSample, TAtlasRRTStatistics::nSingular, TAtlasRRTStatistics::nStep, TAtlasRRTStatistics::nStepReduction, TAtlasRRTStatistics::nTooFar, TAtlasRRTStatistics::nTooLong, TAtlasRRTStatistics::nToptIncrements, TAtlasRRTStatistics::nTransTestFailed, TAtlasRRTStatistics::nTreeConnection, Tatlasrrt::parallel, Tatlasrrt::rrt, TAtlasRRTStatistics::satAction, and TAtlasRRTStatistics::topt. Referenced by AtlasBiRRTstar(), AtlasRRT(), AtlasRRTSimulate(), AtlasRRTstar(), AtlasTRRT(), and main(). ◆ DeleteAtlasRRTStatistics()
Deletes the atlasRRT statistics object.
Definition at line 1822 of file atlasrrt.c. Referenced by AtlasBiRRTstar(), AtlasRRT(), AtlasRRTSimulate(), AtlasRRTstar(), AtlasTRRT(), and main(). ◆ InitAtlasRRT()
Defines a Atlas-RRT with a single sample, the root.
Definition at line 5667 of file atlasrrt.c. References ActionSpaceDimension(), AddChart2AtlasRRT(), Tatlasrrt::ambient, Tatlasrrt::atlas, Tatlasrrt::birrt, TSampleInfo::c, Tatlasrrt::ce, Tatlasrrt::chartsAtTree1, Tatlasrrt::chartsAtTree2, Tatlasrrt::ci, CS_WD_GENERATE_SIMP_INITIAL_BOX, CS_WD_GET_SIMP_JACOBIAN, CT_CE, CT_DYNAMIC_GOAL_ERROR, CT_DYNAMICS, CT_E, CT_N_DOF, CT_N_DYNAMIC_ACTIONS, CT_R, Tatlasrrt::da, Tatlasrrt::dge, Tatlasrrt::ds, Tatlasrrt::dynamics, Tatlasrrt::e, Error(), EXPLORATION_RRT, FALSE, TSampleInfo::generateChart, GetAtlasNumCharts(), GetBoxNIntervals(), GetParameter(), GetRRTNode(), GetRRTNumNodes(), GetRRTTopology(), GetRRTWeights(), GOAL2START, TSampleInfo::id, INF, INIT_NUM_CHARTS, INIT_NUM_SAMPLES_RRT, InitAtlasFromPoint(), InitDynamicSpace(), InitRRT(), TChartInfo::it, Tatlasrrt::J, Tatlasrrt::k, TChartInfo::lc, TSampleInfo::lsc, Tatlasrrt::m, Tatlasrrt::mc, Tatlasrrt::mct1, Tatlasrrt::mct2, Tatlasrrt::ms, Tatlasrrt::nc, Tatlasrrt::nct1, Tatlasrrt::nct2, Tatlasrrt::nda, NEW, NO_UINT, Tatlasrrt::ns, ONE_TREE, Tatlasrrt::parallel, TSampleInfo::pc, Tatlasrrt::r, Tatlasrrt::rrt, TSampleInfo::s, Tatlasrrt::si, START2GOAL, TSampleInfo::t, Tatlasrrt::tp, TChartInfo::tree, TRUE, Tatlasrrt::w, and Tatlasrrt::weights. Referenced by main(). ◆ AtlasRRTSample()
Generates a random sample to expand the AtlasRRT. The sample can be generated with different policies according to the mode (from the ambient space, or near the existing nodes) and the goal (if defined the goal is used as random sample 1 out of 100 times).
Definition at line 5866 of file atlasrrt.c. References AMBIENT_SAMPLING, Tatlasrrt::atlas, Tatlasrrt::birrt, Chart2Manifold(), CS_WD_SIMP_INEQUALITIES_HOLD, DecreaseChartSamplingRadius(), Error(), FALSE, GetAtlasChart(), IncreaseChartSamplingRadius(), INF, Tatlasrrt::J, Tatlasrrt::k, KDTREE_SAMPLING, Tatlasrrt::m, NEW, NewAtlasRRTRandomSample(), NewAtlasRRTSampleRejection1(), NO_UINT, Norm(), Tatlasrrt::r, randomDouble(), RandomPointInAtlasTree(), Tatlasrrt::rrt, RRTSample(), TANGENT_SAMPLING, Tatlasrrt::tp, TRUE, and Tatlasrrt::w. Referenced by AtlasBiRRTstar(), AtlasRRT(), AtlasRRTstar(), and AtlasTRRT(). ◆ AtlasRRTValidateSample()
Checks if a given sample is valid to expand the AtlasRRT.
Definition at line 5974 of file atlasrrt.c. References Tatlasrrt::atlas, TSampleInfo::c, Chart2Manifold(), ChartNeighbourID(), ChartNumNeighbours(), Tatlasrrt::da, DistanceTopology(), Tatlasrrt::ds, Tatlasrrt::dynamics, Error(), FALSE, GeneralDotProduct(), GetAtlasChart(), GetChartTangentSpace(), GetRRTNN(), GetRRTNNInChart(), Getxdot(), HEURISTIC_RRT_STAR, InDynamicDomain(), INF, Tatlasrrt::J, Tatlasrrt::k, Local2Global(), Tatlasrrt::m, Manifold2Chart(), NEW, NewAtlasRRTSampleRejection2(), NewAtlasRRTSampleRejection3(), NewAtlasRRTSampleRejection4(), NEWZ, NO_UINT, Norm(), Tatlasrrt::ns, PrintVector(), randomDouble(), Tatlasrrt::rrt, RRTBlockedProb(), TSampleInfo::s, Tatlasrrt::si, SubtractVector(), TSampleInfo::t, T2G_METRIC_NN_EXTEND, TMatrixVectorProduct(), Tatlasrrt::tp, and TRUE. Referenced by AtlasBiRRTstar(), AtlasRRT(), AtlasRRTstar(), and AtlasTRRT(). ◆ RefineTrajectory()
In problems with dynamics only the end-point of the simulated RRT branches are added to the tree. Thus, the resolution of the resulting trajectories are sometimes too coarse. This function simulates the trajectories between the steps in the trajectory to increase the time resolution of the trajectory. In this way, the animations are smoother.
Definition at line 6177 of file atlasrrt.c. References AddStep2Trajectory(), Tatlasrrt::ambient, ConnectDynamicStates(), ConnectDynamicStatesID(), CT_DELTA, Tatlasrrt::da, DeleteTrajectory(), Tatlasrrt::ds, FALSE, GetParameter(), INF, InitTrajectory(), Tatlasrrt::J, Tatlasrrt::k, Tatlasrrt::m, Tatlasrrt::tp, and Tatlasrrt::w. Referenced by AtlasRRT(), and main(). ◆ AtlasRRTSimulate()
Dynamic simulation from the first point in the atlasrrt (it is supposed to include only one point) applying a given action for the integration time fixed in the paremeter structure.
Definition at line 6270 of file atlasrrt.c. References ActionSpaceDimension(), AddBranchToAtlasRRT(), AddStep2Trajectory(), CS_WD_GET_SYSTEM_VARS, CS_WD_REGENERATE_ORIGINAL_POINT, CT_DETECT_BIFURCATIONS, CT_INTEGRATION_TIME, TAtlasRRTBranchConfig::currentMaxIntTime, DeleteAtlasRRTStatistics(), DeleteSamples(), Tatlasrrt::ds, Error(), FALSE, GetParameter(), INF, InitAtlasRRTStatistics(), InitBranchConfig(), InitTrajectory(), TAtlasRRTBranchState::intTime, TAtlasRRTBranchConfig::maxIntTime, TAtlasRRTBranchConfig::maxTopt, Tatlasrrt::nc, Tatlasrrt::nda, Tatlasrrt::ns, PrintAtlasRRTStatistics(), TAtlasRRTBranchState::reachedGoal, TSampleInfo::s, Tatlasrrt::si, SIMULATE_DYNAMICS, TAtlasRRTBranchConfig::topt, and Tatlasrrt::w. Referenced by main(). ◆ AtlasRRT()
Adds as many branches as necessary to the Atlas-RRT until a targed configuration is reached (approached at a small distance).
Definition at line 6380 of file atlasrrt.c. References AccumulateAtlasRRTStatistics(), AddBranchToAtlasDynamicRRT(), AddBranchToAtlasRRT(), Tatlasrrt::ambient, Tatlasrrt::atlas, AtlasRRTSample(), AtlasRRTValidateSample(), AverageNumNeighbours(), Tatlasrrt::birrt, TSampleInfo::c, TAtlasRRTBranchConfig::checkCollisions, CONNECT_RRT_DYNAMICS, CONNECT_RRTs, CS_ANY_COLLISION, CS_WD_ERROR_IN_SIMP_EQUATIONS, CS_WD_GENERATE_SIMPLIFIED_POINT, CS_WD_ORIGINAL_IN_COLLISION, CS_WD_REGENERATE_SOLUTION_POINT, CS_WD_SIMP_INEQUALITIES_HOLD, CT_DETECT_BIFURCATIONS, CT_EPSILON, CT_INTEGRATION_TIME, CT_MAX_NODES_RRT, CT_MAX_PLANNING_TIME, CT_SAMPLING, TAtlasRRTBranchConfig::currentMaxIntTime, Tatlasrrt::da, DecreaseChartSamplingRadius(), DeleteAtlasRRTStatistics(), DeleteDynamicBranches(), DeleteStatistics(), DistanceTopology(), Tatlasrrt::dynamics, DYNAMICS_ONE_ACTION_CONNECT, DYNAMICS_ONE_ACTION_EXTEND, Error(), EXPLORATION_RRT, TAtlasRRTBranchConfig::explorationSample, EXTEND_RRT, EXTEND_RRT_DYNAMICS, FALSE, GetAtlasChart(), GetElapsedTime(), GetParameter(), GetRRTNNInBranch(), GOAL2START, IncreaseChartSamplingRadius(), INF, InitAtlasRRTStatistics(), InitBranchConfig(), InitDynamicBranches(), InitStatistics(), Tatlasrrt::k, TAtlasRRTBranchState::lastID, Tatlasrrt::m, TAtlasRRTBranchConfig::maxIntTime, MOV_AVG_DOWN, MOV_AVG_UP, Tatlasrrt::nc, NEW, NewAtlasRRTBranch(), NewAtlasRRTChart(), NewAtlasRRTDistanceQrand(), NewAtlasRRTNoEmptyBranch(), NewAtlasRRTNoEmptyTreeConnection(), NewAtlasRRTSample(), NewAtlasRRTTreeConnection(), NewAverageNumNeighbours(), NO_UINT, Tatlasrrt::ns, TAtlasRRTBranchConfig::onManifold, Tatlasrrt::parallel, PathStart2GoalInRRT(), PointInBoxTopology(), PrintAtlasRRTStatistics(), PrintVector(), randomDouble(), TAtlasRRTBranchState::reachedGoal, RefineTrajectory(), Tatlasrrt::rrt, TSampleInfo::s, Tatlasrrt::si, START2GOAL, T2G_METRIC_INSIDE_CONNECT, T2G_METRIC_INSIDE_EXTEND, TANGENT_SAMPLING, Time2GoNNToTree(), Tatlasrrt::tp, TRUE, and Tatlasrrt::w. Referenced by main(). ◆ AtlasTRRT()
Adds as many branches as necessary to the Atlas-TRRT until a targed configuration is reached (approached at a small distance). The difference with respect AtlasRRT is that here we take into account a cost function using the strategy proposed in L. Jaillet, J. Cortes, T. Simeon, Sampling-based path planning on configuration-space costmaps IEEE Transactions on Robotics, Vol. 26(4), pp. 635 - 646, 2010. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5477164
Definition at line 6777 of file atlasrrt.c. References AccumulateAtlasRRTStatistics(), AddBranchToAtlasRRT(), Tatlasrrt::ambient, AtlasRRTSample(), AtlasRRTValidateSample(), Tatlasrrt::birrt, TAtlasRRTBranchConfig::costData, TAtlasRRTBranchConfig::costF, CS_WD_ERROR_IN_SIMP_EQUATIONS, CS_WD_GENERATE_SIMPLIFIED_POINT, CS_WD_ORIGINAL_IN_COLLISION, CS_WD_REGENERATE_SOLUTION_POINT, CS_WD_SIMP_INEQUALITIES_HOLD, CT_DETECT_BIFURCATIONS, CT_EPSILON, CT_MAX_NODES_RRT, CT_MAX_PLANNING_TIME, CT_SAMPLING, DeleteAtlasRRTStatistics(), DeleteStatistics(), Tatlasrrt::dynamics, Error(), EXPLORATION_RRT, TAtlasRRTBranchConfig::explorationSample, EXTEND_RRT, FALSE, GetElapsedTime(), GetParameter(), GetRRTNode(), GetTRRTTemperature(), INF, InitAtlasRRTStatistics(), InitBranchConfig(), InitStatistics(), Tatlasrrt::k, TAtlasRRTBranchState::lastID, Tatlasrrt::m, Tatlasrrt::nc, NEW, NewAtlasRRTChart(), NewAtlasRRTSample(), NO_UINT, Tatlasrrt::ns, TAtlasRRTBranchConfig::onManifold, PathStart2GoalInRRT(), PointInBoxTopology(), PrintAtlasRRTStatistics(), TAtlasRRTBranchState::reachedGoal, Tatlasrrt::rrt, SetRRTNodeCost(), START2GOAL, Tatlasrrt::tp, TRUE, and Tatlasrrt::w. Referenced by main(). ◆ AtlasRRTstar()
Tries to determine an optimal path to the goal using the RRT* method by S. Karaman and E. Frazzoli "Sampling-based algorithms for optimal motion planning" International Journal of Robotics Research, 2011 but adapted to operate on manifolds. In this case the connections of the connection between points on the manifold is done using the method by Berenson, D., Srinivasa, S., and Kuffner, J. (2011). Task space regions: A framework for pose-constrained manipulation planning. International Journal of Robotics Research. doi 10.1177/0278364910396389. Note that in this case the RRT construction is not stopped when the goal is reached but continues refining the path for the maximum time allowed for the tree construction. This is the atlas-based version of RRTstar. The main difference is that the atlas is used to sample new nodes and to determine paths between samples. If constant GAMMA is 0 this procedure only finds the first path to the goal and then stops (to attempt to improve the path is done).
Definition at line 7304 of file atlasrrt.c. References AccumulateAtlasRRTStatistics(), AddStepToAtlasRRTstar(), Tatlasrrt::ambient, AtlasBiRRTstar(), AtlasRRTSample(), AtlasRRTstarCloseIteration(), AtlasRRTValidateSample(), Tatlasrrt::birrt, CopyDoublePair(), CS_WD_ERROR_IN_SIMP_EQUATIONS, CS_WD_GENERATE_SIMPLIFIED_POINT, CS_WD_ORIGINAL_IN_COLLISION, CS_WD_REGENERATE_SOLUTION_POINT, CS_WD_SIMP_INEQUALITIES_HOLD, CT_DELTA, CT_EPSILON, CT_GAMMA, CT_MAX_PLANNING_ITERATIONS, CT_MAX_PLANNING_TIME, CT_SAMPLING, DeleteAtlasRRTStatistics(), DeleteHeap(), DeleteStatistics(), DistanceTopology(), Tatlasrrt::dynamics, Error(), EXPLORATION_RRT, FALSE, GetElapsedTime(), GetParameter(), GetRRTNNInBall(), GetRRTNodeCost(), HEURISTIC_RRT_STAR, INF, InitAtlasRRTStatistics(), InitHeap(), InitStatistics(), IsRRTGraph(), Tatlasrrt::k, LessThanDoublePair(), Tatlasrrt::m, Tatlasrrt::ms, Tatlasrrt::nc, NEW, NewAtlasRRTChart(), NewAtlasRRTSample(), NO_UINT, Tatlasrrt::ns, Tatlasrrt::parallel, PointInBoxTopology(), PrintAtlasRRTStatistics(), ReconstructAtlasRRTPath(), RecursiveReWireRRTstar(), ReWireAtlasRRTstar(), Tatlasrrt::rrt, TSampleInfo::s, Tatlasrrt::si, START2GOAL, Tatlasrrt::tp, TRUE, UpdateCostAndTree(), Tatlasrrt::w, and WireAtlasRRTstar(). Referenced by AtlasBiRRTstar(), and main(). ◆ AtlasBiRRTstar()
The same as AtlasRRTstar but here a bi-directional RRT is built.
Definition at line 7546 of file atlasrrt.c. References AccumulateAtlasRRTStatistics(), AddBranchToAtlasRRT(), AddEdgeToRRT(), AddStepToAtlasRRTstar(), AtlasBiRRTstarCloseIteration(), AtlasRRTSample(), AtlasRRTstar(), AtlasRRTValidateSample(), Tatlasrrt::birrt, BOTHTREES, ChangeBiRRTSteps(), CONNECT_SAMPLES, CopyDoublePair(), CopyRRTStep(), CT_DELTA, CT_GAMMA, CT_MAX_PLANNING_ITERATIONS, CT_MAX_PLANNING_TIME, CT_SAMPLING, DeleteAtlasRRTStatistics(), DeleteHeap(), DeleteStatistics(), DeleteVector(), DistanceTopology(), Tatlasrrt::dynamics, Error(), EXPLORATION_RRT, FALSE, GetElapsedTime(), GetParameter(), GetRRTNN(), GetRRTNNInBall(), GetRRTNodeCost(), GetRRTNodeTree(), GOAL2START, HEURISTIC_RRT_STAR, INF, InitAtlasRRTStatistics(), InitBranchConfig(), InitHeap(), InitStatistics(), InitVector(), IsRRTGraph(), Tatlasrrt::k, LessThanDoublePair(), Tatlasrrt::m, TAtlasRRTBranchConfig::maxLength, Tatlasrrt::ms, Tatlasrrt::nc, NEW, NewAtlasRRTChart(), NewAtlasRRTSample(), NO_UINT, Tatlasrrt::ns, Tatlasrrt::parallel, PrintAtlasRRTStatistics(), TAtlasRRTBranchState::reachedQrand, RecursiveReWireRRTstar(), ReWireAtlasRRTstar(), Tatlasrrt::rrt, TSampleInfo::s, Tatlasrrt::si, START2GOAL, Steps2PathinAtlasRRT(), Tatlasrrt::tp, TRUE, UpdateBiRRTSteps(), and WireAtlasRRTstar(). Referenced by AtlasRRTstar(). ◆ GetAtlasRRTNumNodes()
Returns the number of nodes (samples) in the AtlasRRT.
Definition at line 7802 of file atlasrrt.c. References Tatlasrrt::ns. Referenced by main(). ◆ GetAtlasRRTNumCharts()
Returns the number of charts in the AtlasRRT.
Definition at line 7807 of file atlasrrt.c. References Tatlasrrt::nc. Referenced by main(). ◆ RandomPointInAtlasTree()
Selects a random point in the set of charts reached by a given tree.
Definition at line 5375 of file atlasrrt.c. References Tatlasrrt::atlas, Tatlasrrt::birrt, BOTHTREES, Tatlasrrt::chartsAtTree1, Tatlasrrt::chartsAtTree2, GetAtlasChart(), GetAtlasNumCharts(), GetChartSamplingRadius(), Tatlasrrt::k, Tatlasrrt::nct1, Tatlasrrt::nct2, NEW, randomMax(), RandomPointInAtlas(), RandomPointInChart(), randomWithDistribution(), START2GOAL, and Tatlasrrt::tp. Referenced by AtlasRRTSample(). ◆ GetRRTNNInChart()
Selects the nearest neighbour from the random point in the chart including the random sample.
Definition at line 7812 of file atlasrrt.c. References Tatlasrrt::atlas, Tatlasrrt::birrt, Tatlasrrt::ci, DistanceTopologyMin(), Tatlasrrt::ds, GetAtlasChart(), GetRRTNodeTree(), INF, Tatlasrrt::k, TChartInfo::lc, TSampleInfo::lsc, Manifold2Chart(), NEW, NO_UINT, PrintVector(), Tatlasrrt::rrt, TSampleInfo::s, Tatlasrrt::si, TSampleInfo::t, Time2Go(), and Tatlasrrt::tp. Referenced by AtlasRRTValidateSample(), and Time2GoNNToTree(). ◆ Time2GoNNToTree()
Determines the closest sample in a given tree to another sample (in the other tree) using the time2go metric. This gives the point of the tree from where it is more likely to connec to the given sample.
Definition at line 7869 of file atlasrrt.c. References Tatlasrrt::atlas, Tatlasrrt::chartsAtTree1, Tatlasrrt::chartsAtTree2, Tatlasrrt::ds, Error(), GetAtlasChart(), GetChartCenter(), GetRRTNNInChart(), GetRRTNodeTree(), GOAL2START, INF, Tatlasrrt::k, Manifold2Chart(), Tatlasrrt::nct1, Tatlasrrt::nct2, NEW, NEWZ, NO_UINT, Tatlasrrt::rrt, TSampleInfo::s, Tatlasrrt::si, START2GOAL, T2G_METRIC_NN_CONNECT, Time2Go(), and Tatlasrrt::tp. Referenced by AtlasRRT(). ◆ PlotAtlasRRT()
Combines the plot of the Atlas and the RRT.
Definition at line 7955 of file atlasrrt.c. References Tatlasrrt::atlas, Tatlasrrt::birrt, TSampleInfo::c, Close3dObject(), ClosePlot3d(), CORRECT_POINT_PLOT, CreateFileName(), CS_WD_REGENERATE_ORIGINAL_POINT, CT_CUT_X, CT_CUT_Y, CT_CUT_Z, DeleteColor(), DeleteFileName(), FALSE, GetAtlasChart(), GetFileFullName(), GetParameter(), GetRRTNodeTree(), GetRRTParent(), GOAL2START, InitPlot3d(), Tatlasrrt::k, Local2Global(), Tatlasrrt::m, NEW, NewColor(), Tatlasrrt::ns, PLOT3D_EXT, PLOT_AS_POLYGONS, PlotAtlas(), PlotRRT(), PlotVect3d(), Tatlasrrt::rrt, TSampleInfo::s, Tatlasrrt::si, START2GOAL, StartNew3dObject(), TSampleInfo::t, and Tatlasrrt::w. Referenced by main(). ◆ AtlasRRTMemSize()
Returns the approximated memory used (in bytes) by a given atlasRRT.
Definition at line 8182 of file atlasrrt.c. References Tatlasrrt::atlas, AtlasMemSize(), Tatlasrrt::rrt, and RRTMemSize(). Referenced by main(). ◆ SaveAtlasRRT()
Stores the atlasRRT as a normal atlas and a RRT than can be latter read/plotted with the usual programs. Note that this does not save all the information stored in the AtlasRRT but only that necessary for plotting.
Definition at line 8192 of file atlasrrt.c. References Tatlasrrt::atlas, ATLAS_EXT, ATLAS_RRT_EXT, Tatlasrrt::birrt, Tatlasrrt::ce, Tatlasrrt::chartsAtTree1, Tatlasrrt::chartsAtTree2, Tatlasrrt::ci, CreateFileName(), Tatlasrrt::da, DeleteFileName(), Tatlasrrt::dge, Tatlasrrt::dynamics, Tatlasrrt::e, Error(), GetFileFullName(), Tatlasrrt::k, Tatlasrrt::m, Tatlasrrt::mc, Tatlasrrt::mct1, Tatlasrrt::mct2, Tatlasrrt::ms, Tatlasrrt::nc, Tatlasrrt::nct1, Tatlasrrt::nct2, Tatlasrrt::ns, Tatlasrrt::r, Tatlasrrt::rrt, RRT_EXT, SaveAtlas(), SaveAtlasRRTChartInfo(), SaveAtlasRRTSampleInfo(), SaveRRT(), and Tatlasrrt::si. Referenced by main(). ◆ LoadAtlasRRT()
Construct an atlasRRT from the information previously stored in a file by SaveAtlasRRT.
Definition at line 8255 of file atlasrrt.c. References Tatlasrrt::ambient, Tatlasrrt::atlas, ATLAS_EXT, ATLAS_RRT_EXT, Tatlasrrt::birrt, Tatlasrrt::ce, Tatlasrrt::chartsAtTree1, Tatlasrrt::chartsAtTree2, Tatlasrrt::ci, CreateFileName(), CS_WD_GENERATE_SIMP_INITIAL_BOX, CS_WD_GET_SIMP_JACOBIAN, Tatlasrrt::da, DeleteFileName(), Tatlasrrt::dge, Tatlasrrt::ds, Tatlasrrt::dynamics, Tatlasrrt::e, Error(), FALSE, GetFileFullName(), GetRRTTopology(), GetRRTWeights(), INF, InitDynamicSpace(), Tatlasrrt::J, Tatlasrrt::k, LoadAtlas(), LoadAtlasRRTChartInfo(), LoadAtlasRRTSampleInfo(), LoadRRT(), Tatlasrrt::m, Tatlasrrt::mc, Tatlasrrt::mct1, Tatlasrrt::mct2, Tatlasrrt::ms, Tatlasrrt::nc, Tatlasrrt::nct1, Tatlasrrt::nct2, NEW, Tatlasrrt::ns, Tatlasrrt::parallel, Tatlasrrt::r, Tatlasrrt::rrt, RRT_EXT, Tatlasrrt::si, Tatlasrrt::tp, Tatlasrrt::w, and Tatlasrrt::weights. Referenced by main(). ◆ PrintAtlasRRTDefines()
Prints the defines in atlasrrt.h This is used only for debug purposes.
Definition at line 8359 of file atlasrrt.c. References ADJUST_SA, ATLASRRT_DYNAMIC_CONNECT, ATLASRRT_VERBOSE, DEBUG_SIMULATION, DYNAMICS_ADD_ALL, GET_ATLASRRT_GLOBAL_CURV_CHECK, GET_ATLASRRT_STATISTICS, NN_IN_CHART, NN_IN_NEIGHBOUR_CHART, PrintAtlasDefines(), PrintDynamicsDefines(), PrintRRTDefines(), RANDOM_INT_TIME, RANDOMIZED_LQR, REJECT_USING_DYNAMIC_CONE, RELINEALIZE_DYNAMICS, REPEAT_CHARTS, and REVISIT_CHARTS. Referenced by main(). ◆ DeleteAtlasRRT()
Deletes the information stored in the RRT.
Definition at line 8382 of file atlasrrt.c. References Tatlasrrt::ambient, Tatlasrrt::atlas, Tatlasrrt::birrt, Tatlasrrt::chartsAtTree1, Tatlasrrt::chartsAtTree2, Tatlasrrt::ci, DeleteAtlas(), DeleteBox(), DeleteDynamicSpace(), DeleteJacobian(), DeleteRRT(), Tatlasrrt::ds, Tatlasrrt::dynamics, Tatlasrrt::J, Tatlasrrt::nc, Tatlasrrt::ns, Tatlasrrt::parallel, Tatlasrrt::rrt, Tatlasrrt::si, and TSampleInfo::t. Referenced by main(). |
Follow us!