Bench-MR
A Motion Planning Benchmark for Wheeled Mobile Robots
SmoothThetaStar.h
Go to the documentation of this file.
1#pragma once
2
3#include <ompl/geometric/PathGeometric.h>
4#include <algorithm>
5
6#pragma warning "SmoothThetaStar is not supported at the moment."
7
8#if 0
9
10#include "../base/Environment.h"
11#include "../../base/Trajectory.h"
12
13#include "../AbstractPlanner.hpp"
14
15namespace ob = ompl::base;
16namespace og = ompl::geometric;
17
18class SmoothThetaStar : public AbstractPlanner, public ob::Planner {
19 public:
20 SmoothThetaStar();
21 ~SmoothThetaStar() override = default;
22
23 std::string name() const override { return "Smooth Theta*"; }
24
25 bool initialize();
26
27 void setProblemDefinition(const ob::ProblemDefinitionPtr &pdef) override;
28 ob::PlannerStatus solve(const ob::PlannerTerminationCondition &ptc) override;
29
30 ob::PlannerStatus run() override;
31
32 std::vector<GNode> solutionTrajectory() const override;
33 std::vector<TrajectoryPoint> solutionPath() const override;
34 og::PathGeometric geometricPath() const override;
35
36 bool hasReachedGoalExactly() const override;
37 double planningTime() const;
38 unsigned int steps() const;
39
40 private:
41 Trajectory *curr_traj;
42
43 bool COST_SEARCH;
44 bool USE_ASTAR;
45 bool USE_GRANDPARENT;
46
47 double _planningTime;
48 unsigned int _steps;
49
50 std::vector<std::vector<GNode> > global_paths;
51
52 bool search(std::vector<std::vector<GNode> > &paths, GNode start, GNode goal);
53
54 protected:
55 explicit SmoothThetaStar(bool astar, std::string name);
56
57 inline ob::Planner *omplPlanner() override { return this; }
58};
59#endif
void initialize(const og::PathGeometric &path, unsigned int N, const vec2f &p0, const vec2f &p1, MatX &xi, MatX &q0, MatX &q1)
Definition: CHOMP.cpp:10
Definition: AbstractPlanner.h:29
virtual bool hasReachedGoalExactly() const =0
virtual double planningTime() const =0
virtual std::string name() const =0
virtual ob::PlannerStatus run()=0
virtual std::vector< Point > solutionPath() const
Definition: AbstractPlanner.h:42
virtual ob::Planner * omplPlanner()
Definition: AbstractPlanner.h:120
Definition: gnode.h:12
Planner
Definition: PlannerSettings.h:16