trajectory_follower
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
trajectory_follower::SubTrajectory Class Reference

#include <SubTrajectory.hpp>

Inheritance diagram for trajectory_follower::SubTrajectory:
trajectory_follower::Lateral

Public Member Functions

 SubTrajectory ()
 
 SubTrajectory (const base::Trajectory &trajectory)
 
base::Trajectory toBaseTrajectory ()
 
void interpolate (base::Pose2D start, const std::vector< base::Angle > &angles)
 
void interpolate (const std::vector< base::Pose2D > &poses)
 
void interpolate (const std::vector< base::Pose2D > &poses, const std::vector< double > &orientationDiff)
 
base::Pose2D getIntermediatePoint (double d)
 
double getClosestPoint (const base::Pose2D &pose, double guess) const
 
double getClosestPoint (const base::Pose2D &pose) const
 
base::Pose2D getIntermediatePointNormalized (double d)
 
double getDist (double startParam, double endParam) const
 
double getClosestPoint (const base::Pose2D &pose, double guess, double start, double end)
 
void setGeometricResolution (double geometricResolution)
 
double getDistToGoal (double startParam) const
 
std::pair< double, double > error (const Eigen::Vector2d &pos, double currentHeading, double curveParam, double forwardDist)
 
double advance (double curveParam, double length)
 
double getCurvature (double param)
 
double getCurvatureMax ()
 
double getVariationOfCurvature (double param)
 
const base::Pose2D & getStartPose () const
 
const base::Pose2D & getGoalPose () const
 
const double & getSpeed () const
 
double getStartParam () const
 
double getEndParam () const
 
double getGeometricResolution () const
 
bool driveForward () const
 
void setSpeed (double speed)
 
double splineHeading (double param)
 

Static Public Member Functions

static double angleLimit (double angle)
 

Public Attributes

base::Pose2D startPose
 
base::Pose2D goalPose
 
double speed
 
base::geometry::Spline< 3 > posSpline
 
base::geometry::Spline< 1 > orientationSpline
 
DriveMode driveMode
 

Constructor & Destructor Documentation

◆ SubTrajectory() [1/2]

SubTrajectory::SubTrajectory ( )

◆ SubTrajectory() [2/2]

SubTrajectory::SubTrajectory ( const base::Trajectory &  trajectory)

Member Function Documentation

◆ advance()

double SubTrajectory::advance ( double  curveParam,
double  length 
)

◆ angleLimit()

double SubTrajectory::angleLimit ( double  angle)
static

◆ driveForward()

bool SubTrajectory::driveForward ( ) const

◆ error()

std::pair< double, double > SubTrajectory::error ( const Eigen::Vector2d &  pos,
double  currentHeading,
double  curveParam,
double  forwardDist 
)

◆ getClosestPoint() [1/3]

double SubTrajectory::getClosestPoint ( const base::Pose2D &  pose,
double  guess 
) const

Returns the param corresponding to the closest point of the POSITION of the given pose. This method may be given an initial guess, to speed up the search.

◆ getClosestPoint() [2/3]

double SubTrajectory::getClosestPoint ( const base::Pose2D &  pose) const

Returns the param corresponding to the closest point of the POSITION of the given pose.

◆ getClosestPoint() [3/3]

double SubTrajectory::getClosestPoint ( const base::Pose2D &  pose,
double  guess,
double  start,
double  end 
)

◆ getCurvature()

double SubTrajectory::getCurvature ( double  param)

◆ getCurvatureMax()

double SubTrajectory::getCurvatureMax ( )

◆ getDist()

double SubTrajectory::getDist ( double  startParam,
double  endParam 
) const

Returns the distance between the start and the endParam in POSITION.

◆ getDistToGoal()

double SubTrajectory::getDistToGoal ( double  startParam) const

◆ getEndParam()

double SubTrajectory::getEndParam ( ) const

◆ getGeometricResolution()

double SubTrajectory::getGeometricResolution ( ) const

◆ getGoalPose()

const base::Pose2D & SubTrajectory::getGoalPose ( ) const

◆ getIntermediatePoint()

base::Pose2D SubTrajectory::getIntermediatePoint ( double  d)

Returns the Pose2D for param d; The Orientation NOT be normalized. This is helpfull for the calculation of steering parameters.

◆ getIntermediatePointNormalized()

base::Pose2D SubTrajectory::getIntermediatePointNormalized ( double  d)

Returns the Pose2D for param d; The Orientation will be normalized to -M_PI >=< M_PI

◆ getSpeed()

const double & SubTrajectory::getSpeed ( ) const

◆ getStartParam()

double SubTrajectory::getStartParam ( ) const

◆ getStartPose()

const base::Pose2D & SubTrajectory::getStartPose ( ) const

◆ getVariationOfCurvature()

double SubTrajectory::getVariationOfCurvature ( double  param)

◆ interpolate() [1/3]

void SubTrajectory::interpolate ( base::Pose2D  start,
const std::vector< base::Angle > &  angles 
)

This method interpolates a point turn SubTrajectory from a given set of angles.

◆ interpolate() [2/3]

void SubTrajectory::interpolate ( const std::vector< base::Pose2D > &  poses)

This method tries to interpolate from a set of poses. For the direction of orienation change it always assumes the shortest distance.

◆ interpolate() [3/3]

void SubTrajectory::interpolate ( const std::vector< base::Pose2D > &  poses,
const std::vector< double > &  orientationDiff 
)

This method interpolates a Spline from a set of poses. For the direction of orientaiton a vector of orientation differences is given. This enables us to encode things like Pose(0,0,0) -> Pose(1,1,0) With a full turn inbetween.

◆ setGeometricResolution()

void SubTrajectory::setGeometricResolution ( double  geometricResolution)

◆ setSpeed()

void SubTrajectory::setSpeed ( double  speed)

◆ splineHeading()

double SubTrajectory::splineHeading ( double  param)

◆ toBaseTrajectory()

base::Trajectory SubTrajectory::toBaseTrajectory ( )

Member Data Documentation

◆ driveMode

DriveMode trajectory_follower::SubTrajectory::driveMode

◆ goalPose

base::Pose2D trajectory_follower::SubTrajectory::goalPose

◆ orientationSpline

base::geometry::Spline<1> trajectory_follower::SubTrajectory::orientationSpline

◆ posSpline

base::geometry::Spline<3> trajectory_follower::SubTrajectory::posSpline

◆ speed

double trajectory_follower::SubTrajectory::speed

◆ startPose

base::Pose2D trajectory_follower::SubTrajectory::startPose

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