Skip to content
Shivam Vats edited this page Aug 31, 2016 · 2 revisions

Finding Islands:

  1. Run full searches for random start-goal pairs.
  2. Store the states of successful paths along with timestamps.
  3. Calculate delta time for each state, ie. time difference between consecutive states.
  4. Choose n states that took most time. They correspond to the peaks in the delta time graph. These peaks are our island states.
  5. Find the left base of each peak calculating the derivative of the states on the left of the peak. Wherever the slope changes, is a base.
  6. The base is chosen as the activation center. The distance between the activation center and the peak is our activation radius (usually multiplied by a factor).

Using Islands:

These island states are now used to generate snap motion primitives. I am currently using two types of snap mprims:

  1. Fullbody snap
  2. Base snap

I keep the activation radius of the fullbody snap low and that of the base snap higher. The fullbody helps in aligning the arms, while base snap save time in traversing open spaces.

Notes:

  1. Snap primitives are used only for the anchor heuristic as using it with all heuristics wastes a lot of time in collision checking.
  2. The Base snap mprim is deactivated near the goal.
Clone this wiki locally