- Jul 02, 2022
-
-
Toefinder authored
The default timeout for innerPlanner is a positive value. However, if the user specifically sets it to be 0, the timeout will not be set and hence timeout will not be used to stop innerPlanner (default timeout in PathPlanner is infinity).
-
Toefinder authored
buildOptProblem should allow the case when there is no waypoint to be computed (only 1 loop transition from init config to the goal). PathPlanner::tryConnectInitAndGoals() should be called when the goal configuration is given.
-
- Jun 28, 2022
-
-
Le Quang Anh authored
The configSolved() method is redundant. Checks are added for the case where the final configuration computed has been reached but the goal is deemed not reached by the path planner. Some other small redundancies are also removed.
-
- Jun 22, 2022
-
-
Le Quang Anh authored
Note that we need to set it **after** the problem's path projector has been initialized.
-
- Jun 07, 2022
-
-
Le Quang Anh authored
-
- Jun 01, 2022
-
-
Le Quang Anh authored
Declaring a vector without explicitly initializing the values to 0 seems to (sometimes) have strange behavior. This has been fixed. Some comments are added to explain buildOptimizationProblem.
-
- May 30, 2022
-
-
Le Quang Anh authored
Previously, when the inStatePlanner fails to compute path between two configurations on the same leaf, the roadmap generated is not added to the main roadmap of StatesPathFinder. Now it is added so that the roadmap gets expanded whenever inStatePlanner is used. The good side effect is fairer comparison between different algorithms when comparing by the number of nodes in the roadmap.
-
- May 25, 2022
-
-
Le Quang Anh authored
The StatesPathFinder algorithm is not yet able to handle all kinds of goal constraints. An example is when the object final configuration is locked in placement: the algorithm is not propagating the placement complement to previous waypoints. A note is added for users and future developers.
-
Le Quang Anh authored
-
Le Quang Anh authored
Clearer logic flows for SolveOptimizationProblem. Also, save the longest sequence when we need to reset solution due to exceeding the maximum fails.
-
- May 23, 2022
-
-
Le Quang Anh authored
Previously, we handled this case when goal is defined as a goal configuration. However, this case may still occur when goal is defined as a set of constraints. Moreover, the previous method does not store the loop transition to the list of solutions, making it difficult to re-try later on.
-
- May 20, 2022
-
-
Le Quang Anh authored
-
- May 13, 2022
-
-
Le Quang Anh authored
-
- Apr 22, 2022
-
-
Le Quang Anh authored
-
- Apr 21, 2022
-
-
Florent Lamiraux authored
-
Florent Lamiraux authored
Allow to solve constraints level by level.
-
- Apr 20, 2022
-
-
Le Quang Anh authored
-
- Apr 15, 2022
-
-
Le Quang Anh authored
-
Florent Lamiraux authored
-
Florent Lamiraux authored
"Graph-SteeringMethodStraight" and "Graph-Straight" refer to the same steering method.
-
Florent Lamiraux authored
when robot contact surfaces are not on a freeflying object.
-
- Apr 12, 2022
-
-
Le Quang Anh authored
-
- Apr 04, 2022
-
-
Le Quang Anh authored
-
Le Quang Anh authored
-
Le Quang Anh authored
The graph has loop edge for every state (node), which can be used to connect init and goal config directly if they are both in the same state.
-
- Apr 01, 2022
-
-
Florent Lamiraux authored
Fix bug in code for mask
-
- Mar 31, 2022
-
-
Le Quang Anh authored
These errors are shown when compiled in debug mode.
-
- Mar 30, 2022
-
-
Le Quang Anh authored
Information about all the nodes in the constraint graph would be useful for debugging, eg when checking if the constraint graph is properly constructed.
-
Le Quang Anh authored
Previously, there are multiple versions of the same function, to cater for two cases: when goal is defined as a configuration, and when when goal is defined as a set of constraints. This duplication is not desirable, as we need to make changes in multiple places if we want to make a small change in a function. This commit removes the duplication by merging the functions together and adding checks within the new functions to cater for the two cases. Some modifications are needed for analyseOptimizationProblem when goal is given as a configuration. So far we have made a few, but there may be more.
-
- Mar 28, 2022
-
-
Le Quang Anh authored
BUG: if a certain transition list succeeds to give a configuration list for the first time, and fails for the second time, a new transition list will be considered, but skipColAnalysis is NOT reset. This is now fixed by using the direct comparison with nTryConfigList_ instead of using an additional data member.
-
Le Quang Anh authored
Even though bad solve statuses are usual because sometimes it is hard to solve for the waypoint, there could be cases where it is impossible to solve for a waypoint for a certain transition list (although we try to ensure that the solver should have a positive probability of solving it, by analysing the optimization problem in an earlier step). Adding a threshold to it would ensure that the solving step does not take an exponential time to decide that a transition list is not suitable.
-
- Mar 24, 2022
-
-
Le Quang Anh authored
Previously, `solveOptimizationProblem()` sometimes returns configuration list that has collision in at least one configuration. This was possibly because the collision validation is not working properly. Fixed by using the new collision validation provided by hpp::core. Some refactoring is also done to make the return of the function a bit clearer (instead of simple int, use enum).
-
Le Quang Anh authored
Make graph search data part of the path planner object, so that we don't have to search the graph from scratch everytime we want to compute a new list of configurations.
-
- Mar 21, 2022
-
-
Le Quang Anh authored
Remove nested if and add more comments to explain GraphSearchData
-
- Mar 18, 2022
-
-
Le Quang Anh authored
-
Le Quang Anh authored
From the list of goal constraints, we can find a list of states that contain the maximum number of goal constraints. We choose to compute only state sequences that end in a state that can potentially be a goal state. However, future work needs to assess/prove that this heuristic covers all the possible goal states.
-
- Mar 17, 2022
-
-
Le Quang Anh authored
Previously the code has segmentation fault during one of the solutions (not every one). This was because when an item is inserted into the deque, iterators are invalidated. Incrementing the iterator causes undefined behavior, which somehow worked until that point in the program but not afterwards. We have changed to use index instead of iterator on the deque.
-
Le Quang Anh authored
When goal is defined as set of constraints, every state sequence is a possible solution. The current implementation grows the list of possible state sequences faster than they are attempted: for every time we add all neighbors of the front node to queue, we only try out one sequences. This could be too space consuming if the graph has large branching factor.
-
Le Quang Anh authored
Non-static data members should be initialized in the order they were declared in the class definition. For good practice, we should keep all the data members in good order.
-
Le Quang Anh authored
-