This struct stores the necessary information to search for the separating plane for the polytopic C-space box q_box_lower <= q <= q_box_upper.
We need to impose that N rationals are non-negative in this C-space box. The denominator of each rational is always positive hence we need to impose the N numerators are non-negative in this C-space box. We impose the condition numerator_i(s) - λ_lower(s)ᵀ * (s - s_lower) -λ_upper(s)ᵀ * (s_upper - s) is sos λ_lower(s) are sos, λ_upper(s) are sos.
#include <drake/geometry/optimization/cspace_free_box.h>
Public Member Functions | |
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) |
Public Attributes | |
std::vector< SeparatingPlaneLagrangians > | positive_side_rational_lagrangians |
std::vector< SeparatingPlaneLagrangians > | negative_side_rational_lagrangians |
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 | ) |
std::vector<SeparatingPlaneLagrangians> negative_side_rational_lagrangians |
std::vector<SeparatingPlaneLagrangians> positive_side_rational_lagrangians |