This struct stores the necessary information to search for the separating plane for the polytopic C-space region C*s <= d, s_lower <= s <= s_upper.
We need to impose that N rationals are non-negative in this C-space polytope. The denominator of each rational is always positive hence we need to impose the N numerators are non-negative in this C-space region. We impose the condition numerator_i(s) - λ(s)ᵀ * (d - C*s) - λ_lower(s)ᵀ * (s - s_lower) -λ_upper(s)ᵀ * (s_upper - s) is sos λ(s) are sos, λ_lower(s) are sos, λ_upper(s) are sos.
#include <drake/geometry/optimization/cspace_free_polytope.h>
Public Member Functions | |
| SeparationCertificate ()=default | |
| ~SeparationCertificate () | |
| SeparationCertificateResult | GetSolution (int plane_index, const Vector3< symbolic::Polynomial > &a, const symbolic::Polynomial &b, const VectorX< symbolic::Variable > &plane_decision_vars, const solvers::MathematicalProgramResult &result) const |
| std::vector< SeparatingPlaneLagrangians > & | mutable_lagrangians (PlaneSide plane_side) |
Implements CopyConstructible, CopyAssignable, MoveConstructible, MoveAssignable | |
| SeparationCertificate (const SeparationCertificate &)=default | |
| SeparationCertificate & | operator= (const SeparationCertificate &)=default |
| SeparationCertificate (SeparationCertificate &&)=default | |
| SeparationCertificate & | operator= (SeparationCertificate &&)=default |
Public Attributes | |
| std::vector< SeparatingPlaneLagrangians > | positive_side_rational_lagrangians |
| std::vector< SeparatingPlaneLagrangians > | negative_side_rational_lagrangians |
|
default |
|
default |
|
default |
|
nodiscard |
| std::vector< SeparatingPlaneLagrangians > & mutable_lagrangians | ( | PlaneSide | plane_side | ) |
|
default |
|
default |
| std::vector<SeparatingPlaneLagrangians> negative_side_rational_lagrangians |
| std::vector<SeparatingPlaneLagrangians> positive_side_rational_lagrangians |