roboptim::CubicBSpline Class Reference
[Mathematical functions]

Cubic B-Spline trajectory. More...

#include <roboptim/trajectory/cubic-b-spline.hh>

Inheritance diagram for roboptim::CubicBSpline:
roboptim::Trajectory< 3 > NTimesDerivableFunction

List of all members.

Public Member Functions

 CubicBSpline (interval_t timeRange, size_type dimension, const vector_t &parameters, const std::string name="cubic B-Spline") throw ()
 Instantiate a cubic B-Spline from its definition.
 CubicBSpline (const CubicBSpline &spline) throw ()
 Copy constructor.
virtual ~CubicBSpline () throw ()
virtual void setParameters (const vector_t &) throw ()
 Modify spline parameters.
virtual jacobian_t variationConfigWrtParam (double t) const throw ()
 Get the variation of a configuration with respect to parameter vector.
virtual jacobian_t variationDerivWrtParam (double t, size_type order) const throw ()
 Get the variation of a derivative with respect to parameter vector.
virtual value_type singularPointAtRank (size_type rank) const
 Get singular point at given rank.
virtual vector_t derivBeforeSingularPoint (size_type rank, size_type order) const
 Get left limit value of derivative at given singular point.
virtual vector_t derivAfterSingularPoint (size_type rank, size_type order) const
 Get right limit value of derivative at given singular point.
virtual Trajectory
< derivabilityOrder > * 
resize (interval_t timeRange) const throw ()
 Clone and resize a trajectory.
virtual std::ostream & print (std::ostream &o) const throw ()
 Display the function on the specified output stream.
jacobian_t variationConfigWrtParam (StableTimePoint tp) const throw ()
jacobian_t variationDerivWrtParam (StableTimePoint tp, size_type order) const throw ()

Protected Member Functions

void impl_compute (result_t &, double) const throw ()
void impl_derivative (gradient_t &g, double x, size_type order) const throw ()
void impl_derivative (gradient_t &g, StableTimePoint, size_type order) const throw ()
value_type Dt () const
size_type interval (value_type t) const
vector_t basisFunctions (value_type t, size_type order) const

Detailed Description

Cubic B-Spline trajectory.

Implement a B-Spline as a trajectory as described below: given

Examples:

spline-optimization.cc, and spline-time-optimization.cc.


Constructor & Destructor Documentation

roboptim::CubicBSpline::CubicBSpline ( interval_t  timeRange,
size_type  dimension,
const vector_t parameters,
const std::string  name = "cubic B-Spline" 
) throw ()

Instantiate a cubic B-Spline from its definition.

Parameters:
timeRange spline time range: $$[t_3,t_n]$
dimension spline dimension: $n$
parameters vector of parameters defining control points
name function title

Number of control points is inferred from dimension of dimenion of parameter vector.

Referenced by resize().

roboptim::CubicBSpline::CubicBSpline ( const CubicBSpline spline  )  throw ()

Copy constructor.

Parameters:
spline spline that will be copied
roboptim::CubicBSpline::~CubicBSpline (  )  throw () [virtual]

Member Function Documentation

CubicBSpline::vector_t roboptim::CubicBSpline::basisFunctions ( value_type  t,
size_type  order 
) const [protected]
CubicBSpline::vector_t roboptim::CubicBSpline::derivAfterSingularPoint ( size_type  rank,
size_type  order 
) const [virtual]

Get right limit value of derivative at given singular point.

Parameters:
rank rank of the singular points.
order order of derivation.
Return values:
derivative Limit of the derivative at singular point for decreasing parameter values.

Implements roboptim::Trajectory< 3 >.

References roboptim::Trajectory< 3 >::derivative(), and singularPointAtRank().

CubicBSpline::vector_t roboptim::CubicBSpline::derivBeforeSingularPoint ( size_type  rank,
size_type  order 
) const [virtual]

Get left limit value of derivative at given singular point.

Parameters:
rank rank of the singular points.
order order of derivation.
Returns:
Limit of the derivative at singular point for increasing parameter values.

Implements roboptim::Trajectory< 3 >.

References roboptim::Trajectory< 3 >::derivative(), and singularPointAtRank().

CubicBSpline::value_type roboptim::CubicBSpline::Dt (  )  const [protected]
void roboptim::CubicBSpline::impl_compute ( result_t derivative,
double  t 
) const throw () [protected]
void roboptim::CubicBSpline::impl_derivative ( gradient_t g,
StableTimePoint  stp,
size_type  order 
) const throw () [protected, virtual]
void roboptim::CubicBSpline::impl_derivative ( gradient_t g,
double  x,
size_type  order 
) const throw () [protected]
CubicBSpline::size_type roboptim::CubicBSpline::interval ( value_type  t  )  const [protected]
std::ostream & roboptim::CubicBSpline::print ( std::ostream &  o  )  const throw () [virtual]

Display the function on the specified output stream.

Parameters:
o output stream used for display
Returns:
output stream

Reimplemented from roboptim::Trajectory< 3 >.

virtual Trajectory<derivabilityOrder>* roboptim::CubicBSpline::resize ( interval_t  timeRange  )  const throw () [inline, virtual]

Clone and resize a trajectory.

Implements roboptim::Trajectory< 3 >.

References CubicBSpline().

void roboptim::CubicBSpline::setParameters ( const vector_t p  )  throw () [virtual]

Modify spline parameters.

Reimplemented from roboptim::Trajectory< 3 >.

Referenced by roboptim::SplineLength::impl_compute(), and roboptim::SplineLength::impl_gradient().

CubicBSpline::value_type roboptim::CubicBSpline::singularPointAtRank ( size_type  rank  )  const [virtual]

Get singular point at given rank.

Implements roboptim::Trajectory< 3 >.

References roboptim::Trajectory< 3 >::length().

Referenced by derivAfterSingularPoint(), and derivBeforeSingularPoint().

CubicBSpline::jacobian_t roboptim::CubicBSpline::variationConfigWrtParam ( StableTimePoint  tp  )  const throw () [virtual]
CubicBSpline::jacobian_t roboptim::CubicBSpline::variationConfigWrtParam ( double  t  )  const throw () [virtual]

Get the variation of a configuration with respect to parameter vector.

Parameters:
t value $t$ in the definition interval.
Returns:
Jacobian:

\[\frac{\partial\Gamma_{\textbf{p}}(t)}{\partial\textbf{p}}\]

Implements roboptim::Trajectory< 3 >.

Examples:
spline-optimization.cc.
CubicBSpline::jacobian_t roboptim::CubicBSpline::variationDerivWrtParam ( StableTimePoint  tp,
size_type  order 
) const throw () [virtual]
CubicBSpline::jacobian_t roboptim::CubicBSpline::variationDerivWrtParam ( double  t,
size_type  order 
) const throw () [virtual]

Get the variation of a derivative with respect to parameter vector.

Parameters:
t value $t$ in the definition interval.
order order $r$ of the derivative.
Returns:
jacobian

\[ \frac{\partial}{\partial\textbf{p}} \left(\frac{d^r\Gamma_{\textbf{p}}}{dt^r}(t)\right) \]

Implements roboptim::Trajectory< 3 >.