Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional optimizations for Hybrid-A* / Smac planner #2014

Closed
10 of 12 tasks
SteveMacenski opened this issue Oct 6, 2020 · 1 comment
Closed
10 of 12 tasks

Additional optimizations for Hybrid-A* / Smac planner #2014

SteveMacenski opened this issue Oct 6, 2020 · 1 comment

Comments

@SteveMacenski
Copy link
Member

SteveMacenski commented Oct 6, 2020

Precompute

  • precompute the dubin/reeds-shepp distances for use in heuristic shouldn't do since no static graph anymore on initialization
  • if exact increments of theta, we can precompute the getProjections for all bins. DONE
  • if exact increments of theta, we can precompute the footprint collision detection rotations. too involved in costmap 2d, would actually be useful, but out of scope for just this planner. Maybe something to consider for another time.

Parallelize

  • parallelize collision checking in analytic expansion -- too many atomic operations to test quickly and too rarely run
  • parallelize collision checking lines -- didn't help
  • parallelize 3 neighbor find/validate/expand (I dont think 3 is enough to parallelize and be effective with overhead)

General

  • find ways to minimize the number of nodes expanded (motion models move more? lower costmap resolution? hueristics drive better, etc) Heuristics very good at it and with the costmap downsampler, this is essentially as good as it gets!
  • profile code and see where we can make things faster.
  • remove compute of heuristic twice in each node on visitation (e.g. Add waitForServer to TaskClient #45) these are on different nodes
  • approximating cos / sin / tan functions

Smoother:

@SteveMacenski
Copy link
Member Author

SteveMacenski commented Mar 10, 2021

These have been evaluated and precomputing the heading bins is in progress, closing because rest did not either make sense, impact performance enough to be worthwhile, or too time consuming for the marginal benefit. Path smoother ticket branched out into a new ticket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant