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

Parallelize Intersection Checks in GcsTrajectoryOptimization #21351

Open
wrangelvid opened this issue Apr 23, 2024 · 2 comments
Open

Parallelize Intersection Checks in GcsTrajectoryOptimization #21351

wrangelvid opened this issue Apr 23, 2024 · 2 comments
Assignees
Labels
component: planning and control Optimization-based planning and control, and search- and sampling-based planning

Comments

@wrangelvid
Copy link
Contributor

When adding a regions through GcsTrajectoryOptimization::AddRegions or edges through GcsTrajectoryOptimization::AddEdges, a lot of pairwise intersection checks are performed in series. These intersections checks can be moved into one single optimization problem which is then parallelized by the optimizer. However, since the checks habe been moved to CalcPairwiseIntersections, this may require more care.

@rpoyner-tri rpoyner-tri added the component: planning and control Optimization-based planning and control, and search- and sampling-based planning label Apr 23, 2024
@AlexandreAmice
Copy link
Contributor

Related issue is #19119. Perhaps resolving there would be more appropriate than having ad-hoc parallelization of solving MathematicalPrograms scattered throughout Drake. Though for intersection checks we might be able to do something better than the general case.

@cohnt
Copy link
Contributor

cohnt commented Oct 30, 2024

Dropping by to comment that I'm planning to get to this soon. I'd like to add parallelization in two places.

  1. The computation of AABBs of all the sets (since this preprocessing strategy already leads to a massive speedup, even without parallelization).
  2. The actual set intersection programs.

The first needs a parallel for loop, but should be pretty straightforward. The latter can be done pretty easily with SolveInParallel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: planning and control Optimization-based planning and control, and search- and sampling-based planning
Projects
Status: TODO (GcsTrajOpt and related)
Development

No branches or pull requests

4 participants