Class TurningBase

Inheritance Relationships

Derived Types

Class Documentation

class TurningBase

Base class for turn planners.

Subclassed by f2c::pp::DubinsCurves, f2c::pp::DubinsCurvesCC, f2c::pp::ReedsSheppCurves, f2c::pp::ReedsSheppCurvesHC

Public Functions

F2CPath createTurn(const F2CRobot &robot, const F2CPoint &start_pos, double start_angle, const F2CPoint &end_pos, double end_angle)

Create a turn that goes from one point with a certain angle to another point.

Start and end point are connected with a line that creates the inferior border of the turn.

Parameters:
  • start_pos – Start point

  • start_angle – Start angle

  • end_pos – End point

  • end_angle – End angle

Returns:

Path with the computed turn

F2CPath createTurnIfNotCached(const F2CRobot &robot, double dist_start_pos, double start_angle, double end_angle)

Generate a turn if it has not been computed before.

Parameters:
  • dist_start_pos – Distance between start and end point

  • start_angle – Angle when going into the headland (0 deg is the angle of the headland)

  • end_angle – Angle when going out of the headland

virtual F2CPath createSimpleTurn(const F2CRobot &robot, double dist_start_pos, double start_angle, double end_angle) = 0

Create a turn.

Parameters:
  • dist_start_pos – Distance between start and end point

  • start_angle – Angle when going into the headland (0 deg is the angle of the headland)

  • end_angle – Angle when going out of the headland

double getDiscretization() const

Get discretization distance from points in the turn.

void setDiscretization(double d)

Set discretization distance from points in the turn.

bool getUsingCache() const

Get if turns are being cached or not.

void setUsingCache(bool c)

Set if cache should be used when planning same turn as before.

Public Static Functions

static std::vector<double> transformToNormalTurn(const F2CPoint &start_pos, double start_angle, const F2CPoint &end_pos, double end_angle)

Transform the turn parameters representation from two points with two angles to one distance and two angles.

Parameters:
  • start_pos – Start point

  • start_angle – Start angle

  • end_pos – End point

  • end_angle – End angle

Returns:

Vector with the values of the new representation

static bool isTurnValid(const F2CPath &path, double dist_start_end, double end_angle, double max_dist_error = 0.05, double max_rot_error = 0.1)

Check if turn is valid.

Protected Attributes

std::map<std::vector<int>, F2CPath> path_cache_
double discretization = {0.01}
bool using_cache = {true}