79240572

Date: 2024-11-30 22:01:22
Score: 0.5
Natty:
Report link

I would imagine that the approach you're suggesting is going to take many iterations to get everything connected, right? Here are a couple things you might try that could speed this up. (Although without knowing all the details, it's a little tough to make assurances.)

  1. Check that the edge connecting the centers of the two regions is collision-free. If the edge is not collision-free, then it's probably not worth trying to make a region to connect them. You can either do the checking manually, or if you have a CollisionChecker object, you can use CollisionChecker::CheckEdgeCollisionFree method.
  2. Make an initial hyperellipsoid that covers the entire edge connecting the two regions, and use that as the initial guess for IRIS-NP. If that hyperellipsoid is collision-free, then it will be contained in the polyhedron that the algorithm produces. (You may have to force IRIS-NP to terminate after a single iteration, as the hyperellipsoid changes in subsequent iterations.) Checkout IrisOptions for details -- you'll want to work with the starting_ellipse and iteration_limit fields for this. Just make sure the hyperellipsoid is "thin" around the edge.
  3. Use the new IrisZo algorithm, and leverage the containment_points option to force the region to contain the two points. This is a very new feature (just got added to drake last week), so you'll have to build from source or use the nightly build.

There's definitely a lot of other things you could try as well -- constructing a good set of regions for GCS is an active topic of research for us. So please let us know if any of these things work for you!

Reasons:
  • Whitelisted phrase (-1.5): you can use
  • RegEx Blacklisted phrase (2.5): please let us know
  • Long answer (-1):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Low reputation (0.5):
Posted by: Thomas Cohn