Curves
A library for curves generation.
curves::SE3Curve Class Referenceabstract

#include <SE3Curve.hpp>

Inheritance diagram for curves::SE3Curve:
Inheritance graph

Public Types

typedef Curve< SE3ConfigParent
 
typedef Parent::ValueType ValueType
 
typedef Parent::DerivativeType DerivativeType
 
- Public Types inherited from curves::Curve< SE3Config >
typedef SE3Config::ValueType ValueType
 The value type of the curve. More...
 
typedef SE3Config::DerivativeType DerivativeType
 The curve's derivative type. More...
 

Public Member Functions

 SE3Curve ()
 
virtual ~SE3Curve ()
 
virtual Eigen::Vector3d evaluateAngularVelocityA (Time time)=0
 Evaluate the angular velocity of Frame b as seen from Frame a, expressed in Frame a. More...
 
virtual Eigen::Vector3d evaluateAngularVelocityB (Time time)=0
 Evaluate the angular velocity of Frame a as seen from Frame b, expressed in Frame b. More...
 
virtual Eigen::Vector3d evaluateLinearVelocityA (Time time)=0
 Evaluate the velocity of Frame b as seen from Frame a, expressed in Frame a. More...
 
virtual Eigen::Vector3d evaluateLinearVelocityB (Time time)=0
 Evaluate the velocity of Frame a as seen from Frame b, expressed in Frame b. More...
 
virtual Vector6d evaluateTwistA (Time time)=0
 evaluate the velocity/angular velocity of Frame b as seen from Frame a, expressed in Frame a. The return value has the linear velocity (0,1,2), and the angular velocity (3,4,5). More...
 
virtual Vector6d evaluateTwistB (Time time)=0
 evaluate the velocity/angular velocity of Frame a as seen from Frame b, expressed in Frame b. The return value has the linear velocity (0,1,2), and the angular velocity (3,4,5). More...
 
virtual Eigen::Vector3d evaluateAngularDerivativeA (unsigned derivativeOrder, Time time)=0
 Evaluate the angular derivative of Frame b as seen from Frame a, expressed in Frame a. More...
 
virtual Eigen::Vector3d evaluateAngularDerivativeB (unsigned derivativeOrder, Time time)=0
 Evaluate the angular derivative of Frame a as seen from Frame b, expressed in Frame b. More...
 
virtual Eigen::Vector3d evaluateLinearDerivativeA (unsigned derivativeOrder, Time time)=0
 Evaluate the derivative of Frame b as seen from Frame a, expressed in Frame a. More...
 
virtual Eigen::Vector3d evaluateLinearDerivativeB (unsigned derivativeOrder, Time time)=0
 Evaluate the derivative of Frame a as seen from Frame b, expressed in Frame b. More...
 
virtual Vector6d evaluateDerivativeA (unsigned derivativeOrder, Time time)=0
 evaluate the velocity/angular derivative of Frame b as seen from Frame a, expressed in Frame a. The return value has the linear velocity (0,1,2), and the angular velocity (3,4,5). More...
 
virtual Vector6d evaluateDerivativeB (unsigned derivativeOrder, Time time)=0
 evaluate the velocity/angular velocity of Frame a as seen from Frame b, expressed in Frame b. The return value has the linear velocity (0,1,2), and the angular velocity (3,4,5). More...
 
virtual void setMinSamplingPeriod (Time time)=0
 set the minimum sampling period More...
 
virtual void setSamplingRatio (const int ratio)=0
 Set the sampling ratio. eg. 4 will add a coefficient every 4 extend. More...
 
virtual void clear ()=0
 Clear all the curve coefficients. More...
 
virtual void transformCurve (const ValueType T)=0
 Perform a rigid transformation on the left side of the curve. More...
 
virtual void saveCurveTimesAndValues (const std::string &filename) const =0
 
virtual void saveCurveAtTimes (const std::string &filename, std::vector< Time > times) const =0
 
virtual void saveCorrectionCurveAtTimes (const std::string &filename, std::vector< Time > times) const =0
 
virtual void getCurveTimes (std::vector< Time > *outTimes) const =0
 
virtual int correctionSize () const =0
 Returns the number of coefficients in the correction curve. More...
 
