Skip to main content

Module spline

Module spline 

Source
Expand description

Waypoint-based spline path construction and evaluation kernels.

Most users should construct waypoint paths through Path::from_waypoints, passing a SplineConfig when the default spline settings need to be changed. This module contains the lower-level spline implementation used by that constructor.

§Design

All splines are odd-order: $$ p = 2m + 1,\quad m \ge 1. $$

  • order 3 (m=1): C2 cubic, boundary specifies v at both ends
  • order 5 (m=2): C4 quintic, boundary specifies v,a at both ends
  • order 7 (m=3): C6 septic, boundary specifies v,a,j at both ends

The user supplies start_state and end_state matrices of shape (dim, m), where column r-1 contains the r-th derivative value at the endpoint. None means all-zero (the most common default).

Internally, all orders share a single solve_general_thomas solver that implements the O(N) block-Thomas algorithm on the m x m block-tridiagonal system arising from Hermite parametrisation and $$ C^{m+1}, \ldots, C^{2m} $$ continuity.

Structs§

SplineConfig
Configuration for waypoint-spline path construction.
SplinePath
Low-level piecewise-polynomial path in normalised segment coordinates.

Enums§

Parametrization
Parameter assignment policy for waypoint splines.