Loading...
Searching...
No Matches
ReedsSheppStateSpace.cpp
70 inline void tauOmega(double u, double v, double xi, double eta, double phi, double &tau, double &omega)
73 double t1 = atan2(eta * A - xi * B, xi * A + eta * B), t2 = 2. * (cos(delta) - cos(v) - cos(u)) + 3;
125 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[14], -t, -u, -v);
133 if (LpSpLp(-x, -y, phi, t, u, v) && Lmin > (L = fabs(t) + fabs(u) + fabs(v))) // timeflip + reflect
135 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[15], -t, -u, -v);
145 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[12], -t, -u, -v);
153 if (LpSpRp(-x, -y, phi, t, u, v) && Lmin > (L = fabs(t) + fabs(u) + fabs(v))) // timeflip + reflect
154 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[13], -t, -u, -v);
191 if (LpRmL(-x, -y, phi, t, u, v) && Lmin > (L = fabs(t) + fabs(u) + fabs(v))) // timeflip + reflect
214 if (LpRmL(-xb, -yb, phi, t, u, v) && Lmin > (L = fabs(t) + fabs(u) + fabs(v))) // timeflip + reflect
220 double xi = x + sin(phi), eta = y - 1. - cos(phi), rho = .25 * (2. + sqrt(xi * xi + eta * eta));
255 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[2], t, u, -u, v);
258 if (LpRupLumRm(-x, y, -phi, t, u, v) && Lmin > (L = fabs(t) + 2. * fabs(u) + fabs(v))) // timeflip
260 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[2], -t, -u, u, -v);
263 if (LpRupLumRm(x, -y, -phi, t, u, v) && Lmin > (L = fabs(t) + 2. * fabs(u) + fabs(v))) // reflect
265 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[3], t, u, -u, v);
268 if (LpRupLumRm(-x, -y, phi, t, u, v) && Lmin > (L = fabs(t) + 2. * fabs(u) + fabs(v))) // timeflip + reflect
270 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[3], -t, -u, u, -v);
279 if (LpRumLumRp(-x, y, -phi, t, u, v) && Lmin > (L = fabs(t) + 2. * fabs(u) + fabs(v))) // timeflip
281 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[2], -t, -u, -u, -v);
284 if (LpRumLumRp(x, -y, -phi, t, u, v) && Lmin > (L = fabs(t) + 2. * fabs(u) + fabs(v))) // reflect
289 if (LpRumLumRp(-x, -y, phi, t, u, v) && Lmin > (L = fabs(t) + 2. * fabs(u) + fabs(v))) // timeflip + reflect
290 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[3], -t, -u, -u, -v);
332 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[4], t, -.5 * pi, u, v);
337 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[4], -t, .5 * pi, -u, -v);
342 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[5], t, -.5 * pi, u, v);
345 if (LpRmSmLm(-x, -y, phi, t, u, v) && Lmin > (L = fabs(t) + fabs(u) + fabs(v))) // timeflip + reflect
347 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[5], -t, .5 * pi, -u, -v);
353 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[8], t, -.5 * pi, u, v);
358 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[8], -t, .5 * pi, -u, -v);
363 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[9], t, -.5 * pi, u, v);
366 if (LpRmSmRm(-x, -y, phi, t, u, v) && Lmin > (L = fabs(t) + fabs(u) + fabs(v))) // timeflip + reflect
368 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[9], -t, .5 * pi, -u, -v);
376 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[6], v, u, -.5 * pi, t);
381 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[6], -v, -u, .5 * pi, -t);
386 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[7], v, u, -.5 * pi, t);
389 if (LpRmSmLm(-xb, -yb, phi, t, u, v) && Lmin > (L = fabs(t) + fabs(u) + fabs(v))) // timeflip + reflect
391 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[7], -v, -u, .5 * pi, -t);
397 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[10], v, u, -.5 * pi, t);
402 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[10], -v, -u, .5 * pi, -t);
407 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[11], v, u, -.5 * pi, t);
410 if (LpRmSmRm(-xb, -yb, phi, t, u, v) && Lmin > (L = fabs(t) + fabs(u) + fabs(v))) // timeflip + reflect
411 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[11], -v, -u, .5 * pi, -t);
438 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[16], t, -.5 * pi, u,
444 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[16], -t, .5 * pi, -u,
450 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[17], t, -.5 * pi, u,
454 if (LpRmSLmRp(-x, -y, phi, t, u, v) && Lmin > (L = fabs(t) + fabs(u) + fabs(v))) // timeflip + reflect
455 path = ReedsSheppStateSpace::PathType(ReedsSheppStateSpace::reedsSheppPathType[17], -t, .5 * pi, -u,
493ompl::base::ReedsSheppStateSpace::PathType::PathType(const ReedsSheppPathSegmentType *type, double t, double u,
505double ompl::base::ReedsSheppStateSpace::distance(const State *state1, const State *state2) const
510void ompl::base::ReedsSheppStateSpace::interpolate(const State *from, const State *to, const double t,
518void ompl::base::ReedsSheppStateSpace::interpolate(const State *from, const State *to, const double t, bool &firstTime,
541void ompl::base::ReedsSheppStateSpace::interpolate(const State *from, const PathType &path, double t,
Complete description of a ReedsShepp path.
Definition ReedsSheppStateSpace.h:79
void interpolate(const State *from, const State *to, double t, State *state) const override
Computes the state that lies at time t in [0, 1] on the segment that connects from state to to state....
Definition ReedsSheppStateSpace.cpp:510
PathType getPath(const State *state1, const State *state2) const
Return a shortest Reeds-Shepp path from SE(2) state state1 to SE(2) state state2.
Definition ReedsSheppStateSpace.cpp:586
double distance(const State *state1, const State *state2) const override
Computes distance between two states. This function satisfies the properties of a metric if isMetricS...
Definition ReedsSheppStateSpace.cpp:505
static const ReedsSheppPathSegmentType reedsSheppPathType[18][5]
Reeds-Shepp path types.
Definition ReedsSheppStateSpace.h:472
The definition of a state in SO(2).
Definition SO2StateSpace.h:68
This namespace contains sampling based planning routines shared by both planning under geometric cons...
Definition ConstrainedSpaceInformation.h:55