Bench-MR
A Motion Planning Benchmark for Wheeled Mobile Robots
|
#include <Environment.h>
Public Member Functions | |
Environment () | |
virtual | ~Environment ()=default |
void | setStart (const Point &point) |
const Point & | start () const |
void | setGoal (const Point &point) |
const Point & | goal () const |
virtual bool | collides (double x, double y) |
virtual bool | collides (const Polygon &polygon) |
bool | collides (const Point &p) |
bool | collides (const ompl::geometric::PathGeometric &trajectory) |
bool | collides (const ob::State *state) |
bool | checkValidity (const ob::State *state) |
Used by planners to determine if the state is valid or not. More... | |
const ob::RealVectorBounds & | bounds () const |
double | width () const |
double | height () const |
virtual double | distance (double x, double y) |
Compute distance from xy-coordinate to the closest obstacle if possible. More... | |
double | distance (const ob::State *state) |
Compute distance of a state to the closest obstacle if possible. More... | |
double | bilinearDistance (double x, double y, double cellSize=1) |
Bilinear filtering of distance. More... | |
double | bilinearDistance (const Point &point, double cellSize=1) |
double | bilinearDistance (const ob::State *state, double cellSize=1) |
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. More... | |
virtual std::string | name () const |
void | estimateStartGoalOrientations () |
Estimates potentially suitable theta values for the start and goal state by running a simple line search from start to goal. More... | |
bool | thetasDefined () const |
void | setThetas (double start, double goal) |
ompl::base::State * | startState () const |
ompl::base::State * | goalState () const |
ompl::base::ScopedState< ob::SE2StateSpace > | startScopedState () const |
ompl::base::ScopedState< ob::SE2StateSpace > | goalScopedState () const |
ob::RealVectorBounds | getBounds () const |
double | startTheta () const |
double | goalTheta () const |
virtual void | to_json (nlohmann::json &j) |
virtual double | unit () const |
Unit, e.g. More... | |
void | resetCollisionTimer () |
double | elapsedCollisionTime () const |
Protected Attributes | |
Point | _start |
Point | _goal |
double | _start_theta {0} |
double | _goal_theta {0} |
bool | _thetas_defined {false} |
ob::RealVectorBounds | _bounds {2} |
Stopwatch | _collision_timer |
Environment::Environment | ( | ) |
|
virtualdefault |
|
inline |
|
inline |
double Environment::bilinearDistance | ( | double | x, |
double | y, | ||
double | cellSize = 1 |
||
) |
Bilinear filtering of distance.
|
inline |
bool Environment::checkValidity | ( | const ob::State * | state | ) |
Used by planners to determine if the state is valid or not.
|
inline |
bool Environment::collides | ( | const ompl::geometric::PathGeometric & | trajectory | ) |
|
inline |
|
inlinevirtual |
Reimplemented in GridMaze, and PolygonMaze.
|
inlinevirtual |
Reimplemented in GridMaze, and PolygonMaze.
|
inline |
Compute distance of a state to the closest obstacle if possible.
This currently assumes a point robot and does not support a check for arbitrary polygons. (will only use x and y component of state)
state | The state to check. |
|
inlinevirtual |
Compute distance from xy-coordinate to the closest obstacle if possible.
This currently assumes a point robot and does not support a check for arbitrary polygons.
x | X-coordinate of the point to check. |
y | Y-Coordinate of the point to check. |
Reimplemented in GridMaze.
bool Environment::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.
x | Position coordinate x. |
y | Position coordinate y. |
dx | Resulting gradient coordinate x. |
dy | Resulting gradient coordinate y. |
p | Sampling precision. |
|
inline |
void Environment::estimateStartGoalOrientations | ( | ) |
Estimates potentially suitable theta values for the start and goal state by running a simple line search from start to goal.
This feature is useful for approaches that operate on the SE2 state space and cannot find good start / goal angles themselves (e.g. SBPL).
|
inline |
|
inline |
ompl::base::ScopedState< ob::SE2StateSpace > Environment::goalScopedState | ( | ) | const |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in GridMaze, and PolygonMaze.
|
inline |
void Environment::setGoal | ( | const Point & | point | ) |
void Environment::setStart | ( | const Point & | point | ) |
void Environment::setThetas | ( | double | start, |
double | goal | ||
) |
|
inline |
ompl::base::ScopedState< ob::SE2StateSpace > Environment::startScopedState | ( | ) | const |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in GridMaze, and PolygonMaze.
|
inlinevirtual |
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |