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
00023
00024
00025
00026
00027 #ifndef FOOTSTEP_PLANNER_FOOTSTEP_H_
00028 #define FOOTSTEP_PLANNER_FOOTSTEP_H_
00029
00030 #include <footstep_planner/PlanningState.h>
00031
00032
00033 namespace footstep_planner
00034 {
00043 class Footstep
00044 {
00045 public:
00060 Footstep(double x, double y, double theta,
00061 double cell_size, int num_angle_bins, int max_hash_size);
00062 ~Footstep();
00063
00072 PlanningState performMeOnThisState(const PlanningState& current) const;
00073
00082 PlanningState reverseMeOnThisState(const PlanningState& current) const;
00083
00084 private:
00086 typedef std::pair<int, int> footstep_xy;
00087
00089 void init(double x, double y);
00090
00108 int calculateForwardStep(Leg leg, int global_theta,
00109 double x, double y,
00110 int* footstep_x, int* footstep_y) const;
00111
00113 int ivTheta;
00114
00116 double ivCellSize;
00118 int ivNumAngleBins;
00119
00121 int ivMaxHashSize;
00122
00124 std::vector<footstep_xy> ivDiscSuccessorLeft;
00126 std::vector<footstep_xy> ivDiscSuccessorRight;
00128 std::vector<footstep_xy> ivDiscPredecessorLeft;
00130 std::vector<footstep_xy> ivDiscPredecessorRight;
00131 };
00132 }
00133
00134 #endif // FOOTSTEP_PLANNER_FOOTSTEP_H_