8 #ifndef ISEEML_DUBINS_HH
9 #define ISEEML_DUBINS_HH
13 #include <iSeeML/rob/DubinsLikePath.hpp>
64 const double&
maxCurv,
const double& length1,
65 const double& length2,
const double& length3) :
113 void writeTo(ostream& O)
const;
138 return(
isZero(defl) ? 0 : 1 ); }
161 double&
length,
double& angle)
const;
230 computationArray[i] = *
this;
254 const int index)
const {
256 #ifdef ISEEML_CHECK_DUBINS_PATH_PRECOND
258 cerr <<
ClassName <<
"::getConnection: abnormal index"
259 <<
" parameter (" << index <<
")!" << endl;
262 #ifdef ISEEML_CHECK_ARRAY_ELEMT
271 #endif // end of definition
void definePieces(const iSeeML::rob::OrPtConfig &start, const double &defl1, const double &lenDefl, const double &defl3)
double length() const
Description method, giving the path's length (sum of the pieces' length).
Definition: CompoundPath.hpp:126
DubinsPath(const DubinsPath &other)
The copy constructor.
Definition: DubinsPath.hpp:88
virtual bool getConnection(const double &dist, double &length, double &angle) const
Description method, trying to compute the length of the line segment connecting the turning circles a...
iSeeML::rob::DubinsLikePath * connectArray() const
Various method, returning an array of nbPossiblePaths Dubins-like paths, initialised as clones of the...
Definition: DubinsPath.hpp:227
void connect(const iSeeML::rob::OrPtConfig &start, const iSeeML::rob::OrPtConfig &goal)
Modification method, defining type and pieces of a Dubins' like path in order to connect two given co...
DubinsLikePath & operator=(const DubinsLikePath &other)
Copy operator (default one is not correct).
Definition: DubinsLikePath.hpp:471
void computeCenters(const iSeeML::rob::OrPtConfig &start, const iSeeML::rob::OrPtConfig &goal, iSeeML::geom::Point centers[nbTurningCircles]) const
Various method, computing the set of circle centers used to turn from starting configuration of the c...
This class defines a standard robotic configuration, containing the position of a reference point and...
Definition: OrPtConfig.hpp:45
@ nbTurningCircles
the number of usefull turning circles (4).
Definition: DubinsLikePath.hpp:66
DubinsPath()
The default constructor should only be used for array initializations: it generates a path starting f...
Definition: DubinsPath.hpp:49
DubinsPath(const iSeeML::rob::OrPtConfig &start, const iSeeML::rob::OrPtConfig &goal, const double &maxCurv)
The 'goto' constructor: a Dubins' path is built, starting from a given iSeeML::rob::OrPtConfig and re...
Definition: DubinsPath.hpp:78
void writeTo(ostream &O) const
Description method, writing a description of the path in a given output stream.
Type
Dubins-like paths can be of six types: their first and last parts are turns, their middle part is tan...
Definition: DubinsLikePath.hpp:47
This class defines Dubins' paths, made of circular arcs tangentially connected by line segments,...
Definition: DubinsPath.hpp:26
int turnNbPieces(const double &defl) const
Description method, computing the number of pieces (0 or 1) needed for a turn of given deflection.
Definition: DubinsPath.hpp:137
const Type & type() const
Description method, giving the path's type (from lsl to rlr).
Definition: DubinsLikePath.hpp:171
static bool isZero(const double &x)
Method comparing a double to zero.
Definition: Object.hpp:292
static const string ClassName
The class name is public, as this class can be instanced.
Definition: DubinsPath.hpp:37
This class defines Dubins like paths, which are similar to Dubins paths.
Definition: DubinsLikePath.hpp:33
DubinsPath(const iSeeML::rob::OrPtConfig &start, const Type &type, const double &maxCurv, const double &length1, const double &length2, const double &length3)
The 'forward' constructor: a Dubins' path is built from its starting oriented point,...
Definition: DubinsPath.hpp:63
DubinsPath & operator=(const DubinsPath &other)
Copy operator (default one is not correct).
Definition: DubinsPath.hpp:199
const iSeeML::rob::OrPtConfig & start() const
Description method, giving the path's starting configuration (first piece's starting configuration).
Definition: CompoundPath.hpp:79
This class is the base class of ISeeML: every class of ISeeML inherits this one.
Definition: Object.hpp:47
iSeeML::Object & clone() const
Description method, giving a copy of the current Dubins' path.
Definition: DubinsPath.hpp:101
void addTurn(int &index, const iSeeML::rob::OrPtConfig **start, const double &defl)
Modification method, adding to the pieces of a path a turn starting at a given configuration,...
This class defines 2D geometric points, defined by their Cartesian coordinates.
Definition: Point.hpp:29
@ lsl
Path made of a left turn, a straight line and a left turn.
Definition: DubinsLikePath.hpp:49
double turnRadius() const
Description method, giving the radius of the turning circle (the circle of all the configurations whi...
Definition: DubinsPath.hpp:126
const double & maxCurv() const
Description method, giving the path's maximum curvature.
Definition: DubinsLikePath.hpp:177
iSeeML::rob::DubinsLikePath & getSolution(iSeeML::rob::DubinsLikePath *paths, const int index) const
Various method, getting in an array of Dubins-like paths the element of given index.
Definition: DubinsPath.hpp:253
@ nbPossiblePaths
the number of possible paths (6).
Definition: DubinsLikePath.hpp:64