Skip to main content

Module path

Module path 

Source
Expand description

Path abstraction for trajectory planning.

The main entry point is Path. It supports two construction modes and a uniform evaluation API — pick the one that fits your use case:

You have …Use
An analytic formula q(s)Path::from_parametric
A set of waypoint positionsPath::from_waypoints

Once built, call one of the evaluation methods with a one-dimensional parameter slice:

MethodOutput
Path::evaluate_qposition q only
Path::evaluate_up_to_2ndq, dq, ddq
Path::evaluate_up_to_3rdq, dq, ddq, dddq

§Examples

§Analytic path — automatic differentiation

use copp::path::{Path, sin, cos};
use copp::path::autodiff::Jet3;

// Build a 2-DOF path: q0 = sin(s), q1 = cos(s), s ∈ [0, 1]
let path = Path::from_parametric(
    |s: Jet3| vec![sin(s), cos(s)],
    0.0, 1.0,
).unwrap();

// Evaluate at 5 uniformly-spaced parameter values
let s = [0.0, 0.25, 0.5, 0.75, 1.0];
let out = path.evaluate_up_to_3rd(&s).unwrap();
// out.q    – shape (2, 5)
// out.dq   – Some, shape (2, 5)   first derivative w.r.t. s
// out.dddq – Some, shape (2, 5)   third derivative w.r.t. s

§Spline path — waypoint interpolation

use copp::path::{Path, SplineConfig};
use nalgebra::DMatrix;

// 2-DOF path with 5 waypoints; the spline passes exactly through each one.
// waypoints shape: (dim=2, n_points=5)
let waypoints = DMatrix::from_row_slice(2, 5, &[
    0.0, 0.25, 0.5, 0.75, 1.0,   // dim 0
    0.0, 0.1, -0.1, 0.2,  0.0,   // dim 1
]);
let path = Path::from_waypoints(&waypoints, SplineConfig::default()).unwrap();

let s = [0.0, 0.5, 1.0];
let out = path.evaluate_q(&s).unwrap();
// out.q shape (2, 3);  out.dq / ddq / dddq are all None

Re-exports§

pub use autodiff::Jet3;
pub use autodiff::cos;
pub use autodiff::exp;
pub use autodiff::ln;
pub use autodiff::powi;
pub use autodiff::sin;
pub use autodiff::sqrt;
pub use spline::Parametrization;
pub use spline::SplineConfig;

Modules§

autodiff
Third-order forward-mode automatic differentiation primitives.
spline
Waypoint-based spline path construction and evaluation kernels.

Structs§

Path
Unified path abstraction over parametric and spline representations.
PathDerivatives
Output of path evaluation.

Enums§

OutOfRangeMode

Type Aliases§

ParametricFn