Class ClothoidSplineG2

Inheritance Relationships

Base Type

  • public handle

Class Documentation

class ClothoidSplineG2 : public handle

Construct a piecewise clothoids \( \G(s) \) composed by n clothoids that solve the G2 problem

match points

\[ G(s_k) = \mathbf{p}_k \]
\[ \lim_{s\to s_k^+} G'(s) = \lim_{s\to s_k^-} G'(s) \]
\[ \lim_{s\to s_k^+} G''(s) = \lim_{s\to s_k^-} G''(s) \]

Reference

The solution algorithm is described in

  • E.Bertolazzi, M.Frego, Interpolating clothoid splines with curvature continuity Mathematica Methods in the Applied Sciences, vol 41, N.4, pp. 1723-1737, 2018

../_images/G2problem3arc.jpg

Public Functions

function nlsys( self, theta)
function con( self, theta)
function obj( self, theta)
function build( self, x, y)

Call C++ setup for the problem solver. Check that consecutive points are distinct

function build_internal( self, x, y, varargin)
function build_internal2( self, x, y, varargin)
function ClothoidSplineG2()
function verbose( self, yes)
function ipopt( self, yesno)
function ipopt_check( self, yesno)
function dims( self)
function guess( self)
function buildP1( self, x, y, theta0, theta1)

Compute the clothoid spline passing to the points (x(i),y(i)) with initial angle theta0 (radiants) and final angle theta1 (radiants)

function buildP2( self, x, y)

Compute the clothoid spline passing to the points (x(i),y(i)) with cyclic condition (tangent and curvature meet)

  • theta(1) = theta(end) mod 2*pi

  • kappa(1) = kappa(end)

function buildP3( self, x, y, theta0, kappa0)

Compute the clothoid spline passing to the points (x(i),y(i)) with assignede initial angle and survature NB: this target is not reccomended (its unstable), used only for debugging

function buildP4( self, x, y)

Compute the clothoid spline passing to the points \( (x_i,y_i)\) and minimizing derivative of the curvature al the extrema

minimize \( k'(0)^2 + k'(L)^2 \)

function buildP5( self, x, y)

Compute the clothoid spline passing to the points \( (x_i,y_i)\) and minimizing the length of the first and last segment

minimize \( (s_1-s_0)+(s_n - s_{n-1}) \)

function buildP6( self, x, y)

Compute the clothoid spline passing to the points \( (x_i,y_i)\) and minimizing the total length of the spline

\( L = s_n-s_0 \)

function buildP7( self, x, y)

Compute the clothoid spline passing to the points \( (x_i,y_i)\) and minimizing the integral of the square of the curvature:

minimize: \( \displaystyle \int_0^L k(s)^2 \mathrm{d}s \)

function buildP8( self, x, y)

Compute the clothoid spline passing to the points \( (x_i,y_i)\) and minimizing the integral of the square of the curvature derivative:

minimize: \( \displaystyle \int_0^L k'(s)^2 \mathrm{d}s \)

function buildP9( self, x, y)

Compute the clothoid spline passing to the points \( (x_i,y_i)\) and minimizing the integral of the jerk squared