Skip to main content

Crate copp

Crate copp 

Source
Expand description

copp crate public API.

§What problem does this library solve?

This library targets OPP (Optimal Path Parameterization) problems. Given a geometric path parameterization $q = q(s)$, the solver finds a time law $s = s(t)$ such that constraints are satisfied while an objective is optimized.

In short, we convert geometry-space motion into time-space scheduling: $$ q = q(s) \quad \Longrightarrow \quad s = s(t), $$ and solve for globally optimal / KKT-satisfying / heuristic near-optimal trajectories under the selected backend and objective model.

§Objective families: TOPP vs COPP

  • TOPP: Time-Optimal Path Parameterization (typical objective is minimum traversal time).
  • COPP: Convex-Objective Path Parameterization (supports richer convex objectives beyond pure time-optimality).

For non-convex objectives, a practical approach is SCP: perform DC decomposition and iterative objective linearization. Constraint linearization (notably for third-order models) is already implemented in this crate. For objective modeling details, see COPP solver families and CoppObjective-related APIs.

§Constraint-order families: 2nd vs 3rd order

  • 2nd-order (TOPP2/COPP2): commonly covers velocity, acceleration, and torque-related constraints.
  • 3rd-order (TOPP3/COPP3): additionally models jerk-level effects.

User-defined constraints are supported at different abstraction levels:

§Supported problem classes

This crate provides solvers for four major classes:

  • TOPP2
  • COPP2
  • TOPP3
  • COPP3
  1. Build constraints with robot::Robot (or directly with constraints::Constraints for advanced customization).
  2. Choose a solver family from solver based on objective/accuracy/runtime.
  3. Start quickly with prelude for common imports.

Modules§

constraints
Constraint storage and access layer for TOPP/COPP pipelines.
diag
Core shared types and utilities.
path
Path abstraction for trajectory planning.
prelude
Commonly used public imports for application code.
robot
Robot namespace for model abstractions and demo models.
solver
Solver entry namespace (TOPP2/TOPP3/COPP2/COPP3).

Macros§

verbosity_log
Emit a formatted verbosity message through the global diagnostics backend.

Enums§

InterpolationMode
Time-grid interpolation policy used when converting trajectory profiles to time-domain samples.