API Reference

Public classes, functions, solver namespaces, options, results, and profile helpers.

This page summarizes the public COPP MATLAB API. It is organized by package namespace and is intended as a quick map from a workflow need to the corresponding class or function.

The package name is copp. All APIs below are public unless explicitly marked as diagnostic or advanced. The internal package is intentionally omitted.

During documentation builds, each public class and function also gets a generated reference page under ref/ using the help comments in the source file. Those pages are listed in the generated helptoc.xml so MATLAB's Help Browser and static website builds can expose per-API documentation.

Core package

Diagnostics:

Path

copp.Path constructors:

Evaluation and lifetime:

Robot and constraints

copp.Robot stores station grids and constraints consumed by solver Problem objects.

Station and derivative data:

High-level constraints:

Advanced constraints and callbacks:

Objective descriptors

Objective descriptors are lightweight MATLAB structs created by factory functions in copp.objective.

COPP2 linear objectives use \(\alpha\) length \(s_\mathrm{len}\) and \(\beta\) length \(s_\mathrm{len}-1\). COPP3 linear objectives use node-based \(\alpha\) and \(\beta\) payloads aligned with the third-order profile length.

Clarabel options and diagnostics

Clarabel-backed solvers share copp.clarabel.Options and copp.clarabel.Settings. Clarabel-backed solver namespaces also re-export solver-local aliases such as copp.solver.copp3_socp.ClarabelOptions.

Normal solve functions return an accepted profile or raise. Expert solve_expert functions return Result objects with solver status, raw vectors, residuals, timing, objective value, objective terms, and linear solver metadata.

Second-order solvers

TOPP2 and COPP2 operate on the scalar node profile \(a = (ds/dt)^2\). Solver namespaces that return second-order profiles re-export s_to_t, t_to_s, and a_to_b as local aliases for the global interpolation helpers.

Third-order solvers

TOPP3 and COPP3 operate on Profile3rd, which stores node profiles \(a\) and \(b\) plus stationary metadata. Solver namespaces that return third-order profiles re-export Profile3rd, s_to_t, and t_to_s as local aliases for the global profile/interpolation helpers.

Interpolation

Interpolation helpers convert solver profiles into time-domain samples.

TOPP2:

TOPP3:

Optional dependencies

The core MATLAB binding does not require Symbolic Math Toolbox or CasADi. Only the corresponding path constructors require those packages:

Path.from_parametric uses the bundled Jet3 helper and does not require an external automatic-differentiation package.

See also

copp.Path, copp.Robot, copp.Profile3rd, copp.solver.topp2_ra.solve, copp.solver.copp3_socp.solve, copp.interpolation.s_to_t_topp2