Drake
Drake C++ Documentation
Loading...
Searching...
No Matches
CspaceFreePolytope::SeparationCertificate Struct Reference

Detailed Description

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
SeparationCertificateoperator= (const SeparationCertificate &)=default
 SeparationCertificate (SeparationCertificate &&)=default
SeparationCertificateoperator= (SeparationCertificate &&)=default

Public Attributes

std::vector< SeparatingPlaneLagrangianspositive_side_rational_lagrangians
std::vector< SeparatingPlaneLagrangiansnegative_side_rational_lagrangians

Constructor & Destructor Documentation

◆ SeparationCertificate() [1/3]

SeparationCertificate ( const SeparationCertificate & )
default

◆ SeparationCertificate() [2/3]

SeparationCertificate ( SeparationCertificate && )
default

◆ SeparationCertificate() [3/3]

SeparationCertificate ( )
default

◆ ~SeparationCertificate()

Member Function Documentation

◆ GetSolution()

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
nodiscard

◆ mutable_lagrangians()

std::vector< SeparatingPlaneLagrangians > & mutable_lagrangians ( PlaneSide plane_side)

◆ operator=() [1/2]

SeparationCertificate & operator= ( const SeparationCertificate & )
default

◆ operator=() [2/2]

SeparationCertificate & operator= ( SeparationCertificate && )
default

Member Data Documentation

◆ negative_side_rational_lagrangians

std::vector<SeparatingPlaneLagrangians> negative_side_rational_lagrangians

◆ positive_side_rational_lagrangians

std::vector<SeparatingPlaneLagrangians> positive_side_rational_lagrangians

The documentation for this struct was generated from the following file: