Open RussTedrake opened 3 months ago
For reference: In Iris we use the ellipsoid to measure distance to obstacles ( through the metric induced by the ellipsoid) and for deciding how place faces ( by making them tangent to the expanded ellipsoid). The idea for clique inflation is simple: replace the ellipsoid with the function that measures distance to the convex hull of all the points we want in our region. This function is easily computable, and automatically guarantees that the resulting regions contain all points, provided that their convex hull is collision free. This means we can guarantee connectivity of regions which means we can inflate PWL paths to corridors, inflate PRMs and cliques on the visibility graph. Below is a sketch describing the idea. In that sketch we want to include 2 points in our region and their convex hull is given by the black line segment. A first implementation can be found here. On the TODO list is to also implement a version of this that uses nonlinear programming the same way as IRIS-NP2 which will likely result in larger regions with fewer faces.
See dev branch: https://github.com/wernerpe/drake/tree/devel/cliquecovers
@wernerpe has a variant of IRIS-ZO which uses a distance metric based on point-to-VPolytope instead of the ellipsoidal metric that we typically use in IRIS. One primary feature of this is that it becomes easier to guarantee that the resulting polytope contains all of the points in some initial clique.
This could unblock https://github.com/RobotLocomotion/drake/pull/21838.