se2ez
space.h
Go to the documentation of this file.
1 /* Author: Zachary Kingston */
2 
3 #ifndef SE2EZ_PLAN_SPACE_
4 #define SE2EZ_PLAN_SPACE_
5 
6 #include <ompl/base/SpaceInformation.h>
7 #include <ompl/base/spaces/RealVectorStateSpace.h>
8 
10 
11 namespace se2ez
12 {
13  /** \cond IGNORE */
14  SE2EZ_CLASS_FORWARD(Robot)
15  SE2EZ_CLASS_FORWARD(State)
16  SE2EZ_CLASS_FORWARD(Frame)
17  /** \endcond */
18 
19  namespace plan
20  {
21  /** \cond IGNORE */
22  SE2EZ_CLASS_FORWARD(StateSpace)
23  SE2EZ_CLASS_FORWARD(StateSampler)
24  /** \endcond */
25 
26  class StateSpace : public ompl::base::RealVectorStateSpace
27  {
28  public:
29  class StateType : public ompl::base::RealVectorStateSpace::StateType
30  {
31  public:
32  StateType(const RobotPtr &robot);
34  };
35 
36  StateSpace(const RobotPtr &robot);
37 
38  void enforceBounds(ompl::base::State *state) const override;
39  bool satisfiesBounds(const ompl::base::State *state) const override;
40  double distance(const ompl::base::State *state1, const ompl::base::State *state2) const override;
41  bool equalStates(const ompl::base::State *state1, const ompl::base::State *state2) const override;
42  void interpolate(const ompl::base::State *from, const ompl::base::State *to, double t,
43  ompl::base::State *state) const override;
44 
45  void copyState(ompl::base::State *destination, const ompl::base::State *source) const override;
46  ompl::base::State *allocState() const override;
47  ompl::base::State *allocState(const StatePtr &state) const;
48  void freeState(ompl::base::State *state) const override;
49 
50  void printState(const ompl::base::State *state, std::ostream &out) const override;
51 
52  double *getValueAddressAtIndex(ompl::base::State *state, unsigned int index) const override;
53 
54  ompl::base::StateSamplerPtr allocDefaultStateSampler() const override;
55  void registerProjections() override;
56 
57  const RobotPtr getRobot() const;
58 
59  private:
62  };
63  } // namespace plan
64 } // namespace se2ez
65 
66 #endif
A shared pointer wrapper for se2ez::State.
std::vector< std::pair< std::string, Robot::FrameDataPtr > > frames_
Definition: space.h:61
Definition: goals.h:10
const RobotPtr robot_
Definition: space.h:60
A shared pointer wrapper for se2ez::Robot.
Main namespace.
Definition: collision.h:11
#define SE2EZ_CLASS_FORWARD(C)
Definition: class_forward.h:9