Go to the documentation of this file.
26 #ifndef CCPMPM_DUBINS_STATE_SPACE_HPP
27 #define CCPMPM_DUBINS_STATE_SPACE_HPP
47 class CCpmpm_Dubins_State_Space :
public HC_CC_State_Space
60 CC_Dubins_Path*
ccpmpm_dubins(
const State& state1,
const State& state2)
const;
63 double get_distance(
const State& state1,
const State& state2)
const;
66 std::vector<Control>
get_controls(
const State& state1,
const State& state2)
const;
double mu_
Angle between a configuration on the hc-/cc-circle and the tangent to the circle at that position.
double get_distance(const State &state1, const State &state2) const
Returns shortest path length from state1 to state2.
CC_Dubins_Path * ccpmpm_dubins(const State &state1, const State &state2) const
Returns a sequence of turns and straight lines connecting a start and an end configuration.
double sin_mu_
Sine and cosine of mu.
HC_CC_Circle_Param rs_circle_param_
Parameter of a rs-circle.
bool forwards_
Driving direction.
std::unique_ptr< CCpmpm_Dubins > ccpmpm_dubins_
Pimpl Idiom: unique pointer on class with families
double radius_
Outer radius of a hc-/cc-circle.
CCpmpm_Dubins_State_Space(double kappa, double sigma, double discretization=0.1, bool forwards=true)
Constructor.
std::vector< Control > get_controls(const State &state1, const State &state2) const
Returns controls of the shortest path from state1 to state2.
CC_Dubins_Path * ccpmpm_circles_dubins_path(const HC_CC_Circle &c1, const HC_CC_Circle &c2) const
Returns a sequence of turns and straight lines connecting the two circles c1 and c2.
~CCpmpm_Dubins_State_Space()
Destructor.