Skip to content
Snippets Groups Projects
  1. Jul 28, 2023
  2. Jul 19, 2023
  3. Jul 17, 2023
  4. Jul 02, 2022
    • Toefinder's avatar
      [SPF] Only set timeout innerPlanner if more than 0 · d9290161
      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).
      d9290161
    • Toefinder's avatar
      [SPF] Fix case: init goal configs from same state · 1656dea7
      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.
      1656dea7
  5. Jun 28, 2022
    • Le Quang Anh's avatar
      Remove extra configSolved and check idxConfigList_ · 41139cdf
      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.
      41139cdf
  6. Jun 22, 2022
  7. Jun 01, 2022
    • Le Quang Anh's avatar
      Minor fix to check right hand side · d83a71c2
      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.
      d83a71c2
  8. May 31, 2022
  9. May 30, 2022
    • Le Quang Anh's avatar
      Add to roadmap when inStatePlanner fails · 867867a2
      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.
      867867a2
  10. May 25, 2022
    • Le Quang Anh's avatar
      Refactor SolveOptimizationProblem · 256bc8b5
      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.
      256bc8b5
  11. May 23, 2022
    • Le Quang Anh's avatar
      Solve when start state is a potential goal state · b940b29c
      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.
      b940b29c
  12. May 20, 2022
  13. May 13, 2022
  14. Apr 20, 2022
  15. Apr 19, 2022
  16. Apr 12, 2022
  17. Apr 04, 2022
  18. Mar 30, 2022
    • Le Quang Anh's avatar
      Log graph info in debug mode · a19a43fc
      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.
      a19a43fc
    • Le Quang Anh's avatar
      Remove code duplication by merging functions · a93f8e31
      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.
      a93f8e31
  19. Mar 28, 2022
    • Le Quang Anh's avatar
      Fix: analyse each new transition list · 5b36ad07
      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.
      5b36ad07
    • Le Quang Anh's avatar
      Add a threshold for bad solve statuses before reset · b35d205f
      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.
      b35d205f
  20. Mar 24, 2022
    • Le Quang Anh's avatar
      Fix solveStep validate collision in configuration · 3e15c4cd
      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).
      3e15c4cd
    • Le Quang Anh's avatar
      Refactor graph search data · ed5217c2
      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.
      ed5217c2
  21. Mar 21, 2022
  22. Mar 18, 2022
  23. Mar 17, 2022
    • Le Quang Anh's avatar
      Fix segv: stop using iterator on mutated deque · ffabc1d4
      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.
      ffabc1d4
    • Le Quang Anh's avatar
      Try all state sequences before finding new ones · d56d5215
      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.
      d56d5215
    • Le Quang Anh's avatar
      Fix: correct order of initialization list · 1e1a6c72
      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.
      1e1a6c72
    • Le Quang Anh's avatar
      Fix: Initialise weak pointer last · 06713ac6
      Le Quang Anh authored
      06713ac6
  24. Mar 16, 2022
    • Le Quang Anh's avatar
      Check if solver already has stricter constraints · 16ae96b1
      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`.
      16ae96b1
  25. Mar 07, 2022
    • Le Quang Anh's avatar
      Keep longest VALID config seq if cannot solve full · 3a915ccc
      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.
      3a915ccc
  26. Mar 03, 2022
  27. Mar 01, 2022
  28. Feb 28, 2022
  29. Feb 24, 2022
    • Le Quang Anh's avatar
      analyseoptprob propagate intermediate node constr · 01c6c2c4
      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.
      01c6c2c4
    • Le Quang Anh's avatar
      Analyse opt prob when goal is set of constraint · 247330bc
      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.
      247330bc
  30. Feb 11, 2022
  31. Feb 10, 2022
Loading