Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef FOOTSTEP_PLANNER_FOOTSTEP_H_
00023 #define FOOTSTEP_PLANNER_FOOTSTEP_H_
00024
00025 #include <footstep_planner/PlanningState.h>
00026
00027
00028 namespace footstep_planner
00029 {
00038 class Footstep
00039 {
00040 public:
00055 Footstep(double x, double y, double theta,
00056 double cell_size, int num_angle_bins, int max_hash_size);
00057 ~Footstep();
00058
00067 PlanningState performMeOnThisState(const PlanningState& current) const;
00068
00077 PlanningState reverseMeOnThisState(const PlanningState& current) const;
00078
00079 private:
00081 typedef std::pair<int, int> footstep_xy;
00082
00084 void init(double x, double y);
00085
00103 int calculateForwardStep(Leg leg, int global_theta,
00104 double x, double y,
00105 int* footstep_x, int* footstep_y) const;
00106
00108 int ivTheta;
00109
00111 double ivCellSize;
00113 int ivNumAngleBins;
00114
00116 int ivMaxHashSize;
00117
00119 std::vector<footstep_xy> ivDiscSuccessorLeft;
00121 std::vector<footstep_xy> ivDiscSuccessorRight;
00123 std::vector<footstep_xy> ivDiscPredecessorLeft;
00125 std::vector<footstep_xy> ivDiscPredecessorRight;
00126 };
00127 }
00128
00129 #endif // FOOTSTEP_PLANNER_FOOTSTEP_H_