virtual void foldInCorrections ()=0
 Fold in the correction curve into the base curve and reinitialize correction curve coefficients to identity transformations. More...
 
virtual void setCorrectionTimes (const std::vector< Time > &times)=0
 Add coefficients to the correction curve at given times. More...
 
virtual void removeCorrectionCoefficientAtTime (Time time)=0
 Remove a correction coefficient at the specified time. More...
 
virtual void setCorrectionCoefficientAtTime (Time time, ValueType value)=0
 Set the correction coefficient value at the specified time. More...
 
virtual void resetCorrectionCurve (const std::vector< Time > &times)=0
 Reset the correction curve to identity values with knots at desired times. More...
 
virtual void setBaseCurve (const std::vector< Time > &times, const std::vector< ValueType > &values)=0
 Set the base curve to given values with knots at desired times Resets the curve beforehand. More...
 
virtual void setBaseCurvePart (const std::vector< Time > &times, const std::vector< ValueType > &values)=0
 Add / replace the given coefficients without resetting the curve. More...
 
virtual void modifyBaseCoefficientsValuesInBatch (const std::vector< Time > &times, const std::vector< ValueType > &values)=0
 Modifies values of the base coefficient in batch, starting at times[0] and assuming that a coefficient exists at all the specified times. More...
 
virtual void getBaseCurveTimes (std::vector< Time > *outTimes) const =0
 
virtual void getBaseCurveTimesInWindow (std::vector< Time > *outTimes, Time begTime, Time endTime) const =0
 
virtual bool isEmpty () const =0
 
virtual int size () const =0
 
virtual int baseSize () const =0
 
virtual void saveCorrectionCurveTimesAndValues (const std::string &filename) const =0
 
- Public Member Functions inherited from curves::Curve< SE3Config >
 Curve ()
 
virtual ~Curve ()
 
virtual void transformCurve (const ValueType T)=0
 Perform a rigid transformation on the left side of the curve. More...
 
virtual void print (const std::string &str="") const =0
 Print the value of the coefficient, for debugging and unit tests. More...
 
virtual Time getMinTime () const =0
 The dimension of the underlying manifold. More...
 
virtual Time getMaxTime () const =0
 The one past the last valid time for the curve. More...
 
virtual bool evaluate (ValueType &value, Time time) const =0
 Evaluate the ambient space of the curve. More...
 
virtual bool evaluateDerivative (DerivativeType &derivative, Time time, unsigned derivativeOrder) const =0
 
virtual void extend (const std::vector< Time > &times, const std::vector< ValueType > &values, std::vector< Key > *outKeys=NULL)=0
 
virtual void fitCurve (const std::vector< Time > &times, const std::vector< ValueType > &values, std::vector< Key > *outKeys=NULL)=0
 Fit a new curve to these data points. More...
 

Detailed Description

Definition at line 24 of file SE3Curve.hpp.

Member Typedef Documentation

Definition at line 29 of file SE3Curve.hpp.

Definition at line 30 of file SE3Curve.hpp.

Constructor & Destructor Documentation

curves::SE3Curve::SE3Curve ( )
virtual curves::SE3Curve::~SE3Curve ( )
virtual

Member Function Documentation

virtual int curves::SE3Curve::baseSize ( ) const
pure virtual
virtual void curves::SE3Curve::clear ( )
pure virtual
virtual int curves::SE3Curve::correctionSize ( ) const
pure virtual
virtual Eigen::Vector3d curves::SE3Curve::evaluateAngularDerivativeA ( unsigned  derivativeOrder,
Time  time 
)
pure virtual

Evaluate the angular derivative of Frame b as seen from Frame a, expressed in Frame a.

Implemented in curves::CubicHermiteSE3Curve, curves::SE3CompositionCurve< C1, C2 >, curves::SlerpSE3Curve, curves::DiscreteSE3Curve, and curves::SemiDiscreteSE3Curve.

virtual Eigen::Vector3d curves::SE3Curve::evaluateAngularDerivativeB ( unsigned  derivativeOrder,
Time  time 
)
pure virtual

Evaluate the angular derivative of Frame a as seen from Frame b, expressed in Frame b.

Implemented in curves::CubicHermiteSE3Curve, curves::SE3CompositionCurve< C1, C2 >, curves::SlerpSE3Curve, curves::DiscreteSE3Curve, and curves::SemiDiscreteSE3Curve.

