sampler
Defines a custom sampler which only samples an state with the heading angle below the threshold.
-
namespace slope_constrained_planner
-
class Sampler : public StateSampler
- #include <sampler.h>
Defines a custom sampler which only samples an state with the heading angle below the threshold.
Description: A custom sampler which randomly samples a state position within map bounderies. Regarding the state orientation, the yaw angle would be chosen randomly within (-pi, pi), roll and pitch angles are found by getting the normal vector of the state cell in the map. In order to get the desired orientation, state frame rotates along its z-axis until the heading angle gets below the threshold.
Public Functions
Constructor for
Samplerclass. Defines the space bounderies using the grid map info.- Parameters:
space – state space in which the sampler would find the states
map – grid map of the environment
params – contains required info about the map layers
-
virtual void sampleUniform(ob::State *state) override
Overriden function from the base class
StateSampler, usessamplePositionInMap()function to find state position. UsesgetNormal(ind)function to find roll and pitch angles for the state orientation. Keeps rotating the state frame along its z-axis until the heading angle gets below threshold. If previously found state was valid, use its reverse orientation for the next state.- Parameters:
state – The sampled state data
-
virtual void sampleUniformNear(ob::State*, const ob::State*, double) override
Not implemented in this software architecture.
-
virtual void sampleGaussian(ob::State*, const ob::State*, double) override
Not implemented in this software architecture.
-
bool checkSampleDistance(const ob::ScopedState<> &sample)
Private Functions
-
grid_map::Position samplePositionInMap()
Helper function to sample the state position within map bounderies and finit normal vector.
- Returns:
pos state position info
Private Members
-
ParamsConstPtr params_
Parameters containing the data for map layers.
-
ob::StateSpacePtr space_real_vec_
Defines the states in R(3)
-
ob::StateSpacePtr space_rot_
Defines the states in SO3.
-
std::shared_ptr<ob::RealVectorBounds> bounds_se3_
Sets R(3) state space bounderies.
-
ob::ScopedState<ob::RealVectorStateSpace> state_pos_
An scoped state in R(3)
-
grid_map::Position prev_pos_
Represents the position of previously found valid state.
-
bool sample_is_near_robot_
An attribute to specify if the found sample is near robot.
-
ob::ScopedState<ob::SE3StateSpace> state_rot_
An scopes state in SE3.
-
ob::RealVectorStateSampler base_real_vec_
State sampler in R(2)
-
mutable std::mutex map_mutex_
Grid map process mutex.
-
bool prev_state_is_valid_
specifies whether the previously found state was valid
-
double prev_yaw_
Represents the yaw angle for previous valid state.
-
double prev_phi_
Represents the heading angle for previous valid state.
-
class SamplerAllocator
- #include <sampler.h>
Allocates the custom sampler class in the planner.
Public Functions
-
inline SamplerAllocator(const ParamsConstPtr ¶ms)
Sets the grid map data in the corresponding class attribute.
- Parameters:
map – grid map of the environment
Private Members
-
ParamsConstPtr params_
Parameters containing the data for map layers.
-
inline SamplerAllocator(const ParamsConstPtr ¶ms)
-
class Sampler : public StateSampler