VanaStateSpace.cpp
56 : rho_(turningRadius), minPitch_(pitchRange.first), maxPitch_(pitchRange.second), dubinsSpace_(turningRadius)
119 bool VanaStateSpace::decoupled(const State *state1, const State *state2, double radius, PathType &result,
157 std::optional<VanaStateSpace::PathType> VanaStateSpace::getPath(const State *state1, const State *state2) const
181 if (decoupled(state1, state2, rho_ * radiusMultiplier2, path2, scratch) && path2.length() < path.length())
207 void VanaStateSpace::interpolate(const State *from, const State *to, const double t, State *state) const
216 void VanaStateSpace::interpolate(const State *from, const State *to, const double t, PathType &path,
235 void VanaStateSpace::interpolate(const State *from, const PathType &path, double t, State *state) const
273 VanaStateSpace::PathType &VanaStateSpace::PathType::operator=(const VanaStateSpace::PathType &path)
295 os << "VanaPath[\n\tlength = " << path.length() << "\n\tXY=" << path.pathXY_ << "\n\tSZ=" << path.pathSZ_
std::ostream & operator<<(std::ostream &stream, Cost c)
Output operator for Cost.
Definition: Cost.cpp:39
State * allocState() const override
Allocate a state that can store a point in the described space.
Definition: SE2StateSpace.cpp:41
Representation of a space in which planning can be performed. Topology specific sampling,...
Definition: StateSpace.h:134
void setYaw(double yaw)
Set the yaw component of the state. This is the rotation in plane, with respect to the Z axis.
Definition: SE2StateSpace.h:228
void interpolate(const State *from, const State *to, double t, State *state) const override
Computes the state that lies at time t in [0, 1] on the segment that connects from state to to state....
Definition: DubinsStateSpace.cpp:744
const T * as(unsigned int index) const
Cast a component of this instance to a desired type.
Definition: State.h:159
void registerProjections() override
Register the projections for this state space. Usually, this is at least the default projection....
Definition: VanaStateSpace.cpp:77
bool decoupled(const State *state1, const State *state2, double radius, PathType &path, DubinsStateSpace::StateType *endSZ) const
Helper function used by getPath.
Definition: VanaStateSpace.cpp:119
unsigned int validSegmentCount(const State *state1, const State *state2) const override
Count how many segments of the "longest valid length" fit on the motion from state1 to state2.
Definition: VanaStateSpace.cpp:202
This namespace contains sampling based planning routines shared by both planning under geometric cons...
Definition: ConstrainedSpaceInformation.h:86
void lock()
Lock this state space. This means no further spaces can be added as components. This function can be ...
Definition: StateSpace.cpp:1169
unsigned int getDimension() const override
Get the dimension of the space (not the dimension of the surrounding ambient space)
Definition: StateSpace.cpp:994
DubinsStateSpace dubinsSpace_
Definition: VanaStateSpace.h:308
void printState(const State *state, std::ostream &out) const override
Print a state to a stream.
Definition: StateSpace.cpp:1201
void registerDefaultProjection(const ProjectionEvaluatorPtr &projection)
Register the default projection for this state space.
Definition: StateSpace.cpp:752
An R^4 x SO(2) state space where distance is measured by the length of a type Dubins airplane curves.
Definition: VanaStateSpace.h:92
The definition of a state in Rn
Definition: RealVectorStateSpace.h:141
double getMaximumExtent() const override
Get the maximum value a call to distance() can return (or an upper bound). For unbounded state spaces...
Definition: StateSpace.cpp:1002
void copyState(State *destination, const State *source) const override
Copy a state to another. The memory of source and destination should NOT overlap.
Definition: StateSpace.cpp:1036
Abstract definition for a class computing projections to Rn. Implicit integer grids are imposed on th...
Definition: ProjectionEvaluator.h:194
An SE(2) state space where distance is measured by the length of Dubins curves.
Definition: DubinsStateSpace.h:126
DubinsStateSpace::StateType * get2DPose(double x, double y, double yaw) const
Allocate a DubinsSpace state and initialize it.
Definition: VanaStateSpace.cpp:111
static const double PROJECTION_DIMENSION_SPLITS
When the cell sizes for a projection are automatically computed, this value defines the number of par...
Definition: MagicConstants.h:119
void allocStateComponents(CompoundState *state) const
Allocate the state components. Called by allocState(). Usually called by derived state spaces.
Definition: StateSpace.cpp:1153
ompl::base::CompoundState StateType
Define the type of state allocated by this state space.
Definition: StateSpace.h:641
void setXY(double x, double y)
Set the X and Y components of the state.
Definition: SE2StateSpace.h:219
void interpolate(const State *from, const State *to, double t, State *state) const override
Computes the state that lies at time t in [0, 1] on the segment that connects from state to to state....
Definition: VanaStateSpace.cpp:207
const RealVectorBounds & getBounds() const
Get the bounds for this state space.
Definition: VanaStateSpace.h:218
DubinsPath dubins(const State *state1, const State *state2) const
Return a shortest Dubins path from SE(2) state state1 to SE(2) state state2.
Definition: DubinsStateSpace.cpp:850
void freeState(State *state) const override
Free the memory of the allocated state.
Definition: SE2StateSpace.cpp:48
std::optional< PathType > getPath(const State *state1, const State *state2) const
Compute a 3D Dubins path using the model and algorithm proposed by Vana et al.
Definition: VanaStateSpace.cpp:157
double distance(const State *state1, const State *state2) const override
Computes distance between two states. This function satisfies the properties of a metric if isMetricS...
Definition: VanaStateSpace.cpp:195
void addSubspace(const StateSpacePtr &component, double weight)
Adds a new state space as part of the compound state space. For computing distances within the compou...
Definition: StateSpace.cpp:871
virtual unsigned int validSegmentCount(const State *state1, const State *state2) const
Count how many segments of the "longest valid length" fit on the motion from state1 to state2.
Definition: StateSpace.cpp:851
State * allocState() const override
Allocate a state that can store a point in the described space.
Definition: VanaStateSpace.cpp:70
The lower and upper bounds for an Rn space.
Definition: RealVectorBounds.h:111