- Mar 28, 2022
-
-
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
-
- Mar 16, 2022
-
-
Le Quang Anh authored
Before adding another constraint to a solver, check if it already has the stricter version of the constraint. `constraint/hold` is stricter than `constraint` and stricter than `constraint/complement`.
-
- Mar 07, 2022
-
-
Le Quang Anh authored
The expected behavior of solveOptimizationProblem () function is that, if it manages to compute configurations for all waypoints, it will return that sequence of configurations. In case when it fails, it should return the longest sequence of valid configurations. The previous implementation saves each configuration computed, even if it is invalid. Also, when backtracking to a previous waypoint, the new points computed will overwrite some of the waypoint in the longest sequence. So indeed, the final sequence kept is not valid, and not consistent (not generated in successful consecutive solves). This has now been fixed by saving the longest sequence of valid configurations in a separate variable, and only update it when a longer sequence is found.
-
- Mar 03, 2022
-
-
Le Quang Anh authored
For the parametrizable constraints, we should initialize them before using the solver to check if the initial configuration satisfies all the propagated constraints.
-
- Mar 01, 2022
-
-
Le Quang Anh authored
-
- Feb 24, 2022
-
-
Le Quang Anh authored
Propagate the constraints from intermediate nodes as well, so that we have a higher chance of filtering out invalid state sequences. Direction of propagation should be from the final node to the first node, so that we don't miss out the constraints that don't reach the final node but are still relevant for the first portion of the transitions.
-
Le Quang Anh authored
This is currently done by propagating the constraints from the last state to the initial state if the joints involved in each constraint are constrained during all transitions between the initial state and the last state. Checking the initial configuration to see if it satisfies these constraints will help to eliminate some state sequences.
-
- Feb 11, 2022
-
-
Le Quang Anh authored
-
- Feb 10, 2022
-
-
Le Quang Anh authored
Able to build now, but code is probably useless
-
- Feb 07, 2022
-
-
Le Quang Anh authored
-
- Feb 02, 2022
-
-
Le Quang Anh authored
Currently for most of the problems we look at, loops (an edge going into the same state) are not useful. However, these loops appear in a lot of state sequences considered by the algorithm and slow it down significantly. Until we encounter a problem where loops are necessary to accomplish the task, we should just ignore them.
-
- Feb 01, 2022
-
-
Florent Lamiraux authored
-
- Jan 31, 2022
-
-
Florent Lamiraux authored
-
- Jan 20, 2022
-
-
Florent Lamiraux authored
-
- Nov 05, 2021
-
-
Guilhem Saurel authored
fix submodule url
-
- Nov 02, 2021
-
-
Guilhem Saurel authored
-
- Sep 30, 2021
-
-
Guilhem Saurel authored
- Sep 23, 2021
-
-
Florent Lamiraux authored
-
Florent Lamiraux authored
- Use parent implementation for method solve, - reimplement tryToConnectInitAndGoals, - remove InStatePath class and call core::DiffusingPlanner instead. - optimize paths on sub-manifolds with random shortcut and insert path in roadmap.
-
- Sep 14, 2021
-
-
Florent Lamiraux authored
when calling a path planner in hpp-core. Throw core::path_planning_failed when interrupted.
-
- Sep 10, 2021
-
-
Florent Lamiraux authored
-
alexandrethiault authored
-
- May 06, 2021
-
-
Florent Lamiraux authored
Fix steeringMethod::CrossStateOptimization
-
- Apr 30, 2021
-
-
Florent Lamiraux authored
- do not copy constraints from graph solvers, - in solver construction, use target constraints of transitions instead of merging solvers of edge, graph and target state. In target constraints, constraints and complements are merged when necessary.
-
Florent Lamiraux authored
Do not clear constraintsAndComplements_ after graph initialization, Add method clearConstraintsAndComplement(), call this method in ProblemSolver::initConstraintGraph().
-
Florent Lamiraux authored
- add parameter "CrossStateOptimization/nRandomConfig" to specify the number of trials to generate each waypoint configuration.
-
- Apr 28, 2021
-
-
Florent Lamiraux authored
-
- Apr 21, 2021
-
-
Guilhem Saurel authored
-
Guilhem Saurel authored