Prepared TOPP3 problem descriptor.
More...
#include <topp3.hpp>
|
| | 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 |
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.
◆ 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
-
| constraints | Borrowed constraint buffer. The owner must outlive this problem and all solver calls. |
| a_linearization | Node profile used for linearizing jerk constraints. |
| idx_s_start | Global station id of a_linearization[0]. |
| boundary | Endpoint values for a = dot{s}^2 and b = ddot{s}. |
| num_stationary_max | Upper bounds for inferred stationary boundary intervals. |
| a_linearization_floor | Lower numerical floor applied by Rust. |
- Exceptions
-
| copp::Error | if 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 ) |
◆ constraints()
◆ a_linearization()
| const std::vector< double > & copp::solver::topp3::Problem::a_linearization |
( |
| ) |
const |
|
inlinenoexcept |
◆ idx_s_start()
| std::size_t copp::solver::topp3::Problem::idx_s_start |
( |
| ) |
const |
|
inlinenoexcept |
◆ idx_s_final()
| std::size_t copp::solver::topp3::Problem::idx_s_final |
( |
| ) |
const |
|
inlinenoexcept |
◆ boundary()
| Boundary3 copp::solver::topp3::Problem::boundary |
( |
| ) |
const |
|
inlinenoexcept |
◆ num_stationary_max()
◆ num_stationary()
◆ a_linearization_floor()
| double copp::solver::topp3::Problem::a_linearization_floor |
( |
| ) |
const |
|
inlinenoexcept |
◆ s_len()
| std::size_t copp::solver::topp3::Problem::s_len |
( |
| ) |
const |
|
inlinenoexcept |
The documentation for this class was generated from the following file: