COPP C++ API 0.2.3
C++ interface for COPP trajectory optimization
Loading...
Searching...
No Matches
copp::SmoothingConfig Struct Reference

Configuration for tolerance-bounded waypoint fitting. More...

#include <path.hpp>

Public Attributes

double tolerance = 1.0e-3
 Absolute tolerance applied to every selected axis when tolerance_per_axis is empty.
std::vector< double > tolerance_per_axis
 Optional per-axis absolute tolerances.
std::optional< std::vector< std::size_t > > axes
 0-based input rows allowed to deviate from their reference polyline.
std::optional< std::vector< double > > parameters
 Optional common parameter per waypoint column: finite, strictly increasing, one entry per column.
std::size_t max_refinements = 20
 Maximum number of adaptive knot-refinement passes.
std::size_t max_segments = 20000
 Maximum number of polynomial spans used by the selected axes.
OutOfRangeMode out_of_range = OutOfRangeMode::Error
 Policy for later queries outside the path range.

Detailed Description

Configuration for tolerance-bounded waypoint fitting.

Used by Path::from_waypoints_fitting; mirrors Rust copp::path::SmoothingConfig. Error is the absolute deviation of each selected axis from the input polyline at the same parameter, in input units, over the complete parameter domain. No kinematics, angle unwrapping, nearest-point search, or unit conversion is performed.

Defaults match Rust/Python:

  • fit every input row
  • absolute tolerance 1e-3 on each selected row
  • waypoint parameters uniform on [0, 1]
  • at most 20 refinement passes and 20000 selected-axis spans
  • out-of-range queries are errors
Warning
Unstable API; see Path::from_waypoints_fitting.

Definition at line 348 of file path.hpp.

Member Data Documentation

◆ tolerance

double copp::SmoothingConfig::tolerance = 1.0e-3

Absolute tolerance applied to every selected axis when tolerance_per_axis is empty.

Must be finite and strictly positive.

Definition at line 352 of file path.hpp.

◆ tolerance_per_axis

std::vector<double> copp::SmoothingConfig::tolerance_per_axis

Optional per-axis absolute tolerances.

When non-empty it replaces tolerance; it needs one finite, strictly positive entry per selected axis, in axes order (not row order). With axes == std::nullopt the order is rows 0..dim-1.

Definition at line 357 of file path.hpp.

◆ axes

std::optional<std::vector<std::size_t> > copp::SmoothingConfig::axes

0-based input rows allowed to deviate from their reference polyline.

std::nullopt selects every row; an explicit list must be non-empty, distinct, and in range. Unselected rows keep C4 quintic interpolation through all waypoint columns.

Definition at line 362 of file path.hpp.

◆ parameters

std::optional<std::vector<double> > copp::SmoothingConfig::parameters

Optional common parameter per waypoint column: finite, strictly increasing, one entry per column.

The first and last entries become the path range. std::nullopt assigns columns uniformly on [0, 1].

Definition at line 366 of file path.hpp.

◆ max_refinements

std::size_t copp::SmoothingConfig::max_refinements = 20

Maximum number of adaptive knot-refinement passes.

Definition at line 368 of file path.hpp.

◆ max_segments

std::size_t copp::SmoothingConfig::max_segments = 20000

Maximum number of polynomial spans used by the selected axes.

Definition at line 370 of file path.hpp.

◆ out_of_range

OutOfRangeMode copp::SmoothingConfig::out_of_range = OutOfRangeMode::Error

Policy for later queries outside the path range.

Definition at line 372 of file path.hpp.


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