RobotLocomotion/drake

IrisInConfigurationSpaceFromCliqueCover crashes when ellipsoid center is in collision

Closed this issue · 2 comments

What happened?

IrisInConfigurationSpaceFromCliqueCover crashes with the following exception:
what(): Failure at geometry/optimization/hyperellipsoid.cc:403 in CheckInvariants(): condition 'this->ambient_dimension() == A_.cols()' failed.

I've looked into the source code, and it appears that this issue occurs when the ellipsoid center is in collision. In this case, the code attempts to construct a new Hyperellipsoid centered at one of the clique nodes:

Hyperellipsoid(center, clique_ellipse.A());

However, it seems the constructor parameters are passed in the wrong order:

Hyperellipsoid::Hyperellipsoid(const Eigen::Ref<const MatrixXd>& A,
const Eigen::Ref<const VectorXd>& center)
: ConvexSet(center.size(), true), A_(A), center_(center) {
CheckInvariants();
}

I haven't tested this directly, as I'm running the pre-compiled binaries, but it seems like this is the only thing that could be causing the issue.

Version

1.34.0

What operating system are you using?

Ubuntu 22.04

What installation option are you using?

No response

Relevant log output

No response

I have a reproduction of the error locally, and am working on a fix here . Thank you for finding the bug!

#22239 Takes care of this bug. I am closing the issue. Thanks again 👍