Brick
Loading...
Searching...
No Matches
QuinticHermiteSpline Class Reference

#include <quintic_hermite_spline.h>

Description

Quintic Hermite spline segment defined by endpoint positions, tangents, and second derivatives.

P(u) = c0 + c1*u + c2*u^2 + c3*u^3 + c4*u^4 + c5*u^5, where u in [0, 1].

Inheritance diagram for QuinticHermiteSpline:

Public Member Functions

 QuinticHermiteSpline ()=default
 Default constructor.
 QuinticHermiteSpline (const HermitePoint &start, const HermitePoint &end, double max_err=1e-4)
 Constructs quintic Hermite spline from start and end HermitePoint structures.
 QuinticHermiteSpline (const Translation2d &start_pos, const Translation2d &end_pos, const Translation2d &start_tangent, const Translation2d &end_tangent, const Translation2d &start_accel, const Translation2d &end_accel, double max_err=1e-4)
 Constructs quintic Hermite spline from explicit 2D position, tangent, and acceleration vectors.
Public Member Functions inherited from HermiteSpline< 5 >
Translation2d position (double u) const override
 Computes 2D position at spline parameter u.
Translation2d velocity (double u) const override
 Computes 2D parametric velocity (first derivative) at parameter u.
Translation2d acceleration (double u) const override
 Computes 2D parametric acceleration (second derivative) at parameter u.
Public Member Functions inherited from SplineBase
Rotation2d heading (double u) const
 Computes heading angle theta at spline parameter u.
units::Curvature curvature (double u) const
 Computes path curvature at parameter u.
double length () const
 Returns total arc length of the spline in inches.
double u_from_s (double s) const
 Inverts arc distance s to spline parameter u.
SplineSample sample (double u) const
 Samples complete state (position, velocity, acceleration, heading, curvature) at parameter u.
SplineSample sample_by_s (double s) const
 Samples complete state at arc distance s.
std::vector< Translation2d > sample_by_count (int count) const
 Samples 2D positions uniformly spaced in parameter u.
std::vector< Translation2d > sample_by_spacing (double ds) const
 Samples 2D positions uniformly spaced by arc distance ds.

Additional Inherited Members

Protected Member Functions inherited from SplineBase
double integrate_segment_length (double u0, double u1) const
 Computes high-accuracy arc length over sub-interval [u0, u1] using 5-point Gauss-Legendre quadrature.
void build_arc_table_recursive (double u0, double u1, double s0, double segment_length, double max_err)
 Recursively builds the arc table to satisfy a linear interpolation error bound.
void build_arc_table (double max_err=1e-4)
 Builds pre-computed parameter u and arc-length lookup tables using adaptive refinement.
Static Protected Member Functions inherited from SplineBase
template<size_t N>
static double eval_poly (const std::array< double, N > &coeffs, double u)
 Evaluates polynomial P(u) using Horner's method.
template<size_t N>
static double eval_poly_derivative (const std::array< double, N > &coeffs, double u)
 Evaluates first derivative P'(u) using Horner's method.
template<size_t N>
static double eval_poly_second_derivative (const std::array< double, N > &coeffs, double u)
 Evaluates second derivative P''(u) using Horner's method.
static double clamp_u (double u)
static double clamp_value (double value, double lo, double hi)
Protected Attributes inherited from HermiteSpline< 5 >
std::array< double, Order+1 > x_
std::array< double, Order+1 > y_

Constructor & Destructor Documentation

◆ QuinticHermiteSpline() [1/2]

QuinticHermiteSpline::QuinticHermiteSpline ( const HermitePoint & start,
const HermitePoint & end,
double max_err = 1e-4 )
inline

Constructs quintic Hermite spline from start and end HermitePoint structures.

Parameters
startInitial endpoint with position, tangent, and second derivative.
endFinal endpoint with position, tangent, and second derivative.
max_errMaximum allowable interpolation error in inches for the arc-length lookup table.

◆ QuinticHermiteSpline() [2/2]

QuinticHermiteSpline::QuinticHermiteSpline ( const Translation2d & start_pos,
const Translation2d & end_pos,
const Translation2d & start_tangent,
const Translation2d & end_tangent,
const Translation2d & start_accel,
const Translation2d & end_accel,
double max_err = 1e-4 )
inline

Constructs quintic Hermite spline from explicit 2D position, tangent, and acceleration vectors.

Parameters
start_posStart position vector.
end_posEnd position vector.
start_tangentStart tangent vector.
end_tangentEnd tangent vector.
start_accelStart second derivative vector.
end_accelEnd second derivative vector.
max_errMaximum allowable interpolation error in inches for the arc-length lookup table.

The documentation for this class was generated from the following file: