Provides an abstraction for reasoning about geometry in optimization problems, and using optimization problems to solve geometry problems.
SceneGraph handles many types of geometry (see Shape). It is specialized to 3D and puts a strong emphasis on efficient implementation of a particular subset of geometry queries, like collision detection and signed-distance queries. SceneGraph also provides a lot of valuable tools for content management, including parsing geometries from file (via multibody::Parser) and Role.
MathematicalProgram has many relevant solvers::Cost / solvers::Constraint for reasoning about geometry (e.g., the LorentzCone or even LinearConstraint). The class and methods in this group add a level of modeling power above these individual constraints (there are many different types of constraints one would write given various optimization on these sets).
The geometry::optimization tools support:
Modules | |
Geodesic Convexity | |
A robot that has revolute joints without any limits has an inherently non-Euclidean configuration space, but one can still consider "geodesically-convex" sets, akin to convex sets in Euclidean space. | |
Classes | |
class | AffineBall |
Implements an ellipsoidal convex set represented as an affine scaling of the unit ball {Bu + center | |u|₂ ≤ 1}. More... | |
class | AffineSubspace |
An affine subspace (also known as a "flat", a "linear variety", or a "linear
manifold") is a vector subspace of some Euclidean space, potentially translated so as to not pass through the origin. More... | |
class | CartesianProduct |
The Cartesian product of convex sets is a convex set: S = X₁ × X₂ × ⋯ × Xₙ = {(x₁, x₂, ..., xₙ) | x₁ ∈ X₁, x₂ ∈ X₂, ..., xₙ ∈ Xₙ}. More... | |
class | ConvexHull |
Implements the convex hull of a set of convex sets. More... | |
class | ConvexSet |
Abstract base class for defining a convex set. More... | |
class | GraphOfConvexSets |
GraphOfConvexSets (GCS) implements the design pattern and optimization problems first introduced in the paper "Shortest Paths in Graphs of Convex Sets". More... | |
class | HPolyhedron |
Implements a polyhedral convex set using the half-space representation: {x| A x ≤ b} . More... | |
class | Hyperellipsoid |
Implements an ellipsoidal convex set represented by the quadratic form {x | (x-center)ᵀAᵀA(x-center) ≤ 1} . More... | |
class | Hyperrectangle |
Axis-aligned hyperrectangle in Rᵈ defined by its lower bounds and upper bounds as {x| lb ≤ x ≤ ub}. More... | |
class | ImplicitGraphOfConvexSets |
A base class to define the interface to an implicit graph of convex sets. More... | |
class | Intersection |
A convex set that represents the intersection of multiple sets: S = X₁ ∩ X₂ ∩ ... More... | |
struct | IrisOptions |
Configuration options for the IRIS algorithm. More... | |
class | MinkowskiSum |
A convex set that represents the Minkowski sum of multiple sets: S = X₁ ⨁ X₂ ⨁ ... More... | |
class | Point |
A convex set that contains exactly one element. More... | |
class | Spectrahedron |
Implements a spectrahedron (the feasible set of a semidefinite program). More... | |
class | VPolytope |
A polytope described using the vertex representation. More... | |