virtual Eigen::Vector3d curves::SE3Curve::evaluateAngularVelocityA ( Time  time)
pure virtual

Evaluate the angular velocity of Frame b as seen from Frame a, expressed in Frame a.

Implemented in curves::CubicHermiteSE3Curve, curves::SE3CompositionCurve< C1, C2 >, curves::SlerpSE3Curve, curves::DiscreteSE3Curve, and curves::SemiDiscreteSE3Curve.

virtual Eigen::Vector3d curves::SE3Curve::evaluateAngularVelocityB ( Time  time)
pure virtual

Evaluate the angular velocity of Frame a as seen from Frame b, expressed in Frame b.

Implemented in curves::CubicHermiteSE3Curve, curves::SE3CompositionCurve< C1, C2 >, curves::SlerpSE3Curve, curves::DiscreteSE3Curve, and curves::SemiDiscreteSE3Curve.

virtual Vector6d curves::SE3Curve::evaluateDerivativeA ( unsigned  derivativeOrder,
Time  time 
)
pure virtual

evaluate the velocity/angular derivative of Frame b as seen from Frame a, expressed in Frame a. The return value has the linear velocity (0,1,2), and the angular velocity (3,4,5).

Implemented in curves::CubicHermiteSE3Curve, curves::SE3CompositionCurve< C1, C2 >, curves::SlerpSE3Curve, curves::DiscreteSE3Curve, and curves::SemiDiscreteSE3Curve.

virtual Vector6d curves::SE3Curve::evaluateDerivativeB ( unsigned  derivativeOrder,
Time  time 
)
pure virtual

evaluate the velocity/angular velocity of Frame a as seen from Frame b, expressed in Frame b. The return value has the linear velocity (0,1,2), and the angular velocity (3,4,5).

Implemented in curves::CubicHermiteSE3Curve, curves::SE3CompositionCurve< C1, C2 >, curves::SlerpSE3Curve, curves::DiscreteSE3Curve, and curves::SemiDiscreteSE3Curve.

virtual Eigen::Vector3d curves::SE3Curve::evaluateLinearDerivativeA ( unsigned  derivativeOrder,
Time  time 
)
pure virtual

Evaluate the derivative of Frame b as seen from Frame a, expressed in Frame a.

Implemented in curves::CubicHermiteSE3Curve, curves::SE3CompositionCurve< C1, C2 >, curves::SlerpSE3Curve, curves::DiscreteSE3Curve, and curves::SemiDiscreteSE3Curve.

virtual Eigen::Vector3d curves::SE3Curve::evaluateLinearDerivativeB ( unsigned  derivativeOrder,
Time  time 
)
pure virtual

Evaluate the derivative of Frame a as seen from Frame b, expressed in Frame b.

Implemented in curves::CubicHermiteSE3Curve, curves::SE3CompositionCurve< C1, C2 >, curves::SlerpSE3Curve, curves::DiscreteSE3Curve, and curves::SemiDiscreteSE3Curve.

virtual Eigen::Vector3d curves::SE3Curve::evaluateLinearVelocityA ( Time  time)
pure virtual

Evaluate the velocity of Frame b as seen from Frame a, expressed in Frame a.

Implemented in curves::CubicHermiteSE3Curve, curves::SE3CompositionCurve< C1, C2 >, curves::SlerpSE3Curve, curves::DiscreteSE3Curve, and curves::SemiDiscreteSE3Curve.

virtual Eigen::Vector3d curves::SE3Curve::evaluateLinearVelocityB ( Time  time)
pure virtual

Evaluate the velocity of Frame a as seen from Frame b, expressed in Frame b.

Implemented in curves::CubicHermiteSE3Curve, curves::SE3CompositionCurve< C1, C2 >, curves::SlerpSE3Curve, curves::DiscreteSE3Curve, and curves::SemiDiscreteSE3Curve.

virtual Vector6d curves::SE3Curve::evaluateTwistA ( Time  time)
pure virtual

evaluate the velocity/angular velocity of Frame b as seen from Frame a, expressed in Frame a. The return value has the linear velocity (0,1,2), and the angular velocity (3,4,5).

Implemented in curves::CubicHermiteSE3Curve, curves::SE3CompositionCurve< C1, C2 >, curves::SlerpSE3Curve, curves::DiscreteSE3Curve, and curves::SemiDiscreteSE3Curve.

virtual Vector6d curves::SE3Curve::evaluateTwistB ( Time  time)
pure virtual

evaluate the velocity/angular velocity of Frame a as seen from Frame b, expressed in Frame b. The return value has the linear velocity (0,1,2), and the angular velocity (3,4,5).

Implemented in curves::CubicHermiteSE3Curve, curves::SE3CompositionCurve< C1, C2 >, curves::SlerpSE3Curve, curves::DiscreteSE3Curve, and curves::SemiDiscreteSE3Curve.

virtual void curves::SE3Curve::foldInCorrections ( )
pure virtual

Fold in the correction curve into the base curve and reinitialize correction curve coefficients to identity transformations.

Implemented in curves::CubicHermiteSE3Curve, curves::DiscreteSE3Curve, curves::SemiDiscreteSE3Curve, curves::SlerpSE3Curve, and curves::SE3CompositionCurve< C1, C2 >.

virtual void curves::SE3Curve::getBaseCurveTimes ( std::vector< Time > *  outTimes) const
pure virtual
virtual void curves::SE3Curve::getBaseCurveTimesInWindow ( std::vector< Time > *  outTimes,
Time  begTime,
Time  endTime 
) const
pure virtual
virtual void curves::SE3Curve::getCurveTimes ( std::vector< Time > *  outTimes) const
pure virtual
virtual bool curves::SE3Curve::isEmpty ( ) const
pure virtual
virtual void curves::SE3Curve::modifyBaseCoefficientsValuesInBatch ( const std::vector< Time > &  times,
const std::vector< ValueType > &  values 
)
pure virtual

Modifies values of the base coefficient in batch, starting at times[0] and assuming that a coefficient exists at all the specified times.

virtual void curves::SE3Curve::removeCorrectionCoefficientAtTime ( Time  time)
pure virtual
virtual void curves::SE3Curve::resetCorrectionCurve ( const std::vector< Time > &  times)
pure virtual

Reset the correction curve to identity values with knots at desired times.

Implemented in curves::CubicHermiteSE3Curve, curves::DiscreteSE3Curve, curves::SemiDiscreteSE3Curve, curves::SlerpSE3Curve, and curves::SE3CompositionCurve< C1, C2 >.

virtual void curves::SE3Curve::saveCorrectionCurveAtTimes ( const std::string &  filename,
std::vector< Time times 
) const
pure virtual
virtual void curves::SE3Curve::saveCorrectionCurveTimesAndValues ( const std::string &  filename) const
pure virtual
virtual void curves::SE3Curve::saveCurveAtTimes ( const std::string &  filename,
std::vector< Time times 
) const
pure virtual
virtual void curves::SE3Curve::saveCurveTimesAndValues ( const std::string &  filename) const
pure virtual
virtual void curves::SE3Curve::setBaseCurve ( const std::vector< Time > &  times,
const std::vector< ValueType > &  values 
)
pure virtual

Set the base curve to given values with knots at desired times Resets the curve beforehand.

virtual void curves::SE3Curve::setBaseCurvePart ( const std::vector< Time > &  times,
const std::vector< ValueType > &  values 
)
pure virtual

Add / replace the given coefficients without resetting the curve.

virtual void curves::SE3Curve::setCorrectionCoefficientAtTime ( Time  time,
ValueType  value 
)
pure virtual

Set the correction coefficient value at the specified time.

virtual void curves::SE3Curve::setCorrectionTimes ( const std::vector< Time > &  times)
pure virtual
virtual void curves::SE3Curve::setMinSamplingPeriod ( Time  time)
pure virtual
virtual void curves::SE3Curve::setSamplingRatio ( const int  ratio)
pure virtual

Set the sampling ratio. eg. 4 will add a coefficient every 4 extend.

Implemented in curves::CubicHermiteSE3Curve, curves::DiscreteSE3Curve, curves::SemiDiscreteSE3Curve, curves::SlerpSE3Curve, and curves::SE3CompositionCurve< C1, C2 >.

virtual void curves::SE3Curve::transformCurve ( const ValueType  T)
pure virtual

Perform a rigid transformation on the left side of the curve.


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