+/*
+ * SPDX-FileCopyrightText: 2021 Jiri Vlasak <jiri.vlasak.2@cvut.cz>
+ *
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
/*! \brief RRT* extensions.
*
* The extensions are used to implement or change the default behavior of the
namespace rrts {
+/*! \brief Use Dubins paths-based steering procedure.
+ *
+ * \ingroup ext-steer
+ * \see https://github.com/AndrewWalker/Dubins-Curves
+ */
+class RRTExt19 : public virtual RRTS {
+private:
+ void steer(RRTNode const &f, RRTNode const &t);
+};
+
/*! \brief Finish when more than 1000 iterations.
*
* \ingroup ext-aux
RRTNode* node = nullptr;
unsigned int i = 0;
bool v = false;
+ double d = 0.0;
bool vi();
DijkstraNode(RRTNode* n);
};
public:
int operator() (DijkstraNode const& n1, DijkstraNode const& n2);
};
+ class DijkstraNodeBackwardComparator {
+ public:
+ int operator() (DijkstraNode const& n1, DijkstraNode const& n2);
+ };
std::vector<RRTNode*> opath_;
double ogoal_cc_ = 0.0;
double otime_ = 0.0;
std::vector<DijkstraNode> dn_;
- void pick_interesting();
+ void interesting_forward();
+ void interesting_backward();
void dijkstra_forward();
void dijkstra_backward();
void compute_path();
/*! \brief Reeds & Shepp (build) and Euclidean + abs angle (search).
*
* Use Reeds & Shepp path length for building tree data structure and Euclidean
- * distance plus (abs) heading difference for searching it.
+ * distance + (abs) heading difference + 0.1 * backward-forward direction
+ * changes for searching it.
*
* \ingroup ext-cost
* \see https://doi.org/10.1109/TITS.2015.2477355
RRTExt2();
Json::Value json() const;
void json(Json::Value jvi);
+ void reset();
};
/* \brief Different costs extension.