5 #include "SOLID/solid.h"
7 /*! \brief Collision with SOLID.
9 Use SOLID library for collision detection.
11 \see http://solid.sourceforge.net/
13 \param sr_bc Shape reference of bicycle car.
14 \param bc Bicycle car used for collision computations.
15 \param sr_obstacles Obstacles shape references.
17 class RRTExt2 : public RRTS {
21 Obstacle static_obstacle_;
22 DtShapeRef sr_static_obstacles_;
24 // Collide RRT procedures
25 std::tuple<bool, unsigned int, unsigned int>
26 collide_steered_from(RRTNode &f);
28 std::tuple<bool, unsigned int, unsigned int>
29 collide_two_nodes(RRTNode &f, RRTNode &t);
31 /*! \brief Initialize SOLID based extension.
34 /*! \brief Deinitialize SOLID based extension.
39 BicycleCar &bc() { return this->bc_; }
40 DtShapeRef &sr_bc() { return this->sr_bc_; }
41 Obstacle &static_obstacle() { return this->static_obstacle_; }
42 DtShapeRef &sr_static_obstacles()
44 return this->sr_static_obstacles_;
48 /*! \brief Different costs extension.
50 Use different cost for bulding tree data structure and searching in the
53 class RRTExt1 : public RRTS {
55 /*! \brief Reeds and Shepp path length.
57 double cost_build(RRTNode &f, RRTNode &t);
58 /*! \brief Matej's heuristics.
60 double cost_search(RRTNode &f, RRTNode &t);