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:
- prefer
robot::Robotfor physically meaningful high-level ingestion; - use
constraints::Constraintsdirectly for maximum low-level flexibility.
§Supported problem classes
This crate provides solvers for four major classes:
TOPP2COPP2TOPP3COPP3
§Recommended onboarding path
- Build constraints with
robot::Robot(or directly withconstraints::Constraintsfor advanced customization). - Choose a solver family from
solverbased on objective/accuracy/runtime. - Start quickly with
preludefor 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§
- Interpolation
Mode - Time-grid interpolation policy used when converting trajectory profiles to time-domain samples.