COPP C++ API
C++ interface for COPP trajectory optimization
Loading...
Searching...
No Matches
copp::solver::topp3::Problem Class Reference

Prepared TOPP3 problem descriptor. More...

#include <topp3.hpp>

Public Member Functions

 Problem (ConstraintsRef constraints, Span< const double > a_linearization, std::size_t idx_s_start=0, Boundary3 boundary={}, StationaryBounds num_stationary_max={}, double a_linearization_floor=1.0e-10)
 Prepare a third-order problem and immediately linearize constraints.
 Problem (ConstraintsRef constraints, Span< const double > a_linearization, std::size_t idx_s_start, Boundary3 boundary, std::size_t symmetric_num_stationary_max, double a_linearization_floor=1.0e-10)
ConstraintsRef constraints () const noexcept
const std::vector< double > & a_linearization () const noexcept
std::size_t idx_s_start () const noexcept
std::size_t idx_s_final () const noexcept
Boundary3 boundary () const noexcept
StationaryBounds num_stationary_max () const noexcept
StationaryBounds num_stationary () const noexcept
double a_linearization_floor () const noexcept
std::size_t s_len () const noexcept

Detailed Description

Prepared TOPP3 problem descriptor.

Construction borrows a ConstraintsRef, owns a copy of a_linearization, infers idx_s_final, and immediately asks Rust to linearize third-order constraints into the underlying constraint cache. The owning Robot or Constraints object must outlive this problem and solver calls using it.

Definition at line 42 of file topp3.hpp.

Constructor & Destructor Documentation

◆ Problem() [1/2]

copp::solver::topp3::Problem::Problem ( ConstraintsRef constraints,
Span< const double > a_linearization,
std::size_t idx_s_start = 0,
Boundary3 boundary = {},
StationaryBounds num_stationary_max = {},
double a_linearization_floor = 1.0e-10 )

Prepare a third-order problem and immediately linearize constraints.

Parameters
constraintsBorrowed constraint buffer. The owner must outlive this problem and all solver calls.
a_linearizationNode profile used for linearizing jerk constraints.
idx_s_startGlobal station id of a_linearization[0].
boundaryEndpoint values for a = dot{s}^2 and b = ddot{s}.
num_stationary_maxUpper bounds for inferred stationary boundary intervals.
a_linearization_floorLower numerical floor applied by Rust.
Exceptions
copp::Errorif the interval, boundary, or linearization is invalid.

◆ Problem() [2/2]

copp::solver::topp3::Problem::Problem ( ConstraintsRef constraints,
Span< const double > a_linearization,
std::size_t idx_s_start,
Boundary3 boundary,
std::size_t symmetric_num_stationary_max,
double a_linearization_floor = 1.0e-10 )

Member Function Documentation

◆ constraints()

ConstraintsRef copp::solver::topp3::Problem::constraints ( ) const
inlinenoexcept

Definition at line 73 of file topp3.hpp.

◆ a_linearization()

const std::vector< double > & copp::solver::topp3::Problem::a_linearization ( ) const
inlinenoexcept

Definition at line 74 of file topp3.hpp.

◆ idx_s_start()

std::size_t copp::solver::topp3::Problem::idx_s_start ( ) const
inlinenoexcept

Definition at line 75 of file topp3.hpp.

◆ idx_s_final()

std::size_t copp::solver::topp3::Problem::idx_s_final ( ) const
inlinenoexcept

Definition at line 76 of file topp3.hpp.

◆ boundary()

Boundary3 copp::solver::topp3::Problem::boundary ( ) const
inlinenoexcept

Definition at line 77 of file topp3.hpp.

◆ num_stationary_max()

StationaryBounds copp::solver::topp3::Problem::num_stationary_max ( ) const
inlinenoexcept

Definition at line 78 of file topp3.hpp.

◆ num_stationary()

StationaryBounds copp::solver::topp3::Problem::num_stationary ( ) const
inlinenoexcept

Definition at line 79 of file topp3.hpp.

◆ a_linearization_floor()

double copp::solver::topp3::Problem::a_linearization_floor ( ) const
inlinenoexcept

Definition at line 80 of file topp3.hpp.

◆ s_len()

std::size_t copp::solver::topp3::Problem::s_len ( ) const
inlinenoexcept

Definition at line 81 of file topp3.hpp.


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