3#include <ompl/base/ScopedState.h>
19 virtual bool collides(
double x,
double y) {
return true; }
22 bool collides(
const ompl::geometric::PathGeometric &trajectory);
24 const auto *s = state->as<
State>();
25 return collides(s->getX(), s->getY());
49 virtual double distance(
double x,
double y) {
return -1; }
61 const auto *s = state->as<
State>();
62 return distance(s->getX(), s->getY());
73 const auto *s = state->as<
State>();
87 double p = 0.1,
double cellSize = 1);
89 virtual std::string
name()
const {
return "Base map"; }
115 j[
"width"] =
width();
117 j[
"start"] =
start();
125 virtual double unit()
const {
return 1; }
ob::SE2StateSpace::StateType State
Definition: Primitives.h:12
Definition: Environment.h:8
double bilinearDistance(const Point &point, double cellSize=1)
Definition: Environment.h:69
double goalTheta() const
Definition: Environment.h:111
bool thetasDefined() const
Definition: Environment.h:99
virtual ~Environment()=default
double width() const
Definition: Environment.h:34
virtual double distance(double x, double y)
Compute distance from xy-coordinate to the closest obstacle if possible.
Definition: Environment.h:49
bool checkValidity(const ob::State *state)
Used by planners to determine if the state is valid or not.
Definition: Environment.cpp:22
Stopwatch _collision_timer
Definition: Environment.h:139
virtual void to_json(nlohmann::json &j)
Definition: Environment.h:113
double bilinearDistance(double x, double y, double cellSize=1)
Bilinear filtering of distance.
Definition: Environment.cpp:43
virtual bool collides(double x, double y)
Definition: Environment.h:19
bool distanceGradient(double x, double y, double &dx, double &dy, double p=0.1, double cellSize=1)
Computes negative gradient of distance field at position x, y.
Definition: Environment.cpp:66
ompl::base::State * goalState() const
Definition: Environment.h:103
virtual std::string name() const
Definition: Environment.h:89
double startTheta() const
Definition: Environment.h:110
double _start_theta
Definition: Environment.h:133
ob::RealVectorBounds _bounds
Definition: Environment.h:137
void setThetas(double start, double goal)
Definition: Environment.cpp:129
ob::RealVectorBounds getBounds() const
Definition: Environment.h:108
ompl::base::ScopedState< ob::SE2StateSpace > startScopedState() const
Definition: Environment.cpp:109
bool collides(const Point &p)
Definition: Environment.h:21
bool _thetas_defined
Definition: Environment.h:135
double height() const
Definition: Environment.h:35
Point _goal
Definition: Environment.h:132
void setStart(const Point &point)
Definition: Environment.cpp:137
Environment()
Definition: Environment.cpp:149
void estimateStartGoalOrientations()
Estimates potentially suitable theta values for the start and goal state by running a simple line sea...
Definition: Environment.cpp:79
ompl::base::ScopedState< ob::SE2StateSpace > goalScopedState() const
Definition: Environment.cpp:119
virtual double unit() const
Unit, e.g.
Definition: Environment.h:125
void setGoal(const Point &point)
Definition: Environment.cpp:143
double bilinearDistance(const ob::State *state, double cellSize=1)
Definition: Environment.h:72
double distance(const ob::State *state)
Compute distance of a state to the closest obstacle if possible.
Definition: Environment.h:60
virtual bool collides(const Polygon &polygon)
Definition: Environment.h:20
bool collides(const ob::State *state)
Definition: Environment.h:23
double _goal_theta
Definition: Environment.h:134
Point _start
Definition: Environment.h:131
double elapsedCollisionTime() const
Definition: Environment.h:128
ompl::base::State * startState() const
Definition: Environment.h:102
const Point & goal() const
Definition: Environment.h:17
const Point & start() const
Definition: Environment.h:14
void resetCollisionTimer()
Definition: Environment.h:127
const ob::RealVectorBounds & bounds() const
Definition: Environment.h:33
Stopwatch implementation to measure elapsed time.
Definition: Stopwatch.hpp:8
void reset()
Stops the timer and sets elapsed time to zero.
Definition: Stopwatch.hpp:23
double elapsed() const
Elapsed time in seconds.
Definition: Stopwatch.hpp:41
Definition: Primitives.h:42
double x
Definition: Primitives.h:43
ompl::base::State * toState(double theta=0) const
Definition: Primitives.cpp:21
double y
Definition: Primitives.h:43
Definition: Primitives.h:145