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();
00090
00106 int calculateForwardStep(Leg leg, int global_theta,
00107 int* footstep_x, int* footstep_y) const;
00108
00110 int ivTheta;
00111
00113 double ivContX;
00115 double ivContY;
00116
00118 double ivCellSize;
00120 int ivNumAngleBins;
00121
00123 int ivMaxHashSize;
00124
00126 std::vector<footstep_xy> ivDiscSuccessorLeft;
00128 std::vector<footstep_xy> ivDiscSuccessorRight;
00130 std::vector<footstep_xy> ivDiscPredecessorLeft;
00132 std::vector<footstep_xy> ivDiscPredecessorRight;
00133 };
00134 }
00135
00136 #endif // FOOTSTEP_PLANNER_FOOTSTEP_H_