SCD implements the method of (Ruan, 2019) for determining if two objects are in collision. The first object is a convex superquadric and the second object is an ellipsoid. Currently 2D and 3D cases are supported. The method depends on solving for the root of a polynomial. We use Ceres to find this root by minimizing the square of the polynomial. The method returns the point along a line that is the boundary between contact and no contact. By checking the magnitude of the ellipsoid's position relative to the superquadric, we can detect collision. See the paper for more details.
- Eigen
- Ceres: Polynomial root-finding
- GoogleTest
- CasADi: Polynomial root-finding with IPOPT
- The interface is loosely inspired by that of the Flexible Collision Library.