G2solveCLC Class Reference

Clothoids: G2lib::G2solveCLC Class Reference
Clothoids
G2lib::G2solveCLC Class Reference

#include <ClothoidList.hxx>

Public Member Functions

 G2solveCLC ()=default
 
int build (real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type x1, real_type y1, real_type theta1, real_type kappa1)
 
void set_tolerance (real_type tol)
 
void set_max_iter (integer miter)
 
int solve ()
 
ClothoidCurve const & S0 () const
 
ClothoidCurve const & SM () const
 
ClothoidCurve const & S1 () const
 
void save (ostream_type &stream) const
 

Detailed Description

Construct a piecewise clothoids \( G(s) \) composed by 2 clothoid and one line segment that solve the \( G^2 \) problem

\[ \begin{array}{ll} \textrm{endpoints:}\quad & \left\{ \begin{array}{r@{~}c@{~}l} G(0) &=& \mathbf{p}_0 \\[0.5em] G(L) &=& \mathbf{p}_1 \end{array} \right. \\[1em] \textrm{angles:}\quad & \left\{ \begin{array}{r@{~}c@{~}l} \theta(0) &=& \theta_0 \\[0.5em] \theta(L) &=& \theta_1 \end{array} \right. \\[1em] \textrm{curvature:}\quad & \left\{ \begin{array}{r@{~}c@{~}l} \kappa(0) &=& \kappa_0 \\[0.5em] \kappa(L) &=& \kappa_1 \end{array} \right. \end{array} \]

note

The solution do not exist for all the combination of points/angle/curvature

Constructor & Destructor Documentation

◆ G2solveCLC()

G2lib::G2solveCLC::G2solveCLC ( )
default

Build an empty clothoid list

Member Function Documentation

◆ build()

int G2lib::G2solveCLC::build ( real_type x0,
real_type y0,
real_type theta0,
real_type kappa0,
real_type x1,
real_type y1,
real_type theta1,
real_type kappa1 )

Construct a piecewise clothoids \( G(s) \) composed by two clothoids and one line segment that solve the \( G^2 \) problem, with data

\[ \mathbf{p}_0 = (x_0,y_0)^T, \qquad \mathbf{p}_1 = (x_1,y_1)^T \]

\[ \theta_0, \qquad \theta_1, \qquad \kappa_0, \qquad \kappa_1 \]

Parameters
[in]x0\( x_0 \)
[in]y0\( y_0 \)
[in]theta0\( \theta_0 \)
[in]kappa0\( \kappa_0 \)
[in]x1\( x_1 \)
[in]y1\( y_1 \)
[in]theta1\( \theta_1 \)
[in]kappa1\( \kappa_1 \)
Returns
number of iterations of -1 if failed

◆ S0()

ClothoidCurve const & G2lib::G2solveCLC::S0 ( ) const
inline

Return the first clothoid of the \( G^2 \) clothoid list

◆ S1()

ClothoidCurve const & G2lib::G2solveCLC::S1 ( ) const
inline

Return the third clothoid of the \( G^2 \) clothoid list

◆ set_max_iter()

void G2lib::G2solveCLC::set_max_iter ( integer miter)

Fix maximum number of iteration for the \( G^2 \) problem

◆ set_tolerance()

void G2lib::G2solveCLC::set_tolerance ( real_type tol)

Fix tolerance for the \( G^2 \) problem

◆ SM()

ClothoidCurve const & G2lib::G2solveCLC::SM ( ) const
inline

Return the second segment (the line) as a clothoid

◆ solve()

int G2lib::G2solveCLC::solve ( )

Solve the \( G^2 \) problem

Returns
number of iterations of -1 if failed

The documentation for this class was generated from the following files:
  • /Users/enrico/Ricerca/develop/PINS/pins-mechatronix/LibSources/submodules/Clothoids/src/Clothoids/ClothoidList.hxx
  • /Users/enrico/Ricerca/develop/PINS/pins-mechatronix/LibSources/submodules/Clothoids/src/ClothoidG2.cc
  • /Users/enrico/Ricerca/develop/PINS/pins-mechatronix/LibSources/submodules/Clothoids/src/ClothoidList.cc