Class ReedsSheppCurvesHC

Inheritance Relationships

Base Type

Class Documentation

class ReedsSheppCurvesHC : public f2c::pp::TurningBase

Reeds-Shepp’s curves planner with continuous curves.

Public Functions

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

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

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

